From 3897c8800805f6e99e30d700fe0c11c5ed2df84a Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 26 九月 2025 14:24:59 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    5 
 src/main/java/com/zy/asrs/domain/param/CrnOperatorParam.java   |    3 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   18 +
 src/main/resources/mapper/LocMastMapper.xml                    |   12 +
 src/main/webapp/static/js/console.map.js                       |   14 
 src/main/java/com/zy/asrs/controller/CrnController.java        |  110 +++++-----
 pom.xml                                                        |    2 
 src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java       |    3 
 src/main/java/com/zy/core/thread/SiemensCrnThread.java         |   43 ++--
 src/main/webapp/views/crn.html                                 |   40 ++-
 src/main/java/com/zy/asrs/domain/vo/CrnMsgTableVo.java         |   12 +
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    3 
 src/main/webapp/static/js/common.js                            |    2 
 src/main/java/com/zy/asrs/service/LocMastService.java          |    1 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java        |  219 +++++++++------------
 src/main/resources/application.yml                             |   64 ++---
 16 files changed, 291 insertions(+), 260 deletions(-)

diff --git a/pom.xml b/pom.xml
index c291bdf..05268d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -194,7 +194,7 @@
 
     <build>
 <!--        <finalName>rqdzwcs</finalName>-->
-        <finalName>czkhwcs</finalName>
+        <finalName>wcs</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index abfdd84..dd1ec9d 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -21,7 +21,6 @@
 import com.zy.asrs.service.LocMastService;
 import com.zy.asrs.service.WrkMastService;
 import com.zy.asrs.service.impl.MainServiceImpl;
-import com.zy.asrs.utils.VersionUtils;
 import com.zy.core.CrnThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -35,7 +34,6 @@
 import com.zy.core.model.protocol.CrnProtocol;
 import com.zy.core.properties.SlaveProperties;
 import com.zy.core.properties.SystemProperties;
-import com.zy.core.thread.RgvThread;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -73,7 +71,7 @@
 
     @ManagerAuth(memo = "杩涜涓殑鍛戒护")
     @PostMapping("/command/ongoing")
