package com.engine.salary.wrapper; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.common.util.ServiceUtil; import com.engine.core.impl.Service; import com.engine.salary.component.SalaryWeaTable; import com.engine.salary.entity.salaryitem.dto.SysSalaryItemListDTO; import com.engine.salary.entity.salaryitem.param.SysSalaryItemSearchParam; import com.engine.salary.entity.salaryitem.po.SalaryItemPO; import com.engine.salary.enums.SalarySystemTypeEnum; import com.engine.salary.service.SalaryItemService; import com.engine.salary.service.SysSalaryItemService; import com.engine.salary.service.impl.SalaryItemServiceImpl; import com.engine.salary.service.impl.SysSalaryItemServiceImpl; import com.engine.salary.util.SalaryEntityUtil; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import weaver.hrm.User; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; /** * 系统薪资项目 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ @Component public class SysSalaryItemWrapper extends Service { private SalaryItemService getSalaryItemService(User user) { return (SalaryItemService) ServiceUtil.getService(SalaryItemServiceImpl.class, user); } private SysSalaryItemService getSysSalaryItemService(User user) { return (SysSalaryItemService) ServiceUtil.getService(SysSalaryItemServiceImpl.class, user); } /** * 系统薪资项目列表 * * @param searchParam 高级搜索的查询条件 * @return */ public Map listPage(SysSalaryItemSearchParam searchParam) { // 查询已经添加过的系统薪资项目(已经添加过的系统薪资项目不能二次添加) List salaryItemPOS = getSalaryItemService(user).listBySystemType(SalarySystemTypeEnum.SYSTEM); Set sysSalaryItemIds = SalaryEntityUtil.properties(salaryItemPOS, SalaryItemPO::getSysSalaryItemId); searchParam.setExcludeIds(sysSalaryItemIds); SalaryWeaTable table = new SalaryWeaTable(user, SysSalaryItemListDTO.class); table.setSqlwhere(makeSqlWhere(searchParam)); table.setSqlorderby("t.id DESC"); table.setSqlprimarykey("t.id"); table.setSqlisdistinct("false"); WeaResultMsg result = new WeaResultMsg(false); result.putAll(table.makeDataResult()); result.success(); return result.getResultMap(); } private String makeSqlWhere(SysSalaryItemSearchParam searchParam) { String sqlWhere = " t.delete_type = 0 "; String name = searchParam.getName(); if (StringUtils.isNotBlank(name)) { sqlWhere += " AND t.name = " + name; } String itemType = searchParam.getItemType(); if (StringUtils.isNotBlank(itemType)) { sqlWhere += " AND t.item_type = " + itemType; } String category = searchParam.getCategory(); if (StringUtils.isNotBlank(category)) { sqlWhere += " AND t.category = " + category; } Collection excludeIds = searchParam.getExcludeIds(); if (CollectionUtils.isNotEmpty(excludeIds)) { String idsStr = excludeIds.stream().map(String::valueOf).collect(Collectors.joining(",")); sqlWhere += " AND t.id NOT IN (" + idsStr + ")"; } return sqlWhere; } // /** // * 获取高级搜索 // * // * @return // */ // public WeaSearchCondition getSearchCondition() { // WeaSearchCondition searchCondition = SalaryFormatUtil.getInstance() // .buildCondition(SysSalaryItemSearchConditionDTO.class, new SysSalaryItemSearchConditionDTO(), "sysSalaryItemCondition"); // // 其他条件不要 // searchCondition.getGroups().remove(1); // return searchCondition; // } /** * 添加系统薪资项目到自定义薪资项目列表中 * * @param ids 主键id */ public void add2SalaryItem(Collection ids) { getSysSalaryItemService(user).add2SalaryItem(ids); } }