|  |  | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 // 库位移转 | 
 |  |  | //                this.locToLoc(crn, crnProtocol); | 
 |  |  |                 this.locToLoc(crn, crnProtocol); | 
 |  |  |                 // 演示任务 | 
 |  |  |                 this.steMoveDemo(crn, crnProtocol); | 
 |  |  |             } | 
 |  |  | 
 |  |  |                                 crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 源库位排 | 
 |  |  |                                 crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 源库位列 | 
 |  |  |                                 crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 源库位层 | 
 |  |  |                                 crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo()).shortValue());     // 目标库位排 | 
 |  |  |                                 crnCommand.setDestinationPosX(Utils.getGroupRow(locMast.getLocNo(), true).shortValue());     // 目标库位排 | 
 |  |  |                                 crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 目标库位列 | 
 |  |  |                                 crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 目标库位层 | 
 |  |  |                                 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { | 
 |  |  | 
 |  |  |                             SteThread steThread = queryIdleCar(wrkMast); | 
 |  |  |                             if (steThread != null) { | 
 |  |  |                                 // 没有其他任务 | 
 |  |  | //                                boolean hasPakout = true; | 
 |  |  | //                                WrkMast pakoutWrkMast = wrkMastMapper.selectPakout(slave.getId(), steNo); | 
 |  |  | //                                if (null != pakoutWrkMast) { | 
 |  |  | //                                    if ((pakoutWrkMast.getIoType() == 103 || pakoutWrkMast.getIoType() == 104 || pakoutWrkMast.getIoType() == 107) | 
 |  |  | //                                            && pakoutWrkMast.getWrkSts() == 17 | 
 |  |  | //                                            && basDevpService.selectByWrkNo(pakoutWrkMast.getWrkNo()) != null | 
 |  |  | //                                    ) { | 
 |  |  | //                                        hasPakout = false; | 
 |  |  | //                                    } | 
 |  |  | //                                } else { | 
 |  |  | //                                    hasPakout = false; | 
 |  |  | //                                } | 
 |  |  | //                                if (!hasPakout) { | 
 |  |  | //                                    // 让小车等待搬运待续 | 
 |  |  | //                                    this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getSourceLocNo()); | 
 |  |  | //                                } | 
 |  |  |                                 if (null == wrkMastMapper.selectPakout(slave.getId(), steNo)) { | 
 |  |  |                                     // 让小车等待搬运待续 | 
 |  |  |                                     this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getSourceLocNo()); | 
 |  |  | 
 |  |  |         wrkMast.setIoPri((double) 9999); | 
 |  |  |         wrkMastMapper.updateById(wrkMast); | 
 |  |  |  | 
 |  |  |         // 源库位 ===>> 最外层库位 | 
 |  |  |         if (locMastService.isOutMost(wrkMast.getSourceLocNo())) { | 
 |  |  |             // 目标库位 ===>> 最外层库位 | 
 |  |  |             if (locMastService.isOutMost(wrkMast.getLocNo())) { | 
 |  |  |                 // todo:luxiaotao 判断目标库位是否存在小车,如果存在,则搬走小车 | 
 |  |  |  | 
 |  |  |                 // 命令下发区 -------------------------------------------------------------------------- | 
 |  |  |                 CrnCommand crnCommand = new CrnCommand(); | 
 |  |  |                 crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
 |  |  |                 crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
 |  |  |                 crnCommand.setAckFinish((short) 0);  // 任务完成确认位 | 
 |  |  |                 crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式:  库位移转 | 
 |  |  |                 crnCommand.setSourcePosX(sourceLoc.getRow1().shortValue());     // 源库位排 | 
 |  |  |                 crnCommand.setSourcePosY(sourceLoc.getBay1().shortValue());     // 源库位列 | 
 |  |  |                 crnCommand.setSourcePosZ(sourceLoc.getLev1().shortValue());     // 源库位层 | 
 |  |  |                 crnCommand.setDestinationPosX(loc.getRow1().shortValue());     // 目标库位排 | 
 |  |  |                 crnCommand.setDestinationPosY(loc.getBay1().shortValue());     // 目标库位列 | 
 |  |  |                 crnCommand.setDestinationPosZ(loc.getLev1().shortValue());     // 目标库位层 | 
 |  |  |                 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { | 
 |  |  |                     log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); | 
 |  |  |                 } else { | 
 |  |  |                     // 修改工作档状态 11.生成出库ID => 16.吊车出库中 | 
 |  |  |                     Date now = new Date(); | 
 |  |  |                     wrkMast.setWrkSts(16L); | 
 |  |  |                     wrkMast.setCrnStrTime(now); | 
 |  |  |                     wrkMast.setModiTime(now); | 
 |  |  |                     if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                         log.error("【库位移转】 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo()); | 
 |  |  |                 // 有小车 | 
 |  |  |                 if (steNo != null) { | 
 |  |  |                     // 小车行走到堆垛机待搬移点 | 
 |  |  |                     if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) { | 
 |  |  |                         // 标记移库当前流程 | 
 |  |  |                         wrkMast.setMk("I"); | 
 |  |  |                         if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                             log.error("标记移库当前流程 I 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                         } | 
 |  |  |                         this.letCarBeWaiting(wrkMast, steNo, wrkMast.getLocNo()); | 
 |  |  |                     } | 
 |  |  |                     // 堆垛机将货放至小车上 6.小车待入  ===>> 7.吊车入库中 | 
 |  |  |                     if (wrkMast.getWrkSts() == 6L) { | 
 |  |  |                         // 小车处于空闲 | 
 |  |  |                         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); | 
 |  |  |                         SteProtocol steProtocol = steThread.getSteProtocol(); | 
 |  |  |                         if (steProtocol == null) { return; } | 
 |  |  |                         if (steProtocol.isIdle()) { | 
 |  |  |  | 
 |  |  |                             // 已经存在吊车执行任务时,则过滤 | 
 |  |  |                             if (wrkMastMapper.selectWorking(slave.getId()) != null) { | 
 |  |  |                                 return; | 
 |  |  |                             } | 
 |  |  |                             // 堆垛机入库 命令下发区 -------------------------------------------------------------------------- | 
 |  |  |                             CrnCommand crnCommand = new CrnCommand(); | 
 |  |  |                             crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
 |  |  |                             crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
 |  |  |                             crnCommand.setAckFinish((short) 0);  // 任务完成确认位 | 
 |  |  |                             crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式:  库位移转 | 
 |  |  |                             crnCommand.setSourcePosX(Utils.getGroupRow(sourceLoc.getRow1()).shortValue());     // 源库位排 | 
 |  |  |                             crnCommand.setSourcePosY(sourceLoc.getBay1().shortValue());     // 源库位列 | 
 |  |  |                             crnCommand.setSourcePosZ(sourceLoc.getLev1().shortValue());     // 源库位层 | 
 |  |  |                             crnCommand.setDestinationPosX(Utils.getGroupRow(loc.getRow1()).shortValue());     // 目标库位排 | 
 |  |  |                             crnCommand.setDestinationPosY(loc.getBay1().shortValue());     // 目标库位列 | 
 |  |  |                             crnCommand.setDestinationPosZ(loc.getLev1().shortValue());     // 目标库位层 | 
 |  |  |                             if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { | 
 |  |  |                                 log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); | 
 |  |  |                             } else { | 
 |  |  |                                 // 修改工作档状态  6.小车待入 ===>> 7.吊车入库中 | 
 |  |  |                                 Date now = new Date(); | 
 |  |  |                                 wrkMast.setWrkSts(7L); | 
 |  |  |                                 wrkMast.setCrnStrTime(now); | 
 |  |  |                                 wrkMast.setModiTime(now); | 
 |  |  |                                 if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                                     log.error("修改工作档状态 3.小车待搬/6.小车待入 => 7.吊车入库中 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } else { | 
 |  |  |                     if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) { | 
 |  |  |                         // 寻找当前堆垛机对应的小车 | 
 |  |  |                         SteThread steThread = queryIdleCar(wrkMast); | 
 |  |  |                         if (steThread != null) { | 
 |  |  |                             // 标记移库当前流程 | 
 |  |  |                             wrkMast.setMk("I"); | 
 |  |  |                             if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                                 log.error("标记移库当前流程 I 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                             } | 
 |  |  |                             // 让小车等待搬运待续 | 
 |  |  |                             this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getLocNo()); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     // 堆垛机搬运小车 | 
 |  |  |                     if (wrkMast.getWrkSts() == 3L) { | 
 |  |  |                         this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         // 命令下发区 -------------------------------------------------------------------------- | 
 |  |  |         CrnCommand crnCommand = new CrnCommand(); | 
 |  |  |         crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
 |  |  |         crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
 |  |  |         crnCommand.setAckFinish((short) 0);  // 任务完成确认位 | 
 |  |  |         crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式:  库位移转 | 
 |  |  |         crnCommand.setSourcePosX(sourceLoc.getRow1().shortValue());     // 源库位排 | 
 |  |  |         crnCommand.setSourcePosY(sourceLoc.getBay1().shortValue());     // 源库位列 | 
 |  |  |         crnCommand.setSourcePosZ(sourceLoc.getLev1().shortValue());     // 源库位层 | 
 |  |  |         crnCommand.setDestinationPosX(loc.getRow1().shortValue());     // 目标库位排 | 
 |  |  |         crnCommand.setDestinationPosY(loc.getBay1().shortValue());     // 目标库位列 | 
 |  |  |         crnCommand.setDestinationPosZ(loc.getLev1().shortValue());     // 目标库位层 | 
 |  |  |         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { | 
 |  |  |             log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); | 
 |  |  |         } else { | 
 |  |  |  | 
 |  |  |             // 当前组库位是否有穿梭车 | 
 |  |  |             Integer steNo = this.hasCarOfIdle(wrkMast.getSourceLocNo()); | 
 |  |  |             // 有小车 | 
 |  |  |             if (steNo != null) { | 
 |  |  |                 if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) { | 
 |  |  |  | 
 |  |  |                     // 给穿梭车下发命令 让其将货物挪至堆垛机搬运点 | 
 |  |  |                     SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); | 
 |  |  |                     SteProtocol steProtocol = steThread.getSteProtocol(); | 
 |  |  |                     if (steProtocol == null) { return; } | 
 |  |  |                     if (steProtocol.isIdle()) { | 
 |  |  |  | 
 |  |  |                         // 命令下发区 -------------------------------------------------------------------------- | 
 |  |  |                         SteCommand steCommand = new SteCommand(); | 
 |  |  |                         steCommand.setSteNo(steNo); // 穿梭车编号 | 
 |  |  |                         steCommand.setTaskNo(wrkMast.getWrkNo()); // 工作号 | 
 |  |  |                         steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 任务模式:  去近点 等待堆垛机叉取 | 
 |  |  |  | 
 |  |  |                         steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue()); | 
 |  |  |                         steCommand.setBay(steProtocol.getBay()); | 
 |  |  |                         steCommand.setLev(steProtocol.getLev()); | 
 |  |  |  | 
 |  |  |                         if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) { | 
 |  |  |                             log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand)); | 
 |  |  |                         } else { | 
 |  |  |                             // 修改工作档状态 11.生成出库ID => 14.小车搬出库 | 
 |  |  |                             Date now = new Date(); | 
 |  |  |                             wrkMast.setWrkSts(14L); | 
 |  |  |                             wrkMast.setSteNo(steNo); | 
 |  |  |                             wrkMast.setCrnStrTime(now); | 
 |  |  |                             wrkMast.setModiTime(now); | 
 |  |  |                             if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                                 log.error("修改工作档状态 11.生成出库ID => 14.小车搬出库 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 if (wrkMast.getWrkSts() == 15L) { | 
 |  |  |                     // 已经存在吊车执行任务时,则过滤 | 
 |  |  |                     if (wrkMastMapper.selectWorking(slave.getId()) != null) { | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     // 目标库位 ===>> 最外层库位 | 
 |  |  |                     if (locMastService.isOutMost(wrkMast.getLocNo())) { | 
 |  |  |                         // 堆垛机出库 命令下发区 -------------------------------------------------------------------------- | 
 |  |  |                         CrnCommand crnCommand = new CrnCommand(); | 
 |  |  |                         crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
 |  |  |                         crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
 |  |  |                         crnCommand.setAckFinish((short) 0);  // 任务完成确认位 | 
 |  |  |                         crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式:  库位移转 | 
 |  |  |                         crnCommand.setSourcePosX(Utils.getGroupRow(sourceLoc.getRow1()).shortValue());     // 源库位排 | 
 |  |  |                         crnCommand.setSourcePosY(sourceLoc.getBay1().shortValue());     // 源库位列 | 
 |  |  |                         crnCommand.setSourcePosZ(sourceLoc.getLev1().shortValue());     // 源库位层 | 
 |  |  |                         crnCommand.setDestinationPosX(Utils.getGroupRow(loc.getRow1()).shortValue());     // 目标库位排 | 
 |  |  |                         crnCommand.setDestinationPosY(loc.getBay1().shortValue());     // 目标库位列 | 
 |  |  |                         crnCommand.setDestinationPosZ(loc.getLev1().shortValue());     // 目标库位层 | 
 |  |  |                         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { | 
 |  |  |                             log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); | 
 |  |  |                         } else { | 
 |  |  |                             // 修改工作档状态 15.等待吊车 => 16.吊车出库中 | 
 |  |  |                             Date now = new Date(); | 
 |  |  |                             wrkMast.setWrkSts(16L); | 
 |  |  |                             wrkMast.setCrnStrTime(now); | 
 |  |  |                             wrkMast.setModiTime(now); | 
 |  |  |                             if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                                 log.error("修改工作档状态 15.等待吊车 => 16.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                             } | 
 |  |  | //                            wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()); | 
 |  |  |                         } | 
 |  |  |                     } else { | 
 |  |  |  | 
 |  |  |                         // 把货搬到临时存放货位 todo:luxiaotao | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                         // 小车行走到堆垛机待搬移点 | 
 |  |  |                         if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) { | 
 |  |  |                             this.letCarBeWaiting(wrkMast, steNo, wrkMast.getLocNo()); | 
 |  |  |                         } | 
 |  |  |                         // 堆垛机将货放至小车上 6.小车待入  ===>> 7.吊车入库中 | 
 |  |  |                         if (wrkMast.getWrkSts() == 6L) { | 
 |  |  |                             // 小车处于空闲 | 
 |  |  |                             SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo); | 
 |  |  |                             SteProtocol steProtocol = steThread.getSteProtocol(); | 
 |  |  |                             if (steProtocol == null) { return; } | 
 |  |  |                             if (steProtocol.isIdle()) { | 
 |  |  |  | 
 |  |  |                                 // 已经存在吊车执行任务时,则过滤 | 
 |  |  |                                 if (wrkMastMapper.selectWorking(slave.getId()) != null) { | 
 |  |  |                                     return; | 
 |  |  |                                 } | 
 |  |  |                                 // 堆垛机入库 命令下发区 -------------------------------------------------------------------------- | 
 |  |  |                                 CrnCommand crnCommand = new CrnCommand(); | 
 |  |  |                                 crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
 |  |  |                                 crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号 | 
 |  |  |                                 crnCommand.setAckFinish((short) 0);  // 任务完成确认位 | 
 |  |  |                                 crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式:  库位移转 | 
 |  |  |                                 crnCommand.setSourcePosX(Utils.getGroupRow(sourceLoc.getRow1()).shortValue());     // 源库位排 | 
 |  |  |                                 crnCommand.setSourcePosY(sourceLoc.getBay1().shortValue());     // 源库位列 | 
 |  |  |                                 crnCommand.setSourcePosZ(sourceLoc.getLev1().shortValue());     // 源库位层 | 
 |  |  |                                 crnCommand.setDestinationPosX(Utils.getGroupRow(loc.getRow1()).shortValue());     // 目标库位排 | 
 |  |  |                                 crnCommand.setDestinationPosY(loc.getBay1().shortValue());     // 目标库位列 | 
 |  |  |                                 crnCommand.setDestinationPosZ(loc.getLev1().shortValue());     // 目标库位层 | 
 |  |  |                                 if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { | 
 |  |  |                                     log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); | 
 |  |  |                                 } else { | 
 |  |  |                                     // 修改工作档状态  6.小车待入 ===>> 7.吊车入库中 | 
 |  |  |                                     Date now = new Date(); | 
 |  |  |                                     wrkMast.setWrkSts(7L); | 
 |  |  |                                     wrkMast.setCrnStrTime(now); | 
 |  |  |                                     wrkMast.setModiTime(now); | 
 |  |  |                                     if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                                         log.error("修改工作档状态 3.小车待搬/6.小车待入 => 7.吊车入库中 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) { | 
 |  |  |                     // 寻找最近的小车 | 
 |  |  |                     SteThread steThread = queryIdleCar(wrkMast); | 
 |  |  |                     if (steThread != null) { | 
 |  |  |                         // 标记移库当前流程 | 
 |  |  |                         wrkMast.setMk("O"); | 
 |  |  |                         if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                             log.error("标记移库当前流程 I 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                         } | 
 |  |  |                         // 让小车等待搬运待续 | 
 |  |  |                         this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getSourceLocNo()); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |                 // 堆垛机搬运小车 | 
 |  |  |                 if (wrkMast.getWrkSts() == 12L) { | 
 |  |  |                     this.carMoveIn(wrkMast, wrkMast.getSteNo(), crnProtocol); | 
 |  |  |                 } | 
 |  |  |             // 修改工作档状态 11.生成出库ID => 16.吊车出库中 | 
 |  |  |             Date now = new Date(); | 
 |  |  |             wrkMast.setWrkSts(16L); | 
 |  |  |             wrkMast.setCrnStrTime(now); | 
 |  |  |             wrkMast.setModiTime(now); | 
 |  |  |             if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                 log.error("【库位移转】 修改工作档状态 11.生成出库ID => 16.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |             wrkMast.setIoTime(new Date()); | 
 |  |  |             wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID | 
 |  |  |             wrkMast.setIoType(11); // 入出库状态: 11.库格移载 | 
 |  |  |             wrkMast.setIoPri(13D); | 
 |  |  |             wrkMast.setIoPri(20D); | 
 |  |  |             wrkMast.setCrnNo(crn.getId()); | 
 |  |  |             wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 源库位 | 
 |  |  |             wrkMast.setLocNo(loc.getLocNo()); // 目标库位 |