From 770d716304e32d4da8e74bb70c8907d7e0fd922b Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期二, 24 十二月 2024 16:19:12 +0800
Subject: [PATCH] 完善wcs

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |  506 ++++++++++++++++++++++++-------------------------------
 1 files changed, 220 insertions(+), 286 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index b0cd878..bbf7db0 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -14,6 +14,7 @@
 import com.zy.asrs.entity.param.TaskOverToWms;
 import com.zy.asrs.service.*;
 import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.News;
 import com.zy.core.CrnThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -43,6 +44,11 @@
     private CrnSlave slave;
     private CrnProtocol crnProtocol;
     private boolean resetFlag = false;
+
+    /**
+     * 鍫嗗灈鏈烘槸鍚﹀湪鍥炲師鐐硅繍鍔ㄤ腑鏍囪
+     */
+    private boolean backHpFlag = false;
 
     @Value("${wms.url}")
     private String wmsUrl;
@@ -124,16 +130,26 @@
      * 鍒濆鍖栧爢鍨涙満
      */
     private void initCrnProtocol(){
-        crnProtocol = new CrnProtocol();
-        crnProtocol.setMode((short) 0);
-        crnProtocol.setStatus((short) 0);
-        crnProtocol.setTaskNo((short) 0);
-        crnProtocol.setTaskFinish((short) 0);
-        crnProtocol.setValid((short) 0);
-        crnProtocol.setBay((short) 0);
-        crnProtocol.setLevel((short) 0);
-        crnProtocol.setRow((short) 0);
-        crnProtocol.setLane((short) 0);
+        if (null == crnProtocol) {
+            crnProtocol = new CrnProtocol();
+        }
+        crnProtocol.setMode((short) -1);
+//        crnProtocol.setTaskNo((short)0);
+        crnProtocol.setStatus((short)-1);
+        crnProtocol.setBay((short)0);
+        crnProtocol.setLevel((short)0);
+        crnProtocol.setForkPos((short) -1);
+        crnProtocol.setLiftPos((short) -1);
+        crnProtocol.setWalkPos((short)0);
+        crnProtocol.setLoaded((short)0);
+        crnProtocol.setAlarm((short)0);
+        crnProtocol.setxSpeed((short) 0);
+        crnProtocol.setySpeed((short) 0);
+        crnProtocol.setzSpeed((short) 0);
+        crnProtocol.setxDistance((short) 0);
+        crnProtocol.setyDistance((short) 0);
+        crnProtocol.setxDuration((short) 0);
+        crnProtocol.setyDuration((short) 0);
     }
 
     @Override
@@ -162,153 +178,74 @@
      * 璇诲彇鐘舵��
      */
     private void readStatus(){
+        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
 
-        OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
-        if (result.IsSuccess) {
-            if (null == crnProtocol) {
-                crnProtocol = new CrnProtocol();
-            }
-            crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
-            crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2));
-            crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4));
-            crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6));
-            crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8));
-            crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
-            crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
-            crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
-            crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16));
-            crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-//            crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-//            crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22));
-//            crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24));
-//            crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26));
-            crnProtocol.setXSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 28));
-            crnProtocol.setYSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 32));
-            crnProtocol.setZSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 36));
-            crnProtocol.setXDistance(siemensNet.getByteTransform().TransSingle(result.Content, 40));
-            crnProtocol.setYDistance(siemensNet.getByteTransform().TransSingle(result.Content, 44));
-            crnProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 48));
-            crnProtocol.setYDuration(siemensNet.getByteTransform().TransSingle(result.Content, 52));
+        try {
+            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
+            if (result.IsSuccess) {
+                if (null == crnProtocol) {
+                    crnProtocol = new CrnProtocol();
+                    crnProtocol.setCrnNo(slave.getId());
+                }
+                crnProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0));
+                crnProtocol.setTaskNo(siemensNet.getByteTransform().TransInt16(result.Content, 2));
+                crnProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 4));
+                crnProtocol.setBay(siemensNet.getByteTransform().TransInt16(result.Content, 6));
+                crnProtocol.setLevel(siemensNet.getByteTransform().TransInt16(result.Content, 8));
+                crnProtocol.setForkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
+                crnProtocol.setLiftPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
+                crnProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 14));
+                crnProtocol.setLoaded(siemensNet.getByteTransform().TransInt16(result.Content, 16));
+                crnProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
+                crnProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 20));
+                crnProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 22));
+                crnProtocol.setTemp3(siemensNet.getByteTransform().TransInt16(result.Content, 24));
+                crnProtocol.setTemp4(siemensNet.getByteTransform().TransInt16(result.Content, 26));
+                crnProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28));
+                crnProtocol.setySpeed(siemensNet.getByteTransform().TransInt16(result.Content, 32));
+                crnProtocol.setzSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 36));
+                crnProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40));
+                crnProtocol.setyDistance(siemensNet.getByteTransform().TransInt16(result.Content, 44));
+                crnProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48));
+                crnProtocol.setyDuration(siemensNet.getByteTransform().TransInt16(result.Content, 52));
 
