Files
klp-oa/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilVo.java
Joshi 2b213f7475 feat(wms): 添加钢卷实测尺寸功能并优化库位排序
- 在WmsMaterialCoil实体类中新增actualLength和actualWidth字段
- 在WmsMaterialCoilBo业务对象中添加实测长度宽度属性
- 在WmsMaterialCoilVo视图对象中增加Excel导出注解配置
- 更新MyBatis映射文件添加实测尺寸数据库字段映射
- 实现根据实测长度宽度的查询过滤功能
- 优化库位排序逻辑,增加全局交错排序辅助字段
- 添加库位层级排序键和库位ID键用于精确排序控制
2026-03-12 16:32:09 +08:00

446 lines
8.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 钢卷物料表视图对象 wms_material_coil
*
* @author Joshi
* @date 2025-07-18
*/
@Data
@ExcelIgnoreUnannotated
public class WmsMaterialCoilVo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
private Long coilId;
/**
* 入场钢卷号
*/
@ExcelProperty(value = "入场钢卷号")
private String enterCoilNo;
/**
* 当前钢卷号
*/
@ExcelProperty(value = "当前钢卷号")
private String currentCoilNo;
/**
* 厂家原料卷号
*/
@ExcelProperty(value = "厂家原料卷号")
private String supplierCoilNo;
/**
* 数据类型0=历史1=现存)
*/
@ExcelProperty(value = "数据类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=历史1=现存")
private Integer dataType;
/**
所在库区ID 联查当前库区和物品id 复卷好去掉 dataType数据类型是1当前 0就是历史 物品类型row_me 原材料 product产品
*/
@ExcelProperty(value = "所在库区ID")
private Long warehouseId;
/**
* 下一库区ID
*/
private Long nextWarehouseId;
/**
* 关联二维码ID
*/
private Long qrcodeRecordId;
/**
* 班组
*/
@ExcelProperty(value = "班组")
private String team;
/**
* 是否合卷/分卷
*/
@ExcelProperty(value = "是否合卷/分卷", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=否1=分卷2=合卷")
private Integer hasMergeSplit;
/**
* 父卷号
*/
private String parentCoilNos;
/**
* 物品类型
*/
@ExcelProperty(value = "物品类型")
private String itemType;
/**
* 物品ID
*/
private Long itemId;
/**
* 毛重kg
*/
@ExcelProperty(value = "毛重kg")
private BigDecimal grossWeight;
/**
* 净重kg
*/
@ExcelProperty(value = "净重kg")
private BigDecimal netWeight;
/**
* 状态
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=在库1=在途2=已出库")
private Integer status;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
// ========== 关联对象属性 ==========
/**
* 所在库区信息
*/
private WmsWarehouseVo warehouse;
/**
* 下一库区信息
*/
private WmsWarehouseVo nextWarehouse;
/**
* 二维码信息
*/
private WmsGenerateRecordVo qrcodeRecord;
/**
* 原材料信息当itemType为raw_material时
*/
private WmsRawMaterialVo rawMaterial;
/**
* 产品信息当itemType为product时
*/
private WmsProductVo product;
/**
* BOM列表原材料对应的BOM项目信息
*/
private List<WmsBomItemVo> bomItemList;
// ========== 统计相关属性 ==========
/**
* 库区名称(用于统计查询)
*/
@ExcelProperty(value = "库区名称")
private String warehouseName;
/**
* 下一库区名称
*/
private String nextWarehouseName;
/**
* 钢卷数量(用于统计查询)
*/
private Long coilCount;
/**
* 总毛重(用于统计查询)
*/
private BigDecimal totalGrossWeight;
/**
* 总净重(用于统计查询)
*/
private BigDecimal totalNetWeight;
@ExcelProperty(value = "物品名称")
private String itemName;
@ExcelProperty(value = "物品编号")
private String itemCode;
private Long actualWarehouseId;
private String actualWarehouseName;
//材料类型
private String materialType;
/**
* 质量状态0=正常1=待检2=不合格)
*/
private String qualityStatus;
/**
* 切边要求
*/
private String trimmingRequirement;
/**
* 打包状态0=未打包1=已打包)
*/
private String packingStatus;
/**
* 包装要求
*/
private String packagingRequirement;
// ========== 联查临时字段(用于优化查询性能,避免单独查询) ==========
/**
* 原材料ID联查字段
*/
private Long rawMaterialId;
/**
* 原材料编号(联查字段)
*/
private String rawMaterialCode;
/**
* 原材料名称(联查字段)
*/
private String rawMaterialName;
/**
* 原材料规格(联查字段)
*/
private String rawMaterialSpecification;
/**
* 原材料钢种(联查字段)
*/
private String rawMaterialSteelGrade;
/**
* 原材料厚度(联查字段)
*/
private BigDecimal rawMaterialThickness;
/**
* 原材料宽度(联查字段)
*/
private BigDecimal rawMaterialWidth;
/**
* 原材料BOM ID联查字段
*/
private Long rawMaterialBomId;
/**
* 产品ID联查字段
*/
private Long productId;
/**
* 产品编号(联查字段)
*/
private String productCode;
/**
* 产品名称(联查字段)
*/
private String productName;
/**
* 产品规格(联查字段)
*/
private String productSpecification;
/**
* 产品厚度(联查字段)
*/
private BigDecimal productThickness;
/**
* 产品宽度(联查字段)
*/
private BigDecimal productWidth;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty(value = "发货时间")
private Date exportTime;
/**
* 产品BOM ID联查字段
*/
private Long productBomId;
private String specification; // 规格
private String material; // 材质
private String surfaceTreatmentDesc; // 表面处理
private String zincLayer; // 锌层
private String manufacturer; // 厂家
/**
* 异常数量(钢卷异常信息表统计)
*/
private Integer abnormalCount;
private String createByName;
private String updateByName;
//销售id
private Long saleId;
// 销售昵称
private String saleName;
//新增长度字段
private BigDecimal length;
//发货人
private String exportBy;
//发货人昵称
private String exportByName;
// 调制度
private String temperGrade;
// 业务用途(如:生产领用、销售发货、样品送检、内部调拨等)
private String businessPurpose;
// 是否与订单相关0=否1=是)
private Integer isRelatedToOrder;
// 镀层种类
private String coatingType;
/**
* 独占状态0=未独占1=特殊分卷中)
*/
private Integer exclusiveStatus;
// ========== 发货绑定信息(由发货单明细占用) ==========
/**
* 是否已被发货单明细绑定true=不可再次绑定)
*/
private Boolean bound;
private Long bindDetailId;
private Long bindWaybillId;
private String bindWaybillNo;
private String bindWaybillName;
private Long bindPlanId;
private String bindPlanName;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date bindPlanDate;
// 父钢卷id
private String parentCoilId;
// ========== 补充的发货绑定信息字段 ==========
/**
* 车牌号
*/
private String bindLicensePlate;
/**
* 收货单位
*/
private String bindConsigneeUnit;
/**
* 发货单位
*/
private String bindSenderUnit;
/**
* 发货时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date bindDeliveryTime;
/**
* 地磅
*/
private String bindWeighbridge;
/**
* 销售人员
*/
private String bindSalesPerson;
/**
* 负责人
*/
private String bindPrincipal;
/**
* 负责人电话
*/
private String bindPrincipalPhone;
/**
* 运单状态
*/
private Long bindWaybillStatus;
/**
* 运单备注
*/
private String bindWaybillRemark;
/**
* 明细结算类型
*/
private String bindDetailSettlementType;
/**
* 明细单价
*/
private BigDecimal bindDetailUnitPrice;
/**
* 实测长度
*/
@ExcelProperty(value = "实测长度")
private BigDecimal actualLength;
/**
* 实测宽度
*/
@ExcelProperty(value = "实测宽度")
private BigDecimal actualWidth;
}