瀏覽代碼

调整添加个人物料的问题

yujia 7 年之前
父節點
當前提交
2e710b58fb

+ 6 - 9
src/main/java/com/uas/ps/product/controller/ProductController.java

@@ -322,15 +322,12 @@ public class ProductController {
     @ResponseBody
     public String assignPersonalProductByBatch(@RequestParam Long userUU, @RequestBody String productId) throws UnsupportedEncodingException {
         List<Long> productIds = JSONObject.parseArray(URLDecoder.decode(productId, "utf-8"), Long.class);
-        for (Long prid : productIds) {
-            try {
-                productService.assignPersonalProduct(userUU,prid);
-                logger.log("成功", "批量分配个人物料成功,物料id:" + prid, null, userUU, null, null);
-            } catch (Exception e) {
-                e.printStackTrace();
-                logger.log("失败", "批量分配个人物料失败,物料id:" + prid, null, userUU, null, null);
-            }
-
+        try {
+            productService.assignPersonalProducts(userUU, productIds);
+            logger.log("成功", "批量分配个人物料成功,物料id:" + productIds, null, userUU, null, null);
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.log("失败", "批量分配个人物料失败,物料id:" + productIds, null, userUU, null, null);
         }
         return "success";
     }

+ 9 - 0
src/main/java/com/uas/ps/product/repository/ProductUsersDao.java

@@ -35,6 +35,15 @@ public interface ProductUsersDao extends JpaSpecificationExecutor<ProductUsers>,
      */
     List<ProductUsers> findByUseruuAndPrid( Long useruu, Long prid);
 
+    /**
+     * 获取物料信息
+     * @param useruu 个人uu
+     * @param prids 物料ids
+     * @return List<ProductUsers>
+     */
+    @Query(value = "select u from ProductUsers u where u.useruu=:useruu and u.prid in (:prids)")
+    List<ProductUsers> findByUseruuAndPrids(@Param("useruu") Long useruu, @Param("prids") List<Long> prids);
+
     /**
      * 通过ERPid查询个人物料信息
      *

+ 8 - 0
src/main/java/com/uas/ps/product/service/ProductService.java

@@ -104,6 +104,14 @@ public interface ProductService {
      */
     ModelMap assignPersonalProduct(Long userUU, Long productId);
 
+    /**
+     * 批量获取个人物料
+     * @param userUU
+     * @param productIds
+     * @return
+     */
+    ModelMap assignPersonalProducts(Long userUU, List<Long> productIds);
+
     /**
      * 解除分配个人物料
      *

+ 48 - 0
src/main/java/com/uas/ps/product/service/impl/ProductServiceImpl.java

@@ -1015,6 +1015,54 @@ public class ProductServiceImpl implements ProductService {
         return map;
     }
 
+    /**
+     * 批量获取个人物料
+     *
+     * @param userUU
+     * @param productIds
+     * @return
+     */
+    @Override
+    public ModelMap assignPersonalProducts(Long userUU, List<Long> productIds) {
+        ModelMap map = new ModelMap();
+        if (CollectionUtils.isEmpty(productIds) || userUU == null) {
+            return  map;
+        } else {
+            boolean isExist = false;
+            ProductUsers productUsers1 = null;
+            Long enuu = null;
+            for (int i = productIds.size() - 1; (i >= 0) && (enuu == null); i--) {
+                Product product = productDao.findOne(productIds.get(i));
+                if (product != null) {
+                    enuu = product.getEnUU();
+                }
+            }
+            List<ProductUsers> list = new ArrayList<>();
+            List<ProductUsers> productUsers = productUsersDao.findByUseruuAndPrids(userUU, productIds);
+            for (Long productId : productIds) {
+                isExist = false;
+                for (ProductUsers productUser : productUsers) {
+                    if ((productId != null && productUser.getPrid() != null) && (productUser.getPrid().longValue() == productId.longValue())) {
+                        isExist = true;
+                        break;
+                    }
+                }
+                if (!isExist) {
+                    productUsers1 = new ProductUsers();
+                    productUsers1.setUseruu(userUU);
+                    productUsers1.setEnuu(enuu);
+                    productUsers1.setPrid(productId);
+                    productUsers1.setDate(new Date(System.currentTimeMillis()));
+                    list.add(productUsers1);
+                }
+            }
+            if (CollectionUtils.isNotEmpty(list)) {
+                productUsersDao.save(list);
+            }
+            return map;
+        }
+    }
+
     @Override
     public ModelMap disAssignPersonalProduct(Long userUU, Long productId) {
         ModelMap map = new ModelMap();