+                OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
-
-            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
-
-            // 澶嶄綅淇″彿
-            if (crnProtocol.getTaskFinish() == 0) {
-                if (resetFlag) {
-                    CrnCommand crnCommand = new CrnCommand();
-                    crnCommand.setAckFinish((short)1);
-                    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= "鏈煡";
+                // 澶嶄綅淇″彿
+                if (crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
+                    if (resetFlag) {
+                        if(crnProtocol.getTaskNo()==9999){
+                            backHpFlag = false;
                         }
-                        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()); //鐩爣搴撲綅
+                        CrnCommand crnCommand = new CrnCommand();
+                        crnCommand.setAckFinish((short)1);
+                        if (write(crnCommand)) {
+                            resetFlag = false;
                         }
-                        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.setWrkSts(4);
-                            }
-                            taskWrk.setStatus(5);
-                            if (!taskWrkService.update(taskWrk,new EntityWrapper<TaskWrk>().eq("wrk_no",crnProtocol.getTaskNo()))){
-                                log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
-                            }
-
-                            log.info("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛鎴愬姛");
-                        }else {
-                            log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛瀹屾垚锛屼絾杩斿洖澶辫触");
-                        }
-
                     }
-
-
-
                 }
+
+                try {
+                    // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
+                    BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
+                    BasCrnp basCrnp = new BasCrnp();
+                    basCrnp.setCrnNo(slave.getId());
+                    basCrnp.setCrnSts((int)crnProtocol.getMode());
+                    if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
+                        News.error(methodName + ":鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
+                    }
+                } catch (Exception ignore){}
+
+            } else {
+                initCrnProtocol();
+                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()));
+                News.error(methodName + ":璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             }
-
-            try {
-                // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
-                BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
-                BasCrnp basCrnp = new BasCrnp();
-                basCrnp.setCrnNo(slave.getId());
-                basCrnp.setCrnSts((int)crnProtocol.getMode());
-                if (!basCrnpService.updateById(crnProtocol.toSqlModel(basCrnp))){
-                    log.error("鍫嗗灈鏈簆lc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
-                }
-            } catch (Exception ignore){}
-
-            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-            deviceErrorService.deleteDeviceError("crn", slave.getId());
-        } 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());
-            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-            deviceErrorService.addDeviceError("crn", slave.getId(), "璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐�");
+        } catch (Exception e) {
+            e.printStackTrace();
+            OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+            News.error(methodName + ":璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initCrnProtocol();
         }
     }
 
@@ -374,7 +311,7 @@
         String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
 
         if (null == command) {
-            log.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
+            News.error("鍫嗗灈鏈哄啓鍏ュ懡浠や负绌�");
             return false;
         }
 //        convertRow(command);
@@ -392,38 +329,35 @@
 //        array[9] = command.getSourceStaNo();
 //        array[10] = command.getDestinationStaNo();
         array[9] = command.getCommand();
-
         OperateResult result = siemensNet.Write("DB100.0", array);
 
-        int i=0;
-        do{
-            //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
-            Thread.sleep(200);
-            OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
-            if (resultRead.IsSuccess) {
-                CrnCommand one = new CrnCommand();
-                one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
-                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));
-                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())
-                ){
-                    i++;
-                    log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}]>>>>閲嶅啓[{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
-                    result = siemensNet.Write("DB100.0", array);
-                }else{
-                    i=5;
-                }
+        //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
+        Thread.sleep(200);
+        OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
+        if (resultRead.IsSuccess) {
+            CrnCommand one = new CrnCommand();
+            one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
+            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));
+            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())
+            ){
+                News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
             }
