fix(医嘱核对): 修正截止时间筛选逻辑与默认值

1. 将前端默认截止时间从当天00:00:00改为23:59:59
2. 重构后端筛选条件,改为当日0点到指定截止时间的范围查询
3. 移除冗余的空安全终止时间判断逻辑
This commit is contained in:
wangjian963
2026-06-29 11:11:31 +08:00
parent 79478c6780
commit be93a77b64
2 changed files with 13 additions and 8 deletions

View File

@@ -188,7 +188,6 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
inpatientAdviceParam.setRequestStatus(null);
// 提取deadline手动处理
// Bug #714修复截止时间过滤使用request_time限制检索范围
// Bug #763修复NULL-safe的end_time比较
String deadline = inpatientAdviceParam.getDeadline();
inpatientAdviceParam.setDeadline(null);
// 构建查询条件
@@ -218,15 +217,17 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
= Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
}
// 手动拼接截止时间条件:
// 1. request_time >= deadline只显示截止时间之后创建的医嘱Bug #714修复
// 默认值为当天00:00:00默认只加载当天数据避免加载过长周期的历史未核对数据
// 2. end_time IS NULL OR end_time <= deadlineNULL-safe终止时间比较Bug #763修复
// 手动拼接截止时间条件:当天00:00:00 <= request_time <= deadline
// 默认deadline为当天23:59:59既排除历史医嘱又保证护士可以校对当天医嘱。
if (deadline != null && !deadline.isEmpty()) {
Date deadlineTime = DateUtils.parseDate(deadline);
if (deadlineTime != null) {
queryWrapper.ge("request_time", deadlineTime);
queryWrapper.and(w -> w.isNull("end_time").or().le("end_time", deadlineTime));
Date dayStartTime = Date.from(deadlineTime.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate()
.atStartOfDay(ZoneId.systemDefault())
.toInstant());
queryWrapper.between("request_time", dayStartTime, deadlineTime);
} else {
log.warn("截止时间解析失败: {}", deadline);
}

View File

@@ -26,6 +26,10 @@
临时
</el-radio>
</el-radio-group>
<span
class="descriptions-item-label"
style="flex-shrink: 0;"
>截止时间</span>
<el-date-picker
v-model="deadline"
type="datetime"
@@ -413,7 +417,7 @@ import {RequestStatus} from '@/utils/medicalConstants';
const activeNames = ref([]);
const prescriptionList = ref([]);
const deadline = ref(formatDateStr(new Date(), 'YYYY-MM-DD') + ' 00:00:00');
const deadline = ref(formatDateStr(new Date(), 'YYYY-MM-DD') + ' 23:59:59');
const type = ref(0);
const backReasonVisible = ref(false);
const backReasonForm = ref({ reason: '' });