From 83b51a5a0774ea8ecb9a06304af3b956a21307c8 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期六, 08 三月 2025 09:06:55 +0800
Subject: [PATCH] CUT库条码T开头,截取后10位

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java |  192 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 146 insertions(+), 46 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 134d238..fe95e86 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,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wms.asrs.entity.*;
@@ -60,6 +61,12 @@
     @Autowired
     private WaveService waveService;
     @Autowired
+    private WaveLogService waveLogService;
+    @Autowired
+    private CacheSiteService cacheSiteService;
+    @Autowired
+    WaveDetlLogService waveDetlLogService;
+    @Autowired
     private WaveDetlService waveDetlService;
     @Autowired
     private CacheSiteMapper cacheSiteMapper;
@@ -74,6 +81,12 @@
     private WaveSeedLogService waveSeedLogService;
     @Autowired
     private OrderDetlLogService orderDetlLogService;
+
+    @Autowired
+    private PlatformDetlService platformDetlService;
+    @Autowired
+    private PlatformDetlLogService platformDetlLogService;
+
 
 
     @Override
@@ -207,7 +220,6 @@
             }
             //淇敼璁㈠崟鐘舵�佷负宸插畬鎴�
             order.setOrderSettle(OrderSettleType.COMPLETE.val());
-
             OrderLog orderLog = new OrderLog();
             BeanUtils.copyProperties(order, orderLog);
             if (!orderLogService.save(orderLog)) {
@@ -225,6 +237,8 @@
         detls.forEach(delt ->{
             OrderDetlLog detlLog = new OrderDetlLog();
             BeanUtils.copyProperties(delt, detlLog);
+            detlLog.setQty(delt.getWorkQty());
+            detlLog.setWorkQty(0.0);
             detlLogs.add(detlLog);
         });
 
@@ -249,10 +263,11 @@
                 .eq(PickSheet::getDeleted, 0)
                 .eq(PickSheet::getStatus, 1)
         );
-        BeanUtils.copyProperties(pickSheet, pickDetlDto);
-        if (Objects.isNull(pickDetlDto)) {
-            throw new CoolException("瀵硅薄澶嶅埗澶辫触锛侊紒");
+        if (Objects.isNull(pickSheet)) {
+            throw new CoolException("鎷h揣鍗曚笉瀛樺湪锛侊紒");
         }
+        BeanUtils.copyProperties(pickSheet, pickDetlDto);
+
         List<PickSheetDetl> sheetDetls = pickSheetDetlService.list(new LambdaQueryWrapper<PickSheetDetl>()
                 .eq(PickSheetDetl::getPickId, pickSheet.getId())
                 .eq(PickSheetDetl::getStatus, 1)
@@ -292,8 +307,8 @@
                     throw new CoolException("鏁版嵁閿欒锛侊紒");
                 }
                 //鏇存柊閿佸畾搴撳瓨
-                BigDecimal workQty = BigDecimal.valueOf(detl.getAnfme()).subtract(pickDetl.getAnfme());
-                detl.setWorkQty(workQty.doubleValue());
+//                BigDecimal workQty = BigDecimal.valueOf(detl.getAnfme()).subtract(pickDetl.getAnfme());
+                detl.setWorkQty(0.0);
                 //璁$畻缁撴灉灏忎簬绛変簬闆讹紝绉诲嚭搴撳瓨鏄庣粏
                 BigDecimal qty = BigDecimal.valueOf(detl.getAnfme()).subtract(pickDetl.getAnfme());
                 detl.setAnfme(qty.doubleValue());
@@ -316,7 +331,7 @@
                         .set(Loc::getBarcode, null)
                         .set(Loc::getUpdateTime, new Date())
                         .set(Loc::getLocStsId, LocStsType.O.val()));
-                if (update) {
+                if (!update) {
                     throw new CoolException("搴撳瓨鏇存柊澶辫触锛侊紒 ");
                 }
             }
@@ -376,9 +391,17 @@
             if (Objects.isNull(order)) {
                 throw new CoolException("缁戝畾璁㈠崟涓嶅瓨鍦紒锛�");
             }
