Fix Bug #544: AI修复
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user