Browse Source

查询多选

wangys 5 years ago
parent
commit
ef2611bcdc

+ 52 - 8
efunbox-base/efunbox-base-api/src/main/java/cn/efunbox/manage/base/service/impl/ManageServiceImpl.java

@@ -54,18 +54,62 @@ public class ManageServiceImpl implements ManageService {
         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(manageVO.getToProjectId() != null && manageVO.getToProjectId().size() > 0){
+                List<Predicate> list = new ArrayList<>();
+                if (manageVO.getToProjectId() != null && manageVO.getToProjectId().size() > 0) {
+                    CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("toProjectId"));
+                    for (Long id : manageVO.getToProjectId()) {
+                        in.value(id);
+                    }
+                    list.add(in);
+                }
+                predicates.addAll(list);
             }
-            if(Objects.nonNull(manageVO.getToDeptId()) && 0 != manageVO.getToDeptId()){
-                predicates.add(criteriaBuilder.equal(root.get("toDeptId"), manageVO.getToDeptId()));
+//            if(Objects.nonNull(manageVO.getToProjectId()) && 0 != manageVO.getToProjectId()){
+//                predicates.add(criteriaBuilder.equal(root.get("toProjectId"), manageVO.getToProjectId()));
+//            }
+            if(manageVO.getToDeptId() != null && manageVO.getToDeptId().size() > 0){
+                List<Predicate> list = new ArrayList<>();
+                if (manageVO.getToDeptId() != null && manageVO.getToDeptId().size() > 0) {
+                    CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("toDeptId"));
+                    for (Long id : manageVO.getToDeptId()) {
+                        in.value(id);
+                    }
+                    list.add(in);
+                }
+                predicates.addAll(list);
             }
-            if(Objects.nonNull(manageVO.getProductId()) && 0 != manageVO.getProductId()){
-                predicates.add(criteriaBuilder.equal(root.get("productId"), manageVO.getProductId()));
+//            if(Objects.nonNull(manageVO.getToDeptId()) && 0 != manageVO.getToDeptId()){
+//                predicates.add(criteriaBuilder.equal(root.get("toDeptId"), manageVO.getToDeptId()));
+//            }
+            if(manageVO.getProductId() != null && manageVO.getProductId().size() > 0){
+                List<Predicate> list = new ArrayList<>();
+                if (manageVO.getProductId() != null && manageVO.getProductId().size() > 0) {
+                    CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("productId"));
+                    for (Long id : manageVO.getProductId()) {
+                        in.value(id);
+                    }
+                    list.add(in);
+                }
+                predicates.addAll(list);
             }
-            if(Objects.nonNull(manageVO.getProjectId()) && 0 != manageVO.getProjectId()){
-                predicates.add(criteriaBuilder.equal(root.get("projectId"), manageVO.getProjectId()));
+//            if(Objects.nonNull(manageVO.getProductId()) && 0 != manageVO.getProductId()){
+//                predicates.add(criteriaBuilder.equal(root.get("productId"), manageVO.getProductId()));
+//            }
+            if(manageVO.getProjectId() != null && manageVO.getProjectId().size() > 0){
+                List<Predicate> list = new ArrayList<>();
+                if (manageVO.getProjectId() != null && manageVO.getProjectId().size() > 0) {
+                    CriteriaBuilder.In<Object> in = criteriaBuilder.in(root.get("projectId"));
+                    for (Long id : manageVO.getProjectId()) {
+                        in.value(id);
+                    }
+                    list.add(in);
+                }
+                predicates.addAll(list);
             }
+//            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()));
             }

+ 4 - 4
efunbox-base/efunbox-base-api/src/main/java/cn/efunbox/manage/base/vo/ManageVO.java

@@ -22,13 +22,13 @@ public class ManageVO implements Serializable {
 
     private String deptName;
 
-    private Long productId;
+    private List<Long> productId;
 
-    private Long projectId;
+    private List<Long> projectId;
 
-    private Long toDeptId;
+    private List<Long> toDeptId;
 
-    private Long toProjectId;
+    private List<Long> toProjectId;
 
     private ManageTypeEnum type;