feat(wms): 新增发货计划、发货单主表及明细表功能模块

- 新增发货计划实体类、业务对象、控制器、服务接口及实现
- 新增发货单主表实体类、业务对象、控制器、服务接口及实现
- 新增发货单明细表实体类、业务对象、控制器、服务接口及实现
- 配置相关Mapper接口与XML映射文件
- 实现基础的增删改查及分页查询功能
- 支持Excel导出功能
- 添加基础数据校验与日志记录
This commit is contained in:
2025-11-25 15:44:19 +08:00
parent 5d4eac555a
commit 97680263f1
24 changed files with 1696 additions and 0 deletions

View File

@@ -0,0 +1,114 @@
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.math.BigDecimal;
/**
* 发货单明细业务对象 wms_delivery_waybill_detail
*
* @author klp
* @date 2025-11-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsDeliveryWaybillDetailBo extends BaseEntity {
/**
* 明细唯一ID
*/
@NotNull(message = "明细唯一ID不能为空", groups = { EditGroup.class })
private Long detailId;
/**
* 关联发货单主表ID
*/
@NotNull(message = "关联发货单主表ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long waybillId;
/**
* 关联钢卷表ID钢卷基础信息在钢卷表中
*/
@NotNull(message = "关联钢卷表ID钢卷基础信息在钢卷表中不能为空", groups = { AddGroup.class, EditGroup.class })
private Long coilId;
/**
* 品名(如:冷硬钢卷、冷轧钢卷)
*/
@NotBlank(message = "品名(如:冷硬钢卷、冷轧钢卷)不能为空", groups = { AddGroup.class, EditGroup.class })
private String productName;
/**
* 切边(净边/毛边)
*/
@NotBlank(message = "切边(净边/毛边)不能为空", groups = { AddGroup.class, EditGroup.class })
private String edgeType;
/**
* 包装(裸包/简包1/精包2等
*/
@NotBlank(message = "包装(裸包/简包1/精包2等不能为空", groups = { AddGroup.class, EditGroup.class })
private String packaging;
/**
* 结算方式(卷重/磅重)
*/
@NotBlank(message = "结算方式(卷重/磅重)不能为空", groups = { AddGroup.class, EditGroup.class })
private String settlementType;
/**
* 原料厂家
*/
@NotBlank(message = "原料厂家不能为空", groups = { AddGroup.class, EditGroup.class })
private String rawMaterialFactory;
/**
* 卷号
*/
@NotBlank(message = "卷号不能为空", groups = { AddGroup.class, EditGroup.class })
private String coilNo;
/**
* 规格
*/
@NotBlank(message = "规格不能为空", groups = { AddGroup.class, EditGroup.class })
private String specification;
/**
* 材质
*/
@NotBlank(message = "材质不能为空", groups = { AddGroup.class, EditGroup.class })
private String material;
/**
* 数量(件)
*/
@NotNull(message = "数量(件)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long quantity;
/**
* 重量kg
*/
@NotNull(message = "重量kg不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal weight;
/**
* 单价
*/
@NotNull(message = "单价不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal unitPrice;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}