Browse Source

个人物料库批量导入方法修改

dongbw 7 years ago
parent
commit
16f1c8321d

+ 17 - 4
src/main/java/com/uas/ps/product/controller/ProductUsersController.java

@@ -3,7 +3,9 @@ package com.uas.ps.product.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.ps.entity.Product;
-import com.uas.ps.product.entity.ProductSaler;
+import com.uas.ps.entity.ProductUsers;
+import com.uas.ps.product.MessageConsumer;
+import com.uas.ps.product.repository.ProductDao;
 import com.uas.ps.product.service.ProductService;
 import com.uas.ps.product.service.ProductUsersService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +20,7 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 /**
  * 用户个人产品库
@@ -34,6 +37,12 @@ public class ProductUsersController {
     @Autowired
     private ProductService productService;
 
+    @Autowired
+    private ProductDao productDao;
+
+    @Autowired
+    private MessageConsumer consumer;
+
     /**
      * 保存用户个人物料信息
      *
@@ -41,10 +50,14 @@ public class ProductUsersController {
      * @return
      */
     @RequestMapping(value = "/save", method = RequestMethod.POST)
-    public ModelMap saveProductUsers(@RequestParam("data") String data) throws UnsupportedEncodingException {
+    public ModelMap saveProductUsers(@RequestBody String data) throws UnsupportedEncodingException {
         String json = URLDecoder.decode(data, "utf-8");
-        List<ProductSaler> productSalers = JSONObject.parseArray(json, ProductSaler.class);
-        productUsersService.save(productUsersService.convertProductUsers(productSalers));
+        List<ProductUsers> productUsersList = JSONObject.parseArray(json, ProductUsers.class);
+        String batchCode = UUID.randomUUID().toString().replace("-", "");
+        productDao.setSessionVariable("B2B", batchCode, productUsersList.size());
+        productUsersService.update(productUsersList);
+        productDao.unsetSessionVariable();
+        consumer.waitResponse(batchCode);
         ModelMap map = new ModelMap();
         map.put("success", "true");
 //        logger.log("商品批次", "[" + SystemSession.getUser().getUserName() + "]通过excel导入了个人物料,数量为" + map.size());

+ 6 - 0
src/main/java/com/uas/ps/product/service/ProductUsersService.java

@@ -78,4 +78,10 @@ public interface ProductUsersService {
      * @return
      */
     List<ProductUsers> convertProductUsers(List<ProductSaler> productSalers);
+
+    /**
+     * 更新我的个人产品库方法
+     * @param productUsersList
+     */
+    void update(List<ProductUsers> productUsersList);
 }

+ 19 - 0
src/main/java/com/uas/ps/product/service/impl/ProductUsersServiceImpl.java

@@ -239,4 +239,23 @@ public class ProductUsersServiceImpl implements ProductUsersService {
         }
         return productUsersList;
     }
+
+    /**
+     * 更新我的个人产品库方法
+     *
+     * @param productUsersList 个人产品库数据
+     */
+    @Override
+    public void update(List<ProductUsers> productUsersList) {
+        List<ProductUsers> productUsers = new ArrayList<>();
+        for (ProductUsers prod : productUsersList) {
+            List<ProductUsers> existedProdUsers = productUsersDao.findByEnuuAndUseruuAndPrid(prod.getEnuu(), prod.getUseruu(), prod.getPrid());
+            if (CollectionUtils.isEmpty(existedProdUsers)) {
+                productUsers.add(prod);
+            } else {
+                productUsers.add(existedProdUsers.get(0));
+            }
+        }
+        productUsersDao.save(productUsers);
+    }
 }