From b4050e4ee850de70bcadbae3556671810023ff80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 16:58:41 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BF=AB=E7=85=A7?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportServiceImpl.java | 184 +++++++++++------- .../SalaryStatisticsReportWrapper.java | 44 ++--- .../impl/SalaryAcctEmployeeServiceImpl.java | 109 ++++------- .../sys/constant/SalarySysConstant.java | 11 ++ 4 files changed, 187 insertions(+), 161 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index 42a65d485..ab16db7cc 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -54,6 +54,8 @@ import weaver.wechat.util.Utils; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE; + /** * 薪酬统计报表 *

Copyright: Copyright (c) 2022

@@ -71,6 +73,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary public static final String LAST_INFO = "lastInfoList"; public static final String SAME_INFO = "sameInfoList"; + private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE)); private SalaryStatisticsReportMapper getSalaryStatisticsReportMapper() { return MapperProxyFactory.getProxy(SalaryStatisticsReportMapper.class); @@ -197,16 +200,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary this.getSalaryStatisticsReportMapper().updateIgnoreNull(poNew); // 记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(poNew.getId())); - loggerContext.setTargetName(poNew.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "更新报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "更新报表")); - loggerContext.setOldValues(po); - loggerContext.setNewValues(poNew); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(poNew.getId())); + loggerContext.setTargetName(poNew.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOldValues(po); + loggerContext.setNewValues(poNew); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } else { List list = listByName(saveParam.getReportName()); if (CollectionUtils.isNotEmpty(list)) { @@ -217,15 +220,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsReportMapper().insertIgnoreNull(poNew); // 记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(poNew.getId())); - loggerContext.setTargetName(poNew.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); - loggerContext.setNewValues(poNew); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(poNew.getId())); + loggerContext.setTargetName(poNew.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报表")); + loggerContext.setNewValues(poNew); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } return StringUtils.EMPTY; } @@ -305,16 +308,16 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsItemService(user).saveOrUpdateBatch(salaryStatisticsItemList); //记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(po.getId())); - loggerContext.setTargetName(po.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "更新报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表")); - loggerContext.setOldValues(oldPO); - loggerContext.setNewValues(po); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(po.getId())); + loggerContext.setTargetName(po.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.UPDATE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "更新报表")); + loggerContext.setOldValues(oldPO); + loggerContext.setNewValues(po); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); return StringUtils.EMPTY; } @@ -333,17 +336,17 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary getSalaryStatisticsReportMapper().deleteByIds(deleteIds); //删除薪资项 getSalaryStatisticsItemService(user).deleteByReportIds(deleteIds); - list.forEach(e -> { - // 记录日志 - LoggerContext loggerContext = new LoggerContext<>(); - loggerContext.setUser(user); - loggerContext.setTargetId(String.valueOf(e.getId())); - loggerContext.setTargetName(e.getReportName()); - loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "删除报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "删除报表") + e.getReportName()); - SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); - }); + list.forEach(e -> { + // 记录日志 + LoggerContext loggerContext = new LoggerContext<>(); + loggerContext.setUser(user); + loggerContext.setTargetId(String.valueOf(e.getId())); + loggerContext.setTargetName(e.getReportName()); + loggerContext.setOperateType(OperateTypeEnum.DELETE.getValue()); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "删除报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "删除报表") + e.getReportName()); + SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); + }); } Map resultMap = new HashMap<>(2); @@ -396,8 +399,8 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary loggerContext.setTargetId(String.valueOf(po.getId())); loggerContext.setTargetName(po.getReportName()); loggerContext.setOperateType(OperateTypeEnum.ADD.getValue()); - loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); - loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel( 0, "新增报表")); + loggerContext.setOperateTypeName(SalaryI18nUtil.getI18nLabel(0, "新增报表")); + loggerContext.setOperatedesc(SalaryI18nUtil.getI18nLabel(0, "新增报表")); loggerContext.setNewValues(po); SalaryElogConfig.salaryStatReportLoggerTemplate.write(loggerContext); } @@ -479,7 +482,15 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listBySalaryStatisticsReportParam(queryParam); // 设置dimensionValue为维度值 - SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder().list(salaryAcctEmployeeList).lastList(Collections.emptyList()).sameList(Collections.emptyList()).salaryStatisticsItemList(salaryStatisticsItemPOS).employeeId((long) user.getUID()).tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY).dimensionValue(param.getDimensionValue()).build(); + SalaryStatisticsReportDataDTO salaryStatisticsReportData = SalaryStatisticsReportDataDTO.builder() + .list(salaryAcctEmployeeList) + .lastList(Collections.emptyList()) + .sameList(Collections.emptyList()) + .salaryStatisticsItemList(salaryStatisticsItemPOS) + .employeeId((long) user.getUID()) + .dimensionValue(param.getDimensionValue()) + .tenantKey(SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY) + .build(); Map> resultMap = new HashMap<>(); List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); @@ -848,44 +859,78 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary Map lastEmpIdDepartIdMap = new HashMap<>(); Map sameEmpIdDepartIdMap = new HashMap<>(); Map departIdNameMap = new HashMap<>(); - simpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); - departIds.add(employee.getDepartmentId()); - empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); - lastSimpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); - sameSimpleEmployeeList.forEach(employee -> { - if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { - sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); - } - }); + if (isRealOrg) { + simpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); + departIds.add(employee.getDepartmentId()); + empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + lastSimpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + sameSimpleEmployeeList.forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + } else { + data.getList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + departIdNameMap.put(employee.getDepartmentId(), employee.getDepartmentName()); + departIds.add(employee.getDepartmentId()); + empIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + data.getLastList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + lastEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + data.getSameList().forEach(employee -> { + if (employee.getDepartmentName() != null && employee.getDepartmentId() != null) { + sameEmpIdDepartIdMap.put(employee.getEmployeeId(), employee.getDepartmentId()); + } + }); + } String dimensionValue = data.getDimensionValue(); departIds.forEach(departId -> { if (dimensionValue == null) { - List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); - List lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); - List sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + List lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + List sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + if (isRealOrg) { + departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + lastDepartEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + sameDepartEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + } Map temp = new HashMap<>(); temp.put(DM, departIdNameMap.get(departId)); temp.putAll(SalaryStatisticsReportBO.calculateItem(departEmployeePOS, lastDepartEmployeePOS, sameDepartEmployeePOS, salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); records.add(temp); } else if (StringUtils.equals(dimensionValue, departIdNameMap.get(departId))) { - List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); + if (isRealOrg) { + data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + } data.setListByDimensionValue(departEmployeePOS); } }); if (dimensionValue == null) { - List noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + List lastNoGroupingList = data.getLastList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + List sameNoGroupingList = data.getSameList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + sameNoGroupingList = data.getSameList().stream().filter(po -> lastEmpIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + + } if (CollectionUtils.isNotEmpty(noGroupingList)) { Map noGrouping = new HashMap<>(); noGrouping.put(DM, SalaryI18nUtil.getI18nLabel(153462, "无分组")); @@ -893,7 +938,10 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary records.add(noGrouping); } } else if (StringUtils.equals(dimensionValue, "无分组")) { - List noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); + if(isRealOrg){ + noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + } data.setListByDimensionValue(noGroupingList); } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 22fb6261f..7556b7bf8 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } - if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { - //报表中缓存的条件 - salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); - if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { - Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); - if (param.getDimensionId().equals(empDimensionId)) { - // 人员维度需要分页 - Map finalResultMap = new HashMap<>(); - PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); - PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); - finalPageInfo.setTotal(pageInfo.getList().size()); - finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); - finalResultMap.put("pageInfo", finalPageInfo); - finalResultMap.put("columns", result.get("columns")); - finalResultMap.put("countResult", result.get("countResult")); - finalResultMap.put("reportId", id); - return finalResultMap; - } - - return result; - } - } +// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { +// //报表中缓存的条件 +// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); +// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { +// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); +// if (param.getDimensionId().equals(empDimensionId)) { +// // 人员维度需要分页 +// Map finalResultMap = new HashMap<>(); +// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); +// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); +// finalPageInfo.setTotal(pageInfo.getList().size()); +// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); +// finalResultMap.put("pageInfo", finalPageInfo); +// finalResultMap.put("columns", result.get("columns")); +// finalResultMap.put("countResult", result.get("countResult")); +// finalResultMap.put("reportId", id); +// return finalResultMap; +// } +// +// return result; +// } +// } // 列表data diff --git a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java index a36f2dd57..0dce7dbda 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctEmployeeServiceImpl.java @@ -47,6 +47,8 @@ import weaver.hrm.User; import java.util.*; import java.util.stream.Collectors; +import static com.engine.salary.sys.constant.SalarySysConstant.REPORT_ORGANIZATIN_TYPE; + /** * 薪资核算人员 *

Copyright: Copyright (c) 2022

@@ -102,6 +104,11 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); } + private SalaryCacheService getSalaryCacheService(User user) { + return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); + } + + private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE)); @Override public List countBySalaryAcctRecordId(Collection salaryAcctRecordIds) { @@ -656,11 +663,6 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct lambdaQueryChainWrapper.setSalaryMonths(yearMonths); } - // 收入所得项目 -// if (CollectionUtils.isNotEmpty(param.getIncomeCategory())) { -// lambdaQueryChainWrapper.in(SalaryAcctEmployeePO::getIncomeCategory, param.getIncomeCategory().stream().map(Object::toString).collect(Collectors.toList())); -// } - //排除未归档数据 List salaryAcctRecordPOS = getSalaryAcctRecordService(user).listAll(); List salaryAcctRecordIds = salaryAcctRecordPOS.stream() @@ -690,70 +692,47 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct // 获取分部信息 List subCompanyIds = param.getSubCompany(); if (CollectionUtils.isNotEmpty(subCompanyIds)) { -// SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); -// List allSubcompanyIds = new ArrayList<>(); -// for (Long subCompanyId : subCompanyIds) { -// String organizationIds = Util.null2String(subCompanyId); -// String allChildSubcompanyId = subCompanyComInfo.getAllChildSubcompanyId(subCompanyId.toString(), organizationIds); -// allSubcompanyIds.addAll(Arrays.asList(allChildSubcompanyId.split(","))); -// } - employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyid())).collect(Collectors.toList()); + } else { + list.stream().filter(emp -> subCompanyIds.contains(emp.getSubcompanyId())).collect(Collectors.toList()); + } } // 部门过滤 List depart = param.getDepart(); if (CollectionUtils.isNotEmpty(depart)) { -// List allDepartIds = new ArrayList<>(); -// for (Long subDepartId : depart) { -// String ids = Util.null2String(subDepartId); -// try { -// String allDepartId = DepartmentComInfo.getAllChildDepartId(subDepartId.toString(), ids); -// allDepartIds.addAll(Arrays.asList(allDepartId.toString().split(","))); -// } catch (Exception e) { -// log.error("获取子部门失败", e); -// } -// } - employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(emp -> depart.contains(emp.getDepartmentId())).collect(Collectors.toList()); + } } - // 职级过滤 -// if (CollectionUtils.isNotEmpty(param.getGrade())) { -// Set employeeIdsByGradeFilter = new HashSet<>(); -// simpleEmployeeList.forEach(simpleEmployee -> { -// if (simpleEmployee.getGrade() != null && param.getGrade().contains(simpleEmployee.getGrade().getId())) { -// employeeIdsByGradeFilter.add(simpleEmployee.getEmployeeId()); -// } -// }); -// if (CollectionUtils.isEmpty(employeeIdsByGradeFilter)) { -// return Lists.newArrayList(); -// } -// list = list.stream().filter(po -> employeeIdsByGradeFilter.contains(po.getEmployeeId())).collect(Collectors.toList()); -// } // 岗位过滤 List position = param.getPosition(); if (CollectionUtils.isNotEmpty(position)) { - // Set employeeIdsByPostionFilter = new HashSet<>(); - // simpleEmployeeList.forEach(simpleEmployee -> { - // if (simpleEmployee.getPosition() != null && param.getPosition().contains(simpleEmployee.getPosition().getId())) { - // employeeIdsByPostionFilter.add(simpleEmployee.getEmployeeId()); - // } - // }); - // if (CollectionUtils.isEmpty(employeeIdsByPostionFilter)) { - // return Lists.newArrayList(); - // } - employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + if (isRealOrg) { + employeeList = employeeList.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(emp -> position.contains(emp.getJobtitleId())).collect(Collectors.toList()); + } } // 人事状态过滤 if (CollectionUtils.isNotEmpty(param.getStatus())) { - Set employeeIdsByStatus = new HashSet<>(); - employeeList.forEach(simpleEmployee -> { - if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) { - employeeIdsByStatus.add(simpleEmployee.getEmployeeId()); + if (isRealOrg) { + Set employeeIdsByStatus = new HashSet<>(); + employeeList.forEach(simpleEmployee -> { + if (simpleEmployee.getStatus() != null && param.getStatus().contains(simpleEmployee.getStatus())) { + employeeIdsByStatus.add(simpleEmployee.getEmployeeId()); + } + }); + if (CollectionUtils.isEmpty(employeeIdsByStatus)) { + return Lists.newArrayList(); } - }); - if (CollectionUtils.isEmpty(employeeIdsByStatus)) { - return Lists.newArrayList(); + list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList()); + } else { + list = list.stream().filter(po -> po.getStatus() != null && param.getStatus().contains(po.getStatus())).collect(Collectors.toList()); } - list = list.stream().filter(po -> employeeIdsByStatus.contains(po.getEmployeeId())).collect(Collectors.toList()); } // 入职日期 if (CollectionUtils.isNotEmpty(param.getHiredate())) { @@ -769,27 +748,15 @@ public class SalaryAcctEmployeeServiceImpl extends Service implements SalaryAcct } list = list.stream().filter(po -> employeeIdsByHiredate.contains(po.getEmployeeId())).collect(Collectors.toList()); } -// // 离职日期 todo -// if (CollectionUtils.isNotEmpty(param.getLeavedate())) { -// Set employeeIdsByLeavedate = new HashSet<>(); -// simpleEmployeeList.forEach(simpleEmployee -> { -// -// if (simpleEmployee.get() != null && ) { -// employeeIdsByLeavedate.add(simpleEmployee.getEmployeeId()); -// } -// }); -// if (CollectionUtils.isEmpty(employeeIdsByLeavedate)) { -// return Lists.newArrayList(); -// } -// list = list.stream().filter(po -> employeeIdsByLeavedate.contains(po.getEmployeeId())).collect(Collectors.toList()); -// } // 人员 if (CollectionUtils.isNotEmpty(param.getEmployee())) { list = list.stream().filter(po -> param.getEmployee().contains(po.getEmployeeId())).collect(Collectors.toList()); } - Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); - list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); + if(isRealOrg){ + Set empIds = SalaryEntityUtil.properties(employeeList, DataCollectionEmployee::getEmployeeId); + list = list.stream().filter(po -> empIds.contains(po.getEmployeeId())).collect(Collectors.toList()); + } return list; } diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index ff055b89e..443cd4fd5 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -145,4 +145,15 @@ public class SalarySysConstant { * 我的薪资福利工资单个税扣缴义务人显示状态 */ public static final String TAX_AGENT_SHOW_STATUS = "taxAgentShowStatus"; + + + /** + * 报表是否开启缓存,0:关闭 1:开启 + */ + public static final String REPORT_CACHE = "REPORT_CACHE"; + + /** + * 报表组织类型,null/0 :核算快照信息 1:实时组织信息 + */ + public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE"; } From 13f085420824942fe466020df94731484c227a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sun, 29 Sep 2024 17:02:59 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportWrapper.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 7556b7bf8..22fb6261f 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } -// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { -// //报表中缓存的条件 -// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); -// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { -// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); -// if (param.getDimensionId().equals(empDimensionId)) { -// // 人员维度需要分页 -// Map finalResultMap = new HashMap<>(); -// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); -// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); -// finalPageInfo.setTotal(pageInfo.getList().size()); -// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); -// finalResultMap.put("pageInfo", finalPageInfo); -// finalResultMap.put("columns", result.get("columns")); -// finalResultMap.put("countResult", result.get("countResult")); -// finalResultMap.put("reportId", id); -// return finalResultMap; -// } -// -// return result; -// } -// } + if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { + //报表中缓存的条件 + salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); + if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { + Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); + if (param.getDimensionId().equals(empDimensionId)) { + // 人员维度需要分页 + Map finalResultMap = new HashMap<>(); + PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); + PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); + finalPageInfo.setTotal(pageInfo.getList().size()); + finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); + finalResultMap.put("pageInfo", finalPageInfo); + finalResultMap.put("columns", result.get("columns")); + finalResultMap.put("countResult", result.get("countResult")); + finalResultMap.put("reportId", id); + return finalResultMap; + } + + return result; + } + } // 列表data From 8c0bad80232807239452bf6d4109228e5d5adc29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Mon, 30 Sep 2024 10:37:27 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportServiceImpl.java | 77 ++++++++++++++----- 1 file changed, 58 insertions(+), 19 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index ab16db7cc..ecceda7a9 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -796,38 +796,74 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary Map subComIdNameMap = new HashMap<>(); Map lastEmpIdSubComMap = new HashMap<>(); Map sameEmpIdSubComMap = new HashMap<>(); - comInfoMap.forEach((k, v) -> { - subComIdNameMap.put(v.getSubcompanyid(), v.getSubcompanyName()); - empIdSubComMap.put(k, v.getSubcompanyid()); - subComIds.add(v.getSubcompanyid()); - }); - lastComInfoMap.forEach((k, v) -> { - lastEmpIdSubComMap.put(k, v.getSubcompanyid()); - }); - sameComInfoMap.forEach((k, v) -> { - sameEmpIdSubComMap.put(k, v.getSubcompanyid()); - }); + + if (isRealOrg) { + comInfoMap.forEach((k, v) -> { + subComIdNameMap.put(v.getSubcompanyid(), v.getSubcompanyName()); + empIdSubComMap.put(k, v.getSubcompanyid()); + subComIds.add(v.getSubcompanyid()); + }); + lastComInfoMap.forEach((k, v) -> { + lastEmpIdSubComMap.put(k, v.getSubcompanyid()); + }); + sameComInfoMap.forEach((k, v) -> { + sameEmpIdSubComMap.put(k, v.getSubcompanyid()); + }); + } else { + data.getList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + subComIdNameMap.put(employee.getSubcompanyId(), employee.getSubcompanyName()); + subComIds.add(employee.getDepartmentId()); + empIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + data.getLastList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + lastEmpIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + data.getSameList().forEach(employee -> { + if (employee.getSubcompanyId() != null && employee.getSubcompanyId() != null) { + sameEmpIdSubComMap.put(employee.getEmployeeId(), employee.getSubcompanyId()); + } + }); + } + String dimensionValue = data.getDimensionValue(); subComIds.forEach(subComId -> { if (dimensionValue == null) { - List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); - List lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); - List sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + List lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + List sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + if (isRealOrg) { + subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + lastSubComEmployeePOS = data.getLastList().stream().filter(po -> Objects.equals(lastEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + sameSubComEmployeePOS = data.getSameList().stream().filter(po -> Objects.equals(sameEmpIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + } Map temp = new HashMap<>(); temp.put(DM, subComIdNameMap.get(subComId)); temp.putAll(SalaryStatisticsReportBO.calculateItem(subComEmployeePOS, lastSubComEmployeePOS, sameSubComEmployeePOS, salaryAcctResultValueMap, data.getSalaryStatisticsItemList())); records.add(temp); } else if (StringUtils.equals(dimensionValue, subComIdNameMap.get(subComId))) { - List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + List subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getSubcompanyId(), subComId)).collect(Collectors.toList()); + if (isRealOrg) { + subComEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdSubComMap.get(po.getEmployeeId()), subComId)).collect(Collectors.toList()); + } data.setListByDimensionValue(subComEmployeePOS); } }); if (dimensionValue == null) { - List noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); - List sameNoGroupingList = data.getSameList().stream().filter(po -> sameEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + List noGroupingList = data.getList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + List lastNoGroupingList = data.getLastList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + List sameNoGroupingList = data.getSameList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + lastNoGroupingList = data.getLastList().stream().filter(po -> lastEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + sameNoGroupingList = data.getSameList().stream().filter(po -> sameEmpIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + } + if (CollectionUtils.isNotEmpty(noGroupingList)) { Map noGrouping = new HashMap<>(); noGrouping.put(DM, SalaryI18nUtil.getI18nLabel(153462, "无分组")); @@ -836,6 +872,9 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary } } else if (StringUtils.equals(dimensionValue, "无分组")) { List noGroupingList = data.getList().stream().filter(po -> empIdSubComMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); + if (isRealOrg) { + noGroupingList = data.getList().stream().filter(po -> po.getSubcompanyId() == null).collect(Collectors.toList()); + } data.setListByDimensionValue(noGroupingList); } @@ -939,7 +978,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary } } else if (StringUtils.equals(dimensionValue, "无分组")) { List noGroupingList = data.getList().stream().filter(po -> po.getDepartmentId() == null).collect(Collectors.toList()); - if(isRealOrg){ + if (isRealOrg) { noGroupingList = data.getList().stream().filter(po -> empIdDepartIdMap.get(po.getEmployeeId()) == null).collect(Collectors.toList()); } data.setListByDimensionValue(noGroupingList); From edb07052b5a1151a640148fdf78bf1b7a222b8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 14:36:18 +0800 Subject: [PATCH 04/18] =?UTF-8?q?=E5=91=98=E5=B7=A5=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/engine/salary/sys/constant/SalarySysConstant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/sys/constant/SalarySysConstant.java b/src/com/engine/salary/sys/constant/SalarySysConstant.java index 443cd4fd5..6f35124c3 100644 --- a/src/com/engine/salary/sys/constant/SalarySysConstant.java +++ b/src/com/engine/salary/sys/constant/SalarySysConstant.java @@ -153,7 +153,7 @@ public class SalarySysConstant { public static final String REPORT_CACHE = "REPORT_CACHE"; /** - * 报表组织类型,null/0 :核算快照信息 1:实时组织信息 + * 报表组织类型,null/0 :核算时组织信息 1:实时组织信息 */ public static final String REPORT_ORGANIZATIN_TYPE = "REPORT_ORGANIZATIN_TYPE"; } From ff5419f2bb1a1431cfd97a8ad634ebc9f8d00da3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 15:45:12 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryStatisticsEmployeeServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 2e7663392..3ec96c6dc 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -315,7 +315,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala .collect(Collectors.toSet()); // 查询薪资核算人员 - List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByTaxAgentAndSalaryMonth(taxAgentIds, salaryMonths); + SalaryAcctEmployeeQueryParam salaryAcctEmployeeQueryParam = SalaryAcctEmployeeQueryParam.builder().salaryMonths(salaryMonths).taxAgentIds(taxAgentIds).build(); + List salaryAcctEmployeeList = getSalaryAcctEmployeeService(user).listByParam(salaryAcctEmployeeQueryParam); if (CollectionUtils.isNotEmpty(queryParam.getSubCompanyIds()) || CollectionUtils.isNotEmpty(queryParam.getDepartmentIds()) || StringUtils.isNotBlank(queryParam.getKeyword())) { // 根据分部、部门筛选 List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds()); @@ -336,8 +337,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala if (CollectionUtils.isNotEmpty(queryParam.getIds())) { salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(emp -> queryParam.getIds().contains(emp.getId())).collect(Collectors.toList()); } - salaryAcctEmployeeList = salaryAcctEmployeeList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getSalaryMonth)).collect(Collectors.toList()); - Collections.reverse(salaryAcctEmployeeList); + salaryAcctEmployeeList = salaryAcctEmployeeList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getSalaryMonth).reversed()).collect(Collectors.toList()); PageInfo SalaryAcctEmployeePageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), salaryAcctEmployeeList); if (queryParam.isExport()) { SalaryAcctEmployeePageInfo.setList(salaryAcctEmployeeList); From 61dee5d3a122d1f3ddb1d3b2d85b38a823de81d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Tue, 8 Oct 2024 15:48:33 +0800 Subject: [PATCH 06/18] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SalaryStatisticsEmployeeServiceImpl.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 3ec96c6dc..57a8d103d 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -288,9 +288,6 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public PageInfo listSalaryAcctEmp(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { - List list = Collections.emptyList(); - PageInfo page = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(), list, SalaryStatisticsEmployeeListDTO.class); - // 1.分权处理, 首先获取个税扣缴义务人参数 Collection taxAgentViews = getTaxAgentService(user).listAllTaxAgents((long) user.getUID()); List taxAgentIds = Objects.isNull(taxAgentViews) ? Lists.newArrayList() : taxAgentViews.stream().map(TaxAgentPO::getId).collect(Collectors.toList()); From a40188659fe2af6f077d721f840be319deb76862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 9 Oct 2024 13:21:28 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportServiceImpl.java | 9 +++- .../SalaryStatisticsReportWrapper.java | 44 +++++++++---------- .../sys/service/SalarySysConfService.java | 2 + .../impl/SalarySysConfServiceImpl.java | 6 +++ 4 files changed, 37 insertions(+), 24 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java index ecceda7a9..8886cfa6f 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsReportServiceImpl.java @@ -33,6 +33,8 @@ import com.engine.salary.report.service.SalaryStatisticsReportService; import com.engine.salary.report.util.ReportTimeUtil; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; +import com.engine.salary.sys.service.SalarySysConfService; +import com.engine.salary.sys.service.impl.SalarySysConfServiceImpl; import com.engine.salary.util.*; import com.engine.salary.util.db.IdGenerator; import com.engine.salary.util.db.MapperProxyFactory; @@ -73,7 +75,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary public static final String LAST_INFO = "lastInfoList"; public static final String SAME_INFO = "sameInfoList"; - private boolean isRealOrg = "1".equals(getSalaryCacheService(user).get(REPORT_ORGANIZATIN_TYPE)); + private final boolean isRealOrg = "1".equals(getSalarySysConfService(user).getValueByCode(REPORT_ORGANIZATIN_TYPE)); private SalaryStatisticsReportMapper getSalaryStatisticsReportMapper() { return MapperProxyFactory.getProxy(SalaryStatisticsReportMapper.class); @@ -115,6 +117,9 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); } + private SalarySysConfService getSalarySysConfService(User user) { + return ServiceUtil.getService(SalarySysConfServiceImpl.class, user); + } // private ExtEmployeeService extEmployeeService; // // private HrmCommonEmployeeService hrmCommonEmployeeService; @@ -954,7 +959,7 @@ public class SalaryStatisticsReportServiceImpl extends Service implements Salary } else if (StringUtils.equals(dimensionValue, departIdNameMap.get(departId))) { List departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(po.getDepartmentId(), departId)).collect(Collectors.toList()); if (isRealOrg) { - data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); + departEmployeePOS = data.getList().stream().filter(po -> Objects.equals(empIdDepartIdMap.get(po.getEmployeeId()), departId)).collect(Collectors.toList()); } data.setListByDimensionValue(departEmployeePOS); } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 22fb6261f..7556b7bf8 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } - if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { - //报表中缓存的条件 - salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); - if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { - Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); - if (param.getDimensionId().equals(empDimensionId)) { - // 人员维度需要分页 - Map finalResultMap = new HashMap<>(); - PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); - PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); - finalPageInfo.setTotal(pageInfo.getList().size()); - finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); - finalResultMap.put("pageInfo", finalPageInfo); - finalResultMap.put("columns", result.get("columns")); - finalResultMap.put("countResult", result.get("countResult")); - finalResultMap.put("reportId", id); - return finalResultMap; - } - - return result; - } - } +// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { +// //报表中缓存的条件 +// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); +// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { +// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); +// if (param.getDimensionId().equals(empDimensionId)) { +// // 人员维度需要分页 +// Map finalResultMap = new HashMap<>(); +// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); +// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); +// finalPageInfo.setTotal(pageInfo.getList().size()); +// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); +// finalResultMap.put("pageInfo", finalPageInfo); +// finalResultMap.put("columns", result.get("columns")); +// finalResultMap.put("countResult", result.get("countResult")); +// finalResultMap.put("reportId", id); +// return finalResultMap; +// } +// +// return result; +// } +// } // 列表data diff --git a/src/com/engine/salary/sys/service/SalarySysConfService.java b/src/com/engine/salary/sys/service/SalarySysConfService.java index 91eab5317..6b78ceca2 100644 --- a/src/com/engine/salary/sys/service/SalarySysConfService.java +++ b/src/com/engine/salary/sys/service/SalarySysConfService.java @@ -40,6 +40,8 @@ public interface SalarySysConfService { SalarySysConfPO getOneByCode(String code); + String getValueByCode(String code); + List listSome(SalarySysConfPO build); void save(SalarySysConfPO salarySysConfPO); diff --git a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java index 956e6f7cd..64771e07d 100644 --- a/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java +++ b/src/com/engine/salary/sys/service/impl/SalarySysConfServiceImpl.java @@ -216,6 +216,12 @@ public class SalarySysConfServiceImpl extends Service implements SalarySysConfSe return getSalarySysConfMapper().getOneByCode(code); } + @Override + public String getValueByCode(String code) { + SalarySysConfPO confPO = getSalarySysConfMapper().getOneByCode(code); + return confPO == null ? "" : confPO.getConfValue(); + } + @Override public List listSome(SalarySysConfPO po) { return getSalarySysConfMapper().listSome(po); From 3a128a4c5be86862673e1dff9ecbc0b7afe7ec1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 9 Oct 2024 14:59:33 +0800 Subject: [PATCH 08/18] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E5=BF=AB=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsReportWrapper.java | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java index 7556b7bf8..22fb6261f 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsReportWrapper.java @@ -332,28 +332,28 @@ public class SalaryStatisticsReportWrapper extends Service { if (empDimensionOptional.isPresent()) { empDimensionId = empDimensionOptional.get(); } -// if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { -// //报表中缓存的条件 -// salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); -// if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { -// Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); -// if (param.getDimensionId().equals(empDimensionId)) { -// // 人员维度需要分页 -// Map finalResultMap = new HashMap<>(); -// PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); -// PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); -// finalPageInfo.setTotal(pageInfo.getList().size()); -// finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); -// finalResultMap.put("pageInfo", finalPageInfo); -// finalResultMap.put("columns", result.get("columns")); -// finalResultMap.put("countResult", result.get("countResult")); -// finalResultMap.put("reportId", id); -// return finalResultMap; -// } -// -// return result; -// } -// } + if (StringUtils.isNotBlank(salaryReportIds) && salaryReportIds.contains(id + "")) { + //报表中缓存的条件 + salaryReportConditions = Utils.null2String(getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_CONDITIONS + id)); + if (StringUtils.isNotBlank(salaryReportConditions) && salaryReportConditions.contains(paramMd5)) { + Map result = getSalaryCacheService(user).get(SalaryCacheKey.SALARY_REPORT_DATA + id + "_" + paramMd5); + if (param.getDimensionId().equals(empDimensionId)) { + // 人员维度需要分页 + Map finalResultMap = new HashMap<>(); + PageInfo> pageInfo = (PageInfo>) result.get("pageInfo"); + PageInfo> finalPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize()); + finalPageInfo.setTotal(pageInfo.getList().size()); + finalPageInfo.setList(SalaryPageUtil.subList(param.getCurrent(), param.getPageSize(), pageInfo.getList())); + finalResultMap.put("pageInfo", finalPageInfo); + finalResultMap.put("columns", result.get("columns")); + finalResultMap.put("countResult", result.get("countResult")); + finalResultMap.put("reportId", id); + return finalResultMap; + } + + return result; + } + } // 列表data From 2ba4bb72db413c1ebf11926c1d147d0484658c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Wed, 9 Oct 2024 18:10:38 +0800 Subject: [PATCH 09/18] =?UTF-8?q?=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=85=A5=E8=81=8C=E6=97=A5=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/service/impl/SalaryStatisticsEmployeeServiceImpl.java | 1 + .../salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 57a8d103d..5728f0886 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -278,6 +278,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala map.put("jobTitle", Util.null2String(emp.getJobtitleName())); map.put("status", Util.null2String(NumberUtil.isNumber(emp.getStatus()) ? SalaryEmployeeStatusEnum.parseByValue(Integer.valueOf(emp.getStatus())).getDefaultLabel() : null)); map.put("workCode", Util.null2String(emp.getWorkcode())); + map.put("companystartdate", Util.null2String(emp.getCompanystartdate())); // IncomeCategoryEnum incomeCategoryEnum = IncomeCategoryEnum.parseByValue(Integer.parseInt(se.getIncomeCategory())); // map.put("incomeCategory", Objects.isNull(incomeCategoryEnum) ? "" : SalaryI18nUtil.getI18nLabel(incomeCategoryEnum.getLabelId(), incomeCategoryEnum.getDefaultLabel())); diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 66eeff817..646600f08 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -136,6 +136,7 @@ public class SalaryStatisticsEmployeeWrapper extends Service { columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "岗位"), "jobTitle")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "员工状态"), "status")); columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "workCode")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "入职日期"), "companystartdate")); } columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "次数"), "acctTimes").setDisplay(WeaBoolAttr.FALSE)); // columns.add(new WeaTableColumn("100px",SalaryI18nUtil.getI18nLabel( 121908, "收入所得项目"), "incomeCategory")); From 861cda00faf7db815ca8a68c0371f4bd481b9d58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 10 Oct 2024 11:39:22 +0800 Subject: [PATCH 10/18] =?UTF-8?q?1=E3=80=81=E6=89=B9=E9=87=8F=E9=94=81?= =?UTF-8?q?=E5=AE=9A=E3=80=81=E6=89=B9=E9=87=8F=E8=A7=A3=E9=94=81=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E4=BA=BA=E5=91=98=E7=9A=84=E6=89=80=E5=9C=A8=E8=A1=8C?= =?UTF-8?q?=E7=9A=84=E5=B7=A5=E8=B5=84=E9=A1=B9=E7=9B=AE=EF=BC=8C=E9=9C=80?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=BA=BA=E5=91=98=E7=9A=84=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E6=9D=A5=E8=AE=BE=E7=BD=AE=E3=80=82=202=E3=80=81=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E8=96=AA=E8=B5=84=E9=A1=B9=E7=9B=AE=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=8B=E5=BD=93=E5=89=8D=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E8=A1=A8=E5=A4=B4=E8=83=BD=E5=90=A6=E8=87=AA=E5=8A=A8=E4=B8=BA?= =?UTF-8?q?=E4=B8=8A=E6=AC=A1=E9=80=89=E6=8B=A9=E7=9A=84=E8=A1=A8=E5=A4=B4?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../po/SalaryAcctResultTemplatePO.java | 7 ++ .../SalaryAcctResultTemplateMapper.xml | 21 +++++ .../service/SalaryAcctExcelService.java | 2 +- .../SalaryAcctResultTemplateService.java | 2 +- .../impl/SalaryAcctExcelServiceImpl.java | 83 ++++++++++++------- .../SalaryAcctResultTemplateServiceImpl.java | 4 +- .../salary/web/SalaryAcctController.java | 10 +-- 7 files changed, 92 insertions(+), 37 deletions(-) diff --git a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java index a8d493a01..d5c4343f9 100644 --- a/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java +++ b/src/com/engine/salary/entity/salaryacct/po/SalaryAcctResultTemplatePO.java @@ -18,6 +18,7 @@ import java.util.Date; @NoArgsConstructor @Builder @Data +//hrsa_acct_result_template public class SalaryAcctResultTemplatePO { /** * 主键id @@ -29,6 +30,11 @@ public class SalaryAcctResultTemplatePO { */ private String templateName; + /** + * 模板类型, 0:导出模板 1:公共导出模板 2:导入模板 + */ + private Integer type; + /** * 薪资账套id */ @@ -51,4 +57,5 @@ public class SalaryAcctResultTemplatePO { //主键id集合 private Collection ids; + private Collection types; } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml index 55c41dc1c..bd1ba58d5 100644 --- a/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml +++ b/src/com/engine/salary/mapper/salaryacct/SalaryAcctResultTemplateMapper.xml @@ -11,6 +11,7 @@ + @@ -24,6 +25,7 @@ , t.template_name , t.tenant_key , t.update_time + , t.type @@ -75,12 +77,21 @@ AND update_time = #{updateTime} + + AND type = #{type} + AND id IN #{id} + + AND type IN + + #{type} + + ORDER BY id DESC @@ -117,6 +128,9 @@ update_time, + + type, + @@ -146,6 +160,9 @@ #{updateTime}, + + #{type}, + @@ -161,6 +178,7 @@ template_name=#{templateName}, tenant_key=#{tenantKey}, update_time=#{updateTime}, + type=#{type}, WHERE id = #{id} AND delete_type = 0 @@ -194,6 +212,9 @@ update_time=#{updateTime}, + + type=#{type}, + WHERE id = #{id} AND delete_type = 0 diff --git a/src/com/engine/salary/service/SalaryAcctExcelService.java b/src/com/engine/salary/service/SalaryAcctExcelService.java index 44aed9df9..e23815ba3 100644 --- a/src/com/engine/salary/service/SalaryAcctExcelService.java +++ b/src/com/engine/salary/service/SalaryAcctExcelService.java @@ -117,7 +117,7 @@ public interface SalaryAcctExcelService { ExcelPreviewDTO previewImportSalaryAcctResult(SalaryAcctImportParam param); - void cacheImportField(List salaryItems); + void cacheImportField(SalaryAcctResultTemplateSaveParam param); void cacheExportField(List salaryItems); diff --git a/src/com/engine/salary/service/SalaryAcctResultTemplateService.java b/src/com/engine/salary/service/SalaryAcctResultTemplateService.java index 7696cb4bf..a2b4c9c4a 100644 --- a/src/com/engine/salary/service/SalaryAcctResultTemplateService.java +++ b/src/com/engine/salary/service/SalaryAcctResultTemplateService.java @@ -75,5 +75,5 @@ public interface SalaryAcctResultTemplateService { * @param salarySobId * @return */ - List listBySalarySobId(Long salarySobId); + List listBySalarySobId(Long salarySobId,List types); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 01aee1e36..aef1bb7c3 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -591,11 +591,12 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // .build()) // .collect(Collectors.toList()); // 缓存勾选 - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); - List checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class); - // 转换成dto -// return SalaryAcctImportFieldDTO.builder().formulaItems(formulaItems).sqlItems(sqlItems).inputItems(inputItems).checkItems(checkItems).build(); + List checkItems = new ArrayList<>(); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); + checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + } return SalaryAcctImportFieldDTO.builder().itemsByGroup(itemsByGroup).checkItems(checkItems).build(); } @@ -667,18 +668,22 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc @Override public XSSFWorkbook exportImportTemplate(SalaryAcctImportTemplateParam param) { -// ValidUtil.doValidator(param); - // 从缓存中获取所选的薪资项目 - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - String cacheValue = (String) Util_DataCache.getObjVal(cacheKey); - List checkItems = JsonUtil.parseList(cacheValue, Long.class) == null ? new ArrayList<>() : JsonUtil.parseList(cacheValue, Long.class); + + // 查询薪资核算记录 + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); + if (Objects.isNull(salaryAcctRecordPO)) { + throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); + } + + List checkItems = new ArrayList<>(); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); + checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + } + // 必须选择导入模板所需的薪资项目 if (CollectionUtils.isEmpty(checkItems)) { - // 获取所有可以选择的薪资项目 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); - } // 查询薪资核算记录所用的薪资账套的薪资项目副本 List salarySobItems = getSalarySobItemService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); List salaryItemIds = SalaryEntityUtil.properties(salarySobItems, SalarySobItemPO::getSalaryItemId, Collectors.toList()); @@ -688,11 +693,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc checkItems = salaryItemIds; } param.setSalaryItemIds(checkItems); - // 查询薪资核算记录 - SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(param.getSalaryAcctRecordId()); - if (Objects.isNull(salaryAcctRecordPO)) { - throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98747, "薪资核算记录不存在或已被删除")); - } + // // 模板表头(默认必带"个税扣缴义务人"、"姓名") // List headerList = Lists.newArrayList(SalaryI18nUtil.getI18nLabel(85429, "姓名"), // "部门", @@ -976,9 +977,32 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } @Override - public void cacheImportField(List salaryItems) { - String cacheKey = user.getUID() + SalaryItemConstant.RESULT_IMPORT_FIELD_SIGN; - Util_DataCache.setObjVal(cacheKey, JsonUtil.toJsonString(salaryItems)); + public void cacheImportField(SalaryAcctResultTemplateSaveParam saveParam) { + Long salaryAcctRecordId = saveParam.getSalaryAcctRecordId(); + SalaryAcctRecordPO salaryAcctRecordPO = getSalaryAcctRecordService(user).getById(salaryAcctRecordId); + if (salaryAcctRecordPO == null) { + throw new SalaryRunTimeException("薪资核算记录不存在"); + } + + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Collections.singletonList(2)); + if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { + salaryAcctResultTemplatePOS.forEach(templatePO -> getSalaryAcctResultTemplateService(user).deleteById(templatePO.getId())); + } + + Date now = new Date(); + SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder() + .id(IdGenerator.generate()) + .type(2) + .salarySobId(salaryAcctRecordPO.getSalarySobId()) + .salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")) + .templateName("") + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .build(); + getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO); + } @Override @@ -1467,7 +1491,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc throw new SalaryRunTimeException("薪资核算记录不存在"); } saveParam.setSalarySobId(salaryAcctRecordPO.getSalarySobId()); - List templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId()); + List templateBySobId = getSalaryAcctResultTemplateService(user).listBySalarySobId(saveParam.getSalarySobId(), Arrays.asList(0, 1)); if (saveParam.getId() != null) { Optional saveNameOptional = templateBySobId.stream().filter(po -> po.getTemplateName().equals(saveParam.getTemplateName()) && !po.getId().equals(saveParam.getId())).findFirst(); if (saveNameOptional.isPresent()) { @@ -1480,6 +1504,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } salaryAcctResultTemplatePO.setSalaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")); salaryAcctResultTemplatePO.setTemplateName(saveParam.getTemplateName()); + salaryAcctResultTemplatePO.setType(0); salaryAcctResultTemplatePO.setUpdateTime(new Date()); getSalaryAcctResultTemplateService(user).update(salaryAcctResultTemplatePO); } else { @@ -1489,16 +1514,18 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc } // 新建 Date now = new Date(); - getSalaryAcctResultTemplateService(user).insertIgnoreNull(SalaryAcctResultTemplatePO.builder() + SalaryAcctResultTemplatePO templatePO = SalaryAcctResultTemplatePO.builder() .id(IdGenerator.generate()) + .type(0) .salarySobId(saveParam.getSalarySobId()) .salaryItemIds(StringUtils.join(saveParam.getSalaryItemIds(), ",")) .templateName(saveParam.getTemplateName()) - .creator(Long.valueOf(user.getUID())) + .creator((long) user.getUID()) .createTime(now) .updateTime(now) .deleteType(0) - .build()); + .build(); + getSalaryAcctResultTemplateService(user).insertIgnoreNull(templatePO); } } @@ -1525,7 +1552,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc if (salaryAcctRecordPO == null) { throw new SalaryRunTimeException("薪资核算记录为空"); } - List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId()); + List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(0, 1)); if (StringUtils.isNotBlank(param.getTemplateName())) { salaryAcctResultTemplatePOS = salaryAcctResultTemplatePOS.stream().filter(po -> po.getTemplateName().contains(param.getTemplateName())).collect(Collectors.toList()); } diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java index c79f314f8..219d971f6 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultTemplateServiceImpl.java @@ -63,10 +63,10 @@ public class SalaryAcctResultTemplateServiceImpl extends Service implements Sala } @Override - public List listBySalarySobId(Long salarySobId) { + public List listBySalarySobId(Long salarySobId,List types) { if (salarySobId == null) { return Collections.emptyList(); } - return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).build()); + return getSalaryAcctResultTemplateMapper().listSome(SalaryAcctResultTemplatePO.builder().salarySobId(salarySobId).types(types).build()); } } diff --git a/src/com/engine/salary/web/SalaryAcctController.java b/src/com/engine/salary/web/SalaryAcctController.java index 49fba1129..c8739df1d 100644 --- a/src/com/engine/salary/web/SalaryAcctController.java +++ b/src/com/engine/salary/web/SalaryAcctController.java @@ -167,7 +167,7 @@ public class SalaryAcctController { @GET @Path("/compareSobConfig") @Produces(MediaType.APPLICATION_JSON) - public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) { + public String compareSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::compareSobConfig, id); } @@ -181,7 +181,7 @@ public class SalaryAcctController { @GET @Path("/updateSobConfig") @Produces(MediaType.APPLICATION_JSON) - public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response,@QueryParam(value = "id") Long id) { + public String updateSobConfig(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "id") Long id) { User user = HrmUserVarify.getUser(request, response); return new ResponseResult(user).run(getSalaryAcctRecordWrapper(user)::updateSobConfig, id); } @@ -583,9 +583,9 @@ public class SalaryAcctController { @POST @Path("/acctresult/cacheImportField") @Produces(MediaType.APPLICATION_JSON) - public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctImportParam param) { + public String cacheImportField(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult, String>(user).run(getSalaryAcctExcelService(user)::cacheImportField, param.getSalaryItems()); + return new ResponseResult(user).run(getSalaryAcctExcelService(user)::cacheImportField, param); } // 薪资核算导出字段缓存 @@ -630,7 +630,7 @@ public class SalaryAcctController { @Produces(MediaType.APPLICATION_JSON) public String exportTemplateList(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryAcctResultTemplateSaveParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param); + return new ResponseResult>(user).run(getSalaryAcctExcelService(user)::exportTemplateList, param); } From da4e908a7de8be3f65e98b5fd7fcc1197b0d8275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Thu, 10 Oct 2024 14:16:57 +0800 Subject: [PATCH 11/18] =?UTF-8?q?=E6=A8=A1=E6=9D=BFsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202410100103.sql | 8 ++++++++ resource/sqlupgrade/GS/sql202410100103.sql | 8 ++++++++ resource/sqlupgrade/JC/sql202410100103.sql | 8 ++++++++ resource/sqlupgrade/Mysql/sql202410100103.sql | 3 +++ resource/sqlupgrade/Oracle/sql202410100103.sql | 7 +++++++ resource/sqlupgrade/PG/sql202410100103.sql | 3 +++ resource/sqlupgrade/SQLServer/sql202410100103.sql | 5 +++++ resource/sqlupgrade/ST/sql202410100103.sql | 8 ++++++++ 8 files changed, 50 insertions(+) create mode 100644 resource/sqlupgrade/DM/sql202410100103.sql create mode 100644 resource/sqlupgrade/GS/sql202410100103.sql create mode 100644 resource/sqlupgrade/JC/sql202410100103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202410100103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202410100103.sql create mode 100644 resource/sqlupgrade/PG/sql202410100103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202410100103.sql create mode 100644 resource/sqlupgrade/ST/sql202410100103.sql diff --git a/resource/sqlupgrade/DM/sql202410100103.sql b/resource/sqlupgrade/DM/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/GS/sql202410100103.sql b/resource/sqlupgrade/GS/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/JC/sql202410100103.sql b/resource/sqlupgrade/JC/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + diff --git a/resource/sqlupgrade/Mysql/sql202410100103.sql b/resource/sqlupgrade/Mysql/sql202410100103.sql new file mode 100644 index 000000000..5b645e3f6 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410100103.sql @@ -0,0 +1,3 @@ +ALTER TABLE hrsa_acct_result_template ADD COLUMN type int(0) NULL ; + +update hrsa_acct_result_template set type = 0; diff --git a/resource/sqlupgrade/Oracle/sql202410100103.sql b/resource/sqlupgrade/Oracle/sql202410100103.sql new file mode 100644 index 000000000..90d5981fd --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410100103.sql @@ -0,0 +1,7 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +) +/ + +update hrsa_acct_result_template set type = 0 +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410100103.sql b/resource/sqlupgrade/PG/sql202410100103.sql new file mode 100644 index 000000000..2deb5e3a5 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410100103.sql @@ -0,0 +1,3 @@ +alter table hrsa_acct_result_template add type int null ; + +update hrsa_acct_result_template set type = 0; \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410100103.sql b/resource/sqlupgrade/SQLServer/sql202410100103.sql new file mode 100644 index 000000000..f2820af3a --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410100103.sql @@ -0,0 +1,5 @@ +ALTER TABLE hrsa_acct_result_template ADD type int NULL +GO + +update hrsa_acct_result_template set type = 0 +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202410100103.sql b/resource/sqlupgrade/ST/sql202410100103.sql new file mode 100644 index 000000000..4d36ef44a --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410100103.sql @@ -0,0 +1,8 @@ +ALTER TABLE hrsa_acct_result_template ADD ( + type number NULL +); +/ + +update hrsa_acct_result_template set type = 0; +/ + From 310c77a2705b1d27bef549da510a18e319b13483 Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Fri, 11 Oct 2024 15:14:21 +0800 Subject: [PATCH 12/18] =?UTF-8?q?excel=E8=AE=BE=E7=BD=AE=E5=88=97=E5=AE=BD?= =?UTF-8?q?=20=E8=B6=85=E8=BF=87255=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/util/excel/ExcelUtilPlus.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/com/engine/salary/util/excel/ExcelUtilPlus.java b/src/com/engine/salary/util/excel/ExcelUtilPlus.java index f301e8c23..9da402ce7 100644 --- a/src/com/engine/salary/util/excel/ExcelUtilPlus.java +++ b/src/com/engine/salary/util/excel/ExcelUtilPlus.java @@ -134,7 +134,7 @@ public class ExcelUtilPlus { rowZeroCell.setCellValue(columnGroupItem.getText().toString()); rowZeroCell.setCellStyle(titleCellStyle); //设置列宽 - sheet.setColumnWidth(i, Math.max(12, columnGroupItem.getText().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256); patternList.add(columnGroupItem.getPattern()); } @@ -262,7 +262,7 @@ public class ExcelUtilPlus { //遍历设置列宽 List header = rowList.get(0); for (int i = 0; i < header.size(); i++) { - sheet.setColumnWidth(i, Math.max(12, header.get(i).toString().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, header.get(i).toString().length() * 4)) * 256); } for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { @@ -349,7 +349,7 @@ public class ExcelUtilPlus { //遍历设置列宽 List header = rowList.get(0); for (int i = 0; i < header.size(); i++) { - sheet.setColumnWidth(i, Math.max(12, header.get(i).toString().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, header.get(i).toString().length() * 4)) * 256); } for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { @@ -454,7 +454,7 @@ public class ExcelUtilPlus { //遍历设置列宽 List header = rowList.get(0); for (int i = 0; i < header.size(); i++) { - sheet.setColumnWidth(i, Math.max(12, header.get(i).toString().length() * 4) * 256); + sheet.setColumnWidth(i, Math.min(255, Math.max(12, header.get(i).toString().length() * 4)) * 256); } for (int rowIndex = 0; rowIndex < rowList.size(); rowIndex++) { @@ -588,7 +588,7 @@ public class ExcelUtilPlus { rowOneCell.setCellValue(columnGroupItem.getText().toString()); rowOneCell.setCellStyle(titleCellStyle); //设置列宽 - sheet.setColumnWidth(startIndex, Math.max(12, columnGroupItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256); startIndex++; patternList.add(columnGroupItem.getPattern()); } else { @@ -610,7 +610,7 @@ public class ExcelUtilPlus { subHeader.setCellValue(childrenItem.getText().toString()); subHeader.setCellStyle(titleCellStyle); //设置列宽 - sheet.setColumnWidth(startIndex + j, Math.max(12, childrenItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex + j, Math.min(255, Math.max(12, childrenItem.getText().length() * 4)) * 256); patternList.add(childrenItem.getPattern()); } @@ -789,7 +789,7 @@ public class ExcelUtilPlus { rowOneCell.setCellValue(columnGroupItem.getText().toString()); rowOneCell.setCellStyle(titleCellStyle); //设置列宽 - sheet.setColumnWidth(startIndex, Math.max(12, columnGroupItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex, Math.min(255, Math.max(12, columnGroupItem.getText().length() * 4)) * 256); startIndex++; } else { List childrenList = columnGroupItem.getChildren(); @@ -810,7 +810,7 @@ public class ExcelUtilPlus { subHeader.setCellValue(childrenItem.getText().toString()); subHeader.setCellStyle(titleCellStyle); //设置列宽 - sheet.setColumnWidth(startIndex + j, Math.max(12, childrenItem.getText().length() * 4) * 256); + sheet.setColumnWidth(startIndex + j, Math.min(255, Math.max(12, childrenItem.getText().length() * 4)) * 256); } startIndex += childrenList.size(); From 64ac30c05f683cfdee92e36c71d907b3d0c4de64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 15:34:17 +0800 Subject: [PATCH 13/18] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=88=97?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/sqlupgrade/DM/sql202410110103.sql | 13 ++ resource/sqlupgrade/GS/sql202410110103.sql | 13 ++ resource/sqlupgrade/JC/sql202410110103.sql | 13 ++ resource/sqlupgrade/Mysql/sql202410110103.sql | 12 + .../sqlupgrade/Oracle/sql202410110103.sql | 12 + resource/sqlupgrade/PG/sql202410110103.sql | 11 + .../sqlupgrade/SQLServer/sql202410110103.sql | 12 + resource/sqlupgrade/ST/sql202410110103.sql | 13 ++ .../constant/SalaryDefaultTenantConstant.java | 13 +- .../setting/dto/PageListSettingDTO.java | 20 ++ .../param/PageListSettingSaveParam.java | 31 +++ .../entity/setting/po/PageListSettingPO.java | 72 ++++++ .../mapper/setting/PageListSettingMapper.java | 73 ++++++ .../mapper/setting/PageListSettingMapper.xml | 209 ++++++++++++++++++ .../SalaryStatisticsEmployeeServiceImpl.java | 55 ++--- .../SalaryStatisticsEmployeeController.java | 2 +- .../SalaryStatisticsEmployeeWrapper.java | 3 + .../engine/salary/service/SettingService.java | 11 + .../service/impl/SettingServiceImpl.java | 102 +++++++++ .../salary/web/SalaryCommonController.java | 28 ++- .../salary/wrapper/SalaryCommonWrapper.java | 18 ++ 21 files changed, 699 insertions(+), 37 deletions(-) create mode 100644 resource/sqlupgrade/DM/sql202410110103.sql create mode 100644 resource/sqlupgrade/GS/sql202410110103.sql create mode 100644 resource/sqlupgrade/JC/sql202410110103.sql create mode 100644 resource/sqlupgrade/Mysql/sql202410110103.sql create mode 100644 resource/sqlupgrade/Oracle/sql202410110103.sql create mode 100644 resource/sqlupgrade/PG/sql202410110103.sql create mode 100644 resource/sqlupgrade/SQLServer/sql202410110103.sql create mode 100644 resource/sqlupgrade/ST/sql202410110103.sql create mode 100644 src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java create mode 100644 src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java create mode 100644 src/com/engine/salary/entity/setting/po/PageListSettingPO.java create mode 100644 src/com/engine/salary/mapper/setting/PageListSettingMapper.java create mode 100644 src/com/engine/salary/mapper/setting/PageListSettingMapper.xml create mode 100644 src/com/engine/salary/service/SettingService.java create mode 100644 src/com/engine/salary/service/impl/SettingServiceImpl.java diff --git a/resource/sqlupgrade/DM/sql202410110103.sql b/resource/sqlupgrade/DM/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/DM/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/GS/sql202410110103.sql b/resource/sqlupgrade/GS/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/GS/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/JC/sql202410110103.sql b/resource/sqlupgrade/JC/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/JC/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/resource/sqlupgrade/Mysql/sql202410110103.sql b/resource/sqlupgrade/Mysql/sql202410110103.sql new file mode 100644 index 000000000..04ed725c6 --- /dev/null +++ b/resource/sqlupgrade/Mysql/sql202410110103.sql @@ -0,0 +1,12 @@ +CREATE TABLE hrsa_page_list_setting +( + id bigint(0) NOT NULL , + setting text , + page varchar(200), + creator bigint(0), + create_time datetime(0) , + update_time datetime(0), + delete_type int(0) , + tenant_key varchar(10) , + PRIMARY KEY (id) +); \ No newline at end of file diff --git a/resource/sqlupgrade/Oracle/sql202410110103.sql b/resource/sqlupgrade/Oracle/sql202410110103.sql new file mode 100644 index 000000000..554fd4221 --- /dev/null +++ b/resource/sqlupgrade/Oracle/sql202410110103.sql @@ -0,0 +1,12 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +) +/ \ No newline at end of file diff --git a/resource/sqlupgrade/PG/sql202410110103.sql b/resource/sqlupgrade/PG/sql202410110103.sql new file mode 100644 index 000000000..813426c47 --- /dev/null +++ b/resource/sqlupgrade/PG/sql202410110103.sql @@ -0,0 +1,11 @@ +create table hrsa_page_list_setting +( + id bigint primary key , + setting text , + page varchar(200), + creator bigint, + create_time timestamp , + update_time timestamp, + delete_type int , + tenant_key varchar(10) +); \ No newline at end of file diff --git a/resource/sqlupgrade/SQLServer/sql202410110103.sql b/resource/sqlupgrade/SQLServer/sql202410110103.sql new file mode 100644 index 000000000..8a2dae190 --- /dev/null +++ b/resource/sqlupgrade/SQLServer/sql202410110103.sql @@ -0,0 +1,12 @@ +create table hrsa_page_list_setting +( + id bigint primary key , + setting ntext , + page varchar(200), + creator bigint, + create_time datetime , + update_time datetime, + delete_type int , + tenant_key varchar(10) +) +GO \ No newline at end of file diff --git a/resource/sqlupgrade/ST/sql202410110103.sql b/resource/sqlupgrade/ST/sql202410110103.sql new file mode 100644 index 000000000..80fd04daf --- /dev/null +++ b/resource/sqlupgrade/ST/sql202410110103.sql @@ -0,0 +1,13 @@ +create table hrsa_page_list_setting +( + id number primary key , + setting clob , + page varchar2(200), + creator number, + create_time date , + update_time date, + delete_type int , + tenant_key varchar2(10) +); +/ + diff --git a/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java b/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java index 184ccee40..4e60d65e0 100644 --- a/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java +++ b/src/com/engine/salary/constant/SalaryDefaultTenantConstant.java @@ -1,12 +1,13 @@ package com.engine.salary.constant; /** - * @description: 默认的租户key - * @author: xiajun - * @modified By: xiajun - * @date: Created in 2/8/22 11:25 AM - * @version:v1.0 - */ + * 默认租户 + *

Copyright: Copyright (c) 2024

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ public class SalaryDefaultTenantConstant { public static final String DEFAULT_TENANT_KEY = "all_teams"; diff --git a/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java new file mode 100644 index 000000000..afe2de81c --- /dev/null +++ b/src/com/engine/salary/entity/setting/dto/PageListSettingDTO.java @@ -0,0 +1,20 @@ +package com.engine.salary.entity.setting.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListSettingDTO { + + private String name; + + private String value; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java new file mode 100644 index 000000000..bd97950e7 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListSettingSaveParam.java @@ -0,0 +1,31 @@ +package com.engine.salary.entity.setting.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListSettingSaveParam { + + /** + * 页面,0:薪资明细 + */ + @DataCheck(require = true,message = "请选择页面") + private String page; + + /** + * 设置 + */ + @DataCheck(require = true,message = "请选择设置") + private List setting; +} \ No newline at end of file diff --git a/src/com/engine/salary/entity/setting/po/PageListSettingPO.java b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java new file mode 100644 index 000000000..59b7f2ea1 --- /dev/null +++ b/src/com/engine/salary/entity/setting/po/PageListSettingPO.java @@ -0,0 +1,72 @@ +package com.engine.salary.entity.setting.po; + +import com.engine.hrmelog.annotation.ElogTransform; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Collection; +import java.util.Date; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListSettingPO { + + + @ElogTransform(name = "") + private Long id; + + /** + * 页面,0:薪资明细 + */ + @ElogTransform(name = "页面,0:薪资明细") + private String page; + + /** + * 设置 + */ + @ElogTransform(name = "设置") + private String setting; + + + /** + * 更新时间 + */ + @ElogTransform(name = "更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ElogTransform(name = "创建时间") + private Date createTime; + + /** + * 创建人 + */ + @ElogTransform(name = "创建人") + private Long creator; + + /** + * 是否已删除。0:未删除、1:已删除 + */ + @ElogTransform(name = "是否已删除。0:未删除、1:已删除") + private Integer deleteType; + + /** + * 租户ID + */ + @ElogTransform(name = "租户ID") + private String tenantKey; + + + //主键id集合 + private Collection ids; + +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.java b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java new file mode 100644 index 000000000..9c2ce51f8 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.java @@ -0,0 +1,73 @@ +package com.engine.salary.mapper.setting; + +import com.engine.salary.entity.setting.po.PageListSettingPO; +import org.apache.ibatis.annotations.Param; + +import java.util.Collection; +import java.util.List; + +public interface PageListSettingMapper { + + /** + * 查询所有记录 + * + * @return 返回集合,没有返回空List + */ + List listAll(); + + /** + * 条件查询 + * + * @return 返回集合,没有返回空List + */ + List listSome(PageListSettingPO pageListSetting); + + + /** + * 根据主键查询 + * + * @param id 主键 + * @return 返回记录,没有返回null + */ + PageListSettingPO getById(Long id); + + /** + * 新增,忽略null字段 + * + * @param pageListSetting 新增的记录 + * @return 返回影响行数 + */ + int insertIgnoreNull(PageListSettingPO pageListSetting); + + /** + * 修改,修改所有字段 + * + * @param pageListSetting 修改的记录 + * @return 返回影响行数 + */ + int update(PageListSettingPO pageListSetting); + + /** + * 修改,忽略null字段 + * + * @param pageListSetting 修改的记录 + * @return 返回影响行数 + */ + int updateIgnoreNull(PageListSettingPO pageListSetting); + + /** + * 删除记录 + * + * @param pageListSetting 待删除的记录 + * @return 返回影响行数 + */ + int delete(PageListSettingPO pageListSetting); + + /** + * 批量删除记录 + * @param ids 主键id集合 + */ + void deleteByIds(@Param("ids") Collection ids); + + PageListSettingPO getByPage(String page); +} \ No newline at end of file diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml new file mode 100644 index 000000000..df06cf162 --- /dev/null +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + t + . + create_time + , t.creator + , t.delete_type + , t.id + , t.page + , t.setting + , t.tenant_key + , t.update_time + + + + + + + + + + + + + + + INSERT INTO hrsa_page_list_setting + + + + create_time, + + + creator, + + + delete_type, + + + page, + + + setting, + + + tenant_key, + + + update_time, + + + + + #{createTime}, + + + #{creator}, + + + #{deleteType}, + + + #{page}, + + + #{setting}, + + + #{tenantKey}, + + + #{updateTime}, + + + + + + + + UPDATE hrsa_page_list_setting + + create_time=#{createTime}, + creator=#{creator}, + delete_type=#{deleteType}, + page=#{page}, + setting=#{setting}, + tenant_key=#{tenantKey}, + update_time=#{updateTime}, + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_setting + + + create_time=#{createTime}, + + + creator=#{creator}, + + + delete_type=#{deleteType}, + + + page=#{page}, + + + setting=#{setting}, + + + tenant_key=#{tenantKey}, + + + update_time=#{updateTime}, + + + WHERE id = #{id} AND delete_type = 0 + + + + + + UPDATE hrsa_page_list_setting + SET delete_type=1 + WHERE id = #{id} + AND delete_type = 0 + + + + UPDATE hrsa_page_list_setting + SET delete_type = 1 + WHERE delete_type = 0 + AND id IN + + #{id} + + + + + + + \ No newline at end of file diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 5728f0886..635134b5f 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -25,10 +25,7 @@ import com.engine.salary.report.entity.param.SalaryStatisticsEmployeeSalaryQuery import com.engine.salary.report.service.SalaryStatisticsEmployeeService; import com.engine.salary.service.*; import com.engine.salary.service.impl.*; -import com.engine.salary.util.SalaryAssert; -import com.engine.salary.util.SalaryDateUtil; -import com.engine.salary.util.SalaryEntityUtil; -import com.engine.salary.util.SalaryI18nUtil; +import com.engine.salary.util.*; import com.engine.salary.util.db.MapperProxyFactory; import com.engine.salary.util.page.PageInfo; import com.engine.salary.util.page.SalaryPageUtil; @@ -89,6 +86,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala return ServiceUtil.getService(SalaryEmployeeServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + @Override public PageInfo listPage(SalaryStatisticsEmployeeQueryParam queryParam) { List list = Collections.emptyList(); @@ -270,7 +271,7 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala map.put("id", se.getId().toString()); map.put("salaryMonth", SalaryDateUtil.getFormatYearMonth(se.getSalaryMonth())); map.put("taxAgent", taxAgentMap.get(se.getTaxAgentId())); - map.put("salarySob",SalarySobMap.get(se.getSalarySobId())); + map.put("salarySob", SalarySobMap.get(se.getSalarySobId())); map.put("acctTimes", salaryAcctRecordMap.get(se.getSalaryAcctRecordId())); map.put("userName", Util.null2String(emp.getUsername())); map.put("subCompany", Util.null2String(emp.getSubcompanyName())); @@ -302,10 +303,10 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 2.年月参数处理,注意:薪资所属月居然是用字符串存储的,无法通过sql between处理 List dataParam = new ArrayList<>(); if (StringUtils.isNotBlank(queryParam.getStartDateStr())) { - dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr()+ "-01 00:00:00")); + dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getStartDateStr() + "-01 00:00:00")); } if (StringUtils.isNotBlank(queryParam.getEndDateStr())) { - dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr()+ "-01 00:00:00")); + dataParam.add(SalaryDateUtil.dateStrToLocalTime(queryParam.getEndDateStr() + "-01 00:00:00")); } Set salaryMonths = SalaryStatisticsEmployeeBO.getSalaryMonths(null, dataParam) .stream() @@ -319,13 +320,13 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala // 根据分部、部门筛选 List employeeList = getSalaryEmployeeService(user).listBySubCompanyOrDepartment(queryParam.getSubCompanyIds(), queryParam.getDepartmentIds()); // 根据关键词过滤 - if(StringUtils.isNotBlank(queryParam.getKeyword())) { + if (StringUtils.isNotBlank(queryParam.getKeyword())) { employeeList = employeeList.stream() .filter(e -> (e.getUsername().contains(queryParam.getKeyword()) || (StringUtils.isNotEmpty(e.getWorkcode()) && e.getWorkcode().contains(queryParam.getKeyword())))) .collect(Collectors.toList()); } List employeeIds = employeeList.stream().map(DataCollectionEmployee::getEmployeeId).collect(Collectors.toList()); - salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter( acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); + salaryAcctEmployeeList = salaryAcctEmployeeList.stream().filter(acctEmp -> employeeIds.contains(acctEmp.getEmployeeId())).collect(Collectors.toList()); } if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { return new PageInfo<>(); @@ -358,23 +359,25 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); // 3.获取薪资项目 - List salaryItemList = getSalaryItemService(user).listAll(); - salaryItemList = salaryItemList.stream() - .sorted(new Comparator() { - @Override - public int compare(SalaryItemPO o1, SalaryItemPO o2) { - if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { - Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); - Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); - return systemType1.compareTo(systemType2); - } else { - Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); - Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); - return sortedIndex2.compareTo(sortedIndex1); - } - } - }) - .collect(Collectors.toList()); + Map setting = getSettingService(user).getPageListSetting("salary_details_report"); + List checked = setting.get("checked") != null ? JsonUtil.parseList(setting.get("checked"), Long.class) : new ArrayList<>(); + List salaryItemList = getSalaryItemService(user).listByIds(checked); +// salaryItemList = salaryItemList.stream() +// .sorted(new Comparator() { +// @Override +// public int compare(SalaryItemPO o1, SalaryItemPO o2) { +// if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { +// Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); +// Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); +// return systemType1.compareTo(systemType2); +// } else { +// Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); +// Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); +// return sortedIndex2.compareTo(sortedIndex1); +// } +// } +// }) +// .collect(Collectors.toList()); return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(salaryAcctEmployeeList) diff --git a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java index b4e668513..4fa4ae64a 100644 --- a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java +++ b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java @@ -73,7 +73,7 @@ public class SalaryStatisticsEmployeeController { } /** - * 员工薪资列表 + * 薪资明细 * * @param queryParam * @return diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 646600f08..63e0863cf 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -229,6 +229,9 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // 获取发薪人员 PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); List employeePOS = salaryAcctEmployeePageInfo.getList(); + if (CollectionUtils.isEmpty(employeePOS)){ + return resultMap; + } Map sumResultMap = Maps.newHashMap(); diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java new file mode 100644 index 000000000..7b4f1d9bc --- /dev/null +++ b/src/com/engine/salary/service/SettingService.java @@ -0,0 +1,11 @@ +package com.engine.salary.service; + +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; + +import java.util.Map; + +public interface SettingService { + void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); + + Map getPageListSetting(String page); +} diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java new file mode 100644 index 000000000..66b13c126 --- /dev/null +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -0,0 +1,102 @@ +package com.engine.salary.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.core.impl.Service; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; +import com.engine.salary.entity.setting.po.PageListSettingPO; +import com.engine.salary.mapper.setting.PageListSettingMapper; +import com.engine.salary.service.SalaryItemService; +import com.engine.salary.service.SalarySobService; +import com.engine.salary.service.SettingService; +import com.engine.salary.util.JsonUtil; +import com.engine.salary.util.db.IdGenerator; +import com.engine.salary.util.db.MapperProxyFactory; +import weaver.hrm.User; + +import java.util.*; +import java.util.stream.Collectors; + +import static com.engine.salary.constant.SalaryDefaultTenantConstant.DEFAULT_TENANT_KEY; + +/** + * 薪资核算 + *

Copyright: Copyright (c) 2022

+ *

Company: 泛微软件

+ * + * @author qiantao + * @version 1.0 + **/ +public class SettingServiceImpl extends Service implements SettingService { + + private PageListSettingMapper getPageListSettingMapper() { + return MapperProxyFactory.getProxy(PageListSettingMapper.class); + } + + private SalarySobService getSalarySobService(User user) { + return ServiceUtil.getService(SalarySobServiceImpl.class, user); + } + + private SalaryItemService getSalaryItemService(User user) { + return ServiceUtil.getService(SalaryItemServiceImpl.class, user); + } + + @Override + public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) { + Date now = new Date(); + + PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(pageListSettingSaveParam.getPage()); + if (pageListSettingPO != null) { + pageListSettingPO.setSetting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting())); + pageListSettingPO.setUpdateTime(now); + getPageListSettingMapper().updateIgnoreNull(pageListSettingPO); + } else { + pageListSettingPO = PageListSettingPO.builder() + .id(IdGenerator.generate()) + .page(pageListSettingSaveParam.getPage()) + .setting(JsonUtil.toJsonString(pageListSettingSaveParam.getSetting())) + .creator((long) user.getUID()) + .createTime(now) + .updateTime(now) + .deleteType(0) + .tenantKey(DEFAULT_TENANT_KEY) + .build(); + getPageListSettingMapper().insertIgnoreNull(pageListSettingPO); + } + } + + @Override + public Map getPageListSetting(String page) { + + Map result = new HashMap(); + PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page); + if ("salary_details_report".equals(page)) { + List salaryItemList = getSalaryItemService(user).listAll(); + salaryItemList = salaryItemList.stream() + .sorted(new Comparator() { + @Override + public int compare(SalaryItemPO o1, SalaryItemPO o2) { + if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { + Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); + Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); + return systemType1.compareTo(systemType2); + } else { + Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); + Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); + return sortedIndex2.compareTo(sortedIndex1); + } + } + }) + .collect(Collectors.toList()); + result.put("setting", salaryItemList); + if (pageListSettingPO != null && StrUtil.isNotEmpty(pageListSettingPO.getSetting())) { + result.put("checked", JsonUtil.parseList(pageListSettingPO.getSetting(), Long.class)); + } else { + List collect = salaryItemList.stream().map(SalaryItemPO::getId).collect(Collectors.toList()); + result.put("checked", collect); + } + } + return result; + } +} diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 7f1637a5c..2f7e87d6e 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,19 +1,18 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; import com.engine.salary.wrapper.SalaryCommonWrapper; +import io.swagger.v3.oas.annotations.parameters.RequestBody; import lombok.extern.slf4j.Slf4j; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; +import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.util.List; @@ -52,4 +51,25 @@ public class SalaryCommonController { } + /** + * 页面模板设置 + * + * @param param + * @return + */ + @POST + @Path("/pageList/save/setting") + @Produces(MediaType.APPLICATION_JSON) + public String savePageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody PageListSettingSaveParam param) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param); + } + + @GET + @Path("/pageList/get/setting") + @Produces(MediaType.APPLICATION_JSON) + public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, page); + } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index 982c1e5e9..cbeefbb42 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -2,10 +2,15 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import com.engine.salary.service.SalaryCacheService; +import com.engine.salary.service.SettingService; import com.engine.salary.service.impl.SalaryCacheServiceImpl; +import com.engine.salary.service.impl.SettingServiceImpl; import weaver.hrm.User; +import java.util.Map; + public class SalaryCommonWrapper extends Service { @@ -13,6 +18,10 @@ public class SalaryCommonWrapper extends Service { return ServiceUtil.getService(SalaryCacheServiceImpl.class, user); } + private SettingService getSettingService(User user) { + return ServiceUtil.getService(SettingServiceImpl.class, user); + } + public Object getCacheInfo(String key) { return getSalaryCacheService(user).get(key); } @@ -20,4 +29,13 @@ public class SalaryCommonWrapper extends Service { public void removeCache(String key) { getSalaryCacheService(user).remove(key); } + + public void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam) { + getSettingService(user).savePageListSetting(pageListSettingSaveParam); + } + + + public Map getPageListSetting(String page) { + return getSettingService(user).getPageListSetting(page); + } } From b6c7a7f2bd9a856bbe2ab697680e0d9e52825796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 17:04:13 +0800 Subject: [PATCH 14/18] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=88=97?= =?UTF-8?q?=E5=85=A8=E5=B1=80=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../param/PageListSettingQueryParam.java | 22 +++++++++++++ .../SalaryStatisticsEmployeeServiceImpl.java | 4 ++- .../engine/salary/service/SettingService.java | 3 +- .../service/impl/SettingServiceImpl.java | 33 +++++++++++-------- .../salary/web/SalaryCommonController.java | 7 ++-- .../salary/wrapper/SalaryCommonWrapper.java | 5 +-- 6 files changed, 53 insertions(+), 21 deletions(-) create mode 100644 src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java diff --git a/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java new file mode 100644 index 000000000..0de49c816 --- /dev/null +++ b/src/com/engine/salary/entity/setting/param/PageListSettingQueryParam.java @@ -0,0 +1,22 @@ +package com.engine.salary.entity.setting.param; + +import com.engine.salary.util.valid.DataCheck; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 薪资帐套表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PageListSettingQueryParam { + + @DataCheck(require = true,message = "请选择页面") + private String page; + + private String name; +} \ No newline at end of file diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 635134b5f..dfab42262 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -10,6 +10,7 @@ import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; import com.engine.salary.entity.salaryacct.po.SalaryAcctResultPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.po.SalarySobPO; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.taxagent.po.TaxAgentPO; import com.engine.salary.enums.UserStatusEnum; import com.engine.salary.enums.datacollection.UseEmployeeTypeEnum; @@ -359,7 +360,8 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); // 3.获取薪资项目 - Map setting = getSettingService(user).getPageListSetting("salary_details_report"); + PageListSettingQueryParam param = PageListSettingQueryParam.builder().page("salary_details_report").build(); + Map setting = getSettingService(user).getPageListSetting(param); List checked = setting.get("checked") != null ? JsonUtil.parseList(setting.get("checked"), Long.class) : new ArrayList<>(); List salaryItemList = getSalaryItemService(user).listByIds(checked); // salaryItemList = salaryItemList.stream() diff --git a/src/com/engine/salary/service/SettingService.java b/src/com/engine/salary/service/SettingService.java index 7b4f1d9bc..27b7e679e 100644 --- a/src/com/engine/salary/service/SettingService.java +++ b/src/com/engine/salary/service/SettingService.java @@ -1,5 +1,6 @@ package com.engine.salary.service; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import java.util.Map; @@ -7,5 +8,5 @@ import java.util.Map; public interface SettingService { void savePageListSetting(PageListSettingSaveParam pageListSettingSaveParam); - Map getPageListSetting(String page); + Map getPageListSetting(PageListSettingQueryParam param); } diff --git a/src/com/engine/salary/service/impl/SettingServiceImpl.java b/src/com/engine/salary/service/impl/SettingServiceImpl.java index 66b13c126..9f52b7ea8 100644 --- a/src/com/engine/salary/service/impl/SettingServiceImpl.java +++ b/src/com/engine/salary/service/impl/SettingServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import com.engine.salary.entity.setting.po.PageListSettingPO; import com.engine.salary.mapper.setting.PageListSettingMapper; @@ -67,25 +68,29 @@ public class SettingServiceImpl extends Service implements SettingService { } @Override - public Map getPageListSetting(String page) { - + public Map getPageListSetting(PageListSettingQueryParam param) { + String page = param.getPage(); Map result = new HashMap(); PageListSettingPO pageListSettingPO = getPageListSettingMapper().getByPage(page); if ("salary_details_report".equals(page)) { List salaryItemList = getSalaryItemService(user).listAll(); salaryItemList = salaryItemList.stream() - .sorted(new Comparator() { - @Override - public int compare(SalaryItemPO o1, SalaryItemPO o2) { - if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { - Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); - Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); - return systemType1.compareTo(systemType2); - } else { - Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); - Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); - return sortedIndex2.compareTo(sortedIndex1); - } + .filter(po -> { + String name = param.getName(); + if (StrUtil.isNotEmpty(name)) { + return po.getName() != null && po.getName().contains(name); + } + return true; + }) + .sorted((o1, o2) -> { + if (o1.getSortedIndex() == null && o2.getSortedIndex() == null) { + Integer systemType1 = o1.getSystemType() == null ? 0 : o1.getSystemType(); + Integer systemType2 = o2.getSystemType() == null ? 0 : o2.getSystemType(); + return systemType1.compareTo(systemType2); + } else { + Integer sortedIndex1 = o1.getSortedIndex() == null ? 0 : o1.getSortedIndex(); + Integer sortedIndex2 = o2.getSortedIndex() == null ? 0 : o2.getSortedIndex(); + return sortedIndex2.compareTo(sortedIndex1); } }) .collect(Collectors.toList()); diff --git a/src/com/engine/salary/web/SalaryCommonController.java b/src/com/engine/salary/web/SalaryCommonController.java index 2f7e87d6e..d28dc0d86 100644 --- a/src/com/engine/salary/web/SalaryCommonController.java +++ b/src/com/engine/salary/web/SalaryCommonController.java @@ -1,6 +1,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import com.engine.salary.util.ResponseResult; import com.engine.salary.util.SalaryEnumUtil; @@ -65,11 +66,11 @@ public class SalaryCommonController { return new ResponseResult(user).run(getSalaryCommonWrapper(user)::savePageListSetting, param); } - @GET + @POST @Path("/pageList/get/setting") @Produces(MediaType.APPLICATION_JSON) - public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response, @QueryParam(value = "page") String page) { + public String getPageListSetting(@Context HttpServletRequest request, @Context HttpServletResponse response,@RequestBody PageListSettingQueryParam param) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, page); + return new ResponseResult(user).run(getSalaryCommonWrapper(user)::getPageListSetting, param); } } diff --git a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java index cbeefbb42..e66e09121 100644 --- a/src/com/engine/salary/wrapper/SalaryCommonWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryCommonWrapper.java @@ -2,6 +2,7 @@ package com.engine.salary.wrapper; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; +import com.engine.salary.entity.setting.param.PageListSettingQueryParam; import com.engine.salary.entity.setting.param.PageListSettingSaveParam; import com.engine.salary.service.SalaryCacheService; import com.engine.salary.service.SettingService; @@ -35,7 +36,7 @@ public class SalaryCommonWrapper extends Service { } - public Map getPageListSetting(String page) { - return getSettingService(user).getPageListSetting(page); + public Map getPageListSetting(PageListSettingQueryParam param) { + return getSettingService(user).getPageListSetting(param); } } From 4c4b6ab57d9ea0db10c2462b0e82cd2b5690b31f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 17:14:14 +0800 Subject: [PATCH 15/18] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/service/impl/SalaryAcctExcelServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index aef1bb7c3..138f173c9 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -1,6 +1,7 @@ package com.engine.salary.service.impl; import cn.hutool.core.util.NumberUtil; +import cn.hutool.core.util.StrUtil; import com.api.formmode.mybatis.util.SqlProxyHandle; import com.cloudstore.dev.api.util.Util_DataCache; import com.engine.common.util.ServiceUtil; @@ -459,7 +460,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc SalaryAcctRecordPO byId = getSalaryAcctRecordService(user).getById(salaryAcctRecordPO.getId()); boolean isBackCalc = Objects.equals(byId.getBackCalcStatus(), 1); // 查询薪资账套下的薪资项目+员工信息字段 - SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateWithItemHideBySalarySobId(salaryAcctRecordPO.getId(),salaryAcctRecordPO.getSalarySobId(), isBackCalc); + SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateWithItemHideBySalarySobId(salaryAcctRecordPO.getId(), salaryAcctRecordPO.getSalarySobId(), isBackCalc); // 构建薪资核算结果列表表头 List columnList = SalaryAcctResultBO.buildTableColumns(salarySobItemAggregateDTO, ListUtils.emptyIfNull(salaryAcctRecordPO.getLockSalaryItemIds())); // 获取固定列头数 @@ -595,7 +596,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); - checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + checkItems = StrUtil.isNotEmpty(items) ? Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()) : new ArrayList<>(); } return SalaryAcctImportFieldDTO.builder().itemsByGroup(itemsByGroup).checkItems(checkItems).build(); } @@ -891,7 +892,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc // headerList.add("手机号"); // headerList.add("工号"); // 查询薪资账套下的薪资项目 - SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateByRecordId(exportParam.getSalaryAcctRecordId(),true); + SalarySobItemAggregateDTO salarySobItemAggregateDTO = getSalarySobItemService(user).getAggregateByRecordId(exportParam.getSalaryAcctRecordId(), true); // // 员工信息 // for (SalarySobEmpFieldDTO item : salarySobItemAggregateDTO.getEmpFields()) { @@ -1169,7 +1170,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc //salaryBatchService.createExcelComment(excelComments, SalaryI18nUtil.getI18nLabel(102838, "姓名不能为空"), i, i, j, j); } else { //筛选导入人员信息可以在人力资源池中匹配到的人员信息 - List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, salaryEmployees, dataValue, deparmentName, mobile, workcode,idNo, null); + List employeeSameIds = getSalaryEmployeeService(user).matchImportEmployee(confValue, salaryEmployees, dataValue, deparmentName, mobile, workcode, idNo, null); if (CollectionUtils.isEmpty(employeeSameIds)) { isError = true; From 3a224170f15caeefa130bb1dc128b3662e50947c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 17:17:07 +0800 Subject: [PATCH 16/18] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/salary/service/impl/SalaryAcctExcelServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java index 138f173c9..75b63245c 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctExcelServiceImpl.java @@ -680,7 +680,7 @@ public class SalaryAcctExcelServiceImpl extends Service implements SalaryAcctExc List salaryAcctResultTemplatePOS = getSalaryAcctResultTemplateService(user).listBySalarySobId(salaryAcctRecordPO.getSalarySobId(), Arrays.asList(2)); if (CollectionUtils.isNotEmpty(salaryAcctResultTemplatePOS)) { String items = salaryAcctResultTemplatePOS.get(0).getSalaryItemIds(); - checkItems = Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()); + checkItems = StrUtil.isNotEmpty(items) ? Arrays.stream(items.split(",")).map(Long::valueOf).collect(Collectors.toList()) : new ArrayList<>(); } // 必须选择导入模板所需的薪资项目 From 265ca2a54ec063a0d8e2b383ed865522d3f455cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Fri, 11 Oct 2024 18:02:52 +0800 Subject: [PATCH 17/18] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E6=89=80=E6=9C=89=E8=96=AA=E8=B5=84=E6=98=8E=E7=BB=86=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SalaryStatisticsEmployeeServiceImpl.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java index 5728f0886..93a369d7a 100644 --- a/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java +++ b/src/com/engine/salary/report/service/impl/SalaryStatisticsEmployeeServiceImpl.java @@ -345,18 +345,6 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala @Override public SalaryStatisticsEmployeeDetailResultDTO getDetailSalaryAcctResultByAcctEmp(List salaryAcctEmployeeList) { - if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { - return SalaryStatisticsEmployeeDetailResultDTO.builder() - .salaryAcctEmployeeList(Collections.emptyList()) - .salaryAcctResultValueList(Collections.emptyList()) - .salaryItemList(Collections.emptyList()) - .build(); - } - - // 获取核算结果数据 - List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); - List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); - // 3.获取薪资项目 List salaryItemList = getSalaryItemService(user).listAll(); salaryItemList = salaryItemList.stream() @@ -376,6 +364,20 @@ public class SalaryStatisticsEmployeeServiceImpl extends Service implements Sala }) .collect(Collectors.toList()); + if (CollectionUtils.isEmpty(salaryAcctEmployeeList)) { + return SalaryStatisticsEmployeeDetailResultDTO.builder() + .salaryAcctEmployeeList(Collections.emptyList()) + .salaryAcctResultValueList(Collections.emptyList()) + .salaryItemList(salaryItemList) + .build(); + } + + // 获取核算结果数据 + List salaryAcctEmployeeIds = salaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()); + List salaryAcctResultValues = getSalaryAcctResultService(user).listBySalaryAcctEmployeeIds(salaryAcctEmployeeIds); + + + return SalaryStatisticsEmployeeDetailResultDTO.builder() .salaryAcctEmployeeList(salaryAcctEmployeeList) .salaryAcctResultValueList(salaryAcctResultValues) From c2093995667f984321380480daad9041a935c671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=B1=E6=B6=9B?= <15850646081@163.com> Date: Sat, 12 Oct 2024 09:38:08 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BB=E9=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salary/mapper/setting/PageListSettingMapper.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml index df06cf162..644707567 100644 --- a/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml +++ b/src/com/engine/salary/mapper/setting/PageListSettingMapper.xml @@ -58,6 +58,9 @@ AND delete_type = #{deleteType} + + AND id = #{id} + AND page = #{page} @@ -94,6 +97,9 @@ delete_type, + + id, + page, @@ -117,6 +123,9 @@ #{deleteType}, + + #{id}, + #{page},