hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/EdgStorageCageVO.java
New file @@ -0,0 +1,18 @@ package com.mes.edgstoragecage.entity.vo; import com.mes.edgstoragecage.entity.EdgStorageCage; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import lombok.Data; import java.util.List; /** * @Author : zhoush * @Date: 2024/12/18 20:00 * @Description: */ @Data public class EdgStorageCageVO extends EdgStorageCage { List<EdgStorageCageDetails> details; } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
@@ -3,6 +3,7 @@ import com.github.yulichang.base.MPJBaseService; import com.mes.edgstoragecage.entity.EdgStorageCage; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO; import java.util.List; import java.util.Map; @@ -25,21 +26,13 @@ */ EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag); List<EdgStorageCage> selectCacheEmpty(); /** * 查询笼内出片顺序详情 * * 按照设备号返回对应的笼内详情数据 * @param deviceId * @return */ List<Map<String, Object>> selectCacheOut(); List<EdgStorageCageVO> selectEdgStorageCagesByDeviceId(int deviceId); /** * 查询笼内详情 * * @return */ List<Map<String, Object>> selectEdgStorageCages(); /** * 修改理片笼信息 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -1,6 +1,7 @@ package com.mes.edgstoragecage.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -9,6 +10,7 @@ import com.mes.damage.service.DamageService; import com.mes.edgstoragecage.entity.EdgStorageCage; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO; import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper; import com.mes.edgstoragecage.mapper.EdgStorageCageMapper; import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; @@ -64,62 +66,20 @@ } /** * 查询笼内空格 * 按照设备号返回对应的笼内详情数据 * * @return */ @Override public List<EdgStorageCage> selectCacheEmpty() { return baseMapper.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>() .selectAll(EdgStorageCage.class) .leftJoin(EdgStorageCageDetails.class, on -> on .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot) .eq(EdgStorageCageDetails::getState, "100")) .isNull(EdgStorageCageDetails::getSlot) .last("order by abs(t.slot - 4) asc") ); public List<EdgStorageCageVO> selectEdgStorageCagesByDeviceId(int deviceId) { List<EdgStorageCageVO> storageCageVOS = this.selectJoinList(EdgStorageCageVO.class, new MPJLambdaWrapper<EdgStorageCage>().leftJoin(EdgStorageCageDetails.class, on -> on .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId) .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot) .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)) .eq(EdgStorageCage::getDeviceId, deviceId)); return storageCageVOS; } /** * 查询笼内出片任务 按钢化版图号+版图内序号 * * @return */ @Override public List<Map<String, Object>> selectCacheOut() { return upPattenUsageMapper.selectJoinMaps(JoinWrappers.lambda(UpPattenUsage.class).selectAll(UpPattenUsage.class) .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getGlassId) .leftJoin(EdgStorageCageDetails.class, on -> on .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId) .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)) .isNull(EdgStorageCageDetails::getSlot) ); // return upPattenUsageMapper.selectJoinMaps(new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class) // .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") // .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") // .isNotNull("escd.slot") // .orderByAsc("escd.tempering_layout_id","escd.tempering_feed_sequence") // ); } /** * 理片缓存详情 * * @return */ @Override public List<Map<String, Object>> selectEdgStorageCages() { return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class) .selectAll(EdgStorageCage.class) .selectAs(EdgStorageCageDetails::getId, "esdId") .select(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getId) .leftJoin(EdgStorageCageDetails.class, on -> on .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId) .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN) .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)) ); } /** * 修改理片笼信息 功能:对笼内栅格玻璃 【启用/禁用】 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -3,8 +3,11 @@ 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; @@ -30,18 +33,36 @@ 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 CacheGlassTasks() { JSONObject jsonObject = new JSONObject(); List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory(); jsonObject.append("currentCutTerritory", currentCutTerritorys); //log.info("本次识别版图{},++++{}",engineerId,currentCutTerritorys); //卧室缓存笼内信息 List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages(); jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos); public void CacheGlassOneTasks() { CacheGlassTasksChild(EDG_STORAGE_DEVICE_ONE_TASK, "cacheGlassOne", 1, 5); } ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlass"); @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) { @@ -59,27 +80,8 @@ } @Scheduled(fixedDelay = 1000) public void cacheGlassIsRun() { JSONObject jsonObject = new JSONObject(); //正在进行的任务 List<EdgGlassTaskInfo> taskCaches = edgGlassTaskInfoService.selectTaskCacheIsRun(); jsonObject.append("taskCaches", taskCaches); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { if (webserver != null) { webserver.sendMessage(jsonObject.toString()); } else { log.info("Home is closed"); } } } } @Scheduled(fixedDelay = 1000) public void CacheGlassTaskss() { JSONObject jsonObject = new JSONObject(); //log.info("本次识别版图{},++++{}",engineerId,currentCutTerritorys); //磨边信息 List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo(); jsonObject.append("edgTasks", edgTasks);