|  |  | 
 |  |  | //                } | 
 |  |  |  | 
 |  |  |                 // 判断是否满足入库条件 | 
 |  |  |                 if (!staProtocol.isAutoing()){ | 
 |  |  |                 if (!staProtocol.isLoading()){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |                 if (staProtocol.isLoading() && staProtocol.isInEnable() | 
 |  |  |                 if (staProtocol.isAutoing() && staProtocol.isInEnable() | 
 |  |  |                         && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) | 
 |  |  |                         && staProtocol.isPakMk() && staProtocol.getStamp()>=2) {// && !Cools.isEmpty(barcode)) { | 
 |  |  |                     News.warnNoLog(""+mark+" - 0"+" - 开始执行"); | 
 |  |  | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                 }else { | 
 |  |  |                     News.errorNoLog(""+mark+" - 6"+" - 站点信息不符合入库条件!!!"+" 自动信号:"+staProtocol.isLoading()+"、可入信号:" + staProtocol.isInEnable() | 
 |  |  |                     News.errorNoLog(""+mark+" - 6"+" - 站点信息不符合入库条件!!!"+" 自动信号:"+staProtocol.isAutoing()+"、可入信号:" + staProtocol.isInEnable() | 
 |  |  |                             +"、空板信号:"+ staProtocol.isEmptyMk()+"、工作号:" + staProtocol.getWorkNo() | 
 |  |  |                             +"、锁定标记"+ staProtocol.isPakMk()+"、入库印记:" + staProtocol.getStamp()); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             // 库位移转 | 
 |  |  |             this.locToLoc(crn, crnProtocol); | 
 |  |  |             //mark - 3 - .... | 
 |  |  |             this.locToLoc(crn, crnProtocol,mark); | 
 |  |  | //            this.crnRebackHp(crnProtocol, crnThread); | 
 |  |  |  | 
 |  |  |         } | 
 |  |  | 
 |  |  |      * 入库  ===>>  堆垛机站到库位 | 
 |  |  |      */ | 
 |  |  |     public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) { | 
 |  |  |         News.warnNoLog(""+mark+" - 1"+" - 堆垛机入出库作业下发:执行入库"); | 
 |  |  |         News.warnNoLog(""+mark+" - 1"+" - 0"+" - 堆垛机入出库作业下发:执行入库"); | 
 |  |  |         for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) { | 
 |  |  |             boolean flag = false; | 
 |  |  |             // 获取堆垛机入库站信息 | 
 |  |  | 
 |  |  |                         wrkMast.setIoPri(14D); | 
 |  |  |                         wrkMastMapper.updateById(wrkMast); | 
 |  |  |                         // 生成工作档,将浅库位移转到新的库位中 | 
 |  |  |                         moveLocForDeepLoc(slave, shallowLoc); | 
 |  |  |                         moveLocForDeepLoc(slave, shallowLoc,mark); | 
 |  |  |                         // 生成工作档、改变浅库位的源库/目标库 库位状态、下发堆垛机命令(立马执行) | 
 |  |  | //                        moveLocForDeepLocPakin(slave, shallowLoc, wrkMast); | 
 |  |  |                     } | 
 |  |  | 
 |  |  |      * 2022-06-09 TQS修改,查询工作档LIST,遍历下发,防止第一个任务堵塞出库 | 
 |  |  |      */ | 
 |  |  |     public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) { | 
 |  |  |         News.warnNoLog(""+mark+" - 2"+" - 堆垛机入出库作业下发:执行出库"); | 
 |  |  |         News.warnNoLog(""+mark+" - 2"+" - 0"+" - 堆垛机入出库作业下发:执行出库"); | 
 |  |  |         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) { | 
 |  |  |             // 获取工作状态为11(生成出库ID)的出库工作档 | 
 |  |  | //            WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo()); | 
 |  |  | 
 |  |  |                                 wrkMast.setUpdMk("Y"); | 
 |  |  |                                 wrkMastMapper.updateById(wrkMast); | 
 |  |  |                                 // 生成工作档,将浅库位移转到新的库位中 | 
 |  |  |                                 moveLocForDeepLoc(slave, shallowLoc); | 
 |  |  |                                 moveLocForDeepLoc(slave, shallowLoc,mark); | 
 |  |  |                             } | 
 |  |  |                             News.error("{}任务出库失败,浅库位堵塞!浅库位号:{}", wrkMast.getWrkNo(), shallowLocNo); | 
 |  |  |                             continue; | 
 |  |  | 
 |  |  |     /** | 
 |  |  |      * 库位移转 | 
 |  |  |      */ | 
 |  |  |     public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) { | 
 |  |  |     public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol,Integer mark) { | 
 |  |  |         News.warnNoLog(""+mark+" - 3"+" - 0"+" - 堆垛机入出库作业下发:执行库位移转"); | 
 |  |  |         // 获取工作档信息 | 
 |  |  |         WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId()); | 
 |  |  |         if (null == wrkMast) { | 
 |  |  | 
 |  |  |         // 获取源库位信息 | 
 |  |  |         LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); | 
 |  |  |         if (null == sourceSta) { | 
 |  |  |             News.error("工作档库位移转失败,原因:检索源库位失败!工作号={},源库位={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); | 
 |  |  |             News.error(""+mark+" - 3"+" - 1"+" - 工作档库位移转失败,原因:检索源库位失败!工作号={},源库位={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         // 源库位  库位状态判断 | 
 |  |  | 
 |  |  |         // 获取目标库位信息 | 
 |  |  |         LocMast sta = locMastService.selectById(wrkMast.getLocNo()); | 
 |  |  |         if (null == sta) { | 
 |  |  |             News.error("工作档库位移转失败,原因:检索目标库位失败!工作号={},源库位={}", wrkMast.getWrkNo(), wrkMast.getLocNo()); | 
 |  |  |             News.error(""+mark+" - 3"+" - 2"+" - 工作档库位移转失败,原因:检索目标库位失败!工作号={},源库位={}", wrkMast.getWrkNo(), wrkMast.getLocNo()); | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |         // 获取堆垛机信息 并 判断是否可入出 | 
 |  |  | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         News.warnNoLog(""+mark+" - 3"+" - 3"+" - 命令下发 : 工作号={},源排={},源列={},源层={},目标排={},目标列={},目标层={}",wrkMast.getWrkNo().shortValue() | 
 |  |  |                 ,sourceSta.getRow1().shortValue(),sourceSta.getBay1().shortValue(),sourceSta.getLev1().shortValue() | 
 |  |  |                 ,sta.getRow1().shortValue(),sta.getBay1().shortValue(),sta.getLev1().shortValue()); | 
 |  |  |  | 
 |  |  |         // 命令下发区 -------------------------------------------------------------------------- | 
 |  |  |         CrnCommand crnCommand = new CrnCommand(); | 
 |  |  |         crnCommand.setCrnNo(slave.getId()); // 堆垛机编号 | 
 |  |  | 
 |  |  |         crnCommand.setDestinationPosY(sta.getBay1().shortValue());     // 目标库位列 | 
 |  |  |         crnCommand.setDestinationPosZ(sta.getLev1().shortValue());     // 目标库位层 | 
 |  |  |         if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) { | 
 |  |  |             News.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); | 
 |  |  |             News.error(""+mark+" - 3"+" - 4"+" - 堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand)); | 
 |  |  |         } else { | 
 |  |  |             // 修改工作档状态 11.生成出库ID => 12.吊车出库中 | 
 |  |  |             Date now = new Date(); | 
 |  |  | 
 |  |  |             wrkMast.setCrnStrTime(now); | 
 |  |  |             wrkMast.setModiTime(now); | 
 |  |  |             if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                 News.error("【库位移转】 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |                 News.error(""+mark+" - 3"+" - 5"+" - 【库位移转】 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo()); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         News.infoNoLog(""+mark+" - 3"+" - 0"+" - 堆垛机入出库作业下发:库位移转完成"); | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |      * 执行对工作档的完成操作 | 
 |  |  |      */ | 
 |  |  |     public synchronized void storeFinished(Integer mark) { | 
 |  |  |         News.warn(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |  | 
 |  |  |         for (CrnSlave crn : slaveProperties.getCrn()) { | 
 |  |  |             // 获取堆垛机信息 | 
 |  |  |             CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); | 
 |  |  | 
 |  |  |             } | 
 |  |  |             //  状态:等待确认 并且  任务完成位 = 1 | 
 |  |  |             if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { | 
 |  |  |                 News.warnNoLog(""+mark+" - 0"+" - 开始执行对工作档的完成操作"); | 
 |  |  |                 if (crnProtocol.getTaskNo() == 9999) { | 
 |  |  |                     // 堆垛机复位 | 
 |  |  |                     crnThread.setResetFlag(true); | 
 |  |  | 
 |  |  |                     // 修改成功后复位堆垛机 | 
 |  |  |                     if (wrkMastMapper.updateById(wrkMast) > 0) { | 
 |  |  |                         // 堆垛机复位 | 
 |  |  |                         News.warnNoLog(""+mark+" - 2"+" - 修改成功后复位堆垛机 : 堆垛机号={}",crnThread.getCrnProtocol().getCrnNo()); | 
 |  |  |                         crnThread.setResetFlag(true); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         News.info(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |         News.infoNoLog(""+mark+" - 0"+" - 对工作档的完成操作执行完成"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 堆垛机异常信息记录 | 
 |  |  |      */ | 
 |  |  |     public synchronized void recCrnErr(Integer mark) { | 
 |  |  |         News.warn(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |         Date now = new Date(); | 
 |  |  |         for (CrnSlave crn : slaveProperties.getCrn()) { | 
 |  |  |             // 获取堆垛机信息 | 
 |  |  | 
 |  |  | //            if (crnProtocol.getModeType() != CrnModeType.STOP) { | 
 |  |  |                 // 有任务 | 
 |  |  |                 if (crnProtocol.getTaskNo() != 0) { | 
 |  |  |                     News.warnNoLog(""+mark+" - 1"+" - 开始执行:堆垛机异常信息记录 : 有任务"); | 
 |  |  |                     BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue()); | 
 |  |  |                     // 有异常 | 
 |  |  |                     if (latest == null) { | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                     // 无任务 | 
 |  |  |                 } else { | 
 |  |  |                     News.warnNoLog(""+mark+" - 1"+" - 开始执行:堆垛机异常信息记录 : 无任务"); | 
 |  |  |                     BasErrLog latest = basErrLogService.findLatest(crn.getId()); | 
 |  |  |                     // 有异常 | 
 |  |  |                     if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { | 
 |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         News.info(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |         News.infoNoLog(""+mark+" - 0"+" - 堆垛机异常信息记录执行完成"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |      * 空栈板初始化入库,叉车入库站放货 | 
 |  |  |      */ | 
 |  |  |     public synchronized void storeEmptyPlt(Integer mark) { | 
 |  |  |         News.warn(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |  | 
 |  |  |         for (DevpSlave devp : slaveProperties.getDevp()) { | 
 |  |  |             // 遍历空板入库口 | 
 |  |  |             for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { | 
 |  |  | 
 |  |  |                     ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, emptyInSta.getLed()); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 if (!staProtocol.isLoading()){ | 
 |  |  |                     continue; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 // 站点条件判断 | 
 |  |  |                 if (staProtocol.isAutoing() | 
 |  |  |                         && staProtocol.isLoading() | 
 |  |  |                         && staProtocol.isInEnable() | 
 |  |  |                         && staProtocol.isEmptyMk() | 
 |  |  |                         && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999) | 
 |  |  |                         && staProtocol.isPakMk()) { | 
 |  |  |                     News.warnNoLog(""+mark+" - 0"+" - 开始执行:空栈板初始化入库,叉车入库站放货"); | 
 |  |  |  | 
 |  |  |                     try { | 
 |  |  |                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol); | 
 |  |  | 
 |  |  |                             devpThread.setPakMk(staProtocol.getSiteId(), false); | 
 |  |  |                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
 |  |  |                             if (!result) { | 
 |  |  |                                 News.errorNoLog(""+mark+" - 1"+" - 更新plc站点信息失败"); | 
 |  |  |                                 throw new CoolException("更新plc站点信息失败"); | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  | 
 |  |  |                             devpThread.setPakMk(staProtocol.getSiteId(), false); | 
 |  |  |                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); | 
 |  |  |                             if (!result) { | 
 |  |  |                                 News.errorNoLog(""+mark+" - 2"+" - 更新plc站点信息失败"); | 
 |  |  |                                 throw new CoolException("更新plc站点信息失败"); | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  | 
 |  |  |                                     MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(5, errorMsg)); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                             News.error(""+mark+" - 1"+" - 请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); | 
 |  |  |                             News.error(""+mark+" - 3"+" - 请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); | 
 |  |  |                         } | 
 |  |  |                     } catch (Exception e) { | 
 |  |  |                         e.printStackTrace(); | 
 |  |  |                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                 } else { | 
 |  |  |                     News.errorNoLog(""+mark+" - 4"+" - 站点信息不符合入库条件!!!"+" 自动信号:"+staProtocol.isAutoing()+"、可入信号:" + staProtocol.isInEnable() | 
 |  |  |                             +"、空板信号:"+ staProtocol.isEmptyMk()+"、工作号:" + staProtocol.getWorkNo() | 
 |  |  |                             +"、锁定标记"+ staProtocol.isPakMk()); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         News.info(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |         News.infoNoLog(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 出库  ===>> 工作档信息写入led显示器 | 
 |  |  |      */ | 
 |  |  |     public synchronized void ledExecute(Integer mark) { | 
 |  |  |         News.warn(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |  | 
 |  |  |         for (LedSlave led : slaveProperties.getLed()) { | 
 |  |  |             News.warnNoLog(""+mark+" - 0"+" - 开始执行:出库  ===>> 工作档信息写入led显示器"); | 
 |  |  |             // 获取输送线plc线程 | 
 |  |  |             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); | 
 |  |  |             // 命令集合 | 
 |  |  | 
 |  |  |                     wrkMast.setOveMk("Y"); | 
 |  |  |                     wrkMast.setModiTime(new Date()); | 
 |  |  |                     if (wrkMastMapper.updateById(wrkMast) == 0) { | 
 |  |  |                         News.errorNoLog(""+mark+" - 4"+" - 更新工作档失败"); | 
 |  |  |                         throw new CoolException("更新工作档失败"); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         News.info(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |         News.infoNoLog(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 其他  ===>> LED显示器复位,显示默认信息 | 
 |  |  |      */ | 
 |  |  |     public synchronized void ledReset(Integer mark) { | 
 |  |  |         News.warn(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |  | 
 |  |  |         for (LedSlave led : slaveProperties.getLed()) { | 
 |  |  |             News.warnNoLog(""+mark+" - 0"+" - 开始执行:其他  ===>> LED显示器复位,显示默认信息"); | 
 |  |  |             // 获取输送线plc线程 | 
 |  |  |             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); | 
 |  |  |             // 命令集合 | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         News.info(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |         News.infoNoLog(""+mark+" - 0"+" - 执行完成:其他  ===>> LED显示器复位,显示默认信息"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |      * 因双深库位阻塞,对浅库位进行移转(立即执行版) | 
 |  |  |      * tip:同步 | 
 |  |  |      */ | 
 |  |  |     private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc) { | 
 |  |  |     private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc,Integer mark) { | 
 |  |  |  | 
 |  |  |         try { | 
 |  |  |             News.warnNoLog(""+mark+"moveLocForDeepLoc"+" - 0"+" - 开始执行:因双深库位阻塞,对浅库位进行移转(立即执行版)"); | 
 |  |  |             List<Integer> rows = locMastService.queryDistinctRow(crn.getId()); | 
 |  |  |             LocMast loc = null; | 
 |  |  |             for (Integer row : rows) { | 
 |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (null == loc) { | 
 |  |  |                 News.error("双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); | 
 |  |  |                 News.error(""+mark+"moveLocForDeepLoc"+" - 1"+" - 双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); | 
 |  |  |                 throw new CoolException("双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  | 
 |  |  |             wrkMast.setModiTime(new Date()); | 
 |  |  |             int res = wrkMastMapper.insert(wrkMast); | 
 |  |  |             if (res == 0) { | 
 |  |  |                 News.errorNoLog(""+mark+"moveLocForDeepLoc"+" - 2"+" - 保存工作档失败"); | 
 |  |  |                 throw new CoolException("保存工作档失败"); | 
 |  |  |             } | 
 |  |  |             // 工作档明细保存 | 
 |  |  | 
 |  |  |                     wrkDetl.setAppeTime(new Date()); | 
 |  |  |                     wrkDetl.setModiTime(new Date()); | 
 |  |  |                     if (!wrkDetlService.insert(wrkDetl)) { | 
 |  |  |                         News.errorNoLog(""+mark+"moveLocForDeepLoc"+" - 3"+" - 保存工作档明细失败"); | 
 |  |  |                         throw new CoolException("保存工作档明细失败"); | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  | 
 |  |  |                 shallowLoc.setLocSts("R"); // R.出库预约 | 
 |  |  |                 shallowLoc.setModiTime(new Date()); | 
 |  |  |                 if (!locMastService.updateById(shallowLoc)) { | 
 |  |  |                     News.errorNoLog(""+mark+"moveLocForDeepLoc"+" - 4"+" - 更新源库位状态失败"); | 
 |  |  |                     throw new CoolException("更新源库位状态失败"); | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 News.errorNoLog(""+mark+"moveLocForDeepLoc"+" - 5"+" - 源库位出库失败"); | 
 |  |  |                 throw new CoolException("源库位出库失败"); | 
 |  |  |             } | 
 |  |  |             // 修改目标库位状态 | 
 |  |  | 
 |  |  |                 loc.setLocSts("S"); // S.入库预约 | 
 |  |  |                 loc.setModiTime(new Date()); | 
 |  |  |                 if (!locMastService.updateById(loc)) { | 
 |  |  |                     News.errorNoLog(""+mark+"moveLocForDeepLoc"+" - 6"+" - 更新目标库位状态失败"); | 
 |  |  |                     throw new CoolException("更新目标库位状态失败"); | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 News.errorNoLog(""+mark+"moveLocForDeepLoc"+" - 7"+" - 移转失败"); | 
 |  |  |                 throw new CoolException("移转失败"); | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             News.error("双深库位阻塞,对浅库位进行移转失败", e); | 
 |  |  |             News.error(""+mark+"moveLocForDeepLoc"+" - 8"+" - 双深库位阻塞,对浅库位进行移转失败", e); | 
 |  |  |             e.printStackTrace(); | 
 |  |  |             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); | 
 |  |  |         } | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public synchronized void outOfDevp(Integer mark) { | 
 |  |  |         News.warn(""+mark+" - 0"+" - 开始执行"); | 
 |  |  |  | 
 |  |  |         List<WrkMast> wrkMasts = wrkMastMapper.selectPick(); | 
 |  |  |         if (wrkMasts!=null){ | 
 |  |  |             News.warn(""+mark+" - 0"+" - 开始执行outOfDevp"); | 
 |  |  |         } | 
 |  |  |         for (WrkMast wrkMast : wrkMasts) { | 
 |  |  |             if (basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())) == 0) { | 
 |  |  |                 wrkMast.setCtnNo("Y"); | 
 |  |  | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         News.info(""+mark+" - 0"+" - 执行完成"); | 
 |  |  |         News.info(""+mark+" - 0"+" - outOfDevp执行完成"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  |