| | |
| | | continue; |
| | | } |
| | | |
| | | if (inSta.getStaNo() == 1005) { |
| | | if (inSta.getStaNo() == 1002 || inSta.getStaNo() == 1007) { |
| | | //检测是否有出库任务 |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("io_type", 101, 103, 107) |
| | | .in("sta_no", 1003, 1007) |
| | | .in("sta_no", 1003, 1004) |
| | | ); |
| | | if (!wrkMasts.isEmpty()) { |
| | | News.error("" + mark + " - 4" + " - 1003站入库,检测存在出库任务,等待出库任务执行完成,托盘码={}", barcode); |
| | | News.error("" + mark + " - 4" + " - 入库,检测存在出库任务,等待出库任务执行完成,托盘码={}", barcode); |
| | | continue; |
| | | } |
| | | } |
| | |
| | | // 无拣料数据 |
| | | continue; |
| | | } |
| | | |
| | | if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) { |
| | | if (wrkMast.getWrkSts() != 2) { |
| | | News.error("" + mark + " - 3" + " - 拣选盘点回库工作档状态异常!!! [plc编号:{}]", devp.getId()); |
| | | continue; |
| | | } |
| | | |
| | | LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); |
| | | // 更新站点信息 且 下发plc命令 |
| | | staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); |
| | | staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); |
| | | staProtocol.setPalletSize(locMast.getLocType2()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | if (!result) { |
| | | News.error("" + mark + " - 3" + " - 发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | } |
| | | continue; |
| | | } |
| | | |
| | | if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) |
| | | || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { |
| | | continue; |
| | | } |
| | | |
| | | // 拣、盘、并 作业站转换 |
| | | // int stnNo = 0; |
| | | // if (wrkMast.getStaNo() == 109) { |
| | | // stnNo = 127; |
| | | // } else if (wrkMast.getStaNo() == 113) { |
| | | // stnNo = 128; |
| | | // } else { |
| | | // log.error("{}号任务数据异常!", wrkMast.getWrkNo()); |
| | | // } |
| | | // 获取目标站 |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", wrkMast.getIoType() - 50) |
| | |
| | | } |
| | | |
| | | try { |
| | | // 保存工作明细档历史档 |
| | | if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) { |
| | | throw new CoolException("保存工作明细档历史档失败"); |
| | | } |
| | | // 保存工作主档历史档 |
| | | if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) { |
| | | throw new CoolException("保存工作主档历史档失败"); |
| | | } |
| | | LocTypeDto locTypeDto = new LocTypeDto(staProtocol); |
| | | |
| | | Date now = new Date(); |
| | | // 堆垛机站点(目标站) |
| | | Integer staNo = staDesc.getCrnStn(); |
| | | // 更新工作档数据状态 |
| | | wrkMast.setIoTime(now); |
| | | wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57 |
| | | wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走 |
| | | wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站 |
| | | wrkMast.setStaNo(staNo); // 目标站 |
| | | wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 目标库位 = 出库时的源库位 |
| | | wrkMast.setSourceLocNo(""); // 源库位清空 |
| | | wrkMast.setModiTime(now); |
| | | wrkMast.setUpdMk("");//允许再次移库 |
| | | if (wrkMastMapper.updateById(wrkMast) == 0) { |
| | | throw new CoolException("更新工作档数据状态失败"); |
| | | } |
| | | // 更新明细档io_time (历史档关联使用) |
| | | wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now); |
| | | // 修改库位状态 Q.拣料/盘点/并板再入库 |
| | | LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); |
| | | locMast.setLocSts("Q"); |
| | | locMast.setModiTime(new Date()); |
| | | if (!locMastService.updateById(locMast)) { |
| | | throw new CoolException("修改库位状态失败"); |
| | | SearchLocParam param = new SearchLocParam(); |
| | | param.setBarcode(wrkMast.getBarcode()); |
| | | param.setSourceStaNo(pickSta.getStaNo()); |
| | | param.setLocType1(locTypeDto.getLocType1()); |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/pick/loc/v1") |
| | | .setJson(JSON.toJSONString(param)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | WrkMast newWrkMast = wrkMastMapper.selectPakInStepBarcode(wrkMast.getBarcode()); |
| | | if (newWrkMast == null) { |
| | | // 无拣料数据 |
| | | News.error("" + mark + " - 3" + " - 拣选盘点回库获取工作档失败!!! [plc编号:{}]", devp.getId()); |
| | | continue; |
| | | } |
| | | |
| | | if(newWrkMast.getWrkSts() != 53 && newWrkMast.getWrkSts() != 57) { |
| | | News.error("" + mark + " - 3" + " - 拣选盘点回库工作档类型异常!!! [plc编号:{}]", devp.getId()); |
| | | continue; |
| | | } |
| | | |
| | | if (wrkMast.getWrkSts() != 2) { |
| | | News.error("" + mark + " - 3" + " - 拣选盘点回库工作档状态异常!!! [plc编号:{}]", devp.getId()); |
| | | continue; |
| | | } |
| | | |
| | | LocMast locMast = locMastService.selectById(newWrkMast.getLocNo()); |
| | | // 更新站点信息 且 下发plc命令 |
| | | staProtocol.setWorkNo(newWrkMast.getWrkNo().shortValue()); |
| | | staProtocol.setStaNo(newWrkMast.getStaNo().shortValue()); |
| | | staProtocol.setPalletSize(locMast.getLocType2()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | if (!result) { |
| | | News.error("" + mark + " - 3" + " - 发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | } |
| | | } else { |
| | | News.error("" + mark + " - 5" + " - 请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/pick/loc/v1", JSON.toJSONString(param), response); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | continue; |
| | | } |
| | | |
| | | LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); |
| | | // 更新站点信息 且 下发plc命令 |
| | | staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); |
| | | staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); |
| | | staProtocol.setPalletSize(locMast.getLocType2()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | if (!result) { |
| | | News.error("" + mark + " - 3" + " - 发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | } |
| | | |
| | | } else { |
| | | News.errorNoLog("" + mark + " - 6" + " - 站点信息不符合入库条件!!!" + " 自动信号:" + staProtocol.isLoading() + "、可入信号:" + staProtocol.isInEnable() |
| | | + "、空板信号:" + staProtocol.isEmptyMk()); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>() |
| | | .eq("loc_no", wrkMast.getSourceLocNo())); |
| | | |
| | | short staNo = wrkMast.getStaNo().shortValue(); |
| | | if (wrkMast.getStaNo() == 1004) { |
| | | staNo = 2003; |
| | | } |
| | | |
| | | // 下发站点信息 |
| | | staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); |
| | | staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); |
| | | staProtocol.setStaNo(staNo); |
| | | staProtocol.setPalletSize(locMast.getLocType2()); |
| | | if (!MessageQueue.offer(SlaveType.Devp, devpId, new Task(2, staProtocol))) { |
| | | continue; |
| | |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | |
| | | if (wrkMast.getStaNo() == 1003 || wrkMast.getStaNo() == 1007) { |
| | | if (wrkMast.getStaNo() == 1003 || wrkMast.getStaNo() == 1007 || wrkMast.getStaNo() == 1004) { |
| | | //检测是否有入库任务 |
| | | List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("io_type", 1, 53, 57) |
| | | .in("source_sta_no", 1005) |
| | | .notIn("wrk_sts", 3, 4, 5) |
| | | .in("source_sta_no", 1002, 1007) |
| | | ); |
| | | if (!inWrkMasts.isEmpty()) { |
| | | News.error("" + mark + " - 2" + " - 检测存在入库任务,等待入库任务执行完成再出库,工作号={}" + wrkMast.getWrkNo()); |
| | |
| | | continue; |
| | | } |
| | | |
| | | //检测是否有入库任务 |
| | | List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() |
| | | .in("io_type", 1, 53, 57) |
| | | .in("source_sta_no", 1002, 1007) |
| | | ); |
| | | if (!inWrkMasts.isEmpty()) { |
| | | News.error("" + mark + " - 2" + " - 检测存在入库任务,等待入库任务执行完成再入空托,工作号={}"); |
| | | continue; |
| | | } |
| | | |
| | | int workNo = commonService.getWorkNo(3); |
| | | // 生成工作档 |
| | | WrkMast wrkMast1 = new WrkMast(); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 因双深库位阻塞,对浅库位进行移转(立即执行版) |
| | | * 因双深库位阻塞,对浅库位进行移转 |
| | | * tip:同步 |
| | | */ |
| | | private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, LocMast shallowLoc, Integer mark) { |
| | | Object lock = redisUtil.get(RedisConstantType.TRANSFER_LOCK + shallowLoc.getLocNo()); |
| | | if (lock != null) { |
| | | return false; |
| | | } |
| | | |
| | | redisUtil.set(RedisConstantType.TRANSFER_LOCK + shallowLoc.getLocNo(), "lock", 15); |
| | | try { |
| | | News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 开始执行:因双深库位阻塞,对浅库位进行移转(立即执行版)"); |
| | | List<Integer> rows = locMastService.queryDistinctRow(crn.getId()); |
| | | LocMast loc = null; |
| | | for (Integer row : rows) { |
| | | if (Utils.isDeepLoc(slaveProperties, row)) { |
| | | loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1()); |
| | | if (loc != null) { |
| | | if (crn.getId() == 1) { |
| | | if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) { |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { |
| | | String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); |
| | | LocMast shallowLoc1 = locMastService.selectById(shallowLocNo); |
| | | if (!shallowLoc1.getLocSts().equals("O")) { |
| | | loc = null; |
| | | } |
| | | } |
| | | } |
| | | if (null != loc) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | if (null == loc) { |
| | | for (Integer row : rows) { |
| | | if (Utils.isShallowLoc(slaveProperties, row)) { |
| | | loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1()); |
| | | |
| | | if (null != loc) {//对应深库位非在库状态,不能移库 |
| | | if (crn.getId() == 1) { |
| | | if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) { |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); |
| | | LocMast deepLoc1 = locMastService.selectById(deepLoc); |
| | | if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) { |
| | | loc = null; |
| | | } |
| | | } |
| | | |
| | | if (null != loc) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | int lane = 0; |
| | | if (crnProtocol.getCrnNo() == 1) { |
| | | lane = crnProtocol.getCrnLane(); |
| | | } |
| | | |
| | | if (null == loc) { |
| | | News.error("" + mark + "moveLocForDeepLoc" + " - 1" + " - 双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); |
| | | return false; |
| | | // throw new CoolException("双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); |
| | | HashMap<String, Object> requestParam = new HashMap<>(); |
| | | requestParam.put("locNo", shallowLoc.getLocNo()); |
| | | requestParam.put("lane", lane); |
| | | |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/transfer/loc/v1") |
| | | .setJson(JSON.toJSONString(requestParam)) |
| | | .build() |
| | | .doPost(); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | News.error("" + mark + " - 5" + " - 请求移库接口成功!!!url:{};request:{};response:{}", wmsUrl + "/rpc/transfer/loc/v1", JSON.toJSONString(requestParam), response); |
| | | return true; |
| | | } else { |
| | | String deepLoc2 = Utils.getDeepLoc2(slaveProperties, loc.getLocNo()); |
| | | if (deepLoc2 != null) { |
| | | LocMast locnew = locMastService.selectById(deepLoc2); |
| | | if (locnew != null && locnew.getLocSts().equals("O")) { |
| | | loc = locnew; |
| | | } |
| | | } |
| | | |
| | | |
| | | try { |
| | | // 获取工作号 |
| | | int workNo = commonService.getWorkNo(0); |
| | | // 保存工作档 |
| | | WrkMast wrkMast = new WrkMast(); |
| | | wrkMast.setWrkNo(workNo); |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID |
| | | wrkMast.setIoType(11); // 入出库状态: 11.库格移载 |
| | | wrkMast.setIoPri(13D); |
| | | wrkMast.setCrnNo(crn.getId()); |
| | | wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 源库位 |
| | | wrkMast.setLocNo(loc.getLocNo()); // 目标库位 |
| | | // wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 满板 |
| | | wrkMast.setFullPlt(shallowLoc.getLocSts().equals("D") ? "N" : "Y"); // 满板 |
| | | wrkMast.setPicking("N"); // 拣料 |
| | | wrkMast.setExitMk("N"); // 退出 |
| | | wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 空板 |
| | | wrkMast.setBarcode(shallowLoc.getBarcode()); // 托盘码 |
| | | wrkMast.setLinkMis("N"); |
| | | wrkMast.setAppeTime(new Date()); |
| | | wrkMast.setModiTime(new Date()); |
| | | int res = wrkMastMapper.insert(wrkMast); |
| | | if (res == 0) { |
| | | News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 保存工作档失败"); |
| | | // throw new CoolException("保存工作档失败"); |
| | | return true; |
| | | } |
| | | // 工作档明细保存 |
| | | if (shallowLoc.getLocSts().equals("F")) { |
| | | List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); |
| | | |
| | | for (LocDetl locDetl : locDetls) { |
| | | WrkDetl wrkDetl = new WrkDetl(); |
| | | wrkDetl.sync(locDetl); |
| | | wrkDetl.setWrkNo(workNo); |
| | | wrkDetl.setIoTime(new Date()); |
| | | wrkDetl.setAnfme(locDetl.getAnfme()); |
| | | // VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 |
| | | wrkDetl.setAppeTime(new Date()); |
| | | wrkDetl.setModiTime(new Date()); |
| | | if (!wrkDetlService.insert(wrkDetl)) { |
| | | News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 保存工作档明细失败"); |
| | | // throw new CoolException("保存工作档明细失败"); |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | // 修改源库位状态 |
| | | if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) { |
| | | shallowLoc.setLocSts("R"); // R.出库预约 |
| | | shallowLoc.setModiTime(new Date()); |
| | | if (!locMastService.updateById(shallowLoc)) { |
| | | News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 4" + " - 更新源库位状态失败"); |
| | | // throw new CoolException("更新源库位状态失败"); |
| | | return true; |
| | | } |
| | | } else { |
| | | News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 5" + " - 源库位出库失败"); |
| | | // throw new CoolException("源库位出库失败"); |
| | | return true; |
| | | } |
| | | // 修改目标库位状态 |
| | | if (loc.getLocSts().equals("O")) { |
| | | loc.setLocSts("S"); // S.入库预约 |
| | | loc.setModiTime(new Date()); |
| | | if (!locMastService.updateById(loc)) { |
| | | News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 6" + " - 更新目标库位状态失败"); |
| | | // throw new CoolException("更新目标库位状态失败"); |
| | | return true; |
| | | } |
| | | } else { |
| | | News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 7" + " - 移转失败"); |
| | | // throw new CoolException("移转失败"); |
| | | return true; |
| | | } |
| | | } catch (Exception e) { |
| | | News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 双深库位阻塞,对浅库位进行移转失败", e); |
| | | } |
| | | News.error("" + mark + " - 5" + " - 请求移库接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/transfer/loc/v1", JSON.toJSONString(requestParam), response); |
| | | } |
| | | |
| | | |
| | | } catch (Exception e) { |
| | | News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 双深库位阻塞,对浅库位进行移转失败", e); |
| | | // e.printStackTrace(); |
| | | // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | e.printStackTrace(); |
| | | } |
| | | return true; |
| | | return false; |
| | | } |
| | | |
| | | // /** |
| | | // * 因双深库位阻塞,对浅库位进行移转(立即执行版) |
| | | // * tip:同步 |
| | | // */ |
| | | // private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, 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 (Utils.isDeepLoc(slaveProperties, row)) { |
| | | // loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1()); |
| | | // if (loc != null) { |
| | | // if (crn.getId() == 1) { |
| | | // if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) { |
| | | // continue; |
| | | // } |
| | | // } |
| | | // |
| | | // if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) { |
| | | // String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); |
| | | // LocMast shallowLoc1 = locMastService.selectById(shallowLocNo); |
| | | // if (!shallowLoc1.getLocSts().equals("O")) { |
| | | // loc = null; |
| | | // } |
| | | // } |
| | | // } |
| | | // if (null != loc) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // if (null == loc) { |
| | | // for (Integer row : rows) { |
| | | // if (Utils.isShallowLoc(slaveProperties, row)) { |
| | | // loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1()); |
| | | // |
| | | // if (null != loc) {//对应深库位非在库状态,不能移库 |
| | | // if (crn.getId() == 1) { |
| | | // if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) { |
| | | // continue; |
| | | // } |
| | | // } |
| | | // |
| | | // String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo()); |
| | | // LocMast deepLoc1 = locMastService.selectById(deepLoc); |
| | | // if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) { |
| | | // loc = null; |
| | | // } |
| | | // } |
| | | // |
| | | // if (null != loc) { |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // |
| | | // if (null == loc) { |
| | | // News.error("" + mark + "moveLocForDeepLoc" + " - 1" + " - 双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); |
| | | // return false; |
| | | //// throw new CoolException("双深库位 --- 浅库位阻塞异常! 待移转浅库位:" + shallowLoc.getLocNo()); |
| | | // } else { |
| | | // String deepLoc2 = Utils.getDeepLoc2(slaveProperties, loc.getLocNo()); |
| | | // if (deepLoc2 != null) { |
| | | // LocMast locnew = locMastService.selectById(deepLoc2); |
| | | // if (locnew != null && locnew.getLocSts().equals("O")) { |
| | | // loc = locnew; |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // try { |
| | | // // 获取工作号 |
| | | // int workNo = commonService.getWorkNo(0); |
| | | // // 保存工作档 |
| | | // WrkMast wrkMast = new WrkMast(); |
| | | // wrkMast.setWrkNo(workNo); |
| | | // wrkMast.setIoTime(new Date()); |
| | | // wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID |
| | | // wrkMast.setIoType(11); // 入出库状态: 11.库格移载 |
| | | // wrkMast.setIoPri(13D); |
| | | // wrkMast.setCrnNo(crn.getId()); |
| | | // wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 源库位 |
| | | // wrkMast.setLocNo(loc.getLocNo()); // 目标库位 |
| | | //// wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 满板 |
| | | // wrkMast.setFullPlt(shallowLoc.getLocSts().equals("D") ? "N" : "Y"); // 满板 |
| | | // wrkMast.setPicking("N"); // 拣料 |
| | | // wrkMast.setExitMk("N"); // 退出 |
| | | // wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 空板 |
| | | // wrkMast.setBarcode(shallowLoc.getBarcode()); // 托盘码 |
| | | // wrkMast.setLinkMis("N"); |
| | | // wrkMast.setAppeTime(new Date()); |
| | | // wrkMast.setModiTime(new Date()); |
| | | // int res = wrkMastMapper.insert(wrkMast); |
| | | // if (res == 0) { |
| | | // News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 保存工作档失败"); |
| | | //// throw new CoolException("保存工作档失败"); |
| | | // return true; |
| | | // } |
| | | // // 工作档明细保存 |
| | | // if (shallowLoc.getLocSts().equals("F")) { |
| | | // List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo())); |
| | | // |
| | | // for (LocDetl locDetl : locDetls) { |
| | | // WrkDetl wrkDetl = new WrkDetl(); |
| | | // wrkDetl.sync(locDetl); |
| | | // wrkDetl.setWrkNo(workNo); |
| | | // wrkDetl.setIoTime(new Date()); |
| | | // wrkDetl.setAnfme(locDetl.getAnfme()); |
| | | //// VersionUtils.setWrkDetl(wrkDetl, locDetl); // 版本控制 |
| | | // wrkDetl.setAppeTime(new Date()); |
| | | // wrkDetl.setModiTime(new Date()); |
| | | // if (!wrkDetlService.insert(wrkDetl)) { |
| | | // News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 保存工作档明细失败"); |
| | | //// throw new CoolException("保存工作档明细失败"); |
| | | // return true; |
| | | // } |
| | | // } |
| | | // } |
| | | // // 修改源库位状态 |
| | | // if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) { |
| | | // shallowLoc.setLocSts("R"); // R.出库预约 |
| | | // shallowLoc.setModiTime(new Date()); |
| | | // if (!locMastService.updateById(shallowLoc)) { |
| | | // News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 4" + " - 更新源库位状态失败"); |
| | | //// throw new CoolException("更新源库位状态失败"); |
| | | // return true; |
| | | // } |
| | | // } else { |
| | | // News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 5" + " - 源库位出库失败"); |
| | | //// throw new CoolException("源库位出库失败"); |
| | | // return true; |
| | | // } |
| | | // // 修改目标库位状态 |
| | | // if (loc.getLocSts().equals("O")) { |
| | | // loc.setLocSts("S"); // S.入库预约 |
| | | // loc.setModiTime(new Date()); |
| | | // if (!locMastService.updateById(loc)) { |
| | | // News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 6" + " - 更新目标库位状态失败"); |
| | | //// throw new CoolException("更新目标库位状态失败"); |
| | | // return true; |
| | | // } |
| | | // } else { |
| | | // News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 7" + " - 移转失败"); |
| | | //// throw new CoolException("移转失败"); |
| | | // return true; |
| | | // } |
| | | // } catch (Exception e) { |
| | | // News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 双深库位阻塞,对浅库位进行移转失败", e); |
| | | // } |
| | | // } |
| | | // |
| | | // |
| | | // } catch (Exception e) { |
| | | // News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 双深库位阻塞,对浅库位进行移转失败", e); |
| | | //// e.printStackTrace(); |
| | | //// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
| | | // } |
| | | // return true; |
| | | // } |
| | | |
| | | /** |
| | | * 堆垛机演示 ===>> 库位移转 |
| | | */ |