From 7d06cea49f39ab2bc9177833d0ab2a04bd53e3eb Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 22 十一月 2023 13:42:27 +0800
Subject: [PATCH] #联机

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  154 ++++++++++++++-------------------------------------
 1 files changed, 42 insertions(+), 112 deletions(-)

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 2a9978d..1905621 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
@@ -14,6 +15,7 @@
 import com.zy.asrs.utils.PostMesDataUtils;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.service.CommonService;
+import com.zy.common.utils.HttpHandler;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.SlaveConnection;
@@ -213,17 +215,6 @@
             if(null == taskWrk) {
                 continue;
             }
-            // 鑾峰彇搴撲綅淇℃伅
-            String locNo = taskWrk.getTargetPoint();
-            LocMast locMast = locMastService.selectById(locNo);
-            if (locMast == null) {
-                log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", locNo);
-                continue;
-            }
-            if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
-                log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locNo, locMast.getLocSts());
-                continue;
-            }
 
             // 鍫嗗灈鏈烘帶鍒惰繃婊�
             if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
@@ -241,12 +232,13 @@
             crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
             crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
             crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
-            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
-            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
-            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
-            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+            crnCommand.setSourcePosX(crnStn.getBay().shortValue());     // 婧愬簱浣嶅垪
+            crnCommand.setSourcePosY(crnStn.getLev().shortValue());     // 婧愬簱浣嶅眰
+            crnCommand.setSourcePosZ(crnStn.getRow().shortValue());     // 婧愬簱浣嶆帓
+            crnCommand.setDestinationPosX(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosY(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
+            crnCommand.setDestinationPosZ(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
+            crnCommand.setCommand((short)1);
             if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
                 log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
@@ -277,13 +269,6 @@
                 // 宸ヤ綔妗g姸鎬佸垽鏂�
                 if (taskWrk.getIoType() != 2 || taskWrk.getTargetPoint() == null) {
                     log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getTargetPoint(), taskWrk.getIoType());
-                    continue;
-                }
-                // 鑾峰彇婧愬簱浣嶄俊鎭�
-                String locNo = taskWrk.getStartPoint();
-                LocMast sourceSta = locMastService.selectById(locNo);
-                if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
-                    log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locNo, sourceSta.getLocSts());
                     continue;
                 }
                 // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -320,25 +305,33 @@
                     // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
                     if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
 
+                        taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo());
+
                         List<TaskWrk> taskWrks1 = taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo());
                         if (Cools.isEmpty(taskWrks1) && taskWrks1.size()!=0){
-                            break;
+                            continue;
                         }
                         String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
-                        LocMast shallowLoc = locMastService.selectById(shallowLocNo);
-                        if (!shallowLoc.getLocSts().equals("O")){
-                            // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
-                            if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
-                                log.error("宸ヤ綔鍙�={}锛屽簱浣嶅彿={}锛屾祬搴撲綅寮傚父锛氭祬搴撲綅鍙凤細={}锛屽簱浣嶇姸鎬�={}",taskWrk.getTaskNo(),taskWrk.getStartPoint(),shallowLocNo,shallowLoc.getLocSts());
-                            } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
-                                taskWrk.setTransferMark(1);
-                                taskWrkMapper.updateById(taskWrk);
-                                WMSAndAGVInterfaceParam param = new WMSAndAGVInterfaceParam();
-                                param.setTaskNo(taskWrk.getTaskNo());
-                                new PostMesDataUtils().postMesData("MES绯荤粺",wmsUrl,movePath,param);
-                                log.error("宸ヤ綔鍙�={}锛屽簱浣嶅彿={}锛屾祬搴撲綅闇�瑕佺Щ搴擄細娴呭簱浣嶅彿锛�={}锛屽簱浣嶇姸鎬�={}",taskWrk.getTaskNo(),taskWrk.getStartPoint(),shallowLocNo,shallowLoc.getLocSts());
-                            } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
-                                log.error("宸ヤ綔鍙�={}锛屽簱浣嶅彿={}锛屾祬搴撲綅寮傚父锛氭祬搴撲綅鍙凤細={}锛屽簱浣嶇姸鎬�={}",taskWrk.getTaskNo(),taskWrk.getStartPoint(),shallowLocNo,shallowLoc.getLocSts());
+                        TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
+                        if (!Cools.isEmpty(hallowLocNoTask)){
+                            if (!Cools.isEmpty(hallowLocNoTask.getTargetPoint())){
+                                continue;
+                            }
+//                            new PostMesDataUtils().postMesData("绉诲簱浠诲姟鍒嗛厤搴撲綅",wmsUrl,movePath,hallowLocNoTask);
+                            try {
+                                String response = new HttpHandler.Builder()
+                                        .setUri(wmsUrl)
+                                        .setPath(movePath)
+                                        .setJson(JSON.toJSONString(hallowLocNoTask))
+                                        .build()
+                                        .doPost();
+                                System.out.println("response:"+response);
+                                JSONObject jsonObject = JSON.parseObject(response);
+                                if (jsonObject.getInteger("code").equals(200)) {
+                                    //瑙f瀽
+                                }
+                            }catch (Exception e){
+                                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/"+movePath, JSON.toJSONString(hallowLocNoTask), "璇锋眰绉诲簱浠诲姟鍒嗛厤搴撲綅");
                             }
                             continue;
                         }
