From cb2d5d9ac39efdb38d8a301f7396ac1ab171efc1 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 09 五月 2024 21:49:11 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java |    9 +
 src/main/webapp/views/console-old.html                            |    2 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java       |  306 ++++++++++++++++++++++++++------------
 src/main/webapp/views/console.html                                |    2 
 src/main/java/com/zy/asrs/service/WrkMastStaService.java          |    2 
 src/main/webapp/static/images/RMLogo.png                          |    0 
 src/main/resources/mapper/WrkMastStaMapper.xml                    |    9 +
 src/main/java/com/zy/asrs/entity/WrkMastSta.java                  |    4 
 src/main/java/com/zy/asrs/utils/Utils.java                        |   23 ++
 src/main/webapp/views/index.html                                  |    2 
 src/main/java/com/zy/core/MainProcess.java                        |   12 
 src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java            |    3 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java           |   75 ++++++++
 src/main/resources/application.yml                                |   14 
 14 files changed, 341 insertions(+), 122 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/WrkMastSta.java b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
index c777b4d..b18cf68 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastSta.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastSta.java
@@ -36,6 +36,10 @@
     @TableField("wrk_no")
     private Long wrkNo;
 
+    @ApiModelProperty(value= "宸ヤ綔鍙�")
+    @TableField("wrk_no2")
+    private Long wrkNo2;
+
     /**
      * 宸ヤ綔妗e紑濮嬩綅缃�
      */
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
index fef59fb..c5872f3 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastStaMapper.java
@@ -9,4 +9,7 @@
 @Repository
 public interface WrkMastStaMapper extends BaseMapper<WrkMastSta> {
 
+    WrkMastSta selectByRgvNoandWrkNo(Integer rgvNo, Integer taskNo);
+
+    WrkMastSta selectByRgvNoandWrkNo2(Integer rgvNo, Integer taskNo2);
 }
diff --git a/src/main/java/com/zy/asrs/service/WrkMastStaService.java b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
index 9a08d24..9ba65e2 100644
--- a/src/main/java/com/zy/asrs/service/WrkMastStaService.java
+++ b/src/main/java/com/zy/asrs/service/WrkMastStaService.java
@@ -5,4 +5,6 @@
 
 public interface WrkMastStaService extends IService<WrkMastSta> {
 
+    WrkMastSta selectByRgvNoandWrkNo(Integer rgvNo, Integer taskNo1);
+    WrkMastSta selectByRgvNoandWrkNo2(Integer rgvNo, Integer taskNo2);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 8263c0a..d2181a2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -90,6 +90,8 @@
     private BasCrnErrorMapper basCrnErrorMapper;
     @Autowired
     private EmptyBarrelInService emptyBarrelInService;
+    @Autowired
+    private WrkMastStaService wrkMastStaService;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -2299,7 +2301,7 @@
                 } else {
                     staProtocol = staProtocol.clone();
                 }
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) {
+//                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()) {
                     // 鏌ヨ宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakOutStep2(crnStn.getStaNo());
                     if (wrkMast == null) {
@@ -2334,7 +2336,7 @@
 
                     }
 
-                }
+//                }
             }
         }
     }
