diff --git a/resource/wiki/二开/xbxtSalaryReport.properties b/resource/wiki/二开/xbxtSalaryReport.properties new file mode 100644 index 000000000..d2be45d6a --- /dev/null +++ b/resource/wiki/二开/xbxtSalaryReport.properties @@ -0,0 +1 @@ +salaryItemIds=1695204436120,1695204436123,1695204436124,1695204436125,1695204436126,1695204436127,1695204436128,1695204436129,1695204436130,1695204436131,1695204436132,1695204436133,1695204436134,1695204436135,1695204436136, \ No newline at end of file diff --git a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java index 4fa4ae64a..23b7155b5 100644 --- a/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java +++ b/src/com/engine/salary/report/web/SalaryStatisticsEmployeeController.java @@ -134,4 +134,12 @@ public class SalaryStatisticsEmployeeController { throw e; } } + + @POST + @Path("/salaryReport") + @Produces(MediaType.APPLICATION_JSON) + public String salaryReport(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryStatisticsEmployeeSalaryQueryParam queryParam) { + User user = HrmUserVarify.getUser(request, response); + return new ResponseResult>(user).run(getSalaryStatisticsEmployeeWrapper(user)::salaryReport, queryParam); + } } diff --git a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java index 2a4bdd282..208a31c21 100644 --- a/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java +++ b/src/com/engine/salary/report/wrapper/SalaryStatisticsEmployeeWrapper.java @@ -42,15 +42,13 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import weaver.file.ImageFileManager; +import weaver.general.BaseBean; import weaver.general.Util; import weaver.hrm.User; import java.io.InputStream; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; import static com.engine.salary.enums.setting.PageListSettingPageEnum.SALARY_DETAILS_REPORT; @@ -361,4 +359,44 @@ public class SalaryStatisticsEmployeeWrapper extends Service { // // return map; // } + + public Map salaryReport(SalaryStatisticsEmployeeSalaryQueryParam queryParam) { + + + Map resultMap = Maps.newHashMap(); + if (StringUtils.isBlank(queryParam.getStartDateStr()) || StringUtils.isBlank(queryParam.getEndDateStr())) { + return resultMap; + } + // 获取发薪人员 + PageInfo salaryAcctEmployeePageInfo = getSalaryStatisticsEmployeeService(user).listSalaryAcctEmp(queryParam); + // 获取薪资核算结果 + SalaryStatisticsEmployeeDetailResultDTO salaryStatisticsEmployeeDetailResult = getSalaryStatisticsEmployeeService(user).getDetailSalaryAcctResultByAcctEmp(salaryAcctEmployeePageInfo.getList()); + List> records = getSalaryStatisticsEmployeeService(user).listDetailPage(salaryStatisticsEmployeeDetailResult, null); + + PageInfo> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize()); + pageInfo.setList(records); + pageInfo.setTotal(salaryAcctEmployeePageInfo.getTotal()); + + List weaTableColumns = new ArrayList<>(); + weaTableColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(87614, "薪资所属月"), "salaryMonth")); + weaTableColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "姓名"), "userName")); + weaTableColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "部门"), "department")); + weaTableColumns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(0, "工号"), "workCode")); + + String salaryItemIds = new BaseBean().getPropValue("xbxtSalaryReport", "salaryItemIds"); + List ids = Arrays.stream(salaryItemIds.split(",")).map(Long::valueOf).collect(Collectors.toList()); + List salaryItemList = getSalaryItemService(user).listByIds(ids); + List salaryItemCols = salaryItemList + .stream() + .map(item -> new WeaTableColumn("100px", item.getName(), item.getId() + SalaryConstant.DYNAMIC_SUFFIX)) + .collect(Collectors.toList()); + + weaTableColumns.addAll(salaryItemCols); + + + // 结果 + resultMap.put("columns", weaTableColumns); + resultMap.put("pageInfo", pageInfo); + return resultMap; + } }