From 059f92c876540e505226b59d2184fdec0f9e13e7 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期五, 22 十二月 2023 14:42:52 +0800
Subject: [PATCH] 物料历史更新

---
 src/main/java/com/whyc/service/ProductService.java |   39 +++++++++++++++++++++++++++++++--------
 1 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductService.java b/src/main/java/com/whyc/service/ProductService.java
index 5ca1f8e..6cb9271 100644
--- a/src/main/java/com/whyc/service/ProductService.java
+++ b/src/main/java/com/whyc/service/ProductService.java
@@ -889,7 +889,11 @@
             List<Material> materialExistList = mService.getListByCodeAndModelList2(bomList);
             //List<String> subCodeList = materialExistList.stream().map(Material::getSubCode).collect(Collectors.toList());
             List<String> subCodeList = materialExistList.stream().map(material -> material.getSubCode()+"/"+material.getSubModel()).collect(Collectors.toList());
-            List<Material> materialList = new LinkedList<>();
+            //闇�瑕佹洿鏂板埌鐗╂枡琛ㄤ腑鐨勭墿鏂�(瀛樺湪鍥剧焊鎴栬�呭浘鐗�)
+            List<MaterialHistory> materialHistoryList = new LinkedList<>();
+            //鏂扮墿鏂�
+            List<Material> newMaterialList = new LinkedList<>();
+            //宸茬粡瀛樺湪鐨勭墿鏂�
             List<Material> materialUpdateList = new LinkedList<>();
             for (ProductBom bom : bomList) {
                 if (!subCodeList.contains(bom.getSubCode() + "/" + bom.getSubModel())) {
@@ -906,8 +910,9 @@
                     material.setUnit(bom.getUnit());
                     material.setUpUserId(userId);
 
-                    materialList.add(material);
+                    newMaterialList.add(material);
                 } else { //鐗╂枡宸茬粡瀛樺湪鐨�
+                    // 鐗╂枡鍘嗗彶琛ㄦ槸涓轰簡瀛樺偍鐗╂枡鐨勫巻鍙插浘鐗囧拰dwg鍥剧焊
                     Material material = new Material();
                     if (bom.getPictureUrl() != null) {
                         material.setPictureUrl(bom.getPictureUrl());
@@ -923,7 +928,7 @@
                 }
             }
             //瀵规柊澧炲埌鐗╂枡琛ㄤ腑鐨勭墿鏂�,鏍规嵁 鐗╂枡缂栫爜+鐗╂枡鍨嬪彿 杩涜鍘婚噸澶勭悊
-            materialList = materialList.stream().filter(distinctByKey(m->m.getSubCode()+"/"+m.getSubModel())).collect(Collectors.toList());
+            newMaterialList = newMaterialList.stream().filter(distinctByKey(m->m.getSubCode()+"/"+m.getSubModel())).collect(Collectors.toList());
 
             //姣嶆枡鏄惁瀛樺湪
             Material materialDB = mService.getByCodeAndModel(product.getParentCode(), product.getParentModel());
@@ -936,10 +941,10 @@
                 material.setStatus(1);
                 material.setUpUserId(userId);
 
-                materialList.add(material);
+                newMaterialList.add(material);
             }
-            if(materialList.size()!=0) {
-                mService.insertBatch(materialList);
+            if(newMaterialList.size()!=0) {
+                mService.insertBatch(newMaterialList);
             }
             if(materialUpdateList.size()!=0) {
                 mService.updateDwgUrlAndPicUrl(materialUpdateList);
@@ -1023,10 +1028,26 @@
                 bomHistoryList.add(bomHistory);
             });
             pbhService.insertBatch(bomHistoryList);
-
+            //鎻掑叆鍒扮墿鏂欏巻鍙茶〃鐨�,
+            // 鍖呭惈鏂扮墿鏂欏寘鍚浘绾稿浘鐗囩殑,
+            // 涔熷寘鍚棫鐗╂枡鍖呭惈鍥剧焊鍥剧墖鐨�
+            if(newMaterialList.size()>0){
+                for (Material material : newMaterialList) {
+                    //瀛樺湪鍥剧焊鎴栬�呭浘鐗�,灏辨彃鍏ュ巻鍙�
+                    if(material.getDwgUrl()!=null || material.getPictureUrl()!=null) {
+                        MaterialHistory materialHistory = new MaterialHistory();
+                        materialHistory.setPictureUrl(material.getPictureUrl());
+                        materialHistory.setProductId(productHistory.getId());
+                        materialHistory.setDwgUrl(material.getDwgUrl());
+                        materialHistory.setUpUserId(userId.intValue());
+                        materialHistory.setCreateTime(date);
+                        materialHistory.setMaterialId(material.getId());
+                        materialHistoryList.add(materialHistory);
+                    }
+                }
+            }
             if(materialUpdateList.size()>0) {
                 //鏇存柊鐗╂枡鍥剧焊鍥剧墖鐨勫悓鏃�,娣诲姞鏂扮殑鍥剧焊鍥剧墖淇℃伅鍒扮墿鏂欏巻鍙茶〃涓�
-                List<MaterialHistory> materialHistoryList = new LinkedList<>();
                 for (Material material : materialUpdateList) {
                     MaterialHistory materialHistory = new MaterialHistory();
                     materialHistory.setPictureUrl(material.getPictureUrl());
@@ -1042,6 +1063,8 @@
                     }
                     materialHistoryList.add(materialHistory);
                 }
+            }
+            if(materialHistoryList.size()>0) {
                 materialHistoryService.addBatch(materialHistoryList);
             }
         }

--
Gitblit v1.9.1