|
@@ -17,9 +17,7 @@ import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.persistence.criteria.CriteriaBuilder;
|
|
|
-import javax.persistence.criteria.CriteriaQuery;
|
|
|
import javax.persistence.criteria.Predicate;
|
|
|
-import javax.persistence.criteria.Root;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
@@ -49,87 +47,84 @@ public class ManageServiceImpl implements ManageService {
|
|
|
|
|
|
@Override
|
|
|
public ApiResult list(ManageVO manageVO) {
|
|
|
- Pageable pageable = new PageRequest(manageVO.getPageNo() - 1,manageVO.getPageSize(), SortHelper.sortMap2Sort(new LinkedHashMap<String, BaseOrderEnum>(){{put("happenTime", BaseOrderEnum.DESC);}}));
|
|
|
- if(manageVO.getIsEntry()){
|
|
|
+ Pageable pageable = new PageRequest(manageVO.getPageNo() - 1,manageVO.getPageSize(), SortHelper.sortMap2Sort(new LinkedHashMap<String, BaseOrderEnum>(){{put("gmtModified", BaseOrderEnum.DESC);}}));
|
|
|
+ /* if(manageVO.getIsEntry()){
|
|
|
pageable = new PageRequest(manageVO.getPageNo() - 1, manageVO.getPageSize(), SortHelper.sortMap2Sort(new LinkedHashMap<String, BaseOrderEnum>(){{put("gmtModified", BaseOrderEnum.DESC);}}));
|
|
|
- }
|
|
|
- Specification specification = new Specification<Manage>() {
|
|
|
- @Override
|
|
|
- public Predicate toPredicate(Root<Manage> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
|
|
|
+ }*/
|
|
|
+ Specification specification = (Specification<Manage>) (root, criteriaQuery, criteriaBuilder) -> {
|
|
|
|
|
|
- List<Predicate> predicates = new ArrayList<>();
|
|
|
- if(Objects.nonNull(manageVO.getToProjectId()) && 0 != manageVO.getToProjectId()){
|
|
|
- predicates.add(criteriaBuilder.equal(root.get("toProjectId"), manageVO.getToProjectId()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getToDeptId()) && 0 != manageVO.getToDeptId()){
|
|
|
- predicates.add(criteriaBuilder.equal(root.get("toDeptId"), manageVO.getToDeptId()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getProductId()) && 0 != manageVO.getProductId()){
|
|
|
- predicates.add(criteriaBuilder.equal(root.get("productId"), manageVO.getProductId()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getProjectId()) && 0 != manageVO.getProjectId()){
|
|
|
- predicates.add(criteriaBuilder.equal(root.get("projectId"), manageVO.getProjectId()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getType())){
|
|
|
- predicates.add(criteriaBuilder.equal(root.get("type"), manageVO.getType()));
|
|
|
- }
|
|
|
- if(manageVO.getCostTypeId() != null && manageVO.getCostTypeId().size() > 0){
|
|
|
- List<Predicate> list = new ArrayList<>();
|
|
|
- if (manageVO.getCostTypeId() != null && manageVO.getCostTypeId().size() > 0) {
|
|
|
- CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("costTypeId"));
|
|
|
- for (Long id : manageVO.getCostTypeId()) {
|
|
|
- in.value(id);
|
|
|
- }
|
|
|
- list.add(in);
|
|
|
+ List<Predicate> predicates = new ArrayList<>();
|
|
|
+ if(Objects.nonNull(manageVO.getToProjectId()) && 0 != manageVO.getToProjectId()){
|
|
|
+ predicates.add(criteriaBuilder.equal(root.get("toProjectId"), manageVO.getToProjectId()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getToDeptId()) && 0 != manageVO.getToDeptId()){
|
|
|
+ predicates.add(criteriaBuilder.equal(root.get("toDeptId"), manageVO.getToDeptId()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getProductId()) && 0 != manageVO.getProductId()){
|
|
|
+ predicates.add(criteriaBuilder.equal(root.get("productId"), manageVO.getProductId()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getProjectId()) && 0 != manageVO.getProjectId()){
|
|
|
+ predicates.add(criteriaBuilder.equal(root.get("projectId"), manageVO.getProjectId()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getType())){
|
|
|
+ predicates.add(criteriaBuilder.equal(root.get("type"), manageVO.getType()));
|
|
|
+ }
|
|
|
+ if(manageVO.getCostTypeId() != null && manageVO.getCostTypeId().size() > 0){
|
|
|
+ List<Predicate> list = new ArrayList<>();
|
|
|
+ if (manageVO.getCostTypeId() != null && manageVO.getCostTypeId().size() > 0) {
|
|
|
+ CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("costTypeId"));
|
|
|
+ for (Long id : manageVO.getCostTypeId()) {
|
|
|
+ in.value(id);
|
|
|
}
|
|
|
- predicates.addAll(list);
|
|
|
+ list.add(in);
|
|
|
}
|
|
|
+ predicates.addAll(list);
|
|
|
+ }
|
|
|
// if(Objects.nonNull(manageVO.getCostTypeId()) && 0 != manageVO.getCostTypeId()){
|
|
|
// predicates.add(criteriaBuilder.equal(root.get("costTypeId"), manageVO.getCostTypeId()));
|
|
|
// }
|
|
|
- if(manageVO.getIncomeStatus() != null && manageVO.getIncomeStatus().size() > 0){
|
|
|
- List<Predicate> list = new ArrayList<>();
|
|
|
- if (manageVO.getIncomeStatus() != null && manageVO.getIncomeStatus().size() > 0) {
|
|
|
- CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("incomeStatus"));
|
|
|
- for (IncomeStatusEnum incomeStatus : manageVO.getIncomeStatus()) {
|
|
|
- in.value(incomeStatus);
|
|
|
- }
|
|
|
- list.add(in);
|
|
|
+ if(manageVO.getIncomeStatus() != null && manageVO.getIncomeStatus().size() > 0){
|
|
|
+ List<Predicate> list = new ArrayList<>();
|
|
|
+ if (manageVO.getIncomeStatus() != null && manageVO.getIncomeStatus().size() > 0) {
|
|
|
+ CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("incomeStatus"));
|
|
|
+ for (IncomeStatusEnum incomeStatus : manageVO.getIncomeStatus()) {
|
|
|
+ in.value(incomeStatus);
|
|
|
}
|
|
|
- predicates.addAll(list);
|
|
|
+ list.add(in);
|
|
|
}
|
|
|
+ predicates.addAll(list);
|
|
|
+ }
|
|
|
// if(Objects.nonNull(manageVO.getIncomeStatus())){
|
|
|
// predicates.add(criteriaBuilder.equal(root.get("incomeStatus"), manageVO.getIncomeStatus()));
|
|
|
// }
|
|
|
|
|
|
- if(Objects.nonNull(manageVO.getStatus())){
|
|
|
- predicates.add(criteriaBuilder.equal(root.get("status"), manageVO.getStatus()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getStartTime())){
|
|
|
- predicates.add(criteriaBuilder.greaterThanOrEqualTo(root.get("happenTime"), manageVO.getStartTime()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getEndTime())){
|
|
|
- predicates.add(criteriaBuilder.lessThanOrEqualTo(root.get("happenTime"), manageVO.getEndTime()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getMinAmount()) && manageVO.getMinAmount() > 0){
|
|
|
- predicates.add(criteriaBuilder.ge(root.get("amount"), manageVO.getMinAmount()));
|
|
|
- }
|
|
|
- if(Objects.nonNull(manageVO.getMaxAmount()) && manageVO.getMaxAmount() > 0){
|
|
|
- predicates.add(criteriaBuilder.le(root.get("amount"), manageVO.getMaxAmount()));
|
|
|
- }
|
|
|
- if(manageVO.getDeptIds() != null && manageVO.getDeptIds().size() > 0){
|
|
|
- List<Predicate> list = new ArrayList<>();
|
|
|
- if (manageVO.getDeptIds() != null && manageVO.getDeptIds().size() > 0) {
|
|
|
- CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("deptId"));
|
|
|
- for (Long id : manageVO.getDeptIds()) {
|
|
|
- in.value(id);
|
|
|
- }
|
|
|
- list.add(in);
|
|
|
+ if(Objects.nonNull(manageVO.getStatus())){
|
|
|
+ predicates.add(criteriaBuilder.equal(root.get("status"), manageVO.getStatus()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getStartTime())){
|
|
|
+ predicates.add(criteriaBuilder.greaterThanOrEqualTo(root.get("happenTime"), manageVO.getStartTime()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getEndTime())){
|
|
|
+ predicates.add(criteriaBuilder.lessThanOrEqualTo(root.get("happenTime"), manageVO.getEndTime()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getMinAmount()) && manageVO.getMinAmount() > 0){
|
|
|
+ predicates.add(criteriaBuilder.ge(root.get("amount"), manageVO.getMinAmount()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(manageVO.getMaxAmount()) && manageVO.getMaxAmount() > 0){
|
|
|
+ predicates.add(criteriaBuilder.le(root.get("amount"), manageVO.getMaxAmount()));
|
|
|
+ }
|
|
|
+ if(manageVO.getDeptIds() != null && manageVO.getDeptIds().size() > 0){
|
|
|
+ List<Predicate> list = new ArrayList<>();
|
|
|
+ if (manageVO.getDeptIds() != null && manageVO.getDeptIds().size() > 0) {
|
|
|
+ CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("deptId"));
|
|
|
+ for (Long id : manageVO.getDeptIds()) {
|
|
|
+ in.value(id);
|
|
|
}
|
|
|
- predicates.addAll(list);
|
|
|
+ list.add(in);
|
|
|
}
|
|
|
- return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
+ predicates.addAll(list);
|
|
|
}
|
|
|
+ return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
};
|
|
|
Long count = manageRepository.count(specification);
|
|
|
if (count == 0) {
|