自定义搜索
This commit is contained in:
parent
faeafbe5ad
commit
5d203b0783
|
|
@ -28,7 +28,7 @@ import java.util.List;
|
|||
public class SalaryAcctResultQueryParam extends BaseQueryParam {
|
||||
|
||||
//薪资核算记录id
|
||||
@DataCheck(require = true,message = "参数错误,薪资核算记录ID不能为空")
|
||||
@DataCheck(require = true, message = "参数错误,薪资核算记录ID不能为空")
|
||||
private Long salaryAcctRecordId;
|
||||
|
||||
//人员姓名
|
||||
|
|
@ -66,15 +66,15 @@ public class SalaryAcctResultQueryParam extends BaseQueryParam {
|
|||
private Collection<Long> salaryItemIds;
|
||||
|
||||
//其他条件
|
||||
private Collection<OtherCondition> otherConditions;
|
||||
private List<OtherCondition> otherConditions;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class OtherCondition{
|
||||
private Long itemIds;
|
||||
public static class OtherCondition {
|
||||
private Long itemId;
|
||||
private FilterEnum filter;
|
||||
private String params;
|
||||
private List<String> params;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,34 +5,35 @@ import org.apache.commons.lang3.StringUtils;
|
|||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public enum FilterEnum implements BaseEnum<String> {
|
||||
|
||||
BT("BT", "包含", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
return a -> a.contentEquals(params[0]);
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return a -> a.contentEquals(params.get(0));
|
||||
}
|
||||
},
|
||||
EQ("EQ", "等于", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
return a -> a.equals(params[0]);
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return a -> a.equals(params.get(0));
|
||||
}
|
||||
},
|
||||
NE("NE", "不等于", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
return a -> !a.equals(params[0]);
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return a -> !a.equals(params.get(0));
|
||||
}
|
||||
},
|
||||
GT("GT", "大于", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return a -> {
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params[0])) > 0;
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) > 0;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
|
@ -40,10 +41,10 @@ public enum FilterEnum implements BaseEnum<String> {
|
|||
},
|
||||
LT("LT", "小于", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return a -> {
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params[0])) < 0;
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) < 0;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
|
@ -51,10 +52,10 @@ public enum FilterEnum implements BaseEnum<String> {
|
|||
},
|
||||
GE("GE", "大于等于", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return a -> {
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params[0])) >= 0;
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) >= 0;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
|
@ -62,10 +63,10 @@ public enum FilterEnum implements BaseEnum<String> {
|
|||
},
|
||||
LE("LE", "小于等于", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return a -> {
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params[0])) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params[0])) <= 0;
|
||||
if (NumberUtils.isCreatable(a) && NumberUtils.isCreatable(params.get(0))) {
|
||||
return new BigDecimal(a).compareTo(new BigDecimal(params.get(0))) <= 0;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
|
@ -73,13 +74,13 @@ public enum FilterEnum implements BaseEnum<String> {
|
|||
},
|
||||
ISEMPTY("ISEMPTY", "为空", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return StringUtils::isEmpty;
|
||||
}
|
||||
},
|
||||
ISNOTEMPTY("ISNOTEMPTY", "包含", 1) {
|
||||
@Override
|
||||
public Predicate<String> filter(String... params) {
|
||||
public Predicate<String> filter(List<String> params) {
|
||||
return StringUtils::isNotEmpty;
|
||||
}
|
||||
};
|
||||
|
|
@ -97,7 +98,7 @@ public enum FilterEnum implements BaseEnum<String> {
|
|||
|
||||
private int labelId;
|
||||
|
||||
public abstract Predicate<String> filter(String... params);
|
||||
public abstract Predicate<String> filter(List<String> params);
|
||||
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -302,23 +302,37 @@ public class SalaryAcctResultServiceImpl extends Service implements SalaryAcctRe
|
|||
|
||||
@Override
|
||||
public PageInfo<Map<String, Object>> listPageByParam(SalaryAcctResultQueryParam queryParam) {
|
||||
// // 查询薪资核算人员(分页)
|
||||
// PageInfo<SalaryAcctEmployeePO> page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam);
|
||||
// // 查询薪资核算结果
|
||||
// List<Map<String, Object>> data = listBySalaryAcctEmployees(page.getList(), queryParam);
|
||||
// // 薪资核算结果的分页结果
|
||||
// PageInfo<Map<String, Object>> resultPage = new PageInfo<>();
|
||||
// resultPage.setList(data);
|
||||
// resultPage.setTotal(page.getTotal());
|
||||
// resultPage.setPageNum(page.getPageNum());
|
||||
// resultPage.setPageSize(page.getPageSize());
|
||||
|
||||
Collection<SalaryAcctResultQueryParam.OtherCondition> otherConditions = queryParam.getOtherConditions();
|
||||
//其他条件
|
||||
List<SalaryAcctResultQueryParam.OtherCondition> otherConditions = queryParam.getOtherConditions();
|
||||
otherConditions = new ArrayList<>();
|
||||
otherConditions.add(new SalaryAcctResultQueryParam.OtherCondition(1695204436145L, FilterEnum.LE, Arrays.asList("5000")));
|
||||
if (CollectionUtils.isNotEmpty(otherConditions)) {
|
||||
List<Long> items = SalaryEntityUtil.properties(otherConditions, SalaryAcctResultQueryParam.OtherCondition::getItemId, Collectors.toList());
|
||||
List<SalaryAcctResultPO> list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), items);
|
||||
for (int i = 0; i < otherConditions.size(); i++) {
|
||||
SalaryAcctResultQueryParam.OtherCondition otherCondition = otherConditions.get(i);
|
||||
Long itemId = otherCondition.getItemId();
|
||||
FilterEnum filter = otherCondition.getFilter();
|
||||
List<String> params = otherCondition.getParams();
|
||||
list = list.stream().filter(a -> Objects.equals(a.getSalaryItemId(), itemId)).filter(a -> filter.filter(params).test(a.getResultValue())).collect(Collectors.toList());
|
||||
}
|
||||
List<Long> salaryAcctEmpId = SalaryEntityUtil.properties(list, SalaryAcctResultPO::getSalaryAcctEmpId, Collectors.toList());
|
||||
queryParam.setIds(salaryAcctEmpId);
|
||||
}
|
||||
|
||||
List<SalaryAcctResultPO> list = listBySalaryAcctRecordIdsAndSalaryItemIds(Collections.singletonList(queryParam.getSalaryAcctRecordId()), Collections.singletonList(1695204436145L));
|
||||
list = list.stream().filter(a -> FilterEnum.LT.filter("5000").test(a.getResultValue())).collect(Collectors.toList());
|
||||
// 查询薪资核算人员(分页)
|
||||
PageInfo<SalaryAcctEmployeePO> page = getSalaryAcctEmployeeService(user).listPageByResultQueryParam(queryParam);
|
||||
// 查询薪资核算结果
|
||||
List<Map<String, Object>> data = listBySalaryAcctEmployees(page.getList(), queryParam);
|
||||
// 薪资核算结果的分页结果
|
||||
PageInfo<Map<String, Object>> resultPage = new PageInfo<>();
|
||||
resultPage.setList(data);
|
||||
resultPage.setTotal(page.getTotal());
|
||||
resultPage.setPageNum(page.getPageNum());
|
||||
resultPage.setPageSize(page.getPageSize());
|
||||
|
||||
return null;
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Reference in New Issue