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.CutDrawingVO;
|
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.opctask.entity.EdgStorageDeviceTask;
|
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.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.concurrent.CompletionStage;
|
|
/**
|
* @Author : zhoush
|
* @Date: 2024/12/4 9:41
|
* @Description:
|
*/
|
@Component
|
@Slf4j
|
public class PushMessageToIndex {
|
|
@Resource
|
EdgStorageCageDetailsService edgStorageCageDetailsService;
|
@Resource
|
EdgStorageCageService edgStorageCageService;
|
@Resource
|
EdgGlassTaskInfoService edgGlassTaskInfoService;
|
@Resource
|
EdgStorageDeviceTaskService edgStorageDeviceTaskService;
|
@Resource
|
EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
|
@Resource
|
EngineeringService engineeringService;
|
|
|
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 CacheGlassOneTasks() {
|
CacheGlassTasksChild("cacheGlassOne", 1);
|
}
|
|
@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);
|
|
//获取正在整形中的任务
|
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) {
|
webserver.sendMessage(jsonObject.toString());
|
List<String> messages = webserver.getMessages();
|
if (!messages.isEmpty()) {
|
// // 将最后一个消息转换为整数类型的列表
|
webserver.clearMessages();
|
}
|
} else {
|
log.info("Home is closed");
|
}
|
}
|
}
|
}
|
|
@Scheduled(fixedDelay = 1000)
|
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 = new JSONObject();
|
List<CutDrawingVO> currentCutDrawings = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
|
jsonObject.append("currentCutTerritory", currentCutDrawings);
|
|
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");
|
}
|
}
|
}
|
}
|
|
@Scheduled(fixedDelay = 1000)
|
public void CacheGlassTaskss() {
|
JSONObject jsonObject = new JSONObject();
|
//磨边信息
|
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");
|
}
|
}
|
}
|
}
|
|
@Scheduled(fixedDelay = 1000)
|
public void largenScreen() {
|
JSONObject jsonObject = new JSONObject();
|
//磨边信息
|
List<EdgStorageDeviceTaskHistory> edgOneTasks = edgStorageDeviceTaskHistoryService.list(
|
new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
|
.eq(EdgStorageDeviceTaskHistory::getDeviceId, 1)
|
.eq(EdgStorageDeviceTaskHistory::getTaskState, Const.EDG_GLASS_BEFORE)
|
);
|
List<EdgStorageDeviceTaskHistory> edgTwoTasks = edgStorageDeviceTaskHistoryService.list(
|
new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
|
.eq(EdgStorageDeviceTaskHistory::getDeviceId, 1)
|
.eq(EdgStorageDeviceTaskHistory::getTaskState, Const.EDG_GLASS_BEFORE)
|
);
|
jsonObject.append("edgOneTasks", edgOneTasks);
|
jsonObject.append("edgTwoTasks", edgTwoTasks);
|
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);
|
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");
|
}
|
}
|
}
|
}
|
}
|