From 75b207b2b53a89286dfb1515d47da25c3415fc9b Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 23 五月 2023 15:38:31 +0800
Subject: [PATCH] 指令创建和状态更新

---
 src/main/java/com/zy/asrs/utils/CommandUtils.java           |   88 +++++++++++++++++++++++++++++
 src/main/java/com/zy/core/model/protocol/StaProtocol.java   |    4 +
 src/main/java/com/zy/core/thread/SiemensCrnThread.java      |   15 ++---
 src/main/java/com/zy/core/thread/LedThread.java             |   11 +--
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |    1 
 src/main/java/com/zy/core/cache/MessageQueue.java           |    2 
 src/main/java/com/zy/core/model/command/CrnCommand.java     |    4 +
 src/main/java/com/zy/core/model/command/LedCommand.java     |    4 +
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   15 ++---
 9 files changed, 119 insertions(+), 25 deletions(-)

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 98eb27e..3c74df0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
+import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.domain.enums.WmsWrkStatusType;
 import com.zy.asrs.entity.*;
diff --git a/src/main/java/com/zy/asrs/utils/CommandUtils.java b/src/main/java/com/zy/asrs/utils/CommandUtils.java
new file mode 100644
index 0000000..b483ad2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/utils/CommandUtils.java
@@ -0,0 +1,88 @@
+package com.zy.asrs.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.core.common.SpringUtils;
+import com.zy.asrs.entity.CommandInfo;
+import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.service.CommandInfoService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.Task;
+import com.zy.core.model.command.CrnCommand;
+import com.zy.core.model.command.LedCommand;
+import com.zy.core.model.protocol.StaProtocol;
+
+import java.util.Date;
+import java.util.List;
+
+public class CommandUtils {
+
+    public static void offer(SlaveType type, Integer id, Task task) {
+        CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
+        if (commandInfoService == null) {
+            return;
+        }
+        WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
+        if (wrkMastService == null) {
+            return;
+        }
+
+        CommandInfo commandInfo = null;
+        WrkMast wrkMast = null;
+        int taskNo = 0;
+        switch (type) {
+            case Crn:
+                CrnCommand command = (CrnCommand) task.getData();
+                taskNo = command.getTaskNo();
+                wrkMast = wrkMastService.selectById(taskNo);
+
+                commandInfo = new CommandInfo();
+                commandInfo.setWrkNo(taskNo);
+                commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+                commandInfo.setCommandStatus(1);
+                commandInfo.setStartTime(new Date());
+                commandInfo.setDevice("crn");
+                commandInfo.setCommand(JSON.toJSONString(command));
+                commandInfoService.insert(commandInfo);
+
+                command.setCommandInfo(commandInfo);
+                break;
+            case Devp:
+                StaProtocol staProtocol = (StaProtocol) task.getData();
+                taskNo = staProtocol.getWorkNo();
+                wrkMast = wrkMastService.selectById(taskNo);
+
+                commandInfo = new CommandInfo();
+                commandInfo.setWrkNo(taskNo);
+                commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+                commandInfo.setCommandStatus(1);
+                commandInfo.setStartTime(new Date());
+                commandInfo.setDevice("devp");
+                commandInfo.setCommand(JSON.toJSONString(staProtocol));
+                commandInfoService.insert(commandInfo);
+
+                staProtocol.setCommandInfo(commandInfo);
+                break;
+            case Led:
+                List<LedCommand> data = (List<LedCommand>) task.getData();
+                for (LedCommand ledCommand : data) {
+                    taskNo = ledCommand.getWorkNo();
+                    wrkMast = wrkMastService.selectById(taskNo);
+
+                    commandInfo = new CommandInfo();
+                    commandInfo.setWrkNo(ledCommand.getWorkNo());
+                    commandInfo.setWmsWrkNo(wrkMast.getWmsWrkNo());
+                    commandInfo.setCommandStatus(1);
+                    commandInfo.setStartTime(new Date());
+                    commandInfo.setDevice("led");
+                    commandInfo.setCommand(JSON.toJSONString(ledCommand));
+                    commandInfoService.insert(commandInfo);
+
+                    ledCommand.setCommandInfo(commandInfo);
+                }
+                break;
+        }
+
+    }
+
+}
diff --git a/src/main/java/com/zy/core/cache/MessageQueue.java b/src/main/java/com/zy/core/cache/MessageQueue.java
index 6a751f2..cf6e475 100644
--- a/src/main/java/com/zy/core/cache/MessageQueue.java
+++ b/src/main/java/com/zy/core/cache/MessageQueue.java
@@ -1,5 +1,6 @@
 package com.zy.core.cache;
 
+import com.zy.asrs.utils.CommandUtils;
 import com.zy.core.Slave;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.Task;
