119 lines
3.1 KiB
Java
119 lines
3.1 KiB
Java
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;
|
|
|
|
/**
|
|
* 薪资项目查询参数
|
|
* <p>Copyright: Copyright (c) 2022</p>
|
|
* <p>Company: 泛微软件</p>
|
|
*
|
|
* @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<Long> 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<Long> 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;
|
|
}
|
|
}
|