万君筑天科技 部门报表需求变更

This commit is contained in:
Harryxzy 2025-06-03 09:53:47 +08:00
parent b0f87764ae
commit b2f9e14b07
1 changed files with 25 additions and 0 deletions

View File

@ -69,6 +69,7 @@ import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.util.StopWatch;
import weaver.general.BaseBean;
import weaver.hrm.User;
import weaver.wechat.util.Utils;
import java.math.BigDecimal;
import java.util.*;
@ -1300,6 +1301,23 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
// 查询薪资核算人员
List<SalaryAcctEmployeePO> salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()));
// 二开 - 只统计名字中带 公司领导班子 部门
BaseBean baseBean = new BaseBean();
Long ldbzDepartmentId = NumberUtils.isCreatable(baseBean.getPropValue("wjztkjSalary", "gsldbz_department_id")) ? Long.valueOf(baseBean.getPropValue("wjztkjSalary", "gsldbz_department_id")) : 0L;
// 获取领导班子部门名称
DeptInfo ldbzDepartment = getSalaryEmployeeService(user).getDeptInfoById(ldbzDepartmentId);
String ldbzDepartmentName = ldbzDepartment == null ? "" : ldbzDepartment.getName();
List<Long> needSumToLdbzDepartmentIds = Arrays.stream(baseBean.getPropValue("wjztkjSalary", "need_sum_to_gsldbz_department_ids").split(","))
.filter(NumberUtils::isCreatable)
.map(Long::valueOf)
.collect(Collectors.toList());
salaryAcctEmployeePOList = salaryAcctEmployeePOList.stream()
.filter(acctEmp -> acctEmp.getDepartmentName().contains("")
|| needSumToLdbzDepartmentIds.contains(acctEmp.getDepartmentId())
|| acctEmp.getDepartmentId().equals(ldbzDepartmentId))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(salaryAcctEmployeePOList)) {
return map;
}
@ -1337,6 +1355,13 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
});
List<Map<String, Object>> acctResultMap = SalaryAcctResultBO.buildData4Report(needSumItemList, salarySobEmpFields, employeeList, salaryAcctEmployeePOList, acctResultList, false);
for (Map<String, Object> resultMap : acctResultMap) {
Long departmentId = NumberUtils.isCreatable(Utils.null2String(resultMap.get("departmentId"))) ? Long.valueOf(Utils.null2String(resultMap.get("departmentId"))) : null;
if (departmentId != null && needSumToLdbzDepartmentIds.contains(departmentId)) {
resultMap.put("departmentId", ldbzDepartmentId);
resultMap.put("departmentName", ldbzDepartmentName);
}
}
// 根据部门分组
Map<String, List<Map<String, Object>>> acctResultGroupMap = SalaryEntityUtil.group2Map(acctResultMap, resultMap -> resultMap.getOrDefault("departmentId", "").toString());
LinkedHashMap<String, Map<String, Object>> sumResultByGroup = getSumResultByGroup(acctResultGroupMap, Collections.emptyList(), needSumItemList);