From 50435a81915932eda06b7f1afd48f9ff1ae84f19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期四, 10 四月 2025 17:50:28 +0800
Subject: [PATCH] 1

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java |  258 +++++++++++++++++++++++-------------
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java       |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java               |    1 
 zy-asrs-flow/src/app.jsx                                                         |    0 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java          |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java    |  116 ++++++++++------
 zy-asrs-wcs/src/main/resources/application.yml                                   |    6 
 7 files changed, 241 insertions(+), 144 deletions(-)

diff --git a/zy-asrs-flow/src/App.jsx b/zy-asrs-flow/src/app.jsx
similarity index 100%
rename from zy-asrs-flow/src/App.jsx
rename to zy-asrs-flow/src/app.jsx
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
index ce2f0fd..e5efb23 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java
@@ -28,13 +28,17 @@
 import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
 import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol;
 import com.zy.asrs.wcs.rcs.service.DeviceService;
-import com.zy.asrs.wcs.rcs.thread.*;
+import com.zy.asrs.wcs.rcs.thread.DevpThread;
+import com.zy.asrs.wcs.rcs.thread.LedThread;
+import com.zy.asrs.wcs.rcs.thread.LiftThread;
+import com.zy.asrs.wcs.rcs.thread.ShuttleThread;
 import com.zy.asrs.wcs.system.entity.Dict;
 import com.zy.asrs.wcs.system.service.DictService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
 import java.util.*;
 
 /**
@@ -89,6 +93,71 @@
     @Autowired
     private ShuttleStandbyService shuttleStandbyService;
 
+
+    private boolean isInEnable(DevpThread devpThread, Integer staNo) {
+        if (staNo == null) {
+            return false;
+        }
+        // 鑾峰彇鍏ュ簱绔欎俊鎭�
+        switch (staNo) {
+            case 1011:
+            case 1012:
+                devpThread.getStation().get(1012).isInEnable();
+                break;
+            case 1021:
+            case 1022:
+            case 1023:
+                devpThread.getStation().get(1022).isInEnable();
+                break;
+            case 1031:
+            case 1032:
+                devpThread.getStation().get(1032).isInEnable();
+                break;
+            case 1025:
+            case 1026:
+                devpThread.getStation().get(1025).isInEnable();
+                break;
+            case 1013:
+            case 1014:
+            case 1015:
+                devpThread.getStation().get(1014).isInEnable();
+                break;
+        }
+        return false;
+    }
+
+    private boolean isOutEnable(DevpThread devpThread, Integer staNo) {
+        if (staNo == null) {
+            return false;
+        }
+        // 鑾峰彇鍏ュ簱绔欎俊鎭�
+        switch (staNo) {
+            case 1011:
+            case 1012:
+                devpThread.getStation().get(1012).isOutEnable();
+                break;
+            case 1021:
+            case 1022:
+            case 1023:
+                devpThread.getStation().get(1022).isOutEnable();
+                break;
+            case 1031:
+            case 1032:
+                devpThread.getStation().get(1032).isOutEnable();
+                break;
+            case 1025:
+            case 1026:
+                devpThread.getStation().get(1025).isOutEnable();
+                break;
+            case 1013:
+            case 1014:
+            case 1015:
+                devpThread.getStation().get(1014).isOutEnable();
+                break;
+        }
+        return false;
+    }
+
     /**
      * 缁勬墭
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -104,7 +173,7 @@
                 // 閬嶅巻鍏ュ簱鍙�
                 for (StaDto inSta : JSON.parseArray(basConveyor.getInSta(), StaDto.class)) {
                     BasConveyorSta basConveyorSta = basConveyorStaService.selectBySiteNo(inSta.getStaNo().toString());
-                    if(basConveyorSta == null) {
+                    if (basConveyorSta == null) {
                         continue;
                     }
 
@@ -160,7 +229,7 @@
 
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                     if (staProtocol.isAutoing() && staProtocol.isLoading()
-                            && staProtocol.isInEnable()
+                            && isInEnable(devpThread, inSta.getStaNo())
                             && !staProtocol.isEmptyMk() && (workNo == 0 || (workNo >= 9990 && workNo <= 9999))
                             && staProtocol.isPakMk()
                     ) {
@@ -197,7 +266,7 @@
                         if (task1 != null) {
                             News.error("宸ヤ綔妗e凡瀛樺湪,宸ヤ綔鍙�={}", task1.getTaskNo());
                             if (staProtocol.getWorkNo().intValue() != Integer.parseInt(task1.getTaskNo())) {
-                                devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getOriginSite()));
+                                devpThread.writeWorkSta(staProtocol.getSiteId(), Short.parseShort(task1.getTaskNo()), Short.parseShort(task1.getDestSite()));
                                 devpThread.setPakMk(staProtocol.getSiteId(), false);
                                 News.info("杈撻�佺嚎鍏ュ簱鍛戒护涓嬪彂锛屼换鍔℃暟鎹�={}", JSON.toJSON(task1));
                             }
@@ -262,7 +331,7 @@
 //                                }
 
                                 redisUtil.set(DeviceRedisConstant.LIFT_PALLET_INBOUND + inSta.getStaNo(), "in", 10);
-                            }else {
+                            } else {
                                 String msg = jsonObject.getString("msg");
                                 HashMap<String, String> hashMap = new HashMap<>();
                                 hashMap.put("msg", msg);
@@ -339,10 +408,10 @@
                         mapNode.setXBase(object.getInteger("refx"));
                         mapNode.setYBase(object.getInteger("refy"));
 
-                        if(mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+                        if (mapNode.getValue() == MapNodeType.CONVEYOR.id) {
                             //杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋
                             if (object.containsKey("conveyorHasGo")) {
-                                if(object.getBoolean("conveyorHasGo")) {
+                                if (object.getBoolean("conveyorHasGo")) {
                                     //灏忚溅鍙蛋
                                     mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id);
                                 }
@@ -436,7 +505,7 @@
 
                 ArrayList<MapNode> headNodes = new ArrayList<>();
                 ArrayList<MapNode> footerNodes = new ArrayList<>();
-                for (int i = 0; i < row+2; i++) {
+                for (int i = 0; i < row + 2; i++) {
                     headNodes.add(mapNode.clone());
                     footerNodes.add(mapNode.clone());
                 }
@@ -473,7 +542,7 @@
                 // 閬嶅巻鍏ュ簱鍙�
                 for (StaDto inSta : JSON.parseArray(basConveyor.getDeviceInSta(), StaDto.class)) {
                     BasConveyorSta basConveyorSta = basConveyorStaService.selectBySiteNo(inSta.getStaNo().toString());
-                    if(basConveyorSta == null) {
+                    if (basConveyorSta == null) {
                         continue;
                     }
 
@@ -485,94 +554,93 @@
                     } else {
                         staProtocol = staProtocol.clone();
                     }
-                    int workNo = staProtocol.getWorkNo().intValue();
-
+                    int workNo = 0;
                     // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                    if (staProtocol.isAutoing()
-                            && staProtocol.isLoading()
-                            && staProtocol.isInEnable()
-                            && (workNo >= 0)
-//                            && staProtocol.isPakMk()
-                    ) {
+                    if ((staProtocol.getSiteId() == 1015 || staProtocol.getSiteId() == 1023 || staProtocol.getSiteId() == 1026 || staProtocol.getSiteId() == 1032) &&
+                            staProtocol.isAutoing() && staProtocol.isLoading()) {
+                        workNo = staProtocol.getFinishWorkNo().intValue();
+                    } else if ((staProtocol.getSiteId() == 1012) && staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) {
+                        workNo = staProtocol.getWorkNo().intValue();
+                    } else {
+                        continue;
+                    }
 
-                        Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
-                                .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts)
-                                .eq(Task::getTaskNo, workNo));
-                        if (task != null) {
-                            if (!Cools.isEmpty(task.getLiftNo())) {
-                                if (task.getLiftNo() > 0) {
-                                    task.setLiftNo(0);
-                                    task.setUpdateTime(new Date());
-                                    if (!taskService.updateById(task)) {
-                                        News.info("{}浠诲姟鏇存柊閲婃斁鎻愬崌鏈哄け璐�", task.getTaskNo());
-                                    }
-                                }
-                            }
-
-                            //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑鍙崲灞傛彁鍗囨満(鍙兘涓嶇┖闂�)
-                            LiftThread liftThread = liftDispatcher.searchLift(task.getDestLoc(), task.getHostId(), true);
-                            if (liftThread == null) {
-                                continue;
-                            }
-                            Device transferLiftDevice = liftThread.getDevice();
-                            //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満
-                            ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
-                                    .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId())
-                                    .eq(ShuttleStandby::getDeviceLev, Utils.getLev(task.getDestLoc()))
-                                    .eq(ShuttleStandby::getStatus, 1));
-                            //绌挎杞﹁繘鎻愬崌鏈哄簱浣嶅彿
-                            String liftLocNoTo = shuttleStandbyTo.getDeviceLoc();
-                            //绌挎杞﹁繘鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙�  杈撻�佺嚎浣嶇疆
-                            String standbyLocNoTo = shuttleStandbyTo.getDeviceStandbyLoc();
-
-                            //涓嶈蛋鎻愬崌鏈�
-                            if (staProtocol.getSiteId() == 1015 || staProtocol.getSiteId() == 1026) {
-                                standbyLocNoTo = staProtocol.getLocNo();
-                            }
-
-                            if (Cools.isEmpty(task.getShuttleNo())) {
-                                //鍒嗛厤灏忚溅
-                                //璋冨害绌洪棽杞﹀幓鍙栬揣寰呮満浣�
-                                Device shuttleDevice = shuttleDispatcher.dispatchShuttle(task, standbyLocNoTo);
-                                if (shuttleDevice == null) {
-                                    News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
-                                    continue;
-                                }
-
-                                task.setShuttleNo(Integer.valueOf(shuttleDevice.getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+                    Task task = taskService.getOne(new LambdaQueryWrapper<Task>()
+                            .in(Task::getTaskSts, TaskStsType.NEW_INBOUND.sts)
+                            .eq(Task::getTaskNo, workNo));
+                    if (task != null) {
+                        if (!Cools.isEmpty(task.getLiftNo())) {
+                            if (task.getLiftNo() > 0) {
+                                task.setLiftNo(0);
                                 task.setUpdateTime(new Date());
                                 if (!taskService.updateById(task)) {
-                                    News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                                    News.info("{}浠诲姟鏇存柊閲婃斁鎻愬崌鏈哄け璐�", task.getTaskNo());
                                 }
-                                continue;
                             }
-
-                            //鍒ゆ柇灏忚溅鏄惁鍒拌揪鍙栬揣寰呮満浣嶇疆
-                            String shuttleLocNo = shuttleDispatcher.findShuttleLocNo(task.getShuttleNo(), task.getHostId());
-                            if (shuttleLocNo == null) {
-                                continue;
-                            }
-
-                            if (!standbyLocNoTo.equals(shuttleLocNo)) {
-                                continue;
-                            }
-
-                            // generate motion list
-                            List<Motion> motionList = analyzeService.generateMotion(task);
-                            if (motionList.isEmpty()) {
-                                continue;
-                            }
-                            motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
-
-                            // 鏇存柊宸ヤ綔涓绘。
-                            task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
-                            task.setUpdateTime(new Date());
-                            if (!taskService.updateById(task)) {
-                                News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
-                            }
-                            break;
                         }
 
+                        //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑鍙崲灞傛彁鍗囨満(鍙兘涓嶇┖闂�)
+                        LiftThread liftThread = liftDispatcher.searchLift(task.getDestLoc(), task.getHostId(), true);
+                        if (liftThread == null) {
+                            continue;
+                        }
+                        Device transferLiftDevice = liftThread.getDevice();
+                        //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満
+                        ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>()
+                                .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId())
+                                .eq(ShuttleStandby::getDeviceLev, Utils.getLev(task.getDestLoc()))
+                                .eq(ShuttleStandby::getStatus, 1));
+                        //绌挎杞﹁繘鎻愬崌鏈哄簱浣嶅彿
+                        String liftLocNoTo = shuttleStandbyTo.getDeviceLoc();
+                        //绌挎杞﹁繘鎻愬崌鏈哄緟鏈轰綅搴撲綅鍙�  杈撻�佺嚎浣嶇疆
+                        String standbyLocNoTo = shuttleStandbyTo.getDeviceStandbyLoc();
+
+                        //涓嶈蛋鎻愬崌鏈�
+                        if (staProtocol.getSiteId() == 1015 || staProtocol.getSiteId() == 1026) {
+                            standbyLocNoTo = staProtocol.getLocNo();
+                        }
+
+                        if (Cools.isEmpty(task.getShuttleNo())) {
+                            //鍒嗛厤灏忚溅
+                            //璋冨害绌洪棽杞﹀幓鍙栬揣寰呮満浣�
+                            Device shuttleDevice = shuttleDispatcher.dispatchShuttle(task, standbyLocNoTo);
+                            if (shuttleDevice == null) {
+                                News.info("{}浠诲姟鏈壘鍒扮┖闂茬┛姊溅", task.getTaskNo());
+                                continue;
+                            }
+
+                            task.setShuttleNo(Integer.valueOf(shuttleDevice.getDeviceNo()));//淇濆瓨绌挎杞﹀彿
+                            task.setUpdateTime(new Date());
+                            if (!taskService.updateById(task)) {
+                                News.info("{}浠诲姟鏇存柊绌挎杞﹀彿澶辫触", task.getTaskNo());
+                            }
+                            continue;
+                        }
+
+                        //鍒ゆ柇灏忚溅鏄惁鍒拌揪鍙栬揣寰呮満浣嶇疆
+                        String shuttleLocNo = shuttleDispatcher.findShuttleLocNo(task.getShuttleNo(), task.getHostId());
+                        if (shuttleLocNo == null) {
+                            continue;
+                        }
+
+                        if (!standbyLocNoTo.equals(shuttleLocNo)) {
+                            continue;
+                        }
+
+                        // generate motion list
+                        List<Motion> motionList = analyzeService.generateMotion(task);
+                        if (motionList.isEmpty()) {
+                            continue;
+                        }
+                        motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo()), task.getHostId());
+
+                        // 鏇存柊宸ヤ綔涓绘。
+                        task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 宸ヤ綔鐘舵��
+                        task.setUpdateTime(new Date());
+                        if (!taskService.updateById(task)) {
+                            News.error("鏇存柊宸ヤ綔妗eけ璐ワ紒锛侊紒 [宸ヤ綔鍙凤細{}]", task.getTaskNo());
+                        }
+                        break;
                     }
                 }
             }
@@ -678,7 +746,7 @@
             }
 
             BasConveyor basConveyor = basConveyorService.getById(destStaObj.getConveyorId());
-            if(basConveyor == null) {
+            if (basConveyor == null) {
                 continue;
             }
 
@@ -1069,8 +1137,8 @@
                     staProtocol = staProtocol.clone();
                 }
                 String taskNo = "0";
-                if (staProtocol.isOutEnable() && staProtocol.getSiteId() == 31001 ){
-                    if (0 != staProtocol.getWorkNo()){
+                if (staProtocol.isOutEnable() && staProtocol.getSiteId() == 31001) {
+                    if (0 != staProtocol.getWorkNo()) {
                         Motion motion = motionService.getOne(new LambdaQueryWrapper<Motion>().eq(Motion::getMotionCtg, 9).eq(Motion::getTemp, staProtocol.getWorkNo()));
                         // 鑾峰彇宸ヤ綔妗f暟鎹�
                         Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, motion.getTaskNo()));
@@ -1092,7 +1160,7 @@
 
                         HashMap<String, Object> param = new HashMap<>();
                         param.put("taskNo", taskNo);
-                        param.put("sta",staNo);
+                        param.put("sta", staNo);
                         String response = new HttpHandler.Builder()
                                 .setUri(wmsUrl)
                                 .setPath("/rpc/led/getTask")
@@ -1174,7 +1242,9 @@
             for (Integer staNo : staArr) {
                 // 鑾峰彇鍙夎溅绔欑偣
                 StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) { continue; }
+                if (staProtocol == null) {
+                    continue;
+                }
                 if (staProtocol.getWorkNo() != 0) {
                     reset = false;
                     break;
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
index 0b3cf6a..55dbc98 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateSolution.java
@@ -74,7 +74,7 @@
             }
         }
 
-        ProcessBuilder processBuilder = new ProcessBuilder("python", pythonScriptPath, maps, startStr, targetStr, mapDirection);
+        ProcessBuilder processBuilder = new ProcessBuilder("python3", pythonScriptPath, maps, startStr, targetStr, mapDirection);
         processBuilder.redirectErrorStream(true);
 
         try {
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
index 4d998c0..3958d5d 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java
@@ -380,7 +380,7 @@
                 second.add(new int[]{node.getX(), node.getY()});
             }
 
-            ProcessBuilder processBuilder = new ProcessBuilder("python", pythonCalcSimilarity, JSON.toJSONString(first), JSON.toJSONString(second));
+            ProcessBuilder processBuilder = new ProcessBuilder("python3", pythonCalcSimilarity, JSON.toJSONString(first), JSON.toJSONString(second));
             processBuilder.redirectErrorStream(true);
 
             Process process = processBuilder.start();
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java
index 90934c5..a8da832 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/ServerBootstrap.java
@@ -88,6 +88,7 @@
                     Constructor<?> constructor = clazz.getConstructor(Device.class, RedisUtil.class);
                     Object instance = constructor.newInstance(device, redisUtil);
                     new Thread((Runnable) instance).start();
+
                     SlaveConnection.put(SlaveType.findInstance(type.getFlag()), device.getId().intValue(), (ThreadHandler) instance);
                 } catch (Exception e) {
                     e.printStackTrace();
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
index eced132..a01dcdd 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/rcs/thread/impl/FyxcDevpThread.java
@@ -47,11 +47,31 @@
     public static ArrayList<BasConveyorSta> stationList = new ArrayList<>();
 
     public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
-        add(1012);add(1014);add(1015);add(1022);
-        add(1023);add(1025);add(1026);add(1031);
+        add(1012);
+        add(1014);
+        add(1015);
+        add(1022);
+        add(1023);
+        add(1025);
+        add(1026);
+        add(1031);
         add(1032);
+    }};
 
-
+    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+        add(1011);
+        add(1012);
+        add(1013);
+        add(1014);
+        add(1015);
+        add(1021);
+        add(1022);
+        add(1023);
+        add(1024);
+        add(1025);
+        add(1026);
+        add(1031);
+        add(1032);
     }};
 
     /**
@@ -84,7 +104,7 @@
                 BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>()
                         .eq(BasConveyor::getDeviceId, device.getId())
                         .eq(BasConveyor::getHostId, device.getHostId()));
-                if(basConveyor != null) {
+                if (basConveyor != null) {
                     List<BasConveyorSta> stations = basConveyorStaService.list(new LambdaQueryWrapper<BasConveyorSta>()
                             .eq(BasConveyorSta::getConveyorId, basConveyor.getId())
                             .eq(BasConveyorSta::getHostId, device.getHostId()));
@@ -128,14 +148,14 @@
 
                     if (siteId == 1015) {
                         staProtocol.setLocNo("1200301");
-                    }else if (siteId == 1026) {
+                    } else if (siteId == 1026) {
                         staProtocol.setLocNo("1200305");
                     }
 
                     station.put(siteId, staProtocol);
                 }
                 Thread.sleep(300);
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*26, 2);
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 26, 2);
                 staProtocol.setAutoing(status[0]);  // 鑷姩
                 staProtocol.setIdle(status[1]); //绌洪棽
                 staProtocol.setLoading(status[2]);  // 鏈夌墿
@@ -151,15 +171,15 @@
                 staProtocol.setOutEnable(status[14]);// 鍙嚭
 
 
-                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+2));     // 宸ヤ綔鍙�
-                staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+6)); //宸插畬鎴愬伐浣滃彿
-                staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*26+10,12, "UTF-8").trim()); //鏉$爜
-                staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i*26+22)); //閲嶉噺
+                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 2));     // 宸ヤ綔鍙�
+                staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 4));   // 鐩爣绔�
+                staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 26 + 6)); //宸插畬鎴愬伐浣滃彿
+                staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content, i * 26 + 10, 12, "UTF-8").trim()); //鏉$爜
+                staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i * 26 + 22)); //閲嶉噺
 
 
 //                staProtocol.setWorkMode((int) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 40 + 8));// 宸ヤ綔妯″紡
-                staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10));     // 宸ヤ綔鍙�
-                staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 12));   // 鐩爣绔�
+                //staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt16(result.Content, i * 18 + 10));     // 宸ヤ綔鍙�
 
                 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                     staProtocol.setPakMk(true);
@@ -170,7 +190,7 @@
         OperateResultExOne<byte[]> resultBarcode = siemensS7Net.Read("DB100.166", (short) 9);
         if (resultBarcode.IsSuccess) {
             //鏉$爜鏁版嵁
-            String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content,0,9, "UTF-8");// 鏉$爜
+            String barcode = siemensS7Net.getByteTransform().TransString(resultBarcode.Content, 0, 9, "UTF-8");// 鏉$爜
             BasConveyorStaService basConveyorStaService = SpringUtils.getBean(BasConveyorStaService.class);
             DeviceBarcodeService deviceBarcodeService = SpringUtils.getBean(DeviceBarcodeService.class);
             BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, 31002));
@@ -187,7 +207,7 @@
 
         if (!Cools.isEmpty(result) && result.IsSuccess) {
 
-            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), device.getId()));
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), device.getId()));
 
             // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
             try {
@@ -224,12 +244,12 @@
         siemensS7Net.setRack(device.getRack().byteValue());
         siemensS7Net.setSlot(device.getSlot().byteValue());
         OperateResult connect = siemensS7Net.ConnectServer();
-        if(connect.IsSuccess){
+        if (connect.IsSuccess) {
             result = true;
-            OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
             News.info("杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort());
         } else {
-            OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]  [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣緭閫佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]  [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), device.getId(), device.getIp(), device.getPort(), device.getRack(), device.getSlot()));
             News.error("杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", device.getId(), device.getIp(), device.getPort());
         }
         // siemensS7Net.ConnectClose();
@@ -246,44 +266,45 @@
         int index = staNos1.indexOf(siteId);
         index += 1;
 
-        OperateResult write = siemensS7Net.Write("DB83." + (index *8+6),(int) workNo);    // 宸ヤ綔鍙�
+        OperateResult write = siemensS7Net.Write("DB83." + (index * 8 + 6), (int) workNo);    // 宸ヤ綔鍙�
 
         if (!write.IsSuccess) {
             StaProtocol staProtocol = station.get(siteId);
-            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
                 staProtocol.setPakMk(true);
             }
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol)));
             log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
         } else {
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(workNo)));
-            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  device.getId(), JSON.toJSON(workNo));
+            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(workNo));
             return true;
         }
         return false;
     }
 
     @Override
-    public boolean writeStaNo(int siteId,short staNo) {
+    public boolean writeStaNo(int siteId, short staNo) {
         int index = staNos1.indexOf(siteId);
         index += 1;
 
-        OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4),(int) staNo);    // 鐩爣绔�
+        OperateResult write = siemensS7Net.Write("DB101." + (index * 8 + 4), (int) staNo);    // 鐩爣绔�
 
         if (!write.IsSuccess) {
             StaProtocol staProtocol = station.get(siteId);
-            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
                 staProtocol.setPakMk(true);
             }
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", device.getId(), JSON.toJSON(staProtocol)));
             log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", device.getId(), JSON.toJSON(staProtocol));
         } else {
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), device.getId(), JSON.toJSON(staNo)));
-            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  device.getId(), JSON.toJSON(staNo));
+            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", device.getId(), JSON.toJSON(staNo));
             return true;
         }
         return false;
     }
+
 
     @Override
     public boolean writeWorkSta(int siteId, short workNo, short staNo) {
@@ -294,37 +315,42 @@
         array[0] = workNo;
         array[1] = staNo;
 
-        String workNoAddress = "DB83." + (index * 8 + 6);
         String staNoAddress = "DB83." + (index * 8 + 4);
+        String workNoAddress = "DB83." + (index * 8 + 6);
         OperateResult write1 = null;    // 宸ヤ綔鍙�
         OperateResult write2 = null;     // 鐩爣绔�
 
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write1 = siemensS7Net.Write(workNoAddress,  workNo);    // 宸ヤ綔鍙�
+            write1 = siemensS7Net.Write(workNoAddress, workNo);    // 宸ヤ綔鍙�
             write2 = siemensS7Net.Write(staNoAddress, staNo);
             if ((write1.IsSuccess && write2.IsSuccess)) {
-                OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
-                if (readResult.IsSuccess) {
-                    int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
-                    int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
-                    if (workNo == workNo2 && staNo == staNo2) {
-                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
-                        log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
-                        return true;
-                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
-                        writeCount++;
-                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
-                    }
-                } else {
-                    writeCount++;
-                    log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
-                }
-            }else {
+                log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+                return true;
+//                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB82.14", (short) (staNos2.indexOf(siteId) * 26));
+//                //OperateResultExOne<byte[]> readResult = siemensS7Net.Read(staNoAddress, (short) 8);
+//                if (readResult.IsSuccess) {
+//                    int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);     // 宸ヤ綔鍙�
+//                    int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);   // 鐩爣绔�
+//                    // int staNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+//                    //int workNo2 = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+//                    if (workNo == workNo2 && staNo == staNo2) {
+//                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
+//                        log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+//                        return true;
+//                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
+//                        writeCount++;
+//                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋},{}锛屽啓鍏ユ鏁�={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+//                    }
+//                } else {
+//                    writeCount++;
+//                    log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},{},鍐欏叆娆℃暟={}", siteId, JSON.toJSON(workNo), JSON.toJSON(staNo), writeCount);
+//                }
+            } else {
                 writeCount++;
             }
-        }while (writeCount < 5) ;
+        } while (writeCount < 5);
 //        StaProtocol staProtocol = station.get(siteId);
 //        if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
 //            staProtocol.setPakMk(true);
@@ -380,7 +406,7 @@
     @Override
     public boolean switchWorkMode(int siteId, int workMode) {
         WorkModeTypeDto workModeTypeDto = workModeTypes.get(siteId);
-        if(workModeTypeDto == null) {
+        if (workModeTypeDto == null) {
             return false;
         }
 
diff --git a/zy-asrs-wcs/src/main/resources/application.yml b/zy-asrs-wcs/src/main/resources/application.yml
index 2f2fc6e..e16a303 100644
--- a/zy-asrs-wcs/src/main/resources/application.yml
+++ b/zy-asrs-wcs/src/main/resources/application.yml
@@ -20,7 +20,7 @@
 #    password: zy@123
     url: jdbc:mysql://127.0.0.1:3306/fyxcasrs?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
     username: root
-    password: root
+    password: zhangchao
 #    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
 #    url: jdbc:sqlserver://47.97.1.152:51433;databasename=jkasrs
 #    username: sa
@@ -63,5 +63,5 @@
 config:
   token-key: KUHSMcYQ4lePt3r6bckz0P13cBJyoonYqInThvQlUnbsFCIcCcZZAbWZ6UNFztYNYPhGdy6eyb8WdIz8FU2Cz396TyTJk3NI2rtXMHBOehRb4WWJ4MdYVVg2oWPyqRQ2
 
-pythonCalcPath: D:\\path\\cpu.py
-pythonCalcSimilarity: D:\\path\\similarity.py
\ No newline at end of file
+pythonCalcPath: /Users/zhangc/workspace/zoneyang/cpu.py
+pythonCalcSimilarity: /Users/zhangc/workspace/zoneyang/similarity.py
\ No newline at end of file

--
Gitblit v1.9.1