医院餐补管理,落到工程上是一套"规则引擎 + 定时调度 + 组织树"的组合。上一篇文章讲了发放的幂等控制与过期清零的基础实现,本文聚焦两个更深的问题:多院区场景下,不同院区、不同人群的清零规则如何用一套引擎统一驱动;以及集团化的组织架构如何在系统中建模,实现"一套规则、多处复用"。文中代码为演示性质的伪实现,重在讲清设计思路。
一、清零规则引擎:优先级 + 作用域
多院区医院里,清零规则往往层层叠加:集团有统一的年度清零规则,某个院区可能额外增加月度清零,某个特定人群(如离退休返聘人员)又有单独规则。这就需要一套带优先级和作用域的规则引擎。下面是一段 Python 示例,演示规则如何按"作用域越小、优先级越高"的原则匹配执行。
CLEAR_RULES = [
# 每条规则:scope(作用域) + period(清零周期) + priority(优先级)
{"scope": "group", "period": "yearly", "priority": 1}, # 集团默认:按年清零
{"scope": "campus:A", "period": "monthly", "priority": 2}, # A 院区:按月清零
{"scope": "staff_type:返聘", "period": "never", "priority": 3}, # 返聘人群:不清零
]
def resolve_rule(campus, staff_type):
"""按优先级从高到低匹配,返回命中的第一条规则。
作用域越具体(如特定人群)优先级越高。"""
matched = None
for rule in sorted(CLEAR_RULES, key=lambda r: -r["priority"]):
if rule["scope"] == "group":
matched = rule
continue
kind, val = rule["scope"].split(":")
if kind == "campus" and val == campus:
matched = rule
break
if kind == "staff_type" and val == staff_type:
matched = rule
break
return matched # 返回命中的清零规则,调度器据此执行
这段代码的核心思想是"默认规则兜底 + 局部规则覆盖"。集团默认按年清零,A 院区覆盖为按月,特定人群再覆盖为不清零。新增一个院区或人群,只需要在规则表里加一行配置,不需要改代码,这正是"规则可控"的工程含义。

二、多院区组织树:一套数据,多处复用
多院区通用,本质是组织架构的建模。把"集团---院区---科室---职工"抽象成一棵树,补贴人员管理、清零作用域、统计维度都挂在这棵树上。这样,一条规则可以作用在任意节点,一份报表可以按任意层级下钻。下面是一段组织树的构建与人员归属判定的示例。
class OrgNode:
def __init__(self, name, parent=None):
self.name = name
self.parent = parent
self.children = []
def add(self, node):
node.parent = self
self.children.append(node)
return node
# 构建集团 -> 院区 -> 科室 的组织树
group = OrgNode("集团")
campus_a = group.add(OrgNode("A院区"))
campus_b = group.add(OrgNode("B院区"))
dept_a1 = campus_a.add(OrgNode("内一科"))
def in_scope(node, scope_name):
"""判断某组织节点是否属于某个作用域,沿父链向上匹配。"""
cur = node
while cur is not None:
if cur.name == scope_name:
return True
cur = cur.parent
return False
# 内一科属于 A 院区,也属于集团,可被集团级规则或院区级规则命中
print(in_scope(dept_a1, "A院区")) # True
print(in_scope(dept_a1, "集团")) # True
组织树的价值在于复用:补贴名单挂在科室节点上,入离职同步时只需更新对应职工节点,所有院区的清零、统计、报表自动随之更新,不必为每个院区单独维护一套数据。

三、小结
餐补清零规则引擎与多院区组织树,本质是两件事:用"优先级 + 作用域"的规则解决"规则怎么统一又灵活",用"组织树"解决"数据怎么一套多用"。二者叠加,才能支撑起集团化、多院区医院对餐补管理"规则可控、多院区通用"的真实诉求。对这类系统而言,可配置化程度越高,交付和复制的成本就越低,护城河也越深。