From a84eadb43f793d74d39cc838b75a1aafd2885be4 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 02 三月 2024 09:34:28 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java      |   98 ++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  169 +++++++++++++++++++++++++--
 src/main/java/com/zy/asrs/entity/BasCrnp.java               |   11 +
 src/main/java/com/zy/core/MainProcess.java                  |    2 
 src/main/resources/mapper/BasCrnpMapper.xml                 |    1 
 src/main/java/com/zy/core/model/protocol/CrnProtocol.java   |   35 +++++
 6 files changed, 302 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasCrnp.java b/src/main/java/com/zy/asrs/entity/BasCrnp.java
index 2ce3c36..1013128 100644
--- a/src/main/java/com/zy/asrs/entity/BasCrnp.java
+++ b/src/main/java/com/zy/asrs/entity/BasCrnp.java
@@ -58,6 +58,13 @@
     private Integer wrkNo;
 
     /**
+     * 宸ヤ綔鍙�
+     */
+    @ApiModelProperty(value= "宸ヤ綔鍙�")
+    @TableField("wrk_no_two")
+    private Integer wrkNoTwo;
+
+    /**
      * 寮傚父鐮�
      */
     @ApiModelProperty(value= "寮傚父鐮�")
@@ -236,6 +243,10 @@
         this.wrkNo = wrkNo;
     }
 
+    public void setWrkNoTwo(Integer wrkNoTwo) {
+        this.wrkNoTwo = wrkNoTwo;
+    }
+
     public Long getCrnErr() {
         return crnErr;
     }
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 a2485cb..a286863 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1395,8 +1395,12 @@
                                 case 2:
                                     this.crnStnToLoc1Single(crn, crnProtocol); //  鍏ュ簱
                                     break;
+                                case 3:
+                                case 4:
+                                case 5:
+                                    break;
                                 default:
-                                    this.crnStnToLoc1(crn, crnProtocol); //  鍏ュ簱
+                                    this.crnStnToLoc1(crn, crnProtocol,1); //  鍏ュ簱
                             }
                             crnProtocol.setLastIo("O");
                         } else if (basCrnp.getOutEnable().equals("Y")) {
@@ -1405,8 +1409,12 @@
                                 case 2:
                                     this.locToCrnStn1Single(crn, crnProtocol); //  鍑哄簱
                                     break;
+                                case 3:
+                                case 4:
+                                case 5:
+                                    break;
                                 default:
-                                    this.locToCrnStn1(crn, crnProtocol); //  鍑哄簱
+                                    this.locToCrnStn1(crn, crnProtocol,1); //  鍑哄簱
                             }
                             crnProtocol.setLastIo("I");
                         }
@@ -1419,8 +1427,12 @@
                                 case 2:
                                     this.locToCrnStn1Single(crn, crnProtocol); //  鍑哄簱
                                     break;
+                                case 3:
+                                case 4:
+                                case 5:
+                                    break;
                                 default:
-                                    this.locToCrnStn1(crn, crnProtocol); //  鍑哄簱
+                                    this.locToCrnStn1(crn, crnProtocol,1); //  鍑哄簱
                             }
                             crnProtocol.setLastIo("I");
                         } else if (basCrnp.getInEnable().equals("Y")) {
@@ -1429,13 +1441,120 @@
                                 case 2:
                                     this.crnStnToLoc1Single(crn, crnProtocol); //  鍏ュ簱
                                     break;
+                                case 3:
+                                case 4:
+                                case 5:
+                                    break;
                                 default:
-                                    this.crnStnToLoc1(crn, crnProtocol); //  鍏ュ簱
+                                    this.crnStnToLoc1(crn, crnProtocol,1); //  鍏ュ簱
                             }
                             crnProtocol.setLastIo("O");
                         }
                     }
                 }
