feat(wms): 添加钢卷单步分卷功能
- 在WmsMaterialCoil实体中新增exclusiveStatus字段用于标识独占状态 - 在WmsCoilPendingActionBo中新增remark字段用于存储操作备注 - 实现特殊分卷三步流程:startSpecialSplit锁定钢卷、createChildCoilInSpecialSplit创建子钢卷、completeSpecialSplit完成分卷 - 添加validateCoilOperationPermission方法验证钢卷操作权限防止并发冲突 - 在WmsMaterialCoilService中实现完整的特殊分卷业务逻辑 - 新增三个API接口分别对应特殊分卷的三个步骤 - 在查询条件中增加对exclusiveStatus字段的支持 - 完善错误处理和日志记录机制
This commit is contained in:
@@ -323,6 +323,78 @@ public class WmsMaterialCoilController extends BaseController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 特殊分卷 - 第一步:锁定钢卷
|
||||
* 设置钢卷独占状态
|
||||
*/
|
||||
@Log(title = "钢卷物料表", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/specialSplit/start")
|
||||
public R<Long> startSpecialSplit(
|
||||
@NotNull(message = "钢卷ID不能为空")
|
||||
@RequestParam Long coilId) {
|
||||
try {
|
||||
Boolean result = iWmsMaterialCoilService.startSpecialSplit(coilId);
|
||||
if (Boolean.TRUE.equals(result)) {
|
||||
return R.ok();
|
||||
}
|
||||
return R.fail("钢卷锁定失败");
|
||||
} catch (RuntimeException e) {
|
||||
return R.fail(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 特殊分卷 - 第二步:逐个创建子钢卷
|
||||
* 生成单个子钢卷并更新二维码信息
|
||||
*/
|
||||
@Log(title = "钢卷物料表", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/specialSplit/createChild")
|
||||
public R<WmsMaterialCoilVo> createChildCoilInSpecialSplit(
|
||||
@NotNull(message = "母卷ID不能为空")
|
||||
@RequestParam Long parentCoilId,
|
||||
|
||||
@NotNull(message = "待操作记录ID不能为空")
|
||||
@RequestParam Long pendingActionId,
|
||||
|
||||
@RequestBody @NotNull(message = "子钢卷数据不能为空")
|
||||
WmsMaterialCoilBo childCoilBo) {
|
||||
|
||||
try {
|
||||
WmsMaterialCoilVo result =
|
||||
iWmsMaterialCoilService.createChildCoilInSpecialSplit(
|
||||
parentCoilId, childCoilBo, pendingActionId
|
||||
);
|
||||
return R.ok(result);
|
||||
} catch (RuntimeException e) {
|
||||
return R.fail("创建子钢卷失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 特殊分卷 - 第三步:完成分卷操作
|
||||
* 批量更新二维码追溯信息,设置母卷为历史数据,解除独占状态
|
||||
*/
|
||||
@Log(title = "钢卷物料表", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/specialSplit/complete")
|
||||
public R<Map<String, Object>> completeSpecialSplit(
|
||||
@NotNull(message = "待操作记录ID不能为空")
|
||||
@RequestParam Long pendingActionId) {
|
||||
|
||||
try {
|
||||
Map<String, Object> result =
|
||||
iWmsMaterialCoilService.completeSpecialSplit(pendingActionId);
|
||||
return R.ok(result);
|
||||
} catch (RuntimeException e) {
|
||||
return R.fail("完成分卷失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user