Przeglądaj źródła

新增物料导入并添加到个人产品库方法

dongbw 8 lat temu
rodzic
commit
dbd64bd323

+ 26 - 0
src/main/java/com/uas/platform/b2b/ps/ProductUtils.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2b.ps;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.b2b.core.util.ContextUtils;
 import com.uas.platform.b2b.model.Product;
 import com.uas.platform.b2b.model.ProductUsers;
@@ -11,6 +12,7 @@ import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.springframework.http.HttpStatus;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -107,6 +109,30 @@ public class ProductUtils {
         return null;
     }
 
+    /**
+     * 批量更新物料并加入个人物料库
+     *
+     * @author dongbw
+     * @param  products 要保存的物料信息
+     * @return 所有更新成功的id
+     * @throws Exception
+     */
+    public static ModelMap updateProdInfoAndAddToProductUser(List<Product> products) throws Exception {
+        ModelMap map = new ModelMap();
+        String res = HttpUtil.doPost(PRODUCT_PUBLIC_SERVICE_URL + "/product/update/addToProductUser", FlexJsonUtils.toJsonDeep(products));
+        JSONObject response = JSON.parseObject(res);
+        if ("true".equals(response.get("success"))) {
+            map.put("success", "true");
+            // 成功增加的个人产品库数量
+            map.put("result", response.get("result"));
+            return map;
+        } else if (!StringUtils.isEmpty(response.get("message"))){
+            map.put("success", "false");
+            map.put("message", response.get("message"));
+        }
+        return map;
+    }
+
 
     /**
      * 批量更新个人物料

+ 19 - 14
src/main/java/com/uas/platform/b2b/service/impl/ProductUsersServiceImpl.java

@@ -190,7 +190,7 @@ public class ProductUsersServiceImpl implements ProductUsersService {
         if (headerRow != null) {
             for (int r = 3; r <= rowNum; r++) {
                 Row row = sheet.getRow(r);
-                if (row != null) {
+                if (row != null && row.getCell(1) != null && row.getCell(1).getCellType() != Cell.CELL_TYPE_BLANK) {
                     total++;
                     ProductTemp temp = new ProductTemp();
                     temp.setPr_import_id(importId);
@@ -200,7 +200,7 @@ public class ProductUsersServiceImpl implements ProductUsersService {
                     temp.setPr_ispurchase(isPurchase);
                     temp.setPr_sourceapp("B2B");
                     // 物料编号
-                    if (row.getCell(0) != null) {
+                    if (row.getCell(0) != null && row.getCell(0).getCellType() != Cell.CELL_TYPE_BLANK) {
                         row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
                         temp.setPr_code(row.getCell(0).getStringCellValue().trim());
                     } else {
@@ -341,20 +341,25 @@ public class ProductUsersServiceImpl implements ProductUsersService {
             System.out.println("取匹配后结果:" + (System.currentTimeMillis() - start));
             start = System.currentTimeMillis();
             try {
-                // 更新物料
-                List<Long> idList = ProductUtils.paginationUpdate(products);
+                // 更新物料并插入个人物料
+                ModelMap map = ProductUtils.updateProdInfoAndAddToProductUser(products);
                 System.out.println("更新物料:" + (System.currentTimeMillis() - start));
-                start = System.currentTimeMillis();
-                if (!CollectionUtils.isEmpty(idList)) {
-                    // 更新个人物料
-                    List<ProductUsers> productUsersList = productTempDao.getNotMatchedProductUsers(importId,
-                            temps.get(0).getPr_enuu(), temps.get(0).getPr_useruu(), idList);
-                    if (!CollectionUtils.isEmpty(productUsersList)) {
-                        ProductUtils.updateProductUsersByBatch(productUsersList);
-                        modelMap.put("success", productUsersList.size());
-                        System.out.println("更新个人物料:" + (System.currentTimeMillis() - start));
-                    }
+                if ("true".equals(map.get("success"))) {
+                    modelMap.put("success", null != map.get("result") ? map.get("result") : 0);
+                } else {
+                    modelMap.put("error", "物料添加失败(" + null != map.get("message") ? map.get("message") : "" + ")");
                 }
+//                start = System.currentTimeMillis();
+//                if (!CollectionUtils.isEmpty(idList)) {
+//                    // 更新个人物料
+//                    List<ProductUsers> productUsersList = productTempDao.getNotMatchedProductUsers(importId,
+//                            temps.get(0).getPr_enuu(), temps.get(0).getPr_useruu(), idList);
+//                    if (!CollectionUtils.isEmpty(productUsersList)) {
+//                        ProductUtils.updateProductUsersByBatch(productUsersList);
+//                        modelMap.put("success", productUsersList.size());
+//                        System.out.println("更新个人物料:" + (System.currentTimeMillis() - start));
+//                    }
+//                }
             } catch (Exception e) {
                 modelMap.put("error", "物料添加失败(" + e.getMessage() + ")");
             }