富士达报表
This commit is contained in:
parent
73c7ff48b3
commit
c08478befb
|
|
@ -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<FsdReportJSONParam> children;
|
||||
|
||||
private Map<String, Object> resultValue;
|
||||
// private Map<String, Object> 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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<SalaryAcctResultPO> result = new ArrayList<>();
|
||||
partition.forEach(empIds -> {
|
||||
SalaryAcctResultPO build = SalaryAcctResultPO.builder().salaryAcctEmpIds(empIds).salaryItemIds(salaryItemIds).build();
|
||||
result.addAll(getSalaryAcctResultMapper().listSome(build));
|
||||
List<SalaryAcctResultPO> 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<FsdReportJSONParam> childrenParamList = rangeParam.getChildren();
|
||||
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
|
||||
Map<String, Object> 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<FsdReportJSONParam> childrenParamList = rangeParam.getChildren();
|
||||
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
|
||||
Map<String, Object> 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<FsdReportJSONParam> childrenParamList = rangeParam.getChildren();
|
||||
Map<String, Object> valueMap = countFsdReportDTO(lssjMap, rangeParam, totalSalaryAcctEmployeeList, totalAcctResultPOList, itemIds, sumItemIds, ylaogrItemId, yliaogrItemId, gjjgrItemId);
|
||||
Map<String, Object> 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<String, Object> countFsdReportDTO(Map<String, List<FsdReportLssjDTO>> lssjMap,FsdReportJSONParam rangeParam, List<SalaryAcctEmployeePO> totalSalaryAcctEmployeeList,
|
||||
|
|
@ -1577,6 +1564,19 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
salaryAcctEmployeeList.addAll(totalSalaryAcctEmployeeList);
|
||||
FsdReportRuleJSONParam rule = rangeParam.getRule();
|
||||
// 根据条件过滤核算人员
|
||||
if (rule == null) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
List<FsdReportLssjDTO> 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());
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue