gongxiangp2/docs/团队职能数据库化与素材库后台入口-2026-10-08.md

27 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 团队职能数据库化与素材库后台入口
团队列表读取 `OrganizationUnit` 中唯一的品牌中心节点的有效直接下级部门,包括暂无人员或职责配置的部门。部门 ID 绑定 `TeamFunctionConfig`,名称不进入职责配置;HR 同步改名后仍读取同一配置。直属下级部门范围以 parentId 为准,不按前端部门名数组筛选。
负责人存 `PerformanceSurveyEmployeeProfile.id`,显示名和当前任职路径从花名册读取。HR 镜像没有明确的部门负责人字段,因此只接受超级管理员从本部门及下级在职候选人员中明确选择,不以职级、姓名、直属主管名自动判定。离职或调出后标记关联失效;重新保存时拒绝无效人员。未开通素材库账号的花名册人员同样可以作为负责人。
职责描述与分组条目存配置表;HR 同步不修改它们。读取不创建配置、不自动初始化。新增部门显示空态,停止同步的部门不再显示,但其配置和修改记录保留。普通品牌中心成员只能读取;维护资格通过数据库 `isSuperAdmin` 检查,候选人员列表只返回给维护者。保存使用串行化事务、版本校验、前后快照审计;审计失败时职责修改回滚。不会授予负责人任何素材权限。
前端保留紧凑工作面,点击编辑后内联维护负责人、说明和职责分组。失败及冲突不丢弃草稿;取消重新读取;部门切换及导航离开在存在修改时确认。接口 `/api/organization/team-functions`,迁移 `20261008_team_function_configs`。
原四套确认的职责图内容保留于 `data/team-function-initial-content.json`,只供一次性导入,页面及接口不导入它。使用 `scripts/seed-team-function-config.ts` 为一个明确部门 ID 导入一套模板;人员必须显式提供档案 ID,可选择暂不设置。默认只展示计划,`--apply` 才写入;已有配置拒绝覆盖。示例:
```powershell
npx tsx scripts/seed-team-function-config.ts --department-id <部门ID> --template "品牌创意A部" --actor-user-id <超级管理员ID> --lead-profile-id <人员档案ID>
# 核对输出中的当前部门、人员和内容后,用完全相同的参数加 --apply。
```
发布步骤:先备份并恢复到隔离数据库验证,再通过安全迁移器应用迁移(连同此前未发布的权限部门身份迁移),使用迁移审计回执部署应用。迁移器镜像带有只供人工调用的导入脚本;用 `--entrypoint /app/node_modules/.bin/tsx` 调用,默认只读,明确 `--apply` 后写入。读取当前组织和候选人员,人工核对旧职责图对应的实际部门 ID、负责人 ID 后逐个导入。组织改名、合并或职责调整不能通过相似名称猜测映射,未确认的配置留空。
本次发布前线上核实品牌中心有 5 个有效直属部门;品牌创意 A、B 与综合支持部的旧内容和负责人能唯一对应。用户已明确确认旧空间设计部职责迁入当前空间视觉部,负责人档案希文当前属于该部门。新增品牌设计部暂无已确认职责内容,保持待配置,由超级管理员维护。
素材库后台一直保留 `/admin`,线上实际检查到数据统计、素材管理、分类管理、部门权限配置、超级管理员及公网流量。找不到的原因是原素材库账户菜单把入口叫“治理与设置”,品牌中心账户菜单又缺少链接。本轮将素材库菜单名称明确为“素材库后台”,并在品牌中心账户菜单添加同名 `/admin` 入口,仅 ADMIN、SYSTEM_ADMIN、DEPT_ADMIN 显示,沿用后台本身的访问和数据范围控制。
验证证据:7 个相关套件、27 项测试通过;Prisma Client 与 schema 一致;类型检查、修改文件 lint 通过。使用独立本地 PostgreSQL 15 应用真实迁移,验证外键、部门和人员改名、离职、版本冲突、审计回滚、停用部门,以及导入脚本默认不写、显式导入、不覆盖已有配置。浏览器预览的团队职能直接调用真实服务访问此独立数据库,实际保存负责人后刷新保留,并恢复原样例设置;桌面、390px 手机、768px 平板无页面横向溢出或控制台错误,均只有一个 main/h1。账户菜单后台入口已实际显示;线上后台读取为只读检查。
本地预览 `http://localhost:3113/workspaces/organization/team-functions`,样例数据库容器 `gongxiangp2-team-functions-qa-20261008`,端口仅绑定 `127.0.0.1:55438`,保留供本地预览使用。其余预览页面仍使用模拟 API。截图位于 `tmp/permission-groups-qa/team-functions-db-*.png` 和 `material-admin-entry-desktop.png`。当前没有提交 Git 或部署,也没有写入生产业务数据。