Files
klp-oa/klp-wms/src/main/java/com/klp/domain/bo/WmsCoilPendingActionBo.java
Joshi ef1d56dce3 feat(wms): 添加钢卷单步分卷功能
- 在WmsMaterialCoil实体中新增exclusiveStatus字段用于标识独占状态
- 在WmsCoilPendingActionBo中新增remark字段用于存储操作备注
- 实现特殊分卷三步流程:startSpecialSplit锁定钢卷、createChildCoilInSpecialSplit创建子钢卷、completeSpecialSplit完成分卷
- 添加validateCoilOperationPermission方法验证钢卷操作权限防止并发冲突
- 在WmsMaterialCoilService中实现完整的特殊分卷业务逻辑
- 新增三个API接口分别对应特殊分卷的三个步骤
- 在查询条件中增加对exclusiveStatus字段的支持
- 完善错误处理和日志记录机制
2026-01-22 10:23:30 +08:00

114 lines
2.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.klp.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 钢卷待操作业务对象 wms_coil_pending_action
*
* @author Joshi
* @date 2025-11-03
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsCoilPendingActionBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long actionId;
/**
* 关联的钢卷ID
*/
// 对于入库操作这个时候还不存在钢卷因此无法关联钢卷ID因此先关联为0如果id为0则跟未关联是相同的
@NotNull(message = "关联的钢卷ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long coilId;
/**
* 当前钢卷号
*/
@NotBlank(message = "当前钢卷号不能为空", groups = { AddGroup.class, EditGroup.class })
private String currentCoilNo;
/**
* 操作类型1=分卷2=合卷3=更新)
*/
@NotNull(message = "操作类型不能为空", groups = { AddGroup.class, EditGroup.class })
private Integer actionType;
/**
* 操作状态0=待处理1=处理中2=已完成3=已取消)
*/
private Integer actionStatus;
/**
* 扫码时间
*/
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "GMT+8")
private Date scanTime;
/**
* 扫码设备(移动端设备信息)
*/
private String scanDevice;
/**
* 优先级0=普通1=重要2=紧急)
*/
private Integer priority;
/**
* 来源类型scan=扫码manual=手动创建)
*/
private String sourceType;
/**
* 所在库区ID
*/
private Long warehouseId;
/**
* 操作人ID
*/
private Long operatorId;
/**
* 操作人姓名
*/
private String operatorName;
/**
* 处理时间
*/
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "GMT+8")
private Date processTime;
/**
* 完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "GMT+8")
private Date completeTime;
//开始时间和结束时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
//备注
private String remark;
}