-    public R ongoingCommand(){
+    public R ongoingCommand() {
         List<CommandLogVo> list = new ArrayList<>();
         for (CrnSlave crn : slaveProperties.getCrn()) {
             CommandLogVo vo = new CommandLogVo();
@@ -92,7 +90,7 @@
             vo.setStatus(1);    //  鐘舵��
             Task task = MessageQueue.peek(SlaveType.Crn, crn.getId());
             if (task != null) {
-                vo.setCommand(JSON.toJSONString((CrnCommand)task.getData()));
+                vo.setCommand(JSON.toJSONString((CrnCommand) task.getData()));
             }
         }
         return R.ok().add(list);
@@ -100,7 +98,7 @@
 
     @PostMapping("/table/crn/state")
     @ManagerAuth(memo = "鍫嗗灈鏈轰俊鎭〃")
-    public R crnStateTable(){
+    public R crnStateTable() {
         List<CrnStateTableVo> list = new ArrayList<>();
         List<BasCrnp> crnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().orderBy("crn_no"));
         for (BasCrnp basCrnp : crnps) {
@@ -120,20 +118,22 @@
             vo.setWorkNo(crnProtocol.getTaskNo());  //  浠诲姟鍙�
             vo.setStatusType(crnProtocol.modeType.desc);   //  妯″紡鐘舵��
             vo.setStatus(crnProtocol.getStatusType().desc);     //  鐘舵��
-            vo.setLoading(crnProtocol.getLoaded()==1?"鏈夌墿":"鏃犵墿");  //  鏈夌墿
+            vo.setLoading(crnProtocol.getLoaded() == 1 ? "鏈夌墿" : "鏃犵墿");  //  鏈夌墿
+            vo.setLoadTwoing(crnProtocol.getLoadedTwo() == 1 ? "鏈夌墿" : "鏃犵墿");  //  鏈夌墿
+
             vo.setBay(crnProtocol.getBay());    //  鍒�
             vo.setLev(crnProtocol.getLevel());  //  灞�
 
             vo.setForkOffset(crnProtocol.getForkPosType().desc);    // 璐у弶浣嶇疆
             vo.setLiftPos(crnProtocol.getLiftPosType().desc);
-            vo.setWalkPos(crnProtocol.getWalkPos()==1?"涓嶅湪瀹氫綅":"鍦ㄥ畾浣�");
-            if(crnProtocol.getAlarm() == 10){
+            vo.setWalkPos(crnProtocol.getWalkPos() == 1 ? "涓嶅湪瀹氫綅" : "鍦ㄥ畾浣�");
+            if (crnProtocol.getAlarm() == 10) {
                 crnProtocol.setAlarm((short) 0);
             }
             vo.setWarnCode(String.valueOf(crnProtocol.getAlarm()));
             if (crnProtocol.getAlarm() > 0) {
                 BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
-                vo.setAlarm(crnError==null?"鏈煡寮傚父":crnError.getErrName());
+                vo.setAlarm(crnError == null ? "鏈煡寮傚父" : crnError.getErrName());
             }
         }
         return R.ok().add(list);
@@ -141,7 +141,7 @@
 
     @PostMapping("/table/crn/msg")
     @ManagerAuth(memo = "鍫嗗灈鏈烘暟鎹〃")
-    public R crnMsgTable(){
+    public R crnMsgTable() {
         List<CrnMsgTableVo> list = new ArrayList<>();
         List<BasCrnp> crnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().orderBy("crn_no"));
         for (BasCrnp basCrnp : crnps) {
@@ -160,7 +160,7 @@
             }
 
             vo.setWorkNo(crnProtocol.getTaskNo());  //  浠诲姟鍙�
-            if (crnProtocol.getTaskNo()>0) {
+            if (crnProtocol.getTaskNo() > 0) {
                 WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNo());
                 if (wrkMast != null) {
                     vo.setStatus(CrnStatusType.process(wrkMast.getIoType()).getDesc());   //  妯″紡鐘舵��
@@ -170,8 +170,21 @@
                     vo.setLocNo(wrkMast.getLocNo());    //  鐩爣搴撲綅
                 }
             } else {
-                vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO)? CrnStatusType.MACHINE_AUTO.getDesc(): CrnStatusType.MACHINE_UN_AUTO.getDesc());   //  妯″紡鐘舵��
+                vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO) ? CrnStatusType.MACHINE_AUTO.getDesc() : CrnStatusType.MACHINE_UN_AUTO.getDesc());   //  妯″紡鐘舵��
             }
+
+            if (crnProtocol.getTaskNoTwo() > 0) {
+                WrkMast wrkMast = wrkMastService.selectById(crnProtocol.getTaskNoTwo());
+                if (wrkMast != null) {
+                    vo.setSourceStaNo2(wrkMast.getSourceStaNo$());    //  婧愮珯
+                    vo.setStaNo2(wrkMast.getStaNo$());   //  鐩爣绔�
+                    vo.setSourceLocNo2(wrkMast.getSourceLocNo());    //  婧愬簱浣�
+                    vo.setLocNo2(wrkMast.getLocNo());    //  鐩爣搴撲綅
+                }
+            } else {
+                vo.setStatus(crnProtocol.modeType.equals(CrnModeType.AUTO) ? CrnStatusType.MACHINE_AUTO.getDesc() : CrnStatusType.MACHINE_UN_AUTO.getDesc());   //  妯″紡鐘舵��
+            }
+
             vo.setXspeed(crnProtocol.getXSpeed());  //  璧拌閫熷害锛坢/min)
             vo.setYspeed(crnProtocol.getYSpeed());  //  鍗囬檷閫熷害锛坢/min)
             vo.setZspeed(crnProtocol.getZSpeed());  //  鍙夌墮閫熷害锛坢/min)
@@ -185,11 +198,11 @@
 
     @PostMapping("/output/site")
     @ManagerAuth(memo = "鍫嗗灈鏈烘姤鏂囨棩蹇楄緭鍑�")
-    public R crnOutput(){
+    public R crnOutput() {
         StringBuilder str = new StringBuilder();
         String s;
         int i = 0;
-        while((s = OutputQueue.CRN.poll()) != null && i <=10) {
+        while ((s = OutputQueue.CRN.poll()) != null && i <= 10) {
             str.append("\n").append(s);
             i++;
         }
@@ -198,7 +211,7 @@
 
 
     @GetMapping("/demo/status")
-    public R demoStatus(){
+    public R demoStatus() {
         List<Map<String, Object>> res = new ArrayList<>();
         for (CrnSlave crnSlave : slaveProperties.getCrn()) {
             Map<String, Object> map = new HashMap<>();
@@ -213,13 +226,13 @@
     @PostMapping("/demo/switch")
     @ManagerAuth(memo = "鍫嗗灈鏈烘紨绀�")
     public R crnDemo(CrnDemoParam param) throws InterruptedException {
-        if (Cools.isEmpty(param.getCrnId())){
+        if (Cools.isEmpty(param.getCrnId())) {
             return R.error();
         }
-        if (Cools.isEmpty(param.getPassword())){
+        if (Cools.isEmpty(param.getPassword())) {
             return R.error("璇疯緭鍏ュ彛浠�");
         }
-        if (!param.getPassword().equals(SystemProperties.WCS_PASSWORD)){
+        if (!param.getPassword().equals(SystemProperties.WCS_PASSWORD)) {
             return R.error("鍙d护閿欒");
         }
         Thread.sleep(200L);
@@ -231,7 +244,6 @@
 //        mainService.crnDemoOfLocMove(param.getCrnId());
         return R.ok();
     }
-
 
 
     /****************************************************************/
@@ -275,10 +287,9 @@
 //        command.setTraySize(locSts);
 //        return crnControl(command)?R.ok():R.error();
 //    }
-
     @ManagerAuth(memo = "搴撲綅杞Щ")
     @PostMapping("/operator/stockMove")
-    public R crnStockMove(CrnOperatorParam param){
+    public R crnStockMove(CrnOperatorParam param) {
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -294,17 +305,17 @@
                 .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ()));
         LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX())
                 .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ()));
-        if (sourceLoc.getLocType1() != loc.getLocType1()){
+        if (sourceLoc.getLocType1() != loc.getLocType1()) {
             return R.error("搴撲綅绫诲瀷涓嶄竴鑷�");
         }
         command.setTraySize(loc.getLocType1() == 2);
 //        VersionUtils.locMoveCheckLocType(sourceLoc, loc);
-        return crnControl(command)?R.ok():R.error();
+        return crnControl(command) ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "绔欏埌绔�")
     @PostMapping("/operator/siteMove")
-    public R crnSiteMove(CrnOperatorParam param){
+    public R crnSiteMove(CrnOperatorParam param) {
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -316,12 +327,12 @@
         command.setDestinationPosX(param.getStaNo());     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+        return crnControl(command) ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "鍥炲師鐐�")
     @PostMapping("/operator/bacOrigin")
-    public R crnBacOrigin(CrnOperatorParam param){
+    public R crnBacOrigin(CrnOperatorParam param) {
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -333,12 +344,12 @@
         command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+        return crnControl(command) ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "鍙嶅師鐐�")
     @PostMapping("/operator/reverseOrigin")
-    public R reverseOrigin(CrnOperatorParam param){
+    public R reverseOrigin(CrnOperatorParam param) {
         CrnCommand command = new CrnCommand();
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
@@ -350,7 +361,7 @@
         command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY((short) 34);     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ((short) 5);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+        return crnControl(command) ? R.ok() : R.error();
     }
 
 //    @ManagerAuth(memo = "鍧愭爣绉诲姩")
@@ -373,8 +384,9 @@
 
     @ManagerAuth(memo = "浠诲姟瀹屾垚")
     @PostMapping("/operator/taskComplete")
-    public R crnTaskComplete(CrnOperatorParam param){
+    public R crnTaskComplete(CrnOperatorParam param) {
         CrnCommand command = new CrnCommand();
+        command.setPltType(param.getC());
         command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
         command.setTaskNo((short) 0); // 宸ヤ綔鍙�
         command.setAckFinish((short) 1);  // 浠诲姟瀹屾垚纭浣�
@@ -385,9 +397,8 @@
         command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+        return crnControl(command) ? R.ok() : R.error();
     }
-
 
 
 //    @ManagerAuth(memo = "鏆傚仠")
@@ -404,7 +415,7 @@
 
     @ManagerAuth(memo = "娓呴櫎鍛戒护")
     @PostMapping("/operator/clearCommand")
-    public R crnClearCommand(CrnOperatorParam param){
+    public R crnClearCommand(CrnOperatorParam param) {
         if (param.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
         }
@@ -419,7 +430,7 @@
         command.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
         command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
         command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-        return crnControl(command)?R.ok():R.error();
+        return crnControl(command) ? R.ok() : R.error();
     }
 
     @ManagerAuth(memo = "鎵嬪姩澶嶄綅")
@@ -460,7 +471,7 @@
         return R.error();
     }
 
-    private boolean crnControl(CrnCommand command){
+    private boolean crnControl(CrnCommand command) {
         if (command.getCrnNo() == null) {
             throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�");
         }
@@ -476,22 +487,19 @@
                     throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎");
                 }
                 // 绌洪棽鍒ゆ柇
-//                if (crnProtocol.getStatusType().equals(com.zy.core.enums.CrnStatusType.IDLE) && crnProtocol.getTaskNo() == 0) {
-                    if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))) {
-                        return true;
-                    } else {
-                        throw new CoolException("鍛戒护涓嬪彂澶辫触");
-                    }
-//                } else {
-//                    throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ┖闂茬姸鎬�");
-//                }
+                if (MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))) {
+                    return true;
+                } else {
+                    throw new CoolException("鍛戒护涓嬪彂澶辫触");
+                }
+
             }
         }
         return false;
     }
 
-    private void staNoProcess(CrnOperatorParam param, CrnCommand command){
-        if (param.getSourceStaNo()!=null) {
+    private void staNoProcess(CrnOperatorParam param, CrnCommand command) {
+        if (param.getSourceStaNo() != null) {
             if (param.getSourceStaNo() == 5) {
                 command.setSourcePosX((short) 2);     // 婧愬簱浣嶆帓
                 command.setSourcePosY((short) 0);     // 婧愬簱浣嶅垪
@@ -502,7 +510,7 @@
                 command.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
             }
         }
-        if (param.getStaNo()!=null) {
+        if (param.getStaNo() != null) {
             if (param.getStaNo() == 5) {
                 command.setDestinationPosX((short) 2);     // 鐩爣搴撲綅鎺�
                 command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
@@ -515,16 +523,16 @@
         }
     }
 
-    private boolean isLocSts(String row,String bay,String lev){
+    private boolean isLocSts(String row, String bay, String lev) {
         int rowInt = Integer.parseInt(row);
         int bayInt = Integer.parseInt(bay);
         int levInt = Integer.parseInt(lev);
-        String loc = String.format("%2d",rowInt)+String.format("%3d",bayInt)+String.format("%2d",levInt);
+        String loc = String.format("%2d", rowInt) + String.format("%3d", bayInt) + String.format("%2d", levInt);
         LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", loc));
-        if (Cools.isEmpty(locMast)){
+        if (Cools.isEmpty(locMast)) {
             return false;
         }
-        if (locMast.getLocType1() == 2){
+        if (locMast.getLocType1() == 2) {
             return true;
         }
         return false;
diff --git a/src/main/java/com/zy/asrs/domain/param/CrnOperatorParam.java b/src/main/java/com/zy/asrs/domain/param/CrnOperatorParam.java
index 120bc71..e7a1b8c 100644
--- a/src/main/java/com/zy/asrs/domain/param/CrnOperatorParam.java
+++ b/src/main/java/com/zy/asrs/domain/param/CrnOperatorParam.java
@@ -37,4 +37,7 @@
 
     private Integer rgvNo;
 
+
+    private Integer c;
+
 }
diff --git a/src/main/java/com/zy/asrs/domain/vo/CrnMsgTableVo.java b/src/main/java/com/zy/asrs/domain/vo/CrnMsgTableVo.java
index ef124a3..e44e5bd 100644
--- a/src/main/java/com/zy/asrs/domain/vo/CrnMsgTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/CrnMsgTableVo.java
@@ -30,6 +30,18 @@
     // 鐩爣搴撲綅
     private String locNo = "-";
 
+    // 婧愮珯
+    private String sourceStaNo2 = "-";
+
+    // 鐩爣绔�
+    private String staNo2 = "-";
+
+    // 婧愬簱浣�
+    private String sourceLocNo2 = "-";
+
+    // 鐩爣搴撲綅
+    private String locNo2 = "-";
+
     // 寮傚父
     private String error = "";
 
diff --git a/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java b/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java
index 4e9f53a..b5b9ce8 100644
--- a/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java
@@ -17,6 +17,9 @@
     // 鏈夌墿
     private String loading = "-";
 
+    // 鏈夌墿
+    private String loadTwoing = "-";
+
     // 鍒�
     private Short bay;
 
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 9fd1d06..a8b3aa7 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -22,6 +22,9 @@
 
     LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
 
+    LocMast queryFreeLocMast2(@Param("row") Integer row, @Param("locType1") Short locType1);
+
+
     @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
     List<String> queryGroupEmptyStock(Integer crnNo);
 
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index bc45966..2ec98b9 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -17,6 +17,7 @@
      */
     LocMast queryFreeLocMast(Integer row, Short locType1);
 
+    LocMast queryFreeLocMast2(Integer row, Short locType1);
     /**
      * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅
      * @param sourceLocNo 婧愬簱浣�
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index ababf93..42634ef 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -21,6 +21,11 @@
     public LocMast queryFreeLocMast(Integer row, Short locType1) {
         return this.baseMapper.queryFreeLocMast(row, locType1);
     }
+    @Override
+    public LocMast queryFreeLocMast2(Integer row, Short locType1) {
+        return this.baseMapper.queryFreeLocMast2(row, locType1);
+    }
+
 
     @Override
     public List<String> queryGroupEmptyStock(String sourceLocNo) {
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 8b2e293..81a9da5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2088,6 +2088,7 @@
 
         // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
         CrnCommand crnCommand = new CrnCommand();
+        crnCommand.setPltType(getCrnStation(wrkMast.getSourceLocNo()));
         crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
         crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
         crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
@@ -2660,7 +2661,13 @@
             LocMast loc = null;
             for (Integer row : rows) {
                 if (Utils.isDeepLoc(slaveProperties, row)) {
-                    loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                    if (shallowLoc.getRow1() == 1 && row == 1) {
+                        loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1());
+                    } else if (shallowLoc.getRow1() == 29 && row == 29) {
+                        loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1());
+                    } else {
+                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                    }
 
                     if (loc != null) {
                         if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
@@ -2679,7 +2686,14 @@
             if (null == loc) {
                 for (Integer row : rows) {
                     if (Utils.isShallowLoc(slaveProperties, row)) {
-                        loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                        if (shallowLoc.getRow1() == 1 && row == 1) {
+                            loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1());
+                        } else if (shallowLoc.getRow1() == 29 && row == 29) {
+                            loc = locMastService.queryFreeLocMast2(row, shallowLoc.getLocType1());
+                        } else {
+                            loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
+                        }
+
 
                         if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
                             String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index f2b7e8d..b1995c0 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -74,7 +74,12 @@
                         break;
                     // 鍐欏叆鏁版嵁 1鍙峰伐浣�
                     case 2:
-                        write((CrnCommand) task.getData());
+                        CrnCommand data = (CrnCommand) task.getData();
+                        if (data.getPltType() == null || data.getPltType() == 1) {
+                            write(data);
+                        } else if (data.getPltType() == 2) {
+                            write2(data);
+                        }
                         break;
                     // 澶嶄綅 1鍙峰伐浣�
                     case 3:
@@ -93,10 +98,6 @@
                         command.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
                         command.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
                         write(command);
-                        break;
-                    // 鍐欏叆鏁版嵁 2鍙峰伐浣�
-                    case 4:
-                        write2((CrnCommand) task.getData());
                         break;
                     // 澶嶄綅 2鍙峰伐浣�
                     case 6:
@@ -489,7 +490,7 @@
             return false;
         }
         // 鍚戝爢鍨涙満鍙戜换鍔″墠鐨勫爢鍨涙満鐘舵��
-        try{
+        try {
             OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
             if (resultRead.IsSuccess) {
                 CrnCommand one = new CrnCommand();
@@ -505,13 +506,13 @@
                         || !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
                         || !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
                         || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
-                ){
+                ) {
 //                    News.error("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
                 } else {
 //                    News.info("涓嬪彂鍓嶏細[id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
                 }
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
         }
 //        convertRow(command);
@@ -531,7 +532,7 @@
 //        array[10] = 0;   //澶囩敤1
 
         short[] array2 = new short[1];
-        array2[0] =  command.getAckFinish();
+        array2[0] = command.getAckFinish();
         OperateResult result = siemensNet.Write("DB100.20", array);
         OperateResult result2 = siemensNet.Write("DB100.0", array2);
         News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
@@ -539,7 +540,7 @@
         int writeCount1 = 1;
         do {
             try {
-                if (!result.IsSuccess||!result2.IsSuccess) {
+                if (!result.IsSuccess || !result2.IsSuccess) {
 //                    if (!resetFlag){
                     News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔�  鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(command), writeCount1);
                     result = siemensNet.Write("DB100.0", array);
@@ -609,26 +610,26 @@
                     writeCount2++;
                     short commandFinish = (short) 1;
                     result = siemensNet.Write("DB100.38", commandFinish);
-                    if(result.IsSuccess){
+                    if (result.IsSuccess) {
                         //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
                         Thread.sleep(200);
                         OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.38", (short) 2);
                         if (resultRead.IsSuccess) {
-                            commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
-                            if (commandFinish != 1){
-                                News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
-                            }else{
+                            commandFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+                            if (commandFinish != 1) {
+                                News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
+                            } else {
                                 //浠诲姟鍛戒护鍐欏叆鎴愬姛
 //                                News.info("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
                                 break;
                             }
-                        }else {
-                            News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+                        } else {
+                            News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍥炶澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
                         }
                     } else {
-                        News.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+                        News.error("鍫嗗灈鏈轰换鍔$‘璁や綅" + commandFinish + "鍐欏叆澶辫触锛�" + "寰幆鎵ц娆℃暟:" + writeCount2 + "娆�");
                     }
-                }while (writeCount2<5);
+                } while (writeCount2 < 5);
             }
         }
 
@@ -654,7 +655,8 @@
                     null    // 淇敼浜哄憳
             );
             bean.insert(basCrnOpt);
-        } catch (Exception ignore) {}
+        } catch (Exception ignore) {
+        }
 
         if (result != null && result.IsSuccess) {
             Thread.sleep(200);
@@ -668,6 +670,7 @@
             return false;
         }
     }
+
     public void requestStop() {
         isRunning = false;
     }
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 7c4b956..943e1ad 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -44,34 +44,37 @@
     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>() {{
-        add(101);add(102);add(103);
-        add(104);add(105);
-    }};
 
+    public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
+        add(1101);
+        add(1102);
+        add(1103);
+        add(1104);
+        add(1105);
+        add(1106);
+        add(1107);
+    }};
 
 
     public static final ArrayList<Integer> BarcodeList1 = new ArrayList<Integer>() {{
-        add(1); add(2);add(3);add(4);add(5);
+        add(1);
     }};
 
 
-
     public static final ArrayList<Integer> staNosErrList1 = new ArrayList<Integer>() {{
-
         add(102);
     }};
 
     public static final ArrayList<Integer> staNoWeight1 = new ArrayList<Integer>() {{
-        add(101);add(102);add(103);add(104);add(105);
+        add(101);
+        add(102);
+        add(103);
+        add(104);
+        add(105);
     }};
 
 
-
-    private Integer count=0;
+    private Integer count = 0;
 
     /**
      * 鏉$爜鏁伴噺
@@ -87,9 +90,7 @@
      * 4.鍑哄簱妯″紡
      */
     public IoModeType ioModeOf2F = IoModeType.NONE;
-//    public IoModeType ioMode = IoModeType.NONE;
     public IoModeType ioModeOf4F = IoModeType.NONE;
-//    public IoModeType ioMode = IoModeType.NONE;
 
     public SiemensDevpThread(DevpSlave slave) {
         this.slave = slave;
@@ -127,6 +128,7 @@
                 throw new CoolException("鏈嶅姟鍣ㄥ紓甯�");
         }
     }
+
     private ArrayList<Integer> getBarcodeList() {
         switch (slave.getId()) {
             case 1:
@@ -156,8 +158,8 @@
                         break;
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 2:
-                        write((StaProtocol)task.getData());
-                        log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
+                        write((StaProtocol) task.getData());
+                        log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�" + ((StaProtocol) task.getData()).getWorkNo() + "," + ((StaProtocol) task.getData()).getStaNo());
                         break;
                     default:
                         break;
@@ -171,13 +173,14 @@
 
         }
     }
+
     /**
      * 鍒濆鍖栫珯鐐圭姸鎬�
      */
     private void initSite() {
-        count ++;
+        count++;
         ArrayList<Integer> staNos = getStaNo();
-        if(count > 48) {
+        if (count > 48) {
             // 绔欑偣缂栧彿
             for (Integer siteId : staNos) {
                 StaProtocol staProtocol = station.get(siteId);
@@ -209,32 +212,19 @@
         siemensS7Net.setRack(slave.getRack().byteValue());
         siemensS7Net.setSlot(slave.getSlot().byteValue());
         OperateResult connect = siemensS7Net.ConnectServer();
-        if(connect.IsSuccess){
+        if (connect.IsSuccess) {
             result = true;
-            OutputQueue.DEVP.offer(MessageFormat.format( "銆恵0}銆戣緭閫佺嚎plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
-            News.info("SiemensDevp"+" - 1"+" - 杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            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()));
+            News.info("SiemensDevp" + " - 1" + " - 杈撻�佺嚎plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
         } 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()));
-            News.error("SiemensDevp"+" - 2"+" - 杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            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()));
+            News.error("SiemensDevp" + " - 2" + " - 杈撻�佺嚎plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
         }
 //        siemensS7Net.ConnectClose();
         initSite();
         return result;
     }
 
-    public static int getOffsetFromSiteId(int siteId) {
-        if (siteId < 100 || siteId > 450) {
-            throw new IllegalArgumentException("siteId 瓒呭嚭鏈夋晥鑼冨洿: " + siteId);
-        }
-        return (siteId - 100) * 8;
-    }
-
-    public static int getOffsetFromSiteId2(int siteId) {
-        if (siteId < 100 || siteId > 450) {
-            throw new IllegalArgumentException("siteId 瓒呭嚭鏈夋晥鑼冨洿: " + siteId);
-        }
-        return (siteId - 100) * 6;
-    }
 
     /**
      * 璇诲彇鐘舵�� ====> 鏁村潡plc
@@ -243,26 +233,13 @@
 //        // 鏇存柊鍏ュ嚭搴撴ā寮�
 //        updateIoMode();
 
-//        if (slave.getId()==1) return;
         ArrayList<Integer> staNos = staNos1;
         int staNoSize = staNos1.size();
-        //ArrayList<Integer> staNos = getStaNo();
         ArrayList<Integer> staNosErrList = getStaNoErr();
-        ArrayList<Integer> staNoWeight = getStaNoWeight();
-        //int staNoSize = staNos.size();
         OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
-        OperateResultExOne<byte[]> resultWeight = null;
-        /*if(staNoWeight.size()>4){
-            resultWeight = siemensS7Net.Read("DB102.0", (short)  (8 * 4));
-        }else{
-            resultWeight = siemensS7Net.Read("DB102.0", (short)  (4 * 4));
-        }
-        OperateResultExOne<byte[]> resultWeight2 = siemensS7Net.Read("DB102.0", (short)  (4 * 4));*/
 
-        //if (result.IsSuccess && resultWeight.IsSuccess) {
-            if (result.IsSuccess) {
-            int j = 0;
-            for(int i = 0 ; i<staNoSize;i++){
+        if (result.IsSuccess) {
+            for (int i = 0; i < staNoSize; i++) {
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
@@ -271,22 +248,11 @@
                     station.put(siteId, staProtocol);
                 }
                 boolean[] status = null;
-                int offset = getOffsetFromSiteId(siteId);//鍙栦綑鑾峰緱瀵瑰簲db鍧楁暟鎹�
 
                 staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i * 8));     // 宸ヤ綔鍙�
-                /*if (staNoWeight.contains(siteId)) {
-                    if(staNoWeight.size() == 4){
-                        staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(resultWeight2.Content, j));
-                        j = j + 4;
-                    }else{
-                        staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(resultWeight.Content, j));
-                        j = j + 4;
-
-                    }
-                }*/
                 staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i * 8 + 4));   // 鐩爣绔�
-                status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 1);
 
+                status = siemensS7Net.getByteTransform().TransBool(result.Content, i * 8 + 6, 1);
                 staProtocol.setAutoing(status[0]);  // 鑷姩
                 staProtocol.setLoading(status[1]);  // 鏈夌墿
                 staProtocol.setInEnable(status[2]); // 鍙叆
@@ -302,38 +268,38 @@
             }
         }
 
-            //鏉$爜鎵弿鍣�
-            ArrayList<Integer> barcodeList = getBarcodeList();
-            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.602", (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);
-                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                        barcodeThread.setBarcode(barcode);
-                    }
+        //鏉$爜鎵弿鍣�
+        ArrayList<Integer> barcodeList = getBarcodeList();
+        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.602", (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);
+                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.702", (short) (staNoErrsSize * 7));
-            if (resultErr.IsSuccess) {
-                for (int i = 0; i < staNoErrsSize; i++) {
-                    Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
+        }
+        //澶栧舰妫�娴�
+        ArrayList<Integer> staNoErrs = staNosErrList;
+        int staNoErrsSize = staNoErrs.size();
+        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.702", (short) (staNoErrsSize * 7));
+        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);
-                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 7, 1);
-                    StaProtocol staProtocol = station.get(siteId);
-                    staProtocol.setFrontErr(status[0]);
-                    staProtocol.setBackErr(status[1]);
-                    staProtocol.setHighErr(status[2]);
-                    staProtocol.setLeftErr(status[3]);
-                    staProtocol.setRightErr(status[4]);
-                    staProtocol.setWeightErr(status[5]);
-                    staProtocol.setBarcodeErr(status[6]);
-                }
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 7, 1);
+                StaProtocol staProtocol = station.get(siteId);
+                staProtocol.setFrontErr(status[0]);
+                staProtocol.setBackErr(status[1]);
+                staProtocol.setHighErr(status[2]);
+                staProtocol.setLeftErr(status[3]);
+                staProtocol.setRightErr(status[4]);
+                staProtocol.setWeightErr(status[5]);
+                staProtocol.setBarcodeErr(status[6]);
             }
+        }
 
 //        //plc鏁呴殰
 //        OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB101.1728", (short) (staNoSize*4));
@@ -382,34 +348,34 @@
 //        }
 
 
-            if (result.IsSuccess) {
+        if (result.IsSuccess) {
 
-                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
+            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 = SpringContextUtil.getBean(BasDevpService.class);
-                    //BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
-                    if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
-                        throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
-                    }
-                } catch (Exception e) {
-                    initSite();
-                    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()));
-                    News.error("SiemensDevp" + " - 3" + " - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+            // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+            try {
+                List<BasDevp> basDevps = new ArrayList<>();
+                for (Integer siteId : staNos) {
+                    StaProtocol staProtocol = station.get(siteId);
+                    basDevps.add(staProtocol.toSqlModel());
                 }
-
-            } 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());
+                BasDevpService basDevpService = SpringContextUtil.getBean(BasDevpService.class);
+                //BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+                if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
+                    throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+                }
+            } catch (Exception e) {
+                initSite();
+                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()));
+                News.error("SiemensDevp" + " - 3" + " - 鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [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());
         }
+    }
 
 
     /**
@@ -431,23 +397,22 @@
             write = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
             Thread.sleep(200);
             write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
-            if(write.IsSuccess && write1.IsSuccess){
+            if (write.IsSuccess && write1.IsSuccess) {
                 log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                 break;
-            }
-            else {
+            } else {
                 writeCount++;
                 log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
             }
-        }while (writeCount<5);
+        } while (writeCount < 5);
 
         if (!write.IsSuccess) {
             staProtocol = station.get(staProtocol.getSiteId());
-            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
+            if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) {
                 staProtocol.setPakMk(true);
             }
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
-            News.error("SiemensDevp"+" - 4"+" - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+            News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
         }
 //        else {
 //            //dang 101,201zhan xaifazhiling qingchu tiaoxingsaomaolide shuju shanchu
@@ -471,7 +436,7 @@
         if (this.ioModeOf2F != IoModeType.NONE) {
             if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {
                 OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
-                News.error("SiemensDevp"+" - 6"+" - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+                News.error("SiemensDevp" + " - 6" + " - 鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
             }
         }
     }
@@ -479,7 +444,7 @@
     /**
      * 蹇冭烦
      */
-    private void heartbeat(){
+    private void heartbeat() {
         if (heartBeatVal == 1) {
             heartBeatVal = 2;
         } else {
@@ -487,7 +452,7 @@
         }
         OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal);
         if (!write.IsSuccess) {
-            News.error("SiemensDevp"+" - 7"+" - 杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+            News.error("SiemensDevp" + " - 7" + " - 杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
         }
     }
 
@@ -510,14 +475,14 @@
     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++) {
+        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);
+        System.out.println(index * 2);
+        System.out.println(index * 2 + 200);
     }
 
 //    public static void main(String[] args) throws Exception {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 926aae9..ea24669 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://192.168.0.2:1433;databasename=rqdzasrs
