package com.ruoyi.inhospvisit;
|
|
/**
|
* 出入院随访模块包根。
|
* <p>
|
* 目录约定:
|
* <ul>
|
* <li>{@code com.ruoyi.inhospvisit.api} —— <b>唯一对外包</b>,其它模块只能依赖这个包;</li>
|
* <li>{@code controller} / {@code service} / {@code mapper} / {@code domain} —— 模块内部实现,
|
* 其它模块不应直接引用。</li>
|
* </ul>
|
* 模块可通过 {@code sys_config} 参数表的 {@code inhospvisit.enabled=false} 整体关闭
|
* (运行时读取,改完最多 10 秒生效);关闭后门面返回安全值并打 WARN,
|
* 直接访问出入院随访端点的请求会被拦截器拦下并返回明确的"未启用"业务错误。
|
* <p>
|
* <b>⚠️ 开关的作用范围(2025 更正)</b>:
|
* <ul>
|
* <li><b>HTTP 触发端点</b>:由 {@code InhospVisitAvailabilityInterceptor} 拦下,报明确业务错误;</li>
|
* <li><b>定时任务</b>:<b>受本开关控制</b>({@code RyTask} 的 5 个入口:
|
* dealOutHospInfo / dealOutHospInfoBySchedule / dealTaskGroupOutHosp /
|
* rollTaskGroupCycle 走门面,dealSubtaskDeadline 走入口守卫);</li>
|
* <li><b>跨模块调用</b>:门面统一判开关;</li>
|
* <li><b>基础出入院信息读写</b>({@code InhospVisitDataService}):<b>刻意不受开关管</b> ——
|
* 否则关掉随访会连带让 HIS 采集与记录管理瘫痪。</li>
|
* </ul>
|
* <p>
|
* ⚠️ <b>本注释此前写的是"开关不作用于定时任务"</b>,理由是"关掉 = 当天全院随访停摆,
|
* 而 sys_config 是热读的、一次误操作没有反馈渠道"。该说法<b>与事实不符且已更正</b>:
|
* 当时定时任务走的是 smartor 里的遗留实现 {@code PatMedInhospServiceImpl},
|
* 它<b>从不调用门面的编排方法</b>(只用门面取数据),所以真实状态是
|
* "开关对定时任务无效、且没有任何提示" —— 比"受控"更糟,因为它让人以为已经关掉了。
|
* 现在定时任务改走门面,关闭时日志会明确打出「模块未启用…跳过」,
|
* 参数在「系统管理 → 参数设置」里可见可改,反馈渠道是通畅的。
|
* 详见 {@code doc/模块开关有效性核查与修复.md}。
|
*/
|
public final class InhospVisitModule {
|
|
/**
|
* 模块配置前缀(仅作为 yml 兜底配置的键前缀;主开关在 sys_config 参数表里)
|
*/
|
public static final String PROPERTIES_PREFIX = "inhospvisit";
|
|
/**
|
* sys_config 参数表里的开关键名
|
*/
|
public static final String SWITCH_KEY = "inhospvisit.enabled";
|
|
private InhospVisitModule() {
|
}
|
}
|