package com.klp.domain.bo; import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import com.klp.common.core.domain.BaseEntity; import com.klp.common.core.validate.AddGroup; import com.klp.common.core.validate.EditGroup; import lombok.Data; import lombok.EqualsAndHashCode; import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * 钢卷物料表业务对象 wms_material_coil * * @author Joshi * @date 2025-07-18 */ @Data @EqualsAndHashCode(callSuper = true) public class WmsMaterialCoilBo extends BaseEntity { /** * 主键ID */ private Long coilId; /** * 入场钢卷号(年份后两位+月份+当月第几个,如25100001、25102422) */ @NotBlank(message = "入场钢卷号不能为空", groups = { AddGroup.class, EditGroup.class }) private String enterCoilNo; /** * 当前钢卷号(入场钢卷号和当前钢卷号可能不同) */ private String currentCoilNo; /** * 厂家原料卷号 */ private String supplierCoilNo; /** * 数据类型(0=历史,1=现存) */ private Integer dataType; /** * 所在库区ID */ private Long warehouseId; /** * 下一库区ID */ private Long nextWarehouseId; /** * 关联二维码ID(wms_generate_record.record_id) */ private Long qrcodeRecordId; /** * 班组 */ private String team; /** * 是否合卷/分卷(0=否,1=分卷,2=合卷) */ private Integer hasMergeSplit; /** * 父卷号(合卷或分卷时用,逗号分隔) */ private String parentCoilNos; /** * 物品类型(raw_material/product) */ private String itemType; /** * 物品ID(指向原材料或产品主键) */ private Long itemId; /** * 毛重(kg) */ private BigDecimal grossWeight; /** * 净重(kg) */ private BigDecimal netWeight; /** * 状态(0=在库,1=在途,2=已出库) */ private Integer status; /** * 备注 */ private String remark; /** * 分卷/合卷的新钢卷列表(用于批量更新) */ private List newCoils; //时间格式化 @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; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date exportTime; private String itemIds; private Long actualWarehouseId; //材料类型 private String materialType; /** * 质量状态(0=正常,1=待检,2=不合格) */ private String qualityStatus; /** * 切边要求 */ private String trimmingRequirement; /** * 打包状态(0=未打包,1=已打包) */ private String packingStatus; /** * 包装要求 */ private String packagingRequirement; /** * 最小异常数量(用于筛选异常数量 >= 此值的钢卷) */ private Integer minAbnormalCount; }