From 9cee19397d81a8bba424f746977b8dec42e633d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 6 Mar 2025 17:35:25 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=A0=B8=E7=AE=97?= =?UTF-8?q?=E5=85=B7=E4=BD=93=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctResultServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 67e873658..75c1f0fc5 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -193,6 +193,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe private VariableItemService getVariableItemService(User user) { return ServiceUtil.getService(VariableItemServiceImpl.class, user); } + private SalaryApprovalRuleService getSalaryApprovalRuleService(User user) { return ServiceUtil.getService(SalaryApprovalRuleServiceImpl.class, user); } @@ -918,7 +919,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + calculateParam.getSalaryAcctRecordId(), true); //更新薪资核算记录最后操作日期 - getSalaryAcctRecordService(user).updateDate(salaryAcctRecordPO.getId(),new Date()); + getSalaryAcctRecordService(user).updateDate(salaryAcctRecordPO.getId(), new Date()); stopWatch.stop(); log.info(stopWatch.prettyPrint()); @@ -926,6 +927,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 记录日志 // 查询操作日志的targetName String targetName = getSalaryAcctRecordService(user).getLogTargetNameById(calculateParam.getSalaryAcctRecordId()); + Collection ids = calculateParam.getIds(); + if (CollectionUtils.isNotEmpty(ids)) { + targetName += ids; + } LoggerContext loggerContext = new LoggerContext<>(); loggerContext.setUser(user); loggerContext.setTargetId(String.valueOf(calculateParam.getSalaryAcctRecordId())); From 3fb29b2c3dcef4a63e45081578d22f78030886b3 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 12 Mar 2025 18:21:04 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E5=81=9C=E8=96=AAaction=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/action/CheckStopSalaryAction.java | 7 ++++++- src/com/engine/salary/action/StopSalaryAction.java | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/action/CheckStopSalaryAction.java b/src/com/engine/salary/action/CheckStopSalaryAction.java index 78b3c0a7c..6243e6ed5 100644 --- a/src/com/engine/salary/action/CheckStopSalaryAction.java +++ b/src/com/engine/salary/action/CheckStopSalaryAction.java @@ -96,15 +96,18 @@ public class CheckStopSalaryAction implements Action { List taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName); if(CollectionUtils.isEmpty(taxAgentPOS)){ requestInfo.getRequestManager().setMessage("个税扣缴义务人不存在!"); + log.error("停薪检查异常 requestId:{} msg:{}", requestInfo.getRequestid(), taxAgentName + "个税扣缴义务人不存在!"); return FAILURE_AND_CONTINUE; } Long taxAgentId = Long.valueOf( taxAgentPOS.get(0).getId() ); Long employeeId = Long.valueOf(importDataMap.getOrDefault("员工id", "-1").toString()); if( importDataMap.get("最后发薪日期") == null || StringUtils.isBlank(importDataMap.get("最后发薪日期").toString())){ requestInfo.getRequestManager().setMessage("缺少最后发薪日期字段!"); + log.error("停薪检查异常 requestId:{} msg:{}", requestInfo.getRequestid(), "缺少最后发薪日期字段!"); return FAILURE_AND_CONTINUE; }else if(SalaryDateUtil.stringToDate(importDataMap.get("最后发薪日期").toString()) == null){ requestInfo.getRequestManager().setMessage("最后发薪日期格式错误,格式为yyyy-MM-dd"); + log.error("停薪检查异常 requestId:{} msg:{}", requestInfo.getRequestid(), "最后发薪日期格式错误,格式为yyyy-MM-dd" + importDataMap.get("最后发薪日期").toString()); return FAILURE_AND_CONTINUE; } @@ -115,15 +118,17 @@ public class CheckStopSalaryAction implements Action { List salaryArchiveList = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().taxAgentId(taxAgentId).employeeId(employeeId).deleteType(NumberUtils.INTEGER_ZERO).build()); if(CollectionUtils.isEmpty(salaryArchiveList)){ requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工不存在薪资档案,请检查后重试!"); + log.error("停薪检查异常 requestId:{} msg:{}", requestInfo.getRequestid(), taxAgentId +"_"+ employeeId+"该个税扣缴义务人下该员工不存在薪资档案,请检查后重试!"); return FAILURE_AND_CONTINUE; } if(salaryArchiveList.size() > 1){ requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工存在多条薪资档案记录,请检查后重试!"); + log.error("停薪检查异常 requestId:{} msg:{}", requestInfo.getRequestid(), taxAgentId +"_"+ employeeId+"该个税扣缴义务人下该员工存在多条薪资档案记录,请检查后重试!"); return FAILURE_AND_CONTINUE; } } catch (Exception e) { - log.error("停薪校验异常", e); + log.error("停薪检查异常", e); requestInfo.getRequestManager().setMessage(e.getMessage()); return FAILURE_AND_CONTINUE; } diff --git a/src/com/engine/salary/action/StopSalaryAction.java b/src/com/engine/salary/action/StopSalaryAction.java index 6433e4e95..10d4d765a 100644 --- a/src/com/engine/salary/action/StopSalaryAction.java +++ b/src/com/engine/salary/action/StopSalaryAction.java @@ -107,15 +107,18 @@ public class StopSalaryAction implements Action { List taxAgentPOS = getTaxAgentMapper().listByName(taxAgentName); if(CollectionUtils.isEmpty(taxAgentPOS)){ requestInfo.getRequestManager().setMessage("个税扣缴义务人不存在!"); + log.error("停薪异常 requestId:{} msg:{}", requestInfo.getRequestid(), taxAgentName + "个税扣缴义务人不存在!"); return FAILURE_AND_CONTINUE; } Long taxAgentId = Long.valueOf( taxAgentPOS.get(0).getId() ); Long employeeId = Long.valueOf(importDataMap.getOrDefault("员工id", "-1").toString()); if( importDataMap.get("最后发薪日期") == null || StringUtils.isBlank(importDataMap.get("最后发薪日期").toString())){ requestInfo.getRequestManager().setMessage("缺少最后发薪日期字段!"); + log.error("停薪异常 requestId:{} msg:{}", requestInfo.getRequestid(), "缺少最后发薪日期字段!"); return FAILURE_AND_CONTINUE; }else if(SalaryDateUtil.stringToDate(importDataMap.get("最后发薪日期").toString()) == null){ requestInfo.getRequestManager().setMessage("最后发薪日期格式错误,格式为yyyy-MM-dd"); + log.error("停薪异常 requestId:{} msg:{}", requestInfo.getRequestid(), "最后发薪日期格式错误,格式为yyyy-MM-dd" + importDataMap.get("最后发薪日期").toString()); return FAILURE_AND_CONTINUE; } @@ -123,10 +126,12 @@ public class StopSalaryAction implements Action { List salaryArchiveList = getSalaryArchiveService(user).listSome(SalaryArchivePO.builder().taxAgentId(taxAgentId).employeeId(employeeId).deleteType(NumberUtils.INTEGER_ZERO).build()); if(CollectionUtils.isEmpty(salaryArchiveList)){ requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工不存在薪资档案,请检查后重试!"); + log.error("停薪异常 requestId:{} msg:{}", requestInfo.getRequestid(), taxAgentId +"_"+ employeeId+"该个税扣缴义务人下该员工不存在薪资档案,请检查后重试!"); return FAILURE_AND_CONTINUE; } if(salaryArchiveList.size() > 1){ requestInfo.getRequestManager().setMessage("该个税扣缴义务人下该员工存在多条薪资档案记录,请检查后重试!"); + log.error("停薪异常 requestId:{} msg:{}", requestInfo.getRequestid(), taxAgentId +"_"+ employeeId+"该个税扣缴义务人下该员工存在多条薪资档案记录,请检查后重试!"); return FAILURE_AND_CONTINUE; } // 设置最后发薪日期 From a29f8b3da92f701543bf99b776e95d0839f2217a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 17 Mar 2025 11:03:42 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=AF=BC=E5=87=BA=E6=A0=B9=E6=8D=AE=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=B1=BB=E5=9E=8B=E8=AE=BE=E7=BD=AE=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=A0=BC=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsEmployeeServiceImpl.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 1b45b4881..2e49c8353 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -13,6 +13,7 @@ import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; +import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; import com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum; import com.engine.salary.mapper.salaryacct.SalaryAcctEmployeeMapper; import com.engine.salary.report.common.constant.SalaryConstant; @@ -248,12 +249,23 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listAll(); Map salaryAcctRecordMap = SalaryEntityUtil.convert2Map(salaryAcctRecordPOS, SalaryAcctRecordPO::getId, SalaryAcctRecordPO::getAcctTimes); + List salaryItemPOList = getSalaryItemService(user).listAll(); + Map itemDataTypeMap = SalaryEntityUtil.convert2Map(salaryItemPOList, SalaryItemPO::getId, SalaryItemPO::getDataType); + + Map> acctResultValueList = SalaryEntityUtil.group2Map(salaryStatisticsEmployeeDetailResult.getSalaryAcctResultValueList(), SalaryAcctResultPO::getSalaryAcctEmpId); - Map> acctResultValueMap = new HashMap<>(); + Map> acctResultValueMap = new HashMap<>(); acctResultValueList.forEach((k, v) -> { - Map map = new HashMap(); + Map map = new HashMap(); v.forEach(l -> { - map.put(l.getSalaryItemId() + "", l.getResultValue()); + String dataType = itemDataTypeMap.getOrDefault(l.getSalaryItemId(), "string"); + SalaryDataTypeEnum typeEnum = SalaryDataTypeEnum.parseByValue(dataType); + String resultValue = l.getResultValue(); + if (typeEnum == SalaryDataTypeEnum.NUMBER && NumberUtil.isNumber(resultValue)) { + map.put(l.getSalaryItemId() + "", Double.valueOf(resultValue)); + } else { + map.put(l.getSalaryItemId() + "", resultValue); + } }); acctResultValueMap.put(k, map); }); @@ -265,7 +277,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala Map map; for (SalaryAcctEmployeePO se : salaryStatisticsEmployeeDetailResult.getSalaryAcctEmployeeList()) { map = Maps.newHashMap(); - Map resultValueMap = Optional.ofNullable(acctResultValueMap.get(se.getId())).orElse(Maps.newHashMap()); + Map resultValueMap = Optional.ofNullable(acctResultValueMap.get(se.getId())).orElse(Maps.newHashMap()); Map finalMap = map; resultValueMap.forEach((k, v) -> { finalMap.put(k + SalaryConstant.DYNAMIC_SUFFIX, v); From 3b520fcf62d6805b2bc1daa1af60191e53b8360f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 18 Mar 2025 17:31:32 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E7=A4=BE=E4=BF=9D=E5=92=8C=E6=A1=A3?= =?UTF-8?q?=E6=A1=88=E6=89=A7=E8=A1=8C=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../timer/AutoSyncEmpArchiveStartDateJob.java | 11 ++- .../AutoSyncResignationEmpArchiveJob.java | 71 +++++++++++-------- 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java b/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java index 6c817ed4e..683d1ddd0 100644 --- a/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java +++ b/src/com/engine/salary/timer/AutoSyncEmpArchiveStartDateJob.java @@ -42,6 +42,11 @@ import java.util.stream.Collectors; @Slf4j public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { + private String syncInsuranceArchive; + private String syncSalaryArchive; + + private String allStayAddToPay; + private String allGotoFixed; private SalaryArchiveService getSalaryArchiveService(User user) { return ServiceUtil.getService(SalaryArchiveServiceImpl.class, user); } @@ -55,12 +60,6 @@ public class AutoSyncEmpArchiveStartDateJob extends BaseCronJob { return ServiceUtil.getService(SIArchivesServiceImpl.class, user); } - private String syncInsuranceArchive; - private String syncSalaryArchive; - - private String allStayAddToPay; - private String allGotoFixed; - private SalaryArchiveBiz getSalaryArchiveMapper = new SalaryArchiveBiz(); private SocialSchemeMapper getSocialSchemeMapper() { diff --git a/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java b/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java index d5bec89d0..0d9e978c3 100644 --- a/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java +++ b/src/com/engine/salary/timer/AutoSyncResignationEmpArchiveJob.java @@ -31,6 +31,13 @@ import java.util.*; */ public class AutoSyncResignationEmpArchiveJob extends BaseCronJob { + private String syncInsuranceArchive; + private String syncSalaryArchive; + + private String allStayAddToPay; + private String allGotoFixed; + + private SalaryArchiveService getSalaryArchiveService(User user) { return ServiceUtil.getService(SalaryArchiveServiceImpl.class,user); } @@ -73,39 +80,43 @@ public class AutoSyncResignationEmpArchiveJob extends BaseCronJob { } cal.add(Calendar.MONTH, preMonthValue); Map resignationMap = getSalaryEmployeeService(user).getResignationMapByDate(SalaryDateUtil.getFormatDate(cal.getTime())); - // 获取离职人员中没有设置最后发薪日期的薪资档案 - List salaryArchivePOS = getSalaryArchiveService(user).listPayEndDateIsNull(new ArrayList<>(resignationMap.keySet())); - Date now = new Date(); - List needUpdateSalaryArchiveList = new ArrayList<>(); - for(SalaryArchivePO archive : salaryArchivePOS){ - String dismissDate = resignationMap.get(archive.getEmployeeId()); - if (StringUtils.isNotBlank(dismissDate)) { - archive.setPayEndDate(SalaryDateUtil.dateStrToLocalDate(dismissDate)); - archive.setUpdateTime(now); - needUpdateSalaryArchiveList.add(archive); + + if (StringUtils.isBlank(syncSalaryArchive) || !StringUtils.equals(syncSalaryArchive, "false")) { + // 获取离职人员中没有设置最后发薪日期的薪资档案 + List salaryArchivePOS = getSalaryArchiveService(user).listPayEndDateIsNull(new ArrayList<>(resignationMap.keySet())); + Date now = new Date(); + List needUpdateSalaryArchiveList = new ArrayList<>(); + for(SalaryArchivePO archive : salaryArchivePOS){ + String dismissDate = resignationMap.get(archive.getEmployeeId()); + if (StringUtils.isNotBlank(dismissDate)) { + archive.setPayEndDate(SalaryDateUtil.dateStrToLocalDate(dismissDate)); + archive.setUpdateTime(now); + needUpdateSalaryArchiveList.add(archive); + } + } + if (CollectionUtils.isNotEmpty(needUpdateSalaryArchiveList)) { + getSalaryArchiveMapper.batchUpdate(needUpdateSalaryArchiveList); } } - if (CollectionUtils.isNotEmpty(needUpdateSalaryArchiveList)) { - getSalaryArchiveMapper.batchUpdate(needUpdateSalaryArchiveList); - } - - // 获取离职人员中没有设置最后缴纳月的社保福利档案 + if (StringUtils.isBlank(syncInsuranceArchive) || !StringUtils.equals(syncInsuranceArchive, "false")) { + // 获取离职人员中没有设置最后缴纳月的社保福利档案 // List needSyncList = siArchivesBiz.listEndDateIsNull(new ArrayList<>(resignationMap.keySet())); - List needSyncList = getSIArchivesService(user).listEndDateIsNull(new ArrayList<>(resignationMap.keySet())); - // 设置社保、公积金最后缴纳月 - for(InsuranceArchivesBaseInfoPO po : needSyncList){ - String dismissDate = resignationMap.get(po.getEmployeeId()); - if (StringUtils.isNotEmpty(dismissDate)) { - dismissDate = StringUtils.substring(dismissDate,0,7); - // 更新社保最后缴纳月 - Long socialArchivesId = po.getSocialArchivesId(); - getSocialSchemeMapper().updateEndTime(socialArchivesId, dismissDate); - // 更新公积金最后缴纳月 - Long fundArchivesId = po.getFundArchivesId(); - getFundSchemeMapper().updateEndTime(fundArchivesId, dismissDate); - // 更新企业年金及其他福利最后缴纳月 - Long otherArchivesId = po.getOtherArchivesId(); - getOtherSchemeMapper().updateEndTime(otherArchivesId, dismissDate); + List needSyncList = getSIArchivesService(user).listEndDateIsNull(new ArrayList<>(resignationMap.keySet())); + // 设置社保、公积金最后缴纳月 + for(InsuranceArchivesBaseInfoPO po : needSyncList){ + String dismissDate = resignationMap.get(po.getEmployeeId()); + if (StringUtils.isNotEmpty(dismissDate)) { + dismissDate = StringUtils.substring(dismissDate,0,7); + // 更新社保最后缴纳月 + Long socialArchivesId = po.getSocialArchivesId(); + getSocialSchemeMapper().updateEndTime(socialArchivesId, dismissDate); + // 更新公积金最后缴纳月 + Long fundArchivesId = po.getFundArchivesId(); + getFundSchemeMapper().updateEndTime(fundArchivesId, dismissDate); + // 更新企业年金及其他福利最后缴纳月 + Long otherArchivesId = po.getOtherArchivesId(); + getOtherSchemeMapper().updateEndTime(otherArchivesId, dismissDate); + } } } } From c8f281613bec34fc4489324fc20865d014ab5cba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 18 Mar 2025 17:45:00 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=BA=E5=91=98=E6=B5=8F=E8=A7=88=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=A4=9A=E9=80=89=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/SalaryStatisticsEmployeeSalaryQueryParam.java | 3 +++ .../service/impl/SalaryStatisticsEmployeeServiceImpl.java | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java b/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java index a1dbab11b..a5d6b0253 100644 --- a/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java +++ b/src/com/engine/salary/report/entity/param/SalaryStatisticsEmployeeSalaryQueryParam.java @@ -25,6 +25,9 @@ public class SalaryStatisticsEmployeeSalaryQueryParam extends BaseQueryParam { // 关键字 private String keyword; + //人员ids + private List employeeIds; + // 起始年月 private String startDateStr; private Date startDate; diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 2e49c8353..2267440fc 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -344,6 +344,13 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List employeeIds = employeeList.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); } + + //人员浏览按钮筛选 + List employeeIds = queryParam.getEmployeeIds(); + if(CollectionUtils.isNotEmpty(employeeIds)){ + salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); + } + if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return new PageInfo<>(); } From fe4b8b1fb3f7437d43c64e703590df777d6c54df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 19 Mar 2025 17:18:09 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E9=87=87=E7=94=A8=E7=BA=BF=E7=A8=8B=E6=B1=A0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctResultServiceImpl.java | 22 +++++++++++++------ .../sys/constant/SalarySysConstant.java | 5 +++++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 75c1f0fc5..7d6330b10 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -76,6 +76,8 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.LinkedBlockingDeque; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.SALARY_ACCT_SYNC_TYPE; + /** * 薪资核算结果 *

