From ec64b432a1e3be22918d5f1ef3cf4bb0d723ae28 Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期四, 01 九月 2022 17:30:40 +0800
Subject: [PATCH] 产品bom新增更新

---
 src/main/java/com/whyc/service/ProductBomHistoryService.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/service/ProductBomHistoryService.java b/src/main/java/com/whyc/service/ProductBomHistoryService.java
index 6c25f25..93e1a30 100644
--- a/src/main/java/com/whyc/service/ProductBomHistoryService.java
+++ b/src/main/java/com/whyc/service/ProductBomHistoryService.java
@@ -24,7 +24,9 @@
 import java.io.*;
 import java.util.ArrayList;
 import java.util.Date;
+import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class ProductBomHistoryService {
@@ -327,4 +329,52 @@
     public void insertBatch(List<ProductBomHistory> bomHistoryList) {
       mapper.insertBatchSomeColumn(bomHistoryList);
     }
+
+    /**
+     * 瀵规瘮:
+     *  鐜版湁鏁版嵁搴撶粨鏋勪笅,鏃犳硶瀵规瘮鐩稿悓鐗╂枡鍙风殑宸紓 TODO 鏁版嵁搴撶粨鏋勬洿鏂�,寰呬唬鐮佷慨鏀�
+     * @param preProductId 鏃х殑鐗堟湰,浣滀负鍩哄噯
+     * @param productId 鏂扮殑浜у搧鐗堟湰
+     * @return
+     */
+    public Response compare(int preProductId, int productId) {
+        List<ProductBomHistory> baseBomHistoryList = getListByProductId(preProductId);
+        List<ProductBomHistory> bomHistoryList = getListByProductId(productId);
+        //鐜版湁鏁版嵁搴撶粨鏋�,鏃犳硶瀵规瘮鐩稿悓鐗╂枡鍙风殑宸紓
+        //List<ProductBomHistory> diffList = getListByProductId(productId);
+        List<ProductBomHistory> addList = new LinkedList<>();
+        List<ProductBomHistory> deleteList = new LinkedList<>();
+        //閫氳繃鐗╂枡缂栫爜瀹氫綅,瀵规瘮瀛楁:鐗╂枡鍨嬪彿/鏁伴噺/鏉愯川/鏂欏帤/琛ㄩ潰澶勭悊/鐢熶骇鍟�/澶囨敞
+        /*baseBomHistoryList.forEach(baseBom->{
+            bomHistoryList.forEach(bom->{
+                if(bom.getSubCode().equals(baseBom.getSubCode())){
+                    ProductBomHistory history = new ProductBomHistory();
+                    if(!bom.getSubModel().equals(baseBom.getSubModel())){
+                        String diffSubModel = "鍘熺墿鏂欏瀷鍙�:"+baseBom.getSubModel()+"/鏂扮墿鏂欏瀷鍙�:"+bom.getSubModel();
+                        history.setSubModel(diffSubModel);
+                    }
+                }
+            });
+        });*/
+        List<String> baseCodeList = baseBomHistoryList.stream().map(ProductBomHistory::getSubCode).collect(Collectors.toList());
+        List<String> codeList = bomHistoryList.stream().map(ProductBomHistory::getSubCode).collect(Collectors.toList());
+        bomHistoryList.forEach(bom->{
+            if(!baseCodeList.contains(bom.getSubCode())){
+                addList.add(bom);
+            }
+        });
+
+        baseBomHistoryList.forEach(baseBom->{
+            if(!codeList.contains(baseBom.getSubCode())){
+                deleteList.add(baseBom);
+            }
+        });
+        return new Response().setII(1,addList,deleteList,"瀵规瘮瀹屾垚");
+    }
+
+    private List<ProductBomHistory> getListByProductId(int productId) {
+        QueryWrapper<ProductBomHistory> query = Wrappers.query();
+        query.eq("product_id",productId);
+        return mapper.selectList(query);
+    }
 }

--
Gitblit v1.9.1