总分店、总部账号与经营报表
本文整理总分店账号、总部视角报表、分店切换和数据权限。总店账号能跨多个服务站看采购、销售、财务数据,排查时重点确认当前账号、当前分店、菜单权限和报表口径。
业务目标
- 总部账号可以管理多个分店/服务站。
- 支持创建子账号、保存权限、启停账号。
- 支持切换分店进入对应服务站上下文。
- 总部视角可查询采购、销售、财务经营明细。
入口文件
- 总部账号:
application/controllers/headOffice/Account.php - 总部报表:
application/controllers/headOffice/Reports.php - 账号服务:
application/Services/HeadOffice/AccountService.php - 报表服务:
application/Services/HeadOffice/ReportService.php
核心表
| 表 | 用途 | | --- | --- | | t_sys_head_office_account | 总部账号 | | t_sys_admin | 用户账号 | | t_bs_store | 门店 | | t_sys_menu / t_sys_menu_data | 菜单和数据权限 | | 采购/销售/财务表 | 总部报表聚合来源 |
核心方法
账号:
AccountService::accounts:账号列表。toggleStatus:启停账号。saveRights:保存权限。createSubAccount:创建子账号。getUsername:生成或查询用户名。switchBranch:切换分店。getStores/getAvailableStores:门店列表。updatePwd:修改密码。updateSession:切换后刷新 session。
报表:
ReportService::getPurchaseDetail:采购明细。ReportService::getSaleDetail:销售明细。ReportService::getFinanceDetail:财务明细。ReportService::setBranch:设置当前分店。
主流程
flowchart TD
A["总部账号登录"] --> B["加载可访问分店"]
B --> C["选择或切换分店"]
C --> D["刷新 session 和权限"]
D --> E["查询采购/销售/财务报表"]
E --> F["报表中心或业务库返回数据"]
报表口径
- 总部报表接口里存在
CENTER_API . '/devcenter/report/hologres/query'口径,可能走数据中心/Hologres。 TYPE_CORE_BIZ表示核心经营数据。- 分店切换后要确认
sid、菜单 id、当前 session 是否更新。 - 总部汇总数据和单站实时数据可能因为同步延迟存在差异。
异常流程
- 看不到分店:查总部账号与门店关系、账号状态。
- 切换失败:查
switchBranch、session 更新、门店状态。 - 报表为空:查分店、菜单权限、Hologres 查询参数和时间范围。
- 子账号权限异常:查
saveRights保存的数据和菜单/数据权限。
常用 rg 命令
rg -n "class Account|switchBranch|saveRights|createSubAccount" application/controllers/headOffice application/Services/HeadOffice
rg -n "getPurchaseDetail|getSaleDetail|getFinanceDetail|Hologres|CENTER_API" application/Services/HeadOffice application/controllers/headOffice
rg -n "SYS_HEAD_OFFICE_ACCOUNT|t_sys_head_office_account" application/config/tables.php application
改动风险和回归清单
- 总部账号:创建、启停、改密、子账号。
- 权限:菜单、数据范围、子账号权限。
- 切换:分店列表、切换后 session、回到总部。
- 报表:采购、销售、财务,时间范围和分店筛选。