From 4c88c0606bb333ac1ad4c1ad536a848f7d27fdb7 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 23 四月 2025 12:43:37 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/CrnOperaUtils.java          |  174 +++++++++++++++++++
 src/main/java/com/zy/asrs/utils/Utils.java                  |   17 -
 src/main/java/com/zy/asrs/controller/OpenController.java    |    4 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  193 +++++++++------------
 src/main/java/com/zy/core/MainProcess.java                  |    6 
 src/main/java/com/zy/asrs/controller/CrnController.java     |  136 ++------------
 6 files changed, 285 insertions(+), 245 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 2ee0692..c459918 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -18,9 +18,8 @@
 import com.zy.asrs.service.BasCrnpService;
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.impl.MainServiceImpl;
 import com.zy.asrs.utils.CommandUtils;
-import com.zy.asrs.utils.VersionUtils;
+import com.zy.asrs.utils.CrnOperaUtils;
 import com.zy.core.CrnThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -39,7 +38,6 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -57,9 +55,6 @@
     private String wmsUrl;
     @Value("${wms.movePath}")
     private String movePath;
-
-
-
     @Autowired
     private SlaveProperties slaveProperties;
     @Autowired
@@ -69,9 +64,9 @@
     @Autowired
     private BasCrnpService basCrnpService;
     @Autowired
-    private MainServiceImpl mainService;
-    @Autowired
     private LocMastService locMastService;
+    @Autowired
+    private CrnOperaUtils crnOperaUtils;
 
 
     @ManagerAuth(memo = "杩涜涓殑鍛戒护")
@@ -380,19 +375,10 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
-        command.setSourcePosX(param.getSourceRow());     // 婧愬簱浣嶆帓
-        command.setSourcePosY(param.getSourceBay());     // 婧愬簱浣嶅垪
-        command.setSourcePosZ(param.getSourceLev());     // 婧愬簱浣嶅眰
-        command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
 //        command.setCommand((short)1);
-        return crnControl(command)?R.ok():R.error();
+
+        boolean result = crnOperaUtils.crnPut(param);
+        return result ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "鍑哄簱")
@@ -402,19 +388,10 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
-        command.setSourcePosX(param.getSourceRow());     // 婧愬簱浣嶆帓
-        command.setSourcePosY(param.getSourceBay());     // 婧愬簱浣嶅垪
-        command.setSourcePosZ(param.getSourceLev());     // 婧愬簱浣嶅眰
-        command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
 //        command.setCommand((short)1);
-        return crnControl(command)?R.ok():R.error();
+
+        boolean result = crnOperaUtils.crnTake(param);
+        return result ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "搴撲綅杞Щ")
@@ -424,24 +401,10 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡
-        command.setSourcePosZ(param.getSourceRow());     // 婧愬簱浣嶆帓
-        command.setSourcePosX(param.getSourceBay());     // 婧愬簱浣嶅垪
-        command.setSourcePosY(param.getSourceLev());     // 婧愬簱浣嶅眰
-        command.setDestinationPosZ(param.getRow());     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosX(param.getBay());     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosY(param.getLev());     // 鐩爣搴撲綅灞�
 //        command.setCommand((short)1);
-        LocMast sourceLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getSourcePosX())
-                .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ()));
-        LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX())
-                .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ()));
-        VersionUtils.locMoveCheckLocType(sourceLoc, loc);
-        return crnControl(command)?R.ok():R.error();
+
+        boolean result = crnOperaUtils.crnStockMove(param);
+        return result ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "绔欏埌绔�")
@@ -451,18 +414,9 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡
-        command.setSourcePosX(param.getSourceStaNo());     // 婧愬簱浣嶆帓
-        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-        command.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
-        command.setDestinationPosX(param.getStaNo());     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+
+        boolean result = crnOperaUtils.crnSiteMove(param);
+        return result ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "鍥炲師鐐�")
@@ -472,18 +426,9 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
-        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
-        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
-        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+
+        boolean result = crnOperaUtils.crnBacOrigin(param);
+        return result ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "鍙嶅師鐐�")
@@ -493,18 +438,9 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
-        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
-        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
-        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosY((short) 22);     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+
+        boolean result = crnOperaUtils.reverseOrigin(param);
+        return result ? R.ok() : R.error();
     }
 
 //    @ManagerAuth(memo = "鍧愭爣绉诲姩")
