package com.mes.job; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.mes.common.config.Const; import com.mes.common.utils.RedisUtil; import com.mes.downglassinfo.entity.DownGlassInfo; import com.mes.downglassinfo.entity.request.DownGlassInfoRequest; import com.mes.downglassinfo.service.DownGlassInfoService; import com.mes.downstorage.service.DownStorageCageService; import com.mes.downworkstation.entity.DownWorkstation; import com.mes.downworkstation.service.DownWorkstationService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; 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; import java.util.Map; import java.util.stream.Collectors; @Slf4j @Component public class Downpush { @Autowired private DownWorkstationService downWorkstationService; @Autowired private DownStorageCageService downStorageCageService; @Autowired private DownGlassInfoService downGlassInfoService; @Autowired private RedisUtil redisUtil; @Scheduled(fixedDelay = 2000) public void sendDownWorkstations() { log.info("发送工位玻璃信息"); JSONObject jsonObject = new JSONObject(); List data = downWorkstationService.getoneDownWorkstations(1, 6); jsonObject.append("params", data); log.info(jsonObject.toString()); ArrayList sendwServer = WebSocketServer.sessionMap.get("unloadglass"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null && webserver.session.isOpen()) { log.info("已发送"); webserver.sendMessage(jsonObject.toString()); } } } } @Scheduled(fixedDelay = 1000) public void sendGlassInfoData() { log.info("发送工位显示图信息1"); JSONObject jsonObject2 = new JSONObject(); List> glassinfodata = downWorkstationService.getTotalGlassDimensionsByWorkstation(1, 3); jsonObject2.append("glassinfo", glassinfodata); log.info(jsonObject2.toString()); ArrayList sendwServer2 = WebSocketServer.sessionMap.get("unloadglass2"); if (sendwServer2 != null) { for (WebSocketServer webserver : sendwServer2) { if (webserver != null && webserver.session.isOpen()) { webserver.sendMessage(jsonObject2.toString()); } } } } @Scheduled(fixedDelay = 1000) public void sendGlassInfoData2() { log.info("发送工位显示图信息2"); JSONObject jsonObject3 = new JSONObject(); List> glassinfodata2 = downWorkstationService.getTotalGlassDimensionsByWorkstation(4, 6); jsonObject3.append("glassinfo2", glassinfodata2); log.info(jsonObject3.toString()); ArrayList sendwServer3 = WebSocketServer.sessionMap.get("unloadglass3"); if (sendwServer3 != null) { for (WebSocketServer webserver : sendwServer3) { if (webserver != null && webserver.session.isOpen()) { webserver.sendMessage(jsonObject3.toString()); } } } } @Scheduled(fixedDelay = 2000) public void sendDownStorageCages() { log.info("发送缓存玻璃信息"); JSONObject jsonObject4 = new JSONObject(); List> list = downStorageCageService.selectDownStorageCages(); jsonObject4.append("params2", list); log.info(jsonObject4.toString()); ArrayList sendwServer4 = WebSocketServer.sessionMap.get("downcache"); if (sendwServer4 != null) { for (WebSocketServer webserver : sendwServer4) { if (webserver != null && webserver.session.isOpen()) { webserver.sendMessage(jsonObject4.toString()); } } } } @Scheduled(fixedDelay = 2000) public void sendDownGlassInfo() { DownGlassInfoRequest request = redisUtil.getCacheObject("downGlassRequest"); if (null == request) { request = new DownGlassInfoRequest(); } log.info("发送当前正在执行工程已落架的玻璃信息"); LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .between(null != request.getBeginDate(), DownGlassInfo::getGmtCreate, request.getBeginDate(), request.getEndDate()) .eq(StringUtils.isNotBlank(request.getEngineerId()), DownGlassInfo::getEngineerId, request.getEngineerId()); if (null == request.getWorkStationId() || 0 == request.getWorkStationId()) { wrapper.in(DownGlassInfo::getWorkStationId, Const.WORK_STATION_ALL); } else { wrapper.eq(DownGlassInfo::getWorkStationId, request.getWorkStationId()); } List downGlassInfos = downGlassInfoService.list(wrapper); Map> listMap = downGlassInfos.stream().collect(Collectors.groupingBy(DownGlassInfo::getWorkStationId)); List engineerIdListTemp = downGlassInfoService.listObjs(new QueryWrapper().select("distinct engineer_id")); List engineerIdList = engineerIdListTemp.stream().map(String::valueOf).collect(Collectors.toList()); JSONObject jsonObject4 = new JSONObject(); jsonObject4.append("downGlassInfos", listMap); jsonObject4.append("engineerIdList", engineerIdList); ArrayList sendwServer4 = WebSocketServer.sessionMap.get("unloadglass"); if (sendwServer4 != null) { for (WebSocketServer webserver : sendwServer4) { if (webserver != null && webserver.session.isOpen()) { webserver.sendMessage(jsonObject4.toString()); } } } } @Scheduled(fixedDelay = 1000) public void isRun() { JSONObject jsonObject = new JSONObject(); //正在进行的任务 List downWorkstation = downWorkstationService.getoneDownWorkstations(1, 6); jsonObject.append("downWorkstation", downWorkstation); ArrayList sendwServer = WebSocketServer.sessionMap.get("unLoadGlassIsRun"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) { webserver.sendMessage(jsonObject.toString()); } else { log.info("unLoadGlassIsRun is closed"); } } } } }