维护部门与员工主数据。部门仅在企微维护,本系统只做入站同步与只读展示;员工可在系统维护编制、状态、权限等。
产品即核算/权限单元(见产品 SKU:products.project_name),不另建项目组表。员工可加入某个产品,并标记负责人。
阶段:P0。企微部门回写属 P2。
表:organizations
企业通讯录部门树,与产品无关。后台不提供创建 / 编辑 / 删除,改动请在企微通讯录完成后再同步。后台「员工」页左侧展示部门树(只读),右侧为该部门及子部门员工。
| 字段 | 说明 | 来源 |
|---|---|---|
| id | 系统主键 | 系统 |
| name | 部门名称 | 企微 |
| wecom_dept_id | 企微部门 id | 企微 |
| parent_id | 上级部门(可选,树形) | 企微 |
| sort | 排序(值大靠前) | 企微 |
| status | 启用 / 停用 | 企微 / 同步 |
| created_at / updated_at | 时间戳 | 系统 |
同步关联键:wecom_dept_id。
表:users
一经创建不允许删除;可改状态(在职 / 停用)。企微 UserId(wecom_userid)由同步写入,不可编辑。
| 编制 | 说明 |
|---|---|
| 正式工 | 正式全职员工 |
| 外编 | 常年外编人员 |
| 字段 | 说明 | 来源 |
|---|---|---|
| id | 系统主键 | 系统 |
| name | 姓名 | 企微 / 系统 |
| mobile | 手机 | 企微 / 系统 |
| 邮箱 | 企微 / 系统 | |
| wecom_userid | 企微 userid(登录与同步关联键,不可编辑) | 企微 |
| avatar | 头像 URL | 企微 |
| position | 职务 | 企微 / 系统 |
| gender | 性别 | 企微 |
| organization_id | 所属部门(可空) | 企微 / 系统 |
| employment_type | fulltime 正式工 / external 外编 |
系统 |
| status | 在职 / 离职(停用) | 企微 / 系统 |
| created_at / updated_at | 时间戳 | 系统 |
员工可挂在某个部门下(通讯录),与是否加入某产品无关。
企微授权回写:H5 / 后台企微 OAuth 成功后,按 userid 匹配或创建员工,并更新 mobile、avatar(以及姓名等通讯录可见字段,以授权接口返回为准)。编制、角色不同步。
表:product_user
一个产品可有多名成员;其中至多一名负责人。产品主数据见 03-产品SKU.md。
| 字段 | 说明 | 来源 |
|---|---|---|
| product_id | 产品 | 系统 |
| user_id | 成员 | 系统 |
| is_leader | 是否负责人(同一产品至多一名为 true) | 系统 |
功能权限用 spatie/laravel-permission + Filament Shield。角色、权限只在本系统维护,不同步企微。
包表:roles、permissions、model_has_roles、model_has_permissions、role_has_permissions。模型 App\Models\Role(config/permission.php models.role)。
英文 name 给代码和 Shield 用,界面用 label。不要把 name 改成中文,也不要改 Shield 配置里的 super_admin / panel_user key。
| 字段 | 界面 | 说明 |
|---|---|---|
| name | 标识 | 权限 key,创建后少改 |
| label | 名称 | 中文显示名;空则回退 name |
| guard_name | — | 默认 web |
预置:super_admin(超级管理员)。业务角色(采购、销售、财务等)在后台「角色」里自建,把权限勾上即可。
后台「部门与员工 → 角色」维护角色与权限;员工表单多选角色、列表徽章都展示 label。
HasRoles。users.status === active,不强制 panel_user(企微同步进来的在职员工仍可登录)。HasPageShield)。data.view-all(查看全量数据)。数据范围不靠包:按员工加入的产品(product_user)过滤;持 data.view-all 可看全量。
编制 employment_type 仍是员工字段,与角色配合使用,不是 permission 包概念。
mobile、头像 avatar);再在系统维护产品成员与负责人,并补 employment_type、角色权限。wecom_userid。mobile、avatar(以本次授权/用户信息接口为准)。同步关联键:部门用 wecom_dept_id,员工用 wecom_userid。冲突以最后成功写入为准,失败写同步日志。
wecom_userid 只读。products,至多一名负责人;product_user 唯一 (product_id, user_id)。label,name 保持英文 key。| V1(P0) | 延后(P2) |
|---|---|
| 入站同步 + OAuth upsert | 部门/员工回写企微 |