From 9320540f7b6735d065fe3428484d5d47765dc160 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期四, 30 十月 2025 12:54:41 +0800
Subject: [PATCH] gwms申请入库时判断卷号/箱号是否存在

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |   72 +++++++++++++++++++++++++++++++-----
 1 files changed, 62 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index f68352e..bb4b011 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1227,7 +1227,7 @@
 
     @Override
     @Transactional
-    public R gwmsGenerateInventory(GwmsGenerateInventoryDto param) {
+    public synchronized R gwmsGenerateInventory(GwmsGenerateInventoryDto param) {
 
         if (Cools.isEmpty(param)) {
             throw new CoolException("璇锋眰鍙傛暟鏈夎锛�" + param);
@@ -1246,9 +1246,50 @@
                 HashMap<String, Object> xx = new HashMap<>();
                 List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList();
                 for (GwmsGenerateInventoryDto.MatList obj : matList) {
+                    int barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("brand", obj.getPackageGroupNo()));
+                    if (barcodeCount2 > 0) {
+                        throw new CoolException("鍖呰缁勫彿宸插瓨鍦ㄥ伐浣滄。锛堣緭閫佺嚎锛夛細" + obj.getPackageGroupNo());
+                    }
                     int zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("brand", obj.getPackageGroupNo()));
                     if (zpalletCount2 > 0) {
                         throw new CoolException("鍖呰缁勫彿宸插瓨鍦細" + obj.getPackageGroupNo());
+                    }
+
+                    // 鍗峰彿
+                    HashMap<String, Object> yy = new HashMap<>();
+                    // 绠卞彿
+                    HashMap<String, Object> zz = new HashMap<>();
+                    List<GwmsGenerateInventoryDto.Rolls> rolls = obj.getRolls();
+                    for(GwmsGenerateInventoryDto.Rolls roll :rolls) {
+                        barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("model", roll.getRollNo()));
+                        if (barcodeCount2 > 0) {
+                            throw new CoolException("鍗峰彿宸插瓨鍦ㄥ伐浣滄。锛堣緭閫佺嚎锛夛細" + roll.getRollNo());
+                        }
+                        zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("model", roll.getRollNo()));
+                        if (zpalletCount2 > 0) {
+                            throw new CoolException("鍗峰彿宸插瓨鍦ㄥ簱瀛橈細" + roll.getRollNo());
+                        }
+
+                        barcodeCount2 = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("unit", roll.getBoxNo()));
+                        if (barcodeCount2 > 0) {
+                            throw new CoolException("绠卞彿宸插瓨鍦ㄥ伐浣滄。锛堣緭閫佺嚎锛夛細" + roll.getBoxNo());
+                        }
+                        zpalletCount2 = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("unit", roll.getBoxNo()));
+                        if (zpalletCount2 > 0) {
+                            throw new CoolException("绠卞彿宸插瓨鍦ㄥ簱瀛橈細" + roll.getBoxNo());
+                        }
+
+                        if (yy.get(roll.getRollNo()) != null) {
+                            throw new CoolException("鏄庣粏涓瓨鍦�2鏉$浉鍚岀殑鍗峰彿锛�" + roll.getRollNo());
+                        } else {
+                            yy.put(roll.getRollNo(), roll.getRollNo());
+                        }
+
+                        if (zz.get(roll.getBoxNo()) != null) {
+                            throw new CoolException("鏄庣粏涓瓨鍦�2鏉$浉鍚岀殑绠卞彿锛�" + roll.getBoxNo());
+                        } else {
+                            zz.put(roll.getBoxNo(), roll.getBoxNo());
+                        }
                     }
                     if (xx.get(obj.getPackageGroupNo()) != null) {
                         throw new CoolException("鏄庣粏涓瓨鍦�2鏉$浉鍚岀殑鍖呰缁勫彿锛�" + obj.getPackageGroupNo());
@@ -1531,7 +1572,7 @@
         return "鍑哄簱缁撴灉涓婃姤鎴愬姛";
     }
 
-    private void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
+    public void ckjgsbPushMes(WrkMast wrkMast, List<WrkDetl> wrkDetls) {
         GwmsGenerateInventoryDto gwmsGenerateInventoryDto = new GwmsGenerateInventoryDto();
         gwmsGenerateInventoryDto.setWarehouseType(4);
         gwmsGenerateInventoryDto.setBarcode(wrkMast.getBarcode());
@@ -2361,10 +2402,13 @@
             order.setCreateTime(new Date());
             order.setSettle(1L);
             order.setDocType(26L);
+            order.setMemo(param.getMemo());
             orderMapper.insert(order);
         } else {
             // 1.2 瀛樺湪锛屾洿鏂板崟鎹姸鎬�
-            order.setStatus(2);
+            if (order.getStatus() == 4) {
+                order.setStatus(2);
+            }
             orderMapper.updateById(order);
         }
 
@@ -2388,7 +2432,10 @@
                 detl.setAnfme(1.0);
                 detl.setBrand(param.getPackageGroupNo());   // 鍖呰缁勫彿
                 detl.setModel(vn.getVolumeNumber());     // 鍗峰彿
+                detl.setMemo(param.getMemo());
                 orderDetlMapper.insert(detl);
+            } else {
+                throw new RuntimeException("璇ュ崟鎹殑鍗峰彿宸插瓨鍦�," + vn.getVolumeNumber());
             }
         }
 
@@ -2397,7 +2444,7 @@
 
     @Override
     @Transactional
-    public R unqualifiedOrder(ReturnOrderConfirmParam param) {
+    public R unQualifiedOrder(UnQualifiedOrderConfirmParam param) {
         if (Cools.isEmpty(param.getOrderNumber())) {
             param.setOrderNumber("UQCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd));
         }
@@ -2414,23 +2461,26 @@
             order.setCreateTime(new Date());
             order.setSettle(1L);
             order.setDocType(27L);
+            order.setMemo(param.getMemo());
             orderMapper.insert(order);
         } else {
             // 1.2 瀛樺湪锛屾洿鏂板崟鎹姸鎬�
-            order.setStatus(2);
+            if (order.getStatus() == 4) {
+                order.setStatus(2);
+            }
             orderMapper.updateById(order);
         }
 
 
         // 2. 涓�涓�瀵瑰簲閬嶅巻
-        List<ReturnOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers();
+        List<UnQualifiedOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers();
 
         for (int i = 0; i < volList.size(); i++) {
-            ReturnOrderConfirmParam.VolumeNumber vn = volList.get(i);
+            UnQualifiedOrderConfirmParam.VolumeNumber vn = volList.get(i);
 
             // 鏌ヨ鏄惁宸插瓨鍦ㄨ detl
-            OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo(
-                    param.getOrderNumber(), param.getPackageGroupNo(), vn.getVolumeNumber()
+            OrderDetl detl = orderDetlMapper.selectByOrderNoAndVolumeNo(
+                    param.getOrderNumber(), vn.getVolumeNumber()
             );
 
             if (detl == null) {
@@ -2439,9 +2489,11 @@
                 detl.setOrderNo(param.getOrderNumber());
                 detl.setCreateTime(new Date());
                 detl.setAnfme(1.0);
-                detl.setBrand(param.getPackageGroupNo());   // 鍖呰缁勫彿
                 detl.setModel(vn.getVolumeNumber());     // 鍗峰彿
+                detl.setMemo(param.getMemo());
                 orderDetlMapper.insert(detl);
+            } else {
+                throw new RuntimeException("璇ュ崟鎹殑鍗峰彿宸插瓨鍦�," + vn.getVolumeNumber());
             }
         }
 

--
Gitblit v1.9.1