From 1367d13c3e57d1ea15fb172be0f2089e41601cc5 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期五, 12 十二月 2025 15:57:38 +0800
Subject: [PATCH] Merge branch 'jsxswms' of http://47.97.1.152:5880/r/zy-asrs into jsxswms

---
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  142 ++++++++++++++++++++++++++--------------------
 1 files changed, 80 insertions(+), 62 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 28662ed..afa3d1e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -656,6 +656,7 @@
                 waitPakin.setAnfme(detlDto.getAnfme());
                 waitPakin.setThreeCode(detlDto.getThreeCode());
                 waitPakin.setStatus("Y");
+                waitPakin.setSuppCode(detlDto.getStandby1());
                 waitPakin.setStandby1(detlDto.getStandby1());
                 waitPakin.setStandby2(detlDto.getStandby2());
                 waitPakin.setStandby3(detlDto.getStandby3());
@@ -1331,23 +1332,13 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R OutCallAgv(AgvCallParams params, Long userId) {
+        BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_IN_CACHE.type));
 
-        BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
-                .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-                .eq("dev_no", params.getTarSite()));
-        if (Objects.isNull(station)) {
-            throw new CoolException("璇锋鏌ョ珯鐐逛俊鎭紒");
-        }
-
-        /** 鑾峰彇鍏ュ簱鏈�鏃╃殑涓�鏉℃暟鎹� **/
+        /**鑾峰彇鍏ュ簱鏈�鏃╃殑涓�鏉℃暟鎹�**/
         List<LocCache> locCaches = locCacheService.selectList(new EntityWrapper<LocCache>()
                 .eq("loc_sts", LocStsType.LOC_STS_TYPE_F.type)
+                .eq("area_id", basAreas.getId())
                 .eq("frozen", 0)
-                .in("loc_no", new EntityWrapper<LocDetl>()
-                        .setSqlSelect("DISTINCT loc_no")
-                        .in("matnr", new EntityWrapper<Mat>()
-                                .setSqlSelect("matnr")
-                                .eq("tag_id", station.getCtnType())))
                 .orderDesc(Arrays.asList("sort", "first_time")));
 
         if (locCaches.isEmpty()) {
@@ -1355,9 +1346,8 @@
         }
 
         for (LocCache locCache : locCaches) {
-            // 鑾峰彇缂撳瓨鍖轰俊鎭�
-            BasAreas basAreas = basAreasService.selectOne(
-                    new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_IN_CACHE.type));
+            //鑾峰彇缂撳瓨鍖轰俊鎭�
+//            BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_IN_CACHE.type));
             if (Objects.isNull(basAreas)) {
                 throw new CoolException("搴撳尯涓嶅瓨鍦紒锛�");
             }
@@ -1381,19 +1371,18 @@
 
             Mat mat = matList.stream().findFirst().get();
 
-//            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
-//                    .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-//                    .eq("ctn_type", mat.getTagId())
-//                    .eq("dev_no", params.getTarSite()));
-
-            if (mat.getTagId() != station.getCtnType().longValue()){
+            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
+                    .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
+                    .eq("ctn_type", mat.getTagId())
+                    .eq("dev_no", params.getTarSite()));
+            if (Objects.isNull(station)) {
                 continue;
             }
 
-            /** 鐢熸垚缂撳瓨鍖哄嚭搴撲换鍔� */
+            /**鐢熸垚缂撳瓨鍖哄嚭搴撲换鍔�*/
             generateCacheOutTask(station, locCache, userId);
 
-            /** 鐢熸垚绔嬪簱鍑哄簱浠诲姟 */
+            /**鐢熸垚绔嬪簱鍑哄簱浠诲姟*/
             generateCRNOutTask(station, locCache, userId);
 
             return R.ok();
@@ -1589,17 +1578,16 @@
         if (Objects.isNull(params.getBsCode())) {
             throw new CoolException("BS鐮佷笉鑳戒负绌猴紒锛�");
         }