+                // 搴撲綅绉昏浆
+                this.locToLoc(crn, crnProtocol);
+//            this.crnRebackHp(crnProtocol, crnThread);
+
+            }
+        }catch (Exception e){
+            log.error("鍫嗗灈鏈哄嚭鍏ュ簱涓嬪彂鎶ラ敊"+e);
+        }
+    }
+
+    /**
+     * 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
+     */
+    public synchronized void crnIoExecuteTwo() {
+        try{
+            for (CrnSlave crn : slaveProperties.getCrn()) {
+                // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+                CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+                CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+                if (crnProtocol == null) {
+                    continue;
+                }
+                BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+                if (basCrnp == null) {
+                    log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+                    continue;
+                }
+
+
+                int[] sign = new int[]{0,0};
+                // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+                if (crnProtocol.getModeType() == CrnModeType.AUTO) {
+                    // 鍙湁褰撳爢鍨涙満宸ヤ綅绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+                    if (crnProtocol.getStatusType() == CrnStatusType.IDLE
+                            && crnProtocol.getTaskNo() == 0
+                            && crnProtocol.getLoaded() == 0
+                            && crnProtocol.getForkPos() == 0) {
+                        sign[0] = 1;
+                        sign[1] = 1;
+                    }else if (crnProtocol.getStatusTypeTwo() == CrnStatusType.IDLE
+                            && crnProtocol.getTaskNoTwo() == 0
+                            && crnProtocol.getLoadedTwo() == 0
+                            && crnProtocol.getForkPosTwo() == 0){
+                        sign[0] = 1;
+                        sign[1] = 2;
+                    }
+                }
+
+                if (sign[0]==1){
+                    // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+                    if (crnProtocol.getLastIo().equals("I")) {
+                        if (basCrnp.getInEnable().equals("Y")) {
+                            switch (crn.getId()){
+                                case 3:
+                                case 4:
+                                case 5:
+                                    this.crnStnToLoc1(crn, crnProtocol, sign[1]); //  鍏ュ簱
+                                    break;
+                                default:
+                                    break;
+                            }
+                            crnProtocol.setLastIo("O");
+                        } else if (basCrnp.getOutEnable().equals("Y")) {
+                            switch (crn.getId()){
+                                case 3:
+                                case 4:
+                                case 5:
+                                    this.locToCrnStn1(crn, crnProtocol, sign[1]); //  鍑哄簱
+                                    break;
+                                default:
+                                    break;
+                            }
+                            crnProtocol.setLastIo("I");
+                        }
+                    }
+                    // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+                    else if (crnProtocol.getLastIo().equals("O")) {
+                        if (basCrnp.getOutEnable().equals("Y")) {
+                            switch (crn.getId()){
+                                case 3:
+                                case 4:
+                                case 5:
+                                    this.locToCrnStn1(crn, crnProtocol, sign[1]); //  鍑哄簱
+                                    break;
+                                default:
+                                    break;
+                            }
+                            crnProtocol.setLastIo("I");
+                        } else if (basCrnp.getInEnable().equals("Y")) {
+                            switch (crn.getId()){
+                                case 3:
+                                case 4:
+                                case 5:
+                                    this.crnStnToLoc1(crn, crnProtocol, sign[1]); //  鍏ュ簱
+                                    break;
+                                default:
+                                    break;
+                            }
+                            crnProtocol.setLastIo("O");
+                        }
+                    }
+                }
+
                 // 搴撲綅绉昏浆
                 this.locToLoc(crn, crnProtocol);
 //            this.crnRebackHp(crnProtocol, crnThread);
@@ -1703,7 +1822,7 @@
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ鍚屽彴鍫嗗灈鏈哄伐浣滄。鎵�鏈夌珯鐐瑰叆搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
      */
