Fix Bug #519: 保存诊断时误删cli_condition导致传染病报卡关联断裂

根因:deleteEncounterDiagnosisInfos() 调用 conditionMapper.deleteByEncounterId() 删除了
cli_condition 记录,而 infectious_card.diag_id 指向的就是 cli_condition.id。
数据库验证:infectious_card 表中 10 条记录仅 1 条能 JOIN 到 cli_condition,
其余 9 条的 condition 已被级联删除,导致再次保存诊断时 hasInfectiousReport=0,
前端未过滤已报卡诊断,重复弹出报卡界面。

修复:移除 conditionMapper.deleteByEncounterId(encounterId),仅删除就诊诊断关联记录。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
关羽
2026-05-16 21:07:52 +08:00
parent e1b85de8ea
commit fc803173fa

View File

@@ -35,8 +35,7 @@ public class EncounterDiagnosisServiceImpl extends ServiceImpl<EncounterDiagnosi
*/
@Override
public void deleteEncounterDiagnosisInfos(Long encounterId) {
// 不删除中医
conditionMapper.deleteByEncounterId(encounterId);
// 仅删除就诊诊断关联记录不删除cli_condition否则会导致传染病报卡diag_id失效
baseMapper.deleteByEncounterId(encounterId);
}