From 3bf6f972604761c9ac59a2cb9ea01eeacaec2189 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 15:43:51 +0800
Subject: [PATCH] 更新为正式部署许可证

---
 src/main/java/com/zy/common/web/WcsController.java |  123 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 111 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index c0c677f..30e3918 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -1,21 +1,27 @@
 package com.zy.common.web;
 
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.common.R;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.MesReturn;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
 import com.zy.asrs.entity.result.FindLocNoAttributeVo;
 import com.zy.asrs.service.*;
+import com.zy.asrs.service.impl.RcsServiceImpl;
 import com.zy.common.CodeRes;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.StartupDto;
+import com.zy.common.model.enums.WorkNoType;
 import com.zy.common.service.CommonService;
 import com.zy.common.web.param.SearchLocParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
@@ -50,6 +56,13 @@
     private RowLastnoService rowLastnoService;
     @Autowired
     private WorkService workService;
+    @Autowired
+    private TaskService taskService;
+
+    @Value("${mes.url}")
+    public String MES_URL;
+
+    // TODO锛氱О閲嶃�佹媿鐓т笂鎶ュ瓨鍌紝CTU鏂欑杩愯浆
 
     @PostMapping("/pakin/loc/v1")
     @ResponseBody
@@ -60,6 +73,30 @@
         }
         if (Cools.isEmpty(param.getSourceStaNo())) {
             return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
+        }
+        if (Cools.isEmpty(param.getBarcode()) || param.getBarcode().equals("00000000")) {
+            return R.error(".鎵樼洏鐮佷笉鑳戒负绌烘垨鑰呮墭鐩樼爜涓�0");
+        }
+        if (param.getSourceStaNo() == 301 || param.getSourceStaNo() == 304){
+            String url = "CameraPictureRecognition";
+
+//            return R.error("閰嶇洏涓嶆纭�");
+//            String URL = MES_URL + url;
+//            String URL = "172.26.160.74:8080/basicmodel/WmsFit/Api/CameraPictureRecognition";
+//            try{
+//                String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(param));
+//                if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+//                    MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+//                    if ("2".equals(mesReturn.getSuccess())) {
+//                        return R.error("閰嶇洏涓嶆纭�");
+//                    }else {
+//                        log.info("閰嶇洏姝g‘锛屽厑璁稿叆搴�");
+//                    }
+//                }
+//            } catch (Exception e) {
+//                return R.error("MES鍦板潃杩炴帴瓒呮椂");
+//            }
+
         }
         List<WaitPakin> waitPakins = null;
         if (param.getIoType() == 1) {
@@ -84,10 +121,17 @@
             return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
         }
 
+        //鍏ュ簱鏃跺绌烘澘鍑哄簱浠诲姟杩涜瀹屾垚
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()).eq("wrk_sts",110));
+        if (!Cools.isEmpty(wrkMast)) {
+            wrkMast.setWrkSts(15L);//绌烘澘鍑哄簱浠诲姟杞巻鍙叉。
+            wrkMastService.updateById(wrkMast);
+        }
+
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
         sourceStaNo.setLocType1(param.getLocType1());
-        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo,param.getBarcode());
 
         StartupDto dto = null;
         switch (param.getIoType()) {
@@ -151,7 +195,7 @@
         EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam();
         emptyPlateOutParam.setOutSite(12);
         emptyPlateOutParam.setLocNos(new ArrayList<String>(){{add(locMast.getLocNo()+"");}});
-        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam);
+        WrkMast wrkMast = workService.emptyPlateOut(emptyPlateOutParam,50,"");
         return R.ok(!Cools.isEmpty(wrkMast)? R.ok("鑷姩绌烘墭鍑哄簱鎴愬姛,宸ヤ綔鍙�:" + wrkMast.getWrkNo()) : R.error("鐢熸垚鑷姩绌烘墭鍑哄簱澶辫触"));
     }
 
