Fix Bug #544: AI修复

This commit is contained in:
2026-05-27 05:17:23 +08:00
parent 97d94760f0
commit 0df2eb781d
4 changed files with 161 additions and 114 deletions

View File

@@ -0,0 +1,35 @@
package com.openhis.application.controller;
import com.github.pagehelper.PageInfo;
import com.openhis.application.domain.dto.TriageQueueQueryDTO;
import com.openhis.application.domain.entity.TriageQueueRecord;
import com.openhis.application.service.TriageQueueService;
import com.openhis.common.core.domain.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 智能分诊排队管理控制器
* 修复 Bug #544支持全状态查询及历史队列按时间检索
*/
@RestController
@RequestMapping("/api/triage/queue")
public class TriageQueueController {
private final TriageQueueService triageQueueService;
public TriageQueueController(TriageQueueService triageQueueService) {
this.triageQueueService = triageQueueService;
}
/**
* 获取排队队列列表
* @param query 查询条件(含科室、状态、起止时间)
* @return 分页队列数据
*/
@GetMapping("/list")
public R<PageInfo<TriageQueueRecord>> list(TriageQueueQueryDTO query) {
return R.ok(triageQueueService.getQueueList(query));
}
}

View File

@@ -2,24 +2,18 @@ package com.openhis.application.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.openhis.application.domain.entity.TriageQueue;
import com.openhis.application.domain.dto.TriageQueueQueryDTO;
import com.openhis.application.domain.entity.TriageQueueRecord;
import com.openhis.application.mapper.TriageQueueMapper;
import com.openhis.application.service.TriageQueueService;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.time.LocalDate;
import java.util.List;
/**
* 智能分诊排队业务实现
*
* 修复 Bug #544
* 原逻辑在查询时硬编码过滤了 status != 'COMPLETED',导致完诊患者无法在队列列表中显示。
* 同时缺失历史队列查询的时间维度支持。
*
* 修复方案:
* 1. 移除状态硬过滤,改为接收前端传入的 status 参数(为空则查询全量状态)。
* 2. 增加 startDate 与 endDate 参数,支持按时间范围检索历史队列。
* 修复 Bug #544移除对“完诊”状态的隐式过滤增加时间范围查询支持
*/
@Service
public class TriageQueueServiceImpl implements TriageQueueService {
@@ -31,13 +25,19 @@ public class TriageQueueServiceImpl implements TriageQueueService {
}
@Override
public PageInfo<TriageQueue> queryQueueList(Integer pageNum, Integer pageSize,
String deptCode, String status,
Date startDate, Date endDate) {
PageHelper.startPage(pageNum, pageSize);
// 修复:不再默认排除 COMPLETED 状态。若前端未传 status则查询全部状态。
// 增加 startDate 和 endDate 参数支持历史队列查询。
List<TriageQueue> list = triageQueueMapper.selectQueueList(deptCode, status, startDate, endDate);
public PageInfo<TriageQueueRecord> getQueueList(TriageQueueQueryDTO query) {
// 修复 Bug #544默认查询当天若前端未传时间则自动填充避免全表扫描
if (query.getStartDate() == null || query.getStartDate().isEmpty()) {
query.setStartDate(LocalDate.now().toString());
}
if (query.getEndDate() == null || query.getEndDate().isEmpty()) {
query.setEndDate(LocalDate.now().toString());
}
// 修复 Bug #544不再硬编码过滤 status != 'COMPLETED',交由 Mapper 动态 SQL 处理
PageHelper.startPage(query.getPageNum() != null ? query.getPageNum() : 1,
query.getPageSize() != null ? query.getPageSize() : 20);
List<TriageQueueRecord> list = triageQueueMapper.selectQueueList(query);
return new PageInfo<>(list);
}
}