From ab9d7e55fe3147e98ae0e6d1ef9bb6dae84bab84 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Thu, 23 Oct 2025 13:46:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E6=B7=BB=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=BF=9B=E5=BA=A6=E6=A8=A1=E6=9D=BF=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=BD=AF=E4=BB=B6=E5=BC=80=E5=8F=91=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 OaProjectScheduleBo 中新增 templateType 字段用于区分模板类型 - 根据模板类型动态选择对应的表格数据插入逻辑 - 新增软件类项目进度表格模板数据 - 更新自动化设计表格模板方法名以明确用途 - 添加未知模板类型的异常处理机制 --- .../oa/domain/bo/OaProjectScheduleBo.java | 2 + .../impl/OaProjectScheduleServiceImpl.java | 9 +- .../ruoyi/oa/utils/TableDataConstantUtil.java | 91 ++++++++++++++++++- 3 files changed, 99 insertions(+), 3 deletions(-) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleBo.java index f1cef30..c9193ff 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaProjectScheduleBo.java @@ -72,4 +72,6 @@ public class OaProjectScheduleBo extends BaseEntity { private String mode; private List steps; + + private String templateType; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java index 941d5db..a4ffe91 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/OaProjectScheduleServiceImpl.java @@ -31,6 +31,7 @@ import com.ruoyi.oa.mapper.OaProjectScheduleMapper; import com.ruoyi.oa.service.IOaProjectScheduleService; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.Map; @@ -226,7 +227,13 @@ public class OaProjectScheduleServiceImpl implements IOaProjectScheduleService { if (scheduleId == null) { throw new RuntimeException("插入项目进度表后未获取到主键"); } - projectScheduleStepService.batchInsertNodes(TableDataConstantUtil.getTableData(), scheduleId); + if (bo.getTemplateType().equals("automation")){ + projectScheduleStepService.batchInsertNodes(TableDataConstantUtil.getAutomationTableData(), scheduleId); + }else if (bo.getTemplateType().equals("software")){ + projectScheduleStepService.batchInsertNodes(TableDataConstantUtil.getSoftwareTableData(), scheduleId); + }else { + throw new RuntimeException("未知的模板类型,无法插入项目进度节点"); + } Log.info("项目进度节点批量插入成功"); return true; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/utils/TableDataConstantUtil.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/utils/TableDataConstantUtil.java index 3b745f0..dc362da 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/utils/TableDataConstantUtil.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/utils/TableDataConstantUtil.java @@ -11,10 +11,11 @@ import java.util.List; public class TableDataConstantUtil { /** - * 示例1:自动化设计表格数据 + * 自动化设计表格数据 * 包含tab节点、一级节点、二级节点、规范说明 */ - public static List getTableData() { + //自动化表格模板 + public static List getAutomationTableData() { return Arrays.asList( //自动化设计表 // 技术审查阶段 @@ -367,6 +368,90 @@ public class TableDataConstantUtil { ); } + //软件表格模板 + public static List getSoftwareTableData() { + return Arrays.asList( + createNode( + "需求分析", + "需求调研", + "用户访谈、业务场景梳理、现有系统调研", + null + ), + createNode( + "需求分析", + "需求梳理", + "功能需求清单编写", + null + ), + createNode( + "需求分析", + "需求评审", + "内部评审(团队对齐)、外部评审(客户 / 用户确认)、需求文档定稿(PRD)", + null + ), + createNode( + "设计阶段", + "架构设计", + "技术架构选型、系统交互流程图设计、核心模块划分", + null + ), + createNode( + "设计阶段", + "数据库设计", + "数据模型设计(ER 图)、表结构定义、索引设计", + null + ), + createNode( + "设计阶段", + "界面与交互设计", + "UI 设计(原型图 / 视觉稿)、交互逻辑设计、前端页面结构规划", + null + ), + createNode( + "开发阶段", + "前端开发", + "技术选型(框架 / 库)、开发环境搭建、页面开发、前端逻辑实现", + null + ), + createNode( + "开发阶段", + "后端开发", + "技术栈确定(语言 / 框架)、开发环境搭建、核心业务逻辑开发、数据库交互实现、接口开发", + null + ), + createNode( + "开发阶段", + "移动端开发", + "原生 / 跨平台技术选型、开发环境配置、页面开发、原生功能集成(相机 / 定位等)、接口联调", + null + ), + createNode( + "测试阶段", + "功能测试", + "单元测试验证、集成测试(模块间交互)、系统测试(全流程功能)、回归测试(Bug 修复后)", + null + ), + createNode( + "部署上线", + "环境准备", + "生产环境配置(服务器 / 数据库 / 中间件)、配置文件梳理、安全合规检查(权限 / 加密等)", + null + ), + createNode( + "部署上线", + "部署执行", + "部署脚本编写、版本打包与发布、灰度发布策略(若需)、监控工具部署(日志 / 告警)", + null + ), + createNode( + "部署上线", + "上线验证", + "功能冒烟测试、数据一致性校验、性能监控(首小时 / 首日)、回滚方案准备", + null + ) + ); + } + // /** // * 示例2:机械设计表格数据(另一组不同的节点) // */ @@ -400,4 +485,6 @@ public class TableDataConstantUtil { node.setStepName(secondLevel); // 步骤名=二级节点名(满足非空约束) return node; } + + } \ No newline at end of file