浏览代码

根据企业uu和原厂型号cmpCode接口,去掉同一企业下同一个人相同原厂型号的不同物料的记录

dongbw 8 年之前
父节点
当前提交
5bc0e2345c
共有 1 个文件被更改,包括 15 次插入2 次删除
  1. 15 2
      src/main/java/com/uas/ps/product/service/impl/ProductUsersServiceImpl.java

+ 15 - 2
src/main/java/com/uas/ps/product/service/impl/ProductUsersServiceImpl.java

@@ -24,7 +24,9 @@ import javax.persistence.criteria.Root;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
+import java.util.HashSet;
 import java.util.List;
 import java.util.List;
+import java.util.Set;
 
 
 /**
 /**
  * Created by hejq on 2017-11-08.
  * Created by hejq on 2017-11-08.
@@ -207,16 +209,27 @@ public class ProductUsersServiceImpl implements ProductUsersService {
      */
      */
     @Override
     @Override
     public List<ProductUsers> getProductUsersByEnUUAndCmpCode(final Long enUU, final String cmpCode) {
     public List<ProductUsers> getProductUsersByEnUUAndCmpCode(final Long enUU, final String cmpCode) {
-        return productUsersDao.findAll(new Specification<ProductUsers>() {
+        List<ProductUsers> productUsersList = productUsersDao.findAll(new Specification<ProductUsers>() {
             @Override
             @Override
             public Predicate toPredicate(Root<ProductUsers> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
             public Predicate toPredicate(Root<ProductUsers> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                 final PredicateFactory<ProductUsers> factory = new PredicateFactory<>();
                 final PredicateFactory<ProductUsers> factory = new PredicateFactory<>();
                 factory.add(PredicateUtils.ne("enuu", enUU, false));
                 factory.add(PredicateUtils.ne("enuu", enUU, false));
-                factory.add(PredicateUtils.eq("product.cmpCode", cmpCode, false));
+                factory.add(PredicateUtils.and (PredicateUtils.isNotNull("product.cmpCode"), PredicateUtils.eq("product.cmpCode", cmpCode, false)));
                 query.where(factory.toPredicate(root, query, cb));
                 query.where(factory.toPredicate(root, query, cb));
                 return null;
                 return null;
             }
             }
         });
         });
+        // 去掉同一企业下同一个人相同原厂型号的不同物料的记录,保证一个原厂型号只发一条
+        List<ProductUsers> returnList = new ArrayList<>();
+        Set<String> enUUAndUserUUs = new HashSet<>();
+        for (ProductUsers productUsers : productUsersList) {
+            String receiverInfo = productUsers.getEnuu().toString() + productUsers.getUseruu().toString();
+            if (!enUUAndUserUUs.contains(receiverInfo)) {
+                returnList.add(productUsers);
+                enUUAndUserUUs.add(receiverInfo);
+            }
+        }
+        return returnList;
     }
     }
 
 
     /**
     /**