From d3e76a8afe548f5f9e51de37f26b3cb8aa7374a1 Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期一, 26 五月 2025 11:38:09 +0800 Subject: [PATCH] 大屏样式修改 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java | 170 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 153 insertions(+), 17 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java index cdbe706..97d0ec5 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java @@ -1,19 +1,37 @@ package com.mes.job; import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.mes.common.config.Const; import com.mes.edgglasstask.entity.EdgGlassTaskInfo; import com.mes.edgglasstask.service.EdgGlassTaskInfoService; +import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO; import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; import com.mes.edgstoragecage.service.EdgStorageCageService; +import com.mes.engineering.entity.Engineering; +import com.mes.engineering.service.EngineeringService; +import com.mes.largenscreen.entity.DailyProductionVO; +import com.mes.largenscreen.entity.DateRequest; +import com.mes.largenscreen.entity.PieChartVO; +import com.mes.largenscreen.entity.RunTime; +import com.mes.largenscreen.service.LargenScreenService; +import com.mes.opctask.entity.EdgStorageDeviceTaskHistory; +import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService; +import com.mes.opctask.service.EdgStorageDeviceTaskService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; +import java.util.Date; import java.util.List; -import java.util.Map; /** * @Author : zhoush @@ -30,18 +48,44 @@ EdgStorageCageService edgStorageCageService; @Resource EdgGlassTaskInfoService edgGlassTaskInfoService; + @Resource + EdgStorageDeviceTaskService edgStorageDeviceTaskService; + @Resource + EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService; + @Resource + EngineeringService engineeringService; + @Resource + LargenScreenService largenScreenService; + + + private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task"; + + private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task"; @Scheduled(fixedDelay = 1000) - public void CacheGlassTasks() { - JSONObject jsonObject = new JSONObject(); - List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory(); - jsonObject.append("currentCutTerritory", currentCutTerritorys); - //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); - //鍗у缂撳瓨绗煎唴淇℃伅 - List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages(); - jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos); + public void CacheGlassOneTasks() { + CacheGlassTasksChild("cacheGlassOne", 1); + } - ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlass"); + @Scheduled(fixedDelay = 1000) + public void CacheGlassTwoTasks() { + CacheGlassTasksChild("cacheGlassTwo", 2); + } + + private void CacheGlassTasksChild(String webSocketName, int deviceId) { + JSONObject jsonObject = new JSONObject(); + //鍗у缂撳瓨绗煎唴淇℃伅 + List<EdgStorageCageVO> edgStorageCageVOS = edgStorageCageService.selectEdgStorageCagesByDeviceId(deviceId); + jsonObject.append("EdgStorageCageinfos", edgStorageCageVOS); + + //鑾峰彇姝e湪鏁村舰涓殑浠诲姟 + EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>() + .eq(EdgStorageDeviceTaskHistory::getDeviceId, deviceId) + .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW) + .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1")); + jsonObject.append("taskMessage", taskHistory); + + ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) { @@ -59,16 +103,27 @@ } @Scheduled(fixedDelay = 1000) - public void cacheGlassIsRun() { - JSONObject jsonObject = new JSONObject(); - //姝e湪杩涜鐨勪换鍔� - List<EdgGlassTaskInfo> taskCaches = edgGlassTaskInfoService.selectTaskCacheIsRun(); - jsonObject.append("taskCaches", taskCaches); - ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun"); + public void currentCutDrawingOneTask() { + currentCutDrawingTaskChild("currentCutDrawingOne", 1, 5); + } + + @Scheduled(fixedDelay = 1000) + public void currentCutDrawingTwoTask() { + currentCutDrawingTaskChild("currentCutDrawingTwo", 2, 6); + } + + public void currentCutDrawingTaskChild(String webSocketName, int deviceId, int stationCell) { + JSONObject jsonObject = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell); + ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName); 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"); } @@ -79,7 +134,6 @@ @Scheduled(fixedDelay = 1000) public void CacheGlassTaskss() { JSONObject jsonObject = new JSONObject(); - //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys); //纾ㄨ竟淇℃伅 List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo(); jsonObject.append("edgTasks", edgTasks); @@ -100,4 +154,86 @@ } } } + + @Scheduled(fixedDelay = 1000) + public void querySameDayProductionTask() { + JSONObject jsonObject = new JSONObject(); + ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreenProduction"); + if (sendwServer != null) { + List<DailyProductionVO> productionVO = largenScreenService.querySameDayProduction(new DateRequest()); + jsonObject.append("productionVO", productionVO); + for (WebSocketServer webserver : sendwServer) { + if (webserver != null) { + webserver.sendMessage(jsonObject.toString()); + List<String> messages = webserver.getMessages(); + if (!messages.isEmpty()) { + // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛� + webserver.clearMessages(); + } + } else { + log.info("largenScreenProduction is closed"); + } + } + } + } + + @Scheduled(fixedDelay = 500) + public void largenScreen() { + JSONObject jsonObject = new JSONObject(); + //纾ㄨ竟淇℃伅 + + ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen"); + if (sendwServer != null) { + Date startOfToday = new Date(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli()); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String formatted = sdf.format(startOfToday); + LocalDate date = LocalDate.parse(formatted); // formatted = "2025-05-23" + LocalDateTime start = date.atStartOfDay(); // 2025-05-23 00:00:00 + LocalDateTime end = date.plusDays(1).atStartOfDay(); + int edgOneCount = edgGlassTaskInfoService.count( + new LambdaQueryWrapper<EdgGlassTaskInfo>() + .lt(EdgGlassTaskInfo::getState, 2) + .eq(EdgGlassTaskInfo::getLine, 1) + .between(EdgGlassTaskInfo::getCreateTime, start, end) + ); + edgOneCount = edgOneCount >= 6 ? 6 : edgOneCount; + int edgTwoCount = edgGlassTaskInfoService.count( + new LambdaQueryWrapper<EdgGlassTaskInfo>() + .lt(EdgGlassTaskInfo::getState, 2) + .eq(EdgGlassTaskInfo::getLine, 2) + .between(EdgGlassTaskInfo::getCreateTime, start, end) + ); + edgTwoCount = edgTwoCount >= 6 ? 6 : edgTwoCount; + jsonObject.append("edgOneCount", edgOneCount); + jsonObject.append("edgTwoCount", edgTwoCount); + List<Engineering> engineeringOne = engineeringService.list( + new LambdaQueryWrapper<Engineering>() + .eq(Engineering::getStationCell, 5) + .eq(Engineering::getState, 0) + ); + List<Engineering> engineeringTow = engineeringService.list( + new LambdaQueryWrapper<Engineering>() + .eq(Engineering::getStationCell, 6) + .eq(Engineering::getState, 0) + ); + jsonObject.append("engineeringOne", engineeringOne); + jsonObject.append("engineeringTwo", engineeringTow); + List<PieChartVO> pieChartVOS = edgStorageCageDetailsService.queryPieChart(); + jsonObject.append("pieChartVOS", pieChartVOS); + List<RunTime> loadRunTimes = edgStorageDeviceTaskHistoryService.queryRunTimes(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); + jsonObject.append("loadRunTimes", loadRunTimes); + 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