From 3fb29b2c3dcef4a63e45081578d22f78030886b3 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Wed, 12 Mar 2025 18:21:04 +0800 Subject: [PATCH 1/2] =?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 2/2] =?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);