From 536ac7042e063ec9b9d370d6cd973d5c0b48e4fc Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 19 十二月 2023 17:15:57 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/TaskLogScheduler.java        |    4 
 src/main/java/com/zy/core/thread/SiemensCrnThread.java      |  136 ++++++++++++++++++++++++++++++++++++++++-----
 src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java         |    2 
 src/main/java/com/zy/asrs/controller/OpenController.java    |    4 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |    7 ++
 src/main/webapp/views/taskWrkLog/taskWrkLog.html            |    2 
 src/main/resources/application-prod.yml                     |    6 +-
 src/main/resources/mapper/TaskWrkMapper.xml                 |    3 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |    8 --
 9 files changed, 140 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index b0d3edb..ba92e46 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -298,11 +298,11 @@
                         ,r.toString()
                         ,true
                 );
-                return r;
+
 
         }
 
-        return null;
+        return R.ok();
     }
 
     //浠诲姟鍙栨秷鎺ュ彛
diff --git a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
index 4341661..1a70e31 100644
--- a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
@@ -32,7 +32,7 @@
 
     TaskWrk selectCrnStaWorking(@Param("crnNo") Integer crnNo, @Param("targetPoint") String targetPoint);
 
-    TaskWrk selectCrnNoWorking(@Param("crnNo") Integer crnNo,@Param("workNo") Integer workNo);
+    TaskWrk selectCrnNoInWorking(@Param("crnNo") Integer crnNo,@Param("workNo") Integer workNo);
 
     List<TaskWrk> selectToBeHistoryData();
 
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 3579cdc..95d3a6d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -729,8 +729,15 @@
             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
             CrnProtocol crnProtocol = crnThread.getCrnProtocol();
             if (crnProtocol == null) { continue; }
+
             //  鐘舵�侊細绛夊緟纭 骞朵笖  浠诲姟瀹屾垚浣� = 1
             if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
+                //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+                TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue());
+                if (Cools.isEmpty(taskWrk)) {
+//                    log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+                    continue;
+                }
 
                 //鑾峰彇鎸囦护ID
                 Integer commandId = crnProtocol.getCommandId();
diff --git a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
index 1620332..627c146 100644
--- a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -72,7 +72,7 @@
                     taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣�
                     //鍒ゆ柇鎵樼洏鏄惁璧板埌鍑哄簱绔�
                     BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", taskWrk.getTargetPoint()));
-                    if (!basDevp.getWrkNo().equals(taskWrk.getWrkNo())){
+                    if (!basDevp.getWrkNo().equals(taskWrk.getWrkNo()) && !basDevp.getOutEnable().equals("Y")){
                         continue;
                     }
                 } else if (taskWrk.getIoType() ==3) {
@@ -93,7 +93,7 @@
                     locMast2.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
                     locMast2.setModiTime(now);
                     locMast2.setModiUser(9999L);
-                    locMastService.updateById(locMast);
+                    locMastService.updateById(locMast2);
                 }
 
                 taskOverToWms.setTaskStatus("done"); //浠诲姟鐘舵��
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index 1ae702e..3bd2c0a 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -154,7 +154,7 @@
 //            deviceErrorService.addDeviceError("crn", slave.getId(), "鍫嗗灈鏈簆lc杩炴帴澶辫触");
             initCrnProtocol();
         }
-        siemensNet.ConnectClose();
+//        siemensNet.ConnectClose();
         return result;
     }
 
@@ -227,7 +227,7 @@
                         taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙�
                         taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷
                         taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜
-                        if (taskWrk.getIoType() ==1 || taskWrk.getIoType() == 3){
+                        if (taskWrk.getIoType() ==1){
                             taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
                             taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
                         }else if (taskWrk.getIoType() ==2){
@@ -242,6 +242,10 @@
                             map1.put(405,"G-1101");
                             taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜
                             taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣�
+                        } else if (taskWrk.getIoType() == 3) {
+                            taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
+                            taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint());
+                            taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
                         }
                         taskOverToWms.setTaskStatus("location_done"); //浠诲姟鐘舵��
                         String response = null;
@@ -316,6 +320,21 @@
             log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
