| | |
| | | int deviceNo = 0; |
| | | Loc loc = new Loc(); |
| | | InTaskMsgDto inTaskMsgDto = new InTaskMsgDto(); |
| | | locTypeDto.setLocType1(18); |
| | | List<Loc> loc1 = locService.list(new LambdaQueryWrapper<Loc>() |
| | | .eq(Loc::getAreaId, area) |
| | | .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type) |
| | |
| | | inTaskMsgDto.setLocNo(locNo); |
| | | return inTaskMsgDto; |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @date 2026/2/6 |
| | | * @description: 申请入库任务,分配库位 |
| | | * @version 1.0 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R allocateLocation(String barcode, String staNo, Integer type) { |
| | | log.info("========== 开始申请入库任务,分配库位 =========="); |
| | | log.info("料箱码:{},入库站点:{},入库类型:{}", barcode, staNo, type); |
| | | |
| | | // 构建 TaskInParam 参数,与 /wcs/create/in/task 接口参数一致 |
| | | TaskInParam param = new TaskInParam(); |
| | | param.setBarcode(barcode); |
| | | param.setSourceStaNo(staNo); |
| | | param.setIoType(TaskType.TASK_TYPE_IN.type); // 入库类型 |
| | | param.setLocType1(type); // 库位类型(高低检测信号) |
| | | param.setUser(1L); // 默认用户ID,可以根据实际需求调整 |
| | | |
| | | // 调用 createInTask 方法,创建完整的入库任务 |
| | | // 该方法会执行以下流程: |
| | | // 1. 验证设备站点 |
| | | // 2. 验证组拖状态 |
| | | // 3. 生成任务编码 |
| | | // 4. 获取库位号 |
| | | // 5. 创建并保存任务 |
| | | // 6. 更新库位状态 |
| | | // 7. 获取并验证组拖明细 |
| | | // 8. 创建并保存任务明细 |
| | | // 9. 更新组托状态 |
| | | InTaskMsgDto msgDto = createInTask(param); |
| | | |
| | | log.info("========== 申请入库任务成功 =========="); |
| | | log.info("任务编码:{},库位号:{}", msgDto.getWorkNo(), msgDto.getLocNo()); |
| | | |
| | | // 返回结果,只返回库位号(根据接口文档要求) |
| | | JSONObject result = new JSONObject(); |
| | | result.put("locNo", msgDto.getLocNo()); |
| | | return R.ok(result); |
| | | } |
| | | } |