医院补偿类型功能开发说明

工作笔记 工作记录
📅 2026-03-27 17:50 👤 admin


一、需求背景
为支持补偿类型在医院维度上的精细化控制,本次在原有“经销商 / 产品 / 省市补偿类型”基础上,新增“医院补偿类型”能力,并同步打通总部维护侧与 DMS/SOI 应用侧逻辑。
本次改造目标为:
•    总部可维护医院补偿类型关系
•    支持医院补偿类型导入、导出
•    补偿申请选择补偿类型时,按医院规则进行过滤
•    补偿申请新增列表与补偿类型选择逻辑保持一致
---
二、提测范围
1. 总部侧-补偿类型维护
新增“医院”维度的补偿类型维护能力,支持:
•    新增
•    修改
•    查看
•    删除
•    导入
•    导出
2. DMS / SOI 应用侧
在补偿申请相关场景中增加医院维度筛选逻辑,涉及:
•    补偿类型选择弹窗
•    补偿申请新增可选数据列表
•    DMS 端
•    SOI 端
---
三、本次开发内容
1. 总部侧开发内容
1.1 医院补偿类型 CRUD
在补偿类型主档下新增“医院”页签,支持维护医院明细关系。
功能点
•    可选择医院
•    可维护“是否纳入补偿”
•    可查看医院补偿类型明细
•    同一补偿类型下支持多医院维护
•    增加重复校验
业务规则
是否纳入补偿 分两种模式:
•    是:表示当前补偿类型仅对配置的医院生效
•    否:表示当前补偿类型对配置的医院不生效
---
1.2 医院补偿类型一致性控制
同一个补偿类型下,所有医院记录的 是否纳入补偿 必须保持一致,不允许同一补偿类型同时出现“是”和“否”。
已实现
•    前端联动同步
•    后端保存前统一规范化处理
•    导入时一致性校验
---
1.3 医院补偿类型导入
新增医院补偿类型导入能力。
导入规则
•    医院代码必填,且必须存在
•    补偿类型代码必填,且必须存在
•    是否纳入补偿 必填,仅允许填写“是/否”
•    标识必填,仅允许填写“新增/覆盖”
•    同一补偿类型下,是否纳入补偿 必须一致
•    任意一条校验失败,则整批导入失败
标识说明
•    新增:保留原有医院关系,新增本次导入数据
•    覆盖:先清除该补偿类型历史医院数据,再导入本次数据
---
1.4 医院补偿类型导出
新增医院补偿类型导出能力,支持导出以下字段:
•    补偿名称
•    补偿代码
•    医院代码
•    医院名称
•    是否纳入补偿
•    创建时间/创建人
•    修改时间/修改人
---
2. DMS / SOI 应用侧开发内容
2.1 补偿类型选择增加医院筛选逻辑
在补偿申请中选择“补偿类型”时,除原有经销商、产品、省市规则外,新增医院规则过滤。
规则说明
医院条件与原有规则关系为 AND。
即在满足经销商 / 产品 / 省市逻辑的基础上,还需满足医院逻辑。
医院筛选规则
•    若补偿类型未配置医院关系:不限制医院
•    若补偿类型配置为 IsInclude = 1
•    当前医院必须存在于医院补偿配置中
•    若补偿类型配置为 IsInclude = 0
•    当前医院必须不存在于医院补偿配置中
---
2.2 补偿申请新增列表增加同样医院逻辑
为保证补偿申请入口行为一致,补偿申请新增列表同步增加同样的医院筛选逻辑。
已同步场景
•    DMS:CompensateApplicationADD
•    SOI:CompensateApplicationADD_SOI
目标
避免出现以下不一致问题:
•    列表中数据可选,但补偿类型不可选
•    补偿类型可选,但实际列表不应出现
---
四、影响模块
总部维护侧
•    补偿类型主档
•    医院补偿类型子表
•    医院补偿类型导入
•    医院补偿类型导出
应用侧
•    DMS 补偿申请
•    SOI 补偿申请
•    补偿类型选择弹窗
•    补偿申请新增列表
---
五、重点测试场景
1. 总部侧 CRUD 测试
场景 1:新增医院补偿类型
•    新增一个补偿类型
•    关联多个医院
•    是否纳入补偿 = 是
•    保存成功
场景 2:修改医院补偿类型
•    修改已有补偿类型的医院列表
•    修改后保存成功
•    查看明细正常
场景 3:一致性校验
•    同一补偿类型下尝试同时保存“是”和“否”
•    预期:不允许保存 / 系统统一规范化
场景 4:重复医院校验
•    同一补偿类型下重复选择同一家医院
•    预期:不允许重复
---
2. 导入测试
场景 5:正常导入-纳入补偿
•    同一补偿类型导入多个医院
•    是否纳入补偿 均为“是”
•    预期:导入成功
场景 6:正常导入-不纳入补偿
•    同一补偿类型导入多个医院
•    是否纳入补偿 均为“否”
•    预期:导入成功
场景 7:混合导入
•    同一补偿类型下同时导入“是”和“否”
•    预期:导入失败
场景 8:医院代码不存在
•    预期:导入失败
场景 9:补偿类型代码不存在
•    预期:导入失败
场景 10:覆盖导入
•    原有医院关系存在
•    使用“覆盖”重新导入
•    预期:旧数据被替换
---
3. 导出测试
场景 11:医院补偿类型导出
•    从补偿类型列表点击“医院导出”
•    预期:
•    成功下载
•    数据字段完整
•    内容与维护数据一致
---
4. DMS / SOI 应用侧测试
场景 12:未配置医院关系
•    某补偿类型只配置经销商/产品/省市,未配置医院
•    预期:该补偿类型不受医院限制
场景 13:医院纳入补偿
•    配置 IsInclude = 1
•    当前医院在配置内
•    预期:补偿类型可见 / 列表可查
场景 14:医院纳入补偿但不匹配
•    配置 IsInclude = 1
•    当前医院不在配置内
•    预期:补偿类型不可见 / 列表不可查
场景 15:医院不纳入补偿
•    配置 IsInclude = 0
•    当前医院在配置内
•    预期:补偿类型不可见 / 列表不可查
场景 16:医院不纳入补偿且不匹配
•    配置 IsInclude = 0
•    当前医院不在配置内
•    预期:补偿类型可见 / 列表可查
---
5. 联合规则测试
场景 17:省市通过,医院通过
•    预期:可选
场景 18:省市通过,医院不通过
•    预期:不可选
场景 19:省市不通过,医院通过
•    预期:不可选
场景 20:省市与医院都通过
•    预期:最终可用
说明:省市与医院关系为 AND
---
六、注意事项
1.    同一补偿类型下医院关系采用统一模式,不支持部分医院纳入、部分医院排除混用
2.    本次改造不影响现有补偿金额计算公式
3.    本次改造主要影响“补偿类型是否可选”和“申请数据是否可见”
4.    DMS 与 SOI 两侧已同步处理,需分别验证