-        Task task = taskService.selectOne(new EntityWrapper<Task>()
-                .eq("io_type", TaskIOType.PICK_OUT.type)
-                .eq("wrk_sts", 14)
-                .eq("barcode", params.getCarBarcode()));
-        if (Objects.isNull(task)) {
-            throw new CoolException("鏁版嵁閿欒锛氫换鍔′俊鎭瓨鍦紒锛�");
-        }
+//        Task task = taskService.selectOne(new EntityWrapper<Task>()
+//                .eq("io_type", TaskIOType.PICK_OUT.type)
+//                .eq("wrk_sts", 14)
+//                .eq("barcode", params.getCarBarcode()));
+//        if (Objects.isNull(task)) {
+//            throw new CoolException("鏁版嵁閿欒锛氫换鍔′俊鎭瓨鍦紒锛�");
+//        }
 
-        List<TaskDetl> taskDetl = taskDetlService.selectList(new EntityWrapper<TaskDetl>()
+        List<BasStationDetl> taskDetl = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>()
                 .eq("three_code", params.getBsCode())
-                .eq("wrk_no", task.getWrkNo())
                 .eq("zpallet", params.getCarBarcode()));
 
         if (Objects.isNull(taskDetl) || taskDetl.isEmpty()) {
@@ -1688,9 +1676,22 @@
                 throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + ", 瓒呭嚭褰撳墠鎵樼洏瑁呰浇涓婇檺锛侊紒");
             }
 
+            BasStationDetl stationDetl = basStationDetlService.selectOne(new EntityWrapper<BasStationDetl>()
+                    .eq("zpallet", param.getCarBarcode())
+                    .eq("three_code", detlDto.getThreeCode()));
+            if (Objects.isNull(stationDetl)) {
+                throw new CoolException("鏄庣粏鍐呭涓嶅瓨鍦紒锛�");
+            }
+
+            Double v = stationDetl.getAnfme() - stationDetl.getWorkQty();
+            if (detlDto.getAnfme().compareTo(v) > 0) {
+                throw new CoolException("缁勬墭涓婇檺涓猴細" + stationDetl.getAnfme() + ", 宸茬粍鎵橈細" + stationDetl.getWorkQty() + ", 杩樺彲缁勬墭锛�" + v);
+            }
+
             WaitPakin waitPakin = new WaitPakin();
             BeanUtils.copyProperties(mat, waitPakin);
             waitPakin.setBatch(detlDto.getBatch());
+            waitPakin.setType(param.getType());
             waitPakin.setZpallet(param.getBarcode());
             // 璁剧疆缁勬墭绫诲瀷
             waitPakin.setType(param.getType());
@@ -1698,6 +1699,7 @@
             waitPakin.setAnfme(detlDto.getAnfme());
             waitPakin.setThreeCode(detlDto.getThreeCode());
             waitPakin.setStatus("Y");
+            waitPakin.setSuppCode(detlDto.getStandby1());
             waitPakin.setStandby1(detlDto.getStandby1());
             waitPakin.setStandby2(detlDto.getStandby2());
             waitPakin.setStandby3(detlDto.getStandby3());
@@ -1711,6 +1713,20 @@
             if (!waitPakinService.insert(waitPakin)) {
                 throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
             }
+
+            Double v1 = stationDetl.getWorkQty() + detlDto.getAnfme();
+            stationDetl.setWorkQty(v1);
+
+            if (!basStationDetlService.updateById(stationDetl)) {
+                throw new CoolException("绔欑偣鏄庣粏淇敼澶辫触");
+            }
+
+            if (v1.compareTo(stationDetl.getWorkQty()) >= 0) {
+                if (!basStationDetlService.deleteById(stationDetl)) {
+                    throw new CoolException("鍘熷鏁版嵁绉婚櫎澶辫触锛�");
+                }
+            }
+
         }
     }
 
@@ -1731,21 +1747,21 @@
         if (Objects.isNull(param.getStation())) {
             throw new CoolException("绔欑偣涓嶈兘涓虹┖!!");
         }
