feat(wms): 添加钢卷回滚功能替代原有的复活功能
- 将原有的reviveCoil方法重命名为rollbackCoil,实现更精确的回滚操作
- 修改接口路径从GET /reviveCoil/{coilId}改为POST /rollback/{currentCoilId}
- 新增详细的回滚验证逻辑,包括检查数据类型、删除标志和发货状态
- 实现基于二维码记录的钢卷历史追踪,支持撤销更新、合卷和分卷操作
- 添加回滚操作的阻止机制,防止对初始创建、合卷产物和分卷产物进行回滚
- 完善回滚过程中的库位释放和数据恢复流程
- 更新二维码记录以记录回滚操作步骤和相关信息
This commit is contained in:
@@ -301,30 +301,28 @@ public class WmsMaterialCoilController extends BaseController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 复活历史钢卷
|
||||
* 将dataType=0的历史钢卷恢复为dataType=1的当前钢卷
|
||||
* 同时清空实际库位绑定,并检查当前钢卷号是否重复
|
||||
* 回滚钢卷操作
|
||||
* 根据当前钢卷ID找到历史钢卷并恢复,删除当前钢卷
|
||||
* 用于撤销单个更新、合卷或分卷操作
|
||||
*
|
||||
* @param coilId 钢卷ID
|
||||
* @return 复活结果,包含success状态、错误信息、钢卷ID和当前钢卷号
|
||||
* @param currentCoilId 当前钢卷ID(需要回滚的钢卷)
|
||||
* @return 操作结果,包含恢复的历史钢卷信息
|
||||
*/
|
||||
@Log(title = "钢卷物料表", businessType = BusinessType.UPDATE)
|
||||
@GetMapping("/reviveCoil/{coilId}")
|
||||
public R<Map<String, Object>> reviveCoil(
|
||||
@NotNull(message = "钢卷ID不能为空")
|
||||
@PathVariable("coilId") Long coilId) {
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/rollback/{currentCoilId}")
|
||||
public R<Map<String, Object>> rollbackCoil(
|
||||
@NotNull(message = "当前钢卷ID不能为空")
|
||||
@PathVariable("currentCoilId") Long currentCoilId) {
|
||||
try {
|
||||
Map<String, Object> result = iWmsMaterialCoilService.reviveCoil(coilId);
|
||||
// 根据业务结果返回成功/失败的统一响应
|
||||
if (Boolean.TRUE.equals(result.get("success"))) {
|
||||
return R.ok(result);
|
||||
} else {
|
||||
return R.fail(result.get("message").toString(), result);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return R.fail("复活钢卷失败:" + e.getMessage());
|
||||
Map<String, Object> rollbackResult = iWmsMaterialCoilService.rollbackCoil(currentCoilId);
|
||||
return R.ok(rollbackResult);
|
||||
} catch (RuntimeException e) {
|
||||
return R.fail("回滚失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user