@@ -532,19 +468,8 @@
 //        if (SystemProperties.WCS_RUNNING_STATUS.get()) {
 //            return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�");
 //        }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
-        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
-        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
-        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-        command.setCommand((short)0);
-        return crnControl(command)?R.ok():R.error();
+        boolean result = crnOperaUtils.crnTaskComplete(param.getCrnNo());
+        return result ? R.ok() : R.error();
     }
 
 //    @ManagerAuth(memo = "鏆傚仠")
@@ -569,18 +494,9 @@
         if (param.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
         }
-        CrnCommand command = new CrnCommand();
-        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
-        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
-        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
-        command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
-        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
-        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
-        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
-        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
-        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
-        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+
+        boolean result = crnOperaUtils.crnClearCommand(param);
+        return result ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 13cef9e..8bb5a66 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -211,7 +211,7 @@
                 map.put("Msg","浠诲姟绫诲瀷涓虹┖锛�");
                 return map;
             }
-            String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo());
+            String fusion = Utils.getLocNo(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo());
             param.setStartPoint(fusion);
             LocMast locMast = locMastService.selectByLocNo(param.getStartPoint());
             if(Cools.isEmpty(locMast)){
@@ -238,7 +238,7 @@
                     return r;
                 }
             }else if (param.getStereoscopicTaskType() == 3){
-                String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo());
+                String fusion1 = Utils.getLocNo(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo());
                 param.setTerminalNo(fusion1);
                 //绉诲簱浠诲姟鍒涘缓
                 r = openService.taskCreate(new TaskCreateParam(param,locMast.getCrnNo()));
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 391da4e..4ce4fbf 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,19 +4,16 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.common.R;
 import com.core.exception.CoolException;
-import com.zy.asrs.controller.CrnController;
-import com.zy.asrs.controller.SiteController;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.domain.enums.WorkNoType;
-import com.zy.asrs.domain.param.CrnOperatorParam;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.Result;
 import com.zy.asrs.entity.param.StorageEscalationParam;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.CommandUtils;
+import com.zy.asrs.utils.CrnOperaUtils;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
@@ -80,16 +77,16 @@
     private StaDescMapper staDescMapper;
     @Autowired
     private CommandInfoService commandInfoService;
-
     @Autowired
     private OpenServiceImpl openServiceImpl;
     @Autowired
     private StaDescService staDescService;
-
     @Autowired
     private ApiLogService apiLogService;
     @Autowired
     private CommonService commonService;
+    @Autowired
+    private CrnOperaUtils crnOperaUtils;
     @Value("${wms.count}")
     private Integer maxCount;
     @Autowired
@@ -102,18 +99,13 @@
     private String TaskExecCallback;
     @Value("${wms.taskStatusFeedbackPath}")
     private String taskStatusFeedbackPath;
-    @Autowired
-    private CrnController crnController;
-    @Autowired
-    private SiteController siteController;
 
-    public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException {
+    public synchronized void generateStoreWrkFile1() {
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 // 閬嶅巻鍏ュ簱鍙�
                 for (DevpSlave.Sta inSta : devp.getInSta()) {
-                    StorageEscalationParam storageEscalationParam = new StorageEscalationParam();
                     // 鑾峰彇鍏ュ簱绔欎俊鎭�
                     DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                     StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
@@ -166,113 +158,90 @@
                         if (barcodeThread == null) {
                             continue;
                         }
-                        String BoxNo = barcodeThread.getBarcode();
-                        TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
-                        if (!Cools.isEmpty(taskWrk1)) {
-                            log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�");
-                            if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) {
-                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                        .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                                if (Cools.isEmpty(staDesc)) {
-                                    return;
-                                } else {
-                                    continue;
-                                }
-                            }
+
+                        String barcode = barcodeThread.getBarcode();
+                        TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
+                        if (taskWrk1 != null) {
+                            log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
+                            continue;
                         }
+
+                        HashMap<String, Object> requestParam = new HashMap<>();
+                        requestParam.put("BoxNo", barcode);//鎵樼洏鐮�
+                        requestParam.put("TerminalNo", inSta.getStaNo());//鍏ュ簱鍙�
                         if (back) {
-                            storageEscalationParam.setWCSStatus(1);
-                            storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
+                            requestParam.put("WCSStatus", 1);//澶辫触
+                            requestParam.put("WCSErrorMessage", errMsg);//澶辫触鍘熷洜
+                        }else {
+                            requestParam.put("WCSStatus", 0);//鎴愬姛
                         }
-                        log.info("缁勬墭鍏ュ簱={}", storageEscalationParam);
-                        storageEscalationParam.setBoxNo(BoxNo);
+
                         String response = "";
                         Boolean success = false;
                         try {
                             response = new HttpHandler.Builder()
                                     .setUri(wmsUrl)
                                     .setPath(inboundTaskApplyPath)
-                                    .setJson(JSON.toJSONString(storageEscalationParam))
+                                    .setJson(JSON.toJSONString(requestParam))
                                     .build()
                                     .doPost();
                             JSONObject jsonObject = JSON.parseObject(response);
-                            if(back){
-                                if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
-                                    staProtocol.setStaNo((short)105);
-                                } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
-                                    staProtocol.setStaNo((short)107);
-                                }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
-                                    staProtocol.setStaNo((short)109);
-                                }else if (staProtocol.getWorkNo()>=9876 && staProtocol.getWorkNo() <= 9900){
-                                    staProtocol.setStaNo((short)110);
-                                }
+
+                            if (back) {
                                 devpThread.setPakMk(staProtocol.getSiteId(), false);
                                 MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                            }else{
-                                if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
-                                    Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
-                                    // 鍒涙柊涓�涓叆搴撳伐浣滄。
-                                    TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
-                                    if (Cools.isEmpty(taskWrk)) {
-                                        taskWrk = createTask1(result, BoxNo);
-                                        if (Cools.isEmpty(taskWrk)) {
-                                            log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint());
-                                        } else {
-                                            taskWrkService.insert(taskWrk);
-                                            StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
-                                                    .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
-                                            staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
-                                            staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
-                                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-                                            HashMap<String, Object> hashMap = new HashMap<>();
-                                            hashMap.put("TaskNo",taskWrk.getTaskNo());
-                                            try {
-                                                //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
-                                                response = new HttpHandler.Builder()
-                                                        .setUri(wmsUrl)
-                                                        .setPath(taskStatusFeedbackPath)
-                                                        .setJson(JSON.toJSONString(hashMap))
-                                                        .build()
-                                                        .doPost();
-                                                JSONObject jsonObject1 = JSON.parseObject(response);
-                                                Boolean bool = false;
-                                                if(jsonObject1.get("ReturnStatus").equals(0)){
-                                                    taskWrk.setStatus(2);//娲惧彂浠诲姟
-                                                    bool = true;
-                                                    taskWrkService.updateById(taskWrk);
-                                                }
-                                                apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
-                                                        , wmsUrl + TaskExecCallback
-                                                        , null
-                                                        , "127.0.0.1"
-                                                        , JSON.toJSONString(hashMap)
-                                                        , response
-                                                        , bool
-                                                );
-                                            } catch (Exception e) {
+                                continue;
+                            }
 
-                                            }
-                                        }
-                                    } else {
-//                                    staProtocol.setWorkNo((short) 9991);
-                                        if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){
-                                            staProtocol.setStaNo((short)105);
-                                        } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) {
-                                            staProtocol.setStaNo((short)107);
-                                        }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) {
-                                            staProtocol.setStaNo((short)109);
-                                        }else{
-                                            staProtocol.setStaNo((short)110);
-                                        }
-                                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                            int returnStatus = Integer.parseInt(jsonObject.get("ReturnStatus").toString());
+                            if (returnStatus == 0) {
+                                Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+                                // 鍒涙柊涓�涓叆搴撳伐浣滄。
+                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
+                                if(taskWrk != null) {
+                                    log.info("浠诲姟锛�" + result.getTaskNo() + "宸茬粡瀛樺湪");
+                                    continue;
+                                }
+
+                                taskWrk = createTask1(result, barcode);
+                                if (!taskWrkService.insert(taskWrk)) {
+                                    log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触");
+                                    continue;
+                                }
+
+                                StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+                                        .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
+                                staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+                                staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
+                                HashMap<String, Object> hashMap = new HashMap<>();
+                                hashMap.put("TaskNo", taskWrk.getTaskNo());
+                                try {
+                                    //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+                                    response = new HttpHandler.Builder()
+                                            .setUri(wmsUrl)
+                                            .setPath(taskStatusFeedbackPath)
+                                            .setJson(JSON.toJSONString(hashMap))
+                                            .build()
+                                            .doPost();
+                                    JSONObject jsonObject1 = JSON.parseObject(response);
+                                    boolean bool = false;
+                                    if(jsonObject1.get("ReturnStatus").equals(0)){
+                                        taskWrk.setStatus(2);//娲惧彂浠诲姟
+                                        bool = true;
+                                        taskWrkService.updateById(taskWrk);
                                     }
+                                    apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms"
+                                            , wmsUrl + TaskExecCallback
+                                            , null
+                                            , "127.0.0.1"
+                                            , JSON.toJSONString(hashMap)
+                                            , response
+                                            , bool
+                                    );
+                                } catch (Exception e) {
 
-                                } else {
-//                                staProtocol.setWorkNo((short) 9991);
-                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
-                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
-                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                 }
                             }
                         } catch (Exception e) {
@@ -295,12 +264,12 @@
                                     , wmsUrl + inboundTaskApplyPath
                                     , null
                                     , "127.0.0.1"
-                                    , JSON.toJSONString(storageEscalationParam)
+                                    , JSON.toJSONString(requestParam)
                                     , response
                                     , success
                             );
                         }
