| | |
| | | String shallowLocNo = LocUtils.getShallowLoc(loc1.getCode()); |
| | | // 检测目标库位是否为空库位 |
| | | Loc shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLocNo)); |
| | | if (shallowLoc != null && shallowLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) { |
| | | if (shallowLoc != null && Objects.equals(shallowLoc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) { |
| | | if (LocUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) { |
| | | loc = shallowLoc; |
| | | channel = shallowLoc.getChannel(); |
| | |
| | | loc = null; |
| | | } |
| | | // 递归查询 |
| | | if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) { |
| | | if (Cools.isEmpty(loc) || !Objects.equals(loc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) { |
| | | // 当前巷道无空库位时,递归调整至下一巷道,检索全部巷道无果后,跳出递归 |
| | | if (times < rowCount * 2) { |
| | | times = times + 1; |
| | |
| | | Loc loc = new Loc(); |
| | | InTaskMsgDto inTaskMsgDto = new InTaskMsgDto(); |
| | | locTypeDto.setLocType1(18); |
| | | List<Loc> loc1 = locService.list(new LambdaQueryWrapper<Loc>() |
| | | LambdaQueryWrapper<Loc> locQw = new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getAreaId, area) |
| | | .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type) |
| | | .eq(Loc::getType, locTypeDto.getLocType1()) |
| | | .ge(Loc::getRow, deviceBind.getStartRow()) |
| | | .le(Loc::getRow, deviceBind.getEndRow()) |
| | | .orderByAsc(Loc::getLev) |
| | | .orderByAsc(Loc::getCol) |
| | | .orderByAsc(Loc::getRow) |
| | | ); |
| | | .eq(Loc::getType, locTypeDto.getLocType1()); |
| | | if (deviceBind.getStartRow() != null && deviceBind.getEndRow() != null) { |
| | | locQw.ge(Loc::getRow, deviceBind.getStartRow()).le(Loc::getRow, deviceBind.getEndRow()); |
| | | } |
| | | locQw.orderByAsc(Loc::getLev).orderByAsc(Loc::getCol).orderByAsc(Loc::getRow); |
| | | List<Loc> loc1 = locService.list(locQw); |
| | | // 若按巷道行范围未查到空库位,则放宽条件:不限制行范围,仅按库区+空库+类型查询(与 loc/page 行为一致) |
| | | if (Cools.isEmpty(loc1) && times == 0) { |
| | | loc1 = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getAreaId, area) |
| | | .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type) |
| | | .eq(Loc::getType, locTypeDto.getLocType1()) |
| | | .orderByAsc(Loc::getLev) |
| | | .orderByAsc(Loc::getCol) |
| | | .orderByAsc(Loc::getRow) |
| | | ); |
| | | } |
| | | for (Loc loc2 : loc1) { |
| | | if (!LocUtils.locMoveCheckLocTypeComplete(loc2, locTypeDto)) { |
| | | continue; |
| | |
| | | ); |
| | | if (Cools.isEmpty(deviceSite)) { |
| | | deviceNo = 0; |
| | | loc = null; |
| | | // 有可用空库位但未配置路径时,用源站点作为目标站点,仍返回该库位,避免误报“没有空库位” |
| | | if (loc != null && loc.getId() != null && Objects.equals(loc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) { |
| | | inTaskMsgDto.setStaNo(sourceStaNo); |
| | | } else { |
| | | loc = null; |
| | | } |
| | | } else { |
| | | inTaskMsgDto.setStaNo(deviceSite.getDeviceSite()); |
| | | } |
| | | // 递归查询 |
| | | if (Cools.isEmpty(loc) || !loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) { |
| | | if (Cools.isEmpty(loc) || !Objects.equals(loc.getUseStatus(), LocStsType.LOC_STS_TYPE_O.type)) { |
| | | // 当前巷道无空库位时,递归调整至下一巷道,检索全部巷道无果后,跳出递归 |
| | | if (times < 5) { |
| | | times = times + 1; |
| | |
| | | // 情况1:如果是拣料/盘点入库任务,状态199已经在createInTask中更新为2了 |
| | | // 情况2:如果是新创建的任务(无订单号组托),状态是1,需要更新为2 |
| | | // 情况3:如果状态已经是2,不需要更新 |
| | | if (task.getTaskStatus().equals(TaskStsType.GENERATE_IN.id)) { |
| | | Integer taskStatus = task.getTaskStatus(); |
| | | if (taskStatus != null && taskStatus.equals(TaskStsType.GENERATE_IN.id)) { |
| | | log.info("新创建的入库任务(无订单号组托),RCS申请入库时更新为状态2 - 任务编码:{}", task.getTaskCode()); |
| | | Long loginUserId = SystemAuthUtils.getLoginUserId(); |
| | | if (loginUserId == null) { |
| | |
| | | log.warn("新创建的入库任务状态更新为2失败,可能状态已变更 - 任务编码:{},当前状态:{}", |
| | | task.getTaskCode(), task.getTaskStatus()); |
| | | } |
| | | } else if (task.getTaskStatus().equals(TaskStsType.WCS_EXECUTE_IN.id)) { |
| | | } else if (taskStatus != null && taskStatus.equals(TaskStsType.WCS_EXECUTE_IN.id)) { |
| | | log.info("入库任务状态已经是2(RCS任务已下发),无需更新 - 任务编码:{}", task.getTaskCode()); |
| | | } else { |
| | | log.info("入库任务当前状态:{},RCS申请入库时保持当前状态 - 任务编码:{}", |
| | | task.getTaskStatus(), task.getTaskCode()); |
| | | taskStatus, task.getTaskCode()); |
| | | } |
| | | |
| | | log.info("========== RCS-申请入库任务成功 =========="); |