From cc6dae7468506691bfb23ca81be5e14045771bce Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 15 一月 2025 20:43:59 +0800
Subject: [PATCH] #  拍灯容器流动流程修改  发货确认功能开发 部分功能优化

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java |  103 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 98 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
index 965c041..134d238 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
@@ -2,18 +2,17 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.dto.PickSheetDetlDto;
+import com.zy.asrs.wms.asrs.entity.dto.ShippingOrderDetlDto;
 import com.zy.asrs.wms.asrs.entity.enums.*;
 import com.zy.asrs.wms.asrs.entity.enums.OrderType;
 import com.zy.asrs.wms.asrs.entity.param.BatchMergeOrdersParam;
 import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam;
 import com.zy.asrs.wms.asrs.entity.param.PakinOnShelvesParams;
-import com.zy.asrs.wms.asrs.mapper.CacheSiteMapper;
-import com.zy.asrs.wms.asrs.mapper.OrderDetlLogMapper;
-import com.zy.asrs.wms.asrs.mapper.OrderDetlMapper;
-import com.zy.asrs.wms.asrs.mapper.SeedSitesMapper;
+import com.zy.asrs.wms.asrs.mapper.*;
 import com.zy.asrs.wms.asrs.service.*;
 import com.zy.asrs.wms.system.entity.Host;
 import com.zy.asrs.wms.system.service.HostService;
@@ -69,9 +68,13 @@
     private SeedSitesMapper seedSitesMapper;
     @Autowired
     private OrderDetlMapper orderDetlMapper;
-
+    @Autowired
+    private WaveSeedMapper waveSeedMapper;
+    @Autowired
+    private WaveSeedLogService waveSeedLogService;
     @Autowired
     private OrderDetlLogService orderDetlLogService;
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -389,4 +392,94 @@
         return true;
     }
 
+    @Override
+    public R selectShippingDetl(Map<String, Object> params) {
+        //鍒ゆ柇璁㈠崟鏄惁涓虹┖
+        if (StringUtil.isNullOrEmpty((String) params.get("orderNo"))) {
+            throw new CoolException("璁㈠崟缂栫爜鍙蜂笉鑳戒负绌猴紒锛�");
+        }
+        String orderId = params.get("orderNo").toString();
+        List<ShippingOrderDetlDto> waveSeeds = waveSeedMapper.selectShippingOrderDtel(orderId);
+
+        return R.ok(waveSeeds);
+    }
+
+    /**
+     * 鍙戣揣鍗曟槑缁嗙‘璁�
+     * 1. 鍑哄簱淇敼璁㈠崟瀹屾垚鐘舵�侊紝鍒ゆ柇璁㈠崟鏄惁瀹屾垚锛屽畬鎴愬姞鍏ュ巻鍙叉。锛屾湭瀹屾垚淇敼璁㈠崟宸插畬鎴愭暟閲�
+     * 2. 鍒犻櫎璁㈠崟宸插畬鎴愭挱绉嶆槑缁嗕俊鎭�
+     * 3. 娓呴櫎闆嗚揣鍖虹粦瀹氭暟鎹�
+     * @param params
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R confirmShippingDetl(List<ShippingOrderDetlDto> params) {
+        if (params.isEmpty()) {
+            throw new CoolException("鍙戣揣鍗曟嵁鏄庣粏涓虹┖锛屼笉鍙墽琛屽彂璐ф搷浣滐紒锛�");
+        }
+        params.forEach(order -> {
+            //鍒犻櫎鍑哄簱璁㈠崟鍙婃槑缁嗭紝鍔犲叆璁㈠崟鍘嗗彶妗�
+            if (order.getAnfme() == order.getWorkQty()) { //瀹屽叏鎷h揣
+                OrderDetl byId = orderDetlService.getById(order.getId());
+                OrderDetlLog orderDetlLog = new OrderDetlLog();
+                BeanUtils.copyProperties(orderDetlLog, byId);
+                orderDetlLog.setQty(order.getWorkQty());
+                orderDetlLog.setWorkQty(0.0);
+                if (!orderDetlLogService.save(orderDetlLog)) {
+                    throw new CoolException("璁㈠崟鏄庣粏杞巻鍙叉。澶辫触锛侊紒");
+                }
+
+                if (!orderDetlService.removeById(byId)) {
+                    throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�");
+                }
+
+                //鏌ヨ褰撳墠璁㈠崟涓嬪惁杩樻湁鏄庣粏瀛樺湪
+                List<OrderDetl> orders = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderNo, order.getOrderNo()));
+
+                if (orders.isEmpty()) {
+                    Order one = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, order.getOrderNo()));
+                    if (Objects.isNull(one)) {
+                        throw new CoolException("璁㈠崟涓嶅瓨鍦紒锛�");
+                    }
+                    OrderLog orderLog = new OrderLog();
+
+                    BeanUtils.copyProperties(one, orderLog);
+
+                    if (!orderLogService.save(orderLog)) {
+                        throw new CoolException("鍘熷璁㈠崟杞巻鍙叉。澶辫触锛侊紒");
+                    }
+
+                    if (!orderService.remove(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, order.getOrderNo()))) {
+                        throw new CoolException("鍘熷璁㈠崟鍒犻櫎澶辫触锛侊紒");
+                    }
+                }
+            } else {
+                //todo 鍒犻櫎宸插畬鎴愭槑缁嗭紝淇濈暀鍘熷涓诲崟鍙婃湭瀹屾垚鏄庣粏
+            }
+
+            List<WaveSeed> waveSeeds = waveSeedMapper.selectList(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderDetlId, order.getId()));
+            //fixme 璁㈠崟鏄庣粏鏈挱绉嶏紝榛樿鍙彂璐�
+            if (!waveSeeds.isEmpty()) {
+                ArrayList<WaveSeedLog> waveSeedLogs = new ArrayList<>();
+                waveSeeds.forEach(seed -> {
+                   WaveSeedLog waveSeedLog = new WaveSeedLog();
+                   BeanUtils.copyProperties(waveSeedLog, seed);
+                   waveSeedLog.setId(null);
+                    waveSeedLogs.add(waveSeedLog);
+               });
+                if (waveSeedLogService.saveBatch(waveSeedLogs)) {
+                    throw new CoolException("娉㈡槑鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
+                }
+            }
+            //鍒犻櫎鎾鏄庣粏淇℃伅
+            if (waveSeedMapper.deleteByIds(waveSeeds) < 1) {
+                throw new CoolException("鎾鏄庣粏鍒犻櫎鎼虹▼锛侊紒");
+            }
+        });
+
+
+        return null;
+    }
+
 }

--
Gitblit v1.9.1