@@ -2491,111 +2493,219 @@
         for (RgvSlave rgvSlave:slaveProperties.getRgv()){
             ZyRgvThread rgvThread = (ZyRgvThread)SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
             RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
-            if (rgvProtocol.getModeType() != RgvModeType.AUTO){
+            if (Cools.isEmpty(rgvProtocol)){
                 continue;
-            }
-
-
-            int workNo1 = 0;
-            int workNo2 = 0;
-            short souSta1 = 0;
-            short sta1 = 0;
-            short souSta2 = 0;
-            short sta2 = 0;
-
-            //宸ヤ綅涓�浠诲姟
-            for (RgvSlave.Sta inStn :  rgvSlave.getInStn()){
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
-                StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
-                if (staProtocol == null) {
-                    break;
-//                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                if (staProtocol.isLoading() && staProtocol.isLoading() && staProtocol.isInEnable()){
-                    if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){
-                        WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo());
-                        if (Cools.isEmpty(wrkMast)){
-                            log.error("鏈壘鍒板伐浣滄。");
-                            continue;
-                        }
-                        workNo1 = wrkMast.getWrkNo();
-                        souSta1 = inStn.getSourceStaNo().shortValue();
-                        sta1 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
-                        break;
-                    }
-                    workNo1 = workNo++;
-                    souSta1 = inStn.getSourceStaNo().shortValue();
-                    sta1 = inStn.getStaNo().shortValue();
-                    break;
-                }
-            }
-
-
-            //宸ヤ綅浜屼换鍔�
-            for (RgvSlave.Sta inStn :  rgvSlave.getInStn()){
-                if (souSta1 == inStn.getSourceStaNo()){
-                    continue;
-                }
-                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
-                StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
-                if (staProtocol == null) {
-                    break;
-//                    continue;
-                } else {
-                    staProtocol = staProtocol.clone();
-                }
-                if (staProtocol.isLoading() && staProtocol.isLoading() && staProtocol.isInEnable()){
-                    if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){
-                        WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo());
-                        if (Cools.isEmpty(wrkMast)){
-                            log.error("鏈壘鍒板伐浣滄。");
-                            continue;
-                        }
-                        workNo2 = wrkMast.getWrkNo();
-                        souSta2 = inStn.getSourceStaNo().shortValue();
-                        sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
-                        break;
-                    }
-                    workNo2 = workNo++;
-                    souSta2 = inStn.getSourceStaNo().shortValue();
-                    sta2 = inStn.getStaNo().shortValue();
-                    break;
-                }
-            }
-
-            //rgv浠诲姟涓嬪彂--------------------------------------------------------------
-            RgvCommand command = new RgvCommand();
-            command.setRgvNo(rgvSlave.getId()); // RGV缂栧彿
-            //宸ヤ綅1
-            command.setTaskNo1(workNo1); // 宸ヤ綔鍙�
-            command.setSourceStaNo1(souSta1); // 婧愮珯
-            command.setDestinationStaNo1(sta1);  // 鐩爣绔�
-            command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
-
-            //宸ヤ綅2
-            command.setTaskNo2(workNo2); // 宸ヤ綔鍙�
-            command.setSourceStaNo2(souSta2); // 婧愮珯
-            command.setDestinationStaNo2(sta2);  // 鐩爣绔�
-            command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
-
-            if (workNo1 != 0 && workNo2 ==0){
-                command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 鍙栨斁璐�
-            } else if (workNo1 == 0 && workNo2 !=0) {
-                command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 鍙栨斁璐�
             }else {
-                command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: 鍙栨斁璐�
+                rgvProtocol = rgvProtocol.clone();
             }
