From 489b48ad9fad5ad17106b7e69d778c824df3df9d Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 11 九月 2024 09:14:49 +0800
Subject: [PATCH] 提交合并代码

---
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java               |   72 ++++++
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/TaskingService.java          |   44 +++
 JiuMuMesParent/.idea/encodings.xml                                                                                 |    1 
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCTurn.java                        |   65 +++++
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/TaskingController.java    |   58 ++++
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQR.java                      |   73 ++++++
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/test/java/com/mes/TaskingModuleApplicationTest.java       |   57 ++++
 JiuMuMesParent/.idea/inspectionProfiles/Project_Default.xml                                                        |   21 +
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCRinse.java                       |   65 +++++
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java |  105 ++++++++
 JiuMuMesParent/.idea/compiler.xml                                                                                  |    4 
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java                |   73 ++++++
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java                      |   79 ++++++
 13 files changed, 708 insertions(+), 9 deletions(-)

diff --git a/JiuMuMesParent/.idea/compiler.xml b/JiuMuMesParent/.idea/compiler.xml
index d20a0db..ce226e1 100644
--- a/JiuMuMesParent/.idea/compiler.xml
+++ b/JiuMuMesParent/.idea/compiler.xml
@@ -7,8 +7,9 @@
         <sourceOutputDir name="target/generated-sources/annotations" />
         <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
         <outputRelativeToContentRoot value="true" />
-        <module name="servicebase" />
         <module name="springsecurity" />
+        <module name="servicebase" />
+        <module name="deviceInteraction" />
         <module name="gateway" />
         <module name="cacheGlass" />
       </profile>
@@ -25,6 +26,7 @@
     <option name="ADDITIONAL_OPTIONS_OVERRIDE">
       <module name="cacheGlass" options="-parameters" />
       <module name="cacheVerticalGlass" options="-parameters" />
+      <module name="deviceInteraction" options="-parameters" />
       <module name="gateway" options="-parameters" />
       <module name="glassStorage" options="-parameters" />
       <module name="loadGlass" options="-parameters" />
diff --git a/JiuMuMesParent/.idea/encodings.xml b/JiuMuMesParent/.idea/encodings.xml
index b18a0c7..5c2a03a 100644
--- a/JiuMuMesParent/.idea/encodings.xml
+++ b/JiuMuMesParent/.idea/encodings.xml
@@ -8,6 +8,7 @@
     <file url="file://$PROJECT_DIR$/gateway/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/moduleService/CacheGlassModule/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/moduleService/CacheVerticalGlassModule/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/moduleService/DeviceInteractionModule/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/moduleService/GlassStorageModule/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/moduleService/LoadGlassModule/src/main/java" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/moduleService/TemperingGlassModule/src/main/java" charset="UTF-8" />