@@ -350,9 +343,9 @@
                     crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
                     crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
                     crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                    crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                    crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                    crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+                    crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶆帓
+                    crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅垪
+                    crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅眰
                     crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
                     crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
                     crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
@@ -382,7 +375,7 @@
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗�
             List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut3(slave.getId(), crnStn.getStaNo().toString());
             for (TaskWrk taskWrk : taskWrks){
-                if (taskWrk == null) {
+                if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("")) {
                     continue;
                 }
                 // 宸ヤ綔妗g姸鎬佸垽鏂�
@@ -390,38 +383,7 @@
                     log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/鐩爣搴撲綅鍙�, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getTargetPoint(), taskWrk.getIoType());
                     continue;
                 }
-                // 鑾峰彇婧愬簱浣嶄俊鎭�
-                String locNo = taskWrk.getStartPoint();
-                LocMast sourceSta = locMastService.selectById(locNo);
-                if (!sourceSta.getLocSts().equals("R") &&!sourceSta.getLocSts().equals("P")) {
-                    log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locNo, sourceSta.getLocSts());
-                    continue;
-                }
 
-                // 鑾峰彇鐩爣搴撲綅淇℃伅
-                String locNoEnd = taskWrk.getTargetPoint();
-                LocMast sourceEnd = locMastService.selectById(locNoEnd);
-                if (!sourceEnd.getLocSts().equals("S") && !sourceEnd.getLocSts().equals("Q")) {
-                    log.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locNo, sourceSta.getLocSts());
-                    continue;
-                }
-
-
-//                // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
-//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
-//                StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
-//                if (staProtocol == null) {
-//                    break;
-//                } else {
-//                    staProtocol = staProtocol.clone();
-//                }
-
-                // 鏌ヨ绔欑偣璇︾粏淇℃伅
-                BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
-                if (staDetl == null) {
-                    log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
-                    continue;
-                }
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
                 // 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -434,38 +396,6 @@
                     continue;
                 }
 
-                // 璧峰娣卞簱浣嶆祬搴撲綅涓嶄负绌�
-                if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
-                    // 鑾峰彇娴呭簱浣嶄俊鎭�
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
-                    LocMast shallowLocMast = locMastService.selectById(shallowLocNo);
-                    if (!shallowLocMast.getLocSts().equals("O")) {
-                        log.error("绉诲簱鎿嶄綔璧峰搴撲綅娴呭簱浣嶇姸鎬佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locNo, shallowLocMast.getLocSts());
-                        continue;
-                    }
-                }
-
-                // 鐩爣搴撲綅涓烘繁搴撲綅涓旀祬搴撲綅涓嶄负绌�
-                if (Utils.isDeepLoc(slaveProperties, taskWrk.getTargetPoint())) {
-                    // 鑾峰彇娴呭簱浣嶄俊鎭�
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getTargetPoint());
-                    LocMast shallowLocMast = locMastService.selectById(shallowLocNo);
-                    if (!shallowLocMast.getLocSts().equals("O")) {
-                        log.error("绉诲簱鎿嶄綔鐩爣搴撲綅娴呭簱浣嶇姸鎬佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locNo, shallowLocMast.getLocSts());
-                        continue;
-                    }
-                }
-
-                // 鐩爣搴撲綅涓烘祬搴撲綅涓旀繁搴撲綅鏃犺揣
-                if (Utils.isShallowLoc(slaveProperties, taskWrk.getTargetPoint())) {
-                    // 鑾峰彇娣卞簱浣嶄俊鎭�
-                    String deepLocNo = Utils.getDeepLoc(slaveProperties, taskWrk.getTargetPoint());
-                    LocMast deepLocMast = locMastService.selectById(deepLocNo);
-                    if (!deepLocMast.getLocSts().equals("F") && !deepLocMast.getLocSts().equals("D") ) {
-                        log.error("绉诲簱鎿嶄綔鐩爣搴撲綅娣卞簱浣嶇姸鎬佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", locNo, deepLocMast.getLocSts());
-                        continue;
-                    }
-                }
 
                 // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
                 CrnCommand crnCommand = new CrnCommand();
@@ -473,12 +403,12 @@
                 crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙�
                 crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
                 crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-                crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
-                crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
-                crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
-                crnCommand.setDestinationPosX(sourceEnd.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
-                crnCommand.setDestinationPosY(sourceEnd.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
-                crnCommand.setDestinationPosZ(sourceEnd.getLev1().shortValue());     // 鐩爣搴撲綅灞�
+                crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶆帓
+                crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅垪
+                crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint()));     // 婧愬簱浣嶅眰
+                crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鎺�
+                crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅鍒�
+                crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint()));     // 鐩爣搴撲綅灞�
                 if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
                     log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
                 } else {

--
Gitblit v1.9.1