From 9d13a9628d06bca38ae4afe3402945561044bf45 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期五, 24 十月 2025 14:25:14 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/web/WcsController.java |   64 ++++++++++++++++++++++++++-----
 1 files changed, 53 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 254a3a6..44c1cbf 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -31,7 +31,8 @@
 @RestController
 @RequestMapping("/rpc")
 public class WcsController {
-
+    @Autowired
+    private WrkLastnoService wrkLastnoService;
     @Autowired
     private WrkMastService wrkMastService;
     @Autowired
@@ -178,15 +179,55 @@
     }
 
 
-    @PostMapping("/auto/TransplantingOut/v1")
+    /**
+     * 鐢熸垚宸ヤ綔鍙�
+     *
+     * @param wrkMk
+     * @return workNo(宸ヤ綔鍙�)
+     */
+    public int getWorkNo(Integer wrkMk) {
+        WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk);
+        if (Cools.isEmpty(wrkLastno)) {
+            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
+        }
+
+        int workNo = wrkLastno.getWrkNo();
+        int sNo = wrkLastno.getSNo();
+        int eNo = wrkLastno.getENo();
+        workNo = workNo >= eNo ? sNo : workNo + 1;
+        while (true) {
+            WrkMast wrkMast = wrkMastService.selectById(workNo);
+            if (null != wrkMast) {
+                workNo = workNo >= eNo ? sNo : workNo + 1;
+            } else {
+                break;
+            }
+        }
+        // 淇敼搴忓彿璁板綍
+        if (workNo > 0) {
+            wrkLastno.setWrkNo(workNo);
+            wrkLastnoService.updateById(wrkLastno);
+        }
+        // 妫�楠�
+        if (workNo == 0) {
+            throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳");
+        } else {
+            if (wrkMastService.selectById(workNo) != null) {
+                throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪");
+            }
+        }
+        return workNo;
+    }
+    @PostMapping("/auto/銆�" +
+            "TransplantingOut/v1")
     @ResponseBody
     public R autoTransplantingOut(@RequestBody TransplantWork transplantWork){
         // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(transplantWork.getStaNo(), true);
+//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(transplantWork.getStaNo(), true);
         WrkMast wrkMast1 = wrkMastService.selectWrkMast(transplantWork.getWorkNo(),transplantWork.getBarcode());
-        if(sourceStaNo ==null ){
-            return R.error("璇ョ珯鐐圭洏鐐圭Щ鏍借鍙紝璇锋煡鐪嬫簮绔欑偣鐘舵�佹娴�");
-        }
+//        if(sourceStaNo ==null ){
+//            return R.error("璇ョ珯鐐圭洏鐐圭Щ鏍借鍙紝璇锋煡鐪嬫簮绔欑偣鐘舵�佹娴�");
+//        }
         if(wrkMast1== null){
             return  R.error("鏃犺鐩樼偣绉绘牻浠诲姟");
         }
@@ -194,6 +235,7 @@
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
+        int workNo = getWorkNo(0);
         wrkMast.setWrkNo(9997);
         wrkMast.setIoTime(now);
         wrkMast.setWrkSts(11L);
@@ -230,11 +272,11 @@
     @ResponseBody
     public R autoTransplantingIn(@RequestBody TransplantWork transplantWork){
         // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(transplantWork.getStaNo(), true);
+//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(transplantWork.getStaNo(), true);
         WrkMast wrkMast1 = wrkMastService.selectWrkMast(transplantWork.getWorkNo(),transplantWork.getBarcode());
-        if(sourceStaNo == null){
-
-        }
+//        if(sourceStaNo == null){
+//
+//        }
         if(wrkMast1== null){
             return  R.error("鏃犺鐩樼偣绉绘牻浠诲姟");
         }
@@ -245,7 +287,7 @@
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(9996);
         wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(2L);
+        wrkMast.setWrkSts(11L);
         wrkMast.setIoPri(14D);
         wrkMast.setIoType(12);
         wrkMast.setCrnNo(3);

--
Gitblit v1.9.1