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,109 @@
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.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 发货单主业务对象 wms_delivery_waybill
*
* @author klp
* @date 2025-11-25
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsDeliveryWaybillBo extends BaseEntity {
/**
* 发货单唯一ID
*/
@NotNull(message = "发货单唯一ID不能为空", groups = { EditGroup.class })
private Long waybillId;
/**
* 发货单编号格式WB-YYYYMMDD-XXXX如WB-20251125-0001
*/
@NotBlank(message = "发货单编号格式WB-YYYYMMDD-XXXX如WB-20251125-0001不能为空", groups = { AddGroup.class, EditGroup.class })
private String waybillNo;
/**
* 发货单名称
*/
@NotBlank(message = "发货单名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String waybillName;
/**
* 关联发货计划ID
*/
@NotNull(message = "关联发货计划ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long planId;
/**
* 车牌(支持新能源车牌)
*/
@NotBlank(message = "车牌(支持新能源车牌)不能为空", groups = { AddGroup.class, EditGroup.class })
private String licensePlate;
/**
* 收货单位
*/
@NotBlank(message = "收货单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String consigneeUnit;
/**
* 发货单位
*/
@NotBlank(message = "发货单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String senderUnit;
/**
* 发货时间
*/
@NotNull(message = "发货时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date deliveryTime;
/**
* 磅房
*/
@NotBlank(message = "磅房不能为空", groups = { AddGroup.class, EditGroup.class })
private String weighbridge;
/**
* 销售
*/
@NotBlank(message = "销售不能为空", groups = { AddGroup.class, EditGroup.class })
private String salesPerson;
/**
* 负责人(司机/跟单员)
*/
@NotBlank(message = "负责人(司机/跟单员)不能为空", groups = { AddGroup.class, EditGroup.class })
private String principal;
/**
* 负责人电话(手机号/固话)
*/
@NotBlank(message = "负责人电话(手机号/固话)不能为空", groups = { AddGroup.class, EditGroup.class })
private String principalPhone;
/**
* 完成状态0=待发货1=已发货2=已完成3=取消)
*/
@NotNull(message = "完成状态0=待发货1=已发货2=已完成3=取消)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long status;
/**
* 备注
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}