From bdfe4b740175f29858c870d710ec6ff5d4dc6ef0 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 17 四月 2025 21:18:16 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/controller/AgvMobileController.java |   85 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 79 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMobileController.java b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
index 4db9799..4d03ca6 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMobileController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMobileController.java
@@ -77,7 +77,7 @@
     @RequestMapping("/pick/again/auth")
     @ManagerAuth(memo = "鍐嶆鎷f枡")
     public R pickAgain(@RequestBody PickParam pickParams) {
-        if (pickParams == null ) {
+        if (pickParams == null) {
             return R.error("缂哄皯鍙傛暟");
         }
         agvMobileService.pickAgain(pickParams, 1l);
@@ -157,11 +157,61 @@
         }
         log.info("鍚姩鍏ュ簱,{}", JSON.toJSONString(params));
         // 缁勬墭
+        if (params.getBarcode().startsWith("31")) {
+            //绠卞3鍏ュ簱锛岃揣鏋朵笂鍙兘瑁呬竴绉�
+            if (!Cools.isEmpty(params.getCombParams())) {
+                if (params.getCombParams().size() > 1) {
+                    return R.error("鍗婃垚鍝佺澹冲叆搴擄紝璐ф灦涓婂彧鑳借涓�绉嶇墿鏂�");
+                } else {
+                    List<CombParam.CombMat> combMats = params.getCombParams().get(0).getCombMats();
+                    if (!Cools.isEmpty(combMats) && combMats.size() > 1) {
+                        return R.error("鍗婃垚鍝佺澹冲叆搴擄紝璐ф灦涓婂彧鑳借涓�绉嶇墿鏂�");
+                    }
+                }
+
+            }
+        }
         params.getCombParams().forEach(combParam -> {
             agvMobileService.comb(combParam, getUserId());
         });
         params.setContainerType(Short.valueOf(params.getContainerCode().substring(0, 2)));
         workService.emptyPlateIn(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false);
+
+        return R.ok("鐢熸垚宸ヤ綔妗f垚鍔�");
+    }
+
+    /*
+    鍚姩鍏ュ簱锛岀粍鎵� + 鐢熸垚宸ヤ綔妗�,涓昏鐢ㄤ簬鍚稿涓�妤肩殑鍏ュ簱
+    */
+    @PostMapping("/start/pakin/auth/v2")
+    @Synchronized
+    @Transactional
+    @ManagerAuth(memo = "鍚姩鍏ュ簱v2")
+    public R startPakinV2(@RequestBody AgvMobileStartPakin params) {
+        if (params == null) {
+            return R.error("缂哄皯鍙傛暟");
+        }
+        log.info("鍚姩鍏ュ簱v2,{}", JSON.toJSONString(params));
+        // 缁勬墭
+        if (params.getBarcode().startsWith("30")) {
+            //绠卞3鍏ュ簱锛岃揣鏋朵笂鍙兘瑁呬竴绉�
+            if (!Cools.isEmpty(params.getCombParams())) {
+                if (params.getCombParams().size() > 1) {
+                    return R.error("绠卞3鍏ュ簱锛岃揣鏋朵笂鍙兘瑁呬竴绉嶇墿鏂�");
+                } else {
+                    List<CombParam.CombMat> combMats = params.getCombParams().get(0).getCombMats();
+                    if (!Cools.isEmpty(combMats) && combMats.size() > 1) {
+                        return R.error("绠卞3鍏ュ簱锛岃揣鏋朵笂鍙兘瑁呬竴绉嶇墿鏂�");
+                    }
+                }
+
+            }
+        }
+        params.getCombParams().forEach(combParam -> {
+            agvMobileService.comb(combParam, getUserId());
+        });
+        params.setContainerType(Short.valueOf(params.getContainerCode().substring(0, 2)));
+        workService.emptyPlateInV2(params.getDevNo(), params.getContainerCode(), params.getContainerType(), getUserId(), false, params.getFactory());
 
         return R.ok("鐢熸垚宸ヤ綔妗f垚鍔�");
     }
