From dda441bc8f2141c0020b946bfe1547a4ba7faf8c Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期五, 02 九月 2022 14:37:57 +0800
Subject: [PATCH] 更新

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

diff --git a/src/main/java/com/whyc/service/ProductBomHistoryService.java b/src/main/java/com/whyc/service/ProductBomHistoryService.java
index 93e1a30..9be9c5c 100644
--- a/src/main/java/com/whyc/service/ProductBomHistoryService.java
+++ b/src/main/java/com/whyc/service/ProductBomHistoryService.java
@@ -331,20 +331,20 @@
     }
 
     /**
-     * 瀵规瘮:
-     *  鐜版湁鏁版嵁搴撶粨鏋勪笅,鏃犳硶瀵规瘮鐩稿悓鐗╂枡鍙风殑宸紓 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);
+        //鏌ヨ涓や釜鐗堟湰瀵瑰簲鐨刡om鏈�鏂板皬鐗堟湰
+        List<ProductBomHistory> baseBomHistoryList = getLatestBomListByProductId(preProductId);
+        List<ProductBomHistory> bomHistoryList = getLatestBomListByProductId(productId);
+
+        //List<ProductBomHistory> diffList = new LinkedList<>();
         List<ProductBomHistory> addList = new LinkedList<>();
         List<ProductBomHistory> deleteList = new LinkedList<>();
-        //閫氳繃鐗╂枡缂栫爜瀹氫綅,瀵规瘮瀛楁:鐗╂枡鍨嬪彿/鏁伴噺/鏉愯川/鏂欏帤/琛ㄩ潰澶勭悊/鐢熶骇鍟�/澶囨敞
+        //閫氳繃鐗╂枡缂栫爜瀹氫綅,瀵规瘮瀛楁:鐗╂枡鍨嬪彿/鏁伴噺/鏉愯川/鏂欏帤/琛ㄩ潰澶勭悊/鐢熶骇鍟�/澶囨敞,鏃犳硶瀹炵幇,鐗╂枡娌℃湁鍘嗗彶璁板綍
         /*baseBomHistoryList.forEach(baseBom->{
             bomHistoryList.forEach(bom->{
                 if(bom.getSubCode().equals(baseBom.getSubCode())){
@@ -356,25 +356,30 @@
                 }
             });
         });*/
-        List<String> baseCodeList = baseBomHistoryList.stream().map(ProductBomHistory::getSubCode).collect(Collectors.toList());
-        List<String> codeList = bomHistoryList.stream().map(ProductBomHistory::getSubCode).collect(Collectors.toList());
+        List<Integer> baseCodeList = baseBomHistoryList.stream().map(ProductBomHistory::getMaterialId).collect(Collectors.toList());
+        List<Integer> codeList = bomHistoryList.stream().map(ProductBomHistory::getMaterialId).collect(Collectors.toList());
         bomHistoryList.forEach(bom->{
-            if(!baseCodeList.contains(bom.getSubCode())){
+            if(!baseCodeList.contains(bom.getMaterialId())){
                 addList.add(bom);
             }
         });
 
         baseBomHistoryList.forEach(baseBom->{
-            if(!codeList.contains(baseBom.getSubCode())){
+            if(!codeList.contains(baseBom.getMaterialId())){
                 deleteList.add(baseBom);
             }
         });
         return new Response().setII(1,addList,deleteList,"瀵规瘮瀹屾垚");
     }
 
-    private List<ProductBomHistory> getListByProductId(int productId) {
+    /**鍏宠仈鏌ヨ鍒板叿浣撶殑bom鍐呯墿鏂欎俊鎭�*/
+    private List<ProductBomHistory> getLatestBomListByProductId(int productId) {
         QueryWrapper<ProductBomHistory> query = Wrappers.query();
-        query.eq("product_id",productId);
-        return mapper.selectList(query);
+        query.select("max(sub_e_version) as sub_e_version").eq("product_id",productId);
+        Integer latestSubVersion = mapper.selectOne(query).getSubEVersion();
+
+        //QueryWrapper<ProductBomHistory> query2 = Wrappers.query();
+        //query2.eq("product_id",productId).le("sub_s_version",latestSubVersion).ge("sub_e_version",latestSubVersion);
+        return mapper.getBomListByProductIdAndSubVersion(productId,latestSubVersion);
     }
 }

--
Gitblit v1.9.1