-            siteNo.setOrderNo(order.getOrderNo()).setOrderId(order.getId()).setSiteStatus(CacheSiteStatusType.R.id);
+            siteNo.setOrderNo(order.getOrderNo()).setOrderId(order.getId()).setSiteStatus(CacheSiteStatusType.R.id).setBarcode(param.get("barcode").toString());
             if (cacheSiteMapper.updateById(siteNo) < 1) {
                 throw new CoolException("璁㈠崟鎾浣嶇粦瀹氬け璐ワ紒锛�" );
+            }
+
+            int update = waveSeedMapper.update(new LambdaUpdateWrapper<WaveSeed>()
+                    .eq(WaveSeed::getOrderNo, order.getOrderNo())
+                    .set(WaveSeed::getSiteId, siteNo.getId())
+                    .set(WaveSeed::getSiteNo, siteNo.getSiteNo()));
+            if (update < 1) {
+                throw new CoolException("鎾绔欑偣鏇存柊澶辫触锛侊紒");
             }
         } else {
             if (StringUtil.isNullOrEmpty(siteNo.getOrderNo())) {
@@ -398,8 +421,16 @@
         if (StringUtil.isNullOrEmpty((String) params.get("orderNo"))) {
             throw new CoolException("璁㈠崟缂栫爜鍙蜂笉鑳戒负绌猴紒锛�");
         }
-        String orderId = params.get("orderNo").toString();
-        List<ShippingOrderDetlDto> waveSeeds = waveSeedMapper.selectShippingOrderDtel(orderId);
+        String orderNo = params.get("orderNo").toString();
+        Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo));
+        if (Objects.isNull(order)) {
+            throw new CoolException("璁㈠崟涓嶅瓨鍦紒锛�");
+        }
+        if (!order.getOrderType().equals(OrderType.UTC_OUT_ORDER.id)) {
+            throw new CoolException("璁㈠崟涓哄叆搴撳崟鎹紝涓嶈兘鍙戣揣锛侊紒");
+        }
+
+        List<ShippingOrderDetlDto> waveSeeds = waveSeedMapper.selectShippingOrderDtel(orderNo);
 
         return R.ok(waveSeeds);
     }
@@ -418,44 +449,43 @@
         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("璁㈠崟鏄庣粏杞巻鍙叉。澶辫触锛侊紒");
-                }
 
+        //鑾峰彇褰撳墠涓婁紶鎵�鏈夎鍗曞彿
+        Set<String> orderNoSet = params.stream().map(ShippingOrderDetlDto::getOrderNo).collect(Collectors.toSet());
+        if (orderNoSet.isEmpty()) {
+            throw new CoolException("涓诲崟淇℃伅涓嶅瓨鍦紝璇锋牳瀵瑰嚭搴撹鍗曪紒锛�");
+        }
+
+        List<Order> orderList = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getOrderNo, orderNoSet));
+        if (orderList.isEmpty()) {
+            throw new CoolException("璁㈠崟涓嶅瓨鍦紒锛�");
+        }
+
+        params.forEach(order -> {
+            OrderDetl byId = orderDetlService.getById(order.getId());
+            if (Objects.isNull(byId)) {
+                throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦紒锛�");
+            }
+            OrderDetlLog orderDetlLog = new OrderDetlLog();
+            BeanUtils.copyProperties(byId, orderDetlLog);
+            orderDetlLog.setQty(order.getWorkQty());
+            orderDetlLog.setWorkQty(0.0);
+            if (!orderDetlLogService.save(orderDetlLog)) {
+                throw new CoolException("璁㈠崟鏄庣粏杞巻鍙叉。澶辫触锛侊紒");
+            }
+
+            //瀹屽叏鎷h揣锛岃鍗曞畬鎴愬垹闄ゅ師濮嬭鍗曟槑缁�
+            //new BigDecimal(order.getAnfme()).compareTo(new BigDecimal(order.getWorkQty())) == 0
+            if (new BigDecimal(order.getAnfme()).compareTo(new BigDecimal(order.getWorkQty())) == 0) {
                 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 { //閮ㄥ垎鎷h揣
+                byId.setQty(order.getWorkQty() + byId.getQty());
+                byId.setWorkQty(0.0);
+                if (!orderDetlService.updateById(byId)) {
+                    throw new CoolException("閮ㄥ垎鎷f枡鏄庣粏鏇存柊澶辫触锛侊紒");
                 }
-            } else {
-                //todo 鍒犻櫎宸插畬鎴愭槑缁嗭紝淇濈暀鍘熷涓诲崟鍙婃湭瀹屾垚鏄庣粏
             }
 
             List<WaveSeed> waveSeeds = waveSeedMapper.selectList(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderDetlId, order.getId()));
@@ -464,11 +494,11 @@
                 ArrayList<WaveSeedLog> waveSeedLogs = new ArrayList<>();
                 waveSeeds.forEach(seed -> {
                    WaveSeedLog waveSeedLog = new WaveSeedLog();
-                   BeanUtils.copyProperties(waveSeedLog, seed);
+                   BeanUtils.copyProperties(seed, waveSeedLog);
                    waveSeedLog.setId(null);
                     waveSeedLogs.add(waveSeedLog);
                });
-                if (waveSeedLogService.saveBatch(waveSeedLogs)) {
+                if (!waveSeedLogService.saveBatch(waveSeedLogs)) {
                     throw new CoolException("娉㈡槑鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
                 }
             }
@@ -478,8 +508,78 @@
             }
         });
 
