diff --git a/src/com/engine/salary/entity/salaryacct/param/FsdReportJSONParam.java b/src/com/engine/salary/entity/salaryacct/param/FsdReportJSONParam.java index fc325c252..6cb77981a 100644 --- a/src/com/engine/salary/entity/salaryacct/param/FsdReportJSONParam.java +++ b/src/com/engine/salary/entity/salaryacct/param/FsdReportJSONParam.java @@ -6,7 +6,6 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; -import java.util.Map; /** * @ClassName FsdReportQueryParam @@ -32,5 +31,17 @@ public class FsdReportJSONParam { private List children; - private Map resultValue; + // private Map resultValue; + + private String thisMonthValue; + private String thisYearValue; + private String lastYearValue; + private String thisMonthEmpNums; + private String thisYearAveEmpNums; + private String lastYearAveEmpNums; + private String empNumsCy; + private String valueCy; + + } + diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index f72722928..4c495f0b2 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.hrmelog.entity.dto.LoggerContext; @@ -1117,11 +1118,11 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe List result = new ArrayList<>(); partition.forEach(empIds -> { SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).salaryItemIds(salaryItemIds).build(); - result.addAll(getSalaryAcctResultMapper().listSome(build)); + List acctResultList = getSalaryAcctResultMapper().listSome(build); + // 数据解密 + encryptUtil.decryptList(acctResultList, SalaryAcctResultPO.class); + result.addAll(acctResultList); }); - - // 数据解密 - encryptUtil.decryptList(result, SalaryAcctResultPO.class); return result; } @@ -1421,17 +1422,13 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe for (FsdReportJSONParam rangeParam : fsdReportJSONParams) { List childrenParamList = rangeParam.getChildren(); Map valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId); - Map resultValueMap = new HashMap<>(); - resultValueMap.put("thisMonthEmpNums", valueMap.get("empNum")); - resultValueMap.put("thisMonthValue", valueMap.get("value")); - rangeParam.setResultValue(resultValueMap); + rangeParam.setThisMonthEmpNums(Utils.null2String(valueMap.get("empNum"))); + rangeParam.setThisMonthValue(Utils.null2String(valueMap.get("value"))); if (!CollectionUtils.isEmpty(childrenParamList)) { for (FsdReportJSONParam childrenParam : childrenParamList) { valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId); - resultValueMap = new HashMap<>(); - resultValueMap.put("thisMonthEmpNums", valueMap.get("empNum")); - resultValueMap.put("thisMonthValue", valueMap.get("value")); - childrenParam.setResultValue(resultValueMap); + childrenParam.setThisMonthEmpNums(Utils.null2String(valueMap.get("empNum"))); + childrenParam.setThisMonthValue(Utils.null2String(valueMap.get("value"))); } } } @@ -1450,7 +1447,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (CollectionUtils.isNotEmpty(salaryAcctRecordIds)) { totalSalaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); } - totalSalaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); totalSalaryAcctEmpIds = totalSalaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); log.info("salaryReport 本年核算人数{}", totalSalaryAcctEmpIds == null ? 0 : totalSalaryAcctEmpIds.size()); totalAcctResultPOList = listByAcctEmployeeIdsAndSalaryItemIds(totalSalaryAcctEmpIds, itemIds); @@ -1470,21 +1466,17 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe for (FsdReportJSONParam rangeParam : fsdReportJSONParams) { List childrenParamList = rangeParam.getChildren(); Map valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId); - Map resultValueMap = rangeParam.getResultValue(); String avgEmpNums = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0")) .divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP).toString(); - resultValueMap.put("thisYearAveEmpNums", avgEmpNums); - resultValueMap.put("thisYearValue", valueMap.get("value")); - rangeParam.setResultValue(resultValueMap); + rangeParam.setThisYearAveEmpNums(avgEmpNums); + rangeParam.setThisYearValue(Utils.null2String(valueMap.get("value"))); if (!CollectionUtils.isEmpty(childrenParamList)) { for (FsdReportJSONParam childrenParam : childrenParamList) { valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId); - resultValueMap = childrenParam.getResultValue(); avgEmpNums = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0")) .divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP).toString(); - resultValueMap.put("thisYearAveEmpNums", avgEmpNums); - resultValueMap.put("thisYearValue", valueMap.get("value")); - childrenParam.setResultValue(resultValueMap); + childrenParam.setThisYearAveEmpNums(avgEmpNums); + childrenParam.setThisYearValue(Utils.null2String(valueMap.get("value"))); } } } @@ -1504,7 +1496,6 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe if (CollectionUtils.isNotEmpty(salaryAcctRecordIds)) { totalSalaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); } - totalSalaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds); totalSalaryAcctEmpIds = totalSalaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); log.info("salaryReport 去年核算人数{}", totalSalaryAcctEmpIds == null ? 0 : totalSalaryAcctEmpIds.size()); totalAcctResultPOList = listByAcctEmployeeIdsAndSalaryItemIds(totalSalaryAcctEmpIds, itemIds); @@ -1524,34 +1515,31 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe for (FsdReportJSONParam rangeParam : fsdReportJSONParams) { List childrenParamList = rangeParam.getChildren(); Map valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId); - Map resultValueMap = rangeParam.getResultValue(); BigDecimal avgEmpNumsVal = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0")) - .divide(new BigDecimal("12"), 2, RoundingMode.HALF_UP); - resultValueMap.put("lastYearAveEmpNums", avgEmpNumsVal.toString()); - resultValueMap.put("lastYearValue", valueMap.get("value")); + .divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP); + rangeParam.setLastYearAveEmpNums(avgEmpNumsVal.toString()); + rangeParam.setLastYearValue(Utils.null2String(valueMap.get("value"))); // 获取今年平均人数和金额 - BigDecimal thisYearAveEmpNums = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(resultValueMap.get("thisYearAveEmpNums"))); - BigDecimal thisYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(resultValueMap.get("thisYearValue"))); + BigDecimal thisYearAveEmpNums = SalaryEntityUtil.string2BigDecimalDefault0(rangeParam.getThisYearAveEmpNums()); + BigDecimal thisYearValue = SalaryEntityUtil.string2BigDecimalDefault0(rangeParam.getThisYearValue()); BigDecimal lastYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("value"))); - resultValueMap.put("empNumsCy", thisYearAveEmpNums.subtract(avgEmpNumsVal).toString()); - resultValueMap.put("valueCy", thisYearValue.subtract(lastYearValue).toString()); - rangeParam.setResultValue(resultValueMap); + rangeParam.setEmpNumsCy(thisYearAveEmpNums.subtract(avgEmpNumsVal).toString()); + rangeParam.setValueCy(thisYearValue.subtract(lastYearValue).toString()); if ( !CollectionUtils.isEmpty(childrenParamList)) { for (FsdReportJSONParam childrenParam : childrenParamList) { valueMap = countFsdReportDTO(lssjMap, childrenParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId); - resultValueMap = childrenParam.getResultValue(); + avgEmpNumsVal = (NumberUtils.isCreatable(Utils.null2String(valueMap.get("empNum"))) ? new BigDecimal(Utils.null2String(valueMap.get("empNum"))) : new BigDecimal("0")) - .divide(new BigDecimal("12"), 2, RoundingMode.HALF_UP); - resultValueMap.put("lastYearAveEmpNums", avgEmpNumsVal.toString()); - resultValueMap.put("lastYearValue", valueMap.get("value")); + .divide(new BigDecimal(monthValue), 2, RoundingMode.HALF_UP); + childrenParam.setLastYearAveEmpNums(avgEmpNumsVal.toString()); + childrenParam.setLastYearValue(Utils.null2String(valueMap.get("value"))); // 获取今年平均人数和金额 - thisYearAveEmpNums = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(resultValueMap.get("thisYearAveEmpNums"))); - thisYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(resultValueMap.get("thisYearValue"))); + thisYearAveEmpNums = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(childrenParam.getThisYearAveEmpNums())); + thisYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(childrenParam.getThisYearValue())); lastYearValue = SalaryEntityUtil.string2BigDecimalDefault0(Utils.null2String(valueMap.get("value"))); - resultValueMap.put("empNumsCy", thisYearAveEmpNums.subtract(avgEmpNumsVal).toString()); - resultValueMap.put("valueCy", thisYearValue.subtract(lastYearValue).toString()); - childrenParam.setResultValue(resultValueMap); + childrenParam.setEmpNumsCy(thisYearAveEmpNums.subtract(avgEmpNumsVal).toString()); + childrenParam.setValueCy(thisYearValue.subtract(lastYearValue).toString()); } } } @@ -1566,8 +1554,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe p.setRule(null); } }); - String s = JsonUtil.toJsonString(fsdReportJSONParams); - return s; + return JSON.toJSONString(fsdReportJSONParams); } private Map countFsdReportDTO(Map> lssjMap,FsdReportJSONParam rangeParam, List totalSalaryAcctEmployeeList, @@ -1577,6 +1564,19 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe salaryAcctEmployeeList.addAll(totalSalaryAcctEmployeeList); FsdReportRuleJSONParam rule = rangeParam.getRule(); // 根据条件过滤核算人员 + if (rule == null) { + Map resultMap = new HashMap<>(); + List lssjList = lssjMap.get(rangeParam.getName()); + Integer lsEmps = 0; + BigDecimal lsValSum = new BigDecimal("0"); + if (CollectionUtils.isNotEmpty(lssjList)) { + lsEmps = lssjList.stream().map(ls -> ls.getDygzrs()).filter(rs -> rs != null).reduce(new Integer("0"), Integer::sum); + lsValSum = lssjList.stream().map(ls -> ls.getDygzze()).filter(val -> val != null).reduce(new BigDecimal("0"), BigDecimal::add); + } + resultMap.put("empNum", lsEmps.toString()); + resultMap.put("value", lsValSum.toString()); + return resultMap; + } if (CollectionUtils.isNotEmpty(rule.getSubcomids())) { salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(salaryAcctEmployee -> rule.getSubcomids().contains(salaryAcctEmployee.getSubcompanyId())).collect(Collectors.toList()); }