diff --git a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java index f382a7e11..3b28e065d 100644 --- a/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java +++ b/src/com/engine/salary/entity/salaryarchive/bo/SalaryArchiveBO.java @@ -1,11 +1,16 @@ package com.engine.salary.entity.salaryarchive.bo; +import com.cloudstore.eccom.constant.WeaBoolAttr; +import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.salary.common.LocalDateRange; +import com.engine.salary.constant.SalaryItemConstant; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveDataDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemDataDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveTaxAgentDataDTO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveItemPO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; +import com.engine.salary.entity.salaryitem.po.SalaryItemPO; +import com.engine.salary.util.SalaryI18nUtil; import java.util.ArrayList; import java.util.Date; @@ -43,56 +48,33 @@ public class SalaryArchiveBO { /** * 构建表格动态列 - * @param weaTable + * * @param salaryItems - * @param employeeId - * @param tenantKey - * @param size */ -// public static void buildSalaryArchiveTable(WeaTable weaTable, List salaryItems, Long employeeId, String tenantKey, int size) { -// // 表格表头 -// List columns = new ArrayList<>(); -// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 85429, "姓名"), "username", "100")); -// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86184, "个税扣缴义务人"), "taxAgentName", "100")); -// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86185, "部门"), "departmentName", "100")); -// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86186, "手机号"), "mobile", "100")); -// columns.add(new WeaTableColumn(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 86187, "员工状态"), "employeeStatus", "100")); -// for (SalaryItemPO salaryItem : salaryItems) { -// columns.add(new WeaTableColumn(salaryItem.getName(), salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX, "150")); -// } -// weaTable.setColumns(columns); -// -// List operates = weaTable.getOperates(); -// operates.add(new WeaTableOperate(SalaryI18nUtil.getI18nLabel(tenantKey, employeeId, 90821, "查看"), 0)); -// -// weaTable.setOperatesPermission(getDefaultOperatesPermission(operates.size(), size)); -// weaTable.setCheckBoxPermission(getDefaultCheckBoxPermission(size)); -// -// weaTable.setTableType(WeaTableTypeEnum.CHECKBOX); -// } -// -// private static List> getDefaultOperatesPermission(int operateSize, int recordSize) { -// List> permissionList = Lists.newArrayList(); -// for (int i=0; i permissions = Lists.newArrayList(); -// for (int j=0; j getDefaultCheckBoxPermission(int recordSize) { -// List permissionList = Lists.newArrayList(); -// for (int i=0; i buildSalaryArchiveTable(List salaryItems) { + // 表格表头 + List columns = new ArrayList<>(); + WeaTableColumn idColumn = new WeaTableColumn("100px", "id", "id"); + idColumn.setIsPrimarykey(WeaBoolAttr.TRUE); + idColumn.setDisplay(WeaBoolAttr.FALSE); + columns.add(idColumn); + WeaTableColumn employeeIdColumn = new WeaTableColumn("100px", "人员信息表的主键id", "employeeId"); + employeeIdColumn.setDisplay(WeaBoolAttr.FALSE); + columns.add(employeeIdColumn); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(85429, "姓名"), "username")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86184, "个税扣缴义务人"), "taxAgentName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86185, "部门"), "departmentName")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86186, "手机号"), "mobile")); + columns.add(new WeaTableColumn("100px", SalaryI18nUtil.getI18nLabel(86187, "员工状态"), "employeeStatus")); + for (SalaryItemPO salaryItem : salaryItems) { + columns.add(new WeaTableColumn("100px", salaryItem.getName(), salaryItem.getId() + SalaryItemConstant.DYNAMIC_SUFFIX)); + } + return columns; + } /** * 构建薪资档案数据 + * * @param salaryArchiveTaxAgentList * @param salaryArchiveItemDataList * @param localDateRange @@ -111,11 +93,11 @@ public class SalaryArchiveBO { Date end = localDateRange.getEndDate(); List list = new ArrayList<>(); - allEmployeeIds.forEach(e->{ + allEmployeeIds.forEach(e -> { // 同一个人的个税扣缴义务人调整历史数据 - List salaryArchiveTaxAgents = salaryArchiveTaxAgentList.stream().filter(f->f.getEmployeeId().equals(e)).collect(Collectors.toList()); + List salaryArchiveTaxAgents = salaryArchiveTaxAgentList.stream().filter(f -> f.getEmployeeId().equals(e)).collect(Collectors.toList()); // 同一个人的薪资项目调整历史数据 - List salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d->d.getEmployeeId().equals(e)).collect(Collectors.toList()); + List salaryArchiveItems = salaryArchiveItemDataList.stream().filter(d -> d.getEmployeeId().equals(e)).collect(Collectors.toList()); List salaryArchiveItemIds = salaryArchiveItems.stream().map(SalaryArchiveItemPO::getSalaryItemId).distinct().collect(Collectors.toList()); SalaryArchiveDataDTO salaryArchiveData = new SalaryArchiveDataDTO(); @@ -130,7 +112,7 @@ public class SalaryArchiveBO { } SalaryArchiveTaxAgentDataDTO taxAgent = new SalaryArchiveTaxAgentDataDTO(); taxAgent.setTaxAgentId(salaryArchiveTaxAgent.getTaxAgentId()); - taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.before(start)?start:fromDate)).endDate(endTemp).build()); + taxAgent.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDate.before(start) ? start : fromDate)).endDate(endTemp).build()); // 薪资项目数据按个税扣缴义务人切割 if (!isOnlyTaxAgent) { @@ -151,7 +133,7 @@ public class SalaryArchiveBO { continue; } SalaryArchiveItemDataDTO salaryArchiveItemData = new SalaryArchiveItemDataDTO(); - salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.before(startItem)?startItem:fromDateItem)).endDate(endTempItem).build()); + salaryArchiveItemData.setEffectiveDateRange(LocalDateRange.builder().fromDate((fromDateItem.before(startItem) ? startItem : fromDateItem)).endDate(endTempItem).build()); salaryArchiveItemData.setSalaryItemId(salaryArchiveItem.getSalaryItemId()); salaryArchiveItemData.setValue(salaryArchiveItem.getItemValue()); salaryItemValues.add(salaryArchiveItemData); diff --git a/src/com/engine/salary/enums/UserStatus.java b/src/com/engine/salary/enums/UserStatus.java index 6b22f6403..6476e0839 100644 --- a/src/com/engine/salary/enums/UserStatus.java +++ b/src/com/engine/salary/enums/UserStatus.java @@ -1,5 +1,8 @@ package com.engine.salary.enums; +import java.util.Arrays; +import java.util.Optional; + /** * @Author weaver_cl * @Description: TODO @@ -14,16 +17,16 @@ package com.engine.salary.enums; * retired * invalid **/ -public enum UserStatus { +public enum UserStatus { - TRIAL(0,"试用"), - FORMAL(1,"正式"), - TEMPORARY(2,"临时"), - DELAY(3,"试用延期"), - FIRE(4,"解雇"), - DEPARTURE(5,"离职"), - RETIRED(6,"退休"), - INVALID(7,"无效"); + TRIAL(0, "试用"), + FORMAL(1, "正式"), + TEMPORARY(2, "临时"), + DELAY(3, "试用延期"), + FIRE(4, "解雇"), + DEPARTURE(5, "离职"), + RETIRED(6, "退休"), + INVALID(7, "无效"); private Integer value; private String description; @@ -41,4 +44,9 @@ public enum UserStatus { public Integer getValue() { return value; } + + public static String getDefaultLabelByValue(Integer value) { + Optional optional = Arrays.stream(UserStatus.values()).filter(r -> r.getValue().equals(value)).findFirst(); + return optional.isPresent() ? optional.get().description : ""; + } } diff --git a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml index 61757f7c6..62ebf73ee 100644 --- a/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml +++ b/src/com/engine/salary/mapper/archive/SalaryArchiveItemMapper.xml @@ -891,19 +891,19 @@ AND t.salary_item_id IN - #{param.salaryItemId} + #{salaryItemId} AND t.salary_archive_id IN - #{param.salaryArchiveId} + #{salaryArchiveId} AND t.employee_id IN - - #{param.employeeId} + + #{employeeId} ORDER BY t.effective_time DESC @@ -921,7 +921,7 @@ AND t.salary_item_id IN - #{param.salaryItemId} + #{salaryItemId} @@ -945,7 +945,7 @@ AND t.salary_item_id IN - #{param.salaryItemId} + #{salaryItemId} diff --git a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java index 6403ac645..37d6ad649 100644 --- a/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryArchiveServiceImpl.java @@ -18,7 +18,7 @@ import com.engine.salary.entity.salaryarchive.po.SalaryArchivePO; import com.engine.salary.entity.salaryarchive.po.SalaryArchiveTaxAgentPO; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.taxrate.TaxAgent; -import com.engine.salary.enums.SalaryUserStatusEnum; +import com.engine.salary.enums.UserStatus; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveItemAdjustReasonEnum; import com.engine.salary.enums.salaryarchive.SalaryArchiveTaxAgentAdjustReasonEnum; @@ -155,7 +155,7 @@ public class SalaryArchiveServiceImpl extends Service implements SalaryArchiveSe // 3.组装数据 List> listMaps = new ArrayList<>(); salaryArchives.forEach(e -> { - e.setEmployeeStatus(SalaryUserStatusEnum.getDefaultLabelByValue(e.getEmployeeStatus())); + e.setEmployeeStatus(UserStatus.getDefaultLabelByValue(Integer.parseInt(e.getEmployeeStatus()))); Map map = new LinkedHashMap<>(); map.put("id", e.getId()); diff --git a/src/com/engine/salary/web/SalaryArchiveController.java b/src/com/engine/salary/web/SalaryArchiveController.java index e8fad4476..a63e5ad3a 100644 --- a/src/com/engine/salary/web/SalaryArchiveController.java +++ b/src/com/engine/salary/web/SalaryArchiveController.java @@ -6,7 +6,6 @@ import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveItemFormDTO; import com.engine.salary.entity.salaryarchive.param.*; import com.engine.salary.enums.salaryarchive.SalaryArchiveImportTypeEnum; import com.engine.salary.util.ResponseResult; -import com.engine.salary.util.page.PageInfo; import com.engine.salary.wrapper.SalaryArchiveItemWrapper; import com.engine.salary.wrapper.SalaryArchiveWrapper; import io.swagger.v3.oas.annotations.parameters.RequestBody; @@ -65,7 +64,7 @@ public class SalaryArchiveController { @Produces(MediaType.APPLICATION_JSON) public String list(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryArchiveQueryParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult>>().run(getSalaryArchiveWrapper(user)::list, queryParam); + return new ResponseResult>().run(getSalaryArchiveWrapper(user)::list, queryParam); } /** diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index 279d0513f..4629d81f9 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -1,9 +1,11 @@ package com.engine.salary.wrapper; +import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.biz.EmployBiz; import com.engine.salary.entity.datacollection.DataCollectionEmployee; +import com.engine.salary.entity.salaryarchive.bo.SalaryArchiveBO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveBaseInfoFormDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveFormDTO; import com.engine.salary.entity.salaryarchive.dto.SalaryArchiveListDTO; @@ -69,14 +71,18 @@ public class SalaryArchiveWrapper extends Service { * @param queryParam * @return */ - public PageInfo> list(SalaryArchiveQueryParam queryParam) { + public Map list(SalaryArchiveQueryParam queryParam) { + + //薪资档案列表 + PageInfo pageInfo = getSalaryArchiveService(user).listPage(queryParam); + Collection salaryArchives = pageInfo.getList(); + + //所有个税扣缴义务人 Collection taxAgentLists = getTaxAgentService(user).findAll(); - PageInfo pageInfo = getSalaryArchiveService(user).listPage(queryParam); - - Collection salaryArchives = pageInfo.getList(); // 获取所有可被引用的薪资项目 List salaryItems = getSalaryArchiveItemService(user).getCanAdjustSalaryItems(); + List> listMaps = getSalaryArchiveService(user).buildSalaryArchiveData(salaryArchives, taxAgentLists, salaryItems, Boolean.TRUE); PageInfo> pageInfos = new PageInfo>(listMaps); @@ -84,7 +90,14 @@ public class SalaryArchiveWrapper extends Service { pageInfos.setPageNum(queryParam.getCurrent()); pageInfos.setPageSize(queryParam.getPageSize()); - return pageInfos; + Map datas = new HashMap<>(); + //动态列组装 + List weaTableColumns = SalaryArchiveBO.buildSalaryArchiveTable(salaryItems); + + datas.put("pageInfo",pageInfos); + datas.put("columns",weaTableColumns); + + return datas; } /**