diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java index 8700379..1542ab3 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java @@ -45,4 +45,18 @@ public class StructIvtController { iMdPbStoragevehicleextService.statusChange(whereJson); return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/ivtLock") + @Log("库存锁定") + public ResponseEntity
+ * + * @author Liuxy + * @since 2025-08-25 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pointToPoint") +@Slf4j +public class PointToPointController { + + @Autowired + private PointToPointService pointToPointService; + + @GetMapping + @Log("获取点对点任务信息") + public ResponseEntity+ * 点对点送货 服务类 + *
+ * + * @author Liuxy + * @since 2025-08-25 + */ +public interface PointToPointService { + + /** + * 分页查询 + * + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage+ * 点对点送货 实现类 + *
+ * + * @author Liuxy + * @since 2025-08-25 + */ +@Service +public class PointToPointServiceImpl implements PointToPointService { + + /** + * 任务服务 + */ + @Autowired + private SchBaseTaskMapper schBaseTaskMapper; + + /** + * 点对点任务类 + */ + @Resource + private PdaPointTask pdaPointTask; + + + @Override + public IPage+ * 拼箱入库任务类 + *
+ * + * @author Liuxy + * @since 2025-08-27 + */ +@Component(value = "PieceBoxInTask") +@TaskType("PieceBoxInTask") +public class PieceBoxInTask extends AbstractTask { + @Autowired + private ISchBaseTaskService taskService; + + /** + * 入库服务 + */ + @Resource + private IRawAssistIStorService rawAssistIStorService; + + /** + * 分配明细mapper + */ + @Resource + private IOStorInvDisMapper ioStorInvDisMapper; + + /** + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + + /** + * 组盘记录服务 + */ + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; + + /** + * 拼箱主表服务 + */ + @Autowired + private IStIvtPieceBoxMstService iStIvtPieceBoxMstService; + + /** + * 拼箱明细服务 + */ + @Autowired + private IStIvtPieceBoxDtlService iStIvtPieceBoxDtlService; + + @Override + public String create(JSONObject json) { + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + task.setTask_status(TaskStatus.CREATE.getCode()); + task.setConfig_code(PieceBoxInTask.class.getSimpleName()); + task.setPoint_code1(json.getString("point_code1")); + task.setPoint_code2(json.getString("point_code2")); + task.setVehicle_code(json.getString("vehicle_code")); + task.setMaterial_id(json.getString("material_id")); + task.setMaterial_qty(json.getBigDecimal("material_qty")); + task.setGroup_id(json.getString("group_id")); + task.setRequest_param(json.toString()); + task.setTask_type(TaskEnum.TASK_TYPE.code("料箱")); + task.setPriority(json.getString("Priority")); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setCreate_time(DateUtil.now()); + taskService.save(task); + + // 下发任务 + this.sendTaskOne(task.getTask_id()); + return task.getTask_id(); + } + + @Override + public AcsTaskDto sendAcsParam(String taskId) { + SchBaseTask taskDao = taskService.getById(taskId); + + // 组织下发给acs的数据 + AcsTaskDto acsTaskDto = new AcsTaskDto(); + acsTaskDto.setExt_task_id(taskDao.getTask_id()); + acsTaskDto.setTask_code(taskDao.getTask_code()); + acsTaskDto.setStart_device_code(taskDao.getPoint_code1()); + acsTaskDto.setNext_device_code(taskDao.getPoint_code2()); + acsTaskDto.setPriority(taskDao.getPriority()); + acsTaskDto.setVehicle_code(taskDao.getVehicle_code()); + acsTaskDto.setTask_type("1"); + + return acsTaskDto; + } + + @Override + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getByCode(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成!"); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException("该任务已取消!"); + } + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj); + } + + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + if (!TaskStatus.CREATE.getCode().equals(taskObj.getTask_status())) { + throw new BadRequestException("任务状态必须为生成才能取消任务"); + } + this.cancelTask(taskObj); + + } + + @Transactional(rollbackFor = Exception.class) + public void finishTask(SchBaseTask taskObj) { + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark("已完成"); + taskService.updateById(taskObj); + rawAssistIStorService.taskFinish(taskObj); + // 更新起点 + iSchBasePointService.update( + new UpdateWrapper+ * 拼箱移库任务类 + *
+ * + * @author Liuxy + * @since 2025-08-21 + */ +@Component(value = "PieceBoxMoveTask") +@TaskType("PieceBoxMoveTask") +public class PieceBoxMoveTask extends AbstractTask { + + /** + * 任务服务类 + */ + @Autowired + private ISchBaseTaskService taskService; + + /** + * 移库主表服务类 + */ + @Autowired + private IStIvtMoveinvService iStIvtMoveinvService; + + /** + * 移库明细服务类 + */ + @Autowired + private IStIvtMoveinvdtlService iStIvtMoveinvdtlService; + + /** + * 仓位服务 + */ + @Autowired + private IStructattrService iStructattrService; + + /** + * 点位服务 + */ + @Autowired + private ISchBasePointService iSchBasePointService; + + /** + * 库存记录服务 + */ + @Autowired + private IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + /** + * 组盘记录服务 + */ + @Autowired + private IMdPbGroupplateService iMdPbGroupplateService; + + /** + * 拼箱主表服务 + */ + @Autowired + private IStIvtPieceBoxMstService iStIvtPieceBoxMstService; + + /** + * 拼箱明细服务 + */ + @Autowired + private IStIvtPieceBoxDtlService iStIvtPieceBoxDtlService; + + @Override + public String create(JSONObject json) { + SchBaseTask task = new SchBaseTask(); + task.setTask_id(IdUtil.getStringId()); + task.setTask_code(CodeUtil.getNewCode("TASK_CODE")); + task.setTask_status(TaskStatus.CREATE.getCode()); + task.setConfig_code(PieceBoxMoveTask.class.getSimpleName()); + task.setPoint_code1(json.getString("point_code1")); + task.setPoint_code2(json.getString("point_code2")); + task.setVehicle_code(json.getString("vehicle_code")); + task.setGroup_id(json.getString("group_id")); + task.setRequest_param(json.toString()); + task.setPriority(json.getString("Priority")); + task.setCreate_id(SecurityUtils.getCurrentUserId()); + task.setCreate_name(SecurityUtils.getCurrentNickName()); + task.setCreate_time(DateUtil.now()); + taskService.save(task); + + // 下发任务 + this.sendTaskOne(task.getTask_id()); + return task.getTask_id(); + } + + @Override + public AcsTaskDto sendAcsParam(String taskId) { + SchBaseTask taskDao = taskService.getById(taskId); + + // 组织下发给acs的数据 + AcsTaskDto acsTaskDto = new AcsTaskDto(); + acsTaskDto.setExt_task_id(taskDao.getTask_id()); + acsTaskDto.setTask_code(taskDao.getTask_code()); + acsTaskDto.setStart_device_code(taskDao.getPoint_code1()); + acsTaskDto.setNext_device_code(taskDao.getPoint_code2()); + acsTaskDto.setPriority(taskDao.getPriority()); + acsTaskDto.setVehicle_code(taskDao.getVehicle_code()); + acsTaskDto.setTask_type("1"); + return acsTaskDto; + } + + @Override + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getByCode(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成!"); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException("该任务已取消!"); + } + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { + // 更新明细状态 + iStIvtMoveinvService.executing(taskObj); + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj); + } + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + if (Integer.parseInt(taskObj.getTask_status()) > Integer.parseInt(TaskStatus.CREATE.getCode())) { + throw new BadRequestException("只能取消生成中的任务!"); + } + this.cancelTask(taskObj); + } + + @Transactional + public void finishTask(SchBaseTask taskObj) { + // 完成任务 + this.taskConfirm(taskObj.getTask_code()); + // 更新任务状态 + taskObj.setRemark("已完成"); + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskService.updateById(taskObj); + } + + @Transactional + public void cancelTask(SchBaseTask taskObj) { + // 删除任务 + StIvtMoveinvdtl dtlDao = iStIvtMoveinvdtlService.getOne( + new QueryWrapper+ * 拼箱管理 控制层 + *
+ * + * @author Liuxy + * @since 2025-08-26 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/pieceBox") +@Slf4j +public class PieceBoxController { + + @Autowired + private IStIvtPieceBoxMstService iStIvtPieceBoxMstService; + + @GetMapping + @Log("分页查询") + public ResponseEntity
* }
+ * @return task_id 任务标识
*/
- void divPoint(Map whereJson);
+ String divPoint(Map whereJson);
/**
* 强制确认
diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java
index f3fd172..d1fecd2 100644
--- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java
+++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/IStIvtMoveinvService.java
@@ -110,4 +110,11 @@ public interface IStIvtMoveinvService extends IService
+ * 拼单信息明细表 服务类
+ *
+ * 拼单信息主表 服务类
+ *
+ * 拼单信息明细表
+ *
+ * 拼单信息主表
+ *
+ * 拼单信息明细表 Mapper 接口
+ *
+ * 拼单信息主表 Mapper 接口
+ *
+ * 拼单管理明细dto
+ *
+ * 拼单管理dto
+ *
+ * 拼单信息明细表 服务实现类
+ *
+ * 拼单信息主表 服务实现类
+ *