2025-10-28 12:20:20 +08:00
|
|
|
|
package com.klp.domain.bo;
|
|
|
|
|
|
|
2025-12-02 13:28:52 +08:00
|
|
|
|
import com.alibaba.excel.annotation.ExcelProperty;
|
2025-12-10 14:34:19 +08:00
|
|
|
|
import com.baomidou.mybatisplus.annotation.TableField;
|
2025-10-31 11:38:06 +08:00
|
|
|
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
2025-10-28 12:20:20 +08:00
|
|
|
|
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;
|
2025-10-31 11:38:06 +08:00
|
|
|
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
|
|
|
|
|
2025-10-28 12:20:20 +08:00
|
|
|
|
import javax.validation.constraints.*;
|
2025-10-28 15:03:08 +08:00
|
|
|
|
import java.math.BigDecimal;
|
2025-10-31 11:38:06 +08:00
|
|
|
|
import java.util.Date;
|
2025-10-28 12:20:20 +08:00
|
|
|
|
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;
|
|
|
|
|
|
|
2026-01-15 17:05:47 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 所在库区IDs(逗号分隔)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String warehouseIds;
|
|
|
|
|
|
|
2025-10-28 12:20:20 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 下一库区ID
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Long nextWarehouseId;
|
|
|
|
|
|
|
2026-02-06 15:23:50 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 下一库区IDs(逗号分隔)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String nextWarehouseIds;
|
|
|
|
|
|
|
2025-10-28 12:20:20 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 关联二维码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;
|
|
|
|
|
|
|
2025-10-28 15:03:08 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 毛重(kg)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private BigDecimal grossWeight;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 净重(kg)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private BigDecimal netWeight;
|
|
|
|
|
|
|
2025-10-28 12:20:20 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 状态(0=在库,1=在途,2=已出库)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Integer status;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 备注
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String remark;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 分卷/合卷的新钢卷列表(用于批量更新)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private List<WmsMaterialCoilBo> newCoils;
|
|
|
|
|
|
|
2026-03-16 14:10:17 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 操作记录ID(用于合卷操作关联)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Long actionId;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 操作类型(1=分卷,2=合卷,3=更新)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Integer actionType;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 合卷后的新钢卷ID(用于返回)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Long mergedCoilId;
|
|
|
|
|
|
|
2025-10-31 11:38:06 +08:00
|
|
|
|
//时间格式化
|
|
|
|
|
|
@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;
|
|
|
|
|
|
|
2025-12-02 13:28:52 +08:00
|
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
private Date exportTime;
|
|
|
|
|
|
|
2025-11-01 11:45:58 +08:00
|
|
|
|
private String itemIds;
|
|
|
|
|
|
|
2025-11-03 13:47:38 +08:00
|
|
|
|
private Long actualWarehouseId;
|
|
|
|
|
|
|
2025-11-11 10:36:35 +08:00
|
|
|
|
//材料类型
|
2026-01-12 17:15:30 +08:00
|
|
|
|
@NotBlank(message = "材料类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
2025-11-11 10:36:35 +08:00
|
|
|
|
private String materialType;
|
|
|
|
|
|
|
2025-11-14 09:44:47 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 质量状态(0=正常,1=待检,2=不合格)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String qualityStatus;
|
|
|
|
|
|
|
2026-04-02 14:24:52 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 质量状态多选查询
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String qualityStatusCsv;
|
|
|
|
|
|
|
2025-11-14 09:44:47 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 切边要求
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String trimmingRequirement;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 打包状态(0=未打包,1=已打包)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String packingStatus;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 包装要求
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String packagingRequirement;
|
|
|
|
|
|
|
2025-12-04 15:26:40 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 最小异常数量(用于筛选异常数量 >= 此值的钢卷)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Integer minAbnormalCount;
|
|
|
|
|
|
|
2025-12-08 13:55:17 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 钢卷ID列表(逗号分隔,用于根据ID列表查询钢卷)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String coilIds;
|
|
|
|
|
|
|
2025-12-10 14:34:19 +08:00
|
|
|
|
// 筛选类型
|
|
|
|
|
|
private String selectType;
|
|
|
|
|
|
// 物品名称
|
|
|
|
|
|
private String itemName;
|
2025-12-09 16:11:28 +08:00
|
|
|
|
// 材质(两表通用字段名:product.material / raw_material.material)
|
|
|
|
|
|
private String itemMaterial;
|
|
|
|
|
|
// 厂家(两表通用字段名:product.manufacturer / raw_material.manufacturer)
|
|
|
|
|
|
private String itemManufacturer;
|
|
|
|
|
|
// 表面处理详情(两表通用字段名:surface_treatment_desc)
|
|
|
|
|
|
private String itemSurfaceTreatmentDesc;
|
|
|
|
|
|
// 锌层厚度(两表通用字段名:zinc_layer)
|
|
|
|
|
|
private String itemZincLayer;
|
2025-12-15 09:21:19 +08:00
|
|
|
|
//规格
|
|
|
|
|
|
private String itemSpecification;
|
|
|
|
|
|
|
2025-12-10 14:15:08 +08:00
|
|
|
|
private Boolean onlyUnshippedAndUnplanned;
|
|
|
|
|
|
|
2026-01-27 14:47:31 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 是否排除已被发货单明细绑定的钢卷(true=列表不返回已绑定钢卷)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Boolean excludeBound;
|
|
|
|
|
|
|
2026-03-23 14:04:54 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 是否排除已打包的钢卷(true=列表不返回已打包钢卷)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Boolean excludePacked;
|
|
|
|
|
|
|
2026-01-27 14:47:31 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 是否在列表中返回“发货单明细绑定信息”(true=返回 bound + 绑定来源信息)
|
|
|
|
|
|
* 默认不返回,避免不需要的场景变慢。
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Boolean includeBindInfo;
|
|
|
|
|
|
|
2025-12-17 16:16:18 +08:00
|
|
|
|
//销售id
|
|
|
|
|
|
private Long saleId;
|
2025-12-29 14:38:25 +08:00
|
|
|
|
|
2026-03-23 10:02:33 +08:00
|
|
|
|
//销售人员姓名
|
|
|
|
|
|
private String saleName;
|
|
|
|
|
|
|
2025-12-29 14:38:25 +08:00
|
|
|
|
|
|
|
|
|
|
//新增长度字段
|
|
|
|
|
|
private BigDecimal length;
|
2026-01-10 16:20:27 +08:00
|
|
|
|
|
2026-04-01 14:50:56 +08:00
|
|
|
|
// 新增的在钢卷表中的表面处理
|
|
|
|
|
|
private String coilSurfaceTreatment;
|
|
|
|
|
|
|
2026-01-10 16:20:27 +08:00
|
|
|
|
//新增通过创建时间
|
|
|
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
private Date byCreateTimeStart;
|
|
|
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
private Date byCreateTimeEnd;
|
2026-01-11 08:55:45 +08:00
|
|
|
|
|
|
|
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
private Date byExportTimeStart;
|
|
|
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
private Date byExportTimeEnd;
|
2026-01-13 14:17:10 +08:00
|
|
|
|
|
|
|
|
|
|
// 仅查询废品(质量状态为 D+、D、D-)
|
|
|
|
|
|
private Boolean onlyScrap;
|
2026-01-14 11:05:25 +08:00
|
|
|
|
|
|
|
|
|
|
private String exportBy;
|
2026-01-21 18:02:29 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 调制度
|
|
|
|
|
|
private String temperGrade;
|
2026-03-07 11:28:39 +08:00
|
|
|
|
|
|
|
|
|
|
// 业务用途(如:生产领用、销售发货、样品送检、内部调拨等)
|
|
|
|
|
|
private String businessPurpose;
|
|
|
|
|
|
|
|
|
|
|
|
// 是否与订单相关(0=否,1=是)
|
|
|
|
|
|
private Integer isRelatedToOrder;
|
|
|
|
|
|
|
2026-01-21 18:02:29 +08:00
|
|
|
|
// 镀层种类
|
|
|
|
|
|
private String coatingType;
|
2026-01-22 10:23:30 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 独占状态(0=未独占,1=特殊分卷中)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private Integer exclusiveStatus;
|
2026-01-28 14:48:13 +08:00
|
|
|
|
|
|
|
|
|
|
// 接收前端传来是否排序的字段 OrderBy
|
|
|
|
|
|
@TableField(exist = false)
|
2026-01-28 14:48:49 +08:00
|
|
|
|
private Boolean orderBy;
|
2026-01-29 16:04:01 +08:00
|
|
|
|
|
|
|
|
|
|
// 父钢卷id
|
|
|
|
|
|
private String parentCoilId;
|
2026-03-05 16:30:18 +08:00
|
|
|
|
|
|
|
|
|
|
// 已绑定钢卷列表中,未发货(status=0)的排在前面
|
|
|
|
|
|
@TableField(exist = false)
|
|
|
|
|
|
private Boolean statusFirst;
|
2026-03-12 16:32:09 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 实测长度
|
|
|
|
|
|
*/
|
|
|
|
|
|
private BigDecimal actualLength;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 实测宽度
|
|
|
|
|
|
*/
|
|
|
|
|
|
private BigDecimal actualWidth;
|
2026-03-17 13:54:17 +08:00
|
|
|
|
|
2026-03-26 10:41:50 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 实测厚度(单位:毫米)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String actualThickness;
|
|
|
|
|
|
|
2026-03-17 13:54:17 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 生产开始时间
|
|
|
|
|
|
*/
|
|
|
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
private Date productionStartTime;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生产结束时间
|
|
|
|
|
|
*/
|
|
|
|
|
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
|
|
|
|
|
private Date productionEndTime;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生产耗时(单位:分钟)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private BigDecimal productionDuration;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 预留宽度(单位:毫米)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private BigDecimal reservedWidth;
|
2026-03-19 10:54:21 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 操作记录ID列表(逗号分隔,用于根据actionIds查询钢卷)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String actionIds;
|
2026-03-19 11:52:35 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 钢卷异常信息列表(用于更新钢卷时同时插入异常信息)
|
|
|
|
|
|
*/
|
|
|
|
|
|
private List<WmsCoilAbnormalBo> abnormals;
|
2026-03-20 11:18:54 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 按异常数量排序(异常钢卷在前按创建时间,没异常的钢卷在后按创建时间)
|
|
|
|
|
|
*/
|
|
|
|
|
|
@TableField(exist = false)
|
|
|
|
|
|
private Boolean orderByAbnormal;
|
2026-04-10 09:24:42 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 调拨类型
|
|
|
|
|
|
*/
|
|
|
|
|
|
private String transferType;
|
2025-10-28 12:20:20 +08:00
|
|
|
|
}
|
|
|
|
|
|
|