-            command.setCommand(false);
-            MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(2, command));
-            log.info("rgv浠诲姟涓嬪彂锛�"+JSON.toJSONString(command));
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getLoaded1() == 0){
+                boolean work1 = false;
+                boolean work2 = false;
+                int workNo1 = 0;
+                int workNo2 = 0;
+                short souSta1 = 0;
+                short sta1 = 0;
+                short souSta2 = 0;
+                short sta2 = 0;
+
+                //宸ヤ綅涓�浠诲姟
+                for (RgvSlave.Sta inStn :  rgvSlave.getInStn()){
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
+                    if (staProtocol == null) {
+                        break;
+//                    continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()){
+                        if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){
+                            WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo());
+                            if (Cools.isEmpty(wrkMast)){
+                                log.error("鏈壘鍒板伐浣滄。");
+                                continue;
+                            }
+                            workNo1 = wrkMast.getWrkNo();
+                            souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),wrkMast.getSourceStaNo());
+                            sta1 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
+                            work1 = true;
+                            devpThread.setPakMk(inStn.getSourceStaNo(),false);
+                            break;
+                        }
+                        workNo1 = workNo++;
+                        souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo());
+                        sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo());
+                        work1 = true;
+                        devpThread.setPakMk(inStn.getSourceStaNo(),false);
+                        break;
+                    }
+                }
+
+
+                //宸ヤ綅浜屼换鍔�
+                for (RgvSlave.Sta inStn :  rgvSlave.getInStn()){
+                    if (souSta1 == inStn.getSourceStaNo()){
+                        continue;
+                    }
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, inStn.getSourcePlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(inStn.getSourceStaNo());
+                    if (staProtocol == null) {
+                        break;
+//                    continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()&& staProtocol.isPakMk()){
+                        if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() <9900){
+                            WrkMast wrkMast = wrkMastService.selectByworkNo(staProtocol.getWorkNo());
+                            if (Cools.isEmpty(wrkMast)){
+                                log.error("鏈壘鍒板伐浣滄。");
+                                continue;
+                            }
+                            workNo2 = wrkMast.getWrkNo();
+                            souSta2 = inStn.getSourceStaNo().shortValue();
+                            sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo());
+                            work2 = true;
+                            devpThread.setPakMk(inStn.getSourceStaNo(),false);
+                            break;
+                        }
+                        workNo2 = workNo++;
+                        souSta2 = inStn.getSourceStaNo().shortValue();
+                        sta2 = inStn.getStaNo().shortValue();
+                        work2 = true;
+                        devpThread.setPakMk(inStn.getSourceStaNo(),false);
+                        break;
+                    }
+                }
+
+                if (work1 || work2){
+                    //rgv浠诲姟涓嬪彂--------------------------------------------------------------
+                    RgvCommand command = new RgvCommand();
+                    command.setRgvNo(rgvSlave.getId()); // RGV缂栧彿
+                    //宸ヤ綅1
+                    command.setTaskNo1(workNo1); // 宸ヤ綔鍙�
+                    command.setSourceStaNo1(souSta1); // 婧愮珯
+                    command.setDestinationStaNo1(sta1);  // 鐩爣绔�
+                    command.setAckFinish1(false);  // 浠诲姟瀹屾垚纭浣�
+
+                    //宸ヤ綅2
+                    command.setTaskNo2(workNo2); // 宸ヤ綔鍙�
+                    command.setSourceStaNo2(souSta2); // 婧愮珯
+                    command.setDestinationStaNo2(sta2);  // 鐩爣绔�
+                    command.setAckFinish2(false);  // 浠诲姟瀹屾垚纭浣�
+
+                    if (workNo1 == 0 && workNo2 !=0){
+                        command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 鍙栨斁璐�
+                    } else if (workNo1 != 0 && workNo2 ==0) {
+                        command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 鍙栨斁璐�
+                    }else {
+                        command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: 鍙栨斁璐�
+                    }
+                    command.setCommand(false);
+                    rgvTaskSave(command);
+                    MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(2, command));
+                    log.info("rgv浠诲姟涓嬪彂锛�"+JSON.toJSONString(command));
+                }
+            }
+
+
+
+
 
         }
     }
 
 
     public synchronized void RGVTaskOver() {
+        for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+            ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+            if (Cools.isEmpty(rgvProtocol)){
+                continue;
+            }else {
+                rgvProtocol = rgvProtocol.clone();
+            }
 
+            //宸ヤ綅涓�浠诲姟瀹屾垚
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 1) {
+                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1());
+                if (Cools.isEmpty(wrkMastSta)){
+                    log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
+                    continue;
+                }
+                for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    if (staProtocol.isAutoing() && staProtocol.isLoading()  && staProtocol.isPakMk()){
+//                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+//                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
+                            continue;
+                        }
+                    }
+
+                }
+
+                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand()));
+                log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo());
+            }
+
+            //宸ヤ綅浜屼换鍔″畬鎴�
+            if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 1) {
+                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2());
+                if (Cools.isEmpty(wrkMastSta)){
+                    log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2());
+                    continue;
+                }
+                for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){
+                    SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId());
+                    StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo());
+                    if (staProtocol == null) {
+                        continue;
+                    } else {
+                        staProtocol = staProtocol.clone();
+                    }
+                    if (staProtocol.isAutoing() && staProtocol.isLoading()  && staProtocol.isPakMk()){
+//                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
+//                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
+                        if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) {
+                            continue;
+                        }
+                    }
+
+                }
+
+                MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand()));
+                log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo2());
+            }
+        }
     }
