| | |
| | | import com.mes.opctask.entity.EdgStorageDeviceTaskHistory; |
| | | import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService; |
| | | import com.mes.opctask.service.EdgStorageDeviceTaskService; |
| | | import com.mes.tools.WebSocketServer; |
| | | import com.mes.tools.WebSocketUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | 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; |
| | | |
| | |
| | | @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"; |
| | | @Resource |
| | | private WebSocketUtils webSocketUtils; |
| | | |
| | | @Scheduled(fixedDelay = 1000) |
| | | public void CacheGlassOneTasks() { |
| | |
| | | .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) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | List<String> messages = webserver.getMessages(); |
| | | if (!messages.isEmpty()) { |
| | | // // 将最后一个消息转换为整数类型的列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } else { |
| | | log.info("Home is closed"); |
| | | } |
| | | } |
| | | } |
| | | webSocketUtils.sendToWeb(webSocketName, jsonObject); |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 1000) |
| | |
| | | |
| | | 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"); |
| | | } |
| | | } |
| | | } |
| | | webSocketUtils.sendToWeb(webSocketName, jsonObject); |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 1000) |
| | |
| | | //磨边信息 |
| | | List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo(); |
| | | jsonObject.append("edgTasks", edgTasks); |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("edgTasks"); |
| | | 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("edgTasks is closed"); |
| | | } |
| | | } |
| | | } |
| | | webSocketUtils.sendToWeb("edgTasks", jsonObject); |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 5000) |
| | | 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"); |
| | | } |
| | | } |
| | | } |
| | | List<DailyProductionVO> productionVO = largenScreenService.querySameDayProduction(new DateRequest()); |
| | | jsonObject.append("productionVO", productionVO); |
| | | webSocketUtils.sendToWeb("largenScreenProduction", jsonObject); |
| | | |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 5000) |
| | | public void largenScreen() { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | //磨边信息 |
| | | 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); |
| | | |
| | | 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"); |
| | | } |
| | | } |
| | | } |
| | | webSocketUtils.sendToWeb("largenScreen", jsonObject); |
| | | |
| | | } |
| | | } |