diff --git a/src/com/engine/salary/service/RecordsBuildService.java b/src/com/engine/salary/service/RecordsBuildService.java index 3edbecd45..a01efc1bb 100644 --- a/src/com/engine/salary/service/RecordsBuildService.java +++ b/src/com/engine/salary/service/RecordsBuildService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.entity.siaccount.dto.QZReportListDTO; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; @@ -19,4 +20,6 @@ public interface RecordsBuildService { List> buildCommonRecordsWithStyle(List list, Long employeeId); List> buildInspectRecords(List list, Long paymentOrganization); + + List> buildQzReport(List list, Long employeeId, boolean dynamicEmpInfo); } diff --git a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java index 51fd19482..142947e52 100644 --- a/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java +++ b/src/com/engine/salary/service/impl/RecordsBuildServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.TypeReference; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.siaccount.dto.QZReportListDTO; import com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO; import com.engine.salary.entity.siaccount.po.InsuranceAccountInspectPO; import com.engine.salary.entity.siarchives.po.InsuranceArchivesAccountPO; @@ -28,11 +29,13 @@ import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.db.MapperProxyFactory; import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import weaver.general.Util; import weaver.hrm.User; +import weaver.hrm.company.DepartmentComInfo; import java.math.BigDecimal; import java.text.ParseException; @@ -47,6 +50,7 @@ import java.util.stream.Collectors; * @Date 2022/4/11 * @Version V1.0 **/ +@Slf4j public class RecordsBuildServiceImpl extends Service implements RecordsBuildService { private EmployMapper getEmployMapper() { @@ -150,7 +154,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ if (socialComJson != null) { //查询该福利方案下开启缴纳的福利项 // List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getSocialSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); - List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getSocialSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getSocialSchemeId(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); socialComJson.forEach((k, v) -> { if (insuranceIdList.contains(Long.valueOf(k))) { record.put(k + "socialComBase", v); @@ -170,7 +174,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ } } } - record.put("fundPayOrg", item.getFundPayOrg() == null ? "" : (paymentMap.getOrDefault(item.getFundPayOrg(),TaxAgentPO.builder().build())).getName()); + record.put("fundPayOrg", item.getFundPayOrg() == null ? "" : (paymentMap.getOrDefault(item.getFundPayOrg(), TaxAgentPO.builder().build())).getName()); record.put("fundAccount", item.getFundAccount()); record.put("fundSchemeName", getInsuranceSchemeMapper().querySchemeName(item.getFundSchemeId())); record.put("supplementFundAccount", item.getSupplementFundAccount()); @@ -185,7 +189,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ if (fundJson != null) { //查询该福利方案下开启缴纳的福利项 // List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getFundSchemeId(),PaymentScopeEnum.SCOPE_PERSON.getValue()); - List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getFundSchemeId(),PaymentScopeEnum.SCOPE_PERSON.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getFundSchemeId(), PaymentScopeEnum.SCOPE_PERSON.getValue()); fundJson.forEach((k, v) -> { if (insuranceIdList.contains(Long.valueOf(k))) { record.put(k + "fundPerBase", v); @@ -197,7 +201,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ if (fundComJson != null) { //查询该福利方案下开启缴纳的福利项 // List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getFundSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); - List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getFundSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getFundSchemeId(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); fundComJson.forEach((k, v) -> { if (insuranceIdList.contains(Long.valueOf(k))) { record.put(k + "fundComBase", v); @@ -217,7 +221,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ } } } - record.put("otherPayOrg", item.getOtherPayOrg() == null ? "" : (paymentMap.getOrDefault(item.getOtherPayOrg(),TaxAgentPO.builder().build())).getName()); + record.put("otherPayOrg", item.getOtherPayOrg() == null ? "" : (paymentMap.getOrDefault(item.getOtherPayOrg(), TaxAgentPO.builder().build())).getName()); record.put("otherSchemeName", getInsuranceSchemeMapper().querySchemeName(item.getOtherSchemeId())); if (StringUtils.isNotEmpty(item.getOtherPaymentBaseString()) || StringUtils.isNotEmpty(item.getOtherPaymentComBaseString())) { Map otherJson = JSON.parseObject(item.getOtherPaymentBaseString(), new HashMap().getClass()); @@ -230,7 +234,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ if (otherJson != null) { //查询该福利方案下开启缴纳的福利项 // List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getOtherSchemeId(),PaymentScopeEnum.SCOPE_PERSON.getValue()); - List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getOtherSchemeId(),PaymentScopeEnum.SCOPE_PERSON.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getOtherSchemeId(), PaymentScopeEnum.SCOPE_PERSON.getValue()); otherJson.forEach((k, v) -> { if (insuranceIdList.contains(Long.valueOf(k))) { record.put(k + "otherPerBase", v); @@ -242,7 +246,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ if (otherComJson != null) { //查询该福利方案下开启缴纳的福利项 // List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getOtherSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); - List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getOtherSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getOtherSchemeId(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); otherComJson.forEach((k, v) -> { if (insuranceIdList.contains(Long.valueOf(k))) { record.put(k + "otherComBase", v); @@ -264,7 +268,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ } if (StringUtils.isNotEmpty(item.getSocialPerJson())) { Map socialJson = JSON.parseObject(item.getSocialPerJson(), new HashMap().getClass()); - if(socialJson!=null){ + if (socialJson != null) { socialJson.forEach((k, v) -> { record.put(k + "socialPer", (String) v); }); @@ -297,7 +301,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ // record.put("socialSpecialSum", socialSpecialSum[0]); if (StringUtils.isNotEmpty(item.getFundPerJson())) { Map fundPerJson = JSON.parseObject(item.getFundPerJson(), new HashMap().getClass()); - if(fundPerJson!=null){ + if (fundPerJson != null) { fundPerJson.forEach((k, v) -> { record.put(k + "fundPer", (String) v); }); @@ -329,7 +333,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ // record.put("fundSpecialSum", fundSpecialSum[0]); if (StringUtils.isNotEmpty(item.getOtherPerJson())) { Map fundPerJson = JSON.parseObject(item.getOtherPerJson(), new HashMap().getClass()); - if(fundPerJson!=null){ + if (fundPerJson != null) { fundPerJson.forEach((k, v) -> { record.put(k + "otherPer", (String) v); }); @@ -340,7 +344,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ record.put("perSum", item.getPerSum()); if (StringUtils.isNotEmpty(item.getSocialComJson())) { Map fundPerJson = JSON.parseObject(item.getSocialComJson(), new HashMap().getClass()); - if(fundPerJson!=null){ + if (fundPerJson != null) { fundPerJson.forEach((k, v) -> { record.put(k + "socialCom", (String) v); }); @@ -352,7 +356,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ record.put("socialComSum", item.getSocialComSum()); if (StringUtils.isNotEmpty(item.getFundComJson())) { Map fundPerJson = JSON.parseObject(item.getFundComJson(), new HashMap().getClass()); - if(fundPerJson!=null){ + if (fundPerJson != null) { fundPerJson.forEach((k, v) -> { record.put(k + "fundCom", (String) v); }); @@ -362,7 +366,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ record.put("fundComSum", item.getFundComSum()); if (StringUtils.isNotEmpty(item.getOtherComJson())) { Map fundPerJson = JSON.parseObject(item.getOtherComJson(), new HashMap().getClass()); - if(fundPerJson!=null){ + if (fundPerJson != null) { fundPerJson.forEach((k, v) -> { record.put(k + "otherCom", (String) v); }); @@ -375,7 +379,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ final BigDecimal[] socialSpecialSum = {new BigDecimal(0)}; if (StringUtils.isNotEmpty(item.getSocialSpecialJson())) { Map socialSpecialJson = JSON.parseObject(item.getSocialSpecialJson(), new HashMap().getClass()); - if(socialSpecialJson!=null){ + if (socialSpecialJson != null) { socialSpecialJson.forEach((k, v) -> { // String standardSocialPer = Util.null2String(record.get(k + "socialPer")); // BigDecimal standardSocialPerVal = new BigDecimal(0); @@ -399,7 +403,7 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ final BigDecimal[] fundSpecialSum = {new BigDecimal(0)}; if (StringUtils.isNotEmpty(item.getFundSpecialJson())) { Map fundSpecialJson = JSON.parseObject(item.getFundSpecialJson(), new HashMap().getClass()); - if(fundSpecialJson!=null){ + if (fundSpecialJson != null) { fundSpecialJson.forEach((k, v) -> { // String standardFundPer = Util.null2String(record.get(k + "fundPer")); // BigDecimal standardFundPerVal = new BigDecimal(0); @@ -515,4 +519,388 @@ public class RecordsBuildServiceImpl extends Service implements RecordsBuildServ } return new SimpleDateFormat(SalaryI18nUtil.getI18nLabel(100519, "补缴yyyy年MM月")).format(date); } + + @Override + public List> buildQzReport(List list, Long employeeId, boolean dynamicEmpInfo) { + boolean welBaseDiffSign = getSIArchivesService(user).isDiffWelBase(); + List> result = new ArrayList<>(); + if (CollectionUtils.isEmpty(list)) { + return result; + } + List employeeIds = list.stream().map(item -> item.getEmployeeId()).distinct().collect(Collectors.toList()); + List employeeByIds = new ArrayList<>(); + List> partition = Lists.partition(employeeIds, 1000); + for (List longs : partition) { + employeeByIds.addAll(getSalaryEmployeeService(user).getEmployeeByIdsAll(longs)); + } + if (CollectionUtils.isEmpty(employeeByIds)) { + return result; + } + List paymentList = getTaxAgentMapper().listAll(); + + SalaryAssert.notEmpty(paymentList, SalaryI18nUtil.getI18nLabel(100341, "暂无扣缴义务人")); + Map paymentMap = paymentList.stream().collect(Collectors.toMap(TaxAgentPO::getId, Function.identity())); + Map collect = employeeByIds.stream().collect(Collectors.toMap(DataCollectionEmployee::getEmployeeId, Function.identity())); + DepartmentComInfo departmentComInfo = new DepartmentComInfo(); + list.forEach(item -> { + Map record = new HashMap<>(); + DataCollectionEmployee simpleEmployee = collect.get(item.getEmployeeId()); + record.put("id", item.getId()); + record.put("paymentOrganizationName", paymentMap.get(item.getSocialPayOrg()) == null ? "" : paymentMap.get(item.getSocialPayOrg()).getName()); + record.put("workcode", StringUtils.isBlank(simpleEmployee.getWorkcode()) ? "" : simpleEmployee.getWorkcode()); + record.put("userName", simpleEmployee.getUsername()); + String[] depList = new String[0]; + try { + depList = departmentComInfo.getDepartmentRealPath(simpleEmployee.getDepartmentId().toString(), ",", "").split(","); + } catch (Exception ex) { + log.error("获取部门信息失败" + simpleEmployee.getDepartmentId() + ex); + depList = new String[0]; + } + record.put("firstDepartmentName", depList.length >= 1 ? Util.formatMultiLang(depList[depList.length - 1], String.valueOf(user.getLanguage())) : ""); + record.put("secondDepartmentName", depList.length >= 2 ? Util.formatMultiLang(depList[depList.length - 2], String.valueOf(user.getLanguage())) : ""); + record.put("jobcall", item.getJobcall()); + record.put("companystartdate", simpleEmployee.getCompanystartdate()); + record.put("dismissdate", item.getStatus() != null && UserStatusEnum.getUnavailableStatus().contains(item.getStatus()) ? simpleEmployee.getDismissdate() : ""); + //社保基数,取养老个人的基数 + + + if (!dynamicEmpInfo) { + record.put("department", item.getDepartmentName()); + record.put("departmentId", item.getDepartmentId()); + record.put("subcompany", item.getSubcompanyName()); + record.put("subcompanyId", item.getSubcompanyId()); + record.put("jobtitle", item.getJobtitleName()); + record.put("jobtitleId", item.getJobtitleId()); + record.put("jobcall", item.getJobcall()); + record.put("jobcallId", item.getJobcallId()); + record.put("employeeStatus", item.getStatus() != null ? UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(item.getStatus())) : ""); + } else { + record.put("department", simpleEmployee.getDepartmentName()); + record.put("departmentId", simpleEmployee.getDepartmentId()); + record.put("employeeStatus", simpleEmployee.getStatus() != null ? UserStatusEnum.getDefaultLabelByValue(Integer.parseInt(simpleEmployee.getStatus())) : ""); + } + + record.put("supplementaryMonth", item.getSupplementaryMonth()); + ResourceFromEnum from = SalaryEnumUtil.enumMatchByValue(item.getResourceFrom(), ResourceFromEnum.values(), ResourceFromEnum.class); + + record.put("idNo", Util.null2String(simpleEmployee.getIdNo())); + record.put("sourceFrom", SalaryI18nUtil.getI18nLabel(from.getLabelId(), from.getDefaultLabel())); + record.put("socialPayOrg", paymentMap.get(item.getSocialPayOrg()) == null ? "" : paymentMap.get(item.getSocialPayOrg()).getName()); + record.put("socialAccount", item.getSocialAccount()); + + record.put("socialSchemeName", getInsuranceSchemeMapper().querySchemeName(item.getSocialSchemeId())); + if (StringUtils.isNotEmpty(item.getSocialPaymentBaseString()) || StringUtils.isNotEmpty(item.getSocialPaymentComBaseString())) { + Map socialJson = JSON.parseObject(item.getSocialPaymentBaseString(), new HashMap().getClass()); +// if(socialJson!=null){ +// socialJson.forEach((k, v) -> { +// record.put(k + "socialBase", (String) v); +// }); +// } + if (welBaseDiffSign) { + if (socialJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getSocialSchemeId(), PaymentScopeEnum.SCOPE_PERSON.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getSocialSchemeId(), PaymentScopeEnum.SCOPE_PERSON.getValue()); + socialJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "socialPerBase", v); + } + if (Long.parseLong(k) == 9001L) { + record.put("socialBase", v); + } + }); + } + Map socialComJson = JSON.parseObject(item.getSocialPaymentComBaseString(), new TypeReference>() { + }); + if (socialComJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getSocialSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getSocialSchemeId(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + socialComJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "socialComBase", v); + } + }); + } + } else { + if (socialJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getSocialSchemeId()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getSocialSchemeId()); + socialJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "socialBase", v); + } + if (Long.parseLong(k) == 9001L) { + record.put("socialBase", v); + } + }); + } + } + } + record.put("fundPayOrg", item.getFundPayOrg() == null ? "" : (paymentMap.getOrDefault(item.getFundPayOrg(), TaxAgentPO.builder().build())).getName()); + record.put("fundAccount", item.getFundAccount()); + record.put("fundSchemeName", getInsuranceSchemeMapper().querySchemeName(item.getFundSchemeId())); + record.put("supplementFundAccount", item.getSupplementFundAccount()); + if (StringUtils.isNotEmpty(item.getFundPaymentBaseString()) || StringUtils.isNotEmpty(item.getFundPaymentComBaseString())) { + Map fundJson = JSON.parseObject(item.getFundPaymentBaseString(), new HashMap().getClass()); +// if(fundJson!=null){ +// fundJson.forEach((k, v) -> { +// record.put(k + "fundBase", (String) v); +// }); +// } + if (welBaseDiffSign) { + if (fundJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getFundSchemeId(),PaymentScopeEnum.SCOPE_PERSON.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getFundSchemeId(), PaymentScopeEnum.SCOPE_PERSON.getValue()); + fundJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "fundPerBase", v); + } + if (Long.parseLong(k) == 9006L) { + record.put("fundBase", v); + } + }); + } + Map fundComJson = JSON.parseObject(item.getFundPaymentComBaseString(), new TypeReference>() { + }); + if (fundComJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getFundSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getFundSchemeId(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + fundComJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "fundComBase", v); + } + }); + } + } else { + if (fundJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getFundSchemeId()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getFundSchemeId()); + fundJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "fundBase", v); + } + if (Long.parseLong(k) == 9006L) { + record.put("fundBase", v); + } + }); + } + } + } + record.put("otherPayOrg", item.getOtherPayOrg() == null ? "" : (paymentMap.getOrDefault(item.getOtherPayOrg(), TaxAgentPO.builder().build())).getName()); + record.put("otherSchemeName", getInsuranceSchemeMapper().querySchemeName(item.getOtherSchemeId())); + if (StringUtils.isNotEmpty(item.getOtherPaymentBaseString()) || StringUtils.isNotEmpty(item.getOtherPaymentComBaseString())) { + Map otherJson = JSON.parseObject(item.getOtherPaymentBaseString(), new HashMap().getClass()); +// if(otherJson!=null){ +// otherJson.forEach((k, v) -> { +// record.put(k + "otherBase", (String) v); +// }); +// } + if (welBaseDiffSign) { + if (otherJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getOtherSchemeId(),PaymentScopeEnum.SCOPE_PERSON.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getOtherSchemeId(), PaymentScopeEnum.SCOPE_PERSON.getValue()); + otherJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "otherPerBase", v); + } + }); + } + Map otherComJson = JSON.parseObject(item.getOtherPaymentComBaseString(), new TypeReference>() { + }); + if (otherComJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getOtherSchemeId(),PaymentScopeEnum.SCOPE_COMPANY.getValue()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getOtherSchemeId(), PaymentScopeEnum.SCOPE_COMPANY.getValue()); + otherComJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "otherComBase", v); + } + }); + } + } else { + if (otherJson != null) { + //查询该福利方案下开启缴纳的福利项 +// List insuranceIdList = siArchivesBiz.payInsuranceIds(item.getOtherSchemeId()); + List insuranceIdList = getSIArchivesService(user).payInsuranceIds(item.getOtherSchemeId()); + otherJson.forEach((k, v) -> { + if (insuranceIdList.contains(Long.valueOf(k))) { + record.put(k + "otherBase", v); + } + }); + } + } + } + if (StringUtils.isNotEmpty(item.getSocialPerJson())) { + Map socialJson = JSON.parseObject(item.getSocialPerJson(), new HashMap().getClass()); + if (socialJson != null) { + socialJson.forEach((k, v) -> { + record.put(k + "socialPer", (String) v); + }); + } + + } + // + // // 钱智 社保差异 + // final BigDecimal[] socialSpecialSum = {new BigDecimal(0)}; + // if (StringUtils.isNotEmpty(item.getSocialSpecialJson())) { + // Map socialSpecialJson = JSON.parseObject(item.getSocialSpecialJson(), new HashMap().getClass()); + // if(socialSpecialJson!=null){ + // socialSpecialJson.forEach((k, v) -> { + // String standardSocialPer = Util.null2String(record.get(k + "socialPer")); + // BigDecimal standardSocialPerVal = new BigDecimal(0); + // BigDecimal specialSocialPerVal = new BigDecimal(0); + // if (NumberUtils.isCreatable(standardSocialPer)) { + // standardSocialPerVal = new BigDecimal(standardSocialPer); + // } + // if (v != null && NumberUtils.isCreatable(v.toString())) { + // specialSocialPerVal = new BigDecimal(v.toString()); + // } + // BigDecimal subtract = specialSocialPerVal.subtract(standardSocialPerVal); + // socialSpecialSum[0] = socialSpecialSum[0].add(subtract); + // record.put(k + "socialSpecial", subtract.toString()); + // }); + // } + // } + record.put("socialPerSum", item.getSocialPerSum()); + // record.put("socialSpecialSum", socialSpecialSum[0]); + if (StringUtils.isNotEmpty(item.getFundPerJson())) { + Map fundPerJson = JSON.parseObject(item.getFundPerJson(), new HashMap().getClass()); + if (fundPerJson != null) { + fundPerJson.forEach((k, v) -> { + record.put(k + "fundPer", (String) v); + }); + } + + } + // // 钱智 公积金差异 + // final BigDecimal[] fundSpecialSum = {new BigDecimal(0)}; + // if (StringUtils.isNotEmpty(item.getFundSpecialJson())) { + // Map fundSpecialJson = JSON.parseObject(item.getFundSpecialJson(), new HashMap().getClass()); + // if(fundSpecialJson!=null){ + // fundSpecialJson.forEach((k, v) -> { + // String standardFundPer = Util.null2String(record.get(k + "fundPer")); + // BigDecimal standardFundPerVal = new BigDecimal(0); + // BigDecimal specialFundPerVal = new BigDecimal(0); + // if (NumberUtils.isCreatable(standardFundPer)) { + // standardFundPerVal = new BigDecimal(standardFundPer); + // } + // if (v != null && NumberUtils.isCreatable(v.toString())) { + // specialFundPerVal = new BigDecimal(v.toString()); + // } + // BigDecimal subtract = specialFundPerVal.subtract(standardFundPerVal); + // fundSpecialSum[0] = fundSpecialSum[0].add(subtract); + // record.put(k + "fundSpecial", subtract.toString()); + // }); + // } + // } + record.put("fundPerSum", item.getFundPerSum()); + // record.put("fundSpecialSum", fundSpecialSum[0]); + if (StringUtils.isNotEmpty(item.getOtherPerJson())) { + Map fundPerJson = JSON.parseObject(item.getOtherPerJson(), new HashMap().getClass()); + if (fundPerJson != null) { + fundPerJson.forEach((k, v) -> { + record.put(k + "otherPer", (String) v); + }); + } + + } + record.put("otherPerSum", item.getOtherPerSum()); + record.put("perSum", item.getPerSum()); + if (StringUtils.isNotEmpty(item.getSocialComJson())) { + Map fundPerJson = JSON.parseObject(item.getSocialComJson(), new HashMap().getClass()); + if (fundPerJson != null) { + fundPerJson.forEach((k, v) -> { + record.put(k + "socialCom", (String) v); + }); + } + fundPerJson.forEach((k, v) -> { + record.put(k + "socialCom", (String) v); + }); + } + record.put("socialComSum", item.getSocialComSum()); + if (StringUtils.isNotEmpty(item.getFundComJson())) { + Map fundPerJson = JSON.parseObject(item.getFundComJson(), new HashMap().getClass()); + if (fundPerJson != null) { + fundPerJson.forEach((k, v) -> { + record.put(k + "fundCom", (String) v); + }); + } + + } + record.put("fundComSum", item.getFundComSum()); + if (StringUtils.isNotEmpty(item.getOtherComJson())) { + Map fundPerJson = JSON.parseObject(item.getOtherComJson(), new HashMap().getClass()); + if (fundPerJson != null) { + fundPerJson.forEach((k, v) -> { + record.put(k + "otherCom", (String) v); + }); + } + + } + record.put("otherComSum", item.getOtherComSum()); + + // 钱智 社保差异 + final BigDecimal[] socialSpecialSum = {new BigDecimal(0)}; + if (StringUtils.isNotEmpty(item.getSocialSpecialJson())) { + Map socialSpecialJson = JSON.parseObject(item.getSocialSpecialJson(), new HashMap().getClass()); + if (socialSpecialJson != null) { + socialSpecialJson.forEach((k, v) -> { + // String standardSocialPer = Util.null2String(record.get(k + "socialPer")); + // BigDecimal standardSocialPerVal = new BigDecimal(0); + // if (NumberUtils.isCreatable(standardSocialPer)) { + // standardSocialPerVal = new BigDecimal(standardSocialPer); + // } + BigDecimal specialComVal = v == null ? new BigDecimal("0") : new BigDecimal(v.toString()); + String standardSocialCom = Util.null2String(record.get(k + "socialCom")); + BigDecimal standardComPerVal = new BigDecimal(0); + if (NumberUtils.isCreatable(standardSocialCom)) { + standardComPerVal = new BigDecimal(standardSocialCom); + } + BigDecimal subtract = specialComVal.subtract(standardComPerVal); + socialSpecialSum[0] = socialSpecialSum[0].add(subtract); + record.put(k + "socialSpecial", subtract.toString()); + }); + } + } + record.put("socialSpecialSum", socialSpecialSum[0].toPlainString()); + // 钱智 公积金差异 + final BigDecimal[] fundSpecialSum = {new BigDecimal(0)}; + if (StringUtils.isNotEmpty(item.getFundSpecialJson())) { + Map fundSpecialJson = JSON.parseObject(item.getFundSpecialJson(), new HashMap().getClass()); + if (fundSpecialJson != null) { + fundSpecialJson.forEach((k, v) -> { + // String standardFundPer = Util.null2String(record.get(k + "fundPer")); + // BigDecimal standardFundPerVal = new BigDecimal(0); + // if (NumberUtils.isCreatable(standardFundPer)) { + // standardFundPerVal = new BigDecimal(standardFundPer); + // } + BigDecimal specialComVal = v == null ? new BigDecimal("0") : new BigDecimal(v.toString()); + String standardFundCom = Util.null2String(record.get(k + "fundCom")); + BigDecimal standardFundComVal = new BigDecimal(0); + if (NumberUtils.isCreatable(standardFundCom)) { + standardFundComVal = new BigDecimal(standardFundCom); + } + BigDecimal subtract = specialComVal.subtract(standardFundComVal); + fundSpecialSum[0] = fundSpecialSum[0].add(subtract); + record.put(k + "fundSpecial", subtract.toString()); + }); + } + } + record.put("fundSpecialSum", fundSpecialSum[0].toPlainString()); + record.put("specialSum", socialSpecialSum[0].add(fundSpecialSum[0]).toPlainString()); + record.put("comSum", item.getComSum()); + record.put("socialSum", item.getSocialSum()); + record.put("fundSum", item.getFundSum()); + record.put("otherSum", item.getOtherSum()); + record.put("total", item.getTotal()); + result.add(record); + }); + return result; + } } \ No newline at end of file diff --git a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java index d5a1e958a..7f73a5376 100644 --- a/src/com/engine/salary/service/impl/SIAccountServiceImpl.java +++ b/src/com/engine/salary/service/impl/SIAccountServiceImpl.java @@ -7209,9 +7209,14 @@ public class SIAccountServiceImpl extends Service implements SIAccountService { OrderRuleVO orderRule = getSalarySysConfService(user).orderRule(); queryParam.setOrderRule(orderRule); //系统人员福利台账明细 - list.addAll(encryptUtil.decryptList(getInsuranceAccountDetailMapper().qzReportList(queryParam), QZReportListDTO.class)); + List qzReportListDTOS = getInsuranceAccountDetailMapper().qzReportList(queryParam); + encryptUtil.decryptList(qzReportListDTOS, QZReportListDTO.class); + list.addAll(qzReportListDTOS); } + List> list1 = getService(user).buildQzReport(list, (long) user.getUID(), false); + + return null; }