From 979f2505861b77b8702604739486b62f1e339e76 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期二, 07 十月 2025 08:44:11 +0800
Subject: [PATCH] 联调

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  258 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 212 insertions(+), 46 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 1d0102f..af100de 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -71,6 +71,10 @@
     private ManLocDetlService manLocDetlService;
     @Autowired
     private ManLocDetlMapper manLocDetlMapper;
+    @Autowired
+    private MatBarcodeService matBarcodeService;
+    @Autowired
+    private AdjDetlService adjDetlService;
 
 
     @Override
@@ -110,7 +114,8 @@
             // 鐢熸垚鍏ュ簱閫氱煡妗�
             List<DetlDto> detlDtos = new ArrayList<>();
             param.getCombMats().forEach(elem -> {
-                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getProType(), elem.getTemp2(), elem.getOutOrderNo());
+                detlDto.setMemo(detlDto.getMemo());
                 if (DetlDto.has(detlDtos, detlDto)) {
                     DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                     assert one != null;
@@ -126,8 +131,28 @@
                 if (Cools.isEmpty(mat)) {
                     throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
                 }
+                //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭�
+                MatBarcode matBarcode = new MatBarcode();
+                MatBarcode mb = matBarcodeService.selectbyMatnr(detlDto.getMatnr());
+                if (mb != null){
+                    if (!mb.getZpallet().equals(param.getBarcode())){
+                        throw new CoolException(detlDto.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�");
+                    }
+                }else {
+                    matBarcode.setZpallet(param.getBarcode());//鎵樼洏鐮�
+                    matBarcode.setMatnr(mat.getMatnr());//鐗╂枡鍙�
+                    matBarcode.setMaktx(mat.getMaktx());//鐗╂枡鍚嶇О
+                    matBarcode.setSpecs(mat.getSpecs());//瑙勬牸
+                    matBarcode.setModel(mat.getModel());//鍨嬪彿
+                    if (!matBarcodeService.insert(matBarcode)) {
+                        throw new CoolException("鐗╂枡涓庢墭鐩樼粦瀹氬け璐�");
+                    }
+                }
                 WaitPakin waitPakin = new WaitPakin();
                 waitPakin.sync(mat);
+                waitPakin.setProType(detlDto.getProType());
+                waitPakin.setTemp2(detlDto.getTemp2());
+                waitPakin.setOutOrderNo(detlDto.getOutOrderNo());
                 waitPakin.setBatch(detlDto.getBatch());
                 waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
                 waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
@@ -137,6 +162,7 @@
                 waitPakin.setAppeTime(now);
                 waitPakin.setModiUser(userId);
                 waitPakin.setModiTime(now);
+                waitPakin.setMemo(detlDto.getMemo());
                 if (!waitPakinService.insert(waitPakin)) {
                     throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
                 }
@@ -144,55 +170,72 @@
             // 鍏宠仈缁勬墭
         } else {
 
-                Order order = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", param.getOrderNo()));
-                if (Cools.isEmpty(order) || order.getSettle() > 2) {
-                    throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+            Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", param.getOrderNo()));
+            if (Cools.isEmpty(order) || order.getSettle() > 2) {
+                throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�");
+            }
+            // 鐢熸垚鍏ュ簱閫氱煡妗�
+            List<DetlDto> detlDtos = new ArrayList<>();
+            param.getCombMats().forEach(elem -> {
+
+                // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
+                //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() );
+                OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId());
+                if (elem.getAnfme() > orderDetl.getEnableQty()) {
+                    throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
                 }
-                // 鐢熸垚鍏ュ簱閫氱煡妗�
-                List<DetlDto> detlDtos = new ArrayList<>();
-                param.getCombMats().forEach(elem -> {
+                // 淇敼璁㈠崟浣滀笟鏁伴噺
+                if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) {
+                    throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+                }
 
-                    // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
-                    //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() );
-                    OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId());
-                    if (elem.getAnfme() > orderDetl.getEnableQty()) {
-                        throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+                Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+                if (Cools.isEmpty(mat)) {
+                    throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+                }
+                //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭�
+                MatBarcode matBarcode = new MatBarcode();
+                MatBarcode mb = matBarcodeService.selectbyMatnr(orderDetl.getMatnr());
+                if (mb != null){
+                    if (!mb.getZpallet().equals(param.getBarcode())){
+                        throw new CoolException(orderDetl.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�");
                     }
-                    // 淇敼璁㈠崟浣滀笟鏁伴噺
-                    if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) {
-                        throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触");
+                }else {
+                    matBarcode.setZpallet(param.getBarcode());//鎵樼洏鐮�
+                    matBarcode.setMatnr(mat.getMatnr());//鐗╂枡鍙�
+                    matBarcode.setMaktx(mat.getMaktx());//鐗╂枡鍚嶇О
+                    matBarcode.setSpecs(mat.getSpecs());//瑙勬牸
+                    matBarcode.setModel(mat.getModel());//鍨嬪彿
+                    if (!matBarcodeService.insert(matBarcode)) {
+                        throw new CoolException("鐗╂枡涓庢墭鐩樼粦瀹氬け璐�");
                     }
+                }
+                WaitPakin waitPakin = new WaitPakin();
+                waitPakin.sync(mat);
+                waitPakin.setOrderNo(order.getOrderNo());   // 鍗曟嵁缂栧彿
+                waitPakin.setBatch(orderDetl.getBatch());     // 搴忓垪鐮�
+                waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+                waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+                waitPakin.setAnfme(elem.getAnfme());  // 鏁伴噺
+                waitPakin.setStatus("Y");    // 鐘舵��
+                waitPakin.setAppeUser(userId);
+                waitPakin.setAppeTime(now);
+                waitPakin.setModiUser(userId);
+                waitPakin.setModiTime(now);
 
-                    Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
-                    if (Cools.isEmpty(mat)) {
-                        throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
-                    }
-                    WaitPakin waitPakin = new WaitPakin();
-                    waitPakin.sync(mat);
-                    waitPakin.setOrderNo(order.getOrderNo());   // 鍗曟嵁缂栧彿
-                    waitPakin.setBatch(orderDetl.getBatch());     // 搴忓垪鐮�
-                    waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
-                    waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
-                    waitPakin.setAnfme(elem.getAnfme());  // 鏁伴噺
-                    waitPakin.setStatus("Y");    // 鐘舵��
-                    waitPakin.setAppeUser(userId);
-                    waitPakin.setAppeTime(now);
-                    waitPakin.setModiUser(userId);
-                    waitPakin.setModiTime(now);
+                waitPakin.setBatch(orderDetl.getBatch());
+                waitPakin.setSPgNO(orderDetl.getSPgNO());
+                waitPakin.setOutOrderNo(orderDetl.getOutOrderNo());
+                waitPakin.setProType(orderDetl.getProType());
+                waitPakin.setLuHao(orderDetl.getLuHao());
+                waitPakin.setPacking(orderDetl.getPacking());
+                if (!waitPakinService.insert(waitPakin)) {
+                    throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+                }
+            });
 
-                    waitPakin.setBatch(orderDetl.getBatch());
-                    waitPakin.setSPgNO(orderDetl.getSPgNO());
-                    waitPakin.setOutOrderNo(orderDetl.getOutOrderNo());
-                    waitPakin.setProType(orderDetl.getProType());
-                    waitPakin.setLuHao(orderDetl.getLuHao());
-                    waitPakin.setPacking(orderDetl.getPacking());
-                    if (!waitPakinService.insert(waitPakin)) {
-                        throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
-                    }
-                });
-
-                orderService.updateSettle(order.getId(), 2L, userId);
-          }
+            orderService.updateSettle(order.getId(), 2L, userId);
+        }
 
     }
 
