From 50e353d889ceb6bf6af1a62505cb6fd0d59389cc Mon Sep 17 00:00:00 2001 From: Harryxzy Date: Tue, 29 Jul 2025 14:25:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=89=E9=98=B3=E6=91=A9=E6=89=98=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/SalaryAcctResultServiceImpl.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java index 8096de0be..c1a4797d8 100644 --- a/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryAcctResultServiceImpl.java @@ -1467,7 +1467,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe rows.add(row); } - return ExcelUtilPlus.genWorkbookV2(rows, sheetName); + YearMonth yearMonth = SalaryDateUtil.localDate2YearMonth(param.getSalaryMonth()).minusMonths(1); + String title ="常州光阳摩托车有限公司"+yearMonth.getYear()+"年"+yearMonth.getMonthValue()+"月发放工资明细"; + return ExcelUtilPlus.genWorkbookV2(rows, sheetName, title); } @Override @@ -1572,20 +1574,33 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe list.add(entry.getValue()); } // 获取所有的用工性质信息 - rs.execute("select id,name from hrmusekind order by id"); + rs.execute("select id,name from hrmusekind "); LinkedHashMap hrmusekindMap = new LinkedHashMap<>(); while (rs.next()) { hrmusekindMap.put(Long.valueOf(rs.getInt("id")), Util.formatMultiLang(rs.getString("name"))); } int qtryYgxzId = NumberUtils.isCreatable(baseBean.getPropValue("czgymtSalaryReport", "qtry_ygxz_id")) ? Integer.valueOf(baseBean.getPropValue("czgymtSalaryReport", "qtry_ygxz_id")) : -1; - hrmusekindMap.put(Long.valueOf(qtryYgxzId), "台籍"); + hrmusekindMap.put(Long.valueOf(qtryYgxzId), "台方"); + // 获取用工性质顺序 + List ygxzIdOrder = Arrays.stream(baseBean.getPropValue("czgymtSalaryReport", "ygxz_id_order").split(",")) + .filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList()); + // hrmusekindMap的key根据ygxzIdOrder排序 + hrmusekindMap = hrmusekindMap.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.comparingLong(ygxzId -> ygxzIdOrder.indexOf(ygxzId)))) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (oldValue, newValue) -> oldValue, LinkedHashMap::new)); + // 每个用工性质需要有一个小记 ArrayList> dataList = new ArrayList<>(); - List notExitYgxzIds = groupByYgxz.keySet().stream().filter(id -> !hrmusekindMap.containsKey(id)).collect(Collectors.toList()); + LinkedHashMap finalHrmusekindMap = hrmusekindMap; + List notExitYgxzIds = groupByYgxz.keySet().stream().filter(id -> !finalHrmusekindMap.containsKey(id)).collect(Collectors.toList()); + + List needSumToDepYgxzIds = Arrays.stream(baseBean.getPropValue("czgymtSalaryReport", "need_sum_to_dep_ygxz_ids").split(",")) + .filter(NumberUtils::isCreatable).map(Long::valueOf).collect(Collectors.toList()); for (Map.Entry entry : hrmusekindMap.entrySet()) { List> maps = groupByYgxz.get(entry.getKey()); if (maps != null && CollectionUtils.isNotEmpty(maps)) { - dataList.addAll(maps); + if (needSumToDepYgxzIds.contains(entry.getKey())) { + dataList.addAll(maps); + } // 加入合计行 Map ygxzSumMap = new HashMap<>(); for (SalaryItemPO item : salaryItemList) { @@ -1688,7 +1703,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe } rows.add(row); } - YearMonth yearMonth = SalaryDateUtil.localDate2YearMonth(param.getSalaryMonth()); + YearMonth yearMonth = SalaryDateUtil.localDate2YearMonth(param.getSalaryMonth()).minusMonths(1); String title ="常州光阳摩托车有限公司"+yearMonth.getYear()+"年"+yearMonth.getMonthValue()+"月发放工资汇总"; return ExcelUtilPlus.genWorkbookV2(rows, sheetName, title);