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.time.LocalDate; import java.time.format.DateTimeFormatter; 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 = 10000) public void screenHome() { JSONObject jsonObject = new JSONObject(); Reportingdamage reportingdamage = new Reportingdamage(); //reportingdamage.setReportingWorkTime("2024-05-11"); // 获取当前日期 LocalDate today = LocalDate.now(); // 计算最近七天的开始日期 LocalDate startOfPeriod = today.minusDays(6); // 7天的范围包括今天,所以减去6天 // 最近七天的结束日期就是今天 LocalDate endOfPeriod = today; // 格式化日期为字符串 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String startOfPeriodStr = startOfPeriod.format(formatter); String endOfPeriodStr = endOfPeriod.format(formatter); // 设置为最近七天的时间范围 reportingdamage.setReportingWorkTime("2024-05-11" + " to " + endOfPeriodStr); //reportingdamage.setReportingWorkTime(startOfPeriodStr + " to " + endOfPeriodStr); //扇形图各设备的加工破损数量 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"); } } } } }