From 59c32b24e66ef93a7b01f3dcf3467848b8522abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 25 Apr 2023 17:08:42 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=A1=A5=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maintainer/MaintainerController.java | 23 ++++- .../salaryacct/SalaryAcctManager.java | 84 ++++++++++++------- .../salaryacct/SalaryAcctSupplementParam.java | 31 +++++-- .../maintainer/salaryacct/SupAcctThread.java | 42 ++++++++++ 4 files changed, 142 insertions(+), 38 deletions(-) create mode 100644 src/com/engine/salary/maintainer/salaryacct/SupAcctThread.java diff --git a/src/com/engine/salary/maintainer/MaintainerController.java b/src/com/engine/salary/maintainer/MaintainerController.java index 245844bc9..1122d6681 100644 --- a/src/com/engine/salary/maintainer/MaintainerController.java +++ b/src/com/engine/salary/maintainer/MaintainerController.java @@ -6,6 +6,7 @@ import com.engine.salary.maintainer.salaryacct.SalaryAcctManager; import com.engine.salary.maintainer.salaryacct.SalaryAcctSupplementParam; import com.engine.salary.util.ResponseResult; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; @@ -16,7 +17,9 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; +import java.util.Arrays; import java.util.Map; +import java.util.stream.Collectors; /** * 累计专项附加扣除 @@ -48,9 +51,25 @@ public class MaintainerController { @Path("/acct/supplement") @Produces(MediaType.APPLICATION_JSON) public String supplementAcctRecord(@Context HttpServletRequest request, @Context HttpServletResponse response) { + String type = request.getParameter("type"); + String salaryAcctRecordStrIds = request.getParameter("salaryAcctRecordStrIds"); + String salarySobStrIds = request.getParameter("salarySobStrIds"); + String salaryItemStrIds = request.getParameter("salaryItemStrIds"); SalaryAcctSupplementParam queryParam = SalaryAcctSupplementParam.builder() - .salaryAcctRecordId(Long.parseLong(request.getParameter("salaryAcctRecordId"))) - .salaryItemStrIds(request.getParameter("salaryItemStrIds")).build(); + .type(type) + .salaryAcctRecordStrIds(salaryAcctRecordStrIds) + .salarySobStrIds(salarySobStrIds) + .salaryItemStrIds(salaryItemStrIds) + .build(); + if (StringUtils.isNotBlank(salaryAcctRecordStrIds)) { + queryParam.setSalaryAcctRecordIds(Arrays.stream(salaryAcctRecordStrIds.split(",")).map(Long::valueOf).collect(Collectors.toList())); + } + if (StringUtils.isNotBlank(salarySobStrIds)) { + queryParam.setSalarySobIds(Arrays.stream(salarySobStrIds.split(",")).map(Long::valueOf).collect(Collectors.toList())); + } + if (StringUtils.isNotBlank(salaryItemStrIds)) { + queryParam.setSalaryItemIds(Arrays.stream(salaryItemStrIds.split(",")).map(Long::valueOf).collect(Collectors.toList())); + } User user = HrmUserVarify.getUser(request, response); return new ResponseResult>(user).run(getSalaryAcctManager(user)::supplementAcctRecord, queryParam); } diff --git a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java index b6cb9a8fd..8894536a2 100644 --- a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java +++ b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java @@ -104,9 +104,6 @@ public class SalaryAcctManager extends Service { return ServiceUtil.getService(SalarySobAdjustRuleServiceImpl.class, user); } - private SalarySobItemHideService getSalarySobItemHideService(User user) { - return ServiceUtil.getService(SalarySobItemHideServiceImpl.class, user); - } private SalaryAcctCalculateService getSalaryAcctCalculateService(User user) { return ServiceUtil.getService(SalaryAcctCalculateServiceImpl.class, user); @@ -151,14 +148,41 @@ public class SalaryAcctManager extends Service { public void supplementAcctRecord(SalaryAcctSupplementParam param) { ValidUtil.doValidator(param); - List salaryItemIds = Arrays.stream(param.getSalaryItemStrIds().split(",")).map(Long::valueOf).collect(Collectors.toList()); - param.setSalaryItemIds(salaryItemIds); - if(CollectionUtils.isEmpty(salaryItemIds)){ - throw new SalaryRunTimeException("薪资项目为空!"); + //待补算的记录 + List salaryAcctRecordPOS = new ArrayList<>(); + + if (StringUtils.equals(param.getType(), "sob")) { + + List salarySobIds = param.getSalarySobIds(); + + if (CollectionUtils.isEmpty(salarySobIds)) { + throw new SalaryRunTimeException("补算账套为空!"); + } + //获取账套下面所有的核算记录 + salaryAcctRecordPOS = getSalaryAcctRecordService(user).listBySalarySobIds(salarySobIds); + + if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { + throw new SalaryRunTimeException("账套下不存在核算记录"); + } + + } else if (StringUtils.equals(param.getType(), "record")) { + + List salaryAcctRecordIds = param.getSalaryAcctRecordIds(); + + salaryAcctRecordPOS = getSalaryAcctRecordService(user).listByIds(salaryAcctRecordIds); + + if (CollectionUtils.isEmpty(salaryAcctRecordPOS)) { + throw new SalaryRunTimeException("核算记录不存在"); + } + } else { + throw new SalaryRunTimeException("补算方式异常!"); } - calculate(param); + salaryAcctRecordPOS.forEach(salaryAcctRecordPO -> { + param.setSalaryAcctRecordId(salaryAcctRecordPO.getId()); + calculate(param); + }); } @@ -170,12 +194,15 @@ public class SalaryAcctManager extends Service { public void calculate(SalaryAcctSupplementParam calculateParam) { log.info("补算开始{}", calculateParam); + //核算记录 + Long salaryAcctRecordId = calculateParam.getSalaryAcctRecordId(); + //当前登陆人员 DataCollectionEmployee simpleEmployee = new DataCollectionEmployee(); simpleEmployee.setEmployeeId((long) user.getUID()); // 检查是否正在核算中 - SalaryAcctProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId()); + SalaryAcctProgressDTO salaryAcctProgressDTO = getSalaryAcctProgressService(user).getProgress("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId); if (Objects.nonNull(salaryAcctProgressDTO) && salaryAcctProgressDTO.isStatus() && Optional.ofNullable(salaryAcctProgressDTO.getProgress()).orElse(BigDecimal.ZERO).compareTo(BigDecimal.ONE) < 0) { return; } @@ -188,20 +215,16 @@ public class SalaryAcctManager extends Service { .setProgress(BigDecimal.ZERO) .setStatus(true) .setMessage(StringUtils.EMPTY); - getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), initProgress); - new Thread() { - public void run() { - calculate(calculateParam, simpleEmployee); - } - }.start(); - + getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, initProgress); + calculate(calculateParam, simpleEmployee); } public void calculate(SalaryAcctSupplementParam calculateParam, DataCollectionEmployee simpleEmployee) { + Long salaryAcctRecordId = calculateParam.getSalaryAcctRecordId(); try { // 1、查询薪资核算记录 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(calculateParam.getSalaryAcctRecordId()); + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); if (Objects.isNull(salaryAcctRecordPO)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); } @@ -211,7 +234,7 @@ public class SalaryAcctManager extends Service { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资账套不存在或已被删除")); } // 2、查询薪资核算记录的薪资周期、考勤周期等 - SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(calculateParam.getSalaryAcctRecordId()); + SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctRecordId); // 3、查询薪资核算记录所用薪资账套的薪资项目副本 List salarySobItemPOS = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); if (CollectionUtils.isEmpty(salarySobItemPOS)) { @@ -235,7 +258,7 @@ public class SalaryAcctManager extends Service { List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); Map acctResults = new HashMap<>(); if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { - List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(calculateParam.getSalaryAcctRecordId())); + List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); acctResults = Optional.ofNullable(acctResultPOS) .orElse(new ArrayList<>()) .stream() @@ -261,7 +284,7 @@ public class SalaryAcctManager extends Service { } // 11.1、初始化进度 SalaryAcctProgressDTO initProgress = new SalaryAcctProgressDTO().setTitle(SalaryI18nUtil.getI18nLabel(97515, "核算中")).setTitleLabelId(97515L).setTotalQuantity(salaryAcctEmployeePOS.size() * 2 + 1).setCalculatedQuantity(0).setProgress(BigDecimal.ZERO).setStatus(true).setMessage(StringUtils.EMPTY); - getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), initProgress); + getSalaryAcctProgressService(user).initProgress("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, initProgress); // 12、对薪资核算人员进行拆分 List> partition = Lists.partition(salaryAcctEmployeePOS, 5000); // 12.1、监控子线程的任务执行 @@ -307,7 +330,7 @@ public class SalaryAcctManager extends Service { if (!allSuccess) { // 薪资核算实现的线程的错误信息 String errorMsg = calculateResults.stream().filter(result -> !result.isStatus()).map(SalaryAcctCalculateBO.Result::getErrMsg).collect(Collectors.joining("|")); - getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), errorMsg); + getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, errorMsg); // 删除薪资核算临时存储表中的数据 getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey); return; @@ -315,11 +338,11 @@ public class SalaryAcctManager extends Service { // 15、处理核算结果临时表数据 handleSalaryAcctResultTemp(calculateParam, calculateKey); - getSalaryAcctProgressService(user).finish("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), true); + getSalaryAcctProgressService(user).finish("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, true); } catch (Exception e) { log.info("薪资核算出错:{}", e.getMessage(), e); - getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + calculateParam.getSalaryAcctRecordId(), SalaryI18nUtil.getI18nLabel(99642, "薪资核算出错") + ": " + e.getMessage()); + getSalaryAcctProgressService(user).fail("SUPPLEMENT_ACCT_PROGRESS_" + salaryAcctRecordId, SalaryI18nUtil.getI18nLabel(99642, "薪资核算出错") + ": " + e.getMessage()); } } @@ -336,15 +359,14 @@ public class SalaryAcctManager extends Service { List salaryItemIds = calculateParam.getSalaryItemIds(); getSalaryAcctResultMapper().deleteBySalaryAcctRecordIdAndSalaryItemIds(calculateParam.getSalaryAcctRecordId(), salaryItemIds); // 保存薪资的薪资核算结果 - List salaryAcctResultPOS = salaryAcctResultTempPOS.stream().filter(salaryAcctResultTempPO -> salaryItemIds.contains(salaryAcctResultTempPO.getSalaryItemId())).map(e -> { - SalaryAcctResultPO salaryAcctResult = new SalaryAcctResultPO(); - BeanUtils.copyProperties(e, salaryAcctResult); - return salaryAcctResult; - }).collect(Collectors.toList()); + List salaryAcctResultPOS = salaryAcctResultTempPOS.stream() + .filter(salaryAcctResultTempPO -> salaryItemIds.contains(salaryAcctResultTempPO.getSalaryItemId())) + .map(e -> { + SalaryAcctResultPO salaryAcctResult = new SalaryAcctResultPO(); + BeanUtils.copyProperties(e, salaryAcctResult); + return salaryAcctResult; + }).collect(Collectors.toList()); getSalaryAcctResultService(user).batchSave(salaryAcctResultPOS); - //保存核算报表数据 -// List salaryAcctResultReportPOS = SalaryAcctResultReportBO.convert2ReportPO(salaryAcctResultTempPOS, calculateParam.getEmps()); -// getSalaryAcctReportService(user).batchSave(salaryAcctResultReportPOS); // 删除薪资核算临时存储表中的数据 getSalaryAcctResultTempService(user).deleteByCalculateKey(calculateKey); } diff --git a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctSupplementParam.java b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctSupplementParam.java index d3e3c5b95..b70912377 100644 --- a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctSupplementParam.java +++ b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctSupplementParam.java @@ -22,12 +22,33 @@ import java.util.List; @AllArgsConstructor public class SalaryAcctSupplementParam { - @DataCheck(require = true,message = "参数错误,薪资核算记录ID不能为空") - private Long salaryAcctRecordId; - @DataCheck(require = true,message = "参数错误,薪资项目ID不能为空") + //前端传入 + /** + * 补算方式,0按核算记录进行补充核算,1按账套进行补充核算 + */ + @DataCheck(require = true, message = "补算方式为空") + private String type; + + /** + * 按核算记录进行补充核算 + */ + private List salaryAcctRecordIds; + private String salaryAcctRecordStrIds; + + /** + * 按账套进行补充核算 + */ + private List salarySobIds; + private String salarySobStrIds; + + /** + * 待核算的项目 + */ + @DataCheck(require = true, message = "补算项目为空") + private List salaryItemIds; private String salaryItemStrIds; - private List salaryItemIds; - + //核算使用 + private Long salaryAcctRecordId; } diff --git a/src/com/engine/salary/maintainer/salaryacct/SupAcctThread.java b/src/com/engine/salary/maintainer/salaryacct/SupAcctThread.java new file mode 100644 index 000000000..696ac6ad5 --- /dev/null +++ b/src/com/engine/salary/maintainer/salaryacct/SupAcctThread.java @@ -0,0 +1,42 @@ +package com.engine.salary.maintainer.salaryacct; + +import com.engine.salary.entity.datacollection.DataCollectionEmployee; + +public abstract class SupAcctThread implements Runnable { + + private SalaryAcctSupplementParam calculateParam; + + private DataCollectionEmployee simpleEmployee; + + public SalaryAcctSupplementParam getCalculateParam() { + return calculateParam; + } + + public void setCalculateParam(SalaryAcctSupplementParam calculateParam) { + this.calculateParam = calculateParam; + } + + public DataCollectionEmployee getSimpleEmployee() { + return simpleEmployee; + } + + public void setSimpleEmployee(DataCollectionEmployee simpleEmployee) { + this.simpleEmployee = simpleEmployee; + } + + public SupAcctThread(SalaryAcctSupplementParam calculateParam, DataCollectionEmployee simpleEmployee) { + this.calculateParam = calculateParam; + this.simpleEmployee = simpleEmployee; + } + + @Override + public void run() { + try { + execute(calculateParam, simpleEmployee); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public abstract void execute(SalaryAcctSupplementParam calculateParam, DataCollectionEmployee simpleEmployee) throws Exception; +} From cb36dc290422b2b3b24e6656e75e85f7ae0bc362 Mon Sep 17 00:00:00 2001 From: sy Date: Tue, 25 Apr 2023 17:38:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E6=A1=A3=E6=A1=88=EF=BC=8C=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD=E5=A2=9E=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E5=B9=B4=E6=9C=88=E7=9A=84=E6=A0=BC=E5=BC=8F=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIArchivesBiz.java | 27 ++++++++++++++++--- .../engine/salary/util/SalaryDateUtil.java | 2 +- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index a41f1f72a..fedf06e52 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -40,9 +40,7 @@ import com.engine.salary.mapper.sicategory.ICategoryMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeDetailMapper; import com.engine.salary.mapper.sischeme.InsuranceSchemeMapper; import com.engine.salary.mapper.taxagent.TaxAgentMapper; -import com.engine.salary.util.SalaryAssert; -import com.engine.salary.util.SalaryEntityUtil; -import com.engine.salary.util.SalaryFormItemUtil; +import com.engine.salary.util.*; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -649,6 +647,13 @@ public class SIArchivesBiz { InsuranceArchivesOtherSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesOtherSaveParam.class); SalaryAssert.notNull("员工id为空", param, param.getEmployeeId()); + if (param.getOtherStartTime() != null && !SalaryDateUtil.checkYearMonth(param.getOtherStartTime())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542532, "其他福利起始缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); + } + if (param.getOtherEndTime() != null && !SalaryDateUtil.checkYearMonth(param.getOtherEndTime())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542533, "其他福利最后缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); + } + // List oldOtherInfoList = otherSchemeMapper.getOtherByEmployeeId(Collections.singletonList(param.getEmployeeId())); List oldOtherInfoList = otherSchemeMapper.getOtherByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() .employeeId(param.getEmployeeId()) @@ -700,6 +705,13 @@ public class SIArchivesBiz { InsuranceArchivesFundSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesFundSaveParam.class); SalaryAssert.notNull("员工id为空", param, param.getEmployeeId()); + if (param.getFundStartTime() != null && !SalaryDateUtil.checkYearMonth(param.getFundStartTime())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542530, "公积金起始缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); + } + if (param.getFundEndTime() != null && !SalaryDateUtil.checkYearMonth(param.getFundEndTime())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542531, "公积金最后缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); + } + // List oldFundInfoList = fundSchemeMapper.getFundByEmployeeId(Collections.singletonList(param.getEmployeeId())); List oldFundInfoList = fundSchemeMapper.getFundByEmployeeIdAndPayOrg(InsuranceArchivesEmployeePO.builder() .employeeId(param.getEmployeeId()) @@ -755,6 +767,15 @@ public class SIArchivesBiz { InsuranceArchivesSocialSaveParam param = JSONObject.parseObject(paramReq.getBaseForm(), InsuranceArchivesSocialSaveParam.class); SalaryAssert.notNull("员工id为空", param, param.getEmployeeId()); + + boolean c = SalaryDateUtil.checkYearMonth(param.getSocialStartTime()); + if (param.getSocialStartTime() != null && !SalaryDateUtil.checkYearMonth(param.getSocialStartTime())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542528, "社保起始缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); + } + if (param.getSocialEndTime() != null && !SalaryDateUtil.checkYearMonth(param.getSocialEndTime())) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(542529, "社保最后缴纳时间格式错误,正确格式为YYYY-MM或者yyyy-MM-dd")); + } + // //删除社保数据 // socialSchemeMapper.batchDeleteByEmployeeIds(Collections.singletonList(param.getEmployeeId())); diff --git a/src/com/engine/salary/util/SalaryDateUtil.java b/src/com/engine/salary/util/SalaryDateUtil.java index 3a5f362e2..2a7566ca4 100644 --- a/src/com/engine/salary/util/SalaryDateUtil.java +++ b/src/com/engine/salary/util/SalaryDateUtil.java @@ -46,7 +46,7 @@ public class SalaryDateUtil { /** * yyyy-MM **/ - private static final String MONTH_REGEX = "^([1-9]\\d{3})-(([0]{0,1}[1-9])|([1][0-2]))$"; + private static final String MONTH_REGEX = "^([1-9]\\d{3})-(([0][1-9])|([1][0-2]))$"; /** * yyyy-MM-dd **/ From 1529a30768106993da0549e806f2362d009ad666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 27 Apr 2023 09:22:20 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E8=BF=87=E6=BB=A4=E6=A1=A3=E6=A1=88=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E5=BE=97=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD=E4=B8=80?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=B8=BA=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java index d34efd87f..9a0511c73 100644 --- a/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/RemoteExcelServiceImpl.java @@ -344,7 +344,8 @@ public class RemoteExcelServiceImpl extends Service implements RemoteExcelServic .stream().map(TaxAgentPO::getId) .collect(Collectors.toSet()); return salaryItems.stream() - .filter(e -> e.getUseInEmployeeSalary() == 0) + //薪资项目取消过滤档案,使得导入功能一页面为准 +// .filter(e -> e.getUseInEmployeeSalary() == 0) .filter(e -> getSalaryItemService(user).filterInRange(taxAgentIds, e)) .map(e -> { FormulaVar formulaVar = new FormulaVar(); From 0aabcd047111d439576de1fd8f5c5984e89bbc8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 28 Apr 2023 14:37:59 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=B0=86=E9=99=A4=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E7=9A=84=E9=A1=B9=E7=9B=AE=E5=A4=96=E7=9A=84?= =?UTF-8?q?=E6=89=80=E6=9C=89=E7=9A=84=E5=80=BC=E9=83=BD=E9=94=81=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/SalaryAcctManager.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java index 8894536a2..1c786c73d 100644 --- a/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java +++ b/src/com/engine/salary/maintainer/salaryacct/SalaryAcctManager.java @@ -254,8 +254,21 @@ public class SalaryAcctManager extends Service { // 7、查询考勤引用的所有字段 List attendQuoteFieldListDTOS = getAttendQuoteFieldService(user).listAll(); - //核算锁定值 - List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); +// //核算锁定值 +// List lockSalaryItemIds = salaryAcctRecordPO.getLockSalaryItemIds(); +// Map acctResults = new HashMap<>(); +// if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { +// List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); +// acctResults = Optional.ofNullable(acctResultPOS) +// .orElse(new ArrayList<>()) +// .stream() +// .filter(po -> lockSalaryItemIds.contains(po.getSalaryItemId())) +// .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); +// } + + //将除重新核算的项目外的所有的值都锁定 + List salaryItemIds = calculateParam.getSalaryItemIds(); + List lockSalaryItemIds = salaryItemPOS.stream().map(SalaryItemPO::getId).filter(id -> !salaryItemIds.contains(id)).collect(Collectors.toList()); Map acctResults = new HashMap<>(); if (CollectionUtils.isNotEmpty(lockSalaryItemIds)) { List acctResultPOS = getSalaryAcctResultService(user).listBySalaryAcctRecordIds(Collections.singleton(salaryAcctRecordId)); @@ -266,6 +279,7 @@ public class SalaryAcctManager extends Service { .collect(Collectors.toMap(po -> po.getSalaryItemId() + "_" + po.getSalaryAcctEmpId(), a -> a, (a, b) -> a)); } + // 8、查询公式详情 Set formulaIds = SalaryEntityUtil.properties(salarySobItemPOS, SalarySobItemPO::getFormulaId); formulaIds.addAll(SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getFormulaId));