feat(wms): 添加批次、工艺、工艺任务相关功能

- 新增 IWmsBatchService、IWmsProcesseService、IWmsProcessTaskService 接口
- 实现 WmsBatchServiceImpl、WmsProcesseServiceImpl 服务类- 添加 WmsBatch、WmsProcesse、WmsProcessTask 实体类
- 创建对应的 BO、VO 类
- 编写 WmsBatchMapper、WmsProcesseMapper 映射接口- 生成 WmsBatchMapper.xml、WmsProcesseMapper.xml 映射文件
- 开发 WmsBatchController、WmsProcesseController 控制器
This commit is contained in:
JR
2025-08-14 13:52:08 +08:00
parent 85ae6c4efa
commit c4ee58f75d
32 changed files with 1937 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
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;
/**
* 批次(合并相同工艺的任务)对象 wms_batch
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_batch")
public class WmsBatch extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 批次ID
*/
@TableId(value = "batch_id")
private Long batchId;
/**
* 批次编号
*/
private String batchNo;
/**
* 关联工艺ID合并的工艺
*/
private Long processId;
/**
* 批次总数量(合并的任务总量)
*/
private Long totalQuantity;
/**
* 合并来源记录被合并的工艺任务ID用逗号分隔
*/
private String mergeSource;
/**
* 预计开始时间
*/
private Date estimatedStartTime;
/**
* 预计结束时间
*/
private Date estimatedEndTime;
/**
* 批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成
*/
private String batchStatus;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,57 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 工艺任务(生产计划所需工艺任务)对象 wms_process_task
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_process_task")
public class WmsProcessTask extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 工艺任务ID
*/
@TableId(value = "task_id")
private Long taskId;
/**
* 关联生产计划ID
*/
private Long planId;
/**
* 所需工艺ID
*/
private Long processId;
/**
* 对应产品ID
*/
private Long productId;
/**
* 任务数量
*/
private Long taskQuantity;
/**
* 任务状态pending-待处理/processing-处理中/completed-已完成
*/
private String taskStatus;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,58 @@
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_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_processe")
public class WmsProcesse extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 工艺ID
*/
@TableId(value = "process_id")
private Long processId;
/**
* 工艺编码
*/
private String processCode;
/**
* 工艺名称
*/
private String processName;
/**
* 产出产品(关联产品表,可选)
*/
private Long outputProductId;
/**
* 工艺描述
*/
private String processDesc;
/**
* 标准工时(小时)
*/
private BigDecimal standardTime;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,53 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 产品生产工艺(预定义产品所需工艺)对象 wms_product_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_product_processe")
public class WmsProductProcesse extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "pp_id")
private Long ppId;
/**
* 产品ID关联产品表
*/
private Long productId;
/**
* 工艺ID关联工艺表
*/
private Long processId;
/**
* 工艺顺序(同一产品的工艺执行顺序)
*/
private Long processSequence;
/**
* 是否必选工艺1-是/0-否
*/
private Long isRequired;
/**
* 删除标志0=正常1=已删除)
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,72 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
/**
* 批次(合并相同工艺的任务)业务对象 wms_batch
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsBatchBo extends BaseEntity {
/**
* 批次ID
*/
private Long batchId;
/**
* 批次编号
*/
private String batchNo;
/**
* 关联工艺ID合并的工艺
*/
private Long processId;
/**
* 批次总数量(合并的任务总量)
*/
private Long totalQuantity;
/**
* 合并来源记录被合并的工艺任务ID用逗号分隔
*/
private String mergeSource;
/**
* 预计开始时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date estimatedStartTime;
/**
* 预计结束时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date estimatedEndTime;
/**
* 批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成
*/
private String batchStatus;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,55 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 工艺任务(生产计划所需工艺任务)业务对象 wms_process_task
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsProcessTaskBo extends BaseEntity {
/**
* 工艺任务ID
*/
private Long taskId;
/**
* 关联生产计划ID
*/
private Long planId;
/**
* 所需工艺ID
*/
private Long processId;
/**
* 对应产品ID
*/
private Long productId;
/**
* 任务数量
*/
private Long taskQuantity;
/**
* 任务状态pending-待处理/processing-处理中/completed-已完成
*/
private String taskStatus;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,56 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* 工艺业务对象 wms_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsProcesseBo extends BaseEntity {
/**
* 工艺ID
*/
private Long processId;
/**
* 工艺编码
*/
private String processCode;
/**
* 工艺名称
*/
private String processName;
/**
* 产出产品(关联产品表,可选)
*/
private Long outputProductId;
/**
* 工艺描述
*/
private String processDesc;
/**
* 标准工时(小时)
*/
private BigDecimal standardTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,50 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 产品生产工艺(预定义产品所需工艺)业务对象 wms_product_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsProductProcesseBo extends BaseEntity {
/**
* 主键ID
*/
private Long ppId;
/**
* 产品ID关联产品表
*/
private Long productId;
/**
* 工艺ID关联工艺表
*/
private Long processId;
/**
* 工艺顺序(同一产品的工艺执行顺序)
*/
private Long processSequence;
/**
* 是否必选工艺1-是/0-否
*/
private Long isRequired;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,84 @@
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_batch
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsBatchVo {
private static final long serialVersionUID = 1L;
/**
* 批次ID
*/
@ExcelProperty(value = "批次ID")
private Long batchId;
/**
* 批次编号
*/
@ExcelProperty(value = "批次编号")
private String batchNo;
/**
* 关联工艺ID合并的工艺
*/
@ExcelProperty(value = "关联工艺ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "合=并的工艺")
private Long processId;
/**
* 批次总数量(合并的任务总量)
*/
@ExcelProperty(value = "批次总数量", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "合=并的任务总量")
private Long totalQuantity;
/**
* 合并来源记录被合并的工艺任务ID用逗号分隔
*/
@ExcelProperty(value = "合并来源", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "记=录被合并的工艺任务ID用逗号分隔")
private String mergeSource;
/**
* 预计开始时间
*/
@ExcelProperty(value = "预计开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date estimatedStartTime;
/**
* 预计结束时间
*/
@ExcelProperty(value = "预计结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date estimatedEndTime;
/**
* 批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成
*/
@ExcelProperty(value = "批次状态created-已创建/scheduled-已排产/executing-执行中/finished-已完成")
private String batchStatus;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,63 @@
package com.klp.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* 工艺任务(生产计划所需工艺任务)视图对象 wms_process_task
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsProcessTaskVo {
private static final long serialVersionUID = 1L;
/**
* 工艺任务ID
*/
@ExcelProperty(value = "工艺任务ID")
private Long taskId;
/**
* 关联生产计划ID
*/
@ExcelProperty(value = "关联生产计划ID")
private Long planId;
/**
* 所需工艺ID
*/
@ExcelProperty(value = "所需工艺ID")
private Long processId;
/**
* 对应产品ID
*/
@ExcelProperty(value = "对应产品ID")
private Long productId;
/**
* 任务数量
*/
@ExcelProperty(value = "任务数量")
private Long taskQuantity;
/**
* 任务状态pending-待处理/processing-处理中/completed-已完成
*/
@ExcelProperty(value = "任务状态pending-待处理/processing-处理中/completed-已完成")
private String taskStatus;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,68 @@
package com.klp.domain.vo;
import java.math.BigDecimal;
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_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsProcesseVo {
private static final long serialVersionUID = 1L;
/**
* 工艺ID
*/
@ExcelProperty(value = "工艺ID")
private Long processId;
/**
* 工艺编码
*/
@ExcelProperty(value = "工艺编码")
private String processCode;
/**
* 工艺名称
*/
@ExcelProperty(value = "工艺名称")
private String processName;
/**
* 产出产品(关联产品表,可选)
*/
@ExcelProperty(value = "产出产品", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联产品表,可选")
private Long outputProductId;
/**
* 工艺描述
*/
@ExcelProperty(value = "工艺描述")
private String processDesc;
/**
* 标准工时(小时)
*/
@ExcelProperty(value = "标准工时", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private BigDecimal standardTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,62 @@
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_product_processe
*
* @author klp
* @date 2025-08-14
*/
@Data
@ExcelIgnoreUnannotated
public class WmsProductProcesseVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long ppId;
/**
* 产品ID关联产品表
*/
@ExcelProperty(value = "产品ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联产品表")
private Long productId;
/**
* 工艺ID关联工艺表
*/
@ExcelProperty(value = "工艺ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "关=联工艺表")
private Long processId;
/**
* 工艺顺序(同一产品的工艺执行顺序)
*/
@ExcelProperty(value = "工艺顺序", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "同=一产品的工艺执行顺序")
private Long processSequence;
/**
* 是否必选工艺1-是/0-否
*/
@ExcelProperty(value = "是否必选工艺1-是/0-否")
private Long isRequired;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}