- 在WmsMaterialCoil实体类中添加parentCoilId字段 - 在WmsMaterialCoilBo业务对象中添加parentCoilId字段 - 在WmsMaterialCoilVo视图对象中添加parentCoilId字段 - 在MyBatis映射文件中添加parent_coil_id字段映射 - 实现分卷、切边、合卷操作中设置父钢卷ID的逻辑 - 新增发货报表导出查询方法和对应的SQL映射 - 添加按coilIds联查钢卷发货相关数据的功能 - 实现CSV格式长整型解析工具方法
249 lines
5.9 KiB
Java
249 lines
5.9 KiB
Java
package com.klp.domain.bo;
|
||
|
||
import com.alibaba.excel.annotation.ExcelProperty;
|
||
import com.baomidou.mybatisplus.annotation.TableField;
|
||
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;
|
||
|
||
/**
|
||
* 所在库区IDs(逗号分隔)
|
||
*/
|
||
private String warehouseIds;
|
||
|
||
/**
|
||
* 下一库区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<WmsMaterialCoilBo> 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;
|
||
|
||
//材料类型
|
||
@NotBlank(message = "材料类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||
private String materialType;
|
||
|
||
|
||
/**
|
||
* 质量状态(0=正常,1=待检,2=不合格)
|
||
*/
|
||
private String qualityStatus;
|
||
|
||
/**
|
||
* 切边要求
|
||
*/
|
||
private String trimmingRequirement;
|
||
|
||
/**
|
||
* 打包状态(0=未打包,1=已打包)
|
||
*/
|
||
private String packingStatus;
|
||
|
||
/**
|
||
* 包装要求
|
||
*/
|
||
private String packagingRequirement;
|
||
|
||
/**
|
||
* 最小异常数量(用于筛选异常数量 >= 此值的钢卷)
|
||
*/
|
||
private Integer minAbnormalCount;
|
||
|
||
/**
|
||
* 钢卷ID列表(逗号分隔,用于根据ID列表查询钢卷)
|
||
*/
|
||
private String coilIds;
|
||
|
||
// 筛选类型
|
||
private String selectType;
|
||
// 物品名称
|
||
private String itemName;
|
||
// 材质(两表通用字段名: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;
|
||
//规格
|
||
private String itemSpecification;
|
||
|
||
private Boolean onlyUnshippedAndUnplanned;
|
||
|
||
/**
|
||
* 是否排除已被发货单明细绑定的钢卷(true=列表不返回已绑定钢卷)
|
||
*/
|
||
private Boolean excludeBound;
|
||
|
||
/**
|
||
* 是否在列表中返回“发货单明细绑定信息”(true=返回 bound + 绑定来源信息)
|
||
* 默认不返回,避免不需要的场景变慢。
|
||
*/
|
||
private Boolean includeBindInfo;
|
||
|
||
//销售id
|
||
private Long saleId;
|
||
|
||
|
||
//新增长度字段
|
||
private BigDecimal length;
|
||
|
||
//新增通过创建时间
|
||
@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;
|
||
|
||
@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;
|
||
|
||
// 仅查询废品(质量状态为 D+、D、D-)
|
||
private Boolean onlyScrap;
|
||
|
||
private String exportBy;
|
||
|
||
|
||
// 调制度
|
||
private String temperGrade;
|
||
// 镀层种类
|
||
private String coatingType;
|
||
|
||
/**
|
||
* 独占状态(0=未独占,1=特殊分卷中)
|
||
*/
|
||
private Integer exclusiveStatus;
|
||
|
||
// 接收前端传来是否排序的字段 OrderBy
|
||
@TableField(exist = false)
|
||
private Boolean orderBy;
|
||
|
||
// 父钢卷id
|
||
private String parentCoilId;
|
||
}
|
||
|