+    url: jdbc:sqlserver://127.0.0.1:1433;databasename=rqdzasrs
     username: sa
     password: sa@123
 #    driver-class-name: com.oscar.Driver
@@ -38,7 +38,7 @@
   enable: false
 
 wms:
-  url: 127.0.0.1:8080/rqdzasrs
+  url: 127.0.0.1:8080/wcs
 
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:
@@ -63,31 +63,19 @@
     # 鍫嗗灈鏈哄叆搴撶珯鐐�
     crnInStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 101
+      staNo: 1105
       row: 2
-      bay: 1
-      lev: 1
-    # 鍫嗗灈鏈哄叆搴撶珯鐐�
-    crnInStn[1]:
-      devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 105
-      row: 3
-      bay: 1
-      lev: 1
+      bay: 11
+      lev: 2
+
     # 鍫嗗灈鏈哄嚭搴撶珯鐐�
     crnOutStn[0]:
       devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 101
+      staNo: 1101
       row: 2
-      bay: 1
-      lev: 1
-    # 鍫嗗灈鏈哄嚭搴撶珯鐐�
-    crnOutStn[1]:
-      devpPlcId: ${wcs-slave.devp[0].id}
-      staNo: 105
-      row: 3
-      bay: 1
-      lev: 1
+      bay: 14
+      lev: 2
+
   # plc
   devp[0]:
     id: 1
