Fix Bug #495: 【医嘱闭环】已校对医嘱无法流转至"医嘱执行"界面,导致费用无法提交执行
Root cause: In getInpatientAdvicePage(), encounterIds and exeStatus were nullified before buildQueryWrapper to prevent auto-generated SQL conditions, but requestStatus was NOT nullified. HisQueryUtils.buildQueryWrapper uses reflection to add eq conditions for ALL non-null fields, so requestStatus: 3 became an extra SQL filter "AND request_status = 3" that was not intended for the 医嘱执行 page. The 医嘱执行 page uses exeStatus (not requestStatus) for execution state filtering. The SQL already handles verified/unverified order filtering via a CASE condition on status_enum and performer_check_id. The requestStatus parameter is only meant for frontend tab selection and should not be used as a SQL filter here. Fix: Nullify requestStatus before buildQueryWrapper, same as encounterIds/exeStatus. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -178,6 +178,8 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
|||||||
inpatientAdviceParam.setEncounterIds(null);
|
inpatientAdviceParam.setEncounterIds(null);
|
||||||
Integer exeStatus = inpatientAdviceParam.getExeStatus();
|
Integer exeStatus = inpatientAdviceParam.getExeStatus();
|
||||||
inpatientAdviceParam.setExeStatus(null);
|
inpatientAdviceParam.setExeStatus(null);
|
||||||
|
// requestStatus由前端tab控制,后端SQL已通过CASE条件处理校对状态过滤,无需再作为SQL条件
|
||||||
|
inpatientAdviceParam.setRequestStatus(null);
|
||||||
// 构建查询条件
|
// 构建查询条件
|
||||||
QueryWrapper<InpatientAdviceParam> queryWrapper
|
QueryWrapper<InpatientAdviceParam> queryWrapper
|
||||||
= HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
= HisQueryUtils.buildQueryWrapper(inpatientAdviceParam, null, null, null);
|
||||||
|
|||||||
Reference in New Issue
Block a user