package cn.iocoder.yudao.module.mes.service.wm.transaction.dto;
|
|
import jakarta.validation.constraints.NotNull;
|
import lombok.Data;
|
import lombok.experimental.Accessors;
|
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
|
/**
|
* MES 库存事务 创建 Request DTO
|
*/
|
@Data
|
@Accessors(chain = true)
|
public class MesWmTransactionSaveReqDTO {
|
|
// ===== 事务核心 =====
|
|
/**
|
* 事务类型
|
*
|
* 枚举 {@link cn.iocoder.yudao.module.mes.enums.wm.MesWmTransactionTypeEnum}
|
*/
|
@NotNull(message = "事务类型不能为空")
|
private Integer type;
|
|
// ===== 业务来源 =====
|
|
/**
|
* 业务类型
|
*
|
* 对应 {@link cn.iocoder.yudao.module.mes.enums.MesBizTypeConstants}
|
*/
|
@NotNull(message = "业务类型不能为空")
|
private Integer bizType;
|
/**
|
* 业务主单 ID
|
*/
|
@NotNull(message = "业务主单 ID 不能为空")
|
private Long bizId;
|
/**
|
* 业务单号
|
*/
|
@NotNull(message = "业务单号不能为空")
|
private String bizCode;
|
/**
|
* 业务行 ID
|
*/
|
@NotNull(message = "业务行 ID 不能为空")
|
private Long bizLineId;
|
|
// ===== 物料维度 =====
|
|
/**
|
* 物料 ID
|
*/
|
@NotNull(message = "物料 ID 不能为空")
|
private Long itemId;
|
/**
|
* 变动数量(入库为正数,出库为负数)
|
*/
|
@NotNull(message = "变动数量不能为空")
|
private BigDecimal quantity;
|
/**
|
* 批次 ID
|
*/
|
private Long batchId;
|
/**
|
* 批次号
|
*/
|
private String batchCode;
|
|
// ===== 库存位置 =====
|
|
/**
|
* 仓库 ID
|
*/
|
@NotNull(message = "仓库 ID 不能为空")
|
private Long warehouseId;
|
/**
|
* 库区 ID
|
*/
|
@NotNull(message = "库区 ID 不能为空")
|
private Long locationId;
|
/**
|
* 库位 ID
|
*/
|
@NotNull(message = "库位 ID 不能为空")
|
private Long areaId;
|
|
// ===== 台账补充字段(入库时用于初始化 MesWmMaterialStockDO) =====
|
|
/**
|
* 供应商 ID(采购入库场景)
|
*/
|
private Long vendorId;
|
/**
|
* 入库时间(为空默认当前时间)
|
*/
|
private LocalDateTime receiptTime;
|
|
// ===== 关联 =====
|
|
/**
|
* 指定库存记录 ID(出库场景优先使用,避免重新匹配库存记录)
|
*/
|
private Long materialStockId;
|
|
/**
|
* 关联事务 ID(成对事务中,入库事务关联出库事务)
|
*/
|
private Long relatedTransactionId;
|
|
// ===== 可选控制(非存储字段) =====
|
|
/**
|
* 是否校验库存充足(默认 true;线边库消耗等场景设 false 允许负库存)
|
*/
|
private Boolean checkFlag;
|
|
}
|