From 49f306cb470a8ee824204b701796d1d8f63ff223 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 27 十月 2025 17:58:05 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/common/web/WcsController.java |  155 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 145 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 2d251c6..30f438b 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
@@ -74,7 +75,7 @@
                 }
                 return R.parse(CodeRes.NO_COMB_700);
             }
-            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
+             int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
             int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
             if (countLoc > 0 || countWrk > 0) {
                 return R.error(CodeRes.EXIST_500);
@@ -105,6 +106,44 @@
         return R.ok().add(dto);
     }
 
+    @PostMapping("/pakin/agv/loc/v1")
+    @ResponseBody
+    public synchronized R getLocNoAgv(@RequestBody SearchLocParam param) {
+        log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
+        if (Cools.isEmpty(param.getIoType())) {
+            return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+        }
+        if (Cools.isEmpty(param.getSourceStaNo())) {
+            return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+        }
+        if (param.getIoType() == 1) {
+            if (Cools.isEmpty(param.getBarcode())) {
+                return R.error("鏉$爜涓嶈兘涓虹┖");
+            }
+        }
+        if (Cools.isEmpty(param.getLocType1())){
+            return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
+        }
+        // 婧愮珯鐐圭姸鎬佹娴�
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
+        sourceStaNo.setLocType1(param.getLocType1());
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+
+        StartupDto dto = null;
+        switch (param.getIoType()) {
+            case 1://婊℃墭鐩樺叆搴�
+            case 10://绌烘墭鐩樺叆搴�
+                dto = startupFullPutStoreAgv(param.getSourceStaNo(), param.getBarcode(), locTypeDto);
+                break;
+//                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
+//                break;
+            default:
+                break;
+        }
+        log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode());
+        return R.ok().add(dto);
+    }
+
     @PostMapping("/auto/emptyIn/v1")
     @ResponseBody
     public R autoEmptyIn(@RequestBody LocTypeDto locTypeDto){
@@ -115,12 +154,15 @@
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
         StartupDto dto = commonService.getLocNo( 10, 1038, findLocNoAttributeVo, locTypeDto);
+        if (dto == null){
+            throw new CoolException("鏌ヨ搴撲綅澶辫触");
+        }
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(dto.getWorkNo());
         wrkMast.setIoTime(now);
-        wrkMast.setWrkSts(1L);
+        wrkMast.setWrkSts(2L);
         wrkMast.setIoPri(13D);
         wrkMast.setIoType(10);
         wrkMast.setCrnNo(dto.getCrnNo());
@@ -137,7 +179,26 @@
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
         wrkMast.setMemo("鑷姩绌烘墭鍏ュ簱");
-        return wrkMastService.insert(wrkMast) ? R.ok("鑷姩绌烘墭鍏ュ簱鎴愬姛,宸ヤ綔鍙�:"+wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍏ュ簱澶辫触");
+        // 鏇存柊婧愮珯鐐逛俊鎭�
+        sourceStaNo.setWrkNo(dto.getWorkNo());
+        sourceStaNo.setModiUser(9999L);
+        sourceStaNo.setModiTime(now);
+        if (!basDevpService.updateById(sourceStaNo)){
+            throw new CoolException("鏇存柊婧愮珯澶辫触");
+        }
+        // 鏇存柊鐩爣搴撲綅鐘舵��
+        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocSts().equals("O")){
+            locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+            locMast.setModiUser(9999L);
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+        return wrkMastService.insert(wrkMast) ? R.ok("鑷姩绌烘墭鍏ュ簱鎴愬姛,宸ヤ綔鍙�:"+wrkMast.getWrkNo()).add(wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍏ュ簱澶辫触");
     }
 
     @PostMapping("auto/emptyOut/v1")
@@ -156,20 +217,63 @@
     }
 
 
-    @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(wrkMast1== null){
             return  R.error("鏃犺鐩樼偣绉绘牻浠诲姟");
         }
         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(transplantWork.getWorkNo());
         Date now = new Date();
-
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
+        int workNo = getWorkNo(0);
         wrkMast.setWrkNo(9997);
         wrkMast.setIoTime(now);
         wrkMast.setWrkSts(11L);
@@ -177,7 +281,7 @@
         wrkMast.setIoType(12);
         wrkMast.setCrnNo(3);
         wrkMast.setBarcode(transplantWork.getBarcode());
-        wrkMast.setSourceStaNo(1015);
+        wrkMast.setSourceStaNo(transplantWork.getSourceStaNo());
         wrkMast.setStaNo(transplantWork.getStaNo());
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
@@ -206,8 +310,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(wrkMast1== null){
             return  R.error("鏃犺鐩樼偣绉绘牻浠诲姟");
         }
@@ -218,7 +325,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);
@@ -250,6 +357,34 @@
 
 
     /**
+     * 鍏ㄦ澘鍏ュ簱AGV
+     */
+    @Transactional
+    public StartupDto startupFullPutStoreAgv(Integer devpNo, String barcode, LocTypeDto locTypeDto) {
+        // 婧愮珯鐐圭姸鎬佹娴�
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+        // 妫�绱㈠簱浣�
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
+        StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
+        // 鏇存柊鐩爣搴撲綅鐘舵��
+        Date now = new Date();
+        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocSts().equals("O")){
+            locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+            locMast.setBarcode(barcode);
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+        return dto;
+    }
+
+
+    /**
      * 鍏ㄦ澘鍏ュ簱
      */
     @Transactional

--
Gitblit v1.9.1