From 0a1dceaa6478ec0081c38721be88fa6d807c6094 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期三, 17 九月 2025 14:26:34 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java |  102 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 84 insertions(+), 18 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 a2ac7e5..a496365 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,6 +1246,10 @@
                 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());
@@ -2344,53 +2348,115 @@
 
     @Override
     @Transactional
-    public R returnOrder(GroupOrderConfirmParam param) {
+    public R returnOrder(ReturnOrderConfirmParam param) {
+        if (Cools.isEmpty(param.getOrderNumber())) {
+            param.setOrderNumber("THCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd));
+        }
         // 1. 鏌ヨ鍗曟嵁鏄惁瀛樺湪
-        Order order = orderMapper.selectOrderByOrderNo(param.getGroupOrderNumber());
+        Order order = orderMapper.selectOrderByOrderNo(param.getOrderNumber());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
         if (order == null) {
             // 1.1 涓嶅瓨鍦紝鏂板缓鍗曟嵁
             order = new Order();
-            order.setOrderNo(param.getGroupOrderNumber());
-            order.setStatus(Integer.valueOf(param.getGroupStatus()));
+            order.setOrderNo(param.getOrderNumber());
+            order.setStatus(1);
             order.setOrderTime(sdf.format(new Date()));
             order.setCreateTime(new Date());
             order.setSettle(1L);
             order.setDocType(26L);
+            order.setMemo(param.getMemo());
             orderMapper.insert(order);
         } else {
             // 1.2 瀛樺湪锛屾洿鏂板崟鎹姸鎬�
-            order.setStatus(Integer.valueOf(param.getGroupStatus()));
+            if (order.getStatus() == 4) {
+                order.setStatus(2);
+            }
             orderMapper.updateById(order);
         }
-        orderDetlMapper.delete(
-                new EntityWrapper<OrderDetl>().eq("order_no", param.getGroupOrderNumber())
-        );
+
 
         // 2. 涓�涓�瀵瑰簲閬嶅巻
-        List<GroupOrderConfirmParam.PackageGroupNo> pkgList = param.getPackageGroupNos();
-        List<GroupOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers();
+        List<ReturnOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers();
 
-        int size = Math.min(pkgList.size(), volList.size()); // 闃叉瓒婄晫
-        for (int i = 0; i < size; i++) {
-            GroupOrderConfirmParam.PackageGroupNo pg = pkgList.get(i);
-            GroupOrderConfirmParam.VolumeNumber vn = volList.get(i);
+        for (int i = 0; i < volList.size(); i++) {
+            ReturnOrderConfirmParam.VolumeNumber vn = volList.get(i);
 
             // 鏌ヨ鏄惁宸插瓨鍦ㄨ detl
             OrderDetl detl = orderDetlMapper.selectByOrderNoAndPkgGroupNoAndVolumeNo(
-                    param.getGroupOrderNumber(), pg.getPackageGroupNo(), vn.getVolumeNumber()
+                    param.getOrderNumber(), param.getPackageGroupNo(), vn.getVolumeNumber()
             );
 
             if (detl == null) {
                 detl = new OrderDetl();
                 detl.setOrderId(order.getId());
-                detl.setOrderNo(param.getGroupOrderNumber());
+                detl.setOrderNo(param.getOrderNumber());
                 detl.setCreateTime(new Date());
                 detl.setAnfme(1.0);
-                detl.setBrand(pg.getPackageGroupNo());   // 鍖呰缁勫彿
+                detl.setBrand(param.getPackageGroupNo());   // 鍖呰缁勫彿
                 detl.setModel(vn.getVolumeNumber());     // 鍗峰彿
+                detl.setMemo(param.getMemo());
                 orderDetlMapper.insert(detl);
+            } else {
+                throw new RuntimeException("璇ュ崟鎹殑鍗峰彿宸插瓨鍦�," + vn.getVolumeNumber());
+            }
+        }
+
+        return R.ok("缁勮揣纭鎴愬姛");
+    }
+
+    @Override
+    @Transactional
+    public R unQualifiedOrder(UnQualifiedOrderConfirmParam param) {
+        if (Cools.isEmpty(param.getOrderNumber())) {
+            param.setOrderNumber("UQCK" + DateUtils.convert(new Date(), DateUtils.yyyyMMdd));
+        }
+        // 1. 鏌ヨ鍗曟嵁鏄惁瀛樺湪
+        Order order = orderMapper.selectOrderByOrderNo(param.getOrderNumber());
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        if (order == null) {
+            // 1.1 涓嶅瓨鍦紝鏂板缓鍗曟嵁
+            order = new Order();
+            order.setOrderNo(param.getOrderNumber());
+            order.setStatus(1);
+            order.setOrderTime(sdf.format(new Date()));
+            order.setCreateTime(new Date());
+            order.setSettle(1L);
+            order.setDocType(27L);
+            order.setMemo(param.getMemo());
+            orderMapper.insert(order);
+        } else {
+            // 1.2 瀛樺湪锛屾洿鏂板崟鎹姸鎬�
+            if (order.getStatus() == 4) {
+                order.setStatus(2);
+            }
+            orderMapper.updateById(order);
+        }
+
+
+        // 2. 涓�涓�瀵瑰簲閬嶅巻
+        List<UnQualifiedOrderConfirmParam.VolumeNumber> volList = param.getVolumeNumbers();
+
+        for (int i = 0; i < volList.size(); i++) {
+            UnQualifiedOrderConfirmParam.VolumeNumber vn = volList.get(i);
+
+            // 鏌ヨ鏄惁宸插瓨鍦ㄨ detl
+            OrderDetl detl = orderDetlMapper.selectByOrderNoAndVolumeNo(
+                    param.getOrderNumber(), vn.getVolumeNumber()
+            );
+
+            if (detl == null) {
+                detl = new OrderDetl();
+                detl.setOrderId(order.getId());
+                detl.setOrderNo(param.getOrderNumber());
+                detl.setCreateTime(new Date());
+                detl.setAnfme(1.0);
+                detl.setModel(vn.getVolumeNumber());     // 鍗峰彿
+                detl.setMemo(param.getMemo());
+                orderDetlMapper.insert(detl);
+            } else {
+                throw new RuntimeException("璇ュ崟鎹殑鍗峰彿宸插瓨鍦�," + vn.getVolumeNumber());
             }
         }
 

--
Gitblit v1.9.1