-    public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol) {
+    public synchronized void crnStnToLoc1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
         List<WrkMast> wrkMasts = wrkMastMapper.selectPakInStep12(slave.getId());
         for(WrkMast wrkMast : wrkMasts){
             if (wrkMast == null) {
@@ -1755,10 +1874,21 @@
                 continue;
             }
 
-            // 鍫嗗灈鏈烘帶鍒惰繃婊�
-            if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-                continue;
+            //宸ヤ綅
+            if (crnStation == 1){
+                // 鍫嗗灈鏈烘帶鍒惰繃婊�
+                if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+                    break;
+                }
+            }else if(crnStation == 2){
+                // 鍫嗗灈鏈烘帶鍒惰繃婊�
+                if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+                    break;
+                }
+            }else {
+                break;
             }
+
 
             // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
             if (wrkMastMapper.selectWorking(slave.getId()) != null) {
@@ -1815,7 +1945,7 @@
             crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 鐩爣搴撲綅鎺�
             crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 鐩爣搴撲綅鍒�
             crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 鐩爣搴撲綅灞�
-            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
                 log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
@@ -1828,7 +1958,6 @@
                 }
             }
         }
-
     }
 
     /**
@@ -2107,7 +2236,7 @@
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-12-03 TQS淇敼锛屽厛閬嶅巻鏌ヨ宸ヤ綔妗f墍鏈夌珯鐐瑰嚭搴撲换鍔IST锛屾牴鎹伐浣滄。浠诲姟鎺掑簭浼樺厛绾ч珮浜� 鏍规嵁鍫嗗灈鏈哄叆搴撶珯鐐规帓搴�
      */
