fix(医嘱核对): 修正截止时间筛选逻辑与默认值
1. 将前端默认截止时间从当天00:00:00改为23:59:59 2. 重构后端筛选条件,改为当日0点到指定截止时间的范围查询 3. 移除冗余的空安全终止时间判断逻辑
This commit is contained in:
@@ -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 <= deadline:NULL-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);
|
||||
}
|
||||
|
||||
@@ -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: '' });
|
||||
|
||||
Reference in New Issue
Block a user