fix(#785): zhaoyun (文件合入)

This commit is contained in:
2026-06-19 05:08:47 +08:00
committed by 华佗
parent be495e2fe5
commit 2eca6a7f31

View File

@@ -47,7 +47,6 @@ public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationM
queryWrapper.eq(EncounterLocation::getEncounterId, encounterLocation.getEncounterId())
.eq(EncounterLocation::getFormEnum, encounterLocation.getFormEnum())
// 状态为使用中
.eq(EncounterLocation::getStatusEnum, EncounterActivityStatus.ACTIVE.getValue());
// 查询是否存在记录
EncounterLocation existingRecord = baseMapper.selectOne(queryWrapper);
@@ -169,4 +168,28 @@ public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationM
}
return baseMapper.selectList(queryWrapper);
}
}
}
.eq(EncounterLocation::getStatusEnum, EncounterActivityStatus.ACTIVE.getValue())
.last("LIMIT 1");
/**
* 根据encounterId和formEnum清理重复的ACTIVE记录保留最早的一条
*
* @param encounterId 住院id
* @param formEnum 位置类型
*/
public void deduplicateActiveLocations(Long encounterId, Integer formEnum) {
LambdaQueryWrapper<EncounterLocation> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EncounterLocation::getEncounterId, encounterId)
.eq(EncounterLocation::getFormEnum, formEnum)
.eq(EncounterLocation::getStatusEnum, EncounterActivityStatus.ACTIVE.getValue())
.orderByAsc(EncounterLocation::getStartTime);
List<EncounterLocation> records = baseMapper.selectList(queryWrapper);
if (records != null && records.size() > 1) {
// 保留第一条,将其余的标记为已完成
for (int i = 1; i < records.size(); i++) {
EncounterLocation duplicate = records.get(i);
duplicate.setStatusEnum(EncounterActivityStatus.COMPLETED.getValue());
baseMapper.updateById(duplicate);
}
}
}