@@ -161,13 +205,14 @@
     @Transactional
     public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) {
         // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
 //        List<String> matnrs = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
 //        List<String> batchs = waitPakins.stream().map(WaitPakin::getBatch).distinct().collect(Collectors.toList());
 //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0), batchs.get(0));
-        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
-        StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
+//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
+//        StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
+        StartupDto dto = commonService.getLocNoNew(1,devpNo,locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -187,7 +232,7 @@
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("N"); // 绌烘澘
         wrkMast.setLinkMis("Y");
-        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷
         // 鎿嶄綔浜哄憳鏁版嵁
         wrkMast.setAppeTime(now);
         wrkMast.setModiTime(now);
@@ -218,11 +263,11 @@
             throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
         }
         // 鏇存柊婧愮珯鐐逛俊鎭�
-        sourceStaNo.setWrkNo(workNo);
-        sourceStaNo.setModiTime(now);
-        if (!basDevpService.updateById(sourceStaNo)){
-            throw new CoolException("鏇存柊婧愮珯澶辫触");
-        }
+//        sourceStaNo.setWrkNo(workNo);
+//        sourceStaNo.setModiTime(now);
+//        if (!basDevpService.updateById(sourceStaNo)){
+//            throw new CoolException("鏇存柊婧愮珯澶辫触");
+//        }
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")){
@@ -244,7 +289,7 @@
         // 妫�绱㈠簱浣�
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
-        StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto);
+        StartupDto dto =commonService.getLocNoNew(10,devpNo,locTypeDto);
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -291,4 +336,58 @@
         return dto;
     }
 
+    @PostMapping("/createAGVMoveTask")
+    @ResponseBody
+    public synchronized R createAGVMoveTask(@RequestBody WrkMast wrkMast){
+        if (Cools.isEmpty(wrkMast)){
+            return R.error("鍑哄簱鏃跺垱寤篈GV鎼繍绌烘枡鏋朵换鍔′笉鑳戒负绌�");
+        }
+        //鏌ョ湅鏄惁鏈夌浉鍏崇殑AGV鎼繍浠诲姟瀛樺湪
+        List<Task> tasks = taskService.selectList(new EntityWrapper<Task>()
+                .eq("task_type", "AGV琛ョ┖鏂欐灦")
+                .andNew()
+                .in("sta_no", wrkMast.getStaNo(),wrkMast.getMemo())
+                .or()
+                .in("source_sta_no", wrkMast.getStaNo(),wrkMast.getMemo()));
+        if (!tasks.isEmpty()){
+            return R.error("鏈夊鍫嗗灈鏈烘帴椹崇珯鐐圭殑AGV鎼繍浠诲姟,鏆傛椂鏃犳硶鐢熸垚AGV鎼繍浠诲姟");
+        }
+        String sourceStaNo = "Q-";
+        if(wrkMast.getStaNo().equals("401")){
+            sourceStaNo = sourceStaNo + "E3";
+        }else if(wrkMast.getStaNo().equals("402")){
+            sourceStaNo = sourceStaNo + "E2";
+        }else if(wrkMast.getStaNo().equals("307")){
+            sourceStaNo = sourceStaNo + "E1";
+        }
+        //鐢熸垚AGV鎼繍绌烘枡鏋朵换鍔�
+        // 淇濆瓨宸ヤ綔妗�
+        Task task = new Task();
+        Date date = new Date();
+        String TaskNo = wrkMast.getWrkNo()+"aa"+date.getTime();
+        task.setWrkNo(wrkMast.getWrkNo())
+                .setTaskNo(TaskNo)
+                .setIoTime(date)
+                .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+                .setIoType(5) // 鍏ュ嚭搴撶姸鎬侊細 5.鍖哄煙鍒扮珯
+                .setTaskType("AGV琛ョ┖鏂欐灦")
+                .setIoPri(10D)
+                .setFullPlt("N") // 婊℃澘锛歒
+                .setPicking("N") // 鎷f枡
+                .setExitMk("N")// 閫�鍑�
+                .setStaNo(wrkMast.getStaNo())
+                .setSourceStaNo(sourceStaNo)//绌烘枡鏋剁紦瀛樺尯
+                .setEmptyMk("Y")// 绌烘澘
+                .setBarcode("")// 鎵樼洏鐮�
+                .setLinkMis("N")
+                .setAppeUser(9945L)
+                .setAppeTime(date)
+                .setModiUser(9945L)
+                .setModiTime(date);
+        if (!taskService.insert(task)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        return R.ok();
+    }
+
 }

--
Gitblit v1.9.1