宁波精华报表
This commit is contained in:
parent
f2ea1e983d
commit
e35d5a6c71
|
|
@ -1317,6 +1317,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
|
||||
// 根据部门分类汇总
|
||||
Map<String, List<Map<String, Object>>> resultGroup = SalaryEntityUtil.group2Map(resultMap, map -> Objects.isNull(map.getOrDefault("departmentId", "")) ? "" : map.getOrDefault("departmentId", "").toString());
|
||||
LinkedHashMap<String, List<Map<String, Object>>> sortedGroupBy = new LinkedHashMap<>();
|
||||
resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedGroupBy.put(x.getKey(), x.getValue()));
|
||||
resultGroup = sortedGroupBy;
|
||||
|
||||
Map<String, Map<String, Object>> sumResultByGroup = getSumResultByGroup(resultGroup, Collections.emptyList(), salaryItemList);
|
||||
Map<Long, String> depMap = SalaryEntityUtil.convert2Map(getSalaryEmployeeService(user).listAllDeptInfo(), DeptInfo::getId, DeptInfo::getName);
|
||||
|
||||
|
|
@ -1444,14 +1448,20 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
if (param.isYasjbfgzhzReport()) {
|
||||
// 月按实际部分工资汇总表 根据部门分类汇总
|
||||
resultGroup = SalaryEntityUtil.group2Map(resultMap, map ->
|
||||
Objects.isNull(map.getOrDefault("departmentId", " ")) ? " " : map.getOrDefault("departmentId", " ").toString()
|
||||
Objects.isNull(map.getOrDefault("departmentId", "0")) ? "0" : map.getOrDefault("departmentId", "0").toString()
|
||||
);
|
||||
LinkedHashMap<String, List<Map<String, Object>>> sortedGroupBy = new LinkedHashMap<>();
|
||||
resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.comparingLong(Long::valueOf))).forEachOrdered(x -> sortedGroupBy.put(x.getKey(), x.getValue()));
|
||||
resultGroup = sortedGroupBy;
|
||||
} else {
|
||||
// 月发放工资分摊表 根据记账科目-记账部门分类汇总
|
||||
resultGroup = SalaryEntityUtil.group2Map(resultMap, map ->
|
||||
(Objects.isNull(map.getOrDefault(jzkmItemId.toString(), " ")) ? " " : map.getOrDefault(jzkmItemId.toString(), " ").toString()) + "-" +
|
||||
(Objects.isNull(map.getOrDefault(jzbmItemId.toString(), " ")) ? " " : map.getOrDefault(jzbmItemId.toString(), " ").toString())
|
||||
);
|
||||
LinkedHashMap<String, List<Map<String, Object>>> sortedGroupBy = new LinkedHashMap<>();
|
||||
resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedGroupBy.put(x.getKey(), x.getValue()));
|
||||
resultGroup = sortedGroupBy;
|
||||
}
|
||||
|
||||
List<SalaryItemPO> numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList());
|
||||
|
|
@ -1471,6 +1481,19 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
// 获取部门信息
|
||||
Map<String, String> depMap = SalaryEntityUtil.convert2Map(getSalaryEmployeeService(user).listAllDeptInfo(), dep -> dep.getId().toString(), DeptInfo::getName);
|
||||
Map<String, Map<String, Object>> sumResultByGroup = getSumResultByGroup(resultGroupPage, Collections.emptyList(), numberItems);
|
||||
|
||||
// 排序
|
||||
if (param.isYasjbfgzhzReport()) {
|
||||
LinkedHashMap<String, Map<String, Object>> sortedGroupBy = new LinkedHashMap<>();
|
||||
sumResultByGroup.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.comparingLong(Long::valueOf))).forEachOrdered(x -> sortedGroupBy.put(x.getKey(), x.getValue()));
|
||||
sumResultByGroup = sortedGroupBy;
|
||||
} else {
|
||||
LinkedHashMap<String, Map<String, Object>> sortedGroupBy = new LinkedHashMap<>();
|
||||
sumResultByGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedGroupBy.put(x.getKey(), x.getValue()));
|
||||
sumResultByGroup = sortedGroupBy;
|
||||
}
|
||||
|
||||
|
||||
sumResultByGroup.forEach((key,value) -> {
|
||||
if (param.isYasjbfgzhzReport()) {
|
||||
value.put("departmentName", depMap.getOrDefault(key, ""));
|
||||
|
|
@ -1712,7 +1735,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
List<SalaryAcctResultPO> resultPOList = listByAcctEmployeeIdsAndSalaryItemIds(lastMonthSalaryAcctEmployeeList.stream().map(SalaryAcctEmployeePO::getId).collect(Collectors.toList()), Collections.singletonList(zwcjItemId));
|
||||
List<Long> lastMonthSalaryAcctEmpIds = resultPOList.stream().filter(result -> result.getResultValue().equals(param.getZwcj())).map(SalaryAcctResultPO::getSalaryAcctEmpId).distinct().collect(Collectors.toList());
|
||||
List<Long> finalLastMonthSalaryAcctEmpIds = lastMonthSalaryAcctEmpIds;
|
||||
lastMonthSalaryAcctEmployeeList = lastMonthSalaryAcctEmployeeList.stream().filter(acctEmp -> finalLastMonthSalaryAcctEmpIds.contains(acctEmp.getId())).collect(Collectors.toList());
|
||||
lastMonthSalaryAcctEmployeeList = lastMonthSalaryAcctEmployeeList.stream().filter(acctEmp -> finalLastMonthSalaryAcctEmpIds.contains(acctEmp.getId())).sorted(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId)).collect(Collectors.toList());
|
||||
|
||||
// 分页
|
||||
PageInfo<SalaryAcctEmployeePO> lastMonthSalaryAcctEmployeePOPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), lastMonthSalaryAcctEmployeeList);
|
||||
|
|
@ -1735,9 +1758,13 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
Map<String, List<Map<String, Object>>> resultGroup = SalaryEntityUtil.group2Map(resultMap, map ->
|
||||
Objects.isNull(map.getOrDefault("employeeId", " ")) ? "" : map.getOrDefault("employeeId", " ").toString()
|
||||
);
|
||||
|
||||
|
||||
List<SalaryItemPO> numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList());
|
||||
sumResultByGroup = getSumResultByGroup(resultGroup, Collections.emptyList(), numberItems);
|
||||
|
||||
LinkedHashMap<String, Map<String, Object>> sortedGroupBy = new LinkedHashMap<>();
|
||||
sumResultByGroup.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.comparingLong(Long::valueOf))).forEachOrdered(x -> sortedGroupBy.put(x.getKey(), x.getValue()));
|
||||
sumResultByGroup = sortedGroupBy;
|
||||
|
||||
// 获取这些员工上一年的薪资核算数据
|
||||
LocalDateRange lastYearDateRange = LocalDateRange.builder().fromDate(SalaryDateUtil.localDateToDate(SalaryDateUtil.dateToLocalDate(dateRange.getFromDate()).minusYears(1)))
|
||||
|
|
@ -2176,6 +2203,7 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
List<Long> salaryAcctRecordIds = salaryAcctRecordPOS.stream().map(SalaryAcctRecordPO::getId).collect(Collectors.toList());
|
||||
// 查询薪资核算人员
|
||||
List<SalaryAcctEmployeePO> salaryAcctEmployeePOList = getSalaryAcctEmployeeService(user).listBySalaryAcctRecordIds(salaryAcctRecordIds);
|
||||
salaryAcctEmployeePOList = salaryAcctEmployeePOList.stream().sorted(Comparator.comparing(SalaryAcctEmployeePO::getEmployeeId)).collect(Collectors.toList());
|
||||
// 分页
|
||||
PageInfo<SalaryAcctEmployeePO> salaryAcctEmployeePOPageInfo = SalaryPageUtil.buildPage(param.getCurrent(), param.getPageSize(), salaryAcctEmployeePOList);
|
||||
if (param.isExport() || param.isSum()) {
|
||||
|
|
@ -2268,8 +2296,8 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
Long zffs1ItemId = baseBeanGetNumberProp(baseBean, "nbjhSalary", "sjjt_zffs1_item_id");
|
||||
salaryItemIds.add(zffs1ItemId);
|
||||
// 支付方式-2
|
||||
Long zffs2ItemId = baseBeanGetNumberProp(baseBean, "nbjhSalary", "sjjt_zffs2_item_id");
|
||||
salaryItemIds.add(zffs2ItemId);
|
||||
// Long zffs2ItemId = baseBeanGetNumberProp(baseBean, "nbjhSalary", "sjjt_zffs2_item_id");
|
||||
// salaryItemIds.add(zffs2ItemId);
|
||||
|
||||
|
||||
// 查询薪资核算结果
|
||||
|
|
@ -2284,6 +2312,10 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
Objects.isNull(map.getOrDefault("id", " ")) ? "" : map.getOrDefault("id", " ").toString()
|
||||
);
|
||||
|
||||
LinkedHashMap<String, Map<String, Object>> sortedGroupBy = new LinkedHashMap<>();
|
||||
resultGroup.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEachOrdered(x -> sortedGroupBy.put(x.getKey(), x.getValue()));
|
||||
resultGroup = sortedGroupBy;
|
||||
|
||||
List<SalaryItemPO> salaryItemList = getSalaryItemService(user).listByIds(salaryItemIds);
|
||||
List<SalaryItemPO> numberItems = salaryItemList.stream().filter(item -> item.getDataType().equals(SalaryDataTypeEnum.NUMBER.getValue())).collect(Collectors.toList());
|
||||
List<String> numberItemStrList = numberItems.stream().map(item -> item.getId().toString()).collect(Collectors.toList());
|
||||
|
|
@ -2291,12 +2323,20 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
// 获取人员信息
|
||||
Map<Long, DataCollectionEmployee> empMap = SalaryEntityUtil.convert2Map(getSalaryEmployeeService(user).listByIds(salaryEmpIds), DataCollectionEmployee::getEmployeeId);
|
||||
|
||||
List<SalaryAcctResultPO> zffsResult = resultList.stream().filter(item -> salaryAcctEmpIds.contains(item.getSalaryAcctEmpId()) && item.getSalaryItemId().equals(zffs1ItemId)).collect(Collectors.toList());
|
||||
Map<String, Date> zffsResultTimeMap = SalaryEntityUtil.convert2Map(zffsResult, po -> po.getSalaryAcctEmpId().toString(), SalaryAcctResultPO::getCreateTime);
|
||||
// 获取薪资核算人员
|
||||
resultGroup.forEach((key,value) -> {
|
||||
DataCollectionEmployee employee = empMap.getOrDefault(Long.valueOf(value.getOrDefault("employeeId", "0").toString()), DataCollectionEmployee.builder().build());
|
||||
value.put("rzsj", employee.getCompanystartdate());
|
||||
// 支付方式
|
||||
String zffs = ((value.get(zffs1ItemId.toString()) == null || StringUtils.isBlank(value.get(zffs1ItemId.toString()).toString())) ? " " : value.get(zffs1ItemId.toString()).toString()) +
|
||||
((value.get(zffs2ItemId.toString()) == null || StringUtils.isBlank(value.get(zffs2ItemId.toString()).toString())) ? " " : value.get(zffs2ItemId.toString()).toString());
|
||||
String zffs2= "本月已发";
|
||||
Date date = zffsResultTimeMap.get(key);
|
||||
if (date != null && SalaryDateUtil.getFormatYearMonth(date).equals(param.getStartDate())) {
|
||||
SalaryDateUtil.getFormatYearMonth(date).equals(param.getStartDate());
|
||||
zffs2 = "上月已发";
|
||||
}
|
||||
String zffs = ((value.get(zffs1ItemId.toString()) == null || StringUtils.isBlank(value.get(zffs1ItemId.toString()).toString())) ? " " : value.get(zffs1ItemId.toString()).toString()) + zffs2;
|
||||
value.put("zffs", zffs);
|
||||
});
|
||||
|
||||
|
|
@ -2376,7 +2416,9 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
}
|
||||
});
|
||||
for (WeaTableColumn column : sumColumn) {
|
||||
if (!numberItemStrList.contains(column.getColumn())) {
|
||||
if (column.getColumn().equals("userName") && param.isExport()) {
|
||||
sumRow.put(column.getColumn(), "总计");
|
||||
} else if (!numberItemStrList.contains(column.getColumn())) {
|
||||
|
||||
} else {
|
||||
BigDecimal sumValue = list.stream().map(map -> map.get(column.getColumn()) == null ? "" : map.get(column.getColumn()).toString())
|
||||
|
|
|
|||
|
|
@ -1223,7 +1223,7 @@ public class SalaryAcctController {
|
|||
User user = HrmUserVarify.getUser(request, response);
|
||||
XSSFWorkbook workbook = getSalaryAcctResultWrapper(user).exportSjjtReport(param);
|
||||
String time = LocalDate.now().toString();
|
||||
String fileName = "年度奖金报批" + time;
|
||||
String fileName = "工资发放表" + ( param.isDyhzReport() ? "(当月汇总)" : "(当月实际计提)" ) + time;
|
||||
try {
|
||||
fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
|
|
@ -1236,7 +1236,7 @@ public class SalaryAcctController {
|
|||
response.setContentType("application/octet-stream");
|
||||
return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build();
|
||||
} catch (Exception e) {
|
||||
log.error("年度奖金报批", e);
|
||||
log.error("工资发放表", e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue