新增核算时间变量
This commit is contained in:
parent
c2371ffcb3
commit
832b40e40a
|
|
@ -16,6 +16,7 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO;
|
|||
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemDataDTO;
|
||||
import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentDataDTO;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobAdjustRulePO;
|
||||
import com.engine.salary.enums.salaryformula.SalaryFormulaReferenceEnum;
|
||||
import com.engine.salary.enums.salaryformula.SalarySQLReferenceEnum;
|
||||
|
|
@ -136,6 +137,39 @@ public class CalculateFormulaVarBO {
|
|||
return resultMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理核算日期相关信息
|
||||
*/
|
||||
private List<FormulaVarValue> handleSalarySobCycleDTO(SalaryAcctCalculateBO salaryAcctCalculateBO) {
|
||||
|
||||
SalarySobCycleDTO salarySobCycleDTO = salaryAcctCalculateBO.getSalarySobCycleDTO();
|
||||
|
||||
salarySobCycleDTO.setSalaryDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSalaryMonth(), 1));
|
||||
salarySobCycleDTO.setTaxDate(SalaryDateUtil.toDate(salarySobCycleDTO.getTaxCycle(), 1));
|
||||
salarySobCycleDTO.setSocialSecurityDate(SalaryDateUtil.toDate(salarySobCycleDTO.getSocialSecurityCycle(), 1));
|
||||
LocalDateRange salaryCycle = salarySobCycleDTO.getSalaryCycle();
|
||||
salarySobCycleDTO.setSalaryCycleFromDate(salaryCycle.getFromDate());
|
||||
salarySobCycleDTO.setSalaryCycleEndDate(salaryCycle.getEndDate());
|
||||
LocalDateRange attendCycle = salarySobCycleDTO.getAttendCycle();
|
||||
salarySobCycleDTO.setAttendCycleFromDate(attendCycle.getFromDate());
|
||||
salarySobCycleDTO.setAttendCycleEndDate(attendCycle.getEndDate());
|
||||
|
||||
Map<String, String> map = JsonUtil.parseMap(salarySobCycleDTO, String.class);
|
||||
|
||||
List<FormulaVarValue> formulaVarValues = Lists.newArrayList();
|
||||
Field[] declaredFields = SalarySobCycleDTO.class.getDeclaredFields();
|
||||
for (Field declaredField : declaredFields) {
|
||||
if (declaredField.isAnnotationPresent(SalaryFormulaVar.class)) {
|
||||
String fieldName = declaredField.getName();
|
||||
String fieldId = SalarySQLReferenceEnum.SALARY_CYCLE.getValue()
|
||||
+ SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR
|
||||
+ fieldName;
|
||||
formulaVarValues.add(new FormulaVarValue().setFieldId(fieldId).setFieldValue(map.getOrDefault(fieldName, StringUtils.EMPTY)));
|
||||
}
|
||||
}
|
||||
return formulaVarValues;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理薪资核算结果
|
||||
|
|
@ -164,7 +198,7 @@ public class CalculateFormulaVarBO {
|
|||
}
|
||||
|
||||
/**
|
||||
* 处理薪资档案(会涉及调薪计薪规则)
|
||||
* 处理薪资档案(会涉及调薪计薪规则)+处理核算日期
|
||||
*
|
||||
* @param salaryAcctCalculateBO 薪资核算参数
|
||||
* @param resultMap 返回结果集
|
||||
|
|
@ -179,6 +213,7 @@ public class CalculateFormulaVarBO {
|
|||
List<FormulaVarValue> formulaVarValues = resultMap.computeIfAbsent(key, k -> Lists.newArrayList());
|
||||
// 将薪资档案的值转换成公式中的变量,填充到返回结果集中
|
||||
formulaVarValues.addAll(handleSalaryArchiveItemVal(salaryAcctCalculateBO, salaryArchiveTaxAgentDataDTO.getSalaryItemValues(), salarySobAdjustRulePOMap));
|
||||
formulaVarValues.addAll(handleSalarySobCycleDTO(salaryAcctCalculateBO));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.engine.salary.entity.salarysob.dto;
|
||||
|
||||
import com.engine.salary.annotation.SalaryFormulaVar;
|
||||
import com.engine.salary.common.LocalDateRange;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
|
@ -9,6 +10,7 @@ import lombok.Data;
|
|||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.YearMonth;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 薪资账套的周期
|
||||
|
|
@ -24,24 +26,46 @@ import java.time.YearMonth;
|
|||
@AllArgsConstructor
|
||||
public class SalarySobCycleDTO {
|
||||
|
||||
//薪资账套id
|
||||
//薪资账套id
|
||||
private Long salarySobId;
|
||||
|
||||
//薪资所属月
|
||||
//薪资所属月
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private YearMonth salaryMonth;
|
||||
|
||||
//税款所属期
|
||||
|
||||
//税款所属期
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private YearMonth taxCycle;
|
||||
|
||||
//社保福利所属期
|
||||
|
||||
//社保福利所属期
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private YearMonth socialSecurityCycle;
|
||||
|
||||
//薪资周期")
|
||||
//薪资周期")
|
||||
private LocalDateRange salaryCycle;
|
||||
|
||||
//考勤周期")
|
||||
|
||||
//考勤周期")
|
||||
private LocalDateRange attendCycle;
|
||||
|
||||
|
||||
/**
|
||||
* 公式变量
|
||||
*/
|
||||
@SalaryFormulaVar(defaultLabel = "薪资所属月", labelId = 86321, dataType = "string")
|
||||
private Date salaryDate;
|
||||
@SalaryFormulaVar(defaultLabel = "税款所属期", labelId = 86321, dataType = "string")
|
||||
private Date taxDate;
|
||||
@SalaryFormulaVar(defaultLabel = "社保福利所属期", labelId = 86321, dataType = "string")
|
||||
private Date socialSecurityDate;
|
||||
@SalaryFormulaVar(defaultLabel = "薪资周期起始日期", labelId = 86321, dataType = "string")
|
||||
private Date salaryCycleFromDate;
|
||||
@SalaryFormulaVar(defaultLabel = "薪资周期结束日期", labelId = 86321, dataType = "string")
|
||||
private Date salaryCycleEndDate;
|
||||
@SalaryFormulaVar(defaultLabel = "考勤周期起始日期", labelId = 86321, dataType = "string")
|
||||
private Date attendCycleFromDate;
|
||||
@SalaryFormulaVar(defaultLabel = "考勤周期结束日期", labelId = 86321, dataType = "string")
|
||||
private Date attendCycleEndDate;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,8 @@ import java.util.Objects;
|
|||
public enum SalarySQLReferenceEnum implements BaseEnum<String> {
|
||||
|
||||
EMPLOYEE_INFO("employeeInfo", "员工基本信息", 85366),
|
||||
SALARY_ACCT_EMPLOYEE("salaryAcctEmployee", "核算基本信息", 85368);
|
||||
SALARY_ACCT_EMPLOYEE("salaryAcctEmployee", "核算基本信息", 85368),
|
||||
SALARY_CYCLE("SalaryCycle", "核算日期", 85368);
|
||||
private String value;
|
||||
|
||||
private String defaultLabel;
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctEmployeePO;
|
|||
import com.engine.salary.entity.salaryformula.dto.SalaryFormulaTaxRateDTO;
|
||||
import com.engine.salary.entity.salaryformula.po.FormulaVar;
|
||||
import com.engine.salary.entity.salaryitem.po.SalaryItemPO;
|
||||
import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO;
|
||||
import com.engine.salary.entity.salarysob.po.SalarySobItemPO;
|
||||
import com.engine.salary.entity.taxrate.TaxRateBase;
|
||||
import com.engine.salary.enums.salaryformula.ReferenceTypeEnum;
|
||||
|
|
@ -111,6 +112,9 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic
|
|||
case SALARY_ACCT_EMPLOYEE:
|
||||
vars = convert2FormulaVar(SalaryAcctEmployeePO.class, referenceEnum.getValue() + "");
|
||||
break;
|
||||
case SALARY_CYCLE:
|
||||
vars = convert2FormulaVar(SalarySobCycleDTO.class, referenceEnum.getValue() + "");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,6 +115,19 @@ public class SalaryDateUtil {
|
|||
}
|
||||
}
|
||||
|
||||
public static String getFormatDate(Date localDate) {
|
||||
if (localDate == null) {
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
try {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FORMATTER_PATTERN);
|
||||
return simpleDateFormat.format(localDate);
|
||||
} catch (Exception e) {
|
||||
log.warn("格式化日期错误", e);
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getFormatLocalDate(LocalDateTime localDateTime) {
|
||||
if (localDateTime == null) {
|
||||
return StringUtils.EMPTY;
|
||||
|
|
|
|||
Loading…
Reference in New Issue