| | |
| | | return true; |
| | | } |
| | | |
| | | //移库任务(返回WrkMast,供跑库等场景获取工作号) |
| | | public WrkMast createLocMoveTaskReturnMast(CreateLocMoveTaskParam param) { |
| | | Date now = new Date(); |
| | | LocMast sourceLocMast = locMastService.queryByLoc(param.getSourceLocNo()); |
| | | if (null == sourceLocMast) { |
| | | throw new CoolException(param.getSourceLocNo() + "源库位不存在"); |
| | | } |
| | | |
| | | if (!sourceLocMast.getLocSts().equals("F")) { |
| | | throw new CoolException(sourceLocMast.getLocNo() + "源库位不处于在库状态"); |
| | | } |
| | | |
| | | LocMast locMast = locMastService.queryByLoc(param.getLocNo()); |
| | | if (null == locMast) { |
| | | throw new CoolException(param.getLocNo() + "目标库位不存在"); |
| | | } |
| | | |
| | | if (!locMast.getLocSts().equals("O")) { |
| | | throw new CoolException(locMast.getLocNo() + "目标库位不处于空库状态"); |
| | | } |
| | | |
| | | double ioPri = 800D; |
| | | if (param.getTaskPri() != null) { |
| | | ioPri = param.getTaskPri().doubleValue(); |
| | | } |
| | | |
| | | FindCrnNoResult sourceCrnResult = this.findCrnNoByLocNo(sourceLocMast.getLocNo()); |
| | | if (sourceCrnResult == null) { |
| | | throw new CoolException("未找到对应堆垛机"); |
| | | } |
| | | |
| | | FindCrnNoResult targetCrnResult = this.findCrnNoByLocNo(locMast.getLocNo()); |
| | | if (targetCrnResult == null) { |
| | | throw new CoolException("未找到对应堆垛机"); |
| | | } |
| | | |
| | | if (!sourceCrnResult.getCrnNo().equals(targetCrnResult.getCrnNo())) { |
| | | throw new CoolException("源库位和目标库位不在同一巷道"); |
| | | } |
| | | |
| | | int workNo = getWorkNo(WrkIoType.LOC_MOVE.id); |
| | | WrkMast wrkMast = new WrkMast(); |
| | | wrkMast.setWrkNo(workNo); |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setWrkSts(WrkStsType.NEW_LOC_MOVE.sts); |
| | | wrkMast.setIoType(WrkIoType.LOC_MOVE.id); |
| | | wrkMast.setIoPri(ioPri); |
| | | wrkMast.setSourceLocNo(param.getSourceLocNo()); |
| | | wrkMast.setLocNo(param.getLocNo()); |
| | | wrkMast.setWmsWrkNo(param.getTaskNo()); |
| | | wrkMast.setBarcode(sourceLocMast.getBarcode()); |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiTime(now); |
| | | |
| | | if (targetCrnResult.getCrnType().equals(SlaveType.Crn)) { |
| | | wrkMast.setCrnNo(targetCrnResult.getCrnNo()); |
| | | } else if (targetCrnResult.getCrnType().equals(SlaveType.DualCrn)) { |
| | | wrkMast.setDualCrnNo(targetCrnResult.getCrnNo()); |
| | | } else { |
| | | throw new CoolException("未知设备类型"); |
| | | } |
| | | |
| | | boolean res = wrkMastService.save(wrkMast); |
| | | if (!res) { |
| | | News.error("移库任务 --- 保存工作档失败!"); |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | wrkAnalysisService.initForTask(wrkMast); |
| | | |
| | | sourceLocMast.setLocSts("R"); |
| | | sourceLocMast.setModiTime(new Date()); |
| | | locMastService.updateById(sourceLocMast); |
| | | |
| | | locMast.setLocSts("S"); |
| | | locMast.setModiTime(new Date()); |
| | | locMastService.updateById(locMast); |
| | | |
| | | return wrkMast; |
| | | } |
| | | |
| | | //入库任务 |
| | | public WrkMast createInTask(CreateInTaskParam param) { |
| | | Date now = new Date(); |