From cca40ca8d275faa8b5cc9501ce4f09b81cfbd7fc Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 05 六月 2025 16:04:38 +0800
Subject: [PATCH] 123

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |   86 +++++++++++++++++++++++++++----------------
 1 files changed, 54 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 1e5f49d..4a14836 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -17,7 +17,6 @@
 import com.zy.common.model.DetlDto;
 import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
-import com.zy.nc.entity.NccJcQilibcBarcodeflowWms;
 import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -47,6 +46,8 @@
     private BasDevpService basDevpService;
     @Autowired
     private WrkMastService wrkMastService;
+    @Autowired
+    private WorkService workService;
     @Autowired
     private WrkDetlService wrkDetlService;
     @Autowired
@@ -546,9 +547,9 @@
         if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
             throw new CoolException(BaseRes.PARAM);
         }
-        if (param.getCombMats().size() > 1) {
-            throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒");
-        }
+//        if (param.getCombMats().size() > 1) {
+//            throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒");
+//        }
         // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
         if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                 eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
@@ -558,9 +559,9 @@
         if (param.getBarcode().length() != 8) {
             throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
         }
-        if (param.getCombMats().size() > 1) {
-            throw new CoolException("涓嶅厑璁告贩鏂�===>>" + param.getBarcode());
-        }
+//        if (param.getCombMats().size() > 1) {
+//            throw new CoolException("涓嶅厑璁告贩鏂�===>>" + param.getBarcode());
+//        }
 
         int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
         int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()));
@@ -572,7 +573,7 @@
         Date now = new Date();
 
         // 鏃犲崟缁勬墭
-        if (Cools.isEmpty(param.getOrderNo())) {
+        if (Cools.isEmpty(param.getCombMats().get(0).getOrderNo())) {
 
             // 鐢熸垚鍏ュ簱閫氱煡妗�
             List<DetlDto> detlDtos = new ArrayList<>();
@@ -605,6 +606,12 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
+                waitPakin.setBoxType1(detlDto.getBoxType1());
+                waitPakin.setBoxType2(detlDto.getBoxType2());
+                waitPakin.setBoxType3(detlDto.getBoxType3());
+                waitPakin.setStandby1(detlDto.getStandby1());
+                waitPakin.setStandby2(detlDto.getStandby2());
+                waitPakin.setStandby3(detlDto.getStandby3());
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
@@ -612,28 +619,24 @@
             // 鍏宠仈缁勬墭
         } else {
 //            Order order = orderService.selectByNo(param.getOrderNo());
-            Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, param.getOrderNo());
-            if (Cools.isEmpty(order) || order.getSettle() > 2) {
-                throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
-            }
+
             // 鐢熸垚鍏ュ簱閫氱煡妗�
             List<DetlDto> detlDtos = new ArrayList<>();
 
             param.getCombMats().forEach(elem -> {
-                // TODO 涓嶈�冭檻浠g爜鏁堢巼锛屽洜涓烘棫浠g爜bug灏�
-                if (!Cools.isEmpty(elem.getVbarcode())) {
-                    NccJcQilibcBarcodeflowWms vbarcode1 = barcodeflowWmsService.selectOne(new EntityWrapper<NccJcQilibcBarcodeflowWms>().eq("vbarcode", elem.getVbarcode()));
-                    elem.setBatch(vbarcode1.getVbatchcode());
-                    elem.setMatnr(vbarcode1.getWlbm());
-                    elem.setAnfme(vbarcode1.getNastnum().doubleValue());
+                Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, elem.getOrderNo());
+                if (Cools.isEmpty(order)) {
+                    throw new CoolException("鍗曟嵁缂栧彿涓嶅瓨鍦�");
+                }
+                if (order.getSettle() > 2) {
+                    throw new CoolException("鍗曟嵁缂栧彿宸蹭綔涓氬畬鎴�");
                 }
 
                 // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
-//                OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch());
                 OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.TRUE, order.getId(), elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
                         elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3());
                 if (elem.getAnfme() > orderDetl.getEnableQty()) {
-                    throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+                    throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�,宸茬粡瓒呰繃鍗曟嵁鍏ュ簱鏁伴噺");
                 }
                 // 淇敼璁㈠崟浣滀笟鏁伴噺
 //                if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) {
@@ -643,6 +646,7 @@
                         elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
                 DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
                         elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
+                detlDto.setOrderNo(elem.getOrderNo());
                 if (DetlDto.has(detlDtos, detlDto)) {
                     DetlDto one = DetlDto.findDto(detlDtos, detlDto);
                     assert one != null;
@@ -650,6 +654,8 @@
                 } else {
                     detlDtos.add(detlDto);
                 }
+
+                OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId);
             });
             for (DetlDto detlDto : detlDtos) {
                 Mat mat = matService.selectByMatnr(detlDto.getMatnr());
@@ -658,7 +664,7 @@
                 }
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.sync(mat);
-                waitPakin.setOrderNo(order.getOrderNo());   // 鍗曟嵁缂栧彿
+                waitPakin.setOrderNo(detlDto.getOrderNo());   // 鍗曟嵁缂栧彿
                 waitPakin.setBatch(detlDto.getBatch());     // 搴忓垪鐮�
                 waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
                 waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
