From b4ff04d7dd22f0e48bf386cd422e885aef08fed7 Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期四, 22 五月 2025 15:03:10 +0800 Subject: [PATCH] OPC通讯修改为S7通讯 --- hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java | 190 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 149 insertions(+), 41 deletions(-) diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java index 37fa8e0..8bccc41 100644 --- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java +++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java @@ -3,6 +3,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.service.MiloService; import com.mes.bigstoragecagetask.entity.BigStorageCageTask; @@ -19,10 +20,16 @@ import com.mes.hollow.service.HollowGlassRelationInfoService; import com.mes.hollowqueue.entity.HollowGlassQueueInfo; import com.mes.hollowqueue.service.HollowGlassQueueInfoService; +import com.mes.hollowtask.service.HollowBigStorageCageHistoryTaskService; +import com.mes.largenscreen.entity.PieChartVO; +import com.mes.largenscreen.entity.RunTime; +import com.mes.s7.entity.S7DataZKDLPOne; +import com.mes.s7.entity.S7DataZKDLPTwo; import com.mes.tools.WebSocketServer; import com.mes.utils.RedisUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -53,39 +60,57 @@ BigStorageCageTaskService bigStorageCageTaskService; @Resource HollowGlassRelationInfoService hollowGlassRelationInfoService; + @Resource + HollowBigStorageCageHistoryTaskService hollowBigStorageCageHistoryTaskService; @Autowired(required = false) MiloService miloService; + @Autowired + @Qualifier("s7SerializerZKDLPOne") + private S7Serializer s7SerializerZKDLPOne; + + @Autowired + @Qualifier("s7SerializerZKDLPTwo") + private S7Serializer s7SerializerZKDLPTwo; + @Resource RedisUtil redisUtil; - @Scheduled(fixedDelay = 1000) - public void hollowGlassTask() { + @Scheduled(fixedDelay = 5000) + public void hollowGlassTaskOne() { + hollowGlassTaskChild(930, "CMJ1.CMJ1.isFree", "HollowGlassOne"); + } + + @Scheduled(fixedDelay = 5000) + public void hollowGlassTaskTwo() { + hollowGlassTaskChild(931, "ZKQ2.ZKQ2.isFree", "HollowGlassTwo"); + } + + @Scheduled(fixedDelay = 5000) + public void hollowGlassTaskThree() { + //todo:鏆傛棤涓夌嚎鐨勭┖闂茬姸鎬佷俊鍙凤紝涓存椂鏍囩绌洪棽鐘舵�� + hollowGlassTaskChild(932, "ZKQ3.ZKQ3.isFree", "HollowGlassThree"); + } + + public void hollowGlassTaskChild(int cell, String isFreeTag, String websocketName) { List<HollowGlassOutRelationInfo> taskList = hollowGlassOutRelationInfoService.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>() - .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)); - if (CollectionUtil.isEmpty(taskList)) { - return; - } + .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START).eq(HollowGlassOutRelationInfo::getCell, cell)); JSONObject jsonObject = new JSONObject(); - List<Long> taskIdList = taskList.stream().map(HollowGlassOutRelationInfo::getId).collect(Collectors.toList()); - List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>().in(HollowGlassQueueInfo::getRelationId, taskIdList)); - Map<Integer, List<HollowGlassQueueInfo>> listMap = list.stream().collect(Collectors.groupingBy(HollowGlassQueueInfo::getCell)); - jsonObject.append("930", listMap.get(930)); - jsonObject.append("931", listMap.get(931)); - jsonObject.append("932", listMap.get(932)); + if (CollectionUtil.isNotEmpty(taskList)) { + List<Long> taskIdList = taskList.stream().map(HollowGlassOutRelationInfo::getId).collect(Collectors.toList()); + List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>().in(HollowGlassQueueInfo::getRelationId, taskIdList)); + jsonObject.append("queueInfo", list); + } try { //930绌洪棽淇″彿 - ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); - jsonObject.append("freeOneRequestEntity", freeOneRequestEntity.getValue()); - //931绌洪棽淇″彿 - ReadWriteEntity freeTwoRequestEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree"); - jsonObject.append("freeTwoRequestEntity", freeTwoRequestEntity.getValue()); + ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa(isFreeTag); + jsonObject.append("freeRequest", freeOneRequestEntity.getValue()); } catch (Exception e) { log.error("opc瀛樺湪寮傚父", e); } - List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("HollowGlass"); + List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(websocketName); if (CollectionUtil.isNotEmpty(sendwServer)) { for (WebSocketServer socketServer : sendwServer) { if (socketServer != null && socketServer.session.isOpen()) { @@ -124,6 +149,8 @@ public void queryDataSource1(JSONObject jsonObject) throws Exception { + S7DataZKDLPOne s7DataZKDLPOne = s7SerializerZKDLPOne.read(S7DataZKDLPOne.class); + S7DataZKDLPTwo s7DataZKDLPTwo = s7SerializerZKDLPTwo.read(S7DataZKDLPTwo.class); List<Double> carPostion = new ArrayList<>(); carPostion.add(0.25); carPostion.add(0.5); @@ -134,24 +161,65 @@ try { //杩涚墖浠诲姟鏁版嵁 List<BigStorageTaskVO> inTaskList = new ArrayList(); - ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1"); +// ReadWriteEntity fromOpcUa = miloService.readFromOpcUa("DLP2A.DLP2A.FROM1"); + String fromOpcUa = s7DataZKDLPOne.getFrom1().toString(); for (int i = 1; i <= 6; i++) { - ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i); - ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i); - ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i); - if (null != requestWord.getValue()) { +// ReadWriteEntity requestWord = miloService.readFromOpcUa("DLP2A.DLP2A.DI" + i); +// ReadWriteEntity targetSlotWord = miloService.readFromOpcUa("DLP2A.DLP2A.TO" + i); +// ReadWriteEntity stateWord = miloService.readFromOpcUa("DLP2A.DLP2A.STATE" + i); + String requestWord = ""; + String stateWord = ""; + String targetSlotWord = ""; + switch (i) { + case 0: + requestWord = s7DataZKDLPOne.getId1().toString(); + stateWord = s7DataZKDLPOne.getState1().toString(); + targetSlotWord = s7DataZKDLPOne.getTo1().toString(); + break; + case 1: + requestWord = s7DataZKDLPOne.getId2().toString(); + stateWord = s7DataZKDLPOne.getState2().toString(); + targetSlotWord = s7DataZKDLPOne.getTo2().toString(); + break; + case 2: + requestWord = s7DataZKDLPOne.getId3().toString(); + stateWord = s7DataZKDLPOne.getState3().toString(); + targetSlotWord = s7DataZKDLPOne.getTo3().toString(); + break; + case 3: + requestWord = s7DataZKDLPOne.getId4().toString(); + stateWord = s7DataZKDLPOne.getState4().toString(); + targetSlotWord = s7DataZKDLPOne.getTo4().toString(); + break; + case 4: + requestWord = s7DataZKDLPOne.getId5().toString(); + stateWord = s7DataZKDLPOne.getState5().toString(); + targetSlotWord = s7DataZKDLPOne.getTo5().toString(); + break; + case 5: + requestWord = s7DataZKDLPOne.getId6().toString(); + stateWord = s7DataZKDLPOne.getState6().toString(); + targetSlotWord = s7DataZKDLPOne.getTo6().toString(); + break; + } +// if (null != requestWord.getValue()) { + if (null != requestWord) { BigStorageTaskVO task = new BigStorageTaskVO(); - task.setGlassId(requestWord.getValue() + ""); +// task.setGlassId(requestWord.getValue() + ""); + task.setGlassId(requestWord); int isExistCount = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>().in(HollowBigStorageCageDetails::getGlassId, task.getGlassId()) - .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)); - if (isExistCount > 0 && "0".equals(targetSlotWord.getValue() + "")) { + .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL)); + if (isExistCount > 0) { task.setIsSame(1); } else { task.setIsSame(0); } - task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + "")); - task.setTargetSlot(Integer.parseInt(targetSlotWord.getValue() + "")); - task.setTaskState(Integer.parseInt(stateWord.getValue() + "")); +// task.setStartSlot(Integer.parseInt(fromOpcUa.getValue() + "")); +// task.setTargetSlot(Integer.parseInt(targetSlotWord.getValue() + "")); +// task.setTaskState(Integer.parseInt(stateWord.getValue() + "")); + task.setStartSlot(Integer.parseInt(fromOpcUa)); + task.setTargetSlot(Integer.parseInt(targetSlotWord)); + task.setTaskState(Integer.parseInt(stateWord)); inTaskList.add(task); continue; } @@ -162,26 +230,39 @@ } try { //杩涚墖鑱旀満 - ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl"); - jsonObject.append("inkageEntity", inkageEntity.getValue()); +// ReadWriteEntity inkageEntity = miloService.readFromOpcUa("DLP2A.DLP2A.mesControl"); +// jsonObject.append("inkageEntity", inkageEntity.getValue()); + Boolean inkageEntity = s7DataZKDLPOne.getMesControl(); + jsonObject.append("inkageEntity", inkageEntity); //杩涚墖璇锋眰 - ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2A.DLP2A.RequestMes"); - jsonObject.append("requestEntity", requestEntity.getValue()); +// ReadWriteEntity requestEntity = miloService.readFromOpcUa("DLP2A.DLP2A.RequestMes"); +// jsonObject.append("requestEntity", requestEntity.getValue()); + String requestEntity = s7DataZKDLPOne.getRequestMes().toString(); + jsonObject.append("requestEntity", requestEntity); //鍚姩鍛戒护 - ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP2A.DLP2A.MesReply"); - jsonObject.append("mesReplyEntity", mesReplyEntity.getValue()); +// ReadWriteEntity mesReplyEntity = miloService.readFromOpcUa("DLP2A.DLP2A.MesReply"); +// jsonObject.append("mesReplyEntity", mesReplyEntity.getValue()); + String mesReplyEntity = s7DataZKDLPOne.getMesReply().toString(); + jsonObject.append("mesReplyEntity", mesReplyEntity); //鍑虹墖鑱旀満 - ReadWriteEntity outInkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl"); - jsonObject.append("outInkageEntity", outInkageEntity.getValue()); +// ReadWriteEntity outInkageEntity = miloService.readFromOpcUa("DLP2B.DLP2B.mesControl"); +// jsonObject.append("outInkageEntity", outInkageEntity.getValue()); + String outInkageEntity = s7DataZKDLPTwo.getMesControl().toString(); + jsonObject.append("outInkageEntity", outInkageEntity); //鍑虹墖璇锋眰 - ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP2B.DLP2B.RequestMes"); - jsonObject.append("outRequestEntity", outRequestEntity.getValue()); +// ReadWriteEntity outRequestEntity = miloService.readFromOpcUa("DLP2B.DLP2B.RequestMes"); +// jsonObject.append("outRequestEntity", outRequestEntity.getValue()); + String outRequestEntity = s7DataZKDLPTwo.getRequestMes().toString(); + jsonObject.append("outInkageEntity", outInkageEntity); //930绌洪棽淇″彿 ReadWriteEntity freeOneRequestEntity = miloService.readFromOpcUa("CMJ1.CMJ1.isFree"); jsonObject.append("freeOneRequestEntity", freeOneRequestEntity.getValue()); //931绌洪棽淇″彿 ReadWriteEntity freeTwoRequestEntity = miloService.readFromOpcUa("ZKQ2.ZKQ2.isFree"); jsonObject.append("freeTwoRequestEntity", freeTwoRequestEntity.getValue()); + //932绌洪棽淇″彿 + ReadWriteEntity freeThreeRequestEntity = miloService.readFromOpcUa("ZKQ3.ZKQ3.isFree"); + jsonObject.append("freeThreeRequestEntity", freeThreeRequestEntity.getValue()); } catch (Exception e) { //todo:涓嶅仛浠诲姟澶勭悊 } @@ -204,9 +285,36 @@ jsonObject.append("bigStorageCageUsage", bigStorageCageUsage); //鐞嗙墖绗间娇鐢ㄦ儏鍐垫眹鎬� - HollowBigStorageDetailsQueryVO hollowBigStorageDetailsQueryVO=new HollowBigStorageDetailsQueryVO(); - Map<String, FlowCardGlassInfoDTO> bigStorageCageUsageSummary= hollowGlassRelationInfoService.queryHollowAllFlowCardSummary(hollowBigStorageDetailsQueryVO); + HollowBigStorageDetailsQueryVO hollowBigStorageDetailsQueryVO = new HollowBigStorageDetailsQueryVO(); + List<FlowCardGlassInfoDTO> bigStorageCageUsageSummary = hollowGlassRelationInfoService.queryHollowAllFlowCardSummary(hollowBigStorageDetailsQueryVO); jsonObject.append("bigStorageCageUsageSummary", bigStorageCageUsageSummary); } + @Scheduled(fixedDelay = 1000) + public void largenScreen() { + JSONObject jsonObject = new JSONObject(); + //鐞嗙墖绗间娇鐢ㄦ儏鍐� + List<Map<String, Object>> hollowBigStorageCageUsage = hollowBigStorageCageService.selectBigStorageCageUsage(); + jsonObject.append("hollowBigStorageCageUsage", hollowBigStorageCageUsage); + //閽㈠寲楗煎浘鏁版嵁 + List<PieChartVO> pieChartVOS = hollowGlassOutRelationInfoService.queryPieChart(); + jsonObject.append("pieChartVOS", pieChartVOS); + List<RunTime> hollowRunTimes = hollowBigStorageCageHistoryTaskService.queryRunTimes(); + jsonObject.append("hollowRunTimes", hollowRunTimes); + ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen"); + 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("largenScreen is closed"); + } + } + } + } } -- Gitblit v1.8.0