+
+    public boolean rgvTaskSave(RgvCommand command){
+        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1());
+        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
+        if (!Cools.isEmpty(wrkMastSta1)){
+            wrkMastStaService.delete(wrkMastStaWrapper);
+        }
+        WrkMastSta wrkMastSta = new WrkMastSta();
+        wrkMastSta.setWrkNo(Long.valueOf(command.getTaskNo1()));
+        wrkMastSta.setWrkNo2(Long.valueOf(command.getTaskNo2()));
+        wrkMastSta.setWrkStart(command.getSourceStaNo1().intValue());
+        wrkMastSta.setWrkEnd(command.getDestinationStaNo1().intValue());
+        wrkMastSta.setStaStart(command.getSourceStaNo2().intValue());
+        wrkMastSta.setStaEnd(command.getDestinationStaNo2().intValue());
+        wrkMastSta.setWrkSts(1);
+        Date now = new Date();
+        wrkMastSta.setCreateTime(now);
+        wrkMastSta.setUpdateTime(now);
+        wrkMastSta.setWrkCrn(command.getRgvNo());
+        wrkMastSta.setWrkType(command.getTaskMode().intValue());
+        return wrkMastStaService.insert(wrkMastSta);
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
index 5f9b639..ba5c3e0 100644
--- a/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WrkMastStaServiceImpl.java
@@ -9,4 +9,13 @@
 @Service("wrkMastStaService")
 public class WrkMastStaServiceImpl extends ServiceImpl<WrkMastStaMapper, WrkMastSta> implements WrkMastStaService {
 
+    @Override
+    public WrkMastSta selectByRgvNoandWrkNo(Integer rgvNo, Integer taskNo1) {
+        return this.baseMapper.selectByRgvNoandWrkNo(rgvNo,taskNo1);
+    }
+
+    @Override
+    public WrkMastSta selectByRgvNoandWrkNo2(Integer rgvNo, Integer taskNo2) {
+        return this.baseMapper.selectByRgvNoandWrkNo2(rgvNo,taskNo2);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index 141b18a..2281702 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -17,9 +17,14 @@
 
     private static final DecimalFormat fmt = new DecimalFormat("##0.00");
 
-    public static short getRgvEndStaNo(Integer rgvNo,Integer staNo){
+    public static short getRgvStaNo(Integer rgvNo,Integer staNo){
         Map<Integer, Short> rgv1Map = new HashMap<>();
         Map<Integer, Short> rgv2Map = new HashMap<>();
+        rgv2Map.put(4007, (short) 1);rgv2Map.put(4001, (short) 2);
+        rgv2Map.put(2003, (short) 3);rgv2Map.put(2103, (short) 4);
+        rgv2Map.put(4016, (short) 5);rgv2Map.put(4010, (short) 6);
+        rgv2Map.put(2301, (short) 7);rgv2Map.put(2002, (short) 8);
+        rgv2Map.put(2001, (short) 9);
         Map<Integer, Short> rgv3Map = new HashMap<>();
         switch (rgvNo){
             case 1:
@@ -32,6 +37,22 @@
         return 0;
     }
 
+    public static short getRgvEndStaNo(Integer rgvNo,Integer staNo){
+        Map<Integer, Integer> rgv1Map = new HashMap<>();
+        Map<Integer, Integer> rgv2Map = new HashMap<>();
+        rgv2Map.put(4007,2103);
+        Map<Integer, Integer> rgv3Map = new HashMap<>();
+        switch (rgvNo){
+            case 1:
+                return getRgvStaNo(rgvNo,rgv1Map.get(staNo));
+            case 2:
+                return getRgvStaNo(rgvNo,rgv2Map.get(staNo));
+            case 3:
+                return getRgvStaNo(rgvNo,rgv3Map.get(staNo));
+        }
+        return 0;
+    }
+
     public static float scale(Float f){
         if (f == null || f == 0f || Float.isNaN(f)) {
             return 0f;
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 497dc9c..5343a4f 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -67,12 +67,12 @@
                     mainService.autoEmptyOut();
 
                     //浜屾湡
-                    //绌烘《搴撲换鍔$敓鎴�
-                    mainService.crn5TaskCreate();
-                    //绌烘《搴撳叆搴�
-                    mainService.crn5InTask();
-                    //绌烘《鍑哄簱瀹屾垚
-                    mainService.crn5StnToOutStn();
+//                    //绌烘《搴撲换鍔$敓鎴�
+//                    mainService.crn5TaskCreate();
+//                    //绌烘《搴撳叆搴�
+//                    mainService.crn5InTask();
+//                    //绌烘《鍑哄簱瀹屾垚
+//                    mainService.crn5StnToOutStn();
                     //rgv浠诲姟
                     mainService.RGVTaskPut();
                     //rgv浠诲姟瀹屾垚
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 70a9ffa..81e9870 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -63,9 +63,7 @@
     }};
 
     public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{
-        add(3001);add(3002);add(3003);add(3004);add(3005);
-        add(3006);add(3007);add(3008);add(3009);add(3010);
-        add(3011);add(3012);
+        add(4007);
     }};
 
     public static final ArrayList<Integer> staNos5 = new ArrayList<Integer>() {{
@@ -205,10 +203,14 @@
                 switch (step) {
                     // 璇绘暟鎹�
                     case 1:
-                        if (slave.getId() ==3){
-                            read30();
-                        }else {
-                            read();
+                        switch (slave.getId()){
+                            case 1:
+                            case 2:
+                                read();break;
+                            case 3:
+                                read30();break;
+                            case 4:
+                                read33();break;
                         }
 
                         break;
@@ -417,6 +419,65 @@
         }
     }
 
+    private void read33() throws InterruptedException {
+        ArrayList<Integer> staNos = getStaNo();
+        int staNoSize = staNos.size();
+        OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size() * 8));
+
+        result = siemensS7Net.Read("DB101.0", (short) (getStaNo().size()*6));
+        if (result.IsSuccess) {
+            for (int i = 0; i < staNoSize; i++) {
+                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*4, 1);
+                short tongType = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 2);
+                short matnr = siemensS7Net.getByteTransform().TransInt16(result.Content, i * 4 + 4);
+                StaProtocol staProtocol = station.get(siteId);
+                if (null == staProtocol) {
+                    staProtocol = new StaProtocol();
+                    staProtocol.setSiteId(siteId);
+                    station.put(siteId, staProtocol);
+                }
+                staProtocol.setAutoing(status[0]);  // 鑷姩
+                staProtocol.setLoading(status[1]);  // 鏈夌墿
+                staProtocol.setInEnable(status[2]); // 鍙叆
+                staProtocol.setAmount(matnr);
+
+
+
+                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+                    staProtocol.setPakMk(true);
+                }
+            }
+        }
+
+        if (result.IsSuccess) {
+
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+
+            // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+            try {
+                List<BasDevp> basDevps = new ArrayList<>();
+                for (Integer siteId : staNos) {
+                    StaProtocol staProtocol = station.get(siteId);
+                    basDevps.add(staProtocol.toSqlModel());
+                }
+
+                BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+                if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+                    throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戞洿鏂版暟鎹簱鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+                log.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            }
+
+        } else {
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
+//            log.error("璇诲彇杈撻�佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+        }
+    }
+
     /**
      * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
      */
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3b07a94..ea37b45 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
     name: @pom.build.finalName@
   datasource:
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-    url: jdbc:sqlserver://10.10.10.212:1433;databasename=mdqdasrs
+    url: jdbc:sqlserver://127.0.0.1:1433;databasename=mdqdasrs
     username: sa
     password: sa@123
   mvc:
