From 2c2413760b6467bf62402dba7338bd3bbcbd7341 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期二, 20 五月 2025 14:20:38 +0800
Subject: [PATCH] 添加产量报表功能页面

---
 JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java |  339 +++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 222 insertions(+), 117 deletions(-)

diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java
index 680d651..073b79d 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/MachineTask.java
@@ -1,18 +1,19 @@
 package com.mes.job;
 
 import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 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.entity.*;
 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.md.service.*;
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +22,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 鑷姩鎵撴爣鏈�
@@ -41,128 +43,231 @@
     @Autowired
     TaskingService taskingService;
     @Autowired
+    ProjectService projectService;
+    @Autowired
+    PrimitiveTaskService primitiveTaskService;
+    @Autowired
+    KBBTJPDrawingBPService kBBTJPDrawingBPService;
+    @Autowired
+    LineConfigurationService lineConfigurationService;
+    @Autowired
     private GlassInfoMapper glassInfoMapper;
-    public int a =1;
-    public S7objectMachine s7objectMachine;
+    public List<Map> sendRecords = new ArrayList<>();
+    private List<Machine> machineListLoad;
+    private List<Machine> machineListEdging;
+    private List<Machine> machineListFlipSlice;
+    private List<Machine> machineListMarking;
+    private List<Machine> machineListSilkScreen;
+    private List<Machine> machineListRotate;
+    private List<Machine> machineListGlueDispenser;
+    private List<Machine> machineListScanQrCode;
+    private List<Machine> machineListLamination;
 
-    //@Scheduled(fixedDelay = 1000)
-    public void plcMachineTask() {
-        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 = 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
-
-        String str=S7objectMarking.getinstance().plccontrol.readString("DB14.30");
-
-        //String width=S7objectMarking.getinstance().plccontrol.readWord(widthOutOfService.getAddress());
-        log.info("plcRequest:{},plcRequestID:{},mesSend:{},mesSendID:{},drawingMark:{}," +
-                        "plcReport:{},plcReportID:{},mesConfirm:{},mesConfirmID:{}"
-                ,plcRequest.getValue(),plcRequestID.getValue(),mesSend.getValue(),isMark.getValue(),drawingMark.getValue(),
-                plcReport.getValue(),plcReportID.getValue(),mesConfirm.getValue(),mesConfirmID.getValue());
-        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(),"");
-            S7objectMarking.getinstance().plccontrol.writeWord(markingMode.getAddress(), 0);
-            S7objectMarking.getinstance().plccontrol.writeWord(lengthOutOfService.getAddress(), 0);
-            S7objectMarking.getinstance().plccontrol.writeWord(widthOutOfService.getAddress(), 0);
-            S7objectMarking.getinstance().plccontrol.writeWord(isMark.getAddress(), 0);
-            S7objectMarking.getinstance().plccontrol.writeWord(mesSend.getAddress(), 0);
-            return;
-        }
-        if ("0".equals(plcReport.getValue())&&"1".equals(mesConfirm.getValue())) {
-            log.info("2.纭瀛楃疆闆�");
-            //鍙戦�佸瓧缃�0
-            S7objectMarking.getinstance().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){//鏈変换鍔�
-                S7objectMarking.getinstance().plccontrol.writeWord(mesConfirm.getAddress(), 1);
-                return;
-            }
-        }
-        if("1".equals(plcRequest.getValue())&&"0".equals(mesSend.getValue())&& !plcRequestID.getValue().isEmpty()&&"寮�宸�".equals(machine.getState())){
-            Tasking tasking;
-            if("0".equals(plcRequestID.getValue())){
-                //鏍囧噯妯″紡
-                tasking=taskingService.startMachineTask(machine);
-            }else{
-                //瀹氬埗妯″紡
-                tasking=taskingService.startMachineTask(machine,plcRequestID.getValue());
-            }
-            //log.info("4銆佸彂閫佷换鍔�  璁惧鐘舵��:{},  鏁版嵁锛歿},",machine,tasking);
-            if(tasking!=null){
-                //妯″紡锛�1瀹氬埗  0 鎵归噺      鏄惁鎵撴爣锛�0涓嶆墦鏍�   1鎵撴爣
-                int isMark_=tasking.getDrawingMarking()==null?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){
-                    S7objectMarking.getinstance().plccontrol.writeString(drawingMark.getAddress(), tasking.getProgramId());
-                }
-                //S7objectMarking.getinstance().plccontrol.writeUInt32 (mesSendID.getAddress(), 2);
-                S7objectMarking.getinstance().plccontrol.writeWord(lengthOutOfService.getAddress(), tasking.getLength().intValue());
-                S7objectMarking.getinstance().plccontrol.writeWord(widthOutOfService.getAddress(), tasking.getWidth().intValue());
-                S7objectMarking.getinstance().plccontrol.writeWord(isMark.getAddress(), isMark_);
-                S7objectMarking.getinstance().plccontrol.writeWord(markingMode.getAddress(), isMarkingMode_);
-                S7objectMarking.getinstance().plccontrol.writeWord(mesSend.getAddress(), 1);
-                return;
-            }
-        }
-        //log.info("鏃犲彲鎵ц鐨勬潯浠�");
-
-    }
-    //@Scheduled(fixedDelay = 1000)
-    public void markingTasks() {
+    //鏈烘鎵�
+    @Scheduled(fixedDelay = 500)
+    public void MarkingTasks() {
+        machineListLoad =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"涓婄墖"));
         JSONObject jsonObject = new JSONObject();