@@ -366,7 +409,8 @@
 //                Mat analyse = MatUtils.analyseMat(elem.getMatnr());
 //                // 鏉$爜銆佺墿鏂欎唬鐮併�佸簭鍒楀彿銆佹暟閲�
 //                DetlDto detlDto = new DetlDto(elem.getMatnr(), analyse.getMatnr(), analyse.getBarcode(), elem.getAnfme());
-////                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
+
+    /// /                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
 //                if (DetlDto.has(detlDtos, detlDto)) {
 //                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
 //                    assert one != null;
@@ -491,7 +535,6 @@
 //
 //        }
 //    }
-
     @Override
     @Transactional
     public void pakoutByOrder(JSONObject param, Long userId) {
@@ -630,4 +673,127 @@
             throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
         }
     }
+
+
+    @Override
+    @Transactional
+    public void adjustNew(MobileAdjustParam param, Boolean re, Long userId) {
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+        if (Cools.isEmpty(wrkMast)) {
+            throw new CoolException("鎵樼洏鐮�:" + param.getBarcode() + " 鏃犳湁鏁堝伐浣滄。");
+        }
+
+
+        List<CombParam.CombMat> combMats = param.getCombMats();
+        String recordRecordLog = "鎵樼洏鐮�" + param.getBarcode() + "鐩樼偣璁板綍锛�";
+        AdjDetl adjDetl = new AdjDetl();
+        adjDetl.setAppeTime(new Date());
+        adjDetl.setAppeUser(userId);
+        adjDetl.setModiTime(new Date());
+        adjDetl.setModiUser(userId);
+        adjDetl.setLocNo(wrkMast.getSourceLocNo());
+
+        for (CombParam.CombMat wrkDetl : combMats) {
+            WrkDetl wrkDetlOld = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>()
+                            .eq("wrk_no", wrkMast.getWrkNo())
+                            .eq("matnr", wrkDetl.getMatnr())
+//                    .eq("batch",Cools.isEmpty(wrkDetl.getBatch())?"":wrkDetl.getBatch())
+            );
+
+
+            adjDetl.setMatnr(wrkDetl.getMatnr());
+            adjDetl.setBatch(wrkDetl.getBatch());
+            adjDetl.setAdjQty(wrkDetl.getAnfme());
+
+            if (Cools.isEmpty(wrkDetlOld)) {
+                WrkDetl detl = new WrkDetl();
+                detl.sync(wrkDetl);
+                detl.setWrkNo(wrkMast.getWrkNo());
+                detl.setZpallet(wrkMast.getBarcode());
+                wrkDetlService.insert(detl);
+                recordRecordLog = recordRecordLog + "\n" + "鏂板涓�鏉℃槑缁�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鏁伴噺锛�" + wrkDetl.getAnfme();
+                adjDetl.setOriQty(0.0);
+                adjDetlService.insert(adjDetl);
+
+            } else if (wrkDetlOld.getAnfme() != wrkDetl.getAnfme()) {
+                wrkDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getWrkNo(), wrkDetl.getMatnr(), wrkDetl.getBatch());
+                recordRecordLog = recordRecordLog + "\n" + "鏇存柊涓�鏉℃槑缁�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鍘熸暟閲忥細" + wrkDetlOld.getAnfme() + "\t鏂版暟閲忥細" + wrkDetl.getAnfme();
+                adjDetl.setOriQty(wrkDetlOld.getAnfme());
+                adjDetlService.insert(adjDetl);
+
+            } else if (wrkDetlOld.getAnfme() == wrkDetl.getAnfme()) {
+                recordRecordLog = recordRecordLog + "\n" + "涓�鏉℃槑缁嗕繚鎸佷笉鍙�:" + "\t鍟嗗搧缂栧彿锛�" + wrkDetl.getMatnr() + "\t鎵瑰彿锛�" + wrkDetl.getBatch() + "\t鏁伴噺锛�" + wrkDetlOld.getAnfme();
+                continue;
+            } else {
+                throw new CoolException("鎵樼洏鐮�:" + param.getBarcode() + " 鏈煡寮傚父锛岃鑱旂郴绠$悊鍛�");
+            }
+        }
+        log.info(recordRecordLog);
+    }
+
+    @Override
+    public void combToWms(WaitPakin waitPakin) {
+        // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+//        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+//                eq("zpallet", waitPakin.getBarcode()).eq("io_status", "N")) > 0) {
+//            throw new CoolException(waitPakin.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+//        }
+
+        if (waitPakin.getBarcode().length() != 8) {
+            throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + waitPakin.getBarcode());
+        }
+        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", waitPakin.getBarcode()));
+        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", waitPakin.getBarcode()));
+        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getBarcode()));
+        if (countLoc > 0 || countWrk > 0) {
+            throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + waitPakin.getBarcode());
+        }
+
+        Date now = new Date();
+        // 鐢熸垚鍏ュ簱閫氱煡妗�
+        List<DetlDto> detlDtos = new ArrayList<>();
+        Mat byId = matService.selectById(waitPakin.getModiUser());
+        DetlDto detlDto = new DetlDto(byId.getMatnr(), waitPakin.getBatch(), waitPakin.getAnfme(), waitPakin.getProType(), waitPakin.getTemp2(), waitPakin.getOutOrderNo());
+            detlDto.setMemo(detlDto.getMemo());
+            if (DetlDto.has(detlDtos, detlDto)) {
+                DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
+                assert one != null;
+                one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+            } else {
+                detlDtos.add(detlDto);
+            }
+
+
+        for (DetlDto dto : detlDtos) {
+            Mat mat = matService.selectByMatnr(dto.getMatnr());
+            if (Cools.isEmpty(mat)) {
+                throw new CoolException(dto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+            }
+            //鏍¢獙褰撳墠鐗╂枡涓庢墭鐩樼粦瀹氫俊鎭槸鍚︽纭�
+            MatBarcode mb = matBarcodeService.selectbyMatnr(dto.getMatnr());
+            if (mb != null){
+                if (!mb.getZpallet().equals(waitPakin.getBarcode())){
+                    throw new CoolException(detlDto.getMatnr() + "璇ョ墿鏂欎笌鍏朵粬鎵樼洏缁戝畾锛岃鍏堣В缁�");
+                }
+            }
+            WaitPakin waitPakin1 = new WaitPakin();
+            waitPakin1.sync(mat);
+            waitPakin1.setProType(dto.getProType());
+            waitPakin1.setTemp2(dto.getTemp2());
+            waitPakin1.setOutOrderNo(dto.getOutOrderNo());
+            waitPakin1.setBatch(dto.getBatch());
+            waitPakin1.setZpallet(waitPakin.getBarcode());   // 鎵樼洏鐮�
+            waitPakin1.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+            waitPakin1.setAnfme(dto.getAnfme());  // 鏁伴噺
+            waitPakin1.setStatus("Y");    // 鐘舵��
+            waitPakin1.setAppeUser(waitPakin.getAppeUser());
+            waitPakin1.setAppeTime(now);
+            waitPakin1.setModiUser(waitPakin.getAppeUser());
+            waitPakin1.setModiTime(now);
+            waitPakin1.setMemo(detlDto.getMemo());
+            if (!waitPakinService.insert(waitPakin1)) {
+                throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+            }
+        }
+    }
 }

--
Gitblit v1.9.1