@@ -34,7 +34,7 @@
   enable: false
 
 wms:
-  url: localhost:8082/mdqdwms
+  url: localhost:8080/mdqdwms
 
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
@@ -47,7 +47,7 @@
   # 鍫嗗灈鏈�1
   crn[0]:
     id: 1
-    ip: 10.10.10.100
+    ip: 10.10.10.200
     port: 102
     rack: 0
     slot: 0
@@ -85,7 +85,7 @@
   # 鍫嗗灈鏈�2
   crn[1]:
     id: 2
-    ip: 10.10.10.110
+    ip: 10.10.10.201
     port: 102
     rack: 0
     slot: 0
@@ -248,7 +248,7 @@
 #    slot: 0
 #  # RGV1
   rgv[0]:
-    id: 1
+    id: 2
     ip: 10.10.10.130
     port: 102
     rack: 0
@@ -259,8 +259,8 @@
       staNo: 2103
       staPlcId: 2
     outStn[0]:
-      sourceStaNo: 4007
-      sourcePlcId: 4
+      staNo: 2103
+      staPlcId: 2
 #  # RGV2
 #  rgv[1]:
 #    id: 2
diff --git a/src/main/resources/mapper/WrkMastStaMapper.xml b/src/main/resources/mapper/WrkMastStaMapper.xml
index d96f72d..cb23804 100644
--- a/src/main/resources/mapper/WrkMastStaMapper.xml
+++ b/src/main/resources/mapper/WrkMastStaMapper.xml
@@ -18,7 +18,16 @@
         <result column="wrk_type" property="wrkType" />
         <result column="bign_time" property="bignTime" />
         <result column="wrk_crn" property="wrkCrn" />
