diff --git a/src/com/engine/salary/biz/SalaryItemBiz.java b/src/com/engine/salary/biz/SalaryItemBiz.java index b96f49665..f18611ff2 100644 --- a/src/com/engine/salary/biz/SalaryItemBiz.java +++ b/src/com/engine/salary/biz/SalaryItemBiz.java @@ -152,16 +152,6 @@ public class SalaryItemBiz { } } - public Integer getMaxItemSortedIndex(Integer useInEmployeeSalary) { - SqlSession sqlSession = MyBatisFactory.sqlSessionFactory.openSession(); - try { - SalaryItemMapper mapper = sqlSession.getMapper(SalaryItemMapper.class); - return mapper.getMaxItemSortedIndex(useInEmployeeSalary); - } finally { - sqlSession.close(); - } - - } } diff --git a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java index 06307b3c6..7066c4664 100644 --- a/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java +++ b/src/com/engine/salary/entity/salaryitem/bo/SalaryItemBO.java @@ -5,6 +5,7 @@ import com.engine.salary.constant.SalaryDefaultTenantConstant; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryitem.dto.SalaryItemFormDTO; import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; +import com.engine.salary.entity.salaryitem.dto.SalaryItemSobListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSaveParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO; @@ -120,6 +121,50 @@ public class SalaryItemBO { ).collect(Collectors.toList()); } + /** + * 薪资项目po转换成薪资账套中薪资项目列表dto + * + * @param salaryItems 薪资项目po + * @param expressFormulas 公式详情 + * @return + */ + public static List convert2itemSobListDTO(Collection salaryItems, List expressFormulas, List sysSalaryItemPOS) { + if (CollectionUtils.isEmpty(salaryItems)) { + return Collections.emptyList(); + } + Map formulaMap = SalaryEntityUtil.convert2Map(expressFormulas, ExpressFormula::getId, ExpressFormula::getFormula); + Map sysSalaryItemNameMap = SalaryEntityUtil.convert2Map(sysSalaryItemPOS, SysSalaryItemPO::getId, SysSalaryItemPO::getName); + return salaryItems.stream().map(salaryItemPO -> { + SalaryRoundingModeEnum salaryRoundingModeEnum = SalaryRoundingModeEnum.parseByValue(salaryItemPO.getRoundingMode()); + SalaryValueTypeEnum salaryValueTypeEnum = SalaryValueTypeEnum.parseByValue(salaryItemPO.getValueType()); + SalaryDataTypeEnum salaryDataTypeEnum = SalaryDataTypeEnum.parseByValue(salaryItemPO.getDataType()); + return SalaryItemSobListDTO.builder() + .id(salaryItemPO.getId()) + .code(salaryItemPO.getCode()) + .name(salaryItemPO.getName()) + .systemName(sysSalaryItemNameMap.getOrDefault(salaryItemPO.getSysSalaryItemId(), StringUtils.EMPTY)) + .useInEmployeeSalary(salaryItemPO.getUseInEmployeeSalary()) + .useDefault(salaryItemPO.getUseDefault()) + .roundingMode(Optional.ofNullable(salaryRoundingModeEnum) + .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) + .orElse(StringUtils.EMPTY)) + .pattern(salaryItemPO.getPattern()) + .valueType(Optional.ofNullable(salaryValueTypeEnum) + .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) + .orElse(StringUtils.EMPTY)) + .dataType(Optional.ofNullable(salaryDataTypeEnum) + .map(e -> SalaryI18nUtil.getI18nLabel(e.getLabelId(), e.getDefaultLabel())) + .orElse(StringUtils.EMPTY)) + .taxDeclarationColumn(buildTaxDeclarationColumn(salaryItemPO.getCode())) + .sortedIndex(salaryItemPO.getSortedIndex()) + .description(salaryItemPO.getDescription()) + .salaryItemType(salaryItemPO.getUseInEmployeeSalary() == 0 ? "薪资项目" : "档案字段") + .build(); + } + ).collect(Collectors.toList()); + } + + /** * 转换成薪资项目详情dto * @@ -142,7 +187,8 @@ public class SalaryItemBO { .setDescription(salaryItemPO.getDescription()) .setCanEdit(salaryItemPO.getCanEdit()) .setTaxAgentIds(salaryItemPO.getTaxAgentIds()) - .setSharedType(salaryItemPO.getSharedType()); + .setSharedType(salaryItemPO.getSharedType()) + .setSortedIndex(salaryItemPO.getSortedIndex()); } /** diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java index c392e0d62..96c00924a 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryFieldListDTO.java @@ -73,6 +73,10 @@ public class SalaryFieldListDTO { //是否可以删除 private Boolean canDelete; + @SalaryTableColumn(text = "显示顺序", width = "10%", column = "sortedIndex") + @TableTitle(title = "显示顺序",dataIndex = "sortedIndex",key = "sortedIndex") + private String sortedIndex; + @SalaryTableColumn(text = "操作", width = "20%", column = "operate") private String operate; } diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java index 107d9266f..95903867d 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemFormDTO.java @@ -85,4 +85,6 @@ public class SalaryItemFormDTO { private Integer sharedType; private String taxAgentIds; + + private Integer sortedIndex; } diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java index 458985cdd..510a75f18 100644 --- a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemListDTO.java @@ -96,6 +96,8 @@ public class SalaryItemListDTO { private Boolean canDelete; //排序 + @SalaryTableColumn(text = "显示顺序", width = "10%", column = "sortedIndex") + @TableTitle(title = "显示顺序",dataIndex = "sortedIndex",key = "sortedIndex") private Integer sortedIndex; @SalaryTableColumn(text = "操作", width = "20%", column = "operate") diff --git a/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java new file mode 100644 index 000000000..ef88c307a --- /dev/null +++ b/src/com/engine/salary/entity/salaryitem/dto/SalaryItemSobListDTO.java @@ -0,0 +1,103 @@ +package com.engine.salary.entity.salaryitem.dto; + +import com.engine.salary.annotation.SalaryTableColumn; +import com.engine.salary.annotation.TableTitle; +import com.engine.salary.enums.salaryitem.SalaryDataTypeEnum; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author Harryxzy + * @date 2023/06/01 17:05 + * @description 薪资账套薪资项目列表 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SalaryItemSobListDTO { + + @JsonSerialize(using = ToStringSerializer.class) + @SalaryTableColumn(column = "id", display = false) + private Long id; + + @SalaryTableColumn(text = "名称", width = "10%", column = "name") + @TableTitle(title = "名称",dataIndex = "name",key = "name") + private String name; + private String code; + + @SalaryTableColumn(text = "系统名", width = "10%", column = "systemName") + @TableTitle(title = "系统名",dataIndex = "systemName",key = "systemName") + private String systemName; + + //薪资档案引用 +// @SalaryTableColumn(text = "薪资档案引用", width = "10%", column = "useInEmployeeSalary") +// @TableTitle(title = "薪资档案引用",dataIndex = "useInEmployeeSalary",key = "useInEmployeeSalary") + private Integer useInEmployeeSalary; + + // 薪资项目类型 + @SalaryTableColumn(text = "项目类型", width = "10%", column = "salaryItemType") + @TableTitle(title = "项目类型",dataIndex = "salaryItemType",key = "salaryItemType") + private String salaryItemType; + + //默认使用 + @SalaryTableColumn(text = "默认使用", width = "10%", column = "useDefault") + @TableTitle(title = "默认使用",dataIndex = "useDefault",key = "useDefault") + private Integer useDefault; + + //进位规则 + @SalaryTableColumn(text = "进位规则", width = "10%", column = "roundingMode",transmethod = "com.engine.salary.transmethod.TransMethod.roundingMode") + @TableTitle(title = "进位规则",dataIndex = "roundingMode",key = "roundingMode") + private String roundingMode; + + //保留小数位 + @SalaryTableColumn(text = "保留小数位", width = "10%", column = "pattern") + @TableTitle(title = "保留小数位",dataIndex = "pattern",key = "pattern") + private Integer pattern; + + //取值方式 + @SalaryTableColumn(text = "取值方式", width = "10%", column = "valueType",transmethod = "com.engine.salary.transmethod.TransMethod.datasource") + @TableTitle(title = "取值方式",dataIndex = "valueType",key = "valueType") + private String valueType; + + /** + * @see SalaryDataTypeEnum + */ + @SalaryTableColumn(text = "字段类型", width = "10%", column = "dataType",transmethod = "com.engine.salary.transmethod.TransMethod.dataType") + @TableTitle(title = "字段类型",dataIndex = "dataType",key = "dataType") + private String dataType; + + //公式id + private Long formulaId; + + //公式内容 + private String formulaContent; + + @SalaryTableColumn(text = "个税申报表对应字段", width = "10%", column = "taxDeclarationColumn") + @TableTitle(title = "个税申报表对应字段",dataIndex = "taxDeclarationColumn",key = "taxDeclarationColumn") + private String taxDeclarationColumn; + + //备注 + @SalaryTableColumn(text = "备注", width = "10%", column = "description") + @TableTitle(title = "备注",dataIndex = "description",key = "description") + private String description; + + + //是否可以编辑 + private Boolean canEdit; + + //是否可以删除 + private Boolean canDelete; + + //排序 + private Integer sortedIndex; + + + @SalaryTableColumn(text = "操作", width = "20%", column = "operate") + private String operate; + +} diff --git a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.java b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.java index 46b7bb83c..52ee57b51 100644 --- a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.java +++ b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.java @@ -67,11 +67,5 @@ public interface SalaryItemMapper { void batchUpdateSortedIndex(@Param("collection")List salaryItemPOS); - /** - * 获取薪资项目的最大sortedIndex - * @param useInEmployeeSalary - * @return - */ - Integer getMaxItemSortedIndex(Integer useInEmployeeSalary); } \ No newline at end of file diff --git a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml index 9bac11881..59e4d3e1b 100644 --- a/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml +++ b/src/com/engine/salary/mapper/salaryitem/SalaryItemMapper.xml @@ -59,7 +59,7 @@ FROM hrsa_salary_item t WHERE delete_type = 0 - ORDER BY sorted_index DESC + ORDER BY sorted_index DESC, id DESC @@ -139,7 +139,7 @@ #{id} - ORDER BY sorted_index DESC + ORDER BY sorted_index DESC, id DESC @@ -349,6 +349,7 @@ tax_agent_ids=#{taxAgentIds}, + sorted_index=#{sortedIndex}, WHERE id = #{id} AND delete_type = 0 @@ -461,7 +462,7 @@ WHERE delete_type = 0 - ORDER BY sorted_index DESC + ORDER BY sorted_index DESC, id DESC - diff --git a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java index cf5e89b4d..c2c89f31b 100644 --- a/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java +++ b/src/com/engine/salary/service/impl/SalaryItemServiceImpl.java @@ -137,7 +137,34 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService .stream().map(TaxAgentPO::getId).collect(Collectors.toSet()); salaryItemPOS = salaryItemPOS.stream() .filter(po -> filterInRange(userTaxAgentIds, po)) - .sorted(Comparator.comparing(SalaryItemPO::getSystemType)) + .sorted(new Comparator() { + @Override + public int compare(SalaryItemPO o1, SalaryItemPO o2) { + if(o1 == null) + return 1; + if(o2 == null) + return -1; + if(o1 == null && o2 == null) + return 0; + if(o1.getSortedIndex() == null && o2.getSortedIndex() == null){ + Integer systemType1=o1.getSystemType(); + Integer systemType2=o2.getSystemType(); + if(systemType1 == null) + systemType1=0; + if(systemType2 == null) + systemType2=0; + return systemType1.compareTo(systemType2); + }else{ + Integer sortedIndex1=o1.getSortedIndex(); + Integer sortedIndex2=o2.getSortedIndex(); + if(sortedIndex1 == null) + sortedIndex1=0; + if(sortedIndex2 == null) + sortedIndex2=0; + return sortedIndex2.compareTo(sortedIndex1); + } + } + }) .collect(Collectors.toList()); } else { //普通用户 @@ -180,9 +207,6 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService if (CollectionUtils.isNotEmpty(sysSalaryItemPOS)) { throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(98328, "自定义薪资项目的名称不能和系统薪资项目的名称重名")); } - // 保存薪资项目 - Integer maxItemSortedIndex = salaryItemBiz.getMaxItemSortedIndex(saveParam.getUseInEmployeeSalary()); - saveParam.setSortedIndex(maxItemSortedIndex+1); SalaryItemPO salaryItemPO = SalaryItemBO.convert2SalaryItemPO(saveParam, (long) user.getUID()); salaryItemBiz.insert(salaryItemPO); // todo 记录日志 @@ -235,6 +259,7 @@ public class SalaryItemServiceImpl extends Service implements SalaryItemService newSalaryItemPO.setUpdateTime(new Date()); newSalaryItemPO.setSharedType(saveParam.getSharedType()); newSalaryItemPO.setTaxAgentIds(saveParam.getTaxAgentIds()); + newSalaryItemPO.setSortedIndex(saveParam.getSortedIndex()); salaryItemBiz.updateById(newSalaryItemPO); //改名后更新公式 diff --git a/src/com/engine/salary/web/SalarySobController.java b/src/com/engine/salary/web/SalarySobController.java index ad3bd6423..403406ef3 100644 --- a/src/com/engine/salary/web/SalarySobController.java +++ b/src/com/engine/salary/web/SalarySobController.java @@ -1,7 +1,7 @@ package com.engine.salary.web; import com.engine.common.util.ServiceUtil; -import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; +import com.engine.salary.entity.salaryitem.dto.SalaryItemSobListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; import com.engine.salary.entity.salarysob.dto.*; import com.engine.salary.entity.salarysob.param.*; @@ -281,7 +281,7 @@ public class SalarySobController { @Produces(MediaType.APPLICATION_JSON) public String listSalaryItem(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody SalaryItemSearchParam queryParam) { User user = HrmUserVarify.getUser(request, response); - return new ResponseResult >(user).run(getSalarySobItemWrapper(user)::listPage4SalaryItem, queryParam); + return new ResponseResult >(user).run(getSalarySobItemWrapper(user)::listPage4SalaryItem, queryParam); } diff --git a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java index 893c95dd2..9c17eaf78 100644 --- a/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryAcctRecordWrapper.java @@ -11,8 +11,6 @@ import com.engine.salary.entity.salaryacct.dto.SalaryAcctRecordListDTO; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordQueryParam; import com.engine.salary.entity.salaryacct.param.SalaryAcctRecordSaveParam; import com.engine.salary.entity.salaryacct.po.SalaryAcctRecordPO; -import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; -import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salarysob.dto.SalarySobCycleDTO; import com.engine.salary.entity.salarysob.po.SalarySobPO; import com.engine.salary.exception.SalaryRunTimeException; @@ -29,7 +27,6 @@ import org.apache.commons.lang3.math.NumberUtils; import weaver.hrm.User; import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** @@ -74,8 +71,6 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord SalarySobUtil.handleEmployeeStatusHistory(); // 处理工资单发放历史数据 getSalarySendService(user).handleHistory(); - // 处理历史数据给薪资项目都增加个默认排序 - generateSalaryItemSortedIndex(); // 查询薪资核算记录(分页) PageInfo page = getSalaryAcctRecordService(user).listPageByParam(queryParam); PageInfo dtoPage = new PageInfo(SalaryAcctRecordListDTO.class); @@ -127,28 +122,28 @@ public class SalaryAcctRecordWrapper extends Service implements SalaryAcctRecord * @author Harryxzy * @date 2023/5/29 14:37 */ - private void generateSalaryItemSortedIndex() { - // 查询所有薪资项目 - List salaryItemList = getSalaryItemService(user).listByParamOrderById(SalaryItemSearchParam.builder().build()); - Optional needGenerate = salaryItemList.stream().filter(item -> item.getSortedIndex() == null).findFirst(); - if(needGenerate.isPresent()){ - Map> salaryItemMap = SalaryEntityUtil.group2Map(salaryItemList, SalaryItemPO::getUseInEmployeeSalary); - for(Map.Entry> entry : salaryItemMap.entrySet()){ - List values = entry.getValue(); - if(CollectionUtils.isNotEmpty(values)){ - // 将系统薪资项目放到最后 - values = values.stream() - .sorted(Comparator.comparing(SalaryItemPO::getSystemType)) - .collect(Collectors.toList()); - // 添加默认sortedIndex - AtomicInteger index = new AtomicInteger(values.size()); - values.stream().forEach(value -> value.setSortedIndex(index.getAndDecrement())); - // 保存排序 - getSalaryItemService(user).batchUpdateSortedIndex(values); - } - } - } - } +// private void generateSalaryItemSortedIndex() { +// // 查询所有薪资项目 +// List salaryItemList = getSalaryItemService(user).listByParamOrderById(SalaryItemSearchParam.builder().build()); +// Optional needGenerate = salaryItemList.stream().filter(item -> item.getSortedIndex() == null).findFirst(); +// if(needGenerate.isPresent()){ +// Map> salaryItemMap = SalaryEntityUtil.group2Map(salaryItemList, SalaryItemPO::getUseInEmployeeSalary); +// for(Map.Entry> entry : salaryItemMap.entrySet()){ +// List values = entry.getValue(); +// if(CollectionUtils.isNotEmpty(values)){ +// // 将系统薪资项目放到最后 +// values = values.stream() +// .sorted(Comparator.comparing(SalaryItemPO::getSystemType)) +// .collect(Collectors.toList()); +// // 添加默认sortedIndex +// AtomicInteger index = new AtomicInteger(values.size()); +// values.stream().forEach(value -> value.setSortedIndex(index.getAndDecrement())); +// // 保存排序 +// getSalaryItemService(user).batchUpdateSortedIndex(values); +// } +// } +// } +// } /** * 薪资核算记录详情 diff --git a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java index e03ec72bd..8cb70e415 100644 --- a/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java +++ b/src/com/engine/salary/wrapper/SalaryArchiveWrapper.java @@ -138,7 +138,6 @@ public class SalaryArchiveWrapper extends Service { .stream().map(TaxAgentPO::getId).collect(Collectors.toSet()); salaryItems = salaryItems.stream() .filter(po -> getSalaryItemService(user).filterInRange(userTaxAgentIds, po)) - .sorted((Comparator.comparing(SalaryItemPO::getSortedIndex))) .collect(Collectors.toList()); diff --git a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java index e391a433b..2400f224b 100644 --- a/src/com/engine/salary/wrapper/SalarySobItemWrapper.java +++ b/src/com/engine/salary/wrapper/SalarySobItemWrapper.java @@ -6,7 +6,7 @@ import com.engine.salary.annotation.SalaryFormulaVar; import com.engine.salary.entity.salaryformula.ExpressFormula; import com.engine.salary.entity.salaryformula.dto.SalaryFormulaEmployeeDTO; import com.engine.salary.entity.salaryitem.bo.SalaryItemBO; -import com.engine.salary.entity.salaryitem.dto.SalaryItemListDTO; +import com.engine.salary.entity.salaryitem.dto.SalaryItemSobListDTO; import com.engine.salary.entity.salaryitem.param.SalaryItemSearchParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.entity.salaryitem.po.SysSalaryItemPO; @@ -19,6 +19,7 @@ import com.engine.salary.service.impl.*; import com.engine.salary.util.SalaryEntityUtil; import com.engine.salary.util.SalaryI18nUtil; import com.engine.salary.util.page.PageInfo; +import com.engine.salary.util.page.SalaryPageUtil; import com.google.common.collect.Maps; import org.apache.commons.collections4.CollectionUtils; import weaver.hrm.User; @@ -68,8 +69,13 @@ public class SalarySobItemWrapper extends Service { * @param queryParam 列表查询条件 * @return */ - public PageInfo listPage4SalaryItem(SalaryItemSearchParam queryParam) { + public PageInfo listPage4SalaryItem(SalaryItemSearchParam queryParam) { + Integer searchPageSize = queryParam.getPageSize(); + Integer searchCurrent = queryParam.getCurrent(); + // 分页查询薪资项目 + queryParam.setPageSize(10000000); + queryParam.setCurrent(1); PageInfo page = getSalaryItemService(user).listPageByParam(queryParam); List salaryItemList = page.getList(); @@ -80,11 +86,22 @@ public class SalarySobItemWrapper extends Service { salaryItemList = salaryItemList.stream() .filter(po -> getSalaryItemService(user).filterInRange(taxAgentIds, po)) .collect(Collectors.toList()); + + // 薪资项目排序:薪资项目放在前面(首先按照设置的排序,没有设置按照id倒序,系统薪资项目放在最后),档案字段放在后面 + salaryItemList = salaryItemList.stream() + .sorted(new Comparator() { + @Override + public int compare(SalaryItemPO o1, SalaryItemPO o2) { + return Integer.compare(o1.getUseInEmployeeSalary(),o2.getUseInEmployeeSalary()); + } + }) + .collect(Collectors.toList()); + SalaryPageUtil.buildPage(searchCurrent, searchPageSize, salaryItemList); //最终返回的分页对象 - PageInfo dtoPage = new PageInfo<>(SalaryItemListDTO.class); - dtoPage.setPageSize(page.getPageSize()); - dtoPage.setPageNum(page.getPageNum()); + PageInfo dtoPage = new PageInfo<>(SalaryItemSobListDTO.class); + dtoPage.setPageSize(searchPageSize); + dtoPage.setPageNum(searchCurrent); dtoPage.setTotal(page.getTotal()); if (CollectionUtils.isNotEmpty(salaryItemList)) { // 查询公式 @@ -94,12 +111,11 @@ public class SalarySobItemWrapper extends Service { Set sysSalaryItemIds = SalaryEntityUtil.properties(salaryItemList, SalaryItemPO::getSysSalaryItemId); List sysSalaryItemPOS = getSysSalaryItemService(user).listByIds(sysSalaryItemIds); // 转换成薪资项目列表dto - dtoPage.setList(SalaryItemBO.convert2ListDTO(salaryItemList, expressFormulas, sysSalaryItemPOS)); + dtoPage.setList(SalaryItemBO.convert2itemSobListDTO(salaryItemList, expressFormulas, sysSalaryItemPOS)); } return dtoPage; } - /** * 获取薪资账套的薪资项目详情 *