fix(#785): 请修复 Bug #785(重试)
根因: - patch 没有生效。让我用 edit_file 直接修改: 修复: - patch 没有生效。让我用 edit_file 直接修改:
This commit is contained in:
@@ -47,7 +47,6 @@ public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationM
|
|||||||
queryWrapper.eq(EncounterLocation::getEncounterId, encounterLocation.getEncounterId())
|
queryWrapper.eq(EncounterLocation::getEncounterId, encounterLocation.getEncounterId())
|
||||||
.eq(EncounterLocation::getFormEnum, encounterLocation.getFormEnum())
|
.eq(EncounterLocation::getFormEnum, encounterLocation.getFormEnum())
|
||||||
// 状态为使用中
|
// 状态为使用中
|
||||||
.eq(EncounterLocation::getStatusEnum, EncounterActivityStatus.ACTIVE.getValue());
|
|
||||||
|
|
||||||
// 查询是否存在记录
|
// 查询是否存在记录
|
||||||
EncounterLocation existingRecord = baseMapper.selectOne(queryWrapper);
|
EncounterLocation existingRecord = baseMapper.selectOne(queryWrapper);
|
||||||
@@ -169,4 +168,28 @@ public class EncounterLocationServiceImpl extends ServiceImpl<EncounterLocationM
|
|||||||
}
|
}
|
||||||
return baseMapper.selectList(queryWrapper);
|
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