package com.ruoyi.common.core.service; /** * 宣教能力的对外接口(实现由 {@code ruoyi-publicity} 的常驻门面 {@code PublicityFacade} 提供)。 * *

为什么要单独拆出来

* 宣教原本混在 {@code PatMedInhospServiceImpl#dealOutHospInfo} 里(迁移前 L331-444): *
    *
  1. 入院宣教({@code in.helibrary.switch == "2"} 才执行):科室维度 type=4、病区维度 type=5;
  2. *
  3. 药品宣教(仅 {@code active == "sltd"}):按 {@code medicalCode} 拆串查 * {@code service_taskmedical},命中则 type=0。
  4. *
* 这两块不是"随访"而是"宣教",所以按你的决定单独拉成 {@code ruoyi-publicity} 模块。 * *

边界:宣教模块不建子任务

* 宣教模块只负责"决定要不要发、发什么"(读配置、判站点、拼说明), * 真正的子任务落库与派发回调 {@code ruoyi-inhospvisit} * (走 {@link PublicitySubtaskApi})。这样 {@code boxedServiceSubtask} * 的宣教分支(type=0/4/5)以及"回写 check_flag"的语义全仓只有一份实现,不会出现两份逻辑漂移。 * *

调用方务必降级

* 取不到实现时按"没有宣教要做"处理并打 WARN,绝不能让出入院随访主流程抛异常。 */ public interface PublicityApi { /** * 入院宣教:按患者所在科室(type=4)与病区(type=5)分别匹配长期宣教任务。 *

* 迁移对应:{@code PatMedInhospServiceImpl#dealOutHospInfo} L331-409。 *

* 内部行为要点(迁移时必须保留): *

* * @param config {@code sys_config: visit.early.day} 的值,可能为 null * @return 提交处理的记录数(仅用于日志/返回,迁移前 {@code dealOutHospInfo} 固定返回 1) */ int dealInHospPublicity(String config); /** * 药品宣教(省立同德专属):按患者的 {@code medicalCode} 逐个药品编码匹配长期宣教任务。 *

* 迁移对应:{@code PatMedInhospServiceImpl#dealOutHospInfo} L411-444。 *

* 内部行为要点(迁移时必须保留): *

* * @param config {@code sys_config: visit.early.day} 的值,可能为 null * @return 命中并处理的药品数 */ int dealMedicalPublicity(String config); }