+        //杞崲鍓嶅厠闅嗕竴浠�
+        CrnCommand crnCommand = new CrnCommand();
+        crnCommand.setCrnNo(command.getCrnNo());
+        crnCommand.setAckFinish(command.getAckFinish());
+        crnCommand.setTaskNo(command.getTaskNo());
+        crnCommand.setTaskMode(command.getTaskMode());
+        crnCommand.setSourcePosX(command.getSourcePosX());
+        crnCommand.setSourcePosY(command.getSourcePosY());
+        crnCommand.setSourcePosZ(command.getSourcePosZ());
+        crnCommand.setDestinationPosX(command.getDestinationPosX());
+        crnCommand.setDestinationPosY(command.getDestinationPosY());
+        crnCommand.setDestinationPosZ(command.getDestinationPosZ());
+//        crnCommand.setSourceStaNo(command.getSourceStaNo());
+//        crnCommand.setDestinationStaNo(command.getDestinationStaNo());
+        crnCommand.setCommand(command.getCommand());
         if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) {
             command.setTaskNo((short) 9999);
         }
@@ -347,13 +366,13 @@
                     command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
                     new Date(),    // 涓嬪彂鏃堕棿
                     command.getTaskModeType() == null ? null : command.getTaskModeType().toString(),    // 妯″紡
-                    command.getSourcePosX().intValue(),    // 婧愭帓
-                    command.getSourcePosY().intValue(),    // 婧愬垪
-                    command.getSourcePosZ().intValue(),    // 婧愬眰
+                    command.getSourcePosZ().intValue(),    // 婧愭帓
+                    command.getSourcePosX().intValue(),    // 婧愬垪
+                    command.getSourcePosY().intValue(),    // 婧愬眰
                     null,    // 婧愮珯
-                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
-                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
-                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
+                    command.getDestinationPosZ().intValue(),    // 鐩爣鎺�
+                    command.getDestinationPosX().intValue(),    // 鐩爣鍒�
+                    command.getDestinationPosY().intValue(),    // 鐩爣灞�
                     null,    // 鐩爣绔�
                     null,    // 鍝嶅簲缁撴灉
                     null,    // 淇敼鏃堕棿
@@ -363,14 +382,52 @@
         }
 
         if (result.IsSuccess) {
-            log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
-            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
-            return true;
+//            log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), 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}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
             log.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             return false;
         }
