From a30c391e7d84ebfad7bda46d5fd86be54a0591d2 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期五, 15 三月 2024 10:37:40 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/TaskLogScheduler.java           |   90 +++++++++++++++
 src/main/java/com/zy/core/thread/SiemensCrnThread.java         |  190 +++++++++++--------------------
 src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java            |    1 
 src/main/java/com/zy/asrs/entity/TaskWrk.java                  |    2 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   19 +++
 src/main/java/com/zy/asrs/service/TaskWrkService.java          |    1 
 src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java |    5 
 src/main/resources/mapper/TaskWrkMapper.xml                    |   13 +
 8 files changed, 193 insertions(+), 128 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/TaskWrk.java b/src/main/java/com/zy/asrs/entity/TaskWrk.java
index b384567..0a7f68d 100644
--- a/src/main/java/com/zy/asrs/entity/TaskWrk.java
+++ b/src/main/java/com/zy/asrs/entity/TaskWrk.java
@@ -238,7 +238,7 @@
             case 2:
                 return "娲惧彂";
             case 3:
-                return "姝ュ簭瀹屾垚";
+                return "璁惧瀹屾垚";
             case 4:
                 return "鍙栨秷";
             case 5:
diff --git a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
index 1a70e31..288736d 100644
--- a/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/TaskWrkMapper.java
@@ -40,4 +40,5 @@
 
     List<TaskWrk> selectWorkingTask();//鑾峰彇宸ヤ綔涓殑浠诲姟
 
+    List<TaskWrk> selectbyWrksts4();
 }
diff --git a/src/main/java/com/zy/asrs/service/TaskWrkService.java b/src/main/java/com/zy/asrs/service/TaskWrkService.java
index e62ee0b..5b39b2d 100644
--- a/src/main/java/com/zy/asrs/service/TaskWrkService.java
+++ b/src/main/java/com/zy/asrs/service/TaskWrkService.java
@@ -30,4 +30,5 @@
 
     int saveToHistory(String taskNo);//灏嗕换鍔¤浆鍘嗗彶鏃ュ織
 
+    List<TaskWrk> selectbyWrksts4();
 }
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 8017176..50b7e6c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -323,9 +323,18 @@
                                     log.error("杈撻�佺嚎鍛戒护涓嬫柟澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo());
                                     continue;//鍛戒护涓嬪彂澶辫触
                                 }
-
                                 // 澶嶄綅鍫嗗灈鏈�
                                 crnThread.setResetFlag(true);
+
+                                if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){
+                                    taskWrk.setWrkSts(4);
+                                } else if (taskWrk.getIoType() == 2) {
+                                    taskWrk.setWrkSts(14);
+                                }
+                                if (!taskWrkService.updateById(taskWrk)){
+                                    log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
+                                }
+
 
                             }
                         }
@@ -793,6 +802,14 @@
                 if (commandInfoService.updateById(commandInfo)) {//淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
                     // 鍫嗗灈鏈哄浣�
                     crnThread.setResetFlag(true);
+                    if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){
+                        taskWrk.setWrkSts(4);
+                    } else if (taskWrk.getIoType() == 2) {
+                        taskWrk.setWrkSts(14);
+                    }
+                    if (!taskWrkService.updateById(taskWrk)){
+                        log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
+                    }
                 }
             }
         }
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
index 6a4c4f3..222d46a 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskWrkServiceImpl.java
@@ -204,4 +204,9 @@
     public int saveToHistory(String taskNo) {
         return this.baseMapper.saveToHistory(taskNo);
     }
+
+    @Override
+    public List<TaskWrk> selectbyWrksts4() {
+        return this.baseMapper.selectbyWrksts4();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
index 6a33663..29f7382 100644
--- a/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
+++ b/src/main/java/com/zy/asrs/task/TaskLogScheduler.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.SpringUtils;
 import com.zy.asrs.domain.enums.TaskStatusType;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.TaskOverToWms;
@@ -142,5 +143,94 @@
             }
         }
     }