@@ -97,9 +85,9 @@
     slot: 0
     # 鍏ュ簱鍙�1
     inSta[0]:
-      staNo: 102
+      staNo: 1106
       barcode: ${wcs-slave.barcode[0].id}
-      backSta: 103
+      backSta: 1105
       led: ${wcs-slave.led[0].id}
 #    # 鍏ュ簱鍙�2
 #    inSta[1]:
@@ -109,10 +97,10 @@
 #      led: ${wcs-slave.led[1].id}
     # 鎷f枡鍏ュ簱鍙�1
     pickSta[0]:
-      staNo: 104
+      staNo: 1106
       barcode: ${wcs-slave.barcode[0].id}
-      led: ${wcs-slave.led[1].id}
-      backSta: 104
+      led: ${wcs-slave.led[0].id}
+      backSta: 1105
 #    # 鎷f枡鍏ュ簱鍙�2
 #    pickSta[1]:
 #      staNo: 225
@@ -121,9 +109,9 @@
 #      backSta: 224
     # 绌烘澘鍏ュ簱鍙�1
     emptyInSta[0]:
-      staNo: 102
+      staNo: 1106
       barcode: ${wcs-slave.barcode[0].id}
-      backSta: 103
+      backSta: 1105
       led: ${wcs-slave.led[0].id}
     # 绌烘澘鍏ュ簱鍙�2
     #emptyInSta[1]:
@@ -133,7 +121,7 @@
       #led: ${wcs-slave.led[1].id}
     # 鍑哄簱鍙�1
     outSta[0]:
-      staNo: 104
+      staNo: 1101
   # 鏉$爜鎵弿浠�1
   barcode[0]:
     id: 1
@@ -145,12 +133,12 @@
     ip: 10.10.10.51
     port: 5005
     devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 102
-  # LED2
-  led[1]:
-    id: 123
-    ip: 10.10.10.52
-    port: 5005
-    devpPlcId: ${wcs-slave.devp[0].id}
-    staArr: 104
+    staArr: 1104
+#  # LED2
+#  led[1]:
+#    id: 123
+#    ip: 10.10.10.52
+#    port: 5005
+#    devpPlcId: ${wcs-slave.devp[0].id}
+#    staArr: 104
 
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 7821af2..17f1767 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -48,6 +48,18 @@
         order by NEWID(),lev1 asc,bay1 asc
     </select>
 
+    <select id="queryFreeLocMast2" resultMap="BaseResultMap">
+        select top 1 *
+        from asr_loc_mast
+        where row1=#{row}
+        and loc_sts='O'
+        and row1 != #{row}
+        <if test="locType1 != null">
+            and loc_type1 = #{locType1}
+        </if>
+        order by NEWID(),lev1 asc,bay1 asc
+    </select>
+
     <select id="queryDemoSourceLoc" resultMap="BaseResultMap">
         select top 1 * from asr_loc_mast where crn_no = #{crnNo}
         and loc_sts='D'
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 787be51..67fbf43 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,5 +1,5 @@
 // var baseUrl = "/rqdzwcs";
