From 81808d6e407b8b5a8d3c4d6225a3148114733f90 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 06 六月 2025 10:17:59 +0800
Subject: [PATCH] #修改出库方式为按楼层东西区出,自动选择对应出库站点

---
 src/main/java/com/zy/asrs/controller/WorkController.java |  137 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 127 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 8b6a223..a0ac33a 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -4,10 +4,7 @@
 import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.entity.WaitPakin;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.WorkService;
 import com.zy.common.model.StartupDto;
@@ -18,10 +15,7 @@
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 宸ヤ綔娴佹帴鍙f帶鍒跺櫒
@@ -86,9 +80,70 @@
         return R.ok("鍏ュ簱鍚姩鎴愬姛").add(workService.startupFullPutStore(fullStoreParam,getUserId()));
     }
 
+//    @RequestMapping("/plate/out/start")
+//    @ManagerAuth(memo = "鍑哄簱浣滀笟")
+//    public R fullStoreTakeStart(@RequestBody StockOutParam param) {
+//        workService.startupFullTakeStore(param, getUserId());
+//        return R.ok("鍑哄簱鍚姩鎴愬姛");
+//    }
+
     @RequestMapping("/plate/out/start")
     @ManagerAuth(memo = "鍑哄簱浣滀笟")
-    public R fullStoreTakeStart(@RequestBody StockOutParam param) {
+    public R fullStoreTakeStart(@RequestBody StockOutFloorParam param) {
+        if (param.getFloor() != null) {
+            List<Integer> siteIdList = new ArrayList<>();
+
+            // 绗竴姝ワ細鏍规嵁妤煎眰閫夋嫨绔欑偣闆嗗悎
+            switch (param.getFloor()) {
+                case 1: // 涓�妤硷紙涓滃尯锛�
+                    siteIdList = Arrays.asList(121, 124, 125, 126);
+                    break;
+                case 2: // 浜屾ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(221, 224, 226, 229);
+                    break;
+                case 3: // 鍥涙ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(411, 412, 413, 414);
+                    break;
+                case 4: // 涓�妤硷紙瑗垮尯锛�
+                    siteIdList = Arrays.asList(103); // 鍙湁涓�涓珯鐐�
+                    break;
+                case 5: // 浜屾ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(201, 204, 206, 209);
+                    break;
+                case 6: // 鍥涙ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(401, 402, 403, 404);
+                    break;
+                default:
+                    break;
+            }
+
+            // 绗簩姝ワ細鏍规嵁 locNo 鐨勬帓鍙凤紝缁欐瘡涓� locDetl 璁剧疆 siteId
+            if (param.getLocDetls() != null) {
+                for (StockOutFloorParam.LocDetl locDetl : param.getLocDetls()) {
+                    String locNo = locDetl.getLocNo(); // 濡傦細0312001
+                    if (locNo != null && locNo.length() >= 2) {
+                        String rowStr = locNo.substring(0, 2); // 鍓嶄袱浣嶄负鎺掑彿
+                        int row = Integer.parseInt(rowStr);
+
+                        Integer siteId = null;
+
+                        // 绔欑偣鍒嗗竷瑙勫垯
+                        if (row == 1 || row == 2) {
+                            siteId = siteIdList.size() > 0 ? siteIdList.get(0) : null;
+                        } else if (row == 3 || row == 4) {
+                            siteId = siteIdList.size() > 1 ? siteIdList.get(1) : null;
+                        } else if (row == 5 || row == 6) {
+                            siteId = siteIdList.size() > 2 ? siteIdList.get(2) : null;
+                        } else if (row == 7 || row == 8) {
+                            siteId = siteIdList.size() > 3 ? siteIdList.get(3) : null;
+                        }
+
+                        // 璁剧疆 siteId
+                        locDetl.setSiteId(siteId);
+                    }
+                }
+            }
+        }
         workService.startupFullTakeStore(param, getUserId());
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
@@ -106,9 +161,71 @@
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }
 
+//    @RequestMapping("/locCheck/out/start")
+//    @ManagerAuth(memo = "鐩樼偣鍑哄簱")
+//    public R locCheckOutStart(@RequestBody StockOutParam param) {
+//
+//        workService.locCheckOut(param, getUserId());
+//        return R.ok("鍑哄簱鍚姩鎴愬姛");
+//    }
+
     @RequestMapping("/locCheck/out/start")
     @ManagerAuth(memo = "鐩樼偣鍑哄簱")
-    public R locCheckOutStart(@RequestBody StockOutParam param) {
+    public R locCheckOutStart(@RequestBody StockOutFloorParam param) {
+        if (param.getFloor() != null) {
+            List<Integer> siteIdList = new ArrayList<>();
+
+            // 绗竴姝ワ細鏍规嵁妤煎眰閫夋嫨绔欑偣闆嗗悎
+            switch (param.getFloor()) {
+                case 1: // 涓�妤硷紙涓滃尯锛�
+                    siteIdList = Arrays.asList(121, 124, 125, 126);
+                    break;
+                case 2: // 浜屾ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(221, 224, 226, 229);
+                    break;
+                case 3: // 鍥涙ゼ锛堜笢鍖猴級
+                    siteIdList = Arrays.asList(411, 412, 413, 414);
+                    break;
+                case 4: // 涓�妤硷紙瑗垮尯锛�
+                    siteIdList = Arrays.asList(103); // 鍙湁涓�涓珯鐐�
+                    break;
+                case 5: // 浜屾ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(201, 204, 206, 209);
+                    break;
+                case 6: // 鍥涙ゼ锛堣タ鍖猴級
+                    siteIdList = Arrays.asList(401, 402, 403, 404);
+                    break;
+                default:
+                    break;
+            }
+
+            // 绗簩姝ワ細鏍规嵁 locNo 鐨勬帓鍙凤紝缁欐瘡涓� locDetl 璁剧疆 siteId
+            if (param.getLocDetls() != null) {
+                for (StockOutFloorParam.LocDetl locDetl : param.getLocDetls()) {
+                    String locNo = locDetl.getLocNo(); // 濡傦細0312001
+                    if (locNo != null && locNo.length() >= 2) {
+                        String rowStr = locNo.substring(0, 2); // 鍓嶄袱浣嶄负鎺掑彿
+                        int row = Integer.parseInt(rowStr);
+
+                        Integer siteId = null;
+
+                        // 绔欑偣鍒嗗竷瑙勫垯
+                        if (row == 1 || row == 2) {
+                            siteId = siteIdList.size() > 0 ? siteIdList.get(0) : null;
+                        } else if (row == 3 || row == 4) {
+                            siteId = siteIdList.size() > 1 ? siteIdList.get(1) : null;
+                        } else if (row == 5 || row == 6) {
+                            siteId = siteIdList.size() > 2 ? siteIdList.get(2) : null;
+                        } else if (row == 7 || row == 8) {
+                            siteId = siteIdList.size() > 3 ? siteIdList.get(3) : null;
+                        }
+
+                        // 璁剧疆 siteId
+                        locDetl.setSiteId(siteId);
+                    }
+                }
+            }
+        }
         workService.locCheckOut(param, getUserId());
         return R.ok("鍑哄簱鍚姩鎴愬姛");
     }

--
Gitblit v1.9.1