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/MarkingTask.java |  184 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 184 insertions(+), 0 deletions(-)

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");
+                }
+            }
+        }
+    }
+
+}

--
Gitblit v1.8.0