| | |
| | | */ |
| | | public synchronized void initRealtimeBasMap() { |
| | | for (int i = 1; i <= 10; i++) {//总共四层楼 |
| | | Object data = redisUtil.get("realtimeBasMap_" + i); |
| | | Object data = redisUtil.get(RedisKeyType.MAP.key + i); |
| | | if (data == null) {//redis地图数据为空,从数据库中获取 |
| | | BasMap basMap = basMapService.selectLatestMap(i); |
| | | if (basMap == null) { |
| | |
| | | } |
| | | |
| | | //将数据库地图数据存入redis |
| | | redisUtil.set("realtimeBasMap_" + i, JSON.toJSONString(basMap)); |
| | | redisUtil.set(RedisKeyType.MAP.key + i, JSON.toJSONString(basMap)); |
| | | } |
| | | } |
| | | } |
| | |
| | | public synchronized void restartTaskFromRedis() { |
| | | HashMap<Object, Object> map = redisUtil.getRedis(); |
| | | for (Object key : map.keySet()) { |
| | | if (key.toString().contains("lift_wrk_no_")) {//提升机任务 |
| | | if (key.toString().contains(RedisKeyType.LIFT.key)) {//提升机任务 |
| | | LiftRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), LiftRedisCommand.class); |
| | | if (redisCommand == null) { |
| | | continue; |
| | |
| | | liftProtocol.setTaskNo(redisCommand.getWrkNo());//将提升机线程分配任务号 |
| | | liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);//工作状态 |
| | | |
| | | }else if(key.toString().contains("shuttle_wrk_no_")){//四向穿梭车任务 |
| | | }else if(key.toString().contains(RedisKeyType.SHUTTLE.key)){//四向穿梭车任务 |
| | | ShuttleRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), ShuttleRedisCommand.class); |
| | | if (redisCommand == null) { |
| | | continue; |
| | |
| | | ledCommand.setStaNo(wrkMast.getStaNo()); |
| | | if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); |
| | | wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getSpecs()))); |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", wrkDetl.getBarcode()).eq("matnr", wrkDetl.getMatnr())); |
| | | Double anfme = 0D; |
| | | if (locDetl != null) { |
| | | anfme = locDetl.getAnfme(); |
| | | } |
| | | ledCommand.getMatDtos() |
| | | .add(new MatDto(wrkDetl.getMatnr() |
| | | , wrkDetl.getMaktx() |
| | | , wrkDetl.getAnfme() |
| | | , anfme |
| | | , wrkDetl.getSpecs() |
| | | , wrkDetl.getSuppCode())); |
| | | } |
| | | } |
| | | commands.add(ledCommand); |
| | | } |
| | |
| | | * 其他 ===>> LED显示器复位,显示默认信息 |
| | | */ |
| | | public void ledReset() { |
| | | for (LedSlave led : slaveProperties.getLed()) { |
| | | |
| | | // 获取输送线plc线程 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); |
| | | // 命令集合 |
| | | boolean reset = true; |
| | | for (Integer staNo : led.getStaArr()) { |
| | | // 获取叉车站点 |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } |
| | | if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) { |
| | | reset = false; |
| | | break; |
| | | } |
| | | } |
| | | // 获取led线程 |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); |
| | | // led显示默认内容 |
| | | if (reset) { |
| | | ledThread.setLedMk(true); |
| | | if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) { |
| | | News.error(" - {}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | } else { |
| | | |
| | | } |
| | | } |
| | | } |
| | | // for (LedSlave led : slaveProperties.getLed()) { |
| | | // |
| | | // // 获取输送线plc线程 |
| | | // DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); |
| | | // // 命令集合 |
| | | // boolean reset = true; |
| | | // for (Integer staNo : led.getStaArr()) { |
| | | // // 获取叉车站点 |
| | | // StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | // if (staProtocol == null) { |
| | | // continue; |
| | | // } |
| | | // if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) { |
| | | // reset = false; |
| | | // break; |
| | | // } |
| | | // } |
| | | // // 获取led线程 |
| | | // LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); |
| | | // // led显示默认内容 |
| | | // if (reset && !ledThread.isLedMk()) { |
| | | // ledThread.setLedMk(true); |
| | | // if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) { |
| | | // News.error(" - {}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | // } else { |
| | | // News.error("{}号LED命令下发成功!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | // ledThread.setLedMk(false); |
| | | // } |
| | | // } |
| | | // } |
| | | for (LedSlave led : slaveProperties.getLed()) { |
| | | // 获取输送线plc线程 |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); |
| | |
| | | // 获取led线程 |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); |
| | | // led显示默认内容 |
| | | if (reset) { |
| | | ledThread.setLedMk(true); |
| | | if (reset && !ledThread.isLedMk()) { |
| | | ledThread.setLedMk(false); |
| | | if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) { |
| | | News.error("{}号LED命令下发失败!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | }else { |
| | | // News.error("{}号LED命令下发成功!!![ip:{}] [port:{}]", led.getId(), led.getIp(), led.getPort()); |
| | | MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>())); |
| | | ledThread.setLedMk(false); |
| | | } |
| | | } |
| | | } |