714 【住院护士站-医嘱校对】住院护士站-医嘱核对界面:缺少“截止时间”过滤条件且默认单选未选中“全部”
This commit is contained in:
@@ -13,6 +13,7 @@ import com.core.common.enums.TenantOptionDict;
|
||||
import com.core.common.exception.ServiceException;
|
||||
import com.core.common.utils.*;
|
||||
import com.core.common.utils.bean.BeanUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.core.common.utils.TenantOptionUtil;
|
||||
import com.healthlink.his.administration.domain.ChargeItem;
|
||||
import com.healthlink.his.administration.service.IChargeItemService;
|
||||
@@ -54,7 +55,6 @@ import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.time.ZoneId;
|
||||
@@ -70,6 +70,7 @@ import java.util.stream.Collectors;
|
||||
* @author zwh
|
||||
* @date 2025-08-07
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
||||
|
||||
@@ -185,7 +186,9 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
||||
// 提取requestStatus手动处理,支持COMPLETED(3)和CHECK_VERIFIED(10)同时查询
|
||||
Integer requestStatus = inpatientAdviceParam.getRequestStatus();
|
||||
inpatientAdviceParam.setRequestStatus(null);
|
||||
// 提取deadline手动处理,需要做NULL-safe的end_time比较(Bug #763修复)
|
||||
// 提取deadline手动处理
|
||||
// Bug #714修复:截止时间过滤,使用request_time限制检索范围
|
||||
// Bug #763修复:NULL-safe的end_time比较
|
||||
String deadline = inpatientAdviceParam.getDeadline();
|
||||
inpatientAdviceParam.setDeadline(null);
|
||||
// 构建查询条件
|
||||
@@ -215,16 +218,17 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService {
|
||||
= Arrays.stream(encounterIds.split(CommonConstants.Common.COMMA)).map(Long::parseLong).toList();
|
||||
queryWrapper.in(CommonConstants.FieldName.EncounterId, encounterIdList);
|
||||
}
|
||||
// 手动拼接deadline条件:end_time IS NULL OR end_time <= deadline(Bug #763修复)
|
||||
// 住院医嘱的effective_dose_end可能为NULL(签发临时医嘱时未设置结束时间),
|
||||
// PostgreSQL中 NULL <= anything 结果为FALSE,需要先判断IS NULL
|
||||
// 手动拼接截止时间条件:
|
||||
// 1. request_time >= deadline:只显示截止时间之后创建的医嘱(Bug #714修复)
|
||||
// 默认值为当天00:00:00,默认只加载当天数据,避免加载过长周期的历史未核对数据
|
||||
// 2. end_time IS NULL OR end_time <= deadline:NULL-safe终止时间比较(Bug #763修复)
|
||||
if (deadline != null && !deadline.isEmpty()) {
|
||||
try {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Date deadlineTime = sdf.parse(deadline);
|
||||
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));
|
||||
} catch (java.text.ParseException e) {
|
||||
// deadline解析失败,忽略此条件
|
||||
} else {
|
||||
log.warn("截止时间解析失败: {}", deadline);
|
||||
}
|
||||
}
|
||||
// 患者医嘱分页列表
|
||||
|
||||
@@ -413,7 +413,7 @@ import {RequestStatus} from '@/utils/medicalConstants';
|
||||
|
||||
const activeNames = ref([]);
|
||||
const prescriptionList = ref([]);
|
||||
const deadline = ref(formatDateStr(new Date(), 'YYYY-MM-DD') + ' 23:59:59');
|
||||
const deadline = ref(formatDateStr(new Date(), 'YYYY-MM-DD') + ' 00:00:00');
|
||||
const type = ref(0);
|
||||
const backReasonVisible = ref(false);
|
||||
const backReasonForm = ref({ reason: '' });
|
||||
|
||||
Reference in New Issue
Block a user