feat(oa): 添加项目进度模板类型支持软件开发模板
- 在 OaProjectScheduleBo 中新增 templateType 字段用于区分模板类型 - 根据模板类型动态选择对应的表格数据插入逻辑 - 新增软件类项目进度表格模板数据 - 更新自动化设计表格模板方法名以明确用途 - 添加未知模板类型的异常处理机制
This commit is contained in:
@@ -72,4 +72,6 @@ public class OaProjectScheduleBo extends BaseEntity {
|
||||
private String mode;
|
||||
|
||||
private List<OaProjectScheduleStepBo> steps;
|
||||
|
||||
private String templateType;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -11,10 +11,11 @@ import java.util.List;
|
||||
public class TableDataConstantUtil {
|
||||
|
||||
/**
|
||||
* 示例1:自动化设计表格数据
|
||||
* 自动化设计表格数据
|
||||
* 包含tab节点、一级节点、二级节点、规范说明
|
||||
*/
|
||||
public static List<NodeDTO> getTableData() {
|
||||
//自动化表格模板
|
||||
public static List<NodeDTO> getAutomationTableData() {
|
||||
return Arrays.asList(
|
||||
//自动化设计表
|
||||
// 技术审查阶段
|
||||
@@ -367,6 +368,90 @@ public class TableDataConstantUtil {
|
||||
);
|
||||
}
|
||||
|
||||
//软件表格模板
|
||||
public static List<NodeDTO> 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user