Copyright: Copyright (c) 2022

@@ -863,6 +865,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe // 12.4、是否采用系统算税 TaxDeclarationFunctionEnum taxDeclarationFunction = getSalarySysConfService(user).getTaxDeclaration(); // 12.5、多线程运算,运算结果存放在临时表中 + //是否同步计算 + boolean isSync = "1".equals(getSalarySysConfService(user).getValueByCode(SALARY_ACCT_SYNC_TYPE)); for (List acctEmployeePOS : partition) { SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() .setSalaryAcctRecordPO(salaryAcctRecordPO) @@ -884,13 +888,17 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe .setVariableItems(variableItemPOS) .setTaxDeclarationFunction(taxDeclarationFunction); List finalSalarySobBackItems = salarySobBackItems; - LocalRunnable localRunnable = new LocalRunnable() { - @Override - public void execute() { - getSalaryAcctCalculateService(user).calculate(salaryAcctCalculateBO, simpleEmployee, finalSalarySobBackItems); - } - }; - ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.HRM, "salaryAcctCalculate", localRunnable); + if (isSync) { + getSalaryAcctCalculateService(user).calculate(salaryAcctCalculateBO, simpleEmployee, finalSalarySobBackItems); + } else { + LocalRunnable localRunnable = new LocalRunnable() { + @Override + public void execute() { + getSalaryAcctCalculateService(user).calculate(salaryAcctCalculateBO, simpleEmployee, finalSalarySobBackItems); + } + }; + ThreadPoolUtil.fixedPoolExecute(ModulePoolEnum.HRM, "salaryAcctCalculate", localRunnable); + } } // 13、等待所有子线程执行完毕 childMonitor.await(); diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index 9013c9126..ebca19807 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -71,6 +71,11 @@ public class SalarySysConstant { */ public static final String SALARY_ACCT_EMPLOYEE_RULE = "salaryAcctEmployeeRule"; + /** + * 是否采用线程池,同步异步。空/0异步, 1同步 + */ + public static final String SALARY_ACCT_SYNC_TYPE = "SALARY_ACCT_SYNC_TYPE"; + /** * 工资单二次验证方式 */ From 8910183e7fa76114908abf5debe9ae663b2e3350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 19 Mar 2025 18:08:19 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=A0=B8=E7=AE=97=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E9=87=87=E7=94=A8=E7=BA=BF=E7=A8=8B=E6=B1=A0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctResultServiceImpl.java | 2 +- src/com/engine/salary/sys/constant/SalarySysConstant.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 7d6330b10..77a091911 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -866,7 +866,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe TaxDeclarationFunctionEnum taxDeclarationFunction = getSalarySysConfService(user).getTaxDeclaration(); // 12.5、多线程运算,运算结果存放在临时表中 //是否同步计算 - boolean isSync = "1".equals(getSalarySysConfService(user).getValueByCode(SALARY_ACCT_SYNC_TYPE)); + boolean isSync = "0".equals(getSalarySysConfService(user).getValueByCode(SALARY_ACCT_SYNC_TYPE)); for (List acctEmployeePOS : partition) { SalaryAcctCalculateBO salaryAcctCalculateBO = new SalaryAcctCalculateBO() .setSalaryAcctRecordPO(salaryAcctRecordPO) diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ebca19807..311476ea3 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -72,7 +72,7 @@ public class SalarySysConstant { public static final String SALARY_ACCT_EMPLOYEE_RULE = "salaryAcctEmployeeRule"; /** - * 是否采用线程池,同步异步。空/0异步, 1同步 + * 是否采用线程池,同步异步。空/1异步, 0同步 */ public static final String SALARY_ACCT_SYNC_TYPE = "SALARY_ACCT_SYNC_TYPE"; From b128f219f7bdec13e27fb27891f109c49a1f84bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 24 Mar 2025 14:57:00 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=95=8F=E6=84=9F?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=B3=84=E9=9C=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/entity/extemp/dto/ExtEmpDTO.java | 57 +++++++++++++++++++ .../engine/salary/service/ExtEmpService.java | 3 +- .../service/impl/ExtEmpServiceImpl.java | 17 +++++- .../engine/salary/web/ExtEmpController.java | 3 +- .../engine/salary/wrapper/ExtEmpWrapper.java | 3 +- 5 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 src/com/engine/salary/entity/extemp/dto/ExtEmpDTO.java diff --git a/src/com/engine/salary/entity/extemp/dto/ExtEmpDTO.java b/src/com/engine/salary/entity/extemp/dto/ExtEmpDTO.java new file mode 100644 index 000000000..83f356300 --- /dev/null +++ b/src/com/engine/salary/entity/extemp/dto/ExtEmpDTO.java @@ -0,0 +1,57 @@ +package com.engine.salary.entity.extemp.dto; + + +import com.engine.hrmelog.annotation.ElogTransform; +import com.engine.salary.annotation.TableTitle; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 外部人员 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +//hrsa_external_employee +@ElogTransform( name = "非系统人员") +public class ExtEmpDTO { + + @ElogTransform(name = "主键id") + private Long id; + + /** + * 姓名 + */ + @TableTitle(title = "姓名", dataIndex = "username", key = "username") + private String username; + + /** + * 部门 + */ + @TableTitle(title = "部门", dataIndex = "departmentName", key = "departmentName") + private String departmentName; + + + /** + * 分部 + */ + @TableTitle(title = "分部", dataIndex = "subcompanyName", key = "subcompanyName") + private String subcompanyName; + + /** + * 入职日期 + */ + @TableTitle(title = "入职日期", dataIndex = "companystartdate", key = "companystartdate") + private String companystartdate; + + + /** + * 工号 + */ + @TableTitle(title = "工号", dataIndex = "workcode", key = "workcode") + private String workcode; + +} diff --git a/src/com/engine/salary/service/ExtEmpService.java b/src/com/engine/salary/service/ExtEmpService.java index 7aaa9f11a..43ffacf58 100644 --- a/src/com/engine/salary/service/ExtEmpService.java +++ b/src/com/engine/salary/service/ExtEmpService.java @@ -1,6 +1,7 @@ package com.engine.salary.service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.extemp.dto.ExtEmpDTO; import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; @@ -17,7 +18,7 @@ public interface ExtEmpService { List list(ExtEmpQueryParam param); - PageInfo listPage (ExtEmpQueryParam param); + PageInfo listPage (ExtEmpQueryParam param); void save(ExtEmpSaveParam po); diff --git a/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java index 9d3bea91f..f2fbd1d89 100644 --- a/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java +++ b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java @@ -5,6 +5,7 @@ import com.engine.core.impl.Service; import com.engine.salary.config.SalaryElogConfig; import com.engine.hrmelog.entity.dto.LoggerContext; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.extemp.dto.ExtEmpDTO; import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; @@ -78,9 +79,21 @@ public class ExtEmpServiceImpl extends Service implements ExtEmpService { } @Override - public PageInfo listPage(ExtEmpQueryParam param) { + public PageInfo listPage(ExtEmpQueryParam param) { List extEmpPOS = list(param); - return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), extEmpPOS, ExtEmpPO.class); + + List list = extEmpPOS.stream().map(po -> { + return ExtEmpDTO.builder() + .id(po.getId()) + .username(po.getUsername()) + .departmentName(po.getDepartmentName()) + .subcompanyName(po.getSubcompanyName()) + .companystartdate(po.getCompanystartdate()) + .workcode(po.getWorkcode()) + .build(); + }).collect(Collectors.toList()); + + return SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), list, ExtEmpDTO.class); } diff --git a/src/com/engine/salary/web/ExtEmpController.java b/src/com/engine/salary/web/ExtEmpController.java index 4e6225435..3ee37f187 100644 --- a/src/com/engine/salary/web/ExtEmpController.java +++ b/src/com/engine/salary/web/ExtEmpController.java @@ -1,6 +1,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.extemp.dto.ExtEmpDTO; import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; @@ -48,7 +49,7 @@ public class ExtEmpController { @Produces(MediaType.APPLICATION_JSON) public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody ExtEmpQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getExtEmpWrapper(user)::listPage, param); + return new ResponseResult>(user).run(getExtEmpWrapper(user)::listPage, param); } @POST diff --git a/src/com/engine/salary/wrapper/ExtEmpWrapper.java b/src/com/engine/salary/wrapper/ExtEmpWrapper.java index fd936d61d..9a60b3e30 100644 --- a/src/com/engine/salary/wrapper/ExtEmpWrapper.java +++ b/src/com/engine/salary/wrapper/ExtEmpWrapper.java @@ -2,6 +2,7 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.extemp.dto.ExtEmpDTO; import com.engine.salary.entity.extemp.param.ExtEmpImportParam; import com.engine.salary.entity.extemp.param.ExtEmpQueryParam; import com.engine.salary.entity.extemp.param.ExtEmpSaveParam; @@ -30,7 +31,7 @@ public class ExtEmpWrapper extends Service { } - public PageInfo listPage(ExtEmpQueryParam param) { + public PageInfo listPage(ExtEmpQueryParam param) { return getExtEmpService(user).listPage(param); }