From 49e1f7624ffca6d7a99e613c8d34d159ec277fc2 Mon Sep 17 00:00:00 2001 From: sy Date: Fri, 4 Nov 2022 09:17:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=96=AA=E9=85=AC=E7=B3=BB=E7=BB=9F-=E7=A6=8F?= =?UTF-8?q?=E5=88=A9=E6=A8=A1=E5=9D=97bug=E4=BF=AE=E5=A4=8Dv8=EF=BC=8C?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E5=85=A8=E9=87=8F=E5=A2=9E=E5=91=98=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E5=9F=BA=E6=95=B0=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E9=99=90=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/biz/SIArchivesBiz.java | 46 ++++++++++++------- .../service/impl/SIArchivesServiceImpl.java | 7 +-- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/src/com/engine/salary/biz/SIArchivesBiz.java b/src/com/engine/salary/biz/SIArchivesBiz.java index 28ca78474..f1f6810a8 100644 --- a/src/com/engine/salary/biz/SIArchivesBiz.java +++ b/src/com/engine/salary/biz/SIArchivesBiz.java @@ -829,24 +829,32 @@ public class SIArchivesBiz { List insuranceSchemeDetailPOList = getInsuranceSchemeDetailMapper().getByPI(primaryId, Long.valueOf(entry.getKey())); log.info("福利方案id: {},, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); if (insuranceSchemeDetailPOList.size() == 0) { - log.info("根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: {}, 缴纳所属: {}, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); + log.info("根据福利方案id、险种id、缴纳对象查询明细为null!福利方案id: {}, 福利明细项id:{}", primaryId, Long.valueOf(entry.getKey())); return false; } - InsuranceSchemeDetailPO insuranceSchemeDetailPO = insuranceSchemeDetailPOList.get(0); + List isPaymentList = insuranceSchemeDetailPOList.stream() + .filter(f -> f.getIsPayment().equals(IsPaymentEnum.YES.getValue()) && f.getPaymentScope().equals(PaymentScopeEnum.SCOPE_PERSON.getValue())).collect(Collectors.toList()); + if (isPaymentList.size() > 0) { + InsuranceSchemeDetailPO insuranceSchemeDetailPO = isPaymentList.get(0); - InsuranceSchemeDetailPOEncrypt.decryptItem(insuranceSchemeDetailPO); - String lowerLimit = "0.000".equals(insuranceSchemeDetailPO.getLowerLimit()) ? null : insuranceSchemeDetailPO.getLowerLimit(); - String upperLimit = "0.000".equals(insuranceSchemeDetailPO.getUpperLimit()) ? null : insuranceSchemeDetailPO.getUpperLimit(); - if (lowerLimit != null && lowerLimit.length() > 0 && Double.parseDouble(entry.getValue()) < Double.parseDouble(lowerLimit)) { - //数值低于对应福利明细下限 - log.info("社保基数 {} 数值 {} 低于对应福利明细下限 {}!", entry.getKey(), entry.getValue(), lowerLimit); - return false; - } - if (upperLimit != null && upperLimit.length() > 0 && Double.parseDouble(entry.getValue()) > Double.parseDouble(upperLimit)) { - //数值高于对应福利明细上限 - log.info("社保基数 {} 数值 {} 高于对应福利明细上限 {} !", entry.getKey(), entry.getValue(), upperLimit); - return false; + InsuranceSchemeDetailPOEncrypt.decryptItem(insuranceSchemeDetailPO); + String lowerLimit = "0.000".equals(insuranceSchemeDetailPO.getLowerLimit()) ? null : insuranceSchemeDetailPO.getLowerLimit(); + String upperLimit = "0.000".equals(insuranceSchemeDetailPO.getUpperLimit()) ? null : insuranceSchemeDetailPO.getUpperLimit(); + if (lowerLimit != null && lowerLimit.length() > 0 && Double.parseDouble(entry.getValue()) < Double.parseDouble(lowerLimit)) { + //数值低于对应福利明细下限 + log.info("社保基数 {} 数值 {} 低于对应福利明细下限 {}!", entry.getKey(), entry.getValue(), lowerLimit); + return false; + } + if (upperLimit != null && upperLimit.length() > 0 && Double.parseDouble(entry.getValue()) > Double.parseDouble(upperLimit)) { + //数值高于对应福利明细上限 + log.info("社保基数 {} 数值 {} 高于对应福利明细上限 {} !", entry.getKey(), entry.getValue(), upperLimit); + return false; + } + } else { + log.info("福利明细项属于未缴费状态,不对上下限进行约束"); } + return true; + } return true; } @@ -1454,12 +1462,13 @@ public class SIArchivesBiz { /** * 判断是否需要生成历史福利档案基本信息 */ - public void createOldInsuranceBaseInfo(Long creator) { + public Boolean createOldInsuranceBaseInfo(Long creator) { + - StopWatch sw = new StopWatch(); log.info("判断是否需要生成历史数据"); List nowBaseInfoList = getInsuranceBaseInfoMapper().getInsuranceBaseInfoList(); if (nowBaseInfoList.size() == 0) { + StopWatch sw = new StopWatch(); log.info("福利档案基础信息表为空,开始生成历史数据:"); //处理公积金、其他福利档案中个税扣缴义务人为空的情况 sw.start("处理公积金、其他福利档案中个税扣缴义务人为空的情况"); @@ -1520,8 +1529,11 @@ public class SIArchivesBiz { partition.forEach(getInsuranceBaseInfoMapper()::batchSave); } sw.stop(); + log.info("各操作计时 {}", sw.prettyPrint()); + return true; + } else { + return false; } - log.info("各操作计时 {}", sw.prettyPrint()); } diff --git a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java index d4cf2c5ef..043019c77 100644 --- a/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIArchivesServiceImpl.java @@ -186,13 +186,10 @@ public class SIArchivesServiceImpl extends Service implements SIArchivesService * @param currentEmployeeId */ private void handleHistoryData(long currentEmployeeId) { - List nowBaseInfoList = getInsuranceBaseInfoMapper().getInsuranceBaseInfoList(); - if (nowBaseInfoList.size() == 0) { - siArchivesBiz.createOldInsuranceBaseInfo(currentEmployeeId); - + //如果触发历史数据处理,则进行一次全量增员 + if (siArchivesBiz.createOldInsuranceBaseInfo(currentEmployeeId)) { //全量增员 allStayAddToPay(); - } }