package com.engine.salary.entity.salaryitem.param; import com.engine.salary.entity.base.BaseQueryParam; import com.engine.salary.enums.SalaryItemCategoryEnum; import com.engine.salary.enums.SalaryItemTypeEnum; import com.engine.salary.enums.SalaryOnOffEnum; import com.engine.salary.enums.SalaryValueTypeEnum; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import java.util.Collection; import java.util.stream.Collectors; /** * 薪资项目查询参数 *

Copyright: Copyright (c) 2022

*

Company: 泛微软件

* * @author qiantao * @version 1.0 **/ @Data @Builder @NoArgsConstructor @AllArgsConstructor public class SalaryItemSearchParam extends BaseQueryParam { //名称 private String name; //备注 private String description; /** * 属性 * * @see SalaryItemCategoryEnum */ private Integer category; /** * 分类 * * @see SalaryItemTypeEnum */ private Integer itemType; /** * 是否薪资档案引用 * * @see SalaryOnOffEnum */ private Integer useInEmployeeSalary; /** * 是否默认使用 * * @see SalaryOnOffEnum */ private Integer useDefault; /** * 取值方式 * * @see SalaryValueTypeEnum */ private Integer valueType; //需要排除的系统薪资项目@see private Collection excludeIds; public static String makeSqlWhere(SalaryItemSearchParam searchParam) { String sqlWhere = " t.delete_type = 0 "; String name = searchParam.getName(); if (StringUtils.isNotBlank(name)) { sqlWhere += " AND t.name = " + name; } String description = searchParam.getDescription(); if (StringUtils.isNotBlank(description)) { sqlWhere += " AND t.description = " + description; } Integer category = searchParam.getCategory(); if (category != null) { sqlWhere += " AND t.category = " + category; } Integer itemType = searchParam.getItemType(); if (itemType != null) { sqlWhere += " AND t.item_type = " + itemType; } Integer useInEmployeeSalary = searchParam.getUseInEmployeeSalary(); if (useInEmployeeSalary != null) { sqlWhere += " AND t.use_in_employee_salary = " + useInEmployeeSalary; } Integer useDefault = searchParam.getUseDefault(); if (useDefault != null) { sqlWhere += " AND t.use_default = " + useDefault; } Integer valueType = searchParam.getValueType(); if (valueType != null) { sqlWhere += " AND t.value_type = " + valueType; } 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; } }