From 37310f02f633865b499e185e7bb52e003d479a38 Mon Sep 17 00:00:00 2001 From: sy Date: Sun, 23 Apr 2023 16:35:52 +0800 Subject: [PATCH 1/3] =?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=E8=A1=A5=E5=B7=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E7=9B=B8=E5=85=B3=E5=90=88=E8=AE=A1=E9=A1=B9?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 59 +++++++++++++++++-- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 3ac3faca2..b75972dc5 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -1701,36 +1701,58 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { insuranceAccountDetailPO.setOtherComJson(JSON.toJSONString(otherComMap)); } - if (!StringUtils.isEmpty(baseMap.getOrDefault("个人合计", "").toString())) { - insuranceAccountDetailPO.setPerSum(baseMap.get("个人合计").toString()); - } if (!StringUtils.isEmpty(baseMap.getOrDefault("社保个人合计", "").toString())) { insuranceAccountDetailPO.setSocialPerSum(baseMap.get("社保个人合计").toString()); + } else { + insuranceAccountDetailPO.setSocialPerSum(sumOfMapValue(socialPerMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金个人合计", "").toString())) { insuranceAccountDetailPO.setFundPerSum(baseMap.get("公积金个人合计").toString()); + } else { + insuranceAccountDetailPO.setFundPerSum(sumOfMapValue(fundPerMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利个人合计", "").toString())) { insuranceAccountDetailPO.setOtherPerSum(baseMap.get("其他福利个人合计").toString()); + } else { + insuranceAccountDetailPO.setOtherPerSum(sumOfMapValue(otherPerMap)); } - if (!StringUtils.isEmpty(baseMap.getOrDefault("单位合计", "").toString())) { - insuranceAccountDetailPO.setComSum(baseMap.get("单位合计").toString()); + if (!StringUtils.isEmpty(baseMap.getOrDefault("个人合计", "").toString())) { + insuranceAccountDetailPO.setPerSum(baseMap.get("个人合计").toString()); + } else { + insuranceAccountDetailPO.setPerSum(new BigDecimal(insuranceAccountDetailPO.getSocialPerSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getFundPerSum())) + .add(new BigDecimal(insuranceAccountDetailPO.getOtherPerSum())).toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("社保单位合计", "").toString())) { insuranceAccountDetailPO.setSocialComSum(baseMap.get("社保单位合计").toString()); + } else { + insuranceAccountDetailPO.setSocialComSum(sumOfMapValue(socialComMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金单位合计", "").toString())) { insuranceAccountDetailPO.setFundComSum(baseMap.get("公积金单位合计").toString()); + } else { + insuranceAccountDetailPO.setFundComSum(sumOfMapValue(fundComMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利单位合计", "").toString())) { insuranceAccountDetailPO.setOtherComSum(baseMap.get("其他福利单位合计").toString()); + } else { + insuranceAccountDetailPO.setOtherComSum(sumOfMapValue(otherComMap)); + } + + + if (!StringUtils.isEmpty(baseMap.getOrDefault("单位合计", "").toString())) { + insuranceAccountDetailPO.setComSum(baseMap.get("单位合计").toString()); + } else { + insuranceAccountDetailPO.setComSum(new BigDecimal(insuranceAccountDetailPO.getSocialComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getFundComSum())) + .add(new BigDecimal(insuranceAccountDetailPO.getOtherComSum())).toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("账单月份", "").toString())) { @@ -1739,15 +1761,31 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!StringUtils.isEmpty(baseMap.getOrDefault("社保合计", "").toString())) { insuranceAccountDetailPO.setSocialSum(baseMap.get("社保合计").toString()); + } else { + insuranceAccountDetailPO.setSocialSum(new BigDecimal(insuranceAccountDetailPO.getSocialComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getSocialPerSum())) + .toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金合计", "").toString())) { insuranceAccountDetailPO.setFundSum(baseMap.get("公积金合计").toString()); + } else { + insuranceAccountDetailPO.setFundSum(new BigDecimal(insuranceAccountDetailPO.getFundComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getFundPerSum())) + .toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利合计", "").toString())) { insuranceAccountDetailPO.setOtherSum(baseMap.get("其他福利合计").toString()); + } else { + insuranceAccountDetailPO.setOtherSum(new BigDecimal(insuranceAccountDetailPO.getOtherComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getOtherPerSum())) + .toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("合计", "").toString())) { insuranceAccountDetailPO.setTotal(baseMap.get("合计").toString()); + } else { + insuranceAccountDetailPO.setTotal(new BigDecimal(insuranceAccountDetailPO.getPerSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getComSum())) + .toString()); } //如果导入的时补缴数据,还会包含补缴月份 @@ -1760,6 +1798,17 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { return insuranceAccountDetailPO; } + /** + * map中value值求和 + */ + public String sumOfMapValue(Map welfarePay){ + BigDecimal sum = new BigDecimal("0"); + for (String value : welfarePay.values()) { + sum = sum.add(new BigDecimal(value)); + } + return sum.toString(); + } + /** * 对比新旧两份数据,并更新数据 */ From c686f5215315b9577e53a6dc2e56568224d3d0db Mon Sep 17 00:00:00 2001 From: sy Date: Sun, 23 Apr 2023 18:05:32 +0800 Subject: [PATCH 2/3] =?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=E8=A1=A5=E5=B7=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=83=A8=E5=88=86=E7=A6=8F=E5=88=A9=E9=A1=B9?= =?UTF-8?q?=E7=BC=B4=E8=B4=B9=E4=BF=A1=E6=81=AF=E7=9B=B8=E5=85=B3=E5=90=88?= =?UTF-8?q?=E8=AE=A1=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SIAccountServiceImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index b75972dc5..57e41729d 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -1704,19 +1704,19 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!StringUtils.isEmpty(baseMap.getOrDefault("社保个人合计", "").toString())) { insuranceAccountDetailPO.setSocialPerSum(baseMap.get("社保个人合计").toString()); - } else { + } else if (!socialPerMap.isEmpty()) { insuranceAccountDetailPO.setSocialPerSum(sumOfMapValue(socialPerMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金个人合计", "").toString())) { insuranceAccountDetailPO.setFundPerSum(baseMap.get("公积金个人合计").toString()); - } else { + } else if (!fundPerMap.isEmpty()) { insuranceAccountDetailPO.setFundPerSum(sumOfMapValue(fundPerMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利个人合计", "").toString())) { insuranceAccountDetailPO.setOtherPerSum(baseMap.get("其他福利个人合计").toString()); - } else { + } else if (!otherPerMap.isEmpty()) { insuranceAccountDetailPO.setOtherPerSum(sumOfMapValue(otherPerMap)); } @@ -1730,19 +1730,19 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!StringUtils.isEmpty(baseMap.getOrDefault("社保单位合计", "").toString())) { insuranceAccountDetailPO.setSocialComSum(baseMap.get("社保单位合计").toString()); - } else { + } else if (!socialComMap.isEmpty()) { insuranceAccountDetailPO.setSocialComSum(sumOfMapValue(socialComMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金单位合计", "").toString())) { insuranceAccountDetailPO.setFundComSum(baseMap.get("公积金单位合计").toString()); - } else { + } else if (!fundComMap.isEmpty()) { insuranceAccountDetailPO.setFundComSum(sumOfMapValue(fundComMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利单位合计", "").toString())) { insuranceAccountDetailPO.setOtherComSum(baseMap.get("其他福利单位合计").toString()); - } else { + } else if (!otherComMap.isEmpty()) { insuranceAccountDetailPO.setOtherComSum(sumOfMapValue(otherComMap)); } From 27969cff80f4cd8baed60b9214efae531daf1bfc Mon Sep 17 00:00:00 2001 From: sy Date: Mon, 24 Apr 2023 10:11:02 +0800 Subject: [PATCH 3/3] =?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=E8=A1=A5=E5=B7=AE?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=A4=84=E7=90=86=E5=90=88=E8=AE=A1=E5=80=BC?= =?UTF-8?q?=E4=B8=BAnull=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SIAccountServiceImpl.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 57e41729d..a2f41ddf4 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -1723,9 +1723,9 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!StringUtils.isEmpty(baseMap.getOrDefault("个人合计", "").toString())) { insuranceAccountDetailPO.setPerSum(baseMap.get("个人合计").toString()); } else { - insuranceAccountDetailPO.setPerSum(new BigDecimal(insuranceAccountDetailPO.getSocialPerSum()) - .add(new BigDecimal(insuranceAccountDetailPO.getFundPerSum())) - .add(new BigDecimal(insuranceAccountDetailPO.getOtherPerSum())).toString()); + insuranceAccountDetailPO.setPerSum(new BigDecimal(insuranceAccountDetailPO.getSocialPerSum() == null ? "0" : insuranceAccountDetailPO.getSocialPerSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getFundPerSum() == null ? "0" : insuranceAccountDetailPO.getFundPerSum())) + .add(new BigDecimal(insuranceAccountDetailPO.getOtherPerSum() == null ? "0" : insuranceAccountDetailPO.getOtherPerSum())).toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("社保单位合计", "").toString())) { @@ -1750,9 +1750,9 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!StringUtils.isEmpty(baseMap.getOrDefault("单位合计", "").toString())) { insuranceAccountDetailPO.setComSum(baseMap.get("单位合计").toString()); } else { - insuranceAccountDetailPO.setComSum(new BigDecimal(insuranceAccountDetailPO.getSocialComSum()) - .add(new BigDecimal(insuranceAccountDetailPO.getFundComSum())) - .add(new BigDecimal(insuranceAccountDetailPO.getOtherComSum())).toString()); + insuranceAccountDetailPO.setComSum(new BigDecimal(insuranceAccountDetailPO.getSocialComSum() == null ? "0" : insuranceAccountDetailPO.getSocialComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getFundComSum() == null ? "0" : insuranceAccountDetailPO.getFundComSum())) + .add(new BigDecimal(insuranceAccountDetailPO.getOtherComSum() == null ? "0" : insuranceAccountDetailPO.getOtherComSum())).toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("账单月份", "").toString())) { @@ -1762,29 +1762,29 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { if (!StringUtils.isEmpty(baseMap.getOrDefault("社保合计", "").toString())) { insuranceAccountDetailPO.setSocialSum(baseMap.get("社保合计").toString()); } else { - insuranceAccountDetailPO.setSocialSum(new BigDecimal(insuranceAccountDetailPO.getSocialComSum()) - .add(new BigDecimal(insuranceAccountDetailPO.getSocialPerSum())) + insuranceAccountDetailPO.setSocialSum(new BigDecimal(insuranceAccountDetailPO.getSocialComSum() == null ? "0" : insuranceAccountDetailPO.getSocialComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getSocialPerSum() == null ? "0" : insuranceAccountDetailPO.getSocialPerSum())) .toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金合计", "").toString())) { insuranceAccountDetailPO.setFundSum(baseMap.get("公积金合计").toString()); } else { - insuranceAccountDetailPO.setFundSum(new BigDecimal(insuranceAccountDetailPO.getFundComSum()) - .add(new BigDecimal(insuranceAccountDetailPO.getFundPerSum())) + insuranceAccountDetailPO.setFundSum(new BigDecimal(insuranceAccountDetailPO.getFundComSum() == null ? "0" : insuranceAccountDetailPO.getFundComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getFundPerSum() == null ? "0" : insuranceAccountDetailPO.getFundPerSum())) .toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利合计", "").toString())) { insuranceAccountDetailPO.setOtherSum(baseMap.get("其他福利合计").toString()); } else { - insuranceAccountDetailPO.setOtherSum(new BigDecimal(insuranceAccountDetailPO.getOtherComSum()) - .add(new BigDecimal(insuranceAccountDetailPO.getOtherPerSum())) + insuranceAccountDetailPO.setOtherSum(new BigDecimal(insuranceAccountDetailPO.getOtherComSum() == null ? "0" : insuranceAccountDetailPO.getOtherComSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getOtherPerSum() == null ? "0" : insuranceAccountDetailPO.getOtherPerSum())) .toString()); } if (!StringUtils.isEmpty(baseMap.getOrDefault("合计", "").toString())) { insuranceAccountDetailPO.setTotal(baseMap.get("合计").toString()); } else { - insuranceAccountDetailPO.setTotal(new BigDecimal(insuranceAccountDetailPO.getPerSum()) - .add(new BigDecimal(insuranceAccountDetailPO.getComSum())) + insuranceAccountDetailPO.setTotal(new BigDecimal(insuranceAccountDetailPO.getPerSum() == null ? "0" : insuranceAccountDetailPO.getPerSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getComSum() == null ? "0" : insuranceAccountDetailPO.getComSum())) .toString()); }