-                        log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo));
+                        log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(barcode));
                         log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
                     }
                 }
@@ -767,8 +736,8 @@
                     try {
                         taskWrkService.updateById(taskWrk);
                     } catch (Exception e) {
+                        e.printStackTrace();
                         log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
                     }
                 }
             }
@@ -1095,11 +1064,9 @@
                     continue;
                 }
                 //纭瀹屾垚淇″彿
-                CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
-                crnOperatorParam.setCrnNo(crn.getId());
-                R r = crnController.crnTaskComplete(crnOperatorParam);
+                boolean result = crnOperaUtils.crnTaskComplete(crn.getId());
                 Thread.sleep(1000);
-                if(!r.get("code").equals(200)){
+                if(!result){
                     return;
                 }
                 if (!Cools.isEmpty(taskWrk)) {
@@ -1337,8 +1304,11 @@
     }
 
     private TaskWrk createTask1(Result result, String barcode) {
-        String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
-
+        String locNo = Utils.getLocNo(result.getRow(), result.getFloor(), result.getColumn());
+        LocMast locMast = locMastService.selectByLocNo(locNo);
+        if (locMast == null) {
+            throw new CoolException("搴撲綅涓嶅瓨鍦�");
+        }
 
         Date now = new Date();
         TaskWrk taskWrk = new TaskWrk();
@@ -1350,7 +1320,6 @@
         taskWrk.setIoType(1);//浠诲姟绫诲瀷
         taskWrk.setIoPri(13);//浼樺厛绾�
         taskWrk.setBarcode(barcode);//鏉$爜
-        LocMast locMast = locMastService.selectByLocNo(locNo);
         taskWrk.setCrnNo(locMast.getCrnNo());
         taskWrk.setTargetPoint(locNo);
         taskWrk.setStartPoint("116");
diff --git a/src/main/java/com/zy/asrs/utils/CrnOperaUtils.java b/src/main/java/com/zy/asrs/utils/CrnOperaUtils.java
new file mode 100644
index 0000000..b037ca6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/CrnOperaUtils.java
@@ -0,0 +1,174 @@
+package com.zy.asrs.utils;
+
+import com.core.exception.CoolException;
+import com.zy.asrs.domain.param.CrnOperatorParam;
+import com.zy.core.CrnThread;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.CrnTaskModeType;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.CrnCommand;
+import com.zy.core.model.protocol.CrnProtocol;
+import org.springframework.stereotype.Component;
+
+@Component
+public class CrnOperaUtils {
+
+    //鍫嗗灈鏈哄叆搴�
+    public boolean crnPut(CrnOperatorParam param){
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+        command.setSourcePosX(param.getSourceRow());     // 婧愬簱浣嶆帓
+        command.setSourcePosY(param.getSourceBay());     // 婧愬簱浣嶅垪
+        command.setSourcePosZ(param.getSourceLev());     // 婧愬簱浣嶅眰
+        command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
+
+        return crnControl(command);
+    }
+
+    //鍫嗗灈鏈哄嚭搴�
+    public boolean crnTake(CrnOperatorParam param){
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡
+        command.setSourcePosX(param.getSourceRow());     // 婧愬簱浣嶆帓
+        command.setSourcePosY(param.getSourceBay());     // 婧愬簱浣嶅垪
+        command.setSourcePosZ(param.getSourceLev());     // 婧愬簱浣嶅眰
+        command.setDestinationPosX(param.getRow());     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY(param.getBay());     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ(param.getLev());     // 鐩爣搴撲綅灞�
+
+        return crnControl(command);
+    }
+
+    //搴撲綅杞Щ
+    public boolean crnStockMove(CrnOperatorParam param){
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡
+        command.setSourcePosZ(param.getSourceRow());     // 婧愬簱浣嶆帓
+        command.setSourcePosX(param.getSourceBay());     // 婧愬簱浣嶅垪
+        command.setSourcePosY(param.getSourceLev());     // 婧愬簱浣嶅眰
+        command.setDestinationPosZ(param.getRow());     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosX(param.getBay());     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosY(param.getLev());     // 鐩爣搴撲綅灞�
+
+        return crnControl(command);
+    }
+
+    //绔欏埌绔�
+    public boolean crnSiteMove(CrnOperatorParam param){
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡
+        command.setSourcePosX(param.getSourceStaNo());     // 婧愬簱浣嶆帓
+        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+        command.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
+        command.setDestinationPosX(param.getStaNo());     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+
+        return crnControl(command);
+    }
+
+    //鍥炲師鐐�
+    public boolean crnBacOrigin(CrnOperatorParam param){
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+
+        return crnControl(command);
+    }
+
+    //鍙嶅師鐐�
+    public boolean reverseOrigin(CrnOperatorParam param){
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡
+        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY((short) 22);     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+
+        return crnControl(command);
+    }
+
+    //浠诲姟瀹屾垚
+    public boolean crnTaskComplete(Integer crnNo) {
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+        command.setCommand((short)0);
+
+        return crnControl(command);
+    }
+
+    //娓呴櫎鍛戒护
+    public boolean crnClearCommand(CrnOperatorParam param){
+        CrnCommand command = new CrnCommand();
+        command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
+        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+        command.setSourcePosX((short) 0);     // 婧愬簱浣嶆帓
+        command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
+        command.setSourcePosZ((short) 0);     // 婧愬簱浣嶅眰
+        command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
+        command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
+        command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
+
+        return crnControl(command);
+    }
+
+    private boolean crnControl(CrnCommand command) {
+        if (command.getCrnNo() == null) {
+            return false;
+        }
+
+        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, command.getCrnNo());
+        if (crnThread == null) {
+            throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎");
+        }
+        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+        if (crnProtocol == null) {
+            throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎");
+        }
+        if (CommandUtils.offer(SlaveType.Crn, command.getCrnNo(), new Task(2, command), false)) {
+            return true;
+        } else {
+            throw new CoolException("鍛戒护涓嬪彂澶辫触");
+        }
+    }
+
+}
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index c16eb10..e461afe 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -337,20 +337,7 @@
         }
     }
 
-    public static String Fusion(int x, int y, int z){
-        String locNo="0"+x;
-        if(z>=10){
-            locNo=locNo+"0"+z;
-        }else{
-            locNo=locNo+"00"+z;
-        }
-        if(y>=10){
-            locNo=locNo+y;
-        }else {
-            locNo=locNo+"0"+y;
-        }
-
-        return locNo;
+    public static String getLocNo(Number row, Number bay, Number lev) {
+        return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2);
     }
-
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index b8b7b06..b7418ef 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -5,7 +5,6 @@
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PreDestroy;
@@ -42,8 +41,6 @@
                         continue;
                     }
 
-                    // 婕旂ず
-//                    mainService.crnDemoOfLocMove1();
                     // 鍏ュ簱  ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。
                     mainService.generateStoreWrkFile1(); // 缁勬墭
                     // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
@@ -61,9 +58,6 @@
    //                 mainService.autoDistribute();
                     //鑷姩瀹屾垚浠诲姟
 //                    mainService.autoCompleteTask();
-                    //agv鍙栨斁璐у畬鎴�
-//                    mainService.autoCompleteAGV();
-
                 } catch (Exception e) {
                     e.printStackTrace();
                 }

--
Gitblit v1.9.1