Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	healthlink-his-ui/src/views/inpatientDoctor/home/components/order/index.vue
This commit is contained in:
2026-06-25 15:21:27 +08:00
3 changed files with 186 additions and 184 deletions

View File

@@ -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 <= deadlineBug #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 <= deadlineNULL-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);
}
}
// 患者医嘱分页列表

View File

@@ -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: '' });