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