package com.mes.job; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.mes.rawglassdetails.entity.RawGlassStorageDetails; import com.mes.rawglassdetails.service.RawGlassStorageDetailsService; import com.mes.rawglassstation.service.RawGlassStorageStationService; import com.mes.rawglasstask.entity.RawGlassStorageTask; import com.mes.rawglasstask.service.RawGlassStorageTaskService; 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.List; import java.util.stream.Collectors; /** * @author wangfei */ @Slf4j @Component public class RawGlassPushMessage { @Resource private RawGlassStorageStationService rawGlassStorageStationService; @Resource private RawGlassStorageTaskService rawGlassStorageTaskService; @Resource private RawGlassStorageDetailsService rawGlassStorageDetailsService; @Scheduled(fixedDelay = 2000) public void sendRawGlassMessage() { log.info("发送任务信息和架子信息"); JSONObject jsonObject = new JSONObject(); List rawStationDetailsList = rawGlassStorageStationService.listRawGlassDetails(); List tasks = rawGlassStorageTaskService.listRawGlassTask(); jsonObject.append("rawStationDetailsList", rawStationDetailsList); jsonObject.append("tasks", tasks); // log.info("获取到的工位详情及任务信息为:{}", jsonObject); List sendwServer = WebSocketServer.sessionMap.get("rawGlass"); if (CollectionUtil.isNotEmpty(sendwServer)) { sendwServer.stream().forEach(e->{ e.sendMessage(String.valueOf(jsonObject)); }); } } /** todo:入库任务:吊装位有玻璃,先去工位表查询空格子,生成入库任务从吊装位到目标格子 */ // @Scheduled(fixedDelay = 1000) // public void sendRawGlassMessage() { //// List rawGlassStorageDetailsList = rawGlassStorageDetailsService.List(new RawGlassStorageDetails()) // Wrapper queryWrapper = null; // List detailsList = rawGlassStorageDetailsService.list(null); // queryWrapper.eq(RawGlassStorageDetails::getState, 100); // if(detailsList.size() >0){ // //查找格子表details空格子 // List slotIds = detailsList.stream() // .map(RawGlassStorageDetails::getSlotId) // .collect(Collectors.toList()); // list(new LambdaQueryWrapper() // .in(CollectionUtil.isNotEmpty(request.getState()), RawGlassStorageTask::getState, request.getState()) // .in(CollectionUtil.isNotEmpty(request.getSlotId()), RawGlassStorageTask::getSlotId, request.getSlotId()) // .orderByDesc(RawGlassStorageTask::getCreateTime)); // }if(slotIds.size()>0){ // //生成入库任务 // } // // } /** todo:出库任务:1、点出库,立马生成出片任务 2、点出库修改工位详情内的状态为待出库,定时任务扫描生成出库任务 */ /** todo:原片调度:1、查询工程原片表,按照顺序将原片放入上片1号位,后续原片放上片2号位,出现尺寸替换,判断原上片位是否有玻璃,有 先出后进,无 直接进片 */ }