fix(#785): zhaoyun (文件合入)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user