feat(wms): 添加调拨单功能模块

- 创建调拨单主表实体类、业务对象类和视图对象类
- 创建调拨单明细表实体类、业务对象类和视图对象类
- 实现调拨单主表和明细表的数据库映射和XML配置文件
- 开发调拨单主表和明细表的服务接口及实现类
- 创建调拨单主表和明细表的控制器,提供CRUD操作接口
- 实现分页查询、新增、修改、删除和导出功能
- 添加参数验证和数据校验机制
- 集成MyBatis-Plus进行数据库操作
- 配置Excel导出功能支持调拨单数据导出
This commit is contained in:
2026-03-27 16:15:17 +08:00
parent 15a2920053
commit 0d3bde95f3
16 changed files with 993 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 调拨单主对象 wms_transfer_order
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_transfer_order")
public class WmsTransferOrder extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 调拨单主键ID
*/
@TableId(value = "order_id")
private Long orderId;
/**
* 调拨单号(唯一格式DB+年月日+流水号)
*/
private String transferNo;
/**
* 调拨单名称
*/
private String transferName;
/**
* 调拨状态 0-待审核 1-已完成 2-已取消
*/
private Long transferStatus;
/**
* 实际调拨时间
*/
private Date transferTime;
/**
* 备注
*/
private String remark;
/**
* 删除标记(0正常 1删除)
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,69 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 调拨单明细对象 wms_transfer_order_item
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_transfer_order_item")
public class WmsTransferOrderItem extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 调拨明细主键ID
*/
@TableId(value = "item_id")
private Long itemId;
/**
* 关联调拨单ID
*/
private Long transferId;
/**
* 钢卷id
*/
private Long coilId;
/**
* 调拨前itemId
*/
private Long itemIdBefore;
/**
* 调拨后itemId
*/
private Long itemIdAfter;
/**
* 修改前物料类型 1-原料 2-成品
*/
private Long materialTypeBefore;
/**
* 修改后物料类型 1-原料 2-成品
*/
private Long materialTypeAfter;
/**
* 调拨前逻辑库区ID
*/
private Long warehouseIdBefore;
/**
* 调拨后逻辑库区ID
*/
private Long warehouseIdAfter;
/**
* 备注
*/
private String remark;
/**
* 删除标记(0正常 1删除)
*/
@TableLogic
private Long delFlag;
}

View File

@@ -0,0 +1,53 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 调拨单主业务对象 wms_transfer_order
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsTransferOrderBo extends BaseEntity {
/**
* 调拨单主键ID
*/
private Long orderId;
/**
* 调拨单号(唯一格式DB+年月日+流水号)
*/
private String transferNo;
/**
* 调拨单名称
*/
private String transferName;
/**
* 调拨状态 0-待审核 1-已完成 2-已取消
*/
private Long transferStatus;
/**
* 实际调拨时间
*/
private Date transferTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,71 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 调拨单明细业务对象 wms_transfer_order_item
*
* @author klp
* @date 2026-03-27
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsTransferOrderItemBo extends BaseEntity {
/**
* 调拨明细主键ID
*/
private Long itemId;
/**
* 关联调拨单ID
*/
private Long transferId;
/**
* 钢卷id
*/
private Long coilId;
/**
* 调拨前itemId
*/
private Long itemIdBefore;
/**
* 调拨后itemId
*/
private Long itemIdAfter;
/**
* 修改前物料类型 1-原料 2-成品
*/
private Long materialTypeBefore;
/**
* 修改后物料类型 1-原料 2-成品
*/
private Long materialTypeAfter;
/**
* 调拨前逻辑库区ID
*/
private Long warehouseIdBefore;
/**
* 调拨后逻辑库区ID
*/
private Long warehouseIdAfter;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,83 @@
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_transfer_order_item
*
* @author klp
* @date 2026-03-27
*/
@Data
@ExcelIgnoreUnannotated
public class WmsTransferOrderItemVo {
private static final long serialVersionUID = 1L;
/**
* 调拨明细主键ID
*/
@ExcelProperty(value = "调拨明细主键ID")
private Long itemId;
/**
* 关联调拨单ID
*/
@ExcelProperty(value = "关联调拨单ID")
private Long transferId;
/**
* 钢卷id
*/
@ExcelProperty(value = "钢卷id")
private Long coilId;
/**
* 调拨前itemId
*/
@ExcelProperty(value = "调拨前itemId")
private Long itemIdBefore;
/**
* 调拨后itemId
*/
@ExcelProperty(value = "调拨后itemId")
private Long itemIdAfter;
/**
* 修改前物料类型 1-原料 2-成品
*/
@ExcelProperty(value = "修改前物料类型 1-原料 2-成品")
private Long materialTypeBefore;
/**
* 修改后物料类型 1-原料 2-成品
*/
@ExcelProperty(value = "修改后物料类型 1-原料 2-成品")
private Long materialTypeAfter;
/**
* 调拨前逻辑库区ID
*/
@ExcelProperty(value = "调拨前逻辑库区ID")
private Long warehouseIdBefore;
/**
* 调拨后逻辑库区ID
*/
@ExcelProperty(value = "调拨后逻辑库区ID")
private Long warehouseIdAfter;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,61 @@
package com.klp.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
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_transfer_order
*
* @author klp
* @date 2026-03-27
*/
@Data
@ExcelIgnoreUnannotated
public class WmsTransferOrderVo {
private static final long serialVersionUID = 1L;
/**
* 调拨单主键ID
*/
@ExcelProperty(value = "调拨单主键ID")
private Long orderId;
/**
* 调拨单号(唯一格式DB+年月日+流水号)
*/
@ExcelProperty(value = "调拨单号(唯一格式DB+年月日+流水号)")
private String transferNo;
/**
* 调拨单名称
*/
@ExcelProperty(value = "调拨单名称")
private String transferName;
/**
* 调拨状态 0-待审核 1-已完成 2-已取消
*/
@ExcelProperty(value = "调拨状态 0-待审核 1-已完成 2-已取消")
private Long transferStatus;
/**
* 实际调拨时间
*/
@ExcelProperty(value = "实际调拨时间")
private Date transferTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}