+    @Scheduled(cron = "0/3 * * * * ? ")
+    public void task4to5(){
+        List<TaskWrk> taskWrks = taskWrkService.selectbyWrksts4();
+        for (TaskWrk taskWrk: taskWrks){
+            String tasktype = null;
+            switch (taskWrk.getIoType()){
+                case 1:
+                    tasktype= "RK";
+                    break;
+                case 2:
+                    tasktype= "CK";
+                    break;
+                case 3:
+                    tasktype= "YK";
+                    break;
+                default:
+                    tasktype= "鏈煡";
+            }
+            Map<String, Object> map = new HashMap<>();
+            map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
+            TaskOverToWms taskOverToWms = new TaskOverToWms();
+            taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮
+            taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑
+            taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙�
+            taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷
+            taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜
+            if (taskWrk.getIoType() ==1){
+                taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
+                taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
+            }else if (taskWrk.getIoType() ==2){
+                Map<Integer,String> map1 = new HashMap<>();
+                map1.put(102,"J-1101");
+                map1.put(106,"J-1103");
+                map1.put(110,"J-1105");
+                map1.put(114,"J-1107");
+                map1.put(118,"J-1109");
+                map1.put(122,"J-1111");
+                map1.put(305,"H-1101");
+                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;
+            try {
+                response = new HttpHandler.Builder()
+                        .setHeaders(map)
+                        .setUri("10.32.53.195:8080")
+                        .setPath("wcsManager/wcsInterface/taskStatusFeedback")
+                        .setJson(JSON.toJSONString(taskOverToWms))
+                        .build()
+                        .doPost();
+            }catch (Exception e){
+                log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
+            }
+            ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
+            apiLogService.save("Wms浠诲姟瀹屾垚鎺ュ彛"
+                    ,"10.32.53.195:8080"+"/wcsManager/wcsInterface/taskStatusFeedback"
+                    ,null
+                    ,"127.0.0.1"
+                    ,JSON.toJSONString(taskOverToWms)
+                    ,response
+                    ,true
+            );
+
+            JSONObject jsonObject = JSON.parseObject(response);
+            if (jsonObject.getInteger("code").equals(200)){
+                if (taskWrk.getIoType() == 3 || taskWrk.getIoType() == 1){
+                    taskWrk.setWrkSts(5);
+                }else {
+                    taskWrk.setWrkSts(15);
+                }
+                if (!taskWrkService.updateById(taskWrk)){
+                    log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
+                }
+
+                log.info("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛鎴愬姛");
+            }else {
+                log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛瀹屾垚锛屼絾杩斿洖澶辫触");
+            }
+
+        }
+    }
+
+
 
 }
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index f031338..f04abea 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -202,89 +202,6 @@
                     if (write(crnCommand)) {
                         resetFlag = false;
 
-                        //鍫嗗灈鏈轰换鍔″畬鎴愬悗璁块棶wms璇锋眰浠诲姟瀹屾垚 locationDone 璐т綅澶勭悊瀹屾垚
-                        TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
-                        TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no",crnProtocol.getTaskNo()));
-                        String tasktype = null;
-                        switch (taskWrk.getIoType()){
-                            case 1:
-                                tasktype= "RK";
-                                break;
-                            case 2:
-                                tasktype= "CK";
-                                break;
-                            case 3:
-                                tasktype= "YK";
-                                break;
-                            default:
-                                tasktype= "鏈煡";
-                        }
-                        Map<String, Object> map = new HashMap<>();
-                        map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
-                        TaskOverToWms taskOverToWms = new TaskOverToWms();
-                        taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮
-                        taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑
-                        taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙�
-                        taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷
-                        taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜
-                        if (taskWrk.getIoType() ==1){
-                            taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜
-                            taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅
-                        }else if (taskWrk.getIoType() ==2){
-                            Map<Integer,String> map1 = new HashMap<>();
-                            map1.put(102,"J-1101");
-                            map1.put(106,"J-1103");
-                            map1.put(110,"J-1105");
-                            map1.put(114,"J-1107");
-                            map1.put(118,"J-1109");
-                            map1.put(122,"J-1111");
-                            map1.put(305,"H-1101");
-                            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;
-                        try {
-                            response = new HttpHandler.Builder()
-                                    .setHeaders(map)
-                                    .setUri("10.32.53.195:8080")
-                                    .setPath("wcsManager/wcsInterface/taskStatusFeedback")
-                                    .setJson(JSON.toJSONString(taskOverToWms))
-                                    .build()
-                                    .doPost();
-                        }catch (Exception e){
-                            log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
-                        }
-                        ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class);
-                        apiLogService.save("Wms浠诲姟瀹屾垚鎺ュ彛"
-                                ,"10.32.53.195:8080"+"/wcsManager/wcsInterface/taskStatusFeedback"
-                                ,null
-                                ,"127.0.0.1"
-                                ,JSON.toJSONString(taskOverToWms)
-                                ,response
-                                ,true
-                        );
-                        JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)){
-                            if (taskWrk.getIoType() == 3 || taskWrk.getIoType() == 1){
-                                taskWrk.setWrkSts(4);
-                            }else {
-                                taskWrk.setWrkSts(14);
-                            }
-                            if (!taskWrkService.updateById(taskWrk)){
-                                log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
-                            }
-
-                            log.info("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛鎴愬姛");
-                        }else {
-                            log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛瀹屾垚锛屼絾杩斿洖澶辫触");
-                        }
-
                     }
 
 
@@ -434,7 +351,7 @@
     /**
      * 鍐欏叆鏁版嵁
      */