-var baseUrl = "/czkhwcs";
+var baseUrl = "/wcs";
 
 // 璧嬪��
 function setVal(el, val) {
diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js
index 9a8f8f9..d8974fd 100644
--- a/src/main/webapp/static/js/console.map.js
+++ b/src/main/webapp/static/js/console.map.js
@@ -1,6 +1,6 @@
 mapInfo ={
     // "mapName": "rqdzwcs",
-    "mapName": "czkhwcs",
+    "mapName": "wcs",
     "rackCount": 8,
     "crnCount": 4,
     "stbCount": 120,
@@ -127,9 +127,11 @@
                     "stns": [
                         // { "type": "stn", "id": "site-100", "text": "100", "top": 80, "left": 94, "width": 40, "height": 23 },
                         //{ "type": "stn", "id": "site-103", "text": "103", "top": 160, "left": 1430, "width": 120, "height": 23 },
-                        {"type": "stn", "id": "site-313", "text": "313", "top": 200, "left": 990, "width": 170, "height": 25},
-                        { "type": "stn", "id": "site-102", "text": "102", "top": 280, "left": 990, "width": 30, "height": 40 },
-                        { "type": "stn", "id": "site-101", "text": "101", "top": 230, "left": 990, "width": 30, "height": 40 },
+                        {"type": "stn", "id": "site-1103", "text": "1103", "top": 180, "left": 1000, "width": 45, "height": 45},
+                        {"type": "stn", "id": "site-1104", "text": "1104", "top": 180, "left": 945, "width": 45, "height": 45},
+                        {"type": "stn", "id": "site-1105", "text": "1105", "top": 180, "left": 890, "width": 45, "height": 45},
+                        { "type": "stn", "id": "site-1102", "text": "1102", "top": 280, "left": 890, "width": 45, "height": 45 },
+                        { "type": "stn", "id": "site-1101", "text": "1101", "top": 230, "left": 890, "width": 45, "height": 45 },
                         // { "type": "stn", "id": "site-110", "text": "110", "top": 130, "left": 1784, "width": 40, "height": 23 },
                         // { "type": "stn", "id": "site-111", "text": "111", "top": 130, "left": 1826, "width": 40, "height": 23 },
                         //
@@ -143,8 +145,8 @@
                         // { "type": "stn", "id": "site-118", "text": "118", "top": 240, "left": 94, "width": 40, "height": 23 },
                         // { "type": "stn", "id": "site-119", "text": "119", "top": 240, "left": 52, "width": 40, "height": 23 },
                         // { "type": "stn", "id": "site-120", "text": "120", "top": 240, "left": 10, "width": 40, "height": 23 },
-                        { "type": "stn", "id": "site-104", "text": "104", "top": 280, "left": 1130, "width": 30, "height": 40 },
-                        { "type": "stn", "id": "site-105", "text": "105", "top": 230, "left": 1130, "width": 30, "height": 40 },
+                        { "type": "stn", "id": "site-1107", "text": "1107", "top": 280, "left": 1000, "width": 45, "height": 45 },
+                        { "type": "stn", "id": "site-1106", "text": "1106", "top": 230, "left": 1000, "width": 45, "height": 45 },
                         // { "type": "stn", "id": "site-123", "text": "123", "top": 210, "left": 1301, "width": 60, "height": 23 },
 
                         // { "type": "stn", "id": "site-124", "text": "124", "top": 160, "left": 1742, "width": 120, "height": 23 },
diff --git a/src/main/webapp/views/crn.html b/src/main/webapp/views/crn.html
index dba0d58..84acbd9 100644
--- a/src/main/webapp/views/crn.html
+++ b/src/main/webapp/views/crn.html
@@ -98,7 +98,8 @@
                         <th>鍫嗗灈鏈�</th>
                         <th>妯″紡</th>
                         <th>鐘舵��</th>
-                        <th>鏈夌墿</th>
+                        <th>宸ヤ綅1鏈夌墿</th>
+                        <th>宸ヤ綅2鏈夌墿</th>
                         <th>鍒�</th>
                         <th>灞�</th>
                         <th>璐у弶瀹氫綅</th>
@@ -122,9 +123,12 @@
                     <th>宸ヤ綔鍙�</th>
                     <th>鐘舵��</th>
                     <th>婧愮珯</th>
-                    <th>鐩爣绔�</th>
-                    <th>婧愬簱浣�</th>
-                    <th>鐩爣搴撲綅</th>
+                    <th>鐩爣绔�1</th>
+                    <th>婧愬簱浣�1</th>
+                    <th>鐩爣搴撲綅1</th>
+                    <th>鐩爣绔�2</th>
+                    <th>婧愬簱浣�2</th>
+                    <th>鐩爣搴撲綅2</th>
                     <!--                    <th>璧拌閫熷害锛坢/min)</th>-->
                     <!--                    <th>鍗囬檷閫熷害锛坢/min)</th>-->
                     <!--                    <th>鍙夌墮閫熷害锛坢/min)</th>-->
