From ee6863dd561415cebed005d51e8c15ec8c2f5004 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 28 七月 2024 20:12:40 +0800
Subject: [PATCH] wcs配置,流程修改

---
 src/main/java/com/zy/common/model/MatDto.java           |   20 +
 src/main/java/com/zy/core/thread/SiemensCrnThread.java  |   23 
 src/main/java/com/zy/controller/SiteController.java     |    1 
 src/main/java/com/zy/service/impl/MainServiceImpl.java  |  138 ++++----
 src/main/webapp/static/js/console.map.js                |   60 ++-
 src/main/java/com/zy/core/MainProcess.java              |    8 
 src/main/java/com/zy/core/model/command/LedCommand.java |   45 +-
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |  336 +++++++++++++++-------
 src/main/resources/application.yml                      |  198 +++++-------
 src/main/java/com/zy/core/ServerBootstrap.java          |   20 
 10 files changed, 490 insertions(+), 359 deletions(-)

diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index 99a2f28..19429ab 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -18,6 +18,16 @@
 
     private String specs;
 
+    private String model;
+
+    private String manuDate;
+
+    private double weight;
+
+    private double length;
+
+    private double volume;
+
     // 瀹㈡埛淇℃伅
     private String manu;
 
@@ -41,6 +51,16 @@
         this.count = count;
         this.total = total;
     }
+    public MatDto(String matnr,String batch,String specs,String manuDate,String model,double weight, double length,double volume) {
+        this.matnr = matnr;
+        this.batch = batch;
+        this.specs = specs;
+        this.manuDate = manuDate;
+        this.model = model;
+        this.weight = weight;
+        this.length = length;
+        this.volume = volume;
+    }
 
     public MatDto(String matNo, String maknx, Double count) {
         this.matnr = matNo;
diff --git a/src/main/java/com/zy/controller/SiteController.java b/src/main/java/com/zy/controller/SiteController.java
index 392a363..3fe8c23 100644
--- a/src/main/java/com/zy/controller/SiteController.java
+++ b/src/main/java/com/zy/controller/SiteController.java
@@ -83,6 +83,7 @@
             vo.setPakMk(staProtocol.isPakMk()?"Y":"N");       // 鍏ュ簱鏍囪
             vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N");     // 绌烘澘淇″彿
             vo.setStaNo(staProtocol.getStaNo());                // 鐩爣绔�
+            vo.setWorkNo(staProtocol.getWorkNo());
 //            vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�");     //楂樹綆搴撲綅
             vo.setLocType1(devp.getDevNo()==102 ? "楂�" : "浣�");
         }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index dacaa9a..9203b8f 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -48,7 +48,7 @@
 //                    mainService.refreshRgvMap();
 
                     // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
-                    mainService.ioConvert();
+//                    mainService.ioConvert();
 
                     // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
 //                    mainService.stnToCrnStnPick(3);
@@ -70,7 +70,7 @@
                     // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
                     mainService.recCrnErr(7);
                     // 鍏ュ簱  ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-                    mainService.storeEmptyPlt(8);
+//                    mainService.storeEmptyPlt(8);
                     // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
                     mainService.ledExecute(9);
                     // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
@@ -79,10 +79,10 @@
                     mainService.outOfDevp(11);
 
                     // 鐢熸垚106鍑哄簱浠诲姟
-                    mainService.generateOutbound();
+//                    mainService.generateOutbound();
 
                     // 鐢熸垚106鍒�105杞Щ浠诲姟
-                    mainService.autoMoveLoc();
+//                    mainService.autoMoveLoc();
 
 //                    if (i>10){
 //                        //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
diff --git a/src/main/java/com/zy/core/ServerBootstrap.java b/src/main/java/com/zy/core/ServerBootstrap.java
index 2888984..b37b6b3 100644
--- a/src/main/java/com/zy/core/ServerBootstrap.java
+++ b/src/main/java/com/zy/core/ServerBootstrap.java
@@ -1,15 +1,17 @@
 package com.zy.core;
 
-import com.zy.utils.News;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.CrnSlave;
 import com.zy.core.model.DevpSlave;
 import com.zy.core.model.LedSlave;
-import com.zy.core.model.RgvSlave;
 import com.zy.core.properties.SlaveProperties;
-import com.zy.core.thread.*;
+import com.zy.core.thread.BarcodeThread;
+import com.zy.core.thread.LedThread;
+import com.zy.core.thread.SiemensCrnThread;
+import com.zy.core.thread.SiemensDevpThread;
+import com.zy.utils.News;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
@@ -92,12 +94,12 @@
             SlaveConnection.put(SlaveType.Crn, crn.getId(), crnThread);
         }
         // 鍒濆鍖栫┛姊溅绾跨▼