-    private boolean write2(CrnCommand command){
+    private boolean write2(CrnCommand command) throws InterruptedException {
         if (null == command) {
             log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
@@ -473,11 +390,10 @@
         array[6] = command.getDestinationPosZ();
         array[7] = command.getDestinationPosX();
         array[8] = command.getDestinationPosY();
-        array[9] = command.getCommand();
+//        array[9] = command.getCommand();
         // 浣滀笟淇℃伅
         OperateResult result = siemensNet.Write("DB100.0", array);
-        // 鏃ュ織璁板綍
-//        try {
+
             if (command.getAckFinish() != 1) {
                 BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
                 BasCrnOpt basCrnOpt = new BasCrnOpt(
@@ -499,7 +415,7 @@
                 );
                 bean.insert(basCrnOpt);
             }
-//        } catch (Exception ignore) {}
+
 
         //鏇存柊鍛戒护鏃ュ織
         CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class);
@@ -512,22 +428,7 @@
         }
         CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
         commandInfoLog.setId(null);
-//        CommandInfoLog commandInfoLog = new CommandInfoLog();
-//        if (commandInfo != null) {
-//            commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
-//            commandInfoLog.setId(null);
-//        }else {
-//            Date now = new Date();
-//            commandInfoLog.setCommand(JSON.toJSONString(command));
-//            commandInfoLog.setCommandStatus(3);
-//            commandInfoLog.setStartTime(now);
-//            commandInfoLog.setExecuteTime(now);
-//            commandInfoLog.setCompleteTime(now);
-//            commandInfoLog.setDevice(SlaveType.Devp.toString());
-//            commandInfoLog.setWrkNo(9999);
-//            commandInfoLog.setTaskNo("9999");
-//            commandInfoLog.setCommandDesc("鎵嬪姩鍛戒护");
-//        }
+
 
 
         if (result.IsSuccess) {
@@ -564,41 +465,84 @@
             commandInfoLogService.insert(commandInfoLog);
             return false;
         }
+        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+        Thread.sleep(200);
         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())
+                one.setTaskMode(siemensNet.getByteTransform().TransInt16(resultRead.Content, 4));
+                one.setSourcePosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 6));
+                one.setSourcePosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 8));
+                one.setSourcePosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 10));
+                one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
+                one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
+                one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+//                one.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 22));
+                if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
+                        || !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())
+
                 ){
-                    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));
+                    try{
+                        log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
+                    }catch (Exception e){
+                        try{
+                            log.error("鏃ュ織鎵撳嵃澶辫触锛�===>>鍙傛暟one鎶ラ敊 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead));
+                        }catch (Exception e1){
+                            log.error("鏃ュ織鎵撳嵃澶辫触锛�===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                        }
+                    }
+                    log.error("鍫嗗灈鏈哄懡浠ゅ洖璇诲け璐ュ悗锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
+                    MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
                     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("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲嚭閿�");
         }
+
+
+        if (command.getAckFinish() == 0) {
+            if (result.IsSuccess) {
+                Thread.sleep(300);
+                //浠诲姟涓嬪彂娆℃暟
+                int writeCount2 = 0;
+
+                do {
+                    writeCount2++;
+                    short commandFinish = (short) 1;
+                    result = siemensNet.Write("DB100.18", commandFinish);
+                    if(result.IsSuccess){
+                        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+                        Thread.sleep(200);
+                        OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.18", (short) 2);
+                        if (resultRead.IsSuccess) {
+                            commandFinish=siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+                            if (commandFinish != 1){
+                                log.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆鏁版嵁涓庡洖璇绘暟鎹笉涓�鑷达紒"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+                            }else{
+                                //浠诲姟鍛戒护鍐欏叆鎴愬姛
+                                log.info("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶鎴愬姛锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+                                break;
+                            }
+                        }else {
+                            log.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍥炶澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+                        }
+                    } else {
+                        log.error("鍫嗗灈鏈轰换鍔$‘璁や綅"+commandFinish+"鍐欏叆澶辫触锛�"+"寰幆鎵ц娆℃暟:"+writeCount2+"娆�");
+                    }
+                }while (writeCount2<5);
+            }
+        }
+
+
         return true;
     }
 
diff --git a/src/main/resources/mapper/TaskWrkMapper.xml b/src/main/resources/mapper/TaskWrkMapper.xml
index 7644a05..c8304a1 100644
--- a/src/main/resources/mapper/TaskWrkMapper.xml
+++ b/src/main/resources/mapper/TaskWrkMapper.xml
@@ -119,7 +119,7 @@
     <select id="selectToBeHistoryData" resultMap="BaseResultMap">
         select * from dbo.wcs_task_wrk
         where 1=1
-        and ((wrk_sts=14 and status=5) or status=4 or (wrk_sts=4 and status=5))
+        and ((wrk_sts=15 and status=5) or status=4 or (wrk_sts=5 and status=5))
         order by io_pri desc,create_time,wrk_no ASC
     </select>
 
@@ -129,9 +129,16 @@
 
     <select id="selectWorkingTask" resultMap="BaseResultMap">
         select * from dbo.wcs_task_wrk
+        where (wrk_sts=5 and io_type = 1)
+        or (wrk_sts=15 and io_type = 2)
+        or (wrk_sts = 5 and io_type = 3)
+        order by io_pri desc,create_time,wrk_no ASC
+    </select>
+    <select id="selectbyWrksts4" resultMap="BaseResultMap">
+        select * from dbo.wcs_task_wrk
         where (wrk_sts=4 and io_type = 1)
-        or (wrk_sts=14 and io_type = 2)
-        or (wrk_sts = 4 and io_type = 3)
+           or (wrk_sts=14 and io_type = 2)
+           or (wrk_sts = 4 and io_type = 3)
         order by io_pri desc,create_time,wrk_no ASC
     </select>
 

--
Gitblit v1.9.1