diff --git a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java index 6ed15c5a7..74835472d 100644 --- a/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java +++ b/src/com/engine/salary/entity/salaryacct/bo/CalculateFormulaVarBO.java @@ -207,7 +207,9 @@ public class CalculateFormulaVarBO { Map salaryAcctResultPOMap = SalaryEntityUtil.convert2Map(salaryAcctResultPOS, SalaryAcctResultPO::getSalaryItemId); formulaVarValues.addAll(salaryAcctCalculateBO.getIssuedFieldIds().stream() .map(fieldId -> { - String originResultValue = salaryAcctResultPOMap.get(salaryCodeItemMap.get(fieldId)).getOriginResultValue(); + String originResultValue = salaryAcctResultPOMap.getOrDefault( + salaryCodeItemMap.get(fieldId),SalaryAcctResultPO.builder().originResultValue("").build()) + .getOriginResultValue(); String fieldId2 = SalaryFormulaReferenceEnum.ISSUED.getValue() + SalaryFormulaFieldConstant.FIELD_ID_SEPARATOR + fieldId; diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java index d70e63448..5a72e9641 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveExcelBO.java @@ -11,11 +11,13 @@ import com.engine.salary.entity.salaryarchive.param.SalaryArchiveImportHandlePar import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentManageRangeSaveParam; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.salaryarchive.*; +import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.enums.salarysob.TargetTypeEnum; import com.engine.salary.util.SalaryDateUtil; import com.engine.salary.util.SalaryI18nUtil; @@ -351,12 +353,12 @@ public class SalaryArchiveExcelBO extends Service { String validType = importHandleParam.getEmpValidType(); List emps = new ArrayList<>(); //外部人员 - if(importHandleParam.isExtEmp()){ + if (importHandleParam.isExtEmp()) { emps = importHandleParam.getEmployees().stream().filter(e -> (StringUtils.isBlank(userName) || Objects.equals(e.getUsername(), userName)) && (StringUtils.isBlank(deparmentName) || Objects.equals(e.getDepartmentName(), deparmentName)) && (StringUtils.isBlank(mobileName) || Objects.equals(e.getMobile(), mobileName))).collect(Collectors.toList()); - }else { + } else { if ("0".equals(validType)) { //“0”代表姓名+部门+手机号的匹配原则,“1”代表工号为唯一匹配原则 emps = importHandleParam.getEmployees().stream().filter(e -> @@ -651,6 +653,30 @@ public class SalaryArchiveExcelBO extends Service { effectiveTime, finalSalaryArchive, adjustReason, importHandleParam, key.toString(), cellVal, map); } } + + //账套关联 + Long finalEmployeeId = employeeId; + String sobIds = Optional.ofNullable(map.get("薪资账套ids")).orElse("").toString(); + List salarySobRangeSaveParams = new ArrayList<>(); + if (StringUtils.isNotBlank(sobIds)) { + salarySobRangeSaveParams = Arrays.stream(sobIds.split(",")).map(Long::valueOf).map(sobId -> { + + SalarySobRangeSaveParam.SalarySobRangeTargetParam salarySobRangeTargetParam = new SalarySobRangeSaveParam.SalarySobRangeTargetParam(); + salarySobRangeTargetParam.setTargetId(finalEmployeeId); + salarySobRangeTargetParam.setTargetType(TargetTypeEnum.EMPLOYEE); + salarySobRangeTargetParam.setEmployeeStatus(SalaryEmployeeStatusEnum.values()); + + SalarySobRangeSaveParam sobRangeSaveParam = new SalarySobRangeSaveParam(); + sobRangeSaveParam.setSalarySobId(sobId); + sobRangeSaveParam.setTargetParams(Collections.singletonList(salarySobRangeTargetParam)); + sobRangeSaveParam.setIncludeType(1); + sobRangeSaveParam.setEmployeeStatus(SalaryEmployeeStatusEnum.values()); + + return sobRangeSaveParam; + }).collect(Collectors.toList()); + } + + // 如果当前校验行没问题,修改起始发薪日期和最终发薪日期等 if (!isError) { Optional optionalUpdate = importHandleParam.getSalaryArchiveUpdates().stream().filter(f -> f.getId().equals(finalSalaryArchive.getId())).findFirst(); @@ -666,6 +692,8 @@ public class SalaryArchiveExcelBO extends Service { saves.add(finalSalaryArchive); importHandleParam.setSalaryArchiveSaves(saves); } + //保存账套关联 + importHandleParam.setSalaryArchiveSobSaves(salarySobRangeSaveParams); } else { // 将前面添加好的数据给过滤掉 importHandleParam.setSalaryArchiveSaves(importHandleParam.getSalaryArchiveSaves().stream().filter(f -> !finalSalaryArchive.getId().equals(f.getId())).collect(Collectors.toList())); diff --git a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java index 17b552ca6..a9bd77eb5 100644 --- a/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java +++ b/src/com/engine/salary/entity/salaryarchive/param/SalaryArchiveImportHandleParam.java @@ -4,6 +4,7 @@ import com.engine.salary.entity.datacollection.DataCollectionEmployee; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; @@ -170,5 +171,5 @@ public class SalaryArchiveImportHandleParam { /** * 薪资档案-账套关联 */ -// List salaryArchiveSobSaves; + List salaryArchiveSobSaves; } diff --git a/src/com/engine/salary/entity/salarysob/bo/SalarySobDuplicateBO.java b/src/com/engine/salary/entity/salarysob/bo/SalarySobDuplicateBO.java index f22d002a9..28f6b8b69 100644 --- a/src/com/engine/salary/entity/salarysob/bo/SalarySobDuplicateBO.java +++ b/src/com/engine/salary/entity/salarysob/bo/SalarySobDuplicateBO.java @@ -191,6 +191,9 @@ public class SalarySobDuplicateBO { .description(salarySobItem.getDescription()) .canDelete(salarySobItem.getCanDelete()) .itemHide(salarySobItem.getItemHide()) + .roundingMode(salarySobItem.getRoundingMode()) + .pattern(salarySobItem.getPattern()) + .valueType(salarySobItem.getValueType()) .creator(employeeId) .createTime(now) .updateTime(now) diff --git a/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java b/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java index e1b89f1fe..02d9cb735 100644 --- a/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java +++ b/src/com/engine/salary/enums/salarysob/SalaryEmployeeStatusEnum.java @@ -19,13 +19,6 @@ import java.util.Objects; **/ public enum SalaryEmployeeStatusEnum implements BaseEnum { -// ALL(10, "全部", 85155), -// //在职,对应人力资源表中状态,试用0,正式1,临时2,试用延期3 -// NORMAL(1, "试用,正式,临时,临时延期", 100120), -// //离职老,对应人力资源表中状态,解雇4,离职5,退休6 -// UNAVAILABLE(2, "解雇,离职,退休", 85902), - - TRIAL(0, "试用", 100121), FORMAL(1, "正式", 100122), diff --git a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java index 4b45a13f1..87137b0e8 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveExcelServiceImpl.java @@ -14,6 +14,7 @@ import com.engine.salary.entity.salaryarchive.param.SalaryArchiveQueryParam; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam; import com.engine.salary.entity.taxagent.dto.TaxAgentManageRangeEmployeeDTO; import com.engine.salary.entity.taxagent.param.TaxAgentRangeSaveParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; @@ -86,6 +87,10 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch return ServiceUtil.getService(TaxAgentManageRangeServiceImpl.class, user); } + private SalarySobRangeService getSalarySobRangeService(User user) { + return ServiceUtil.getService(SalarySobRangeServiceImpl.class, user); + } + public SalarySysConfService getSalarySysConfService(User user) { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } @@ -582,10 +587,6 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch // 错误sheet数据 List> errorData = new ArrayList<>(); - // 获取匹配规则 - SalarySysConfPO salarySysConfPO = getSalarySysConfService(user).getOneByCode("matchEmployeeMode"); - String confValue = (salarySysConfPO != null && salarySysConfPO.getConfValue() != null && !"".equals(salarySysConfPO.getConfValue())) ? salarySysConfPO.getConfValue() : "0"; - for (int i = 0; i < data.size(); i++) { Map map = data.get(i); @@ -820,7 +821,7 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch List salaryArchiveItemSaves = importHandleParam.getSalaryArchiveItemSaves(); List salaryArchiveItemDelSalaryItemIds = importHandleParam.getSalaryArchiveItemDelSalaryItemIds(); List taxAgentRanges = importHandleParam.getTaxAgentRanges(); -// List salaryArchiveSobSaves = importHandleParam.getSalaryArchiveSobSaves(); + List salaryArchiveSobSaves = importHandleParam.getSalaryArchiveSobSaves(); // 新增薪资档案 @@ -859,5 +860,9 @@ public class SalaryArchiveExcelServiceImpl extends Service implements SalaryArch if (CollectionUtils.isNotEmpty(taxAgentRanges)) { taxAgentRanges.forEach(getTaxAgentManageRangeService(user)::save); } + + if (CollectionUtils.isNotEmpty(salaryArchiveSobSaves)) { + salaryArchiveSobSaves.forEach(getSalarySobRangeService(user)::save); + } } } diff --git a/src/com/engine/salary/util/SalaryEnumUtil.java b/src/com/engine/salary/util/SalaryEnumUtil.java index 0294bd14c..5e1eb1954 100644 --- a/src/com/engine/salary/util/SalaryEnumUtil.java +++ b/src/com/engine/salary/util/SalaryEnumUtil.java @@ -35,6 +35,25 @@ public class SalaryEnumUtil { return (T) Arrays.stream(list).filter(item -> Objects.equals(item.getValue(), value)).findFirst().get(); } + /** + * 根据枚举的value获取枚举对象 + * + * @param value + * @param clazz + * @param + * @param + * @return + */ + public static , R> T enumMatchByValue(R value, Class clazz) { + T[] enumConstants = clazz.getEnumConstants(); + for (T enumConstant : enumConstants) { + if (Objects.equals(enumConstant.getValue(), value)) { + return enumConstant; + } + } + return null; + } + /** * 枚举数组转字符串 * @@ -73,6 +92,7 @@ public class SalaryEnumUtil { for (BaseEnum enumMessage : enums) { Map hashMap = new HashMap(); + hashMap.put("enum", enumMessage); hashMap.put("value", enumMessage.getValue()); hashMap.put("defaultLabel", enumMessage.getDefaultLabel()); hashMap.put("labelId", enumMessage.getLabelId());