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/inpatientDoctor/home/components/order/index.vue b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue index 5c84b4195..456265eb2 100755 --- a/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue +++ b/healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue @@ -13,14 +13,14 @@ :disabled="false" @click="handleAddPrescription()" > - {{ $t('common.add') }} + 新增 - {{ $t('common.save') }} + 保存 - {{ $t('inpatientDoctor.order.signIssue') }} + 签发 - {{ $t('inpatientDoctor.order.revoke') }} + 撤回 - {{ $t('inpatientDoctor.order.groupSet') }} + 组套 - {{ $t('inpatientDoctor.order.history') }} + 历史 - {{ $t('inpatientDoctor.order.combine') }} + 组合 - {{ $t('inpatientDoctor.order.split') }} + 拆组 - {{ $t('inpatientDoctor.order.stopAdvice') }} + 停嘱 - {{ $t('inpatientDoctor.order.resume') }} + 恢复 - {{ $t('common.delete') }} + 删除 - {{ $t('inpatientDoctor.order.diagnosis') }}: + 诊断: - {{ $t('inpatientDoctor.order.feeType') }}: + 费用性质: - {{ $t('inpatientDoctor.order.totalAmount') }}:{{ totalAmount ? totalAmount.toFixed(2) : 0 }}{{ $t('inpatientDoctor.order.yuan') }} + 合计金额:{{ totalAmount ? totalAmount.toFixed(2) : 0 }}元