Fix Bug #544: AI修复

This commit is contained in:
2026-05-27 06:43:02 +08:00
parent 6cb249d46a
commit dfe87582e7
4 changed files with 204 additions and 183 deletions

View File

@@ -1,39 +1,51 @@
package com.openhis.application.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.openhis.application.domain.dto.QueuePatientDto;
import com.openhis.application.domain.dto.QueueQueryDto;
import com.openhis.application.domain.entity.TriageQueue;
import com.openhis.application.mapper.TriageQueueMapper;
import com.openhis.application.service.TriageQueueService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 智能分诊队列业务实现
*
* 修复 Bug #544
* 1. 移除对 COMPLETED 状态的隐式过滤,允许查询全流程记录。
* 2. 支持按 startDate/endDate 范围检索历史队列。
* 修复 Bug #544移除完诊状态过滤增加历史队列时间范围查询支持。
*/
@Service
public class TriageQueueServiceImpl implements TriageQueueService {
private final TriageQueueMapper triageQueueMapper;
private final TriageQueueMapper queueMapper;
public TriageQueueServiceImpl(TriageQueueMapper triageQueueMapper) {
this.triageQueueMapper = triageQueueMapper;
public TriageQueueServiceImpl(TriageQueueMapper queueMapper) {
this.queueMapper = queueMapper;
}
@Override
public PageInfo<QueuePatientDto> queryQueueList(Map<String, Object> params) {
int pageNum = (int) params.getOrDefault("pageNum", 1);
int pageSize = (int) params.getOrDefault("pageSize", 20);
public List<TriageQueue> getQueueList(QueueQueryDto dto) {
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
PageHelper.startPage(pageNum, pageSize);
// 动态 SQL 已处理状态过滤与时间范围,此处不再硬编码排除任何状态
List<QueuePatientDto> list = triageQueueMapper.selectQueueList(params);
return new PageInfo<>(list);
// 修复 Bug #544若前端未传时间范围默认查询当天数据
if (dto.getStartDate() == null && dto.getEndDate() == null) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
dto.setStartDate(cal.getTime());
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
dto.setEndDate(cal.getTime());
}
// 移除原代码中 status != 3 (完诊) 的硬编码过滤逻辑,交由 Mapper 动态处理
return queueMapper.selectQueueList(dto);
}
}