From d1ee3f0300368709a246c37bf5e525f69eb1dbf7 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期二, 03 十二月 2024 09:21:28 +0800
Subject: [PATCH] job漏提交文件
---
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java | 88 ++++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java | 80 +++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQrCodesReport.java | 78 +++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java | 182 ++++++++
JiuMuMesParent/JsonFile/PlcCacheGlass.json | 64 +++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRWorks.java | 79 +++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java | 77 +++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MarkingTask.java | 184 ++++++++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCManualReporting.java | 59 ++
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java | 336 ++++++++++++++++
10 files changed, 1,227 insertions(+), 0 deletions(-)
diff --git a/JiuMuMesParent/JsonFile/PlcCacheGlass.json b/JiuMuMesParent/JsonFile/PlcCacheGlass.json
new file mode 100644
index 0000000..01969b7
--- /dev/null
+++ b/JiuMuMesParent/JsonFile/PlcCacheGlass.json
@@ -0,0 +1,64 @@
+{
+ "plcAddressBegin":"DB11.0",
+ "plcAddressLenght":"80",
+ "dataType":"word",
+ "parameteInfor":[
+ {
+ "codeId": "A06_request_word",
+ "addressIndex":"0",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A05_scanning_ID",
+ "addressIndex":"2",
+ "addressLenght":"30",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "Current_slot",
+ "addressIndex":"36",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "MES_confirmation_word",
+ "addressIndex":"38",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "A08_glass_status",
+ "addressIndex":"68",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "A10_glass_status",
+ "addressIndex":"70",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ },
+ {
+ "codeId": "A09_prohibit_film_production",
+ "addressIndex":"72",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ }
+ ,
+ {
+ "codeId": "A10_prohibit_film_production",
+ "addressIndex":"74",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":""
+ }
+ ]
+}
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MarkingTask.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MarkingTask.java
new file mode 100644
index 0000000..8dcb6cc
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MarkingTask.java
@@ -0,0 +1,184 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.github.s7connector.api.DaveArea;
+import com.github.s7connector.api.S7Connector;
+import com.github.s7connector.api.factory.S7ConnectorFactory;
+import com.github.s7connector.impl.serializer.converter.StringConverter;
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.common.S7object;
+import com.mes.common.S7objectFlipSlice;
+import com.mes.common.S7objectMachine;
+import com.mes.common.S7objectMarking;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.GlassInfoMapper;
+import com.mes.md.mapper.MachineMapper;
+import com.mes.md.mapper.TaskingMapper;
+import com.mes.md.service.TaskingService;
+import com.mes.service.ModbusTcp;
+import com.mes.service.PlcAgreement;
+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 sun.nio.cs.ext.GBK;
+
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 鑷姩鎵撴爣鏈�
+ * @Author : yanzhxiin
+ * @Date: 2024/8/20 11:19
+ * @Description:
+ */
+@Component
+@Slf4j
+public class MarkingTask {
+
+ public static String engineerId = "";
+
+ @Autowired
+ TaskingMapper taskingMapper;
+ @Autowired
+ MachineMapper machineMapper;
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ private GlassInfoMapper glassInfoMapper;
+
+ public S7objectMachine s7objectMachine;
+
+ public List<Map> sendRecords = new ArrayList<>();
+
+ //@Scheduled(fixedDelay = 1000)
+ public void plcMarkingTask() {
+ Long machineId=12L;
+ Machine machine=machineMapper.selectById(machineId);
+ if (s7objectMachine==null){
+ s7objectMachine=new S7objectMachine(machine.getIp(),machine.getPort(),"PlcMarking", EPlcType.S1500);
+ s7objectMachine.start();
+ }
+ //PlcParameterObject plcParameterObject = S7objectMarking.getinstance().PlcMesObject;
+ PlcParameterObject plcParameterObject = s7objectMachine.PlcMesObject;
+ PlcParameterInfo plcRequest =plcParameterObject.getPlcParameter("plcRequest");//璇锋眰瀛�
+ PlcParameterInfo plcRequestID =plcParameterObject.getPlcParameter("plcRequestID");//璇锋眰ID
+ PlcParameterInfo mesSend =plcParameterObject.getPlcParameter("mesSend");//鍙戦�佸瓧
+ PlcParameterInfo isMark =plcParameterObject.getPlcParameter("isMark");//鍙戦�両D銆�0 涓嶆墦鏍囷紝1鏍囧噯妯″紡锛�2瀹氬埗妯″紡銆�
+ PlcParameterInfo drawingMark =plcParameterObject.getPlcParameter("drawingMark");//鎵撴爣鍥剧焊鍦板潃
+ PlcParameterInfo lengthOutOfService =plcParameterObject.getPlcParameter("length(OutOfService)");//闀�
+ PlcParameterInfo widthOutOfService =plcParameterObject.getPlcParameter("width(OutOfService)");//瀹�
+ PlcParameterInfo markingMode =plcParameterObject.getPlcParameter("markingMode");//
+
+ PlcParameterInfo plcReport =plcParameterObject.getPlcParameter("plcReport");//姹囨姤瀛�
+ PlcParameterInfo plcReportID =plcParameterObject.getPlcParameter("plcReportID");//姹囨姤ID
+ PlcParameterInfo mesConfirm =plcParameterObject.getPlcParameter("mesConfirm");//纭瀛�
+ PlcParameterInfo mesConfirmID =plcParameterObject.getPlcParameter("mesConfirmID");//纭ID
+ if (machine.getIsLog()>0){
+ s7objectMachine.consoleLogInfo();
+ }
+ if ("0".equals(plcRequest.getValue())&&"1".equals(mesSend.getValue())) {
+ //鍙戦�佸瓧缃�0
+ log.info("1.鍙戦�佸瓧缃浂,娓呴櫎涓婃鍙戦�佺殑鏁版嵁{},{},{},{},{}"
+ ,markingMode.getValue()
+ ,isMark.getValue()
+ ,lengthOutOfService.getValue()
+ ,widthOutOfService.getValue()
+ ,mesSend.getValue());
+ //S7objectMarking.getinstance().plccontrol.writeString(drawingMark.getAddress(),"");
+ s7objectMachine.plccontrol.writeWord(markingMode.getAddress(), 0);
+ s7objectMachine.plccontrol.writeWord(lengthOutOfService.getAddress(), 0);
+ s7objectMachine.plccontrol.writeWord(widthOutOfService.getAddress(), 0);
+ s7objectMachine.plccontrol.writeWord(isMark.getAddress(), 0);
+ s7objectMachine.plccontrol.writeWord(mesSend.getAddress(), 0);
+ return;
+ }
+ if ("0".equals(plcReport.getValue())&&"1".equals(mesConfirm.getValue())) {
+ log.info("2.纭瀛楃疆闆�");
+ //鍙戦�佸瓧缃�0
+ s7objectMachine.plccontrol.writeWord(mesConfirm.getAddress(), 0);
+ return;
+ }
+ if("1".equals(plcReport.getValue())&&"0".equals(mesConfirm.getValue())){
+ int finishCount=taskingService.finishMachineTask(machine);
+ log.info("3銆佷换鍔″畬鎴�");
+ if(finishCount>0){//鏈変换鍔�
+ s7objectMachine.plccontrol.writeWord(mesConfirm.getAddress(), 1);
+ return;
+ }
+ return;
+ }
+ List<Tasking> taskingCount=taskingService.findMachineWorkStateTask(machine,"姝e湪宸ヤ綔");
+ if("1".equals(plcRequest.getValue())&&"0".equals(mesSend.getValue())&& !plcRequestID.getValue().isEmpty()
+ &&"寮�宸�".equals(machine.getState())
+ &&taskingCount.size()<machine.getMaxTaskCount()){
+ Tasking tasking=taskingService.startMachineTask(machine);
+ if(tasking!=null){
+ //妯″紡锛�1瀹氬埗 0 鎵归噺 鏄惁鎵撴爣锛�0涓嶆墦鏍� 1鎵撴爣
+ int isMark_=(tasking.getDrawingMarking()==null||tasking.getDrawingMarking().isEmpty())?0:1;
+ int isMarkingMode_="瀹氬埗".equals(tasking.getTaskType()) ?1:0;
+ log.info("4銆佸彂閫佹暟鎹�:{},{},{},{},{},{}"
+ ,tasking.getProgramId()
+ ,tasking.getLength().intValue(),tasking.getWidth().intValue(),isMark_,isMarkingMode_,1);
+ if(isMark_==1){
+ s7objectMachine.plccontrol.writeString(drawingMark.getAddress(), tasking.getProgramId());
+ }
+ //S7objectMarking.getinstance().plccontrol.writeUInt32 (mesSendID.getAddress(), 2);
+ s7objectMachine.plccontrol.writeWord(lengthOutOfService.getAddress(), tasking.getLength().intValue());
+ s7objectMachine.plccontrol.writeWord(widthOutOfService.getAddress(), tasking.getWidth().intValue());
+ s7objectMachine.plccontrol.writeWord(isMark.getAddress(), isMark_);
+ s7objectMachine.plccontrol.writeWord(markingMode.getAddress(), isMarkingMode_);
+ s7objectMachine.plccontrol.writeWord(mesSend.getAddress(), 1);
+
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String sendRecord=df.format(new Date())+" "+
+ tasking.getScanId()+"-"+
+ tasking.getProgramId()+"-"+
+ tasking.getLength()+"-"+
+ tasking.getWidth()+"-"+
+ isMark_+"-"+
+ isMarkingMode_;
+ if (sendRecords.size()>7){
+ sendRecords.remove(0);
+ }
+ Map sendContentMap=new HashMap();
+ sendContentMap.put("sendContent",sendRecord);
+ sendRecords.add(sendContentMap);
+ return;
+ }
+ }
+ //log.info("鏃犲彲鎵ц鐨勬潯浠�");
+
+ }
+ @Scheduled(fixedDelay = 1000)
+ public void markingTasks() {
+ JSONObject jsonObject = new JSONObject();
+ Machine machine=machineMapper.selectById(12L);
+ List<Tasking> taskingList=taskingService.findMachineTask(machine);
+ jsonObject.append("taskingList", taskingList);
+ jsonObject.append("machine", machine);
+ jsonObject.append("sendRecords", sendRecords);
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("marking");
+ 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");
+ }
+ }
+ }
+ }
+
+}
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
new file mode 100644
index 0000000..327464a
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
@@ -0,0 +1,88 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.common.S7object;
+import com.mes.common.S7objectCleaning;
+import com.mes.common.S7objectMachine;
+import com.mes.common.S7objectMarking;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.MachineMapper;
+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 PLCCleaning {
+
+ PlcParameterObject plcParameterObject =null;
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ MachineMapper machineMapper;
+ public S7objectMachine s7objectMachine;
+
+ //@Scheduled(fixedDelay = 500)
+ public void cleaning() {
+ //纾ㄨ竟绾块�熷害 10.36.164.200
+ Long machineId=8L;
+ Machine machine=machineMapper.selectById(machineId);
+ if (s7objectMachine==null){
+ s7objectMachine=new S7objectMachine(machine.getIp(),machine.getPort(),"PlcCleaning", EPlcType.S200_SMART);
+ s7objectMachine.start();
+ }
+ PlcParameterObject plcParameterObject = s7objectMachine.PlcMesObject;
+ PlcParameterInfo edgSpeed =plcParameterObject.getPlcParameter("edgSpeed");//纾ㄨ竟鏈洪�熷害
+ PlcParameterInfo thinness =plcParameterObject.getPlcParameter("thinness");//鍘氬害
+ if (machine.getIsLog()>0){
+ s7objectMachine.consoleLogInfo();
+ }
+ int edgSpeedInt=PLCEdging.edgSpeed;
+ int edgThinnessInt=PLCEdging.thinness;
+ if(!(edgSpeedInt+"").equals(edgSpeed.getValue())||!(edgThinnessInt+"").equals(thinness.getValue())){
+ //缁欐竻娲楁満鍣ㄥ彂閫佺(杈规満閫熷害
+ S7objectCleaning.getinstance().plccontrol.writeWord(edgSpeed.getAddress(), edgSpeedInt);
+ S7objectCleaning.getinstance().plccontrol.writeWord(thinness.getAddress(), edgThinnessInt);
+ }
+ }
+ //@Scheduled(fixedDelay = 1000)
+ public void cleaningTask() {
+ //鑾峰彇鎶ヨ鐘舵��
+ JSONObject jsonObject = new JSONObject();
+ Machine machine=machineMapper.selectById(7L);
+ List<Tasking> taskingList=taskingService.findMachineTask(machine);
+ jsonObject.append("taskingList", taskingList);
+ jsonObject.append("machine", machine);
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cleaning");
+ 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/PLCEdging.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java
new file mode 100644
index 0000000..671b797
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCEdging.java
@@ -0,0 +1,336 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.LineConfiguration;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.PrimitiveTask;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.MachineMapper;
+import com.mes.md.mapper.TaskingMapper;
+import com.mes.md.service.*;
+import com.mes.service.ModbusTcp;
+import com.mes.service.PlcAgreement;
+import com.mes.service.PlcParameter;
+import com.mes.tools.WebSocketServer;
+import com.mes.utils.HexUtil;
+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.io.InputStream;
+import java.io.OutputStream;
+import java.net.Socket;
+import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCEdging {
+
+ @Autowired
+ TaskingMapper taskingMapper;
+ @Autowired
+ MachineMapper machineMapper;
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ ProjectService projectService;
+
+ @Autowired
+ PrimitiveTaskService primitiveTaskService;
+ @Autowired
+ KBBTJPDrawingBPService kBBTJPDrawingBPService;
+ @Autowired
+ LineConfigurationService lineConfigurationService;
+ public static int thinness = 40;
+ public static int edgSpeed = 40;
+ public static Long machineId1 = 5L;
+ public static Long machineId2 = 6L;
+ public List<Map> sendRecords = new ArrayList<>();
+
+ //@Scheduled(fixedDelay = 1000)
+ public void plcEdging() {
+ Machine machine=machineMapper.selectById(machineId2);
+ ModbusTcp modbusTcp1 =new ModbusTcp(machine.getIp(),machine.getPort(),"PlcEdging");
+ try {
+ modbusTcp1.connect();
+ PlcAgreement plcAgreement=modbusTcp1.getPlcAgreement("PlcEdging");
+ if(!modbusTcp1.read(plcAgreement)){
+ log.info("閫氳璇诲彇鏂版暟鎹け璐�");
+ modbusTcp1.close();
+ return;
+ }
+ PlcParameter inputOrOut2 =plcAgreement.getPlcParameter("inputOrOut2");
+ edgSpeed=inputOrOut2.getValueInt();
+
+ PlcParameter plcRequest =plcAgreement.getPlcParameter("plcRequest");//璇锋眰瀛�
+ PlcParameter mesSend =plcAgreement.getPlcParameter("mesSend");//鍙戦�佸瓧
+
+
+ PlcParameter plcReport =plcAgreement.getPlcParameter("plcReport");//姹囨姤瀛�
+ PlcParameter plcReportID =plcAgreement.getPlcParameter("plcReportID");//姹囨姤ID
+ PlcParameter plcReport2 =plcAgreement.getPlcParameter("plcReport2");//鎵嬪姩姹囨姤瀛�
+ PlcParameter plcReportID2 =plcAgreement.getPlcParameter("plcReportID2");//鎵嬪姩姹囨姤ID
+
+ PlcParameter mesConfirm =plcAgreement.getPlcParameter("mesConfirm");//纭瀛�
+ PlcParameter mesConfirmID =plcAgreement.getPlcParameter("mesConfirmID");//纭ID
+ PlcParameter mesConfirm2 =plcAgreement.getPlcParameter("mesConfirm2");//鎵嬪姩纭瀛�
+ PlcParameter mesConfirmID2 =plcAgreement.getPlcParameter("mesConfirmID2");//鎵嬪姩纭ID
+ if (machine.getIsLog()>0){
+ modbusTcp1.consoleLogInfo(plcAgreement);
+ }
+ if (0==plcRequest.getValueInt()&&1==mesSend.getValueInt()) {
+ log.info("1.鍙戦�佸瓧缃浂");
+ //鍙戦�佸瓧缃�0
+ String send= HexUtil.intTo2ByteHex(0);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesSend.getAddressStart()/2));
+ log.info("鍙戦�佸瓧 娓呯┖鎴愬姛锛涘唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesSend.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ if (0==plcReport.getValueInt()&&0!=mesConfirm.getValueInt()) {
+ log.info("2.纭瀛楃疆闆�");
+ //鍙戦�佸瓧缃�0
+ String send=HexUtil.intTo2ByteHex(0);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm.getAddressStart()/2));
+ log.info("浠诲姟瀹屾垚 娓呯┖鎴愬姛锛涘唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ if (0==plcReport2.getValueInt()&&0!=mesConfirm2.getValueInt()) {
+ log.info("2.纭瀛楃疆闆�");
+ //鍙戦�佸瓧缃�0
+ String send=HexUtil.intTo2ByteHex(0);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()/2));
+ log.info("浠诲姟瀹屾垚 娓呯┖鎴愬姛锛涘唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ if(1==plcReport.getValueInt()&&0==mesConfirm.getValueInt()){
+ int finishCount=taskingService.finishMachineTask(machine);
+ log.info("3銆佷换鍔″畬鎴�");
+ if(finishCount>0) {//鏈変换鍔�
+ String send = HexUtil.intTo2ByteHex(1);
+ modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2));
+ log.info("浠诲姟瀹屾垚 鎴愬姛 鍐呭锛歿},鍙戦�佽捣濮嬪湴鍧�:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ String send = HexUtil.intTo2ByteHex(1);
+ modbusTcp1.writeString(send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart() / 2));
+ log.info("浠诲姟瀹屾垚 寮傚父鎴愬姛 鍐呭锛歿},鍙戦�佽捣濮嬪湴鍧�:{}", send, HexUtil.intTo2ByteHex(mesConfirm.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ if(4==plcReport2.getValueInt()&&0==mesConfirm2.getValueInt()){
+ int finishCount=taskingService.glassDownLineOne(machine);
+ if(finishCount>0){//鏈変换鍔�
+ log.info("4銆佷汉宸ユ嬁璧�");
+ String send=HexUtil.intTo2ByteHex(4);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()/2));
+ log.info("浜哄伐鎷胯蛋鍙戦�佹姤鏂囧唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ String send=HexUtil.intTo2ByteHex(4);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()/2));
+ log.info("浜哄伐鎷胯蛋寮傚父 鍙戦�佹姤鏂囧唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ if(2==plcReport2.getValueInt()&&0==mesConfirm2.getValueInt()){
+ int finishCount=taskingService.loseMachineTask(machine);
+ if(finishCount>0){//鏈変换鍔�
+ log.info("2銆侀噸鍙�");
+ String send=HexUtil.intTo2ByteHex(2);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()/2));
+ log.info("閲嶅彂鍙戦�佹姤鏂囧唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }else{
+ log.info("2銆佸紓甯搁噸鍙�");
+ String send=HexUtil.intTo2ByteHex(2);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()/2));
+ log.info("寮傚父閲嶅彂鍙戦�佹姤鏂囧唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ }
+
+ if(3==plcReport2.getValueInt()&&0==mesConfirm2.getValueInt()){
+ int finishCount=taskingService.finishMachineTask(machine);
+ if(finishCount>0){//鏈変换鍔�
+ log.info("3銆佽澶囦笂浜哄伐鐐圭牬鎹�");
+ String send=HexUtil.intTo2ByteHex(3);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()/2));
+ log.info("浜哄伐鐐圭牬鎹熷彂閫佹姤鏂囧唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }else{
+ //鏄惁鑷姩娓呴櫎鐮存崯
+ log.info("3銆佹棤鏁堢牬鎹� 锛堟病鏈夋壘鍒版ID鐨勭幓鐠冿級");
+ String send=HexUtil.intTo2ByteHex(3);
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()/2));
+ log.info("鍙戦�佹姤鏂囧唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesConfirm2.getAddressStart()));
+ modbusTcp1.close();
+ return;
+ }
+ }
+ List<Tasking> taskingCount=taskingService.findMachineWorkStateTask(machine,"姝e湪宸ヤ綔");
+
+ if((1==plcRequest.getValueInt()&&0==mesSend.getValueInt())
+ &&"寮�宸�".equals(machine.getState())
+ &&taskingCount.size()<machine.getMaxTaskCount()){
+ Machine loadMachine=machineMapper.selectById(2L);
+ Tasking tasking;
+ String scan_id="";
+ if(loadMachine.getMode()==1){
+ //鏍囧噯妯″紡 鎵惧凡棰嗗彇鏈畬鎴愮殑绗竴鏉′换鍔�
+ LineConfiguration lineConfiguration=lineConfigurationService.machineLineConfiguration(machine);
+ List<PrimitiveTask> findPrimitiveTasking=primitiveTaskService.findPrimitiveTasking(machine,lineConfiguration.getLineId());
+ //娣诲姞鏁版嵁:
+ for(PrimitiveTask primitiveTask:findPrimitiveTasking){
+ List<Tasking> taskingTopList=taskingMapper.selectList(new QueryWrapper<Tasking>().lambda()
+ .eq(Tasking::getScanId,primitiveTask.getScanId())
+ );
+ //浠诲姟鏁�>宸蹭笂鏁伴噺
+ if(taskingTopList.size()<primitiveTask.getTaskQuantity()){
+ Tasking taskingAdd=primitiveTaskService.convertListTasking(primitiveTask,lineConfiguration.getId());
+ Integer taskSequence=1;
+ if (machine.getTodayCount()>0&&machine.getTodayCount()<5000){
+ taskSequence=machine.getTodayCount()+1;
+ }else{
+ taskSequence=1;
+ }
+ machine.setTodayCount(taskSequence);
+ taskingAdd.setTaskSequence(taskSequence);
+ machineMapper.updateById(machine);
+ taskingMapper.insert(taskingAdd);
+ }
+ break;
+ }
+ tasking=taskingService.startMachineTask(machine);
+ }else{
+ //瀹氬埗妯″紡
+ String PlcRequestID_=clientTCPSocket();
+ //String PlcRequestID_=",,46607221";
+ if (PlcRequestID_==null||PlcRequestID_.lastIndexOf(",")<0){
+ modbusTcp1.close();
+ errorMachine(machine,("鎵笉鍒扮爜:"+PlcRequestID_));
+ return;
+ }
+ scan_id= PlcRequestID_.substring(PlcRequestID_.lastIndexOf(",")+1);
+ tasking=taskingService.startMachineTask(machine,scan_id);
+ }
+ if(tasking!=null){
+ log.info("4銆佸彂閫佷换鍔� 浠诲姟鏁版嵁锛歿}, 璁惧鐘舵��:{}, ",machine,tasking);
+ String send=
+ HexUtil.intTo2ByteHex(1)+
+ HexUtil.intTo2ByteHex(tasking.getGlassId().intValue())+
+ HexUtil.intTo2ByteHex(((Double)(tasking.getLength()*10)).intValue())+
+ HexUtil.intTo2ByteHex(((Double)(tasking.getWidth()*10)).intValue())+
+ HexUtil.intTo2ByteHex(((Double)(tasking.getThickness()*10)).intValue());
+ modbusTcp1.writeString(send,HexUtil.intTo2ByteHex(mesSend.getAddressStart()/2));
+ log.info("鍙戦�佷换鍔″彂閫佹姤鏂囧唴瀹癸細{},鍙戦�佽捣濮嬪湴鍧�:{}",send,HexUtil.intTo2ByteHex(mesSend.getAddressStart()));
+ modbusTcp1.close();
+ errorMachine(machine,"");
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String sendRecord=df.format(new Date())+" "+
+ tasking.getGlassId()+"-"+
+ tasking.getWidth()+"-"+
+ tasking.getLength()+"-"+
+ tasking.getThickness();
+ if (sendRecords.size()>7){
+ sendRecords.remove(0);
+ }
+ Map sendContentMap=new HashMap();
+ sendContentMap.put("sendContent",sendRecord);
+ sendRecords.add(sendContentMap);
+ return;
+ }else if(!scan_id.isEmpty()){
+ taskingService.scanMachineAdd(machine,scan_id);
+ modbusTcp1.close();
+ return;
+ }
+ }
+ //}
+
+ } catch (Exception e) {
+ log.info("浜や簰閫昏緫閿欒");
+ }
+
+ modbusTcp1.close();
+ //log.info("鏃犲彲鎵ц鐨勬潯浠�");
+ }
+
+
+ public void errorMachine(Machine machine,String error) {
+ if (!error.equals(machine.getRemark())){
+ machine.setRemark(error);
+ machineMapper.updateById(machine);
+ }
+ }
+ public String clientTCPSocket() {
+ try {
+ Machine machine=machineMapper.selectById(4L);
+ Socket clientSocket = new Socket(machine.getIp(), machine.getPort());
+ try {
+ // 鍒涘缓杈撳叆娴佸拰杈撳嚭娴�
+ InputStream inputStream = clientSocket.getInputStream();
+ OutputStream outputStream = clientSocket.getOutputStream();
+ // 鍙戦�佸惎鍔ㄥ懡浠�
+ String message = "start";
+ outputStream.write(message.getBytes());
+ // 璇诲彇鏈嶅姟鍣ㄥ搷搴旂殑鏁版嵁
+ byte[] buffer = new byte[1024];
+ int bytesRead = inputStream.read(buffer);
+ String receivedMessage = new String(buffer, 0, bytesRead);
+ System.out.println("鏀跺埌鎵爜鏋繑鍥炲唴瀹癸細" + receivedMessage);
+ // 鍏抽棴杩炴帴
+ String message2 = "stop";
+ outputStream.write(message2.getBytes());
+ clientSocket.close();
+ return receivedMessage;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ clientSocket.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+ @Scheduled(fixedDelay = 1000)
+ public void EdgingTasks() {
+ JSONObject jsonObject = new JSONObject();
+ Machine machine=machineMapper.selectById(6L);
+ List<Tasking> taskingList=taskingService.findMachineTask(machine);
+ jsonObject.append("taskingList", taskingList);
+ jsonObject.append("machine", machine);
+ jsonObject.append("sendRecords", sendRecords);
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edgingTask");
+ 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/PLCFlipSlice.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java
new file mode 100644
index 0000000..37e5099
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCFlipSlice.java
@@ -0,0 +1,182 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.common.S7object;
+import com.mes.common.S7objectFlipSlice;
+import com.mes.common.S7objectMachine;
+import com.mes.common.S7objectMarking;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.MachineMapper;
+import com.mes.md.service.ProjectService;
+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.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCFlipSlice {
+
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ MachineMapper machineMapper;
+
+ public S7objectMachine s7objectMachine;
+
+ @Autowired
+ ProjectService projectService;
+
+ public List<Map> sendRecords = new ArrayList<>();
+
+ //@Scheduled(fixedDelay = 1000)
+ public void plcFlipSlice() {
+ Long machineId=26L;
+ Machine machine=machineMapper.selectById(machineId);
+ if (s7objectMachine==null){
+ s7objectMachine=new S7objectMachine(machine.getIp(),machine.getPort(),"PlcFlipSlice", EPlcType.S1200);
+ s7objectMachine.start();
+ }
+ PlcParameterObject plcParameterObject = s7objectMachine.PlcMesObject;
+ PlcParameterInfo plcRequest =plcParameterObject.getPlcParameter("plcRequest");//璇锋眰瀛�
+ PlcParameterInfo plcRequestID =plcParameterObject.getPlcParameter("plcRequestID");//璇锋眰ID
+ PlcParameterInfo plcRequestType =plcParameterObject.getPlcParameter("plcRequestType");//PLC璇锋眰
+
+ PlcParameterInfo mesSend =plcParameterObject.getPlcParameter("mesSend");//鍙戦�佸瓧
+ PlcParameterInfo mesSendId =plcParameterObject.getPlcParameter("mesSendID");//鍙戦�両D
+ PlcParameterInfo length =plcParameterObject.getPlcParameter("length");//闀�
+ PlcParameterInfo width =plcParameterObject.getPlcParameter("width");//瀹�
+ PlcParameterInfo mesSendType =plcParameterObject.getPlcParameter("mesSendType");// 鎵爜1 涓嶆壂鐮�2
+
+ String scan_id="";
+ if (machine.getIsLog()>0){
+ s7objectMachine.consoleLogInfo();
+ }
+ if ("0".equals(plcRequest.getValue())&&!"0".equals(mesSend.getValue())) {
+ //鍙戦�佸瓧缃�0
+ int finishCount=taskingService.finishMachineTask(machine);
+ log.info("1.鍙戦�佸瓧缃浂,娓呴櫎涓婃鍙戦�佺殑鏁版嵁{},{},{},{},{}"
+ ,finishCount
+ ,length.getValue()
+ ,width.getValue()
+ ,mesSendId.getValue()
+ ,mesSend.getValue());
+ s7objectMachine.plccontrol.writeWord(length.getAddress(), 0);
+ s7objectMachine.plccontrol.writeWord(width.getAddress(), 0);
+ s7objectMachine.plccontrol.writeWord(mesSendId.getAddress(), 0);
+ s7objectMachine.plccontrol.writeWord(mesSend.getAddress(), 0);
+ return;
+ }
+ List<Tasking> taskingCount=taskingService.findMachineWorkStateTask(machine,"姝e湪宸ヤ綔");
+ if(("1".equals(plcRequest.getValue())&&"0".equals(mesSend.getValue())&& !plcRequestID.getValue().isEmpty()
+ &&"寮�宸�".equals(machine.getState())
+ &&taskingCount.size()<machine.getMaxTaskCount())){
+ Tasking tasking;
+ if(machine.getMode()==1){
+ //鏍囧噯妯″紡
+ tasking=taskingService.startMachineTask(machine);
+ }else{
+ //瀹氬埗妯″紡
+ String PlcRequestID_=plcRequestID.getValue();
+ scan_id= PlcRequestID_.substring(PlcRequestID_.lastIndexOf(",")+1);
+ tasking=taskingService.startScanIdMachineTask(machine,scan_id);//涓嶇椤哄簭锛岀洿鎺ユ壘浠庣(杈规満鎵爜鍚庡埌缈荤墖鍙扮殑鏁版嵁
+ }
+ if(tasking!=null){
+ log.info("4銆佸彂閫佹暟鎹�:{},{},{},{},{}"
+ ,tasking.getGlassId(),tasking.getProgramId()
+ ,tasking.getLength().intValue(),tasking.getWidth().intValue(),1);
+ s7objectMachine.plccontrol.writeWord(length.getAddress(), tasking.getLength().intValue());
+ s7objectMachine.plccontrol.writeWord(width.getAddress(), tasking.getWidth().intValue());
+ s7objectMachine.plccontrol.writeString(mesSendId.getAddress(), tasking.getGlassId().toString());
+ s7objectMachine.plccontrol.writeWord(mesSend.getAddress(), 1);
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ String sendRecord=df.format(new Date())+" "+
+ tasking.getGlassId()+"-"+
+ tasking.getLength()+"-"+
+ tasking.getWidth();
+ if (sendRecords.size()>7){
+ sendRecords.remove(0);
+ }
+ Map sendContentMap=new HashMap();
+ sendContentMap.put("sendContent",sendRecord);
+ sendRecords.add(sendContentMap);
+
+ nullMachine(machine);
+ return;
+ }else if(!scan_id.isEmpty()){
+ taskingService.scanMachineAdd(machine,scan_id);
+ }
+ }
+
+ }
+
+ public void nullMachine(Machine machine) {
+ if (!"".equals(machine.getRemark())){
+ machine.setRemark("");
+ machineMapper.updateById(machine);
+ }
+ }
+ @Scheduled(fixedDelay = 1000)
+ public void flipSliceTask() {
+ //鑾峰彇鎶ヨ鐘舵��
+ JSONObject jsonObject = new JSONObject();
+ Machine machine=machineMapper.selectById(26L);
+ List<Tasking> taskingList=taskingService.findMachineTask(machine);
+ jsonObject.append("taskingList", taskingList);
+ jsonObject.append("machine", machine);
+ jsonObject.append("sendRecords", sendRecords);
+ ArrayList<WebSocketServer> sendServer = WebSocketServer.sessionMap.get("flipSlice");
+ if (sendServer != null) {
+ for (WebSocketServer webserver : sendServer) {
+ if (webserver != null) {
+ webserver.sendMessage(jsonObject.toString());
+ List<String> messages = webserver.getMessages();
+ if (!messages.isEmpty()) {
+ // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+ webserver.clearMessages();
+ }
+ } else {
+ log.info("Home is closed");
+ }
+ }
+
+ }
+ }
+
+ @Scheduled(fixedDelay = 1000)
+ public void downLineTask() {
+ //绾夸笅浠诲姟
+ JSONObject jsonObject = new JSONObject();
+ List<Tasking> downLineTask=taskingService.findDownLineTask();
+ jsonObject.append("downLineTask", downLineTask);
+ ArrayList<WebSocketServer> sendServer = WebSocketServer.sessionMap.get("downLineTask");
+ if (sendServer != null) {
+ for (WebSocketServer webserver : sendServer) {
+ 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/PLCManualReporting.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCManualReporting.java
new file mode 100644
index 0000000..680b369
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCManualReporting.java
@@ -0,0 +1,59 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.PrimitiveTask;
+import com.mes.md.mapper.MachineMapper;
+import com.mes.md.service.PrimitiveTaskService;
+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;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCManualReporting {
+
+ PlcParameterObject plcParameterObject =null;
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ MachineMapper machineMapper;
+ @Autowired
+ PrimitiveTaskService primitiveTaskService;
+
+ //@Scheduled(fixedDelay = 500)
+ //@Scheduled(fixedDelay = 1000)
+ public void manualReporting() {
+
+ JSONObject jsonObject = new JSONObject();
+ List<PrimitiveTask> taskingList = primitiveTaskService.selectPrimitiveTask(new PrimitiveTask());
+ jsonObject.append("taskingList", taskingList);
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("manualReporting");
+ 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..87791d4
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCMechanicalArm.java
@@ -0,0 +1,80 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.MachineMapper;
+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 =null;
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ MachineMapper machineMapper;
+// @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() {
+ //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+ //鑾峰彇鎶ヨ鐘舵��
+ JSONObject jsonObject = new JSONObject();
+// String warning = plcParameterObject.getPlcParameter("warning").getValue();
+// if (!Objects.equals(warning, "0")) {
+// //log.info("鎶ヨ淇℃伅锛�"+warning);
+// jsonObject.append("warning", warning);
+// }
+ Machine machine=machineMapper.selectById(1L);
+ List<Tasking> taskingList=taskingService.findMachineTask(machine);
+ jsonObject.append("taskingList", taskingList);
+ jsonObject.append("machine", machine);
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("mechanicalArm");
+ 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..b8849cf
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRVerify.java
@@ -0,0 +1,77 @@
+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 PLCScanQRVerify {
+
+ PlcParameterObject plcParameterObject =null;
+ @Autowired
+ TaskingService taskingService;
+ //@Scheduled(fixedDelay = 500)
+ public void plcScanQrVerify() {
+ //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+ //鎵爜纭绾跨▼
+ String scanId = plcParameterObject.getPlcParameter("scanId").getValue();
+ Tasking tasking =new Tasking();
+ tasking.setScanId(scanId);
+ if(!Objects.equals(scanId, "")){
+ //鏇存柊浠诲姟琛ㄧ姸鎬�
+ boolean result = taskingService.updateTaskingState(tasking);
+ if (result){
+ //娣诲姞鎴愬姛鏃跺彂閫佽繃鐗囦俊鍙�
+ S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("scan").getAddress(), Integer.parseInt("1"));
+ }
+ }else {
+ //鎵爜澶辫触鏃跺彂閫佽鍛婏紝浜岀淮鐮佹秷澶�
+ S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("deficiency").getAddress(), Integer.parseInt("1"));
+ 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/PLCScanQRWorks.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRWorks.java
new file mode 100644
index 0000000..8702c78
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQRWorks.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.PrimitiveTaskService;
+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 PLCScanQRWorks {
+
+ PlcParameterObject plcParameterObject =null;
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ PrimitiveTaskService primitiveTaskService;
+ //@Scheduled(fixedDelay = 500)
+ public void plcScanQrVerify() {
+ //鏍规嵁鎵弿鍒扮殑瀹氬埗浜岀淮鐮佸皢鐘舵�佹洿鏂板埌鏁版嵁搴撲腑
+ //鎵爜鎶ュ伐绾跨▼
+ String scanId = plcParameterObject.getPlcParameter("scanId").getValue();
+ Tasking tasking =new Tasking();
+ if(!Objects.equals(scanId, "")){
+ //鏇存柊浠诲姟琛ㄧ姸鎬�
+ boolean result = primitiveTaskService.updateReportCount(scanId);
+ if (result){
+ //娣诲姞鎴愬姛鏃跺彂閫佽繃鐗囦俊鍙�
+ S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("scan").getAddress(), Integer.parseInt("1"));
+ }
+ }else {
+ //鎵爜澶辫触鏃跺彂閫佽鍛婏紝浜岀淮鐮佹秷澶�
+ S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("deficiency").getAddress(), Integer.parseInt("1"));
+ 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/PLCScanQrCodesReport.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQrCodesReport.java
new file mode 100644
index 0000000..d82f4a8
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCScanQrCodesReport.java
@@ -0,0 +1,78 @@
+package com.mes.job;
+import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.MachineMapper;
+import com.mes.md.service.PrimitiveTaskService;
+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 PLCScanQrCodesReport {
+
+ PlcParameterObject plcParameterObject =null;
+ @Autowired
+ TaskingService taskingService;
+ @Autowired
+ MachineMapper machineMapper;
+ @Autowired
+ PrimitiveTaskService primitiveTaskService;
+ //@Scheduled(fixedDelay = 500)
+ public void pLCScanQR() {
+ //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+ //鎵爜绾跨▼
+ String scanId = plcParameterObject.getPlcParameter("scanId").getValue();
+ if(!Objects.equals(scanId, "")){
+ boolean result = primitiveTaskService.updateReportCount(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() {
+ //鑾峰彇褰撳墠浠诲姟琛ㄦ渶鏂扮殑涓�鍧椾换鍔$姸鎬�
+ JSONObject jsonObject = new JSONObject();
+ //鑾峰彇鎶ヨ鐘舵��
+ Machine machine=machineMapper.selectById(23L);
+ List<Tasking> taskingList=taskingService.findMachineTask(machine);
+ jsonObject.append("taskingList", taskingList);
+ jsonObject.append("machine", machine);
+ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("scanQrCodesReport");
+ 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
--
Gitblit v1.8.0