| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.github.xingshuangs.iot.protocol.modbus.service.ModbusTcp; |
| | | import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer; |
| | | import com.kangaroohy.milo.model.ReadWriteEntity; |
| | | import com.kangaroohy.milo.service.MiloService; |
| | | import com.mes.bigstoragecagetask.entity.BigStorageCageTask; |
| | | import com.mes.bigstoragecagetask.entity.BigStorageTaskVO; |
| | |
| | | import com.mes.s7.entity.S7DataZKDLPOne; |
| | | import com.mes.s7.entity.S7DataZKDLPTwo; |
| | | import com.mes.s7.entity.S7DataZKExtra; |
| | | import com.mes.tools.WebSocketServer; |
| | | import com.mes.tools.WebSocketUtils; |
| | | import com.mes.utils.RedisUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang.StringUtils; |
| | |
| | | ModbusTcp CMJ2ModbusTcp; |
| | | |
| | | private Integer offset = 40001; |
| | | @Resource |
| | | private WebSocketUtils webSocketUtils; |
| | | |
| | | @Resource |
| | | RedisUtil redisUtil; |
| | |
| | | } catch (Exception e) { |
| | | log.error("opc存在异常", e); |
| | | } |
| | | |
| | | List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(websocketName); |
| | | if (CollectionUtil.isNotEmpty(sendwServer)) { |
| | | for (WebSocketServer socketServer : sendwServer) { |
| | | if (socketServer != null && socketServer.session.isOpen()) { |
| | | socketServer.sendMessage(jsonObject.toString()); |
| | | } |
| | | } |
| | | } |
| | | webSocketUtils.sendToWeb(websocketName, jsonObject); |
| | | } |
| | | |
| | | @Scheduled(fixedDelay = 1000) |
| | |
| | | try { |
| | | //查询使用数据源1查询数据 |
| | | queryDataSource1(jsonObject); |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("hollowGlassMessage"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | if (webserver != null) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | List<String> messages = webserver.getMessages(); |
| | | if (!messages.isEmpty()) { |
| | | // // 将最后一个消息转换为整数类型的列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } else { |
| | | log.info("Home is closed"); |
| | | } |
| | | } |
| | | } |
| | | webSocketUtils.sendToWeb("hollowGlassMessage", jsonObject); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | jsonObject.append("bigStorageCageDetailsFeedTask", inTaskList); |
| | | } catch (Exception e) { |
| | | //todo:不做任务处理 |
| | | log.info("中空进片任务推送数据异常:{}", e.getMessage()); |
| | | } |
| | | try { |
| | | //进片联机 |
| | |
| | | jsonObject.append("freeThreeRequestEntity", s7DataZKExtra.getIsFree()); |
| | | } catch (Exception e) { |
| | | //todo:不做任务处理 |
| | | log.info("中空状态推送数据异常:{}", e.getMessage()); |
| | | } |
| | | try { |
| | | //出片任务数据 |
| | | List<BigStorageCageTask> outTaskList = new ArrayList<>(); |
| | | for (int i = 0; i < 6; i++) { |
| | | |
| | | //出片任务数据 |
| | | List<BigStorageCageTask> outTaskList = new ArrayList<>(); |
| | | for (int i = 0; i < 6; i++) { |
| | | |
| | | BigStorageCageTask bigStorageCageTask = new BigStorageCageTask(); |
| | | String glassId = ""; |
| | | Integer startSlot = 0; |
| | | Integer targetSlot = 0; |
| | | Integer taskState = 0; |
| | | switch (i) { |
| | | case 0: |
| | | glassId = s7DataZKDLPTwo.getId1(); |
| | | startSlot = s7DataZKDLPTwo.getFrom1(); |
| | | targetSlot = s7DataZKDLPTwo.getTo1(); |
| | | taskState = s7DataZKDLPTwo.getState1(); |
| | | ; |
| | | break; |
| | | case 1: |
| | | glassId = s7DataZKDLPTwo.getId2(); |
| | | startSlot = s7DataZKDLPTwo.getFrom2(); |
| | | targetSlot = s7DataZKDLPTwo.getTo2(); |
| | | taskState = s7DataZKDLPTwo.getState2(); |
| | | break; |
| | | case 2: |
| | | glassId = s7DataZKDLPTwo.getId3(); |
| | | startSlot = s7DataZKDLPTwo.getFrom3(); |
| | | targetSlot = s7DataZKDLPTwo.getTo3(); |
| | | taskState = s7DataZKDLPTwo.getState3(); |
| | | break; |
| | | case 3: |
| | | glassId = s7DataZKDLPTwo.getId4(); |
| | | startSlot = s7DataZKDLPTwo.getFrom4(); |
| | | targetSlot = s7DataZKDLPTwo.getTo4(); |
| | | taskState = s7DataZKDLPTwo.getState4(); |
| | | break; |
| | | case 4: |
| | | glassId = s7DataZKDLPTwo.getId5(); |
| | | startSlot = s7DataZKDLPTwo.getFrom5(); |
| | | targetSlot = s7DataZKDLPTwo.getTo5(); |
| | | taskState = s7DataZKDLPTwo.getState5(); |
| | | break; |
| | | case 5: |
| | | glassId = s7DataZKDLPTwo.getId6(); |
| | | startSlot = s7DataZKDLPTwo.getFrom6(); |
| | | targetSlot = s7DataZKDLPTwo.getTo6(); |
| | | taskState = s7DataZKDLPTwo.getState6(); |
| | | break; |
| | | BigStorageCageTask bigStorageCageTask = new BigStorageCageTask(); |
| | | String glassId = ""; |
| | | Integer startSlot = 0; |
| | | Integer targetSlot = 0; |
| | | Integer taskState = 0; |
| | | switch (i) { |
| | | case 0: |
| | | glassId = s7DataZKDLPTwo.getId1(); |
| | | startSlot = s7DataZKDLPTwo.getFrom1(); |
| | | targetSlot = s7DataZKDLPTwo.getTo1(); |
| | | taskState = s7DataZKDLPTwo.getState1(); |
| | | ; |
| | | break; |
| | | case 1: |
| | | glassId = s7DataZKDLPTwo.getId2(); |
| | | startSlot = s7DataZKDLPTwo.getFrom2(); |
| | | targetSlot = s7DataZKDLPTwo.getTo2(); |
| | | taskState = s7DataZKDLPTwo.getState2(); |
| | | break; |
| | | case 2: |
| | | glassId = s7DataZKDLPTwo.getId3(); |
| | | startSlot = s7DataZKDLPTwo.getFrom3(); |
| | | targetSlot = s7DataZKDLPTwo.getTo3(); |
| | | taskState = s7DataZKDLPTwo.getState3(); |
| | | break; |
| | | case 3: |
| | | glassId = s7DataZKDLPTwo.getId4(); |
| | | startSlot = s7DataZKDLPTwo.getFrom4(); |
| | | targetSlot = s7DataZKDLPTwo.getTo4(); |
| | | taskState = s7DataZKDLPTwo.getState4(); |
| | | break; |
| | | case 4: |
| | | glassId = s7DataZKDLPTwo.getId5(); |
| | | startSlot = s7DataZKDLPTwo.getFrom5(); |
| | | targetSlot = s7DataZKDLPTwo.getTo5(); |
| | | taskState = s7DataZKDLPTwo.getState5(); |
| | | break; |
| | | case 5: |
| | | glassId = s7DataZKDLPTwo.getId6(); |
| | | startSlot = s7DataZKDLPTwo.getFrom6(); |
| | | targetSlot = s7DataZKDLPTwo.getTo6(); |
| | | taskState = s7DataZKDLPTwo.getState6(); |
| | | break; |
| | | } |
| | | if (StringUtils.isNotEmpty(glassId)) { |
| | | bigStorageCageTask.setGlassId(glassId); |
| | | bigStorageCageTask.setStartSlot(startSlot); |
| | | bigStorageCageTask.setTargetSlot(targetSlot); |
| | | bigStorageCageTask.setTaskState(taskState); |
| | | outTaskList.add(bigStorageCageTask); |
| | | } |
| | | } |
| | | if (StringUtils.isNotEmpty(glassId)) { |
| | | bigStorageCageTask.setGlassId(glassId); |
| | | bigStorageCageTask.setStartSlot(startSlot); |
| | | bigStorageCageTask.setTargetSlot(targetSlot); |
| | | bigStorageCageTask.setTaskState(taskState); |
| | | outTaskList.add(bigStorageCageTask); |
| | | } |
| | | jsonObject.append("bigStorageCageDetailsOutTask", outTaskList); |
| | | }catch (Exception e){ |
| | | log.info("中空出片任务推送数据异常:{}", e.getMessage()); |
| | | } |
| | | jsonObject.append("bigStorageCageDetailsOutTask", outTaskList); |
| | | |
| | | //调度开关 |
| | | boolean dispatchHollowSwitch = false; |
| | | if (redisUtil.getCacheObject("dispatchHollowSwitch") == null) { |
| | |
| | | dispatchHollowSwitch = redisUtil.getCacheObject("dispatchHollowSwitch"); |
| | | } |
| | | jsonObject.append("dispatchHollowSwitch", dispatchHollowSwitch); |
| | | //调度开关 |
| | | boolean priorityHollowSwitch = false; |
| | | if (redisUtil.getCacheObject("priorityHollowSwitch") == null) { |
| | | redisUtil.setCacheObject("priorityHollowSwitch", false); |
| | | } else { |
| | | priorityHollowSwitch = redisUtil.getCacheObject("priorityHollowSwitch"); |
| | | } |
| | | jsonObject.append("priorityHollowSwitch", priorityHollowSwitch); |
| | | |
| | | //理片笼使用情况 |
| | | List<Map<String, Object>> bigStorageCageUsage = hollowBigStorageCageService.selectBigStorageCageUsage(); |
| | |
| | | jsonObject.append("pieChartVOS", pieChartVOS); |
| | | List<RunTime> hollowRunTimes = hollowBigStorageCageHistoryTaskService.queryRunTimes(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); |
| | | jsonObject.append("hollowRunTimes", hollowRunTimes); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | | if (webserver != null) { |
| | | webserver.sendMessage(jsonObject.toString()); |
| | | List<String> messages = webserver.getMessages(); |
| | | if (!messages.isEmpty()) { |
| | | // // 将最后一个消息转换为整数类型的列表 |
| | | webserver.clearMessages(); |
| | | } |
| | | } else { |
| | | log.info("largenScreen is closed"); |
| | | } |
| | | } |
| | | } |
| | | webSocketUtils.sendToWeb("largenScreen", jsonObject); |
| | | } |
| | | } |