From 91ab1a15515c4c213b2ac4f777a7f20c3d0d59ad Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 28 三月 2025 13:49:53 +0800
Subject: [PATCH] 一个订单在每个站点检验都需要扫码入库报检,在中间站点复核继续试验之后默认自动将样品出库,且在列表中也不需要再展示出来,到最后一步复核结束反而是需要手动去出库不能自动出库,且出库之后也不需要在页面展示

---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java |   42 +++++++++++++++++++++++++++++++-----------
 1 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
index 8f6d417..f4c5291 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductServiceImpl.java
@@ -11,9 +11,11 @@
 import com.yuanchu.mom.mapper.InsOrderMapper;
 import com.yuanchu.mom.mapper.InsProductMapper;
 import com.yuanchu.mom.mapper.InsSampleMapper;
+import com.yuanchu.mom.mapper.WarehouseHistoryMapper;
 import com.yuanchu.mom.pojo.InsOrder;
 import com.yuanchu.mom.pojo.InsProduct;
 import com.yuanchu.mom.pojo.InsSample;
+import com.yuanchu.mom.pojo.WarehouseHistory;
 import com.yuanchu.mom.service.InsProductService;
 import com.yuanchu.mom.utils.QueryWrappers;
 import com.yuanchu.mom.vo.InsOrderPlanVO;
@@ -34,6 +36,8 @@
 
     private InsSampleMapper insSampleMapper;
 
+    private WarehouseHistoryMapper warehouseHistoryMapper;
+
     @Override
     public int selectOrderManDay(Integer orderId) {
         return insProductMapper.selectOrderManDay(orderId);
@@ -41,11 +45,15 @@
 
     @Override
     public int updateInspected(Integer id, String ids) {
-        InsOrder insOrder = new InsOrder();
-        insOrder.setId(id);
+        InsOrder insOrder = insOrderMapper.selectById(id);
         insOrder.setIsRevocation(1);//闇�瑕佸鏍�
         insOrder.setRevocationInsProductIds(ids);
-        return insOrderMapper.updateById(insOrder);
+        insOrderMapper.updateById(insOrder);
+        //濡傛灉鏄唴閮ㄥ崟鏃犻渶瀹℃牳鎾ら攢
+        if (insOrder.getOrderType().equals("C")) {
+            checkUpdate(id, 1);
+        }
+        return 1;
     }
 
     @Override
@@ -79,6 +87,7 @@
     @Override
     public void checkUpdate(Integer orderId, Integer state) {
         InsOrder insOrder = insOrderMapper.selectById(orderId);
+        //閫氳繃
         if (state == 1) {
             List<String> list = new ArrayList<>();
             try {
@@ -95,18 +104,29 @@
             if (insProducts.stream().map(InsProduct::getId).collect(Collectors.toList()).equals(ids)) {
                 //濡傛灉璇ユ楠屽崟涓嬬殑鎵�鏈夐」鐩叏閮ㄩ兘鎾ら攢,閭d箞杩欎釜鍗曞瓙涔熼渶瑕佹挙閿�
                 insOrder.setState(3);
+                //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺�
+                warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().in(WarehouseHistory::getInsSampleId, collect));
+                //鍏ㄩ儴鎾ら攢,鏍峰搧鍜岄」鐩笉鑳藉垹鎺�,涓嶇劧妫�楠屼笅鍗曠殑鎾ら攢娌℃湁鏁版嵁
             } else {
                 List<InsProduct> products = insProductMapper.selectBatchIds(ids);
-                //棣栧厛鏍规嵁閫夋嫨鐨勯」鐩甶d杩涜鎾ら攢椤圭洰
-                updateBatchById(products.stream().map(insProduct -> {
-                    insProduct.setState(0);
-                    return insProduct;
-                }).collect(Collectors.toList()));
+                //濡傛灉璇ユ楠屽崟鏌愪釜鏍峰搧涓嬬殑椤圭洰鍏ㄩ儴閮芥挙閿�浜�,閭d箞杩欎釜鏍峰搧鐨勫嚭鍏ュ簱璁板綍涔熼渶瑕佸垹鎺�
+                List<Integer> sampleIds = products.stream().map(InsProduct::getInsSampleId).distinct().collect(Collectors.toList());
+                //椤圭洰鍒犳帀
+                insProductMapper.deleteBatchIds(ids);
+                for (Integer sampleId : sampleIds) {
+                    Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery()
+                            .eq(InsProduct::getInsSampleId, sampleId)
+                            .eq(InsProduct::getState, 1));
+                    if (count <= 0) {
+                        //鍑哄叆搴撹褰曞叏閮ㄥ垹鎺�
+                        warehouseHistoryMapper.delete(Wrappers.<WarehouseHistory>lambdaQuery().eq(WarehouseHistory::getInsSampleId, sampleId));
+                        //瀵瑰簲鐨勬牱鍝佸垹鎺�
+                        insSampleMapper.deleteById(sampleId);
+                    }
+                }
             }
-            //insProductMapper.updateInspected(id);
         }
-        //涓嶉�氳繃
-        insOrder.setIsRevocation(0);
+        insOrder.setIsRevocation(state);
         insOrderMapper.updateById(insOrder);
 
     }

--
Gitblit v1.9.3