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);