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

@@ -10,6 +10,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.helper.LoginHelper;
import com.klp.domain.WmsMaterialCoil;
import com.klp.domain.vo.WmsMaterialCoilVo;
import com.klp.mapper.WmsMaterialCoilMapper;
import com.klp.service.IWmsMaterialCoilService;
import com.klp.system.service.ISysUserService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -35,6 +39,7 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer
private final WmsCoilPendingActionMapper baseMapper;
private final ISysUserService userService;
private final WmsMaterialCoilMapper materialCoilMapper;
/**
* 查询钢卷待操作
@@ -123,6 +128,12 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer
public Boolean insertByBo(WmsCoilPendingActionBo bo) {
WmsCoilPendingAction add = BeanUtil.toBean(bo, WmsCoilPendingAction.class);
validEntityBeforeSave(add);
if (add.getCoilId() != null){
WmsMaterialCoil materialCoil = materialCoilMapper.selectById(add.getCoilId());
if (materialCoil.getExclusiveStatus() !=0) {
throw new RuntimeException("该钢卷正在单步分条,请勿重复操作!");
}
}
// 设置默认值
if (add.getActionStatus() == null) {
add.setActionStatus(0); // 默认待处理