-        log.info("鍒濆鍖朢GV绾跨▼...................................................");
-        for (RgvSlave rgv : slaveProperties.getRgv()) {
-            RgvThread rgvThread = new RgvThread(rgv);
-            new Thread((Runnable) rgvThread).start();
-            SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
-        }
+//        log.info("鍒濆鍖朢GV绾跨▼...................................................");
+//        for (RgvSlave rgv : slaveProperties.getRgv()) {
+//            RgvThread rgvThread = new RgvThread(rgv);
+//            new Thread((Runnable) rgvThread).start();
+//            SlaveConnection.put(SlaveType.Rgv, rgv.getId(), rgvThread);
+//        }
         // 鍒濆鍖栬緭閫佺嚎绾跨▼
         News.info("鍒濆鍖栬緭閫佺嚎绾跨▼...................................................");
         for (DevpSlave devp : slaveProperties.getDevp()) {
diff --git a/src/main/java/com/zy/core/model/command/LedCommand.java b/src/main/java/com/zy/core/model/command/LedCommand.java
index 66271c0..4bffcb7 100644
--- a/src/main/java/com/zy/core/model/command/LedCommand.java
+++ b/src/main/java/com/zy/core/model/command/LedCommand.java
@@ -1,6 +1,5 @@
 package com.zy.core.model.command;
 
-import com.core.common.Cools;
 import com.zy.common.model.MatDto;
 import lombok.Data;
 
@@ -15,6 +14,22 @@
 public class LedCommand extends Object {
 
     private String title;
+
+    @Override
+    public String toString() {
+        return "LedCommand{" +
+                "title='" + title + '\'' +
+                ", workNo=" + workNo +
+                ", staNo=" + staNo +
+                ", sourceStaNo=" + sourceStaNo +
+                ", locNo='" + locNo + '\'' +
+                ", sourceLocNo='" + sourceLocNo + '\'' +
+                ", matDtos=" + matDtos +
+                ", emptyMk=" + emptyMk +
+                ", ioType=" + ioType +
+                ", barcode='" + barcode + '\'' +
+                '}';
+    }
 
     private Integer workNo;
 
@@ -33,21 +48,17 @@
     private Integer ioType;
     private String barcode;
 
-    @Override
-    public String toString() {
-        StringBuffer s = new StringBuffer();
-        s.append("宸ヤ綔鍙穂" + this.workNo + "]\n");
-        s.append("宸ヤ綔绫诲瀷[" + this.title + "]\n");
-        if (!Cools.isEmpty(this.barcode)) {
-            s.append("鎵樼洏鐮乕" + this.barcode + "]\n");
-        }
-        if (!this.emptyMk){
-
-            for (MatDto matDto : matDtos) {
-                s.append("[鍟嗗搧缂栫爜:" + matDto.getMatnr() + ", 鏁伴噺:" + matDto.getCount() + "]\n");
-            }
-        }
-
-        return s.toString();
+    public static void main(String[] args) {
+        LedCommand ledCommand = new LedCommand();
+        ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+        ledCommand.setBarcode("80000001");
+        ledCommand.setSourceLocNo("0100101");
+        ledCommand.setStaNo(100);
+        ledCommand.setWorkNo(7001);
+        List<MatDto> matDtos = new ArrayList<>();
+        MatDto matDto = new MatDto("0205040001","K44132-09-0724","PE","20240724",",HD-233L",70,2816,53908.56626);
+        matDtos.add(matDto);
+        ledCommand.setMatDtos(matDtos);
+        System.out.println(ledCommand);
     }
 }
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 71def4c..6308a61 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -280,13 +280,14 @@
         array[9] = command.getCommand();
 //        array[10] = 0;   //澶囩敤1
 
-        boolean[] array2 = new boolean[1];
-        array2[0] = command.isTraySize();
+//        boolean[] array2 = new boolean[1];
+//        array2[0] = command.isTraySize();
         OperateResult result = siemensNet.Write("DB100.0", array);
-        OperateResult result2 = siemensNet.Write("DB100.22", array2);
+//        OperateResult result2 = siemensNet.Write("DB100.22", array2);
         News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
 
-        if(!result.IsSuccess || !result2.IsSuccess){
+//        if(!result.IsSuccess || !result2.IsSuccess){
+            if(!result.IsSuccess){
             News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
             MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
             Thread.sleep(100);
@@ -431,7 +432,7 @@
     public static void main(String[] args) throws InterruptedException {
         CrnSlave slave = new CrnSlave();
         slave.setId(1);
-        slave.setIp("192.168.6.9");
+        slave.setIp("10.10.10.1");
         slave.setRack(0);
         slave.setSlot(0);
         SiemensCrnThread crnThread = new SiemensCrnThread(slave);
@@ -472,15 +473,15 @@
 //        // 3.搴撲綅绉昏浆   婧愬拰鐩爣閮藉彂 pass
 //        CrnCommand command = new CrnCommand();
 //        command.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
-//        command.setTaskNo((short) 0); // 宸ヤ綔鍙�
+//        command.setTaskNo((short) 2); // 宸ヤ綔鍙�
 //        command.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
 //        command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
 //        command.setSourcePosX((short)2);     // 婧愬簱浣嶆帓
-//        command.setSourcePosY((short)2);     // 婧愬簱浣嶅垪
-//        command.setSourcePosZ((short)3);     // 婧愬簱浣嶅眰
-//        command.setDestinationPosX((short)2);     // 鐩爣搴撲綅鎺�
-//        command.setDestinationPosY((short)4);     // 鐩爣搴撲綅鍒�
-//        command.setDestinationPosZ((short)4);     // 鐩爣搴撲綅灞�
+//        command.setSourcePosY((short)1);     // 婧愬簱浣嶅垪
+//        command.setSourcePosZ((short)1);     // 婧愬簱浣嶅眰
+//        command.setDestinationPosX((short)3);     // 鐩爣搴撲綅鎺�
+//        command.setDestinationPosY((short)1);     // 鐩爣搴撲綅鍒�
+//        command.setDestinationPosZ((short)1);     // 鐩爣搴撲綅灞�
 //        crnThread.write(command);
 
         // 4.绔欎綅绉昏浆   婧愬拰鐩爣閮藉彂
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index d47e8ff..1892047 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -5,15 +5,11 @@
 import HslCommunication.Profinet.Siemens.SiemensPLCS;
 import HslCommunication.Profinet.Siemens.SiemensS7Net;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
-import com.zy.entity.BasDevp;
-import com.zy.entity.BasRgvMap;
-import com.zy.service.BasDevpService;
-import com.zy.service.BasRgvMapService;
-import com.zy.utils.News;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -24,14 +20,16 @@
 import com.zy.core.model.Task;
 import com.zy.core.model.protocol.StaError1;
 import com.zy.core.model.protocol.StaProtocol;
+import com.zy.entity.BasDevp;
+import com.zy.entity.WrkMast;
+import com.zy.service.BasDevpService;
+import com.zy.service.WrkMastService;
+import com.zy.utils.News;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -47,24 +45,18 @@
     private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>();
     private short heartBeatVal = 1;
     private StaError1 staError1;
-//    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
-//
-//    }};
-    public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
+    public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{
         add(100);add(101);add(102);add(103);
-        add(104);add(105);add(106);
-    }};
-
-    public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
+        add(104);add(105);add(106);add(107);
         add(200);add(201);add(202);add(203);add(210);
         add(300);add(301);add(302);add(303);add(304);add(305);
     }};
 
     public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
-        add(0); add(1);
+        add(1); add(2);
     }};
     public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{
-        add(100); add(102);
+        add(101); add(103);
     }};
 
     /**
@@ -92,14 +84,7 @@
     }
 
     private ArrayList<Integer> getStaNo() {
-        switch (slave.getId()) {
-            case 1:
-                return staNos1;
-            case 2:
-                return staNos2;
-            default:
-                throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
-        }
+        return staNos;
     }
 
     @Override
@@ -188,11 +173,12 @@
     private void read() throws InterruptedException {
 //        // 鏇存柊鍏ュ嚭搴撴ā寮�
 //        updateIoMode();
-        ArrayList<Integer> staNos = getStaNo();
-        int staNoSize = staNos.size();
-        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
+//        ArrayList<Integer> staNos = getStaNo();
+//        int staNoSize = staNos.size();
+        // 璇讳竴妤艰繛缁�8涓珯鐐�
+        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (8*8));
         if (result.IsSuccess) {
-            for (int i = 0; i < staNoSize; i++) {
+            for (int i = 0; i < 8; i++) {
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
@@ -219,47 +205,102 @@
                 }
             }
         }
-        BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class);
-        //RGV灏忚溅1
-//        Thread.sleep(100);
-        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB50.200",(short)10);
-        if (result3.IsSuccess) {
-            BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result3.Content, 0));
-            if (!Cools.isEmpty(basRgvMap)){
-                Integer siteId = 1;
+        // 璇讳簩妤艰繛缁�4涓珯鐐�
+        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.800", (short) (4*8));
+        if (result2.IsSuccess) {
+            for (int i = 8; i < 12; i++) {
+                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
                     staProtocol = new StaProtocol();
                     staProtocol.setSiteId(siteId);
                     station.put(siteId, staProtocol);
                 }
-                staProtocol.setAutoing(true);
-                staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 8)));
+                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result2.Content, (i-8)*8));     // 宸ヤ綔鍙�
+
+                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result2.Content, (i-8)*8 + 4));   // 鐩爣绔�
+
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(result2.Content, (i-8)*8 + 6, 2);
+                staProtocol.setAutoing(status[0]);  // 鑷姩
+                staProtocol.setLoading(status[1]);  // 鏈夌墿
+                staProtocol.setInEnable(status[2]); // 鍙叆
+                staProtocol.setOutEnable(status[3]);// 鍙嚭
+                staProtocol.setEmptyMk(status[4]);  // 绌烘澘淇″彿
+                staProtocol.setFullPlt(status[5]);  // 婊℃墭鐩�
+                staProtocol.setHigh(status[6]);     // 楂樺簱浣�
+                staProtocol.setLow(status[7]);      // 浣庡簱浣�
+
+                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+                    staProtocol.setPakMk(true);
+                }
             }
         }
+        // 璇讳簩妤�210
+        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB101.880", (short) (8));
+        if (result3.IsSuccess) {
+                Integer siteId = staNos.get(12); // 绔欑偣缂栧彿210
+                StaProtocol staProtocol = station.get(siteId);
+                if (null == staProtocol) {
+                    staProtocol = new StaProtocol();
+                    staProtocol.setSiteId(siteId);
+                    station.put(siteId, staProtocol);
+                }
+                staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result3.Content, 0));     // 宸ヤ綔鍙�
 
-        //鏉$爜鎵弿鍣�
-        ArrayList<Integer> barcodeList = BarcodeList;
-        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840", (short) (barcodeList.size() * 8));
-        if (result2.IsSuccess) {
-            for (int i = 0; i < barcodeList.size(); i++) {
-                Integer barcodeId = barcodeList.get(i);
-                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1);
+                staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result3.Content, 4));   // 鐩爣绔�
+
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(result3.Content, 6, 2);
+                staProtocol.setAutoing(status[0]);  // 鑷姩
+                staProtocol.setLoading(status[1]);  // 鏈夌墿
+                staProtocol.setInEnable(status[2]); // 鍙叆
+                staProtocol.setOutEnable(status[3]);// 鍙嚭
+                staProtocol.setEmptyMk(status[4]);  // 绌烘澘淇″彿
+                staProtocol.setFullPlt(status[5]);  // 婊℃墭鐩�
+                staProtocol.setHigh(status[6]);     // 楂樺簱浣�
+                staProtocol.setLow(status[7]);      // 浣庡簱浣�
+
+                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+                    staProtocol.setPakMk(true);
+                }
+        }
+
+//        BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class);
+        //RGV灏忚溅1
+//        Thread.sleep(100);
+//        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB50.200",(short)10);
+//        if (result3.IsSuccess) {
+//            BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result3.Content, 0));
+//            if (!Cools.isEmpty(basRgvMap)){
+//                Integer siteId = 1;
+//                StaProtocol staProtocol = station.get(siteId);
+//                if (null == staProtocol) {
+//                    staProtocol = new StaProtocol();
+//                    staProtocol.setSiteId(siteId);
+//                    station.put(siteId, staProtocol);
+//                }
+//                staProtocol.setAutoing(true);
+//                staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 8)));
+//            }
+//        }
+
+        // 鏉$爜鎵弿鍣�
+        OperateResultExOne<byte[]> barcodeResult = siemensS7Net.Read("DB101.1672", (short) ((BarcodeList.size()+1) * 8)); // 涓嶈繛缁�
+        if (barcodeResult.IsSuccess) {
+            for (int i = 0; i < BarcodeList.size(); i++) {
+                String barcode = siemensS7Net.getByteTransform().TransString(barcodeResult.Content,i*16,8, "UTF-8");
+                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, BarcodeList.get(i));
                 if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                     barcodeThread.setBarcode(barcode);
                 }
             }
         }
-        //澶栧舰妫�娴�
-        ArrayList<Integer> staNoErrs = staNosErrList;
-        int staNoErrsSize = staNoErrs.size();
-        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8));
+
+        // 澶栧舰妫�娴�
+        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.1652", (short) ((staNosErrList.size()+1)*4)); // 涓嶈繛缁紝澶氳涓棿涓�涓�
         if (resultErr.IsSuccess){
-            for (int i = 0;i<staNoErrsSize;i++){
-                Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1);
-                StaProtocol staProtocol = station.get(siteId);
+            for (int i = 0;i<staNosErrList.size();i++){
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*9+2, 1);
+                StaProtocol staProtocol = station.get(staNosErrList.get(i));
                 staProtocol.setFrontErr(status[0]);
                 staProtocol.setBackErr(status[1]);
                 staProtocol.setHighErr(status[2]);
@@ -269,13 +310,12 @@
                 staProtocol.setBarcodeErr(status[6]);
             }
         }
-
-        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB13.2", (short) (staNoSize*4));
+        // 璇讳竴妤艰繛缁�8涓珯鐐癸紝鏁呴殰淇℃伅鍙嶉
+        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.3312", (short) (8*2));
         if (resultErr2.IsSuccess) {
-            for (int i = 0; i < staNoSize; i++) {
-                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*4, 1);
-                StaProtocol staProtocol = station.get(siteId);
+            for (int i = 0; i < 8; i++) {
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i*2 + 1, 1);
+                StaProtocol staProtocol = station.get(staNos.get(i)); // 绔欑偣缂栧彿
                 staProtocol.setBreakerErr(status[0]);
                 staProtocol.setInfraredErr(status[1]);
                 staProtocol.setOutTimeErr(status[2]);
@@ -287,33 +327,111 @@
 
             }
         }
-        OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
+        // 璇讳簩妤艰繛缁�4涓珯鐐癸紝鏁呴殰淇℃伅鍙嶉
+        OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB101.3512", (short) (4*2));
         if (resultErr3.IsSuccess) {
-            if (staError1 == null){
-                staError1 = new StaError1();
+            for (int i = 8; i < 12; i++) {
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, (i-8) * 2 + 1, 1);
+                StaProtocol staProtocol = station.get(staNos.get(i)); // 绔欑偣缂栧彿
+                staProtocol.setBreakerErr(status[0]);
+                staProtocol.setInfraredErr(status[1]);
+                staProtocol.setOutTimeErr(status[2]);
+                staProtocol.setSeizeSeatErr(status[3]);
+                staProtocol.setWrkYgoodsN(status[4]);
+                staProtocol.setInverterErr(status[5]);
+                staProtocol.setContactErr(status[6]);
+                staProtocol.setUpcontactErr(status[7]);
             }
-            boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
-            staError1.setEMERGENCY_Stop_Core(status[0]);
-            staError1.setEMERGENCY_STOP1(status[1]);
-            staError1.setEMERGENCY_STOP2(status[2]);
-            staError1.setEMERGENCY_STOP3(status[3]);
-            staError1.setEMERGENCY_STOP4(status[4]);
-
-            staError1.setDoor_EMERGENCY_STOP1(status[5]);
-            staError1.setDoor_EMERGENCY_STOP2(status[6]);
-            staError1.setDoor_EMERGENCY_STOP3(status[7]);
-            staError1.setDoor_EMERGENCY_STOP4(status[8]);
-            staError1.setDoor_EMERGENCY_STOP5(status[9]);
-            staError1.setDoor_EMERGENCY_STOP6(status[10]);
-
-            staError1.setDoor_Open_Err1(status[11]);
-            staError1.setDoor_Open_Err1(status[12]);
-            staError1.setDoor_Open_Err1(status[13]);
-            staError1.setDoor_Open_Err1(status[14]);
-            staError1.setDoor_Open_Err1(status[15]);
-            staError1.setDoor_Open_Err1(status[16]);
-
         }
+
+        // 涓�妤煎嚭鍏ュ簱妯″紡鍒囨崲
+        OperateResultExOne<byte[]> ioModeResult = siemensS7Net.Read("DB101.3724", (short) 1);
+        if (ioModeResult.IsSuccess) {
+            boolean[] ioModelBooleans = siemensS7Net.getByteTransform().TransBool(ioModeResult.Content, 0, 1);
+//            log.info("璇诲彇鍑哄叆搴撴ā寮忥細" + Arrays.toString(ioModelBooleans));
+            WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
+            if (ioModelBooleans[0]) { // 100鍒囧叆搴�
+                if (ioModeOf101 == IoModeType.PAKOUT_MODE) {
+                    int outCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 101)
+                            .eq("sta_no", 100).in("wrk_sts", 12, 13, 14));
+                    if (outCount == 0) {
+                        boolean[] booleans = new boolean[8];
+                        booleans[0]=true;
+                        ioModeOf101 = IoModeType.PAKIN_MODE;
+                        siemensS7Net.Write("DB100.824",booleans);
+                        log.info("101鍒囨崲鍏ュ簱妯″紡鎴愬姛");
+                    }
+                }
+            }
+            if (ioModelBooleans[1]) { // 100鍒囧嚭搴�
+                if (ioModeOf101 == IoModeType.PAKIN_MODE) {
+                    int inCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 1)
+                            .eq("sta_no", 101).in("wrk_sts", 2, 3, 4));
+                    if (inCount == 0) {
+                        boolean[] booleans = new boolean[8];
+                        booleans[0]=true;
+                        ioModeOf101 = IoModeType.PAKOUT_MODE;
+                        siemensS7Net.Write("DB100.824",booleans);
+                        log.info("101鍒囨崲鍑哄簱妯″紡鎴愬姛");
+                    }
+                }
+            }
+            if (ioModelBooleans[2]) { // 102鍒囧叆搴�
+                if (ioModeOf103 == IoModeType.PAKOUT_MODE) {
+                    int outCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 101)
+                            .eq("sta_no", 102).in("wrk_sts", 12, 13, 14));
+                    if (outCount == 0) {
+                        boolean[] booleans = new boolean[8];
+                        booleans[1]=true;
+                        ioModeOf103 = IoModeType.PAKIN_MODE;
+                        siemensS7Net.Write("DB100.824",booleans);
+                        log.info("103鍒囨崲鍏ュ簱妯″紡鎴愬姛");
+                    }
+                }
+            }
+            if (ioModelBooleans[3]) { // 102鍒囧嚭搴�
+                if (ioModeOf103 == IoModeType.PAKIN_MODE) {
+                    int inCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 1)
+                            .eq("sta_no", 103).in("wrk_sts", 2, 3, 4));
+                    if (inCount == 0) {
+                        boolean[] booleans = new boolean[8];
+                        booleans[1]=true;
+                        ioModeOf103 = IoModeType.PAKOUT_MODE;
+                        siemensS7Net.Write("DB100.824",booleans);
+                        log.info("103鍒囨崲鍑哄簱妯″紡鎴愬姛");
+                    }
+                }
+            }
+        }
+
+
+//        OperateResultExOne<byte[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3);
+//        if (resultErr3.IsSuccess) {
+//            if (staError1 == null){
+//                staError1 = new StaError1();
+//            }
+//            boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3);
+//            staError1.setEMERGENCY_Stop_Core(status[0]);
+//            staError1.setEMERGENCY_STOP1(status[1]);
+//            staError1.setEMERGENCY_STOP2(status[2]);
+//            staError1.setEMERGENCY_STOP3(status[3]);
+//            staError1.setEMERGENCY_STOP4(status[4]);
+//
+//            staError1.setDoor_EMERGENCY_STOP1(status[5]);
+//            staError1.setDoor_EMERGENCY_STOP2(status[6]);
+//            staError1.setDoor_EMERGENCY_STOP3(status[7]);
+//            staError1.setDoor_EMERGENCY_STOP4(status[8]);
+//            staError1.setDoor_EMERGENCY_STOP5(status[9]);
+//            staError1.setDoor_EMERGENCY_STOP6(status[10]);
+//
+//            staError1.setDoor_Open_Err1(status[11]);
+//            staError1.setDoor_Open_Err1(status[12]);
+//            staError1.setDoor_Open_Err1(status[13]);
+//            staError1.setDoor_Open_Err1(status[14]);
+//            staError1.setDoor_Open_Err1(status[15]);
+//            staError1.setDoor_Open_Err1(status[16]);
+//
+//        }
 
 
         if (result.IsSuccess) {
@@ -352,16 +470,35 @@
         if (null == staProtocol) {
             return;
         }
-        ArrayList<Integer> staNos = getStaNo();
-        int index = staNos.indexOf(staProtocol.getSiteId());
-        OperateResult write = null;
-        OperateResult write1 = null;
+
+        int address = -1;
+        switch (staProtocol.getSiteId()) {
+            case 100: address = 0; break;
+            case 101: address = 4; break;
+            case 102: address = 8; break;
+            case 103: address = 12; break;
+            case 104: address = 16; break;
+            case 105: address = 20; break;
+            case 106: address = 24; break;
+            case 107: address = 28; break;
+            case 200: address = 400; break;
+            case 201: address = 404; break;
+            case 202: address = 408; break;
+            case 203: address = 412; break;
+            case 210: address = 440; break;
+            default:
+        }
+        if(address == -1) {
+            throw new CoolException("鍐欏叆绔欑偣寮傚父锛�" + staProtocol.getSiteId());
+        }
+        OperateResult write;
+        OperateResult write1;
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+            write1 = siemensS7Net.Write("DB100." + (address+2), staProtocol.getStaNo());    // 鐩爣绔�
+            write = siemensS7Net.Write("DB100." + address, staProtocol.getWorkNo().shortValue());    // 宸ヤ綔鍙�
             Thread.sleep(200);
-            write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo());    // 鐩爣绔�
             if(write.IsSuccess && write1.IsSuccess){
                 break;
             }
@@ -423,19 +560,6 @@
     @Override
     public void close() {
         siemensS7Net.ConnectClose();
-    }
-
-    public static void main(String[] args) {
-        System.out.println(staNos1.indexOf(129));
-        System.out.println(staNos1.size());
-        for (int i = 0; i<staNos1.size(); i++) {
-//            System.out.println(i*2);
-//            System.out.println(i*2 + 200);
-//            System.out.println(i);
-        }
-        int index = staNos1.indexOf(128);
-        System.out.println(index*2);
-        System.out.println(index*2 + 200);
     }
 
 //    public static void main(String[] args) throws Exception {
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index 3562bc7..9b4f83e 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -7,26 +7,20 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.exception.CoolException;
-import com.zy.entity.*;
-import com.zy.mapper.*;
-import com.zy.service.*;
-import com.zy.utils.RouteUtils;
-import com.zy.utils.Utils;
-import com.zy.utils.VersionUtils;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.MatDto;
 import com.zy.common.model.SearchLocParam;
 import com.zy.common.model.StartupDto;
 import com.zy.common.service.CommonService;
-import com.zy.utils.CollectionUtils;
-import com.zy.utils.HttpHandler;
-import com.zy.utils.News;
 import com.zy.core.CrnThread;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.*;
-import com.zy.core.model.*;
+import com.zy.core.model.CrnSlave;
+import com.zy.core.model.DevpSlave;
+import com.zy.core.model.LedSlave;
+import com.zy.core.model.Task;
 import com.zy.core.model.command.CrnCommand;
 import com.zy.core.model.command.LedCommand;
 import com.zy.core.model.command.RgvCommand;
@@ -38,6 +32,10 @@
 import com.zy.core.thread.LedThread;
 import com.zy.core.thread.RgvThread;
 import com.zy.core.thread.SiemensDevpThread;
+import com.zy.entity.*;
+import com.zy.mapper.*;
+import com.zy.service.*;
+import com.zy.utils.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -97,7 +95,7 @@
     @Value("${wms.url}")
     private String wmsUrl;
 
-    public Integer wrkNo = 10000;
+    public Integer wrkNo = 9901;
 
     /**
      * 缁勬墭
@@ -127,13 +125,14 @@
                 // 灏哄妫�娴嬪紓甯�
                 boolean back = false;
                 String errMsg = "";
-                if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 == IoModeType.PAKOUT_MODE)
-                ||(staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 == IoModeType.PAKOUT_MODE)
-                ||(staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 == IoModeType.PAKOUT_MODE)) {
-                    errMsg = "褰撳墠涓哄嚭搴撴ā寮�";
-                    back = true;
-                }
-                if (!back && staProtocol.isFrontErr()) {
+//                if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 == IoModeType.PAKOUT_MODE)
+//                ||(staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 == IoModeType.PAKOUT_MODE)
+//                ||(staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 == IoModeType.PAKOUT_MODE)) {
+//                    errMsg = "褰撳墠涓哄嚭搴撴ā寮�";
+//                    back = true;
+//                }
+//                if (!back && staProtocol.isFrontErr()) {
+                    if (staProtocol.isFrontErr()) {
                     errMsg = "鍓嶈秴闄�";
                     back = true;
                 }
@@ -174,7 +173,6 @@
                     }
                     staProtocol.setWorkNo(wrkNo);
                     News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
-                    wrkNo++;
                     staProtocol.setStaNo(inSta.getBackSta().shortValue());
                     devpThread.setPakMk(staProtocol.getSiteId(), false);
                     MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -192,7 +190,6 @@
 
                         staProtocol.setWorkNo(wrkNo);
                         News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo);
-                        wrkNo++;
                         staProtocol.setStaNo(inSta.getBackSta().shortValue());
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -230,6 +227,7 @@
                                 .build()
                                 .doPost();
                         JSONObject jsonObject = JSON.parseObject(response);
+                        log.info("缁勬墭wms杩斿洖锛�" + jsonObject);
                         if (jsonObject.getInteger("code").equals(200)) {
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                             barcodeThread.setBarcode("");
@@ -247,7 +245,6 @@
                             }
                         } else {
                             staProtocol.setWorkNo(wrkNo);
-                            wrkNo++;
                             staProtocol.setStaNo(inSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -407,7 +404,7 @@
                     StaDesc staDesc = staDescService.selectOne(wrapper);
                     if (Cools.isEmpty(staDesc)) {
                         News.error(""+mark+" - 2"+" - 鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
-                        staProtocol.setWorkNo(wrkNo++);
+                        staProtocol.setWorkNo(wrkNo);
                         staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -513,7 +510,7 @@
                     if(!Cools.isEmpty(barcode)) {
 //                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
                         if("NG".endsWith(barcode) || "NoRead".equals(barcode) || "empty".equals(barcode)) {
-                            staProtocol.setWorkNo(wrkNo++);
+                            staProtocol.setWorkNo(wrkNo);
                             staProtocol.setStaNo(pickSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -527,7 +524,7 @@
                             continue;
                         }
                     } else {
-                        staProtocol.setWorkNo(wrkNo++);
+                        staProtocol.setWorkNo(wrkNo);
                         staProtocol.setStaNo(pickSta.getBackSta().shortValue());
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
                         MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -618,7 +615,7 @@
                                 }
                             }
                         } else {
-                            staProtocol.setWorkNo(wrkNo++);
+                            staProtocol.setWorkNo(wrkNo);
                             staProtocol.setStaNo(pickSta.getBackSta().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
                             MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -686,14 +683,14 @@
 
                         // 涓嬪彂绔欑偣淇℃伅
                         staProtocol.setWorkNo(wrkMast.getWrkNo());
-                        staProtocol.setStaNo(RouteUtils.CrnStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo()));
+                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                         if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol))) {
                             continue;
                         }
 
                         // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
                         wrkMast.setWrkSts(14L);
-                        if (wrkMast.getStaNo() == 104 && wrkMast.getWrkSts() == 12L) {
+                        if (wrkMast.getSourceStaNo() == 106 && wrkMast.getWrkSts() == 12L) {
                             wrkMast.setWrkSts(16L);
                         }
                         wrkMast.setCrnEndTime(new Date());
@@ -1027,11 +1024,11 @@
 //                    continue;
 //                }
                 // 鍏ュ嚭搴撴ā寮忓垽鏂�
-                if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 != IoModeType.PAKOUT_MODE)
-                   || (staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 != IoModeType.PAKOUT_MODE)
-                   || (staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 != IoModeType.PAKOUT_MODE)) {
-                    continue;
-                }
+//                if ((staProtocol.getSiteId() == 101 && devpThread.ioModeOf101 != IoModeType.PAKOUT_MODE)
+//                   || (staProtocol.getSiteId() == 103 && devpThread.ioModeOf103 != IoModeType.PAKOUT_MODE)
+//                   || (staProtocol.getSiteId() == 305 && devpThread.ioModeOf305 != IoModeType.PAKOUT_MODE)) {
+//                    continue;
+//                }
 
                 // 鏌ヨ绔欑偣璇︾粏淇℃伅
                 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
@@ -1041,7 +1038,7 @@
 //                    continue;
                 }
                 // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
-                if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
                         && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
                     // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
@@ -1683,27 +1680,28 @@
                 ledCommand.setStaNo(wrkMast.getStaNo());
                 ledCommand.setBarcode(wrkMast.getBarcode());
                 if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-
-                    wrkDetls.forEach(wrkDetl -> {
-                        Double total = 0.0;
-                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
-                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
-                        if (Cools.isEmpty(locDetl)) {
-                            total = wrkDetl.getAnfme();
-                        } else {
-                            total = locDetl.getAnfme();
-                        }
-                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
-                        }
-                        if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
-                        }
-                        if (wrkMast.getIoType() == 107) {
-                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
-                        }
-                    });
+                    List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+//                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getSpecs(),wrkDetl.getManuDate(),wrkDetl.getModel(),wrkDetl.getWeight(),wrkDetl.getLength(),wrkDetl.getVolume())));
+//                    wrkDetls.forEach(wrkDetl -> {
+//                        Double total = 0.0;
+//                        EntityWrapper<LocDetl> wrapper = new EntityWrapper<>();
+//                        LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+//                        if (Cools.isEmpty(locDetl)) {
+//                            total = wrkDetl.getAnfme();
+//                        } else {
+//                            total = locDetl.getAnfme();
+//                        }
+//                        if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) {
+//                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+//                        }
+//                        if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) {
+//                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+//                        }
+//                        if (wrkMast.getIoType() == 107) {
+//                            ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total));
+//                        }
+//                    });
                 }
                 commands.add(ledCommand);
             }
@@ -3060,29 +3058,28 @@
         // 鍒ゆ柇婧愮珯鐐规儏鍐� 鏈変换鍔″彿锛屾湁鐗╋紝鑷姩
         SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
         StaProtocol staProtocol106 = devpThread.getStation().get(106);
-        StaProtocol staProtocol105 = devpThread.getStation().get(105);
         if (staProtocol106 == null) {
             return;
         } else {
             staProtocol106 = staProtocol106.clone();
         }
-        if (staProtocol105 == null) {
-            return;
-        } else {
-            staProtocol105 = staProtocol105.clone();
-        }
+//        if (staProtocol105 == null) {
+//            return;
+//        } else {
+//            staProtocol105 = staProtocol105.clone();
+//        }
 
 
         // 鍒ゆ柇鍑哄簱绔欑偣鎯呭喌
 
 
         // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
-        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, 2);
+        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, 1);
         CrnProtocol crnProtocol = crnThread.getCrnProtocol();
         if (crnProtocol == null) {
             return;
         }
-        BasCrnp basCrnp = basCrnpService.selectById(2);
+        BasCrnp basCrnp = basCrnpService.selectById(1);
         if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
             return;
         }
@@ -3093,24 +3090,29 @@
         }
 
         // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-        if (wrkMastMapper.selectWorking(2) != null) {
+        if (wrkMastMapper.selectWorking(1) != null) {
             return;
         }
         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
         CrnCommand crnCommand = new CrnCommand();
-        crnCommand.setCrnNo(2); // 鍫嗗灈鏈虹紪鍙�
+        crnCommand.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
         crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
         crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
         crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
-        crnCommand.setSourcePosX((short) 6);     // 婧愬簱浣嶆帓
-        crnCommand.setSourcePosY((short) 3);     // 婧愬簱浣嶅垪
+        crnCommand.setSourcePosX((short) 3);     // 婧愬簱浣嶆帓
+        crnCommand.setSourcePosY((short) 28);     // 婧愬簱浣嶅垪
         crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
-        crnCommand.setDestinationPosX((short) 7);     // 鐩爣搴撲綅鎺�
+        crnCommand.setDestinationPosX((short) 2);     // 鐩爣搴撲綅鎺�
         crnCommand.setDestinationPosY((short) 28);     // 鐩爣搴撲綅鍒�
         crnCommand.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+        if(wrkMast.getStaNo() == 104) { // 鐩爣绔�104锛屽嚭鍒�105浣嶇疆
+            crnCommand.setDestinationPosX((short) 2);     // 鐩爣搴撲綅鎺�
+            crnCommand.setDestinationPosY((short) 4);     // 鐩爣搴撲綅鍒�
+            crnCommand.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+        }
         crnCommand.setTraySize(true);     //搴撲綅绫诲瀷
         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
-            News.error("106绉诲簱2鍙峰爢鍨涙満鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+            News.error("106绉诲簱1鍙峰爢鍨涙満鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
         }
 //        else {
 //            wrkMast.setCrnNo(2);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 72a73cb..7bfffd4 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -48,6 +48,54 @@
   # 鍫嗗灈鏈�1
   crn[0]:
     id: 1
+    ip: 10.10.10.1
+    port: 102
+    rack: 0
+    slot: 0
+    # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
+    offset: 2
+    demo: false
+    # 鍫嗗灈鏈哄叆搴撶珯鐐�
+    crnInStn[0]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 103
+      row: 2
+      bay: 1
+      lev: 1
+    crnInStn[1]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 203
+      row: 2
+      bay: 1
+      lev: 6
+    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
+    crnOutStn[0]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 103
+      row: 2
+      bay: 1
+      lev: 1
+    crnOutStn[1]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 105
+      row: 2
+      bay: 4
+      lev: 1
+    crnOutStn[2]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 107
+      row: 2
+      bay: 28
+      lev: 1
+    crnOutStn[3]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 203
+      row: 2
+      bay: 1
+      lev: 6
+  # 鍫嗗灈鏈�2
+  crn[1]:
+    id: 2
     ip: 10.10.10.10
     port: 102
     rack: 0
@@ -59,81 +107,39 @@
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 101
-      row: 3
-      bay: 31
+      row: 6
+      bay: 1
       lev: 1
     crnInStn[1]:
-      devpPlcId: ${wcs-slave.devp[1].id}
+      devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 201
-      row: 3
-      bay: 31
+      row: 6
+      bay: 1
       lev: 6
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 101
-      row: 3
-      bay: 31
+      row: 6
+      bay: 1
       lev: 1
     crnOutStn[1]:
-      devpPlcId: ${wcs-slave.devp[1].id}
+      devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 201
-      row: 3
-      bay: 31
+      row: 6
+      bay: 1
       lev: 6
     crnOutStn[2]:
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 106
-      row: 3
-      bay: 3
-      lev: 1
-  # 鍫嗗灈鏈�2
-  crn[1]:
-    id: 2
-    ip: 10.10.10.20
-    port: 102
-    rack: 0
-    slot: 0
-    # 鍋忕Щ閲忥紝褰撳爢鍨涙満绔欑偣鍒楀彿=1鏃讹紝鍋忕Щ閲�=2
-    offset: 2
-    demo: false
-    # 鍫嗗灈鏈哄叆搴撶珯鐐�
-    crnInStn[0]:
-      devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 103
-      row: 7
-      bay: 31
-      lev: 1
-    crnInStn[1]:
-      devpPlcId: ${wcs-slave.devp[1].id}
-      staNo: 203
-      row: 7
-      bay: 31
-      lev: 6
-    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
-    crnOutStn[0]:
-      devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 103
-      row: 7
-      bay: 31
-      lev: 1
-    crnOutStn[1]:
-      devpPlcId: ${wcs-slave.devp[1].id}
-      staNo: 203
-      row: 7
-      bay: 31
-      lev: 6
-    crnOutStn[2]:
-      devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 105
-      row: 7
-      bay: 27
+      row: 6
+      bay: 28
       lev: 1
 
   # 杈撻�佺嚎1
   devp[0]:
     id: 1
-    ip: 10.10.10.50
+    ip: 10.10.10.18
     port: 102
     rack: 0
     slot: 0
@@ -149,17 +155,20 @@
       barcode: ${wcs-slave.barcode[1].id}
       backSta: 102
       led: ${wcs-slave.led[1].id}
+    # 鍏ュ簱鍙�3
+    inSta[2]:
+      staNo: 305
     # 绌烘澘鍏ュ簱鍙�1
-    emptyInSta[0]:
-      staNo: 101
-      barcode: ${wcs-slave.barcode[0].id}
-      backSta: 100
-      led: ${wcs-slave.led[0].id}
-    emptyInSta[1]:
-      staNo: 103
-      barcode: ${wcs-slave.barcode[1].id}
-      backSta: 102
-      led: ${wcs-slave.led[1].id}
+#    emptyInSta[0]:
+#      staNo: 101
+#      barcode: ${wcs-slave.barcode[0].id}
+#      backSta: 100
+#      led: ${wcs-slave.led[0].id}
+#    emptyInSta[1]:
+#      staNo: 103
+#      barcode: ${wcs-slave.barcode[1].id}
+#      backSta: 102
+#      led: ${wcs-slave.led[1].id}
     # 鍑哄簱鍙�1
     outSta[0]:
       staNo: 100
@@ -172,60 +181,13 @@
     outSta[2]:
       staNo: 104
       led: ${wcs-slave.led[2].id}
-
-  # 杈撻�佺嚎2
-  devp[1]:
-    id: 2
-    ip: 10.10.10.50
-    port: 102
-    rack: 0
-    slot: 0
-    # 鍏ュ簱鍙�1
-    inSta[0]:
-      staNo: 201
-    # 鍏ュ簱鍙�2
-    inSta[1]:
-      staNo: 203
-#    # 绌烘澘鍏ュ簱鍙�1
-#    emptyInSta[0]:
-#      staNo: 106
-#      barcode: ${wcs-slave.barcode[0].id}
-#      backSta: 105
-#      led: ${wcs-slave.led[1].id}
-#    # 鎷f枡鍏ュ簱鍙�1
-#    pickSta[0]:
-#      staNo: 159
-#      barcode: ${wcs-slave.barcode[2].id}
-#      led: ${wcs-slave.led[5].id}
-#      backSta: 160
-
-#    # 绌烘澘鍏ュ簱鍙�1
-#    emptyInSta[1]:
-#      staNo: 107
-#      barcode: ${wcs-slave.barcode[1].id}
-#      backSta: 108
-#      led: ${wcs-slave.led[2].id}
-##    inSta[2]:
-##      staNo: 159
-##      barcode: ${wcs-slave.barcode[2].id}
-##      backSta: 160
-##      led: ${wcs-slave.led[5].id}
-#    #    # 鎷f枡鍏ュ簱鍙�1
-#    #    pickSta[1]:
-#    #      staNo: 107
-#    #      barcode: ${wcs-slave.barcode[1].id}
-#    #      led: ${wcs-slave.led[1].id}
-#    #      backSta: 108
-    # 鍑哄簱鍙�1
-    outSta[0]:
+    # 鍑哄簱鍙�4
+    outSta[3]:
+      staNo: 107
+    # 鍑哄簱鍙�5
+    outSta[4]:
       staNo: 305
-#    outSta[1]:
-#      staNo: 152
-#      led: ${wcs-slave.led[3].id}
-#    outSta[2]:
-#      staNo: 156
-#      led: ${wcs-slave.led[4].id}
-#
+
   # 鏉$爜鎵弿浠�1
   barcode[0]:
     id: 1
diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js
index 258d89d..b2a3f7b 100644
--- a/src/main/webapp/static/js/console.map.js
+++ b/src/main/webapp/static/js/console.map.js
@@ -3,7 +3,7 @@
     "rackCount": 8,
     "crnCount": 2,
     "stbCount": 18,
-    "hpPosition": 0,
+    "hpPosition": 1,
     "minBayNo": 1,
     "floors": 2,
     "racks": [{
@@ -11,7 +11,7 @@
         "id": "rack1",
         "top": 189,
         "left": 200,
-        "width": 1300,
+        "width": 1350,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 31
@@ -22,8 +22,8 @@
         "left": 200,
         "width": 1300,
         "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 30
+        "minBayNo": 2,
+        "maxBayNo": 31
     }, {
         "type": "rack",
         "id": "rack7",
@@ -31,14 +31,14 @@
         "left": 200,
         "width": 1300,
         "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 30
+        "minBayNo": 2,
+        "maxBayNo": 31
     }, {
         "type": "rack",
         "id": "rack6",
         "top": 365,
         "left": 200,
-        "width": 1300,
+        "width": 1350,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 31
@@ -47,7 +47,7 @@
         "id": "rack5",
         "top": 338,
         "left": 200,
-        "width": 1300,
+        "width": 1350,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 31
@@ -58,8 +58,8 @@
         "left": 200,
         "width": 1300,
         "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 30
+        "minBayNo": 2,
+        "maxBayNo": 31
     }, {
         "type": "rack",
         "id": "rack3",
@@ -67,38 +67,38 @@
         "left": 200,
         "width": 1300,
         "height": 23,
-        "minBayNo": 1,
-        "maxBayNo": 30
+        "minBayNo": 2,
+        "maxBayNo": 31
     }, {
         "type": "rack",
         "id": "rack2",
         "top": 217,
         "left": 200,
-        "width": 1300,
+        "width": 1350,
         "height": 23,
         "minBayNo": 1,
         "maxBayNo": 31
     }],
     "rackDescs": [{
         "type": "rackDescs",
-        "id": "lb_desc1",
-        "text": "#1",
+        "id": "lb_desc8",
+        "text": "#8",
         "top": 190,
         "left": 150,
         "width": 33,
         "height": 23
     },
-        {"type": "rackDescs", "id": "lb_desc2", "text": "#2", "top": 218, "left": 150, "width": 33, "height": 23},
-        {"type": "rackDescs", "id": "lb_desc3", "text": "#3", "top": 280, "left": 150, "width": 33, "height": 23},
-        {"type": "rackDescs", "id": "lb_desc4", "text": "#4", "top": 310, "left": 150, "width": 33, "height": 23},
-        {"type": "rackDescs", "id": "lb_desc5", "text": "#5", "top": 340, "left": 150, "width": 33, "height": 23},
-        {"type": "rackDescs", "id": "lb_desc6", "text": "#6", "top": 370, "left": 150, "width": 33, "height": 23},
-        {"type": "rackDescs", "id": "lb_desc7", "text": "#7", "top": 430, "left": 150, "width": 33, "height": 23},
-        {"type": "rackDescs", "id": "lb_desc8", "text": "#8", "top": 460, "left": 150, "width": 33, "height": 23}],
+        {"type": "rackDescs", "id": "lb_desc7", "text": "#7", "top": 218, "left": 150, "width": 33, "height": 23},
+        {"type": "rackDescs", "id": "lb_desc6", "text": "#6", "top": 280, "left": 150, "width": 33, "height": 23},
+        {"type": "rackDescs", "id": "lb_desc5", "text": "#5", "top": 310, "left": 150, "width": 33, "height": 23},
+        {"type": "rackDescs", "id": "lb_desc4", "text": "#4", "top": 340, "left": 150, "width": 33, "height": 23},
+        {"type": "rackDescs", "id": "lb_desc3", "text": "#3", "top": 370, "left": 150, "width": 33, "height": 23},
+        {"type": "rackDescs", "id": "lb_desc2", "text": "#2", "top": 430, "left": 150, "width": 33, "height": 23},
+        {"type": "rackDescs", "id": "lb_desc1", "text": "#1", "top": 460, "left": 150, "width": 33, "height": 23}],
     "crns": [{
         "type": "crane",
-        "id": "crn-2",
-        "text": "2",
+        "id": "crn-1",
+        "text": "1",
         "top": 393,
         "left": 376,
         "width": 101,
@@ -113,8 +113,8 @@
         "height": 1
     }, {
         "type": "crane",
-        "id": "crn-1",
-        "text": "1",
+        "id": "crn-2",
+        "text": "2",
         "top": 250,
         "left": 383,
         "width": 101,
@@ -201,6 +201,14 @@
                     "left": 287,
                     "width": 86,
                     "height": 105
+                }, {
+                    "type": "stn",
+                    "id": "site-107",
+                    "text": "107",
+                    "top": 431,
+                    "left": 287,
+                    "width": 86,
+                    "height": 50
                 }]
         }, {
             "type": "floor",

--
Gitblit v1.9.1