feat: 实现产需单按工序步骤生成排产明细功能

1. 重构接收产需单接口,支持按配置工序步骤生成明细
2. 新增工艺、工艺步骤CRUD接口与管理页面
3. 新增工序选择组件
4. 优化产需单页面,增加历史记录功能
5. 为排产明细添加工序步骤名称展示
This commit is contained in:
2026-07-04 15:43:05 +08:00
parent ce09ac9da3
commit 2fde9ec993
12 changed files with 1529 additions and 427 deletions

View File

@@ -2,6 +2,8 @@ package com.klp.flow.domain.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 产需单接收请求对象
@@ -18,4 +20,55 @@ public class SchProdScheduleItemReceiveBo {
@NotNull(message = "排产单主表ID不能为空")
private Long scheduleId;
/**
* 明细工序配置列表
*/
@NotEmpty(message = "明细工序配置不能为空")
private List<DetailProcessConfig> detailProcessList;
/**
* 明细工序配置
*/
@Data
public static class DetailProcessConfig {
/**
* 产需单明细ID
*/
@NotNull(message = "明细ID不能为空")
private Long scheduleDetailId;
/**
* 工序ID
*/
@NotNull(message = "工序ID不能为空")
private Long processId;
/**
* 工序步骤列表
*/
@NotEmpty(message = "工序步骤不能为空")
private List<StepConfig> stepList;
}
/**
* 工序步骤配置
*/
@Data
public static class StepConfig {
/**
* 步骤ID
*/
@NotNull(message = "步骤ID不能为空")
private Long stepId;
/**
* 步骤顺序号
*/
private Long stepOrder;
/**
* 步骤名称
*/
private String stepName;
}
}

View File

@@ -2,10 +2,13 @@ package com.klp.flow.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.List;
/**
* 工序定义主视图对象 sch_prod_process
@@ -44,5 +47,10 @@ public class SchProdProcessVo {
@ExcelProperty(value = "备注")
private String remark;
/**
* 工艺步骤列表
*/
@TableField(exist = false)
private List<SchProdProcessStepVo> stepList;
}

View File

@@ -2,6 +2,7 @@ package com.klp.flow.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
@@ -195,6 +196,12 @@ public class SchProdScheduleItemVo {
@ExcelProperty(value = "工序ID")
private Long actionId;
/**
* 工序步骤名称
*/
@TableField(exist = false)
private String stepName;
/**
* 规格 例1.0X1250
*/