| | |
| | | wrkMast.setCrnEndTime(new Date()); |
| | | if (wrkMastMapper.updateById(wrkMast) != 0) { |
| | | // 复位堆垛机 |
| | | log.error("出库任务完成下发堆垛机复位", wrkMast.getWrkNo()); |
| | | log.error("出库任务完成下发堆垛机复位,{}", wrkMast.getWrkNo()); |
| | | crnThread.setResetFlag(true); |
| | | } else { |
| | | News.error(""+mark+" - 1"+" - 更新工作档的工作状态为14失败!!! [工作号:{}]", wrkMast.getWrkNo()); |
| | |
| | | } |
| | | // 状态:等待确认 并且 任务完成位 = 1 |
| | | if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { |
| | | News.warnNoLog(""+mark+" - 0"+" - 开始执行对工作档的完成操作"); |
| | | News.warnNoLog(""+mark+" - 0"+" - 开始执行对工作档的完成操作,任务号:"+crnProtocol.getTaskNo()); |
| | | |
| | | // 获取入库待确认工作档 |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); |
| | |
| | | // 获取叉车站点 |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (staProtocol == null) { continue; } |
| | | if (staProtocol.getWorkNo() != 0) { |
| | | if (staProtocol.getWorkNo() != 0 || staProtocol.isErr()) { |
| | | reset = false; |
| | | break; |
| | | } |
| | | } |
| | | // 获取led线程 |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId()); |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); |
| | | // led显示默认内容 |
| | | if (reset) { |
| | | if (ledThread == null) { |
| | |
| | | * 小车地图更新 更新锁 |
| | | * */ |
| | | public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd,String sign){ |
| | | log.info("小车地图更新![标记:{}];[BasRgvMap:{}];[staStart:{}];[staEnd:{}];",sign,JSON.toJSONString(basRgvMapCurrent),staStart,staEnd); |
| | | |
| | | // List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute()); |
| | | //更新当前小车锁 |
| | | try{ |
| | | Integer farCurrentStaNo = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getNowRoute(), staStart, staEnd, basRgvMapCurrent.getLockStartRoute());//获取最远站点 |
| | | log.info("小车地图更新!获取最远站点;[farCurrentStaNo:{}]",farCurrentStaNo); |
| | | Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMapCurrent.getRgvNo(), farCurrentStaNo); //获取合并干涉项 |
| | | log.info("小车地图更新!获取合并干涉项;[fallMerge:{}]",fallMerge); |
| | | basRgvMapCurrent.setLockEndRoute(fallMerge); |
| | | Integer i = basRgvMapMapper.updateById(basRgvMapCurrent); |
| | | // if (i>0){ |
| | |
| | | |
| | | //更新另一台小车地图 |
| | | Integer rgvNoOther = basRgvMapCurrent.getRgvNoOther(basRgvMapCurrent.getRgvNo()); |
| | | log.info("小车地图更新!另一台小车号;[rgvNoOther:{}]",rgvNoOther); |
| | | |
| | | BasRgvMap basRgvMapOther = basRgvMapMapper.selectById(rgvNoOther); |
| | | log.info("小车地图更新!另一台小车;[basRgvMapOther:{}]",JSON.toJSONString(basRgvMapOther)); |
| | | |
| | | List<Integer> integers = RouteUtils.RouteMapCurrentFar(fallMerge, basRgvMapCurrent.getLockStartRoute()); |
| | | Integer lockEndRoute = RouteUtils.RouteMapOtherFarStnNo(integers, basRgvMapCurrent.getLockStartRoute());//另一台小车可活动最远位置 |
| | | log.info("小车地图更新!另一台小车可活动最远位置;[lockEndRoute:{}]",lockEndRoute); |
| | | basRgvMapOther.setEndRoute(lockEndRoute); |
| | | Integer i1 = basRgvMapMapper.updateById(basRgvMapOther); |
| | | // if (i1>0){ |
| | |
| | | // } |
| | | return true; |
| | | }catch (Exception e){ |
| | | log.error("小车地图更新出错!"); |
| | | log.error("小车地图更新出错!异常原因:"+e); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //更新小车当前位置站点号 |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | | if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3){//1:满版 3:取放 |
| | | if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3 || wrkMastSta.getWrkSts()!=0){//1:满版 3:取放 |
| | | continue; |
| | | } |
| | | //判断工作结束位置状态 |
| | | BasDevp devNo = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", wrkMastSta.getStaEnd())); |
| | | if (!Cools.isEmpty(devNo)){ |
| | | if (devNo.getAutoing().equals("Y") && !devNo.getWrkNo().equals(0) && !devNo.getLoading().equals("N")){ |
| | | continue; |
| | | } |
| | | } |
| | | boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //命令下发 |
| | | wrkEnable = true; |
| | | if (sign){ |
| | | wrkMastSta.setWrkSts(1); |
| | | try{ |
| | | wrkMastStaMapper.updateById(wrkMastSta); |
| | | log.error("更新小车任务成功"); |
| | | }catch (Exception e){ |
| | | log.error("更新小车任务失败"); |
| | | } |
| | | rgvThread.setPakMk(false); |
| | | boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd(),"2526"); |
| | | if (signMap){ |
| | | Thread.sleep(300); |
| | | wrkMastSta.setWrkSts(1); |
| | | try{ |
| | | wrkMastStaMapper.updateById(wrkMastSta); |
| | | return; |
| | | }catch (Exception e){ |
| | | log.error("更新小车任务失败"); |
| | | } |
| | | break; |
| | | return; |
| | | // break; |
| | | }else { |
| | | log.error("3864行,货物搬运任务:工作号{}所属任务下发后地图同步失败",wrkMastSta.getWrkNo()); |
| | | Thread.sleep(500); |
| | | } |
| | | } else { |
| | | log.error("工作号{}所属任务下发失败",wrkMastSta.getWrkNo()); |
| | | Thread.sleep(500); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | |