Remove obsolete export APIs and persist recruitment work history

This commit is contained in:
wkc
2026-04-22 13:38:43 +08:00
parent 94507e3747
commit 0c5fa6b2c8
47 changed files with 823 additions and 408 deletions

View File

@@ -0,0 +1,47 @@
# 信息维护移除导出与菜单排序后端实施计划
**Goal:** 移除信息维护相关模块的后端导出接口与导出权限,并通过增量 SQL 统一“信息维护”目录下的菜单顺序。
**Architecture:** 后端仅收口 `ccdi-info-collection` 控制器层的 `/export` 接口,不调整列表、详情、导入与删除链路;菜单治理通过 `sql/migration` 新增一份可重复执行脚本完成,脚本同时删除导出权限按钮并更新 `order_num`
**Tech Stack:** Java 21, Spring Boot 3, MyBatis Plus, MySQL, Markdown
---
## 文件结构与职责
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/`
移除信息维护模块各控制器的 `/export` 接口。
- `sql/migration/2026-04-22-remove-info-maintenance-export-and-sort-menus.sql`
删除导出权限菜单并统一“信息维护”子菜单排序。
- `sql/*.sql`
修正仓库内已有菜单脚本,避免新库初始化时继续带出导出权限或错误顺序。
## 实施步骤
- [x] 盘点信息维护模块现存 `/export` 接口与导出权限点
- [x] 移除员工、关系、招聘、调动、采购、账户等模块的控制器导出接口
- [x] 新增菜单增量脚本,删除导出权限并统一菜单排序
- [x] 同步修正仓库内已有菜单 SQL避免新环境重新带回导出权限
- [x] 运行检索校验,确认控制器层不再暴露信息维护导出接口
## 验证
```bash
rg -n "@PostMapping\\(\"/export\"\\)|hasPermi\\('ccdi:.*:export'\\)" \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiAccountInfoController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiBaseStaffController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiCustEnterpriseRelationController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiCustFmyRelationController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiPurchaseTransactionController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiStaffEnterpriseRelationController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiStaffFmyRelationController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiStaffRecruitmentController.java \
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/CcdiStaffTransferController.java
```
## 完成标准
- 信息维护相关控制器不再提供 `/export` 接口
- “信息维护”菜单下相关导出权限按钮已可通过增量 SQL 清理
- 菜单排序调整为统一且可重复执行的固定顺序

View File

@@ -0,0 +1,36 @@
# 招聘信息历史工作经历手动编辑后端实施计划
## 文档信息
- 保存路径:`docs/plans/backend/2026-04-22-staff-recruitment-work-experience-manual-edit-plan.md`
- 适用范围:招聘信息管理编辑接口
- 需求目标:在招聘信息编辑页支持手动维护历史工作经历,并保证保存后落到 `ccdi_staff_recruitment_work` 子表
## 实施范围
1. 扩展招聘信息编辑 DTO允许接收历史工作经历列表。
2. 增加历史工作经历子项 DTO并对字符长度、年月格式进行基础校验。
3. 调整招聘信息编辑服务:
- 主表 `ccdi_staff_recruitment` 继续按原逻辑更新;
- 当招聘类型为 `SOCIAL` 且前端传入工作经历列表时,按招聘记录编号先删后插覆盖子表;
- 当招聘类型改为 `CAMPUS` 时,删除该记录已存在的历史工作经历。
## 实施步骤
1. 新增历史工作经历编辑 DTO约束 `companyName``departmentName``positionName`、年月等字段长度与格式。
2.`CcdiStaffRecruitmentEditDTO` 中增加 `workExperienceList` 字段,并启用嵌套校验。
3.`CcdiStaffRecruitmentServiceImpl.updateRecruitment` 中增加子表覆盖保存逻辑。
4. 保持详情查询逻辑不变,继续通过已有 `selectWorkExperienceList` 返回子表明细。
## 影响评估
- 仅影响招聘信息编辑接口,不影响招聘信息导入、详情查询、列表分页逻辑。
- 不新增数据库结构变更,不新增菜单或权限。
- 旧前端若未传 `workExperienceList`,社招编辑仍保留已有工作经历数据,不会被误删。
## 验证要点
1. 编辑社招记录时可提交多条历史工作经历并成功保存。
2. 编辑社招记录时删除全部历史工作经历后提交,子表数据应被清空。
3. 将社招记录改为校招后提交,历史工作经历应自动删除。
4. 非法年月格式或超长字段应被后端校验拒绝。

View File

@@ -0,0 +1,36 @@
# 员工信息维护资产表单单横向滚动实施计划
> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 修复员工信息维护页“新增员工”弹窗中资产信息表单出现两条横向滚动条的问题,仅保留一条可用横向滚动条。
**Architecture:** 本次仅调整 `ccdiBaseStaff` 页面资产编辑表格的容器样式,不改动资产字段、提交参数、接口结构和详情展示逻辑。实现路径为移除外层包裹容器的横向滚动能力,并取消表格根节点的强制最小宽度,让横向滚动统一由 `el-table` 内部负责。
**Tech Stack:** Vue 2, Element UI, JavaScript, Markdown
---
## 文件结构与职责
- `ruoyi-ui/src/views/ccdiBaseStaff/index.vue`
调整资产编辑表格容器样式,消除双横向滚动条。
## 实施步骤
- [x] 定位资产编辑表格双横向滚动条的成因
- [x] 删除外层滚动容器的横向滚动能力
- [x] 取消表格根节点的强制最小宽度,保留 `el-table` 内部横向滚动
- [x] 运行前端构建校验模板与样式改动未引入语法问题
- [x] 使用浏览器实际打开员工信息维护弹窗,确认资产表单只剩一条横向滚动条
## 验证
```bash
source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && npm run build:prod
```
## 完成标准
- 员工信息维护页资产信息编辑表格仅保留一条横向滚动条
- 资产字段录入、删除和提交交互保持不变
- 页面未新增额外横向滚动副作用

View File

@@ -0,0 +1,36 @@
# 信息维护移除导出与菜单排序前端实施计划
**Goal:** 移除信息维护相关页面中的导出按钮和前端下载逻辑,确保页面仅保留查询、新增、编辑、删除、导入等当前需要的能力。
**Architecture:** 前端只在现有信息维护页面内做删除型改动,直接移除按钮 DOM 与 `handleExport` 方法,不改动查询表单、表格展示、导入弹窗和失败记录查看能力;同时清理对应 API 文件中的导出封装,避免保留无效前端调用入口。
**Tech Stack:** Vue 2, Element UI, JavaScript, Markdown
---
## 文件结构与职责
- `ruoyi-ui/src/views/ccdi*/index.vue`
移除账户库、员工关系、客户关系、招聘、调动、采购等页面的导出按钮和下载方法。
- `ruoyi-ui/src/api/ccdi*.js`
删除不再使用的导出 API 封装。
## 实施步骤
- [x] 盘点信息维护中仍显示导出按钮的前端页面
- [x] 移除 8 个页面的导出按钮与 `handleExport` 方法
- [x] 清理对应 API 文件中的导出封装
- [x] 运行前端构建校验模板和脚本改动未引入语法问题
- [x] 使用 Playwright 在真实浏览器中确认侧边栏顺序与页面按钮状态
## 验证
```bash
source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && npm run build:prod
```
## 完成标准
- 信息维护相关页面不再展示“导出”按钮
- 页面中不再保留导出下载方法
- 前端导入、失败记录、详情和编辑交互保持正常

View File

@@ -0,0 +1,36 @@
# 员工亲属资产表单单横向滚动实施计划
> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 修复员工亲属关系维护页中亲属资产信息表单出现两条横向滚动条的问题,仅保留一条可用横向滚动条。
**Architecture:** 本次仅调整 `ccdiStaffFmyRelation` 页面亲属资产编辑表格的容器样式,不改动亲属资产字段、提交参数、接口结构和详情展示逻辑。实现路径与员工信息维护页保持一致:移除外层包裹容器的横向滚动能力,并取消表格根节点的强制最小宽度,让横向滚动统一由 `el-table` 内部负责。
**Tech Stack:** Vue 2, Element UI, JavaScript, Markdown
---
## 文件结构与职责
- `ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue`
调整亲属资产编辑表格容器样式,消除双横向滚动条。
## 实施步骤
- [x] 定位亲属资产编辑表格双横向滚动条的成因
- [x] 删除外层滚动容器的横向滚动能力
- [x] 取消表格根节点的强制最小宽度,保留 `el-table` 内部横向滚动
- [x] 运行前端构建校验模板与样式改动未引入语法问题
- [x] 使用浏览器实际打开员工亲属关系维护弹窗,确认亲属资产表单只剩一条横向滚动条
## 验证
```bash
source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && npm run build:prod
```
## 完成标准
- 员工亲属关系维护页亲属资产信息编辑表格仅保留一条横向滚动条
- 亲属资产字段录入、删除和提交交互保持不变
- 页面未新增额外横向滚动副作用

View File

@@ -0,0 +1,35 @@
# 招聘信息历史工作经历手动编辑前端实施计划
## 文档信息
- 保存路径:`docs/plans/frontend/2026-04-22-staff-recruitment-work-experience-manual-edit-plan.md`
- 适用范围:`ruoyi-ui/src/views/ccdiStaffRecruitment/index.vue`
- 需求目标:在招聘信息管理编辑页支持手动新增、删除并提交历史工作经历
## 实施范围
1. 在招聘信息编辑弹窗中,为社招记录增加“候选人历史工作经历”编辑区域。
2. 提供手动新增、删除经历行的交互能力。
3. 提交编辑时将历史工作经历列表一并传给后端。
4. 在前端提交前补充基础校验,避免空工作单位、空入职年月或错误年月范围直接提交。
## 实施步骤
1. 在编辑弹窗中新增工作经历表格,仅在“编辑 + 社招”场景展示。
2. 为每条经历提供工作单位、所属部门、岗位名称、入职年月、离职年月、离职原因、主要工作内容、备注输入项。
3. 将入职时间、离职时间改为月份选择器,避免手输年月格式。
4. 增加 `handleAddWorkExperience``handleRemoveWorkExperience``syncWorkExperienceSortOrder` 等方法维护列表顺序。
5. 在提交前执行工作经历校验,并按顺序规范化后再调用编辑接口。
## 交互约束
- 本次仅支持编辑页手动维护,不扩展新增页展示范围。
- 招聘类型为校招时不展示工作经历编辑区域。
- 保存时以当前表格内容覆盖后端已有历史工作经历。
## 验证要点
1. 打开社招编辑弹窗时可看到历史工作经历编辑区。
2. 可新增、删除多条经历,序号自动重排。
3. 入职年月、离职年月格式错误或离职早于入职时,页面阻止提交并提示。
4. 保存成功后再次打开详情/编辑页,工作经历展示与提交内容一致。

View File

@@ -0,0 +1,28 @@
# 员工信息维护资产表单单横向滚动实施记录
## 文档信息
- 保存路径:`docs/reports/implementation/2026-04-22-base-staff-asset-single-horizontal-scroll-implementation.md`
- 实施日期2026-04-22
- 关联范围:员工信息维护前端页面
## 本次修改内容
1. 定位到员工信息维护页资产编辑表格存在双横向滚动条,原因是外层 `assets-table-wrapper``el-table` 内层同时承担横向滚动。
2. 移除外层容器的 `overflow-x: auto`,避免包裹层再次生成横向滚动条。
3. 将资产编辑表格根节点从强制 `min-width` 调整为 `width: 100%`,保持表格横向滚动由 `el-table` 自身管理。
4. 新增本次前端实施计划与实施记录,沉淀问题定位、改动范围与验证要求。
## 影响范围
- 前端:`ruoyi-ui/src/views/ccdiBaseStaff/index.vue` 资产信息编辑弹窗样式。
- 文档:新增前端实施计划与实施记录。
## 验证情况
1. 前端构建校验:
- 执行命令:`source ~/.nvm/nvm.sh && nvm use 14.21.3 && cd ruoyi-ui && npm run build:prod`
- 结果:构建成功;存在项目原有的 bundle size warnings本次改动未引入构建失败。
2. Playwright 浏览器实测:
- 执行方式:通过 `nvm use 25.9.0` 启动 `playwright-cli`,在浏览器中 mock 登录态与员工信息维护页最小依赖接口后打开 `/maintain/baseStaff`,进入“新增员工”弹窗并新增一条资产记录。
- 结果:资产表单外层包装器 `clientWidth=984``scrollWidth=984``overflowX=visible``el-table` 内部滚动区 `clientWidth=982``scrollWidth=1560``overflowX=auto`。说明外层不再生成横向滚动条,仅保留表格内部一条横向滚动条。

View File

@@ -0,0 +1,75 @@
# 信息维护移除导出与菜单排序实施记录
## 文档信息
- 保存路径:`docs/reports/implementation/2026-04-22-info-maintenance-remove-export-and-menu-sort-implementation.md`
- 实施日期2026-04-22
- 关联计划:
- `docs/plans/backend/2026-04-22-info-maintenance-remove-export-and-menu-sort-backend-implementation.md`
- `docs/plans/frontend/2026-04-22-info-maintenance-remove-export-and-menu-sort-frontend-implementation.md`
## 本次修改内容
1. 移除信息维护下 8 个前端页面中的“导出”按钮和对应 `handleExport` 下载逻辑,覆盖账户库、员工/客户关系、采购交易、招聘、调动等当前仍暴露导出的页面。
2. 删除信息维护相关控制器中的 `/export` 接口,包括员工信息维护中仅后端残留的导出接口,避免前后端出现一端已删、一端仍可访问的链路分叉。
3. 清理对应前端 API 文件中的导出封装,避免保留无实际使用价值的调用入口。
4. 新增 `sql/migration/2026-04-22-remove-info-maintenance-export-and-sort-menus.sql`,用于删除信息维护导出权限按钮并统一“信息维护”子菜单顺序。
5. 同步修正仓库内已有菜单 SQL确保新库初始化时不再带出导出按钮且菜单默认顺序与本次规则一致。
## 菜单排序口径
“信息维护”目录下菜单统一按以下顺序排列:
1. 员工信息维护
2. 招聘信息维护
3. 员工调动记录
4. 员工亲属关系维护
5. 员工实体关系维护
6. 征信维护
7. 实体库管理
8. 中介库管理
9. 账户库管理
10. 信贷客户家庭关系
11. 信贷客户实体关联
12. 采购交易管理
## 影响范围
- 前端:
- `ruoyi-ui/src/views/ccdiAccountInfo/index.vue`
- `ruoyi-ui/src/views/ccdiCustEnterpriseRelation/index.vue`
- `ruoyi-ui/src/views/ccdiCustFmyRelation/index.vue`
- `ruoyi-ui/src/views/ccdiPurchaseTransaction/index.vue`
- `ruoyi-ui/src/views/ccdiStaffEnterpriseRelation/index.vue`
- `ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue`
- `ruoyi-ui/src/views/ccdiStaffRecruitment/index.vue`
- `ruoyi-ui/src/views/ccdiStaffTransfer/index.vue`
- 后端:
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/controller/` 下 9 个信息维护控制器
- SQL
- `sql/migration/2026-04-22-remove-info-maintenance-export-and-sort-menus.sql`
- `sql/ccdi_credit_info_menu.sql`
- `sql/ccdi_cust_fmy_relation_menu.sql`
- `sql/ccdi_purchase_transaction_menu.sql`
- `sql/ccdi_staff_fmy_relation_menu.sql`
- `sql/dpc_intermediary_blacklist.sql`
- `sql/menu-intermediary.sql`
- `sql/migration/2026-04-13-add-ccdi-account-info-menu.sql`
- `sql/migration/2026-04-17-add-enterprise-base-info-menu.sql`
## 验证情况
1. 文本回归校验:
- 使用 `rg` 检查信息维护相关页面后,已不再发现“导出”按钮文本、`handleExport` 方法以及对应的导出下载路径。
- 使用 `rg` 检查后端控制器后,已不再发现信息维护相关 `/export` 接口和 `ccdi:*:export` 权限声明。
2. 后端编译校验:
- 执行命令:`mvn -pl ccdi-info-collection -am compile -DskipTests`
- 结果:编译成功;存在模块 `ccdi-info-collection` 的历史重复依赖告警,但本次改动未引入新的编译错误。
3. 前端构建校验:
- 执行命令:`source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && npm run build:prod`
- 结果:构建成功;仅存在项目原有的 bundle size warnings本次改动未引入新的构建错误。
4. Playwright 浏览器实测:
- 执行方式:通过 `nvm` 切换 Node 版本后启动前端页面,使用 Playwright 打开真实浏览器验证信息维护菜单顺序及页面按钮状态。
- 结果:在 mock 登录态与最小接口夹具下打开 `http://127.0.0.1:8080/maintain/baseStaff`,读取到“信息维护”子菜单顺序为“员工信息维护 -> 招聘信息维护 -> 员工调动记录 -> 员工亲属关系维护 -> 员工实体关系维护 -> 征信维护 -> 实体库管理 -> 中介库管理 -> 账户库管理 -> 信贷客户家庭关系 -> 信贷客户实体关联 -> 采购交易管理”,与本次排序一致。
- 结果:继续在 `accountInfo``custEnterpriseRelation``custFmyRelation``purchaseTransaction``staffEnterpriseRelation``staffFmyRelation``staffRecruitment``staffTransfer` 8 个页面读取按钮文本,均未出现“导出”按钮。
- 结果:已生成浏览器截图 `.playwright-cli/page-2026-04-22T03-10-32-002Z.png` 作为页面验证留痕,并在验证后关闭 Playwright 浏览器与前端 dev server。

View File

@@ -0,0 +1,28 @@
# 员工亲属资产表单单横向滚动实施记录
## 文档信息
- 保存路径:`docs/reports/implementation/2026-04-22-staff-family-asset-single-horizontal-scroll-implementation.md`
- 实施日期2026-04-22
- 关联范围:员工亲属关系维护前端页面
## 本次修改内容
1. 定位到员工亲属关系维护页亲属资产编辑表格存在双横向滚动条,原因是外层 `assets-table-wrapper``el-table` 内层同时承担横向滚动。
2. 移除外层容器的 `overflow-x: auto`,避免包裹层再次生成横向滚动条。
3. 将亲属资产编辑表格根节点从强制 `min-width` 调整为 `width: 100%`,保持表格横向滚动由 `el-table` 自身管理。
4. 新增本次前端实施计划与实施记录,沉淀问题定位、改动范围与验证要求。
## 影响范围
- 前端:`ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue` 亲属资产信息编辑弹窗样式。
- 文档:新增前端实施计划与实施记录。
## 验证情况
1. 前端构建校验:
- 执行命令:`source ~/.nvm/nvm.sh && nvm use 14.21.3 && cd ruoyi-ui && npm run build:prod`
- 结果:构建成功;存在项目原有的 bundle size warnings本次改动未引入构建失败。
2. Playwright 浏览器实测:
- 执行方式:通过 `nvm use 25.9.0` 启动 `playwright-cli`,在浏览器中 mock 登录态与员工亲属关系维护页最小依赖接口后打开 `/maintain/staffFmyRelation`,进入“添加员工亲属关系”弹窗并新增一条亲属资产记录。
- 结果:亲属资产表单外层包装器 `clientWidth=984``scrollWidth=984``overflowX=visible``el-table` 内部滚动区 `clientWidth=982``scrollWidth=1530``overflowX=auto`。说明外层不再生成横向滚动条,仅保留表格内部一条横向滚动条。

View File

@@ -0,0 +1,48 @@
# 招聘信息编辑页手动维护历史工作经历实施记录
## 文档信息
- 保存路径:`docs/reports/implementation/2026-04-22-staff-recruitment-work-experience-manual-edit-implementation.md`
- 实施日期2026-04-22
- 关联范围:招聘信息管理前后端
## 本次修改内容
### 后端
1. 新增 `CcdiStaffRecruitmentWorkEditDTO`,接收编辑页提交的历史工作经历子项。
2.`CcdiStaffRecruitmentEditDTO` 中补充 `workExperienceList` 字段,并启用嵌套校验。
3.`CcdiStaffRecruitmentServiceImpl.updateRecruitment` 中增加历史工作经历覆盖保存逻辑:
- 社招且前端传入工作经历列表时,按当前表单内容覆盖 `ccdi_staff_recruitment_work`
- 切换为校招时,自动清空该招聘记录的历史工作经历。
### 前端
1. 在招聘信息编辑弹窗中新增“候选人历史工作经历”编辑表格。
2. 支持手动新增、删除历史工作经历,并在前端自动重排序号。
3. 将入职时间、离职时间改为月份选择器,避免手输格式错误。
4. 提交编辑前增加年月格式、开始结束时间顺序、必填项校验。
5. 编辑提交时将规范化后的历史工作经历列表一并提交给后端;新增请求继续沿用原字段集,不携带额外子表字段。
## 影响范围
- 后端:招聘信息编辑接口、历史工作经历子表保存逻辑。
- 前端:招聘信息管理编辑弹窗。
- 文档:新增前后端实施计划与本实施记录。
## 验证情况
1. Maven 编译校验通过:
- 执行命令:`mvn -pl ccdi-info-collection -am compile -DskipTests`
- 结果:编译成功。
2. 前端构建校验通过:
- 执行命令:`cd ruoyi-ui && source ~/.nvm/nvm.sh && nvm use 14.21.3 && npm run build:prod`
- 结果:构建成功,仅存在原有体积告警,无新增构建错误。
3. 浏览器实测通过:
- 先通过真实登录页进入实际业务路由 `/maintain/staffRecruitment`
- 在真实“招聘信息管理”页面编辑社招记录 `RC2025001805`,手动新增一条历史工作经历并保存;
- 保存后列表中的“历史工作经历”由 `0段` 变为 `1段`
- 打开真实详情弹窗后,新增的工作经历可正常展示。
- 在另一条 `0段` 记录的编辑弹窗中确认“入职时间 / 离职时间”已切换为月份选择器,点击后会弹出月份面板。
4. 测试进程清理:
- 已关闭本次测试过程中打开的 Playwright 浏览器、前端 dev server 和后端进程。