@@ -177,8 +227,11 @@
             return R.error("缂哄皯鍙傛暟");
         }
         for (AgvMobileStartParam.Pda pda : params.getPad()) {
+            if (pda == null || Cools.isEmpty(pda.getContainerCode())) {
+                return R.error("缂哄皯瀹瑰櫒鍙傛暟");
+            }
             pda.setContainerType(Short.valueOf(pda.getContainerCode().substring(0, 2)));
-            workService.emptyPlateIn(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false);
+            workService.emptyPlateInV3(pda.getDevNo(), pda.getContainerCode(), pda.getContainerType(), getUserId(), false);
         }
 
         return R.ok();
@@ -376,9 +429,19 @@
 
         if (!Cools.isEmpty(locNo)) {
             listByLocNo = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
+            if (listByLocNo != null) {
+                for (AgvLocDetl agvLocDetl : listByLocNo) {
+                    agvLocDetl.setCount(agvLocDetl.getAnfme());
+                }
+            }
         }
-        if (!Cools.isEmpty(locNo)) {
+        if (!Cools.isEmpty(containerCode)) {
             listByContainerCode = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("supp_code", containerCode));
+            if (listByContainerCode != null) {
+                for (AgvLocDetl agvLocDetl : listByContainerCode) {
+                    agvLocDetl.setCount(agvLocDetl.getAnfme());
+                }
+            }
         }
 
         Map<String, Object> result = new HashMap<String, Object>();
@@ -416,7 +479,7 @@
 
         AgvLocMast agvLocMastByContainerCode = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("barcode", containerCode));
         AgvLocMast agvLocMastByLocNo = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo));
-        if (agvLocMastByLocNo==null){
+        if (agvLocMastByLocNo == null) {
             return R.error("搴撲綅涓嶅瓨鍦�");
         }
         String barcode1 = agvLocMastByLocNo.getBarcode();
@@ -525,6 +588,7 @@
     @Transactional
     @ManagerAuth(memo = "璋冩嫧鍗曚换鍔′笅鍙�")
     @Synchronized
+    @Deprecated //涓嶇敤浜�
     public R agvLocMove(@RequestBody HashMap<String, Object> params) {
         String fl = String.valueOf(params.get("floor"));
         short floor = (short) Integer.parseInt(fl.substring(0, 1));
@@ -594,14 +658,14 @@
             String locNo = map.get("locNo");
             String barcode = map.get("suppCode");
             AgvWrkMast source_loc_no = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("source_loc_no", locNo));
-            if (!Cools.isEmpty(source_loc_no)) {
+            if (!Cools.isEmpty(source_loc_no) && source_loc_no.getWrkSts() < 204) {
                 throw new CoolException("褰撳墠搴撲綅宸茬敓鎴愪换鍔★紒");
             }
             AgvLocMast locMastS = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", locNo).eq("loc_sts", "F"));
             if (Cools.isEmpty(locMastS)) {
                 throw new CoolException("褰撳墠搴撲綅闈炲湪搴撶姸鎬侊紒搴撲綅鍙�=" + locNo);
             }
-            AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), 30, floor);
+            AgvWrkMast wrkMast = createWrkMast(ioType, 22L, locNo, "", barcode, now, getUserId(), Integer.parseInt(barcode.substring(0, 2)), floor);
             // 鍚屾璋冩嫧鍗�
             long flowId = snowflakeIdWorker.nextId();
             List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo));
@@ -808,6 +872,15 @@
         return R.ok();
     }
 
+    @PostMapping("/hand/control/processed/v2")
+    @Transactional
+    @ManagerAuth(memo = "纭鍔犲伐瀹屾垚V2")
+    @Synchronized
+    public R processedV2(@RequestBody AgvMobileStartPakin param) {
+        agvMobileService.processedV2(param, getUserId());
+        return R.ok();
+    }
+
 
     public static void main(String[] args) {
         List<AgvLocDetl> agvLocDetls1 = new ArrayList<>();

--
Gitblit v1.9.1