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/PlatformServiceImpl.java |  396 ++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 230 insertions(+), 166 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java
index cdb9aff..0e3f61e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/PlatformServiceImpl.java
@@ -1,166 +1,230 @@
-package com.zy.asrs.wms.asrs.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zy.asrs.framework.exception.CoolException;
-import com.zy.asrs.wms.asrs.entity.*;
-import com.zy.asrs.wms.asrs.entity.enums.CacheSiteStatusType;
-import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
-import com.zy.asrs.wms.asrs.entity.param.PlatformShippedParam;
-import com.zy.asrs.wms.asrs.mapper.PlatformMapper;
-import com.zy.asrs.wms.asrs.service.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-@Service("platformService")
-public class PlatformServiceImpl extends ServiceImpl<PlatformMapper, Platform> implements PlatformService {
-
-    @Autowired
-    private PlatformDetlService platformDetlService;
-    @Autowired
-    private PlatformDetlLogService platformDetlLogService;
-    @Autowired
-    private OrderService orderService;
-    @Autowired
-    private OrderDetlService orderDetlService;
-    @Autowired
-    private TaskService taskService;
-    @Autowired
-    private CacheSiteService cacheSiteService;
-    @Autowired
-    private WaveService waveService;
-    @Autowired
-    private WaveDetlService waveDetlService;
-    @Autowired
-    private WaveLogService waveLogService;
-    @Autowired
-    private WaveDetlLogService waveDetlLogService;
-
-    @Override
-    public void shipped(PlatformShippedParam param) {
-        if (param == null) {
-            throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
-        }
-
-        if (param.getPlatformId() == null) {
-            throw new CoolException("闆嗚揣鍖哄煙鍙傛暟涓嶈兘涓虹┖");
-        }
-
-        Platform platform = this.getById(param.getPlatformId());
-        if(platform == null) {
-            throw new CoolException("闆嗚揣鍖哄煙鏁版嵁涓嶅瓨鍦�");
-        }
-
-        List<PlatformDetl> detls = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().eq(PlatformDetl::getPlatformId, platform.getId()));
-        if (detls.isEmpty()) {
-            throw new CoolException("闆嗚揣鍖哄煙搴撳瓨涓虹┖");
-        }
-
-        ArrayList<Long> orderIds = new ArrayList<>();
-        for (PlatformDetl detl : detls) {
-            if (!orderIds.contains(detl.getOrderId())) {
-                orderIds.add(detl.getOrderId());
-            }
-        }
-
-        List<Order> orderList = orderService.listByIds(orderIds);
-        if(orderList.isEmpty()) {
-            throw new CoolException("璁㈠崟鏁版嵁涓嶅瓨鍦�");
-        }
-
-        ArrayList<Long> waveIds = new ArrayList<>();
-        for (Order order : orderList) {
-            waveIds.add(order.getWaveId());
-        }
-
-        if (waveIds.isEmpty()) {
-            throw new CoolException("娉㈡涓嶅瓨鍦�");
-        }
-
-        List<Task> waitTasks = taskService.selectWaitWaveOut(waveIds);
-        if (!waitTasks.isEmpty()) {
-            throw new CoolException("娉㈡瀛樺湪鏈畬鎴愪换鍔�");
-        }
-
-        for (PlatformDetl detl : detls) {
-            OrderDetl orderDetl = orderDetlService.getById(detl.getOrderDetlId());
-            orderDetl.setQty(orderDetl.getQty() + detl.getQty());
-            orderDetl.setWorkQty(orderDetl.getWorkQty() - detl.getAnfme());
-            orderDetl.setUpdateTime(new Date());
-            if (!orderDetlService.updateById(orderDetl)) {
-                throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
-            }
-        }
-
-        List<Wave> waves = waveService.listByIds(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("娉㈡鍒犻櫎澶辫触");
-            }
-        }
-
-        List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
-        for (Order order : orders) {
-            order.setOrderSettle(OrderSettleType.COMPLETE.val());
-            order.setUpdateTime(new Date());
-            if (!orderService.updateById(order)) {
-                throw new CoolException("璁㈠崟鏇存柊澶辫触");
-            }
-        }
-
-        List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getPlatformId, platform.getId()));
-        for (CacheSite cacheSite : cacheSites) {
-            if (!cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
-                cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
-                cacheSite.setOrderId(null);
-                cacheSite.setOrderNo(null);
-                cacheSite.setPlatformId(null);
-                cacheSite.setPlatformNo(null);
-                cacheSite.setUpdateTime(new Date());
-                if (!cacheSiteService.updateById(cacheSite)) {
-                    throw new CoolException("鎾绔欑偣鏇存柊澶辫触");
-                }
-            }
-        }
-
-        for (PlatformDetl detl : detls) {
-            PlatformDetlLog platformDetlLog = new PlatformDetlLog();
-            platformDetlLog.sync(detl);
-            platformDetlLog.setId(null);
-            if (!platformDetlLogService.save(platformDetlLog)) {
-                throw new CoolException("闆嗚揣鍖哄煙搴撳瓨杞巻鍙插け璐�");
-            }
-
-            if (!platformDetlService.removeById(detl.getId())) {
-                throw new CoolException("闆嗚揣鍖哄煙鍒犻櫎澶辫触");
-            }
-        }
-
-    }
-}
+package com.zy.asrs.wms.asrs.service.impl;
+
+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.enums.CacheSiteStatusType;
+import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
+import com.zy.asrs.wms.asrs.entity.param.BindPlatformParam;
+import com.zy.asrs.wms.asrs.entity.param.PlatformShippedParam;
+import com.zy.asrs.wms.asrs.mapper.PlatformMapper;
+import com.zy.asrs.wms.asrs.service.*;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+@Service("platformService")
+public class PlatformServiceImpl extends ServiceImpl<PlatformMapper, Platform> implements PlatformService {
+
+    @Autowired
+    private PlatformDetlService platformDetlService;
+    @Autowired
+    private PlatformDetlLogService platformDetlLogService;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private TaskService taskService;
+    @Autowired
+    private CacheSiteService cacheSiteService;
+    @Autowired
+    private WaveService waveService;
+    @Autowired
+    private WaveDetlService waveDetlService;
+    @Autowired
+    private WaveLogService waveLogService;
+    @Autowired
+    private WaveDetlLogService waveDetlLogService;
+    @Autowired
+    private WaveSeedService waveSeedService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void shipped(PlatformShippedParam param) {
+        if (param == null) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+        }
+
+        if (param.getPlatformId() == null) {
+            throw new CoolException("闆嗚揣鍖哄煙鍙傛暟涓嶈兘涓虹┖");
+        }
+
+        Platform platform = this.getById(param.getPlatformId());
+        if(platform == null) {
+            throw new CoolException("闆嗚揣鍖哄煙鏁版嵁涓嶅瓨鍦�");
+        }
+
+        List<PlatformDetl> detls = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().eq(PlatformDetl::getPlatformId, platform.getId()));
+        if (detls.isEmpty()) {
+            throw new CoolException("闆嗚揣鍖哄煙搴撳瓨涓虹┖");
+        }
+
+        ArrayList<Long> orderIds = new ArrayList<>();
+        for (PlatformDetl detl : detls) {
+            if (!orderIds.contains(detl.getOrderId())) {
+                orderIds.add(detl.getOrderId());
+            }
+        }
+
+        List<Order> orderList = orderService.listByIds(orderIds);
+        if(orderList.isEmpty()) {
+            throw new CoolException("璁㈠崟鏁版嵁涓嶅瓨鍦�");
+        }
+
+        ArrayList<Long> waveIds = new ArrayList<>();
+        for (Order order : orderList) {
+            waveIds.add(order.getWaveId());
+        }
+
+        if (waveIds.isEmpty()) {
+            throw new CoolException("娉㈡涓嶅瓨鍦�");
+        }
+
+        List<Task> waitTasks = taskService.selectWaitWaveOut(waveIds);
+        if (!waitTasks.isEmpty()) {
+            throw new CoolException("娉㈡瀛樺湪鏈畬鎴愪换鍔�");
+        }
+
+        for (PlatformDetl detl : detls) {
+            OrderDetl orderDetl = orderDetlService.getById(detl.getOrderDetlId());
+            orderDetl.setQty(orderDetl.getQty() + detl.getQty());
+            orderDetl.setWorkQty(orderDetl.getWorkQty() - detl.getAnfme());
+            orderDetl.setUpdateTime(new Date());
+            if (!orderDetlService.updateById(orderDetl)) {
+                throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
+            }
+        }
+
+        List<Wave> waves = waveService.listByIds(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("娉㈡鍒犻櫎澶辫触");
+            }
+        }
+
+        List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getWaveId, waveIds));
+        for (Order order : orders) {
+            order.setOrderSettle(OrderSettleType.COMPLETE.val());
+            order.setUpdateTime(new Date());
+            if (!orderService.updateById(order)) {
+                throw new CoolException("璁㈠崟鏇存柊澶辫触");
+            }
+        }
+
+        List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getPlatformId, platform.getId()));
+        for (CacheSite cacheSite : cacheSites) {
+            if (!cacheSite.getSiteStatus().equals(CacheSiteStatusType.O.id)) {
+                cacheSite.setSiteStatus(CacheSiteStatusType.O.id);
+                cacheSite.setOrderId(null);
+                cacheSite.setOrderNo(null);
+                cacheSite.setPlatformId(null);
+                cacheSite.setPlatformNo(null);
+                cacheSite.setUpdateTime(new Date());
+                if (!cacheSiteService.updateById(cacheSite)) {
+                    throw new CoolException("鎾绔欑偣鏇存柊澶辫触");
+                }
+            }
+        }
+
+        for (PlatformDetl detl : detls) {
+            PlatformDetlLog platformDetlLog = new PlatformDetlLog();
+            platformDetlLog.sync(detl);
+            platformDetlLog.setId(null);
+            if (!platformDetlLogService.save(platformDetlLog)) {
+                throw new CoolException("闆嗚揣鍖哄煙搴撳瓨杞巻鍙插け璐�");
+            }
+
+            if (!platformDetlService.removeById(detl.getId())) {
+                throw new CoolException("闆嗚揣鍖哄煙鍒犻櫎澶辫触");
+            }
+        }
+
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R bindShippingPlatform(BindPlatformParam platform) {
+        if (Objects.isNull(platform.getPlatformId())) {
+            throw new CoolException("闆嗚揣鍖烘爣璇嗕笉鑳戒负绌猴紒锛�");
+        }
+        if (Objects.isNull(platform.getOrderId())) {
+            throw new CoolException("璁㈠崟缂栫爜涓嶈兘涓虹┖锛侊紒");
+        }
+        if (Objects.isNull(platform.getWaveId())) {
+            throw new CoolException("娉㈡ID涓嶈兘涓虹┖锛侊紒");
+        }
+        Platform pl = this.getById(platform.getPlatformId());
+        if (Objects.isNull(pl)) {
+            throw new CoolException("闆嗚揣鍖轰笉瀛樺湪锛侊紒");
+        }
+        List<WaveSeed> waveSeeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getWaveId, platform.getWaveId()).eq(WaveSeed::getOrderId, platform.getOrderId()));
+        if (waveSeeds.isEmpty()) {
+            throw new CoolException("鍒嗘嫞鏄庣粏淇℃伅涓嶅瓨鍦紝鏁版嵁閿欒锛侊紒");
+        }
+        ArrayList<PlatformDetl> detls = new ArrayList<>();
+        waveSeeds.forEach(waveSeed -> {
+            PlatformDetl platformDetl = new PlatformDetl();
+            BeanUtils.copyProperties(waveSeed, platformDetl);
+            platformDetl.setPlatformId(pl.getId());
+            platformDetl.setPlatformNo(pl.getPlatformNo());
+
+            List<PlatformDetl> list = platformDetlService.list(new LambdaQueryWrapper<PlatformDetl>().eq(PlatformDetl::getTaskDetlId, waveSeed.getTaskDetlId()).eq(PlatformDetl::getOrderDetlId, waveSeed.getOrderDetlId()).eq(PlatformDetl::getMatnr, waveSeed.getMatnr()));
+            if (!list.isEmpty()) {
+                throw new CoolException("璁㈠崟宸插叆闆嗚揣鍖猴紒锛�");
+            }
+            detls.add(platformDetl);
+        });
+
+        if (!platformDetlService.saveOrUpdateBatch(detls)) {
+            throw new CoolException("闆嗚揣鍖烘槑缁嗕繚瀛樺け璐ワ紒锛�");
+        }
+
+        List<CacheSite> list = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getOrderId, platform.getOrderId()));
+        if (list.isEmpty()) {
+            throw new CoolException("璁㈠崟鏈粦瀹氭挱绉嶅簱浣嶏紝璇峰畬鎴愭嫞璐у悗锛屽啀鎵撳嵃璁㈠崟锛侊紒");
+        }
+
+        boolean update = cacheSiteService.update(new LambdaUpdateWrapper<CacheSite>()
+                .eq(CacheSite::getOrderId, platform.getOrderId())
+                .set(CacheSite::getPlatformId, pl.getId())
+                .set(CacheSite::getPlatformNo, pl.getPlatformNo()));
+
+        if (!update) {
+            throw new CoolException("鎾澧欑珯鐐圭粦瀹氶泦璐у尯澶辫触锛侊紒");
+        }
+
+        return R.ok("缁戝畾鎴愬姛锛侊紒");
+    }
+}

--
Gitblit v1.9.1