diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index db00f55f2..b5342cdcb 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -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 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 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> acctResultMap = SalaryAcctResultBO.buildData4Report(needSumItemList, salarySobEmpFields, employeeList, salaryAcctEmployeePOList, acctResultList, false); + for (Map 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>> acctResultGroupMap = SalaryEntityUtil.group2Map(acctResultMap, resultMap -> resultMap.getOrDefault("departmentId", "").toString()); LinkedHashMap> sumResultByGroup = getSumResultByGroup(acctResultGroupMap, Collections.emptyList(), needSumItemList);