From d7127e29e49d53ed19df662ba98d68747c0b4db2 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 26 Dec 2022 14:58:41 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=A1=A3=E6=A1=88?= =?UTF-8?q?=E4=B8=AD=E9=BB=98=E8=AE=A4=E6=98=BE=E7=A4=BA=E5=B7=A5=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index 7ee01453b..4f0dbc199 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -76,6 +76,7 @@ public class SalaryArchiveBO { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "分部"), "subcompanyName")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "工号"), "workcode")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "mobile")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "员工状态"), "employeeStatus")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "起始发薪日期"), "payStartDate")); From 6262f62292d75d7db1ae9a4e2e425bdbf78d5851 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Mon, 26 Dec 2022 23:17:32 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=96=AA=E8=B5=84=E5=9B=9E=E7=AE=97Excel?= =?UTF-8?q?=E5=AF=BC=E5=85=A5BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salaryacct/SalaryAcctResultMapper.java | 1 - .../service/SalaryAcctResultService.java | 9 ++++++++ .../impl/SalaryAcctExcelServiceImpl.java | 22 +++++++++++++++++++ .../impl/SalaryAcctResultServiceImpl.java | 9 ++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java index d1bc53212..8ef60131e 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultMapper.java @@ -125,5 +125,4 @@ public interface SalaryAcctResultMapper { */ void batchUpdateOriginResultValue(@Param("collection") List subSalaryAcctResultValues); - } \ No newline at end of file diff --git a/src/com/engine/salary/service/SalaryAcctResultService.java b/src/com/engine/salary/service/SalaryAcctResultService.java index 6404a7281..b1f3d35bd 100644 --- a/src/com/engine/salary/service/SalaryAcctResultService.java +++ b/src/com/engine/salary/service/SalaryAcctResultService.java @@ -14,6 +14,7 @@ import com.engine.salary.util.page.PageInfo; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Set; /** * 薪资核算结果 @@ -190,4 +191,12 @@ public interface SalaryAcctResultService { * @return */ List listBySalaryAcctRecordIdsAndSalaryItemIds(Collection salaryAcctRecordIds, Collection salaryItemIds); + + /** + * @description 根据薪资核算人员id、薪资项目id获取薪资核算结果 + * @return List + * @author Harryxzy + * @date 2022/12/26 22:24 + */ + List listByAcctEmployeeIdsAndSalaryItemIds(Set salaryAcctEmpIds, Set excelSalaryItemIds); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index cf95d8697..d1b56d4c0 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -895,12 +895,17 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } } if (StringUtils.equals("importSalaryAcctResult", importType)) { + List deleteResults = new ArrayList<>(); if (CollectionUtils.isNotEmpty(salaryAcctEmpIds)) { + // 获取删除的核算结果 + deleteResults = getSalaryAcctResultService(user).listByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); getSalaryAcctResultService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); //删除报表 getSalaryAcctReportService(user).deleteByAcctEmployeeIdsAndSalaryItemIds(salaryAcctEmpIds, excelSalaryItemIds); } if (CollectionUtils.isNotEmpty(salaryAcctResults)) { + // 处理导入薪资项的回算值 + handleOriginResultValue(deleteResults, salaryAcctResults); getSalaryAcctResultService(user).batchSave(salaryAcctResults); //报表 getSalaryAcctReportService(user).batchSave(salaryAcctReports); @@ -923,6 +928,23 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc return apidatas; } + /** + * @description + * @return void + * @author Harryxzy + * @date 2022/12/26 22:36 + */ + private void handleOriginResultValue(List deleteResults, List salaryAcctResults) { + Map> deleteMap = SalaryEntityUtil.group2Map(deleteResults, po -> po.getSalaryAcctEmpId() + "-" + po.getSalaryItemId()); + salaryAcctResults.stream().forEach(result -> { + List salaryAcctResultPOS = deleteMap.get(result.getSalaryAcctEmpId() + "-" + result.getSalaryItemId()); + if(salaryAcctResultPOS != null && salaryAcctResultPOS.size() > 0 ){ + result.setOriginResultValue(salaryAcctResultPOS.get(0).getOriginResultValue()); + } + }); + + } + // @Override // public Map exportCheckResult( // SalaryCheckResultExportParam exportParam, diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 5605f5c8b..d944577a5 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -866,6 +866,15 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } + @Override + public List listByAcctEmployeeIdsAndSalaryItemIds(Set salaryAcctEmployeeIds, Set salaryItemIds) { + SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(salaryAcctEmployeeIds).salaryItemIds(salaryItemIds).build(); + List list = getSalaryAcctResultMapper().listSome(build); + // 数据解密 + encryptUtil.decryptList(list, SalaryAcctResultPO.class); + return list; + } + @Override public void batchUpdateOriginResultValue(List salaryAcctResultValues) { int batchSize = 500; From 45292dfc4fdcd317941d502d039d37b1a5f949b5 Mon Sep 17 00:00:00 2001 From: fcli Date: Tue, 27 Dec 2022 11:36:31 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20null=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/encrypt/EncryptUtil.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/encrypt/EncryptUtil.java b/src/com/engine/salary/encrypt/EncryptUtil.java index 000cd54ac..e35d3d53b 100644 --- a/src/com/engine/salary/encrypt/EncryptUtil.java +++ b/src/com/engine/salary/encrypt/EncryptUtil.java @@ -21,6 +21,14 @@ import java.util.stream.Collectors; @Slf4j public class EncryptUtil { + private static final String NULL = "null"; + + private static String ifNull(String value){ + if (NULL.equals(value)) { + return null; + } + return value; + } private SalarySysConfService getSalarySysConfService(User user) { return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); @@ -39,7 +47,7 @@ public class EncryptUtil { if (CollectionUtils.isNotEmpty(fieldList)) { for (Field field : fieldList) { field.setAccessible(true); - String fieldValue = String.valueOf(field.get(data)); + String fieldValue = (String)field.get(data); if (StringUtils.isNotBlank(fieldValue)) { String encryptValue = AESEncryptUtil.encrypt(fieldValue); field.set(data, encryptValue); @@ -117,7 +125,7 @@ public class EncryptUtil { field.setAccessible(true); String fieldValue = (String) field.get(data); if (StringUtils.isNotBlank(fieldValue)) { - String encryptValue = AESEncryptUtil.decrypt(fieldValue); + String encryptValue = ifNull(AESEncryptUtil.decrypt(fieldValue)); field.set(data, encryptValue); } } @@ -145,7 +153,7 @@ public class EncryptUtil { field.setAccessible(true); String fieldValue = (String) field.get(data); if (StringUtils.isNotBlank(fieldValue)) { - String encryptValue = AESEncryptUtil.decrypt(fieldValue); + String encryptValue = ifNull(AESEncryptUtil.decrypt(fieldValue)); field.set(data, encryptValue); } } From 42d57163a94d5678461314b520c1577784d28fec Mon Sep 17 00:00:00 2001 From: sy Date: Thu, 29 Dec 2022 10:05:52 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=EF=BC=8C=E7=A6=8F=E5=88=A9?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E6=97=A0=E6=A0=B8=E7=AE=97=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=9B=B4=E6=8E=A5=E8=BF=9B=E5=BA=A6=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIAccountBiz.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index e5c864004..f8a4c3072 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -306,8 +306,8 @@ public class SIAccountBiz extends Service { ids = param.getIds(); } if (CollectionUtils.isEmpty(ids)) { - //salaryAcctProgressService.fail(tenantKey + param.getBillMonth(), SalaryI18nUtil.getI18nLabel( 100468, "无需要核算的人员")); - getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel( 100468, "无需要核算的人员")); + getSalaryAcctProgressService(user).finish(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), true); +// getSalaryAcctProgressService(user).fail(SalaryCacheKey.ACCT_PROGRESS + param.getBillMonth(), SalaryI18nUtil.getI18nLabel( 100468, "无需要核算的人员")); return; } // SalaryAcctProgressDTO salaryAcctProgressDTO = new SalaryAcctProgressDTO(SalaryI18nUtil.getI18nLabel(97515, "核算中"), 97515L, ids.size(), 0, From a9168afe58f42d45bef188d924eef56efff55075 Mon Sep 17 00:00:00 2001 From: sy Date: Thu, 29 Dec 2022 10:17:54 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=EF=BC=8C=E5=88=9D=E6=AC=A1?= =?UTF-8?q?=E6=A0=B8=E7=AE=97=E5=89=8D=E4=B8=BA=E5=8F=B0=E8=B4=A6=E9=A1=B9?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=9F=BA=E7=A1=80=E6=95=B0=E5=80=BC=EF=BC=88?= =?UTF-8?q?socialPay,fundPay,otherPay=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIAccountBiz.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/com/engine/salary/biz/SIAccountBiz.java b/src/com/engine/salary/biz/SIAccountBiz.java index f8a4c3072..980d3af62 100644 --- a/src/com/engine/salary/biz/SIAccountBiz.java +++ b/src/com/engine/salary/biz/SIAccountBiz.java @@ -166,6 +166,9 @@ public class SIAccountBiz extends Service { .updateTime(new Date()) .deleteType(DeleteTypeEnum.NOT_DELETED.getValue()) .paymentOrganization(param.getPaymentOrganization()) + .socialPay("0") + .fundPay("0") + .otherPay("0") .build(); encryptUtil.encrypt(build, InsuranceAccountBatchPO.class); getInsuranceAccountBatchMapper().insert(build);