package com.mes.job;
|
|
import cn.hutool.json.JSONObject;
|
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.opctask.entity.EdgStorageDeviceTask;
|
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;
|
|
/**
|
* @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;
|
|
|
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(EDG_STORAGE_DEVICE_ONE_TASK, "cacheGlassOne", 1, 5);
|
}
|
|
@Scheduled(fixedDelay = 1000)
|
public void CacheGlassTwoTasks() {
|
CacheGlassTasksChild(EDG_STORAGE_DEVICE_TWO_TASK, "cacheGlassTwo", 2, 6);
|
}
|
|
private void CacheGlassTasksChild(String tableName, String webSocketName, int deviceId, int stationCell) {
|
JSONObject jsonObject = new JSONObject();
|
// List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
|
// jsonObject.append("currentCutTerritory", currentCutTerritorys);
|
//卧室缓存笼内信息
|
List<EdgStorageCageVO> edgStorageCageVOS = edgStorageCageService.selectEdgStorageCagesByDeviceId(deviceId);
|
jsonObject.append("EdgStorageCageinfos", edgStorageCageVOS);
|
|
EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
|
jsonObject.append("taskMessage", task);
|
|
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");
|
}
|
}
|
}
|
}
|
}
|