-    public synchronized void locToCrnStn1(CrnSlave slave, CrnProtocol crnProtocol) {
+    public synchronized void locToCrnStn1(CrnSlave slave, CrnProtocol crnProtocol, Integer crnStation) {
         List<WrkMast> wrkMasts = wrkMastMapper.selectPakOutStep12(slave.getId());
         for (WrkMast wrkMast : wrkMasts) {
             if (wrkMast == null) {
@@ -2171,9 +2300,21 @@
                     && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
 
-                // 鍫嗗灈鏈烘帶鍒惰繃婊�
-                if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+
+                //宸ヤ綅
+                if (crnStation == 1){
+                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
+                    if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
 //                        continue;
+                        break;
+                    }
+                }else if(crnStation == 2){
+                    // 鍫嗗灈鏈烘帶鍒惰繃婊�
+                    if (!crnProtocol.getStatusTypeTwo().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNoTwo() != 0) {
+//                        continue;
+                        break;
+                    }
+                }else {
                     break;
                 }
 
@@ -2239,7 +2380,7 @@
                 crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 鐩爣搴撲綅鎺�
                 crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 鐩爣搴撲綅鍒�
                 crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 鐩爣搴撲綅灞�
-                if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+                if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(crnStation==1? 2:5, crnCommand))) {
                     log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
                 } else {
                     // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index eefaa78..d8046a1 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -70,6 +70,8 @@
                     mainService.crnStnToOutStn();
                     // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
                     mainService.crnIoExecute();
+                    // 鍏ュ嚭搴�  ===>>  鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂  鍙屽伐浣嶅爢鍨涙満
+                    mainService.crnIoExecuteTwo();
                     // 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
 //                    mainService.crnIoWrkMast();
                     // 鍏ュ簱  ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index a63b90b..30c7d1e 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -33,11 +33,13 @@
      * 寮傚父鐮�
      */
     public Short alarm;
+    public Short alarmTwo;
 
     /**
      * 浠诲姟鍙�
      */
     public Short taskNo = 0;
+    public Short taskNoTwo = 0;
 
     /**
      * 鍫嗗灈鏈哄綋鍓嶇姸鎬�
@@ -53,11 +55,13 @@
      * 99锛氭姤璀�
      */
     public Short status;
+    public Short statusTwo;
 
     /**
      * 鐘舵�佹灇涓�
      */
     public CrnStatusType statusType;
+    public CrnStatusType statusTypeTwo;
 
     /**
      * 鍫嗗灈鏈哄綋鍓嶅垪鍙�
@@ -76,8 +80,10 @@
      * 2 = 璐у弶鍦ㄥ彸渚�
      */
     public Short forkPos;
+    public Short forkPosTwo;
 
     public CrnForkPosType forkPosType;
+    public CrnForkPosType forkPosTypeTwo;
 
     /**
      * 褰撳墠杞借揣鍙颁綅缃�
@@ -85,8 +91,10 @@
      * 1 = 涓婂畾浣�
      */
     public Short liftPos;
+    public Short liftPosTwo;
 
     public CrnLiftPosType liftPosType;
+    public CrnLiftPosType liftPosTypeTwo;
 
     /**
      * 璧拌鍦ㄥ畾浣�
@@ -99,6 +107,7 @@
      * 杞借揣鍙版湁鐗�
      */
     public Short loaded;
+    public Short loadedTwo;
 
     private Short temp1;
 
@@ -207,6 +216,16 @@
         this.forkPos = CrnForkPosType.get(type).id.shortValue();
     }
 
+    public void setForkPosTwo(Short forkPosTwo) {
+        this.forkPosTwo = forkPosTwo;
+        this.forkPosTypeTwo = CrnForkPosType.get(forkPosTwo);
+    }
+
+    public void setForkPosTwo(CrnForkPosType typeTwo) {
+        this.forkPosTypeTwo = typeTwo;
+        this.forkPosTwo = CrnForkPosType.get(typeTwo).id.shortValue();
+    }
+
     public void setLiftPos(Short liftPos) {
         this.liftPos = liftPos;
         this.liftPosType = CrnLiftPosType.get(liftPos);
@@ -217,9 +236,24 @@
         this.liftPos = CrnLiftPosType.get(type).id.shortValue();
     }
 
+    public void setLiftPosTwo(Short liftPosTwo) {
+        this.liftPosTwo = liftPosTwo;
+        this.liftPosTypeTwo = CrnLiftPosType.get(liftPosTwo);
+    }
+
+    public void setLiftPosTwo(CrnLiftPosType typeTwo) {
+        this.liftPosTypeTwo = typeTwo;
+        this.liftPosTwo = CrnLiftPosType.get(typeTwo).id.shortValue();
+    }
+
     public void setStatus(Short status){
         this.status = status;
         this.statusType = CrnStatusType.get(status);
+    }
+
+    public void setStatusTwo(Short statusTwo){
+        this.statusTwo = statusTwo;
+        this.statusTypeTwo = CrnStatusType.get(statusTwo);
     }
 
     public void setStatus(CrnStatusType type){
@@ -248,6 +282,7 @@
             basCrnp.setCrnErr(alarm.longValue());
         }
         basCrnp.setWrkNo(taskNo.intValue());
+        basCrnp.setWrkNoTwo(taskNoTwo.intValue());
         return basCrnp;
     }
 
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 3da01f5..3990184 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -90,6 +90,28 @@
                         command.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
                         write(command);
                         break;
+                    // 鍐欏叆鏁版嵁
+                    case 5:
+                        write5((CrnCommand) task.getData());
+                        break;
+                    // 澶嶄綅
+                    case 6:
+                        CrnCommand command2 = (CrnCommand) task.getData();
+                        if (null == command2) {
+                            command2 = new CrnCommand();
+                        }
+                        command2.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+                        command2.setTaskNo((short) 0); // 宸ヤ綔鍙�
+                        command2.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
+                        command2.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡
+                        command2.setSourcePosX((short)0);     // 婧愬簱浣嶆帓
+                        command2.setSourcePosY((short)0);     // 婧愬簱浣嶅垪
+                        command2.setSourcePosZ((short)0);     // 婧愬簱浣嶅眰
+                        command2.setDestinationPosX((short)0);     // 鐩爣搴撲綅鎺�
+                        command2.setDestinationPosY((short)0);     // 鐩爣搴撲綅鍒�
+                        command2.setDestinationPosZ((short)0);     // 鐩爣搴撲綅灞�
+                        write5(command2);
+                        break;
                     default:
                         break;
                 }
