feat(oa): 添加步骤排序字段并更新相关逻辑

- 在 NodeDTO 中新增 sortNum 字段用于步骤排序
- 更新 OaProjectScheduleStepMapper.xml 支持 sort_num 字段插入
- 修改 OaProjectScheduleStepServiceImpl 设置 sortNum 值
- 在 TableDataConstantUtil 中为所有节点添加 sortNum 排序值
- 调整 createNode 方法签名以支持 sortNum 参数传递
This commit is contained in:
2025-10-24 09:44:35 +08:00
parent c381d847cf
commit a939fab3bb
4 changed files with 137 additions and 68 deletions

View File

@@ -9,4 +9,5 @@ public class NodeDTO {
private String secondLevelNode; // 二级节点
private String stepName; // 步骤名称(非空,建议与二级节点名一致)
private String specification; // 规范说明(新增字段)
private Integer sortNum;
}

View File

@@ -257,6 +257,7 @@ public class OaProjectScheduleStepServiceImpl implements IOaProjectScheduleStepS
step.setScheduleId(scheduleId); // 所属项目进度ID非空外部传入
step.setStepOrder((long) stepOrder.getAndIncrement()); // 步骤序号(非空,递增生成)
step.setStepName(node.getStepName());// 步骤名称非空从NodeDTO获取建议用二级节点名
step.setSortNum(node.getSortNum());
return step;
}).collect(Collectors.toList());

View File

