diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java index 768fa79d5..869b2151b 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java @@ -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); } } // 患者医嘱分页列表 diff --git a/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue b/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue index e6aafe214..aa4a49c01 100755 --- a/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue +++ b/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue @@ -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: '' });