@@ -181,6 +203,14 @@
                 crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
                 crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
 
+
+                //宸ヤ綅2鏁版嵁  鏃犲垯鏃犻渶渚嬩細
+                crnProtocol.setTaskNoTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
+                crnProtocol.setStatusTwo(siemensNet.getByteTransform().TransInt16(result.Content, 56));
+                crnProtocol.setForkPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 58));
+                crnProtocol.setLiftPosTwo(siemensNet.getByteTransform().TransInt16(result.Content, 60));
+                crnProtocol.setLoadedTwo(siemensNet.getByteTransform().TransInt16(result.Content, 64));
+
                 OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
                 // 澶嶄綅淇″彿
@@ -299,6 +329,74 @@
         }
     }
 
+    /**
+     * 鍐欏叆鏁版嵁  宸ヤ綅2
+     */
+    private boolean write5(CrnCommand command) throws InterruptedException {
+        if (null == command) {
+            log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+            return false;
+        }
+//        convertRow(command);
+        command.setCrnNo(slave.getId());
+        short[] array = new short[9];
+//        array[0] = command.getAckFinish();
+        array[0] = command.getTaskNo();
+        array[1] = command.getTaskMode();
+        array[2] = command.getSourcePosX();
+        array[3] = command.getSourcePosY();
+        array[4] = command.getSourcePosZ();
+        array[5] = command.getDestinationPosX();
+        array[6] = command.getDestinationPosY();
+        array[7] = command.getDestinationPosZ();
+//        array[9] = command.getSourceStaNo();
+//        array[10] = command.getDestinationStaNo();
+        array[9] = command.getCommand();
+        OperateResult result = siemensNet.Write("DB100.0", command.getAckFinish());
+        OperateResult result2 = siemensNet.Write("DB100.20", array);
+
+        if (command.getAckFinish() == 0) {
+            short commandFinish = 1;
+            Thread.sleep(100L);
+            result = siemensNet.Write("DB100.38", commandFinish);
+        }
+
+        try {
+            // 鏃ュ織璁板綍
+            BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
+            BasCrnOpt basCrnOpt = new BasCrnOpt(
+                    command.getTaskNo().intValue(),    // 浠诲姟鍙�
+                    command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
+                    new Date(),    // 涓嬪彂鏃堕棿
+                    command.getTaskModeType().toString(),    // 妯″紡
+                    command.getSourcePosX().intValue(),    // 婧愭帓
+                    command.getSourcePosY().intValue(),    // 婧愬垪
+                    command.getSourcePosZ().intValue(),    // 婧愬眰
+                    null,    // 婧愮珯
+                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
+                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
+                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
+                    null,    // 鐩爣绔�
+                    null,    // 鍝嶅簲缁撴灉
+                    null,    // 淇敼鏃堕棿
+                    null    // 淇敼浜哄憳
+            );
+            bean.insert(basCrnOpt);
+        } catch (Exception ignore) {}
+
+        if (result != null && result.IsSuccess) {
+            Thread.sleep(200);
+            this.readStatus();
+            log.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+            return true;
+        } else {
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            return false;
+        }
+    }
+
 
     @Override
     public void close() {
diff --git a/src/main/resources/mapper/BasCrnpMapper.xml b/src/main/resources/mapper/BasCrnpMapper.xml
index b9a10bc..8cf886b 100644
--- a/src/main/resources/mapper/BasCrnpMapper.xml
+++ b/src/main/resources/mapper/BasCrnpMapper.xml
@@ -9,6 +9,7 @@
         <result column="out_enable" property="outEnable" />
         <result column="crn_sts" property="crnSts" />
         <result column="wrk_no" property="wrkNo" />
+        <result column="wrk_no_two" property="wrkNoTwo" />
         <result column="crn_err" property="crnErr" />
         <result column="frm_locno" property="frmLocno" />
         <result column="frm_sta" property="frmSta" />

--
Gitblit v1.9.1