@@ -220,7 +224,9 @@
                         <!--                <button class="item" onclick="bacOrigin()">鍥炲師鐐�</button>-->
                         <!--                <button class="item" onclick="reverseOrigin()">鍙嶅師鐐�</button>-->
                         <!--                <button class="item" onclick="coorMove()">鍧愭爣绉昏</button>-->
-                        <button class="item" onclick="taskComplete()">浠诲姟瀹屾垚</button>
+                        <button class="item" onclick="taskComplete(1)">浠诲姟瀹屾垚1</button>
+                        <button class="item" onclick="taskComplete(2)">浠诲姟瀹屾垚2</button>
+
                         <!--                <button class="item" onclick="pause()">鏆傚仠</button>-->
                         <!--                <button class="item" onclick="boot()">鍚姩</button>-->
                         <button class="item" onclick="clearCommand()">娓呴櫎鍛戒护</button>
@@ -320,13 +326,15 @@
                         setVal(tr.children("td").eq(1), table[i-1].statusType);
                         setVal(tr.children("td").eq(2), table[i-1].status);
                         setVal(tr.children("td").eq(3), table[i-1].loading);
-                        setVal(tr.children("td").eq(4), table[i-1].bay);
-                        setVal(tr.children("td").eq(5), table[i-1].lev);
-                        setVal(tr.children("td").eq(6), table[i-1].forkOffset);
-                        setVal(tr.children("td").eq(7), table[i-1].liftPos);
-                        setVal(tr.children("td").eq(8), table[i-1].walkPos);
-                        setVal(tr.children("td").eq(9), table[i-1].warnCode);
-                        setVal(tr.children("td").eq(10), table[i-1].alarm);
+                        setVal(tr.children("td").eq(4), table[i-1].loadTwoing);
+
+                        setVal(tr.children("td").eq(5), table[i-1].bay);
+                        setVal(tr.children("td").eq(6), table[i-1].lev);
+                        setVal(tr.children("td").eq(7), table[i-1].forkOffset);
+                        setVal(tr.children("td").eq(8), table[i-1].liftPos);
+                        setVal(tr.children("td").eq(9), table[i-1].walkPos);
+                        setVal(tr.children("td").eq(10), table[i-1].warnCode);
+                        setVal(tr.children("td").eq(11), table[i-1].alarm);
                     }
                 } else if (res.code === 403){
                     window.location.href = baseUrl+"/login";
@@ -360,6 +368,10 @@
                         setVal(tr.children("td").eq(4), table[i-1].staNo);
                         setVal(tr.children("td").eq(5), table[i-1].sourceLocNo);
                         setVal(tr.children("td").eq(6), table[i-1].locNo);
+
+                        setVal(tr.children("td").eq(7), table[i-1].staNo2);
+                        setVal(tr.children("td").eq(8), table[i-1].sourceLocNo2);
+                        setVal(tr.children("td").eq(9), table[i-1].locNo2);
                         // setVal(tr.children("td").eq(7), table[i-1].xspeed);
                         // setVal(tr.children("td").eq(8), table[i-1].yspeed);
                         // setVal(tr.children("td").eq(9), table[i-1].zspeed);
@@ -452,8 +464,8 @@
     }
 
     // 浠诲姟瀹屾垚
-    function taskComplete() {
-        http.post(baseUrl+"/crn/operator/taskComplete", getReqParam(), function (res) {
+    function taskComplete(c) {
+        http.post(baseUrl+"/crn/operator/taskComplete?c="+c, getReqParam(), function (res) {
             layer.msg(res.msg);
         });
     }

--
Gitblit v1.9.1