-        // TODO 淇敼缂撳瓨绔欑偣鐘舵�佸強鏁版嵁
-        Task task = taskService.selectOne(new EntityWrapper<Task>()
-                .eq("wrk_sts", 14L)
-                .eq("barcode", param.getCarBarcode()));
-        if (Objects.isNull(task)) {
-            throw new CoolException("鏁版嵁閿欒,浠诲姟涓嶅瓨鍦�!!");
-        }
-        List<TaskDetl> taskDetls = taskDetlService
-                .selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
-        if (Objects.isNull(taskDetls) || taskDetls.isEmpty()) {
-            throw new CoolException("鏁版嵁閿欒,浠诲姟鏄庣粏涓嶅瓨鍦�!!");
-        }
+//        // TODO 淇敼缂撳瓨绔欑偣鐘舵�佸強鏁版嵁
+//        Task task = taskService.selectOne(new EntityWrapper<Task>()
+//                .eq("wrk_sts", 14L)
+//                .eq("barcode", param.getCarBarcode()));
+//        if (Objects.isNull(task)) {
+//            throw new CoolException("鏁版嵁閿欒,浠诲姟涓嶅瓨鍦�!!");
+//        }
+//        List<TaskDetl> taskDetls = taskDetlService
+//                .selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo()));
+//        if (Objects.isNull(taskDetls) || taskDetls.isEmpty()) {
+//            throw new CoolException("鏁版嵁閿欒,浠诲姟鏄庣粏涓嶅瓨鍦�!!");
+//        }
 
         BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
-                .eq("dev_no", task.getStaNo()));
+                .eq("dev_no", param.getStation()));
         if (Objects.isNull(station)) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
         }
@@ -1756,12 +1772,12 @@
         }
         basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
 
-        // 浠诲姟瀹屾垚
-        task.setWrkSts(15L);
-
-        if (!taskService.updateById(task)) {
-            throw new CoolException("AGV浠诲姟瀹屾垚澶辫触!!");
-        }
+//        // 浠诲姟瀹屾垚
+//        task.setWrkSts(15L);
+//
+//        if (!taskService.updateById(task)) {
+//            throw new CoolException("AGV浠诲姟瀹屾垚澶辫触!!");
+//        }
 
         List<WaitPakin> waitPakins = waitPakinService
                 .selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
@@ -1811,9 +1827,11 @@
                 Mat mat = matService.selectByMatnr(combMat.getMatnr());
                 BeanUtils.copyProperties(mat, basStationDetl);
                 basStationDetl
+                        .setId(null)
                         .setOrderNo(orderPakin.getOrderNo())
                         .setDevNo(basStation.getDevNo())
                         .setBarcode(params.getTarBarcode())
+                        .setZpallet(params.getTarBarcode())
                         .setBatch(combMat.getBatch())
                         .setStandby1(combMat.getStandby1())
                         .setAnfme(combMat.getWorkQty().doubleValue());
@@ -1954,16 +1972,16 @@
                 throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
             }
         });
-        // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
-        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
-                .eq("zpallet", pakin.getZpallet());
-        WaitPakin setParam = new WaitPakin();
-        setParam.setLocNo(dto.getLocNo());
-        setParam.setIoStatus("Y");
-        setParam.setModiTime(now);
-        if (!waitPakinService.update(setParam, wrapper)) {
-            throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
-        }
+//        // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
+//        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
+//                .eq("zpallet", pakin.getZpallet());
+//        WaitPakin setParam = new WaitPakin();
+//        setParam.setLocNo(dto.getLocNo());
+//        setParam.setIoStatus("Y");
+//        setParam.setModiTime(now);
+//        if (!waitPakinService.update(setParam, wrapper)) {
+//            throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+//        }
         // 鏇存柊婧愮珯鐐逛俊鎭�
         sourceStaNo.setWrkNo(workNo);
         sourceStaNo.setModiTime(now);

--
Gitblit v1.9.1