From d8c9b9afb41c368a08d7e05d0f624c98bf72042a Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 06 六月 2025 11:18:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/WorkController.java |  263 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 250 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index f0dc9a3..a0ac33a 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -1,17 +1,21 @@
 package com.zy.asrs.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
 import com.core.common.R;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
+import com.zy.asrs.entity.WaitPakin;
+import com.zy.asrs.entity.param.*;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.WorkService;
+import com.zy.common.model.StartupDto;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.*;
 
 /**
  * 宸ヤ綔娴佹帴鍙f帶鍒跺櫒
@@ -26,30 +30,263 @@
     private BasDevpService basDevpService;
 
     @RequestMapping("/available/put/site")
-    @ManagerAuth(memo = "鑾峰彇鏈夋晥鐨勫叆搴撶珯鐐�")
+    @ManagerAuth()
     public R availablePutSite(){
         return R.ok().add(basDevpService.getAvailableInSite());
     }
 
+    @RequestMapping("/available/empty/put/site")
+    @ManagerAuth()
+    public R availableEmptyPutSite(){
+        return R.ok().add(basDevpService.getAvailableEmptyInSite());
+    }
+
     @RequestMapping("/available/take/site")
-    @ManagerAuth(memo = "鑾峰彇鏈夋晥鐨勫嚭搴撶珯鐐�")
+    @ManagerAuth()
     public R availableTakeSite(){
-        return R.ok().add(basDevpService.getAvailableOutSite());
+        List<Map<String, Object>> result = new ArrayList<>();
+        List<Integer> outSite = basDevpService.getAvailableOutSite(101);
+        for (Integer siteId : outSite) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("siteId", siteId);
+            map.put("desc", siteId + "锛堝叏鏉垮嚭搴撳彛锛�");
+            result.add(map);
+        }
+        List<Integer> pickOutSite = basDevpService.getAvailableOutSite(103);
+        for (Integer siteId : pickOutSite) {
+            Map<String, Object> map = new HashMap<>();
+            map.put("siteId", siteId);
+            map.put("desc", siteId + "锛堟嫞鏂欏嚭搴撳彛锛�");
+            result.add(map);
+        }
+        return R.ok().add(result);
+    }
+
+    @RequestMapping("/available/take/check/site")
+    @ManagerAuth()
+    public R availableTakeCheckSite(){
+        return R.ok().add(basDevpService.getAvailableOutSite(107));
+    }
+
+    @RequestMapping("/available/empty/take/site")
+    @ManagerAuth()
+    public R availableEmptyTakeSite(){
+        return R.ok().add(basDevpService.getAvailableEmptyOutSite());
     }
 
     @RequestMapping("/full/store/put/start")
     @ManagerAuth(memo = "鍏ㄦ澘鍏ュ簱")
-    public R start(@RequestBody FullStoreParam fullStoreParam) {
-        workService.startupFullStore(fullStoreParam,getUserId());
+    public R fullStorePutStart(@RequestBody FullStoreParam fullStoreParam) {
+        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 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("鍑哄簱鍚姩鎴愬姛");
+    }
+
+    @RequestMapping("/empty/plate/in/start")
+    @ManagerAuth(memo = "绌烘澘鍏ュ簱")
+    public R emptyPlateInStart(@RequestParam Integer sourceStaNo) {
+        return R.ok("鍏ュ簱鍚姩鎴愬姛").add(workService.emptyPlateIn(sourceStaNo, getUserId()));
+    }
+
+    @RequestMapping("/empty/plate/out/start")
+    @ManagerAuth(memo = "绌烘澘鍑哄簱")
+    public R emptyPlateOutStart(EmptyPlateOutParam param) {
+        workService.emptyPlateOut(param, getUserId());
+        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 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("鍑哄簱鍚姩鎴愬姛");
+    }
+
+    @RequestMapping("/loc/move/start")
+    @ManagerAuth(memo = "搴撲綅绉昏浆")
+    public R locMoveStart(@RequestParam String sourceLocNo,
+                          @RequestParam String targetLocNo) {
+        workService.locMove(sourceLocNo, targetLocNo, getUserId());
+        return R.ok("绉诲簱鍚姩鎴愬姛");
+    }
+
+    @RequestMapping("/mat/turn/over/out/start")
+    @ManagerAuth(memo = "鍝佸彿绉讳氦")
+    public R turnMatLocDetl(@RequestBody EmptyPlateOutParam param) {
+        if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls(),param.getMatId()) || Cools.isEmpty(param.getLocDetls().get(0)) || Cools.isEmpty(param.getLocDetls().get(0).getMatnr())){
+            return R.error("鍙傛暟涓虹┖");
+        }
+        if (param.getLocDetls().size()>1){
+            return R.error("璇峰崟鏉℃暟鎹慨鏀癸紝璋ㄦ厧鎿嶄綔锛�");
+        }
+        workService.turnMatLocDetl(param, getUserId());
+        return R.ok("鍝佸彿绉讳氦鎴愬姛");
+    }
+
+    @RequestMapping("/locDdetl/adjust/start")
+    @ManagerAuth(memo = "搴撳瓨璋冩暣")
+    public R locDetlAdjustStart(@RequestBody LocDetlAdjustParam param) {
+        workService.adjustLocDetl(param, getUserId());
+        return R.ok("搴撳瓨璋冩暣鎴愬姛");
+    }
+
+    @RequestMapping("/hand/control/wrkMast")
+    @ManagerAuth(memo = "鎵嬪姩澶勭悊宸ヤ綔妗�")
+    public R handControlWrkMast(@RequestParam String workNo,
+                                @RequestParam Integer type){
+        if (type == 1) {
+            workService.completeWrkMast(workNo, getUserId());
+            return R.ok("宸ヤ綔妗e凡瀹屾垚");
+        } else if (type == 2) {
+            workService.cancelWrkMast(workNo, getUserId());
+            return R.ok("宸ヤ綔妗e凡鍙栨秷");
+        } else if (type == 3) {
+            workService.pickWrkMast(workNo, getUserId());
+            return R.ok("宸ヤ綔妗e凡鎷f枡");
+        }
         return R.ok();
     }
 
+    @RequestMapping("/create/waitPain/wrkMast/start")
+    @ManagerAuth(memo = "鐢熸垚浠诲姟")
+    public R createWaitPainWrkMastStart(@RequestBody List<WaitPakin> list) {
+        StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId());
+        return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
+    }
 
-    @RequestMapping("/empty/plate/out/start")
-    @ManagerAuth(memo = "鍏ㄦ澘鍏ュ簱")
-    public R start(EmptyPlateOutParam param) {
-        System.out.println(JSON.toJSONString(param));
-        return R.ok();
+    @RequestMapping("/deal/preHave/start")
+    @ManagerAuth(memo = "鍏堝叆鍝佸鐞�")
+    public R dealPreHave(@RequestParam Integer wrkNo) {
+        String locNo = workService.dealPreHaveStart(wrkNo, getUserId());
+        return R.ok("浠诲姟閲嶆柊鍏ュ簱锛岀洰鏍囧簱浣嶏細" + locNo);
     }
 
 }

--
Gitblit v1.9.1