+
+
+        try{
+            //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+            Thread.sleep(500);
+            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
+            if (resultRead.IsSuccess) {
+                CrnCommand one = new CrnCommand();
+                one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
+                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+                //one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+//                one.setSourceStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
+//                one.setDestinationStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
+                if (!crnCommand.getTaskNo().equals(one.getTaskNo()) && !crnCommand.getAckFinish().equals(one.getAckFinish())
+                        && !crnCommand.getSourcePosZ().equals(one.getSourcePosZ()) &&  !crnCommand.getSourcePosX().equals(one.getSourcePosX()) && !crnCommand.getSourcePosY().equals(one.getSourcePosY())
+                        && !crnCommand.getDestinationPosZ().equals(one.getDestinationPosZ()) &&  !crnCommand.getDestinationPosX().equals(one.getDestinationPosX()) && !crnCommand.getDestinationPosY().equals(one.getDestinationPosY())
+                ){
+                    log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                    log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
+                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(5, crnCommand));
+                    Thread.sleep(100);
+                    readStatus();
+                    return false;
+                } else {
+                    log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                    OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+                }
+            }
+        }catch (Exception e){
+            log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+        }
+        return true;
     }
 
     /**
@@ -381,6 +438,21 @@
             log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
+        //杞崲鍓嶅厠闅嗕竴浠�
+        CrnCommand crnCommand = new CrnCommand();
+        crnCommand.setCrnNo(command.getCrnNo());
+        crnCommand.setAckFinish(command.getAckFinish());
+        crnCommand.setTaskNo(command.getTaskNo());
+        crnCommand.setTaskMode(command.getTaskMode());
+        crnCommand.setSourcePosX(command.getSourcePosX());
+        crnCommand.setSourcePosY(command.getSourcePosY());
+        crnCommand.setSourcePosZ(command.getSourcePosZ());
+        crnCommand.setDestinationPosX(command.getDestinationPosX());
+        crnCommand.setDestinationPosY(command.getDestinationPosY());
+        crnCommand.setDestinationPosZ(command.getDestinationPosZ());
+//        crnCommand.setSourceStaNo(command.getSourceStaNo());
+//        crnCommand.setDestinationStaNo(command.getDestinationStaNo());
+        crnCommand.setCommand(command.getCommand());
         if (command.getTaskNo() == 0 && command.getAckFinish() == 0 && command.getAuto() != 1) {
             command.setTaskNo((short) 9999);
         }
@@ -458,11 +530,9 @@
 
 
         if (result.IsSuccess) {
-            log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
-            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+//            log.warn("鍫嗗灈鏈哄懡浠や笅鍙慬id:{},鏃堕棿锛歿}] >>>>> {}", slave.getId(), DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmsssss_F), JSON.toJSON(command));
 
             Date now = new Date();
-
             //鏇存柊鎸囦护鏃ュ織
             commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛");
             commandInfoLogService.insert(commandInfoLog);
@@ -483,7 +553,7 @@
                 taskWrkService.updateById(taskWrk);
             }
 
-            return true;
+
         } else {
             OutputQueue.CRN.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("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
@@ -493,6 +563,42 @@
             commandInfoLogService.insert(commandInfoLog);
             return false;
         }
+        try{
+            //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+            Thread.sleep(500);
+            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 24);
+            if (resultRead.IsSuccess) {
+                CrnCommand one = new CrnCommand();
+                one.setAckFinish(siemensNet.getByteTransform().TransInt16(resultRead.Content, 0));
+                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+                //one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+//                one.setSourceStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 18));
+//                one.setDestinationStaNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 20));
+                if (!crnCommand.getTaskNo().equals(one.getTaskNo()) && !crnCommand.getAckFinish().equals(one.getAckFinish())
+                && !crnCommand.getSourcePosZ().equals(one.getSourcePosZ()) &&  !crnCommand.getSourcePosX().equals(one.getSourcePosX()) && !crnCommand.getSourcePosY().equals(one.getSourcePosY())
+                        && !crnCommand.getDestinationPosZ().equals(one.getDestinationPosZ()) &&  !crnCommand.getDestinationPosX().equals(one.getDestinationPosX()) && !crnCommand.getDestinationPosY().equals(one.getDestinationPosY())
+                ){
+                    log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                    log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(crnCommand));
+                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(5, crnCommand));
+                    Thread.sleep(100);
+                    readStatus();
+                    return false;
+                } else {
+                    log.info("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇绘垚鍔焄id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                    OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
+                }
+            }
+        }catch (Exception e){
+            log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
+        }
+        return true;
     }
 
     private boolean writeAuto(CrnCommand command){
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 41e811e..f1118d8 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -580,14 +580,6 @@
             if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) {
                 staProtocol.setPakMk(true);
             }
-
-            //鏇存柊浠诲姟姝ュ簭
-            TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
-            TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue());
-            if (taskWrk != null) {
-                taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭
-                taskWrkService.updateById(taskWrk);
-            }
         }
 
     }
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 684d8ae..36fabaf 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -1,7 +1,7 @@
 wcs-slave:
-  doubleDeep: false #鍙屾繁
-  doubleLocs: 1,4,5,8,9,12,13,16,17,20,21,24 #鍙屾繁搴撲綅鎺掑彿
-  groupCount: 2 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
+  doubleDeep: true #鍙屾繁
+  doubleLocs: 1,4,7,10,11,14,15,18,19 #鍙屾繁搴撲綅鎺掑彿
+  groupCount: 4 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
   crn[0]: #鍫嗗灈鏈�1
     id: 1
     ip: 172.17.91.2
diff --git a/src/main/resources/mapper/TaskWrkMapper.xml b/src/main/resources/mapper/TaskWrkMapper.xml
index 39e8c53..cc05d5d 100644
--- a/src/main/resources/mapper/TaskWrkMapper.xml
+++ b/src/main/resources/mapper/TaskWrkMapper.xml
@@ -106,9 +106,10 @@
         order by io_pri desc,create_time,wrk_no ASC
     </select>
 
-    <select id="selectCrnNoWorking" resultMap="BaseResultMap">
+    <select id="selectCrnNoInWorking" resultMap="BaseResultMap">
         select top 1 * from dbo.wcs_task_wrk
         where 1=1
+        and io_type != 2
         and (wrk_sts=3 or wrk_sts=12)
         and crn_no=#{crnNo}
         and wrk_no=#{workNo}
diff --git a/src/main/webapp/views/taskWrkLog/taskWrkLog.html b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
index 4075728..f99e294 100644
--- a/src/main/webapp/views/taskWrkLog/taskWrkLog.html
+++ b/src/main/webapp/views/taskWrkLog/taskWrkLog.html
@@ -59,6 +59,8 @@
 						</el-table-column>
 						<el-table-column property="crnNo" label="鍫嗗灈鏈哄彿">
 						</el-table-column>
+						<el-table-column property="barcode" label="鏉$爜">
+						</el-table-column>
 					</el-table>
 
 					<div style="margin-top: 10px;">

--
Gitblit v1.9.1