-        Machine machine=machineMapper.selectById(11L);
-        List<Tasking> taskingList=taskingService.findMachineTask(machine);
-        jsonObject.append("taskingList", taskingList);
-        jsonObject.append("machine", machine);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("marking");
-        if (sendwServer != null) {
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    try {
-                        webserver.sendMessage(jsonObject.toString());
-                        List<String> messages = webserver.getMessages();
-                        if (!messages.isEmpty()) {
-                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                            webserver.clearMessages();
-                        }
-                    }catch (Exception e) {
+        jsonObject.append("sessionMapName", "loadTask");
+        for (Machine machine : machineListLoad) {
+            JSONObject jsonObjectItem = new JSONObject();
+            //鏍囧噯妯″紡  鎵惧凡棰嗗彇鏈畬鎴愮殑绗竴鏉′换鍔�
+            LineConfiguration lineConfiguration=lineConfigurationService.machineLineConfiguration(machine);
+            //姝ょ嚎璺凡棰嗗彇鐨勪换鍔�
+            List<PrimitiveTask> findPrimitiveTasking=primitiveTaskService.findPrimitiveTasking(machine,lineConfiguration.getLineId());
+            //姝ょ嚎璺湭棰嗗彇鐨勪换鍔�  鏈湴
+            //List<PrimitiveTask> findPrimitiveTask=primitiveTaskService.findPrimitiveTaskNotFinish();
+            //姝ょ嚎璺湭棰嗗彇鐨勪换鍔�  瀹㈡埛鏁版嵁搴�
+            List<KBBTJPDrawingBP> list =kBBTJPDrawingBPService.notReceiveKBBTJPDrawingBP();
+            jsonObjectItem.append("findPrimitiveTask", list);
+            jsonObjectItem.append("findPrimitiveTasking", findPrimitiveTasking);
+            //jsonObject.append("findPrimitiveTask", findPrimitiveTask);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
+    //纾ㄨ竟鏈�
+    @Scheduled(fixedDelay = 500)
+    public void edgingTasks() {
+        machineListEdging =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"纾ㄨ竟"));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "edgingTask");
+        for (Machine machine : machineListEdging) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingService.findMachineTask(machine);
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
 
+    //缈荤墖鍙�
+    @Scheduled(fixedDelay = 500)
+    public void flipSliceTasks() {
+        machineListFlipSlice =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"缈荤墖"));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "flipSlice");
+        for (Machine machine : machineListFlipSlice) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingService.findMachineTask(machine);
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
+
+    //鎵撴爣鏈�
+    @Scheduled(fixedDelay = 500)
+    public void markingTasks() {
+        machineListMarking =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"鑷姩鎵撴爣鏈�"));
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "marking");
+        for (Machine machine : machineListMarking) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingService.findMachineTask(machine);
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
+
+    //涓濆嵃鏈�
+    @Scheduled(fixedDelay = 500)
+    public void silkScreenTasks() {
+        machineListSilkScreen =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"鑷姩涓濆嵃鏈�"));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "silkScreenTask");
+        for (Machine machine : machineListSilkScreen) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingService.findMachineTask(machine);
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
+    //鐐硅兌鏈�
+    //@Scheduled(fixedDelay = 500)
+    public void glueDispenserTasks() {
+        machineListGlueDispenser =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"鑷姩鐐硅兌鏈�"));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "glueDispenser");
+        for (Machine machine : machineListGlueDispenser) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingService.findMachineTask(machine);
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
+    //鏃嬭浆鍙�
+    @Scheduled(fixedDelay = 500)
+    public void rotateTasks() {
+        machineListRotate =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"鏃嬭浆鍙�"));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "rotate");
+        for (Machine machine : machineListRotate) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingService.findMachineTask(machine);
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
+    //璐磋啘鏈�
+    @Scheduled(fixedDelay = 500)
+    public void laminationTasks() {
+        machineListLamination =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"鑷姩璐磋啘鏈�"));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "lamination");
+        for (Machine machine : machineListLamination) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingService.findMachineTask(machine);
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObjectItem.append("sendRecords", sendRecords);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+        this.webSocketServer(jsonObject);
+    }
+
+
+    //鎶ュ伐椤甸潰鏌ヨ
+    @Scheduled(fixedDelay = 1000)
+    public void manualReporting() {
+
+        machineListScanQrCode =machineMapper.selectList(new QueryWrapper<Machine>().lambda().eq(Machine::getName,"璇嗗埆鎶ュ伐"));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.append("sessionMapName", "manualReporting");
+        for (Machine machine : machineListScanQrCode) {
+            JSONObject jsonObjectItem = new JSONObject();
+            List<Tasking> taskingList=taskingMapper.selectJoinList(Tasking.class,new MPJLambdaWrapper<Tasking>()
+                    .selectAll(Tasking.class)
+                    .innerJoin(LineConfiguration.class,LineConfiguration::getId,Tasking::getLineConfigurationId)
+                    .innerJoin(Machine.class,Machine::getId,LineConfiguration::getMachineId)
+                    .eq(LineConfiguration::getMachineId,machine.getId())
+                    .eq(Tasking::getGlassState,"姝e父")
+                    .eq(Tasking::getState,"绾夸笂")
+                    .ne(Tasking::getWorkState,"瀹屽伐")
+                    .orderByDesc(Tasking::getOperationRecordTime));
+            jsonObjectItem.append("taskingList", taskingList);
+            jsonObjectItem.append("machine", machine);
+            jsonObject.append(machine.getId().toString(), jsonObjectItem);
+        }
+
+        this.webSocketServer(jsonObject);
+    }
+    //绾夸笅鐜荤拑鏌ヨ
+    @Scheduled(fixedDelay = 1000)
+    public void downLineTask() {
+        JSONObject jsonObject = new JSONObject();
+        List<Tasking> downLineTask=taskingService.findDownLineTask();
+        jsonObject.append("sessionMapName", "downLineTask");
+        jsonObject.append("downLineTask", downLineTask);
+        this.webSocketServer(jsonObject);
+    }
+
+
+    public void webSocketServer(JSONObject jsonObject) {
+        try {
+            String sessionMapName=jsonObject.getJSONArray("sessionMapName").get(0).toString();
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(sessionMapName);
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    if (webserver != null) {
+                        try {
+                            webserver.sendMessage(jsonObject.toString());
+                            List<String> messages = webserver.getMessages();
+                            if (!messages.isEmpty()) {
+                                // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                                webserver.clearMessages();
+                            }
+                        }catch (Exception e) {
+
+                        }
+                    } else {
+                        log.info("Home is closed");
                     }
-                } else {
-                    log.info("Home is closed");
                 }
             }
+        }catch (Exception e) {
+
         }
+
     }
 
 }

--
Gitblit v1.8.0