feat(wms): 添加钢卷单步分卷功能

- 在WmsMaterialCoil实体中新增exclusiveStatus字段用于标识独占状态
- 在WmsCoilPendingActionBo中新增remark字段用于存储操作备注
- 实现特殊分卷三步流程:startSpecialSplit锁定钢卷、createChildCoilInSpecialSplit创建子钢卷、completeSpecialSplit完成分卷
- 添加validateCoilOperationPermission方法验证钢卷操作权限防止并发冲突
- 在WmsMaterialCoilService中实现完整的特殊分卷业务逻辑
- 新增三个API接口分别对应特殊分卷的三个步骤
- 在查询条件中增加对exclusiveStatus字段的支持
- 完善错误处理和日志记录机制
This commit is contained in:
2026-01-22 10:23:30 +08:00
parent a82c8ea825
commit ef1d56dce3
9 changed files with 402 additions and 0 deletions

View File

@@ -159,5 +159,36 @@ public interface IWmsMaterialCoilService {
*/
Map<String, Object> rollbackCoil(@NotNull(message = "当前钢卷ID不能为空") Long currentCoilId);
/**
* 特殊分卷 - 第一步:锁定钢卷
* 设置钢卷独占状态
*
* @param coilId 被分卷的钢卷ID
* @return 待操作记录ID
*/
Boolean startSpecialSplit(@NotNull(message = "钢卷ID不能为空") Long coilId);
/**
* 特殊分卷 - 第二步:逐个创建子钢卷
* 生成单个子钢卷并更新二维码信息,不设置母卷为历史数据
*
* @param parentCoilId 母卷ID
* @param childCoilBo 子钢卷数据
* @param pendingActionId 待操作记录ID
* @return 创建的子钢卷信息
*/
WmsMaterialCoilVo createChildCoilInSpecialSplit(@NotNull(message = "母卷ID不能为空") Long parentCoilId,
@NotNull(message = "子钢卷数据不能为空") WmsMaterialCoilBo childCoilBo,
@NotNull(message = "待操作记录ID不能为空") Long pendingActionId);
/**
* 特殊分卷 - 第三步:完成分卷操作
* 批量更新二维码追溯信息,设置母卷为历史数据,解除独占状态
*
* @param pendingActionId 待操作记录ID
* @return 操作结果
*/
Map<String, Object> completeSpecialSplit(@NotNull(message = "待操作记录ID不能为空") Long pendingActionId);
}