diff --git a/resource/WEB-INF/prop/hrmSalaryCustom.properties b/resource/WEB-INF/prop/hrmSalaryCustom.properties index 7c7aecb15..5816696a3 100644 --- a/resource/WEB-INF/prop/hrmSalaryCustom.properties +++ b/resource/WEB-INF/prop/hrmSalaryCustom.properties @@ -1,2 +1,3 @@ formulaRunOvertimeThreshold=10 -flowNoticeMessageType=2022060951 \ No newline at end of file +flowNoticeMessageType=2022060951 +salaryDateFormat=yyyy-MM \ No newline at end of file diff --git a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java index 74835472d..896b615a0 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java @@ -30,6 +30,7 @@ import lombok.Data; import lombok.experimental.Accessors; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; +import weaver.general.BaseBean; import java.lang.reflect.Field; import java.math.BigDecimal; @@ -51,6 +52,8 @@ import static com.engine.salary.util.SalaryDateUtil.DATE_TIME_FORMATTER_PATTERN; @Data @Accessors(chain = true) public class CalculateFormulaVarBO { + BaseBean bb = new BaseBean(); + String salaryDateFormat = bb.getPropValue("hrmSalaryCustom", "salaryDateFormat"); /** * 员工信息 @@ -168,7 +171,11 @@ public class CalculateFormulaVarBO { String fieldValue = map.getOrDefault(fieldName, StringUtils.EMPTY); //日期值取yyyy-MM-dd if (StringUtils.isNotBlank(fieldValue) && fieldValue.length() > 10 && SalaryDateUtil.parse(fieldValue, DATE_TIME_FORMATTER_PATTERN) != null) { - fieldValue = fieldValue.substring(0, 10); + if (StringUtils.isNotBlank(salaryDateFormat)) { + fieldValue = fieldValue.substring(0, salaryDateFormat.length()); + } else { + fieldValue = fieldValue.substring(0, 10); + } } formulaVarValues.add(new FormulaVarValue().setFieldId(fieldId).setFieldValue(fieldValue)); } @@ -208,7 +215,7 @@ public class CalculateFormulaVarBO { formulaVarValues.addAll(salaryAcctCalculateBO.getIssuedFieldIds().stream() .map(fieldId -> { String originResultValue = salaryAcctResultPOMap.getOrDefault( - salaryCodeItemMap.get(fieldId),SalaryAcctResultPO.builder().originResultValue("").build()) + salaryCodeItemMap.get(fieldId), SalaryAcctResultPO.builder().originResultValue("").build()) .getOriginResultValue(); String fieldId2 = SalaryFormulaReferenceEnum.ISSUED.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR @@ -520,7 +527,11 @@ public class CalculateFormulaVarBO { String fieldValue = map.getOrDefault(fieldName, StringUtils.EMPTY); //判断是否是日期,日期值取yyyy-MM-dd if (StringUtils.isNotBlank(fieldValue) && fieldValue.length() > 10 && SalaryDateUtil.parse(fieldValue, DATE_TIME_FORMATTER_PATTERN) != null) { - fieldValue = fieldValue.substring(0, 10); + if (StringUtils.isNotBlank(salaryDateFormat)) { + fieldValue = fieldValue.substring(0, salaryDateFormat.length()); + } else { + fieldValue = fieldValue.substring(0, 10); + } } return new FormulaVarValue().setFieldId(fieldId).setFieldValue(fieldValue); }).collect(Collectors.toList()));