+        <result column="wrk_no2" property="wrkNo2"/>
 
     </resultMap>
+    <select id="selectByRgvNoandWrkNo" resultMap="BaseResultMap">
+        select * from asr_wrk_mast_sta
+        where wrk_crn = #{rgvNo} and wrk_no = #{taskNo} and wrk_sts = 1
+    </select>
+    <select id="selectByRgvNoandWrkNo2" resultMap="BaseResultMap">
+        select * from asr_wrk_mast_sta
+        where wrk_crn = #{rgvNo} and wrk_no2 = #{taskNo2} and wrk_sts = 1
+    </select>
 
 </mapper>
diff --git a/src/main/webapp/static/images/RMLogo.png b/src/main/webapp/static/images/RMLogo.png
new file mode 100644
index 0000000..a295a8d
--- /dev/null
+++ b/src/main/webapp/static/images/RMLogo.png
Binary files differ
diff --git a/src/main/webapp/views/console-old.html b/src/main/webapp/views/console-old.html
index 517a858..aa40e1e 100644
--- a/src/main/webapp/views/console-old.html
+++ b/src/main/webapp/views/console-old.html
@@ -22,7 +22,7 @@
             <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
         </div>
         <div class="head-right">
-            <img src="../static/images/zy-logo1.png" alt="涓壃" height="44" width="80">
+            <img src="../static/images/RMLogo.png" alt="娑︾編" height="44">
         </div>
     </div>
 
diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html
index 6b04d76..9edf168 100644
--- a/src/main/webapp/views/console.html
+++ b/src/main/webapp/views/console.html
@@ -21,7 +21,7 @@
                 <h6>AUTOMATIC WAREHOUSE WCS MONITORING DIAGRAM</h6>
             </div>
             <div class="head-right">
-                <img src="../static/images/zy-logo.png" alt="涓壃" height="44" width="80">
+                <img src="../static/images/RMLogo.png" alt="娑︾編" height="44">
             </div>
         </div>
         <div style="width: 1000px;height: 800px;overflow: hidden">
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index fba5381..842f38e 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -27,7 +27,7 @@
 <!-- 涓讳綋鍐呭 -->
 <iframe id="content" src="console.html"></iframe>
 <footer class="footer">
-    Copyright 漏 2015 All Rights Reserved. <a href="http://www.zoneyung.com" target="_blank">绫冲</a>  淇濈暀鎵�鏈夋潈鍒�
+    Copyright 漏 2020 All Rights Reserved. <a href="http://www.lubmate.com/" target="_blank">涓娑︾編(闈掑矝)</a>  淇濈暀鎵�鏈夋潈鍒�
 </footer>
 </body>
 <script>

--
Gitblit v1.9.1