随着业务盘子越铺越大,连锁化和集团化几乎是所有机构绕不开的必经之路。无论是街边诊所向全城扩张,还是制造工厂在各地建分厂,原本为单店量身定制的系统很快就会不够用。面对这种扩张,系统该怎么接招?在动手写代码前,我们得先摸清不同集团的“脾气”。
以工厂集团为例,总部通常建制完整,销售、财务、生产等部门一应俱全。底下的分公司可能是个完整的组织,也可能只是个独立核算的生产基地,但核心业务往往被总部牢牢抓在手里,这是典型的强管控模式。但如果是诊所或餐饮这类门店连锁,情况就微妙了。有些看似是连锁,实则各门店自负盈亏、各自为战,总部和门店间的管控关系相当弱。理清了这两种截然不同的业务形态,系统设计才能对症下药。

假设我们已经跑通了一个成熟的单店或单厂系统,现在要给它加上集团化能力,该怎么设计?我们踩过不少坑,总结下来主要有三个演进方向。

最开始,为了赶进度,我们试过最笨的办法:靠切换租户账号。早期人力紧张,集团管理员只能不断切换不同分公司的账号去挨个看数据。这带来的直接后果就是无法出具统一的集团报表,更别提横向对比分析了。每到月底年底,财务和老板催着要汇总数据,开发只能苦哈哈地钻进数据库里手工导数据。这种方案显然只能应付一时。
后来,我们尝试在单租户系统里做数据权限控制。把各个分支机构作为与总厂平级的节点,人员挂在不同节点下,通过数据权限控制他们只能看自己的数据。听起来挺完美,落地时却让人崩溃。系统里几乎所有的业务模块都得加上“适用分公司”的字段,产品要区分归属,设备也要挂靠。这不仅导致数据极度冗余,系统复杂度也直线飙升。更现实的问题是,基层操作员根本不需要也无权看其他厂的数据。仅仅为了满足少数管理层看全局数据的需求,把整个单系统改得无比臃肿,这笔账怎么算都不划算。
踩过坑后,我们找到了目前看来最清晰的解法:在单租户系统之上,单独剥离出一个“集团后台”。各工厂或门店在实际业务中依然独立运行,但管理权限上收到集团后台。乍一看,这似乎让工作量翻了一倍,但实际上,新建一个功能聚焦的集团后台,远比去魔改一个庞大复杂的旧系统要简单得多,也不容易出错。
明确了要在集团后台发力,接下来的重点就是功能设计。集团后台的核心用户是财务和高管,核心使命就两个:看报表和做统一管控。
先说报表模块,主要涵盖财务和运营两大块。以诊所集团为例,后台需要汇总各门店的费用统计、医疗业务量、药品进销存以及整体运营数据。我们在设计时,直接复用了单店系统的大量底层代码,只在前端做了一个汇总查询页面,支持按全集团或特定门店筛选。这种设计开发成本低,数据也足够精准。
再看基础数据的统一设置。集团一旦开始集权,基础数据的统一配置就绕不开。比如诊所的药品,通常由集团统一采购再调拨给各门店。但现实业务往往比理论复杂,受地域和定位影响,各门店的药品目录不可能完全一刀切。城西店主打医疗美容,自然要增加医美类药品;北京核心区的门店和小城镇的门店,定价策略也肯定不一样。
因此,在权限设计上,我们通常提供三种模式供客户选择:一是集团统一创建,分公司完全无权修改;二是集团统一创建,分公司在授权范围内使用修改权;三是集团统一创建,分公司拥有独立的创建和修改权。为什么要把这三种模式都支持了?因为不同集团,甚至同一集团下的直营店和加盟店,运营模式差异极大。系统必须足够灵活,才能适配这些复杂的现实场景。
至于基本参数的配置,则是运营管理中收权的关键。比如连锁店的会员体系通常是通用的,会员等级、积分规则必须由集团统一制定;再比如储值赠送规则、核心业务流程参数等。把这些关键参数的配置权收归集团,才能确保各门店步调一致,避免私自搞活动的乱象。
过去做连锁需求,我们一直沿用这种“集团后台”的架构。最近有同行探讨,为什么不干脆在一个系统里,用一棵庞大的组织结构树把所有层级串起来?听起来确实很优雅,但我反复推演后依然坚持:用独立的集团后台来实现,开发成本最低,业务逻辑也最清晰。

当然,这种设计也有妥协之处。比如管理层在集团后台只能看宏观汇总,如果想钻取到某家门店的极细颗粒度数据,还是得切回对应的子系统。但从实际使用频率来看,高管看明细的场景并不多,这种“抓大放小”的设计反而更合理。做系统设计,从来就没有绝对完美的方案,只有最契合当下业务成本的权衡。

最后顺便提一句,本文旨在梳理和分享互联网运营与系统架构的实战经验,内容源于行业交流与用户贡献,仅代表作者个人观点,不代表任何机构立场。如涉及侵权,请联系删除。
立即登入