+        orderList.forEach(one -> {
+            OrderLog orderLog = new OrderLog();
+            BeanUtils.copyProperties(one, orderLog);
+            orderLog.setOrderSettle(OrderSettleType.COMPLETE.val());
 
-        return null;
+            if (!orderLogService.save(orderLog)) {
+                throw new CoolException("鍘熷璁㈠崟杞巻鍙叉。澶辫触锛侊紒");
+            }
+            //鏌ヨ褰撳墠璁㈠崟涓嬪惁杩樻湁鏄庣粏瀛樺湪
+            List<OrderDetl> orders = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderNo, one.getOrderNo()));
+            //璁㈠崟鏄庣粏涓虹┖锛屽垯鍒犻櫎涓诲崟
+            if (orders.isEmpty()) {
+                if (!orderService.remove(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, one.getOrderNo()))) {
+                    throw new CoolException("鍘熷璁㈠崟鍒犻櫎澶辫触锛侊紒");
+                }
+            } else { //涓嶄负绌猴紝淇敼璁㈠崟鐘舵�侊紝鍙噸鏂扮粍鎷�
+                one.setOrderSettle(OrderSettleType.INIT.val());
+                if (orderService.updateById(one));
+            }
+        });
+
+        Set<Long> waveIds = orderList.stream().map(Order::getWaveId).collect(Collectors.toSet());
+        if (waveIds.isEmpty()) {
+            throw new CoolException("娉㈡淇℃伅涓虹┖锛侊紒");
+        }
+        List<Wave> waves = waveService.list(new LambdaQueryWrapper<Wave>().in(Wave::getId, waveIds));
+        for (Wave wave : waves) {
+            WaveLog waveLog = new WaveLog();
+            waveLog.sync(wave);
+            waveLog.setId(null);
+            if (!waveLogService.save(waveLog)) {
+                throw new CoolException("娉㈡杞巻鍙插け璐�");
+            }
+
+            List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId()));
+            for (WaveDetl waveDetl : waveDetls) {
+                WaveDetlLog waveDetlLog = new WaveDetlLog();
+                waveDetlLog.sync(waveDetl);
+                waveDetlLog.setId(null);
+                waveDetlLog.setWaveId(waveLog.getId());
+                if (!waveDetlLogService.save(waveDetlLog)) {
+                    throw new CoolException("娉㈡鏄庣粏杞巻鍙插け璐�");
+                }
+
+                if (!waveDetlService.removeById(waveDetl.getId())) {
+                    throw new CoolException("娉㈡鏄庣粏鍒犻櫎澶辫触");
+                }
+            }
+
+            if (!waveService.removeById(wave.getId())) {
+                throw new CoolException("娉㈡鍒犻櫎澶辫触");
+            }
+        }
+
+        Set<Long> ordersSet = orderList.stream().map(Order::getId).collect(Collectors.toSet());
+        List<PlatformDetl> platDetls = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().in(PlatformDetl::getOrderId, ordersSet));
+        if (platDetls.isEmpty()) {
+            throw new CoolException("璁㈠崟淇℃伅鏈繘闆嗚揣鍖猴紒锛�");
+        }
+        ArrayList<PlatformDetlLog> platformDetls = new ArrayList<>();
+        platDetls.forEach(plat -> {
+            PlatformDetlLog detl = new PlatformDetlLog();
+            BeanUtils.copyProperties(plat, detl);
+            detl.setId(null);
+            platformDetls.add(detl);
+        });
+        //闆嗚揣鍖鸿浆鍘嗗彶妗�
+        if (!platformDetlLogService.saveBatch(platformDetls)) {
+            throw new CoolException("闆嗚揣鍖鸿鍗曡浆鍘嗗彶妗eけ璐ワ紒锛�");
+        }
+
+        return R.ok("鍙戣揣瀹屾垚锛侊紒");
     }
 
 }

--
Gitblit v1.9.1