@@ -668,12 +674,18 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
+                waitPakin.setBoxType1(detlDto.getBoxType1());
+                waitPakin.setBoxType2(detlDto.getBoxType2());
+                waitPakin.setBoxType3(detlDto.getBoxType3());
+                waitPakin.setStandby1(detlDto.getStandby1());
+                waitPakin.setStandby2(detlDto.getStandby2());
+                waitPakin.setStandby3(detlDto.getStandby3());
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
             }
 //            orderService.updateSettle(order.getId(), 2L, userId);
-            OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId);
+
         }
 
     }
@@ -737,14 +749,14 @@
     @Override
     @Transactional
     public void adjust(MobileAdjustParam param, Long userId) {
-        BasDevp basDevp = basDevpService.selectById(param.getStaNo());
-        if (null == basDevp || basDevp.getWrkNo() == null) {
-            throw new CoolException(param.getStaNo() + "鐩樼偣绔欐棤鏁�");
-        }
-        if (!param.getWrkNo().equals(basDevp.getWrkNo())) {
-            throw new CoolException(param.getStaNo() + "鐩樼偣绔欐洿鏂帮紝璇烽噸鏂版绱�");
-        }
-        WrkMast wrkMast = wrkMastService.selectById(param.getWrkNo());
+//        BasDevp basDevp = basDevpService.selectById(param.getStaNo());
+//        if (null == basDevp || basDevp.getWrkNo() == null) {
+//            throw new CoolException(param.getStaNo() + "鐩樼偣绔欐棤鏁�");
+//        }
+//        if (!param.getWrkNo().equals(basDevp.getWrkNo())) {
+//            throw new CoolException(param.getStaNo() + "鐩樼偣绔欐洿鏂帮紝璇烽噸鏂版绱�");
+//        }
+        WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
         if (wrkMast.getWrkSts() < 10) {
             throw new CoolException("鐩樼偣鏃犳晥锛屼换鍔″凡鐩樼偣鍐嶅叆搴�");
         }
@@ -752,7 +764,10 @@
         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
 
         List<WrkDetl> list = param.getWrkDetls();
+        LocDetlAdjustParam adjustParam = new LocDetlAdjustParam();
+        List<LocDetlAdjustParam.LocDetlAdjust> locDetlAdjusts = new ArrayList<>();
 
+        adjustParam.setLocNo(wrkMast.getSourceLocNo());
         // 淇敼鏁伴噺
         Iterator<WrkDetl> iterator = wrkDetls.iterator();
         while (iterator.hasNext()) {
@@ -802,15 +817,22 @@
             if (!wrkDetlService.insert(wrkDetl)) {
                 throw new CoolException("娣诲姞" + wrkMast.getWrkNo() + "鐩樼偣浠诲姟锛�" + wrkDetl.getMatnr() + "鍟嗗搧锛�" + wrkDetl.getBatch() + "鎵瑰彿浠诲姟鏄庣粏澶辫触");
             }
-        }
 
+        }
+        List<WrkDetl> wrkDetls1 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+        for (WrkDetl wrkDetl : wrkDetls1) {
+            LocDetlAdjustParam.LocDetlAdjust locDetlAdjust = new LocDetlAdjustParam.LocDetlAdjust(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme());
+            locDetlAdjusts.add(locDetlAdjust);
+        }
         // 淇敼鐩樼偣浠诲姟涓绘。鐘舵��
-        wrkMast.setFullPlt(wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()).size() != 0 ? "Y" : "N");
+        wrkMast.setFullPlt(wrkDetls1.size() != 0 ? "Y" : "N");
         wrkMast.setModiTime(now);
         wrkMast.setModiUser(userId);
         if (!wrkMastService.updateById(wrkMast)) {
             throw new CoolException("淇敼鐩樼偣浠诲姟涓绘。澶辫触");
         }
+        adjustParam.setList(locDetlAdjusts);
+        workService.adjustLocDetl2(adjustParam, userId);
 
     }
 

--
Gitblit v1.9.1