package com.mes.job; import cn.hutool.json.JSONObject; import com.mes.order.entity.Orders; import com.mes.order.service.OrdersService; import com.mes.pp.entity.OptimizeProject; import com.mes.pp.entity.request.AwaitingRepair; import com.mes.pp.entity.request.Reportingdamage; import com.mes.pp.service.OptimizeProjectService; import com.mes.pp.service.ReportingWorkService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; /** * @author SNG-010 */ @Component @Slf4j public class PlcScreenTask { @Autowired private ReportingWorkService reportingWorkService; @Autowired private OptimizeProjectService optimizeProjectService; @Autowired private OrdersService ordersService; /** * fixedRate : 上一个调用开始后再次调用的延时(不用等待上一次调用完成) * fixedDelay : 上一个调用结束后再次调用的延时 */ @Scheduled(fixedDelay = 2000) public void screenHome() { JSONObject jsonObject = new JSONObject(); Reportingdamage reportingdamage = new Reportingdamage(); reportingdamage.setReportingWorkTime("2024-05-11"); //扇形图各设备的加工破损数量 List device = reportingWorkService.selectDamage(reportingdamage); jsonObject.append("device", device); //获取次破未补信息 List awaitingRepairs = reportingWorkService.selectAwaitingRepair(); jsonObject.append("awaitingRepairs", awaitingRepairs); //获取正在进行的工程 List optimizeProjects = optimizeProjectService.getDoingTask(); jsonObject.append("DoingTask", optimizeProjects); //获取当前订单 List orders = ordersService.selectOrders(); jsonObject.append("orders", orders); /*现场规划图显示*/ ArrayList sendwServer = WebSocketServer.sessionMap.get("screen"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) { webserver.sendMessage(jsonObject.toString()); } else { log.info("Home is closed"); } } } } }