-        }while(i<5);
+        }
 
+        if (command.getAckFinish() == 0) {
+            short commandFinish = 1;
+            Thread.sleep(100L);
+            result = siemensNet.Write("DB100.18", commandFinish);
+        }
 
         try {
             // 鏃ュ織璁板綍
@@ -451,12 +385,12 @@
         if (result != null && result.IsSuccess) {
             Thread.sleep(200);
             this.readStatus();
-            log.info(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
+            News.info(methodName + ":鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));
             return true;
         } else {
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
-            log.error(methodName + ":鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            News.error(methodName + ":鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             return false;
         }
     }
@@ -464,112 +398,112 @@
     /**
      * 鍐欏叆鏁版嵁
      */
-    private boolean write2(CrnCommand command){
-        if (null == command) {
-            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) 999);
-        }
-
-        command.setCrnNo(slave.getId());
-        short[] array = new short[10];
-        if (Cools.isEmpty(command.getAckFinish())) {
-            array[0] = 5;
-        } else {
-            array[0] = command.getAckFinish();
-        }
-        array[1] = command.getTaskNo();
-        array[2] = command.getTaskMode();
-        array[3] = command.getSourcePosX();
-        array[4] = command.getSourcePosY();
-        array[5] = command.getSourcePosZ();
-        array[6] = command.getDestinationPosX();
-        array[7] = command.getDestinationPosY();
-        array[8] = command.getDestinationPosZ();
-        array[9] = command.getCommand();
-        // 浣滀笟淇℃伅
-        OperateResult result = siemensNet.Write("DB100.0", array);
-        // 鏃ュ織璁板綍
-            if (command.getAckFinish() != 1) {
-                BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
-                BasCrnOpt basCrnOpt = new BasCrnOpt(
-                        command.getTaskNo().intValue(),    // 浠诲姟鍙�
-                        command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
-                        new Date(),    // 涓嬪彂鏃堕棿
-                        command.getTaskModeType() == null ? null : command.getTaskModeType().toString(),    // 妯″紡
-                        command.getSourcePosX().intValue(),    // 婧愭帓
-                        command.getSourcePosY().intValue(),    // 婧愬垪
-                        command.getSourcePosZ().intValue(),    // 婧愬眰
-                        null,    // 婧愮珯
-                        command.getDestinationPosX().intValue(),    // 鐩爣鎺�
-                        command.getDestinationPosY().intValue(),    // 鐩爣鍒�
-                        command.getDestinationPosZ().intValue(),    // 鐩爣灞�
-                        null,    // 鐩爣绔�
-                        null,    // 鍝嶅簲缁撴灉
-                        null,    // 淇敼鏃堕棿
-                        null    // 淇敼浜哄憳
-                );
-                bean.insert(basCrnOpt);
-            }
-//        } catch (Exception ignore) {}
-
-        //鏇存柊鍛戒护鏃ュ織
-        CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class);
-        CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
-        CommandInfo commandInfo = commandInfoService.selectById(command.getCommandId());
-        if (Cools.isEmpty(commandInfo)){
-            commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>()
-                    .eq("wrk_no",crnProtocol.getTaskNo())
-                    .eq("device","Crn"));
-        }
-        CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
-        commandInfoLog.setId(null);
-        if (result.IsSuccess) {
-            Date now = new Date();
-            //鏇存柊鎸囦护鏃ュ織
-            commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛");
-            commandInfoLogService.insert(commandInfoLog);
-
-            //绾跨▼鏆傚瓨鎸囦护ID
-            crnProtocol.setCommandId(command.getCommandId());
-
-            //鏇存柊鎸囦护鐘舵��
-            commandInfo.setCommandStatus(CommandStatusType.EXECUTE.id);//鎵ц涓�
-            commandInfo.setExecuteTime(now);
-            commandInfoService.updateById(commandInfo);
-
-            //鏇存柊浠诲姟姝ュ簭
-            TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
-            TaskWrk taskWrk = taskWrkService.selectByWrkNo(command.getTaskNo().intValue());
-            if (taskWrk != null) {
-                taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭
-                taskWrkService.updateById(taskWrk);
-            }
-
-
-        } 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 true;
-    }
+//    private boolean write2(CrnCommand command){
+//        if (null == command) {
+//            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) 999);
+//        }
+//
+//        command.setCrnNo(slave.getId());
+//        short[] array = new short[10];
+//        if (Cools.isEmpty(command.getAckFinish())) {
+//            array[0] = 5;
+//        } else {
+//            array[0] = command.getAckFinish();
+//        }
+//        array[1] = command.getTaskNo();
+//        array[2] = command.getTaskMode();
+//        array[3] = command.getSourcePosX();
+//        array[4] = command.getSourcePosY();
+//        array[5] = command.getSourcePosZ();
+//        array[6] = command.getDestinationPosX();
+//        array[7] = command.getDestinationPosY();
+//        array[8] = command.getDestinationPosZ();
+//        array[9] = command.getCommand();
+//        // 浣滀笟淇℃伅
+//        OperateResult result = siemensNet.Write("DB100.0", array);
+//        // 鏃ュ織璁板綍
+//            if (command.getAckFinish() != 1) {
+//                BasCrnOptService bean = SpringUtils.getBean(BasCrnOptService.class);
+//                BasCrnOpt basCrnOpt = new BasCrnOpt(
+//                        command.getTaskNo().intValue(),    // 浠诲姟鍙�
+//                        command.getCrnNo(),    // 鍫嗗灈鏈篬闈炵┖]
+//                        new Date(),    // 涓嬪彂鏃堕棿
+//                        command.getTaskModeType() == null ? null : command.getTaskModeType().toString(),    // 妯″紡
+//                        command.getSourcePosX().intValue(),    // 婧愭帓
+//                        command.getSourcePosY().intValue(),    // 婧愬垪
+//                        command.getSourcePosZ().intValue(),    // 婧愬眰
+//                        null,    // 婧愮珯
+//                        command.getDestinationPosX().intValue(),    // 鐩爣鎺�
+//                        command.getDestinationPosY().intValue(),    // 鐩爣鍒�
+//                        command.getDestinationPosZ().intValue(),    // 鐩爣灞�
+//                        null,    // 鐩爣绔�
+//                        null,    // 鍝嶅簲缁撴灉
+//                        null,    // 淇敼鏃堕棿
+//                        null    // 淇敼浜哄憳
+//                );
+//                bean.insert(basCrnOpt);
+//            }
+////        } catch (Exception ignore) {}
+//
+//        //鏇存柊鍛戒护鏃ュ織
+//        CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class);
+//        CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
+//        CommandInfo commandInfo = commandInfoService.selectById(command.getCommandId());
+//        if (Cools.isEmpty(commandInfo)){
+//            commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>()
+//                    .eq("wrk_no",crnProtocol.getTaskNo())
+//                    .eq("device","Crn"));
+//        }
+//        CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class);
+//        commandInfoLog.setId(null);
+//        if (result.IsSuccess) {
+//            Date now = new Date();
+//            //鏇存柊鎸囦护鏃ュ織
+//            commandInfoLog.setDeviceLog("鎸囦护涓嬪彂鎴愬姛");
+//            commandInfoLogService.insert(commandInfoLog);
+//
+//            //绾跨▼鏆傚瓨鎸囦护ID
+//            crnProtocol.setCommandId(command.getCommandId());
+//
+//            //鏇存柊鎸囦护鐘舵��
+//            commandInfo.setCommandStatus(CommandStatusType.EXECUTE.id);//鎵ц涓�
+//            commandInfo.setExecuteTime(now);
+//            commandInfoService.updateById(commandInfo);
+//
+//            //鏇存柊浠诲姟姝ュ簭
+//            TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class);
+//            TaskWrk taskWrk = taskWrkService.selectByWrkNo(command.getTaskNo().intValue());
+//            if (taskWrk != null) {
+//                taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//鏇存柊鎸囦护姝ュ簭
+//                taskWrkService.updateById(taskWrk);
+//            }
+//
+//
+//        } 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 true;
+//    }
 
     private boolean writeAuto(CrnCommand command){
         if (null == command) {

--
Gitblit v1.9.1