diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index 3ac3faca2..a2f41ddf4 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 if (!socialPerMap.isEmpty()) { + insuranceAccountDetailPO.setSocialPerSum(sumOfMapValue(socialPerMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金个人合计", "").toString())) { insuranceAccountDetailPO.setFundPerSum(baseMap.get("公积金个人合计").toString()); + } else if (!fundPerMap.isEmpty()) { + insuranceAccountDetailPO.setFundPerSum(sumOfMapValue(fundPerMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利个人合计", "").toString())) { insuranceAccountDetailPO.setOtherPerSum(baseMap.get("其他福利个人合计").toString()); + } else if (!otherPerMap.isEmpty()) { + 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() == 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())) { insuranceAccountDetailPO.setSocialComSum(baseMap.get("社保单位合计").toString()); + } else if (!socialComMap.isEmpty()) { + insuranceAccountDetailPO.setSocialComSum(sumOfMapValue(socialComMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("公积金单位合计", "").toString())) { insuranceAccountDetailPO.setFundComSum(baseMap.get("公积金单位合计").toString()); + } else if (!fundComMap.isEmpty()) { + insuranceAccountDetailPO.setFundComSum(sumOfMapValue(fundComMap)); } if (!StringUtils.isEmpty(baseMap.getOrDefault("其他福利单位合计", "").toString())) { insuranceAccountDetailPO.setOtherComSum(baseMap.get("其他福利单位合计").toString()); + } else if (!otherComMap.isEmpty()) { + insuranceAccountDetailPO.setOtherComSum(sumOfMapValue(otherComMap)); + } + + + if (!StringUtils.isEmpty(baseMap.getOrDefault("单位合计", "").toString())) { + insuranceAccountDetailPO.setComSum(baseMap.get("单位合计").toString()); + } else { + 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())) { @@ -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() == 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() == 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() == 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() == null ? "0" : insuranceAccountDetailPO.getPerSum()) + .add(new BigDecimal(insuranceAccountDetailPO.getComSum() == null ? "0" : 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(); + } + /** * 对比新旧两份数据,并更新数据 */