Fix Bug #535: 【住院护士站-医嘱校对】已校验过的医嘱错误显示于"未校对"列表中,导致数据状态联动失效
根因:后端 getInpatientAdvicePage 方法中将 requestStatus 置为 null, 未按前端 tab 传入的状态值过滤,导致无论切换哪个 tab 都返回全部医嘱。 SQL 中的 CASE 条件仅处理 DRAFT 状态的 performer_check_id 校验, 并未按 request_status 字段过滤。 修复:保存 requestStatus 后,在查询结果集上按 requestStatus 手动过滤, 与 exeStatus 的过滤方式保持一致。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -178,7 +178,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
||||
inpatientAdviceParam.setEncounterIds(null);
|
||||
Integer exeStatus = inpatientAdviceParam.getExeStatus();
|
||||
inpatientAdviceParam.setExeStatus(null);
|
||||
// requestStatus由前端tab控制,后端SQL已通过CASE条件处理校对状态过滤,无需再作为SQL条件
|
||||
// requestStatus由前端tab控制,需在后端过滤
|
||||
Integer requestStatus = inpatientAdviceParam.getRequestStatus();
|
||||
inpatientAdviceParam.setRequestStatus(null);
|
||||
// 构建查询条件
|
||||
QueryWrapper<InpatientAdviceParam> queryWrapper
|
||||
@@ -292,6 +293,16 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
||||
inpatientAdvicePage.setTotal(filteredList.size());
|
||||
}
|
||||
}
|
||||
|
||||
// 按请求状态(tab切换)过滤医嘱
|
||||
if (requestStatus != null) {
|
||||
List<InpatientAdviceDto> statusFilteredList = inpatientAdvicePage.getRecords().stream()
|
||||
.filter(advice -> requestStatus.equals(advice.getRequestStatus()))
|
||||
.collect(Collectors.toList());
|
||||
inpatientAdvicePage.setRecords(statusFilteredList);
|
||||
inpatientAdvicePage.setTotal(statusFilteredList.size());
|
||||
}
|
||||
|
||||
return R.ok(inpatientAdvicePage);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user