@@ -61,6 +62,7 @@
      * 濡傛灉鍙戠幇闃熷垪宸叉弧鏃犳硶娣诲姞鐨勮瘽锛屼細鐩存帴杩斿洖false銆�
      */
     public static boolean offer(SlaveType type, Integer id, Task task) {
+        CommandUtils.offer(type, id, task);
         switch (type) {
             case Crn:
                 return CRN_EXCHANGE.get(id).offer(task);
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
index c777ecb..ea0e950 100644
--- a/src/main/java/com/zy/core/model/command/CrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -1,6 +1,7 @@
 package com.zy.core.model.command;
 
 import com.alibaba.fastjson.annotation.JSONField;
+import com.zy.asrs.entity.CommandInfo;
 import com.zy.core.enums.CrnTaskModeType;
 import lombok.Data;
 
@@ -74,6 +75,9 @@
     // 浠诲姟纭 0锛氭湭纭 1锛氬凡纭
     private Short command = 0;
 
+    //鎸囦护淇℃伅
+    private CommandInfo commandInfo;
+
     public void setTaskMode(Short taskMode){
         this.taskMode = taskMode;
         this.taskModeType = CrnTaskModeType.get(taskModeType);
diff --git a/src/main/java/com/zy/core/model/command/LedCommand.java b/src/main/java/com/zy/core/model/command/LedCommand.java
index 36685e8..b6d5232 100644
--- a/src/main/java/com/zy/core/model/command/LedCommand.java
+++ b/src/main/java/com/zy/core/model/command/LedCommand.java
@@ -1,5 +1,6 @@
 package com.zy.core.model.command;
 
+import com.zy.asrs.entity.CommandInfo;
 import com.zy.common.model.MatDto;
 import lombok.Data;
 
@@ -30,4 +31,7 @@
     private boolean emptyMk = false;
 
     private Integer ioType;
+
+    //鎸囦护淇℃伅
+    private CommandInfo commandInfo;
 }
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index ca3c6db..c160660 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -1,6 +1,7 @@
 package com.zy.core.model.protocol;
 
 import com.zy.asrs.entity.BasDevp;
+import com.zy.asrs.entity.CommandInfo;
 import lombok.Data;
 
 /**
@@ -55,6 +56,9 @@
     // 闅斿绔欑偣锛堝彴杞︿綅缃級
     private String nearbySta;
 
+    //鎸囦护淇℃伅
+    private CommandInfo commandInfo;
+
     public BasDevp toSqlModel(){
         BasDevp basDevp = new BasDevp();
         basDevp.setDevNo(siteId);
diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java
index 9d44531..569df3c 100644
--- a/src/main/java/com/zy/core/thread/LedThread.java
+++ b/src/main/java/com/zy/core/thread/LedThread.java
@@ -117,14 +117,11 @@
             }
             page.newLine("\n");
 
+            //鏇存柊鎸囦护鐘舵��
             CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
-            CommandInfo commandInfo = new CommandInfo();
-            commandInfo.setWrkNo(command.getWorkNo());
-            commandInfo.setCommandStatus(1);
-            commandInfo.setStartTime(new Date());
-            commandInfo.setDevice("led");
-            commandInfo.setCommand(JSON.toJSONString(command));
-            commandInfoService.insert(commandInfo);
+            CommandInfo commandInfo = command.getCommandInfo();
+            commandInfo.setCommandStatus(2);
+            commandInfoService.updateById(commandInfo);
         }
 
         // 璁剧疆瀛椾綋
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ed02e09..70751fa 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -363,15 +363,6 @@
             command.setTaskNo((short) 9999);
         }
 
-        CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
-        CommandInfo commandInfo = new CommandInfo();
-        commandInfo.setWrkNo(command.getTaskNo().intValue());
-        commandInfo.setCommandStatus(1);
-        commandInfo.setStartTime(new Date());
-        commandInfo.setDevice("crn");
-        commandInfo.setCommand(JSON.toJSONString(command));
-        commandInfoService.insert(commandInfo);
-
         command.setCrnNo(slave.getId());
         short[] array = new short[9];
         if (command.getAckFinish() == 0) {
@@ -470,6 +461,12 @@
         } catch (Exception ignore) {}
 
         if (result.IsSuccess && result1.IsSuccess) {
+            //鏇存柊鎸囦护鐘舵��
+            CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
+            CommandInfo commandInfo = command.getCommandInfo();
+            commandInfo.setCommandStatus(2);
+            commandInfoService.updateById(commandInfo);
+
             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;
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 6f43d73..8a48221 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -250,15 +250,6 @@
         array[1] = staProtocol.getStaNo();
 //        OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
 
-        CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
-        CommandInfo commandInfo = new CommandInfo();
-        commandInfo.setWrkNo(staProtocol.getWorkNo().intValue());
-        commandInfo.setCommandStatus(1);
-        commandInfo.setStartTime(new Date());
-        commandInfo.setDevice("devp");
-        commandInfo.setCommand(JSON.toJSONString(staProtocol));
-        commandInfoService.insert(commandInfo);
-
         OperateResult writeResult;
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
@@ -320,6 +311,12 @@
             if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) {
                 staProtocol.setPakMk(true);
             }
+
+            //鏇存柊鎸囦护鐘舵��
+            CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class);
+            CommandInfo commandInfo = staProtocol.getCommandInfo();
+            commandInfo.setCommandStatus(2);
+            commandInfoService.updateById(commandInfo);
         }
 
     }

--
Gitblit v1.9.1