# 流程列表项目删除与恢复实施记录

## 修改内容

后端新增 `5-已删除` 项目状态，删除项目时仅更新 `ccdi_project.status='5'` 与 `del_flag='2'`，不删除任何项目关联数据；新增恢复接口，将已删除项目恢复为 `已完成(status=1)` 并清除删除标记。列表默认排除删除态，管理员通过 `includeDeleted=true` 查询删除列表并获取 `status5` 统计。

前端在流程列表中新增删除按钮和管理员“已删除”列表入口，删除列表只展示恢复按钮。删除、恢复都增加确认弹窗，并在成功后刷新列表和状态统计。

删除按钮已调整为红色文本按钮，悬停时使用浅红背景，便于和普通操作按钮区分。

## 影响范围

- 后端：项目 Controller、Service、权限服务、Mapper XML、项目状态常量、DTO/VO、项目初始化 SQL 与迁移 SQL。
- 前端：项目列表页、搜索条、项目表格、项目 API。
- 数据：新增项目状态字典 `5-已删除`，更新项目主表 `status` 字段注释，新增迁移脚本。

## 验证记录

1. `mvn -pl ccdi-project -am -Dtest=CcdiProjectServiceImplTest,CcdiProjectControllerTest,CcdiProjectMapperXmlTest,CcdiProjectStatusSqlTest -DfailIfNoTests=false -Dsurefire.failIfNoSpecifiedTests=false test`
   - 结果：通过，26 个测试全部成功。
2. `source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use && node tests/unit/project-list-archive-flow.test.js && node tests/unit/project-list-reanalyze-flow.test.js`
   - 结果：通过。
3. `source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use && node tests/unit/project-table-style.test.js && node tests/unit/project-list-archive-flow.test.js && node tests/unit/project-list-reanalyze-flow.test.js`
   - 结果：通过，删除按钮红色样式断言通过。
4. `source ~/.nvm/nvm.sh && cd ruoyi-ui && nvm use && npm run build:prod`
   - 结果：通过，仅存在既有资源体积警告。
5. 使用应用内浏览器打开真实页面 `http://localhost:1024/ccdiProject`，以 `admin` 登录验证项目 `删除恢复验证项目-20260702093910`：
   - 默认列表可搜索到项目并显示“删除”按钮。
   - 删除确认弹窗提示“项目内数据不会删除”，确认后默认列表不再展示该项目。
   - “已删除”列表展示该项目且仅有“恢复”按钮，不展示进入项目、查看结果、重新分析、归档。
   - 恢复确认弹窗提示“项目将恢复为已完成状态”，确认后已删除列表不再展示该项目，接口复核默认列表中该项目状态为 `1`。
   - 验收结束后已删除本轮验证项目数据。
   - 验收期间启动的后端进程已通过 `bin/restart_java_backend.sh stop` 关闭；前端 1024 服务为验收前已存在进程，未额外关闭。

## 后续验收

已完成本地真实页面验收。后续上线前需在目标环境执行迁移脚本并使用管理员账号复核删除、已删除列表与恢复链路。