diff --git a/JiuMuMesParent/.idea/inspectionProfiles/Project_Default.xml b/JiuMuMesParent/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..31fda01
--- /dev/null
+++ b/JiuMuMesParent/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,21 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="AliAccessStaticViaInstance" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaAbstractClassShouldStartWithAbstractNaming" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaAvoidApacheBeanUtilsCopy" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaAvoidCallStaticSimpleDateFormat" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaAvoidComplexCondition" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaAvoidNewDateGetTime" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaAvoidPatternCompileInMethod" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaAvoidUseTimer" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaClassMustHaveAuthor" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaLockShouldWithTryFinally" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaMethodTooLong" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaPackageNaming" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaSneakyThrowsWithoutExceptionType" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaTestClassShouldEndWithTestNaming" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaTransactionMustHaveRollback" enabled="true" level="WARNING" enabled_by_default="true" />
+    <inspection_tool class="AlibabaUseRightCaseForDateFormat" enabled="true" level="WARNING" enabled_by_default="true" />
+  </profile>
+</component>
\ No newline at end of file
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java
new file mode 100644
index 0000000..bda06d5
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java
@@ -0,0 +1,79 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Tasking;
+import com.mes.md.service.TaskingService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCEdging {
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    @Autowired
+    TaskingService taskingService;
+    @Scheduled(fixedDelay = 500)
+    public void PLCEdging() {
+        //纾ㄨ竟杩涚墖璇锋眰淇″彿
+        String edgingSign = plcParameterObject.getPlcParameter("edgingSign").getValue();
+        if (!Objects.equals(edgingSign, "")){
+            Tasking glass = new Tasking();
+            glass.setWorkState("宸ヤ綔");
+            glass.setCurrentCraft("纾ㄨ竟");
+            glass.setState("绾夸笂");
+            Tasking tasking =taskingService.selectTaskLoad(glass);
+            //鍙戦�侀暱瀹藉帤灏哄
+            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("length").getAddress(), Integer.parseInt(tasking.getLength().toString()));
+            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("width").getAddress(), Integer.parseInt(tasking.getWidth().toString()));
+            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("thickness").getAddress(), Integer.parseInt(tasking.getThickness().toString()));
+
+        }
+        //鎸佺画鑾峰彇閫熷害鍚屾缁欎笅涓�涓満鍣�
+        String edgingSpeed = plcParameterObject.getPlcParameter("edgingSpeed").getValue();
+        if(!Objects.equals(edgingSpeed, "")){
+            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("cleaningSpeed").getAddress(), Integer.parseInt(edgingSpeed));
+        }
+
+    }
+    @Scheduled(fixedDelay = 1000)
+    public void edgingWeb() {
+        //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+        //鑾峰彇鎶ヨ鐘舵��
+        String warning = plcParameterObject.getPlcParameter("warning").getValue();
+        JSONObject jsonObject = new JSONObject();
+        if (!Objects.equals(warning, "0")) {
+            //log.info("鎶ヨ淇℃伅锛�"+warning);
+            jsonObject.append("warning", warning);
+        }
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("scanQrCode");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java
new file mode 100644
index 0000000..cfa5114
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java
@@ -0,0 +1,72 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Tasking;
+import com.mes.md.service.TaskingService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCMechanicalArm {
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    @Autowired
+    TaskingService taskingService;
+    @Scheduled(fixedDelay = 500)
+    public void plcEdging() {
+        //鏈烘鑷傝姹備俊鍙�
+        String request = plcParameterObject.getPlcParameter("request").getValue();
+        if (!Objects.equals(request, "")){
+            //褰撴満姊拌噦璇锋眰淇″彿涓�1鐨勬椂鍊�,//鍒ゆ柇褰撳墠浠诲姟鏄畾鍒惰繕鏄爣鍑�
+            String status = plcParameterObject.getPlcParameter("Status").getValue();
+                boolean tasking = taskingService.insertTasking(status);
+                if(tasking){
+                    S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("overGlass").getAddress(), Integer.parseInt("1"));
+                    //鍙戦�佷笂鐗囧畬姣�
+                }
+        }
+
+
+    }
+    @Scheduled(fixedDelay = 1000)
+    public void mechanicalAmWeb() {
+        //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+        //鑾峰彇鎶ヨ鐘舵��
+        String warning = plcParameterObject.getPlcParameter("warning").getValue();
+        JSONObject jsonObject = new JSONObject();
+        if (!Objects.equals(warning, "0")) {
+            //log.info("鎶ヨ淇℃伅锛�"+warning);
+            jsonObject.append("warning", warning);
+        }
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("mechanicalAmWeb");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCRinse.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCRinse.java
new file mode 100644
index 0000000..4b03923
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCRinse.java
@@ -0,0 +1,65 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Tasking;
+import com.mes.md.service.TaskingService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCRinse {
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    @Autowired
+    TaskingService taskingService;
+    @Scheduled(fixedDelay = 500)
+    public void plcRinse() {
+        //纾ㄨ竟绾块�熷害
+        String edgingSpeed = plcParameterObject.getPlcParameter("edgingSpeed").getValue();
+        if(!Objects.equals(edgingSpeed, "")){
+            //缁欐竻娲楁満鍣ㄥ彂閫佺(杈规満閫熷害
+            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("rinseSpeed").getAddress(), Integer.parseInt(edgingSpeed));
+        }
+
+    }
+    @Scheduled(fixedDelay = 1000)
+    public void edgingWeb() {
+        //鑾峰彇鎶ヨ鐘舵��
+        String warning = plcParameterObject.getPlcParameter("rinseWarning").getValue();
+        JSONObject jsonObject = new JSONObject();
+        if (!Objects.equals(warning, "0")) {
+            //log.info("鎶ヨ淇℃伅锛�"+warning);
+            jsonObject.append("rinseWarning", warning);
+        }
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("rinse");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQR.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQR.java
new file mode 100644
index 0000000..f59d007
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQR.java
@@ -0,0 +1,73 @@
+package com.mes.job;
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.md.entity.Tasking;
+import com.mes.md.service.TaskingService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import com.mes.device.PlcParameterObject;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCScanQR {
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    @Autowired
+    TaskingService taskingService;
+    @Scheduled(fixedDelay = 500)
+    public void pLCScanQR() {
+        //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+        //鎵爜绾跨▼
+        //鐢垫皵鍘绘牴鎹笂涓�涓换鍔′紶閫掍笅鏉ョ殑鐘舵�佽嚜宸卞垽鏂渶涓嶉渶瑕佹壂鐮�,濡傛灉闇�瑕佹壂鐮佺洿鎺ヤ紶杈撴壂鐮乮d
+        String scanId = plcParameterObject.getPlcParameter("scanId").getValue();
+        if(!Objects.equals(scanId, "")){
+           boolean result = taskingService.insertTaskingPro(scanId);
+           if (result){
+               //娣诲姞鎴愬姛鏃跺彂閫佽繃鐗囦俊鍙�
+               S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("scan").getAddress(), Integer.parseInt("1"));
+           }
+            log.info("鎵弿瀹氬埗浜岀淮鐮侊細"+scanId);
+        }else {
+            log.info("鏍囧噯妯″紡鎵弿浜岀淮鐮侊細鏃�");
+        }
+
+    }
+    @Scheduled(fixedDelay = 1000)
+    public void scanQrCode() {
+        //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+        //鑾峰彇鎶ヨ鐘舵��
+        String warning = plcParameterObject.getPlcParameter("warning").getValue();
+        JSONObject jsonObject = new JSONObject();
+        if (!Objects.equals(warning, "0")) {
+            //log.info("鎶ヨ淇℃伅锛�"+warning);
+            jsonObject.append("warning", warning);
+        }
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("scanQrCode");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java
new file mode 100644
index 0000000..85a7953
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java
@@ -0,0 +1,73 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.service.TaskingService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCScanQRVerify {
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    @Autowired
+    TaskingService taskingService;
+    @Scheduled(fixedDelay = 500)
+    public void plcScanQrVerify() {
+        //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+        //鎵爜纭绾跨▼
+        //鐢垫皵鍘绘牴鎹笂涓�涓换鍔′紶閫掍笅鏉ョ殑鐘舵�佽嚜宸卞垽鏂渶涓嶉渶瑕佹壂鐮�,濡傛灉闇�瑕佹壂鐮佺洿鎺ヤ紶杈撴壂鐮乮d
+        String scanId = plcParameterObject.getPlcParameter("scanId").getValue();
+        if(!Objects.equals(scanId, "")){
+           boolean result = taskingService.updateTasking(scanId);
+           if (result){
+               //娣诲姞鎴愬姛鏃跺彂閫佽繃鐗囦俊鍙�
+               S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("scan").getAddress(), Integer.parseInt("1"));
+           }
+            log.info("鎵弿瀹氬埗浜岀淮鐮侊細"+scanId);
+        }else {
+            log.info("鏍囧噯妯″紡鎵弿浜岀淮鐮侊細鏃�");
+        }
+
+    }
+    @Scheduled(fixedDelay = 1000)
+    public void scanQrCode() {
+        //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+        //鑾峰彇鎶ヨ鐘舵��
+        String warning = plcParameterObject.getPlcParameter("warning").getValue();
+        JSONObject jsonObject = new JSONObject();
+        if (!Objects.equals(warning, "0")) {
+            //log.info("鎶ヨ淇℃伅锛�"+warning);
+            jsonObject.append("warning", warning);
+        }
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ScanQrVerify");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCTurn.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCTurn.java
new file mode 100644
index 0000000..79e2810
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCTurn.java
@@ -0,0 +1,65 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Tasking;
+import com.mes.md.service.TaskingService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCTurn {
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    @Autowired
+    TaskingService taskingService;
+    @Scheduled(fixedDelay = 500)
+    public void plcTurn() {
+        //娓呮礂鏈洪�熷害
+        String rinseSpeed = plcParameterObject.getPlcParameter("rinseSpeed").getValue();
+        if(!Objects.equals(rinseSpeed, "")){
+            //缁欑炕鐗囧彴鍙戦�佺(杈规満閫熷害
+            S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("turnSpeed").getAddress(), Integer.parseInt(rinseSpeed));
+        }
+
+    }
+    @Scheduled(fixedDelay = 1000)
+    public void turnWeb() {
+        //鑾峰彇鎶ヨ鐘舵��
+        String warning = plcParameterObject.getPlcParameter("turnWarning").getValue();
+        JSONObject jsonObject = new JSONObject();
+        if (!Objects.equals(warning, "0")) {
+            //log.info("鎶ヨ淇℃伅锛�"+warning);
+            jsonObject.append("turnWarning", warning);
+        }
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("turn");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/TaskingController.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/TaskingController.java
index 329b2ef..9cad4da 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/TaskingController.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/controller/TaskingController.java
@@ -1,9 +1,14 @@
 package com.mes.md.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.mes.md.entity.Tasking;
+import com.mes.md.service.TaskingService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
 
 /**
  * <p>
@@ -13,9 +18,52 @@
  * @author wu
  * @since 2024-08-28
  */
-@RestController
-@RequestMapping("/tasking")
-public class TaskingController {
+    @RestController
+    @RequestMapping("/jiumumes/tasking")
+    public class TaskingController {
+        @Autowired
+        private TaskingService taskingService;
+        @ApiOperation("鍒囨崲妯″紡")
+        @PostMapping("/updateLoadState") //鍒囨崲妯″紡"
+        @ResponseBody
+        public Result<Boolean> updateStatus(@RequestBody Integer state) {
+            if(state == 1){
+                boolean result =taskingService.updateStatus(state);
+                return Result.build(1,"瀹氬埗妯″紡",result);
+            }else {
+                boolean result =taskingService.updateStatus(state);
+                return Result.build(0,"鏍囧噯妯″紡",result);
+            }
+        }
+        @ApiOperation("鐐瑰嚮鏆傚仠璁惧")
+        @PostMapping("/updateLoadStatus") //鐐瑰嚮鏆傚仠璁惧
+        @ResponseBody
+        public Result<Boolean> updateLoadStatus(@RequestBody Integer state) {
+            if(state == 1){
+                boolean result =taskingService.updateLoadState(state);
+                return Result.build(1,"鎴愬姛",result);
+            }else {
+                boolean result =taskingService.updateLoadState(state);
+                return Result.build(0,"鎴愬姛",result);
+            }
+        }
+        @ApiOperation("鐐瑰嚮鐮存崯")
+        @PostMapping("/updateDamage") //鏆傚仠涓婄墖浠诲姟
+        @ResponseBody
+        public Result<Tasking> updateDamage(@RequestBody Tasking tasking) {
 
+            boolean result =taskingService.updateDamage(tasking);
+            return Result.build(1,"瀹氬埗妯″紡",null);
+
+
+        }
+        @ApiOperation("鏌ヨ褰撳墠妯″紡杩囧幓鐨勭幓鐠�")
+        @PostMapping("/selectTasking") //鏆傚仠涓婄墖浠诲姟
+        @ResponseBody
+        public Result<List<Tasking>> selectTasking() {
+
+            List<Tasking> tasking =taskingService.selectTasking();
+            return Result.build(1,"瀹氬埗妯″紡",tasking);
+        }
 }
 
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/TaskingService.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/TaskingService.java
index de729da..17381da 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/TaskingService.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/TaskingService.java
@@ -2,7 +2,8 @@
 
 import com.github.yulichang.base.MPJBaseService;
 import com.mes.md.entity.Tasking;
-import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,5 +14,44 @@
  * @since 2024-08-28
  */
 public interface TaskingService extends MPJBaseService<Tasking> {
-
+    /**
+     * 鏇存敼涓婄墖妯″紡
+     * @return boolean
+     */
+    boolean updateStatus(Integer state);
+    /**
+     *鏇存敼鑱旀満鐘舵��
+     * @return boolean
+     */
+    boolean updateLoadState(Integer state);
+    /**
+     * 鐐瑰嚮鐮存崯
+     * @return boolean
+     */
+    boolean updateDamage(Tasking tasking);
+    /**
+     * 鏌ヨ褰撳墠妯″紡杩囧幓鐨勭幓鐠�
+     * @return List<Tasking>
+     */
+    List<Tasking> selectTasking();
+    /**
+     * 瀹氬埗妯″紡涓嬪皢鎵爜鍑烘潵id鑾峰彇鎴愮幓鐠冩暟鎹祴鍊肩粰褰撳墠鏈�鏂扮殑glassId
+     * @return List<Tasking>
+     */
+    Boolean insertTaskingPro(String scanId);
+    /**
+     * 鏍规嵁涓嶅悓宸ヨ壓鏌ヨ鍗冲皢涓婄墖鐨勬暟鎹�
+     * @return List<Tasking>
+     */
+    Tasking selectTaskLoad(Tasking tasking);
+    /**
+     * 鏍规嵁鏍囧噯妯″紡鐨勪换鍔¢『搴忚幏鍙栫幓鐠冩暟鎹�
+     * @return List<Tasking>
+     */
+    Boolean insertTasking(String status);
+    /**
+     * 琛ュ叏浠诲姟鏁版嵁
+     * @return List<Tasking>
+     */
+    boolean updateTasking(String scanId);
 }
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java
index 37a8b4f..1df3131 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/TaskingServiceImpl.java
@@ -1,11 +1,20 @@
 package com.mes.md.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.GlassInfo;
 import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.GlassInfoMapper;
 import com.mes.md.mapper.TaskingMapper;
 import com.mes.md.service.TaskingService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * <p>
@@ -17,5 +26,99 @@
  */
 @Service
 public class TaskingServiceImpl extends MPJBaseServiceImpl<TaskingMapper, Tasking> implements TaskingService {
+    @Resource
+    GlassInfoMapper glassInfoMapper;
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    @Override
+    public boolean updateStatus(Integer state) {
+        //鏇存敼涓婄墖妯″紡
+        //鍚戣澶囧彂閫侀�夋嫨鐨勭姸鎬�
+        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("Status").getAddress(), state);
+        //鍙戦�佸悗閲嶆柊璇诲彇鍒ゆ柇鏄惁鏇存敼鎴愬姛
+        String loadStatus = plcParameterObject.getPlcParameter("Status").getValue();
+        return state == Integer.parseInt(loadStatus);
 
+    }
+
+    @Override
+    public boolean updateLoadState(Integer state) {
+        //鏇存敼鑱旀満鐘舵��
+        //鍚戣澶囧彂閫侀�夋嫨鐨勭姸鎬�
+        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("loadState").getAddress(), state);
+        //鍙戦�佸悗閲嶆柊璇诲彇鍒ゆ柇鏄惁鏇存敼鎴愬姛
+        String loadState = plcParameterObject.getPlcParameter("loadState").getValue();
+        return state == Integer.parseInt(loadState);
+
+    }
+
+    @Override
+    public boolean updateDamage(Tasking tasking) {
+        UpdateWrapper<Tasking> queryWrapper = new UpdateWrapper<>();
+        queryWrapper.eq("glass_id",tasking.getGlassId())
+                .set("work_state",tasking.getWorkState());
+        return this.update(queryWrapper);
+    }
+
+    @Override
+    public List<Tasking> selectTasking() {
+        QueryWrapper<Tasking> queryWrapper = new QueryWrapper<>();
+        queryWrapper.orderByDesc("task_sequence");
+        return list(queryWrapper);
+    }
+
+    @Override
+    public Boolean insertTasking(String status) {
+        Tasking tasking = new Tasking();
+        if(Objects.equals(status, "1")){
+        QueryWrapper <GlassInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("task_type","鏍囧噯")
+                    .eq("work_state","宸ヤ綔")
+                    .orderByAsc("task_sequence");
+        GlassInfo glassInfo =glassInfoMapper.selectOne(queryWrapper);
+        if(glassInfo!=null){
+            tasking.setBatchNumber(glassInfo.getBatchNumber());
+            tasking.setScanId(glassInfo.getScanId());
+            tasking.setProgramId(glassInfo.getProgramId());
+            tasking.setTaskType(glassInfo.getTaskType());
+            tasking.setTaskSequence(glassInfo.getTaskSequence());
+            tasking.setTaskQuantity(glassInfo.getTaskQuantity());
+            tasking.setLength(glassInfo.getLength());
+            tasking.setWidth(glassInfo.getWidth());
+            tasking.setThickness(glassInfo.getThickness());
+            tasking.setDrawingGlue(glassInfo.getDrawingGlue());
+            tasking.setDrawingMarking(glassInfo.getDrawingMarking());
+            tasking.setSilkScreenX(glassInfo.getSilkScreenX());
+            tasking.setSilkScreenY(glassInfo.getSilkScreenY());
+            tasking.setIsMarking(glassInfo.getIsMarking());
+            tasking.setIsSilkScreen(glassInfo.getIsSilkScreen());
+            tasking.setCurrentCraft("涓婄墖");
+
+        }
+        }
+        else {
+            tasking.setTaskType("瀹氬埗");
+            tasking.setCurrentCraft("涓婄墖");
+        }
+        return save(tasking);
+    }
+
+    @Override
+    public boolean updateTasking(String scanId) {
+        return false;
+    }
+
+    @Override
+    public Tasking selectTaskLoad(Tasking tasking) {
+        QueryWrapper<Tasking> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("current_craft",tasking.getGlassId())
+                .eq("state",tasking.getState())
+                .eq("work_state",tasking.getWorkState())
+                .orderByAsc("glass_id");
+        return getOne(queryWrapper);
+    }
+
+    @Override
+    public Boolean insertTaskingPro(String tasking) {
+        return null;
+    }
 }
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/test/java/com/mes/TaskingModuleApplicationTest.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/test/java/com/mes/TaskingModuleApplicationTest.java
new file mode 100644
index 0000000..01e51eb
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/test/java/com/mes/TaskingModuleApplicationTest.java
@@ -0,0 +1,57 @@
+package com.mes;
+
+import com.mes.md.entity.Tasking;
+import com.mes.md.service.TaskingService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = DeviceInteractionModuleApplication.class)
+public class TaskingModuleApplicationTest {
+
+//    @Resource
+//    private OptimizeProjectMapper optimizeProjectMapper;
+    @Autowired
+    private TaskingService taskingService;
+
+    @Test
+    public void test() {
+//        List<OptimizeProject> list = optimizeProjectMapper.saveProject("P24032204");
+//        log.info("list:{}", list);
+
+    }
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+
+    @Test
+    public void testFindPa() {
+        Tasking task=new Tasking();
+        task.setGlassId(1L);
+        task.setWorkState("鐮存崯");
+        boolean tasking= taskingService.updateDamage(task);
+        log.info("鏇存敼鏆傚仠寮�濮嬶細{}", Arrays.asList(tasking));
+    }
+    @Test
+    public void testFindPa2() {
+        List<Tasking> tasking= taskingService.selectTasking();
+        log.info("鏌ヨ褰撳墠杩囧幓鐨勪换鍔★細{}", Arrays.asList(tasking));
+
+    }
+
+
+
+}

--
Gitblit v1.8.0