医院餐补清零规则引擎与多院区组织架构技术拆解

医院餐补管理,落到工程上是一套"规则引擎 + 定时调度 + 组织树"的组合。上一篇文章讲了发放的幂等控制与过期清零的基础实现,本文聚焦两个更深的问题:多院区场景下,不同院区、不同人群的清零规则如何用一套引擎统一驱动;以及集团化的组织架构如何在系统中建模,实现"一套规则、多处复用"。文中代码为演示性质的伪实现,重在讲清设计思路。

一、清零规则引擎:优先级 + 作用域

多院区医院里,清零规则往往层层叠加:集团有统一的年度清零规则,某个院区可能额外增加月度清零,某个特定人群(如离退休返聘人员)又有单独规则。这就需要一套带优先级和作用域的规则引擎。下面是一段 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

组织树的价值在于复用:补贴名单挂在科室节点上,入离职同步时只需更新对应职工节点,所有院区的清零、统计、报表自动随之更新,不必为每个院区单独维护一套数据。

三、小结

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

相关推荐
好伙狮数字食堂2 天前
医院数字食堂上线7天交付的工程化拆解:数据导入与上线排期
医院食堂·数字食堂·食堂上线
好伙狮数字食堂3 天前
医院食堂食安检查背后的后厨食安系统架构拆解
医院食堂·数字食堂·食安管理
好伙狮数字食堂4 天前
多院区食堂管理系统的数据中台与集团化管控设计
医院食堂·数字食堂·多院区管理
好伙狮数字食堂13 天前
医院数字食堂上线实施与部署架构:SaaS与本地部署的技术拆解
医院食堂·数字食堂·上线实施
好伙狮数字食堂16 天前
医院病房订餐系统一床一码六步法的技术架构拆解
数字食堂·病房订餐系统·一床一码
好伙狮数字食堂18 天前
医院食堂管理系统对接HIS与HRP的接口设计:从医嘱同步到数据脱敏
系统对接·数字食堂·医院食堂管理系统
好伙狮数字食堂1 个月前
医院食堂AI菜品识别结算台:视觉识别与多钱包支付的实现方案
医院食堂·数字食堂·堂食结算
好伙狮数字食堂1 个月前
医院治疗膳食的数据模型与医嘱闭环设计
医院食堂·数字食堂·营养膳食
好伙狮数字食堂1 个月前
医院数字食堂数据开放平台的混合云架构与容灾设计实践
医院食堂·数字食堂·数据开放