@@ -23,31 +23,36 @@ public class TableDataConstantUtil {
"自动化设计", // tab节点
"一、技术审查", // 一级节点
"接地系统图", // 二级节点
null // 规范说明
null, // 规范说明,
1
),
createNode(
"自动化设计",
"一、技术审查",
"传动单线图",
null
null,
2
),
createNode(
"自动化设计",
"一、技术审查",
"MCC单线图",
null
null,
3
),
createNode(
"自动化设计",
"一、技术审查",
"变压器清单",
null
null,
4
),
createNode(
"自动化设计",
"一、技术审查",
"电气室布置图",
null
null,
5
),
// 自动化设计阶段
@@ -55,25 +60,29 @@ public class TableDataConstantUtil {
"自动化设计",
"一、技术审查",
"操作台面板布置图",
null
null,
6
),
createNode(
"自动化设计",
"二、自动化设计",
"马达元器件检测清单",
null
null,
1
),
createNode(
"自动化设计",
"二、自动化设计",
"自动化网络配置图",
null
null,
2
),
createNode(
"自动化设计",
"二、自动化设计",
"图纸详细设计完成",
null
null,
3
),
//程序设计提资完成
@@ -81,31 +90,36 @@ public class TableDataConstantUtil {
"自动化设计",
"三、程序开发",
"功能说明书",
null
null,
1
),
createNode(
"自动化设计",
"三、程序开发",
"程序设计",
null
null,
2
),
createNode(
"自动化设计",
"三、程序开发",
"程序仿真",
null
null,
3
),
createNode(
"自动化设计",
"三、程序开发",
"程序在线测试",
null
null,
4
),
createNode(
"自动化设计",
"三、程序开发",
"画面设计",
null
null,
5
),
//现场调试
@@ -113,19 +127,22 @@ public class TableDataConstantUtil {
"自动化设计",
"四、现场调试",
"单动",
null
null,
1
),
createNode(
"自动化设计",
"四、现场调试",
"传动优化",
null
null,
2
),
createNode(
"自动化设计",
"四、现场调试",
"联动",
null
null,
3
),
//考核验证通过
@@ -133,7 +150,8 @@ public class TableDataConstantUtil {
"自动化设计",
"五、项目收尾",
null,
null
null,
1
),
//采购,库房表
@@ -142,31 +160,36 @@ public class TableDataConstantUtil {
"采购、库房",
"一、一次配线",
"采购审核",
"接收由项目部或技术部发出的、经过审核的《物料清单BOM》及技术规范并对其进行采购可行性品牌、货期、替代品、成本评审。"
"接收由项目部或技术部发出的、经过审核的《物料清单BOM》及技术规范并对其进行采购可行性品牌、货期、替代品、成本评审。",
1
),
createNode(
"采购、库房",
"一、一次配线",
"采购计划与询价、定标",
"根据项目计划制定《采购作业计划》,向合格供应商进行询价、比价、议价,并最终确定供应商,提交审批。"
"根据项目计划制定《采购作业计划》,向合格供应商进行询价、比价、议价,并最终确定供应商,提交审批。",
2
),
createNode(
"采购、库房",
"一、一次配线",
"采购订单下达与合同签订",
"向选定的供应商下达正式《采购订单》或签订《采购合同》,明确物料规格、数量、价格、交期、付款方式、验收标准等所有细节。"
"向选定的供应商下达正式《采购订单》或签订《采购合同》,明确物料规格、数量、价格、交期、付款方式、验收标准等所有细节。",
3
),
createNode(
"采购、库房",
"一、一次配线",
"采购过程跟催与交期确认",
"主动、定期地与供应商沟通,跟踪生产/备货进度,确认并确保物料能按承诺日期送达。这是应对长周期物料和避免延期的最关键节点。"
"主动、定期地与供应商沟通,跟踪生产/备货进度,确认并确保物料能按承诺日期送达。这是应对长周期物料和避免延期的最关键节点。",
4
),
createNode(
"采购、库房",
"一、一次配线",
"到货报验与问题处理",
"物料到达后采购员协同库房、质检员IQC对物料进行数量、外观、型号规格的初步核对并处理任何与订单不符的问题如数量短缺、型号错误、损坏等"
"物料到达后采购员协同库房、质检员IQC对物料进行数量、外观、型号规格的初步核对并处理任何与订单不符的问题如数量短缺、型号错误、损坏等",
5
),
// 二、库房管理节点 阶段
@@ -174,19 +197,22 @@ public class TableDataConstantUtil {
"采购、库房",
"二、库房管理节点",
"进货检验IQC",
"质检人员根据检验标准和物料清单,对送达的物料进行质量检验,包括功能测试、电气参数测量、证件核查等。"
"质检人员根据检验标准和物料清单,对送达的物料进行质量检验,包括功能测试、电气参数测量、证件核查等。",
1
),
createNode(
"采购、库房",
"二、库房管理节点",
"物料入库与上架",
"对通过IQC检验的合格物料办理正式入库手续包括系统数据录入、贴码、分类并放置到指定货位。"
"对通过IQC检验的合格物料办理正式入库手续包括系统数据录入、贴码、分类并放置到指定货位。",
2
),
createNode(
"采购、库房",
"二、库房管理节点",
"生产领料与发料(齐套性检查)",
"根据生产任务单和BOM为车间准备所需物料。关键环节是进行“齐套性检查”即确认一个订单所需的所有物料是否均已备齐避免生产线因缺料停滞。"
"根据生产任务单和BOM为车间准备所需物料。关键环节是进行“齐套性检查”即确认一个订单所需的所有物料是否均已备齐避免生产线因缺料停滞。",
3
),
createNode(
"采购、库房",
@@ -195,7 +221,8 @@ public class TableDataConstantUtil {
"定期(如月度、季度)\n" +
"对在库物料进行全面盘点,\n" +
"确保账、物、卡一致。\n" +
"同时对关键物料设置最低库存预警,触发补货机制。\n"
"同时对关键物料设置最低库存预警,触发补货机制。\n",
4
),
//车间设计制造表
@@ -204,31 +231,36 @@ public class TableDataConstantUtil {
"车间设计制造",
"一、一次线装配",
"图纸审核",
null
null,
1
),
createNode(
"车间设计制造",
"一、一次线装配",
"安装导轨/安装梁",
"根据布局图安装"
"根据布局图安装",
2
),
createNode(
"车间设计制造",
"一、一次线装配",
"安装元器件",
"安装断路器、接触器、变频器等一次元件。"
"安装断路器、接触器、变频器等一次元件。",
3
),
createNode(
"车间设计制造",
"一、一次线装配",
"母排加工与安装",
"制作并安装铜排或铝排,连接处需搪锡或镀银处理。"
"制作并安装铜排或铝排,连接处需搪锡或镀银处理。",
4
),
createNode(
"车间设计制造",
"一、一次线装配",
"一次线接线",
"使用规定颜色的线缆(通常为黑、棕、灰)连接主回路。"
"使用规定颜色的线缆(通常为黑、棕、灰)连接主回路。",
5
),
// 二、二次线装配 阶段
@@ -236,19 +268,22 @@ public class TableDataConstantUtil {
"车间设计制造",
"二、二次线装配",
"安装端子排、线槽、继电器等二次元件。",
null
null,
1
),
createNode(
"车间设计制造",
"二、二次线装配",
"下线与套标",
"根据接线图,使用不同颜色的导线(通常为蓝、黄绿、红等)进行测量、裁剪、压接端子并套上打印好的线号管。"
"根据接线图,使用不同颜色的导线(通常为蓝、黄绿、红等)进行测量、裁剪、压接端子并套上打印好的线号管。",
2
),
createNode(
"车间设计制造",
"二、二次线装配",
"布线与接线",
"将线缆整齐地放入线槽,按照图纸接到对应的端子和元件上。要求横平竖直,牢固可靠。"
"将线缆整齐地放入线槽,按照图纸接到对应的端子和元件上。要求横平竖直,牢固可靠。",
3
),
// 三、调试、检验与包装发货 阶段
@@ -256,31 +291,36 @@ public class TableDataConstantUtil {
"车间设计制造",
"三、调试、检验与包装发货",
"接线检查",
"对照图纸进行100%的接线正确性检查。"
"对照图纸进行100%的接线正确性检查。",
1
),
createNode(
"车间设计制造",
"三、调试、检验与包装发货",
"接地连续性测试",
"确保所有接地连接可靠。"
"确保所有接地连接可靠。",
2
),
createNode(
"车间设计制造",
"三、调试、检验与包装发货",
"绝缘电阻测试",
"使用兆欧表测量相间、相对地的绝缘电阻,确保符合标准(通常>1MΩ"
"使用兆欧表测量相间、相对地的绝缘电阻,确保符合标准(通常>1MΩ",
3
),
createNode(
"车间设计制造",
"三、调试、检验与包装发货",
"耐压测试",
"施加高于额定电压的测试电压,持续一定时间,检测是否存在绝缘击穿风险。"
"施加高于额定电压的测试电压,持续一定时间,检测是否存在绝缘击穿风险。",
4
),
createNode(
"车间设计制造",
"三、调试、检验与包装发货",
"功能模拟调试",
"在不接通主电源的情况下,通过外部电源模拟信号,测试控制回路的逻辑是否正确。然后接通主电源,进行空载和带载运行测试。"
"在不接通主电源的情况下,通过外部电源模拟信号,测试控制回路的逻辑是否正确。然后接通主电源,进行空载和带载运行测试。",
5
),
// 四、清理与包装 阶段
@@ -288,19 +328,22 @@ public class TableDataConstantUtil {
"车间设计制造",
"四、清理与包装",
"清理柜内灰尘、线头等。",
null
null,
1
),
createNode(
"车间设计制造",
"四、清理与包装",
"张贴铭牌、警告标识、一次系统图等。",
null
null,
2
),
createNode(
"车间设计制造",
"四、清理与包装",
"使用塑料膜、气泡袋、护角、木箱等对产品进行防护包装,防止运输途中损坏。",
null
null,
3
),
// 五、文件整理与发货 阶段
@@ -308,13 +351,15 @@ public class TableDataConstantUtil {
"车间设计制造",
"五、文件整理与发货",
"整理随柜文件,通常包括:合格证、出厂检验报告、电气原理图、接线图、元器件说明书等。",
null
null,
1
),
createNode(
"车间设计制造",
"五、文件整理与发货",
"安排物流,准时发货给客户。",
null
null,
2
),
//现场实施设计表
@@ -325,35 +370,40 @@ public class TableDataConstantUtil {
"接地测试",
"条件在计划时间点前完成测试接地电阻值完全符合设计要求通常≤1Ω或按图纸规定测试报告含现场照片、测试仪读数、测试人、时间地点清晰、规范、完整并准时上传至公司项目管理平台。\n" +
"主动发现并解决问题:测试结果初次不合格,但团队能主动、快速地分析原因(如土壤问题、连接点腐蚀等),提出整改方案并实施,最终使电阻值达标。此举避免了项目后期更大的延误和成本。\n" +
"提供优化建议:在测试过程中,发现了设计图中未考虑到的接地隐患,或提出了被采纳的接地系统优化建议,提升了整体安全性"
"提供优化建议:在测试过程中,发现了设计图中未考虑到的接地隐患,或提出了被采纳的接地系统优化建议,提升了整体安全性",
1
),
createNode(
"现场实施设计",
"一、现场调试",
"现场接线安装及规范",
"核心目标: 所有电气接线工作100%符合图纸与规范,布线整齐、标识清晰、现场安全整洁,为后续调试奠定坚实的硬件基础,实现“零隐患”移交。\n" +
"考核维度: 正确性、规范性、安全性、进度。"
"考核维度: 正确性、规范性、安全性、进度。",
2
),
createNode(
"现场实施设计",
"一、现场调试",
"PLC打点",
"核心目标: 高效、准确地验证并确认PLC的每一个输入/输出I/O点与现场对应的传感器、执行器动作完全一致确保硬件层与软件层信号通道100%正确、可靠。\n" +
"考核维度: 准确性、完整性、效率、文档记录。"
"考核维度: 准确性、完整性、效率、文档记录。",
3
),
createNode(
"现场实施设计",
"一、现场调试",
"传动优化",
"核心目标: 通过参数整定、特性调试,使所有传动设备(如变频器、伺服驱动器、直流调速器等)的输出特性完全满足甚至超越工艺要求,确保系统运行平稳、高效、可靠。\n" +
"考核维度: 性能指标、稳定性、效率、技术创新"
"考核维度: 性能指标、稳定性、效率、技术创新",
4
),
createNode(
"现场实施设计",
"一、现场调试",
"联动调试",
"核心目标: 在“单动”和“传动优化”完成的基础上,使整个自动化系统按预设的工艺流程、联锁逻辑和安全策略,自动、稳定、可靠地连续运行,实现项目的最终功能。\n" +
"考核维度: 系统稳定性、逻辑正确性、故障率、团队协作、最终用户满意度"
"考核维度: 系统稳定性、逻辑正确性、故障率、团队协作、最终用户满意度",
5
),
// 五、项目收尾 阶段
@@ -362,7 +412,8 @@ public class TableDataConstantUtil {
"二、项目收尾",
"收尾",
"核心目标: 成功通过客户或最终用户的正式验收,所有技术指标、性能要求和文档资料均满足合同要求,项目正式移交,并取得关键的验收证明文件。\n" +
"考核维度: 客户满意度、验收一次性通过率、文档完整性、项目尾款触发"
"考核维度: 客户满意度、验收一次性通过率、文档完整性、项目尾款触发",
1
)
);
@@ -375,81 +426,94 @@ public class TableDataConstantUtil {
"需求分析",
"需求调研",
"用户访谈、业务场景梳理、现有系统调研",
null
null,
1
),
createNode(
"需求分析",
"需求梳理",
"功能需求清单编写",
null
null,
1
),
createNode(
"需求分析",
"需求评审",
"内部评审(团队对齐)、外部评审(客户 / 用户确认、需求文档定稿PRD",
null
null,
1
),
createNode(
"设计阶段",
"架构设计",
"技术架构选型、系统交互流程图设计、核心模块划分",
null
null,
1
),
createNode(
"设计阶段",
"数据库设计",
"数据模型设计ER 图)、表结构定义、索引设计",
null
null,
1
),
createNode(
"设计阶段",
"界面与交互设计",
"UI 设计(原型图 / 视觉稿)、交互逻辑设计、前端页面结构规划",
null
null,
1
),
createNode(
"开发阶段",
"前端开发",
"技术选型(框架 / 库)、开发环境搭建、页面开发、前端逻辑实现",
null
null,
1
),
createNode(
"开发阶段",
"后端开发",
"技术栈确定(语言 / 框架)、开发环境搭建、核心业务逻辑开发、数据库交互实现、接口开发",
null
null,
1
),
createNode(
"开发阶段",
"移动端开发",
"原生 / 跨平台技术选型、开发环境配置、页面开发、原生功能集成(相机 / 定位等)、接口联调",
null
null,
1
),
createNode(
"测试阶段",
"功能测试",
"单元测试验证、集成测试模块间交互、系统测试全流程功能、回归测试Bug 修复后)",
null
null,
1
),
createNode(
"部署上线",
"环境准备",
"生产环境配置(服务器 / 数据库 / 中间件)、配置文件梳理、安全合规检查(权限 / 加密等)",
null
null,
1
),
createNode(
"部署上线",
"部署执行",
"部署脚本编写、版本打包与发布、灰度发布策略(若需)、监控工具部署(日志 / 告警)",
null
null,
1
),
createNode(
"部署上线",
"上线验证",
"功能冒烟测试、数据一致性校验、性能监控(首小时 / 首日)、回滚方案准备",
null
null,
1
)
);
);
}
// /**
@@ -476,12 +540,13 @@ public class TableDataConstantUtil {
* 工具方法快速创建NodeDTO对象
* 步骤名称默认使用二级节点名称(确保非空)
*/
private static NodeDTO createNode(String tabNode, String firstLevel, String secondLevel, String specification) {
private static NodeDTO createNode(String tabNode, String firstLevel, String secondLevel, String specification, Integer sortNum) {
NodeDTO node = new NodeDTO();
node.setTabNode(tabNode);
node.setFirstLevelNode(firstLevel);
node.setSecondLevelNode(secondLevel);
node.setSpecification(specification);
node.setSortNum(sortNum); // 默认顺序号为0可根据需要调整
node.setStepName(secondLevel); // 步骤名=二级节点名(满足非空约束)
return node;
}

View File

@@ -61,7 +61,8 @@
tab_node,
first_level_node,
second_level_node,
specification
specification,
sort_num
) VALUES
<foreach item="item" index="index" collection="list" separator=",">
(
@@ -71,7 +72,8 @@
#{item.tabNode},
#{item.firstLevelNode},
#{item.secondLevelNode},
#{item.specification}
#{item.specification},
#{item.sortNum}
)
</foreach>
</insert>