- 在WmsMaterialCoil实体中新增exclusiveStatus字段用于标识独占状态 - 在WmsCoilPendingActionBo中新增remark字段用于存储操作备注 - 实现特殊分卷三步流程:startSpecialSplit锁定钢卷、createChildCoilInSpecialSplit创建子钢卷、completeSpecialSplit完成分卷 - 添加validateCoilOperationPermission方法验证钢卷操作权限防止并发冲突 - 在WmsMaterialCoilService中实现完整的特殊分卷业务逻辑 - 新增三个API接口分别对应特殊分卷的三个步骤 - 在查询条件中增加对exclusiveStatus字段的支持 - 完善错误处理和日志记录机制
114 lines
2.8 KiB
Java
114 lines
2.8 KiB
Java
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;
|
||
}
|
||
|