This commit is contained in:
2025-10-28 12:20:20 +08:00
parent 0b9f7bc7e9
commit 10d6cc1144
18 changed files with 5032 additions and 47 deletions

View File

@@ -0,0 +1,91 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 钢卷物料表对象 wms_material_coil
*
* @author Joshi
* @date 2025-07-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_material_coil")
public class WmsMaterialCoil extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "coil_id")
private Long coilId;
/**
* 入场钢卷号(年份后两位+月份+当月第几个如25100001、25102422
*/
private String enterCoilNo;
/**
* 当前钢卷号(入场钢卷号和当前钢卷号可能不同)
*/
private String currentCoilNo;
/**
* 厂家原料卷号
*/
private String supplierCoilNo;
/**
* 数据类型0=历史1=现存)
*/
private Integer dataType;
/**
* 所在库区ID
*/
private Long warehouseId;
/**
* 下一库区ID
*/
private Long nextWarehouseId;
/**
* 关联二维码IDwms_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;
/**
* 状态0=在库1=在途2=已出库)
*/
private Integer status;
/**
* 备注
*/
private String remark;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
}

View File

@@ -5,10 +5,8 @@ import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 库存:原材料/产品与库区/库位的存放关系对象 wms_stock
* 库存:原材料-钢卷-库区的存放关系对象 wms_stock
*
* @author Joshi
* @date 2025-07-18
@@ -38,13 +36,9 @@ public class WmsStock extends BaseEntity {
*/
private Long itemId;
/**
* 库存数量
* 钢卷ID指向wms_material_coil.coil_id
*/
private BigDecimal quantity;
/**
* 单位
*/
private String unit;
private Long coilId;
/**
* 批次号(可选)
*/

View File

@@ -0,0 +1,103 @@
package com.klp.domain.bo;
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 javax.validation.constraints.*;
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;
/**
* 关联二维码IDwms_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;
/**
* 状态0=在库1=在途2=已出库)
*/
private Integer status;
/**
* 备注
*/
private String remark;
/**
* 分卷/合卷的新钢卷列表(用于批量更新)
*/
private List<WmsMaterialCoilBo> newCoils;
}

View File

@@ -32,7 +32,7 @@ public class WmsStockBo extends BaseEntity {
private Long warehouseId;
/**
* 物品类型raw_material/product
* 原材料ID指向wms_raw_material.raw_material_id
*/
@NotBlank(message = "物品类型raw_material/product不能为空", groups = { AddGroup.class, EditGroup.class })
private String itemType;
@@ -42,23 +42,9 @@ public class WmsStockBo extends BaseEntity {
*/
@NotNull(message = "物品ID指向原材料或产品主键不能为空", groups = { AddGroup.class, EditGroup.class })
private Long itemId;
/**
* 库存数量
*/
@NotNull(message = "库存数量不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal quantity;
/**
* 单位
*/
@NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String unit;
/**
* 批次号(可选)
*/
@NotBlank(message = "批次号(可选)不能为空", groups = { AddGroup.class, EditGroup.class })
private String batchNo;
/**

View File

@@ -0,0 +1,144 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 钢卷物料表视图对象 wms_material_coil
*
* @author Joshi
* @date 2025-07-18
*/
@Data
@ExcelIgnoreUnannotated
public class WmsMaterialCoilVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键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
*/
@ExcelProperty(value = "所在库区ID")
private Long warehouseId;
/**
* 下一库区ID
*/
@ExcelProperty(value = "下一库区ID")
private Long nextWarehouseId;
/**
* 关联二维码ID
*/
@ExcelProperty(value = "关联二维码ID")
private Long qrcodeRecordId;
/**
* 班组
*/
@ExcelProperty(value = "班组")
private String team;
/**
* 是否合卷/分卷
*/
@ExcelProperty(value = "是否合卷/分卷", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=否1=分卷2=合卷")
private Integer hasMergeSplit;
/**
* 父卷号
*/
@ExcelProperty(value = "父卷号")
private String parentCoilNos;
/**
* 物品类型
*/
@ExcelProperty(value = "物品类型")
private String itemType;
/**
* 物品ID
*/
@ExcelProperty(value = "物品ID")
private Long itemId;
/**
* 状态
*/
@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 Object product; // 产品VO待定义
}

View File

@@ -29,7 +29,6 @@ public class WmsStockVo {
/**
* 仓库/库区/库位ID
*/
@ExcelProperty(value = "仓库/库区/库位ID")
private Long warehouseId;
/**
@@ -55,23 +54,11 @@ public class WmsStockVo {
*/
private String itemCode;
/**
* 库存数量
*/
@ExcelProperty(value = "库存数量")
private BigDecimal quantity;
/**
* 单位
*/
@ExcelProperty(value = "单位")
private String unit;
/**
* 批次号(可选)
*/
@ExcelProperty(value = "批次号", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "=")
@ExcelDictFormat(readConverterExp = "可选")
private String batchNo;
/**
@@ -92,4 +79,15 @@ public class WmsStockVo {
@ExcelProperty(value = "在途量")
private BigDecimal onTheWay;
/**
* 总量通过item_type和item_id查询对应的钢卷总量
*/
@ExcelProperty(value = "总量")
private BigDecimal totalQuantity;
/**
* 库存分布列表(按仓库统计)
*/
private java.util.List<WmsStockVo> stockDistribution;
}