30 lines
1.6 KiB
Markdown
30 lines
1.6 KiB
Markdown
# 修复门诊预约界面专家号查询COUNT结果不正确问题
|
||
|
||
## 问题分析
|
||
1. 前端传递的参数正确:`type=expert`,后端正确转换为`ticketType=专家`
|
||
2. COUNT查询和实际查询的WHERE条件完全相同:`WHERE delete_flag = '0' AND ticket_type = '专家'`
|
||
3. 但COUNT查询只返回1条记录,而实际查询返回5条记录
|
||
4. 原因:MyBatis-Plus的分页插件在处理自定义COUNT查询时,存在bug,导致COUNT查询结果不正确
|
||
|
||
## 解决方案
|
||
修改`TicketAppServiceImpl.java`中的`listTicket`方法,不使用MyBatis-Plus的自动分页功能,而是手动实现分页查询:
|
||
1. 直接调用`ticketService.countTickets`方法获取总记录数
|
||
2. 手动构建查询条件
|
||
3. 确保COUNT查询和实际查询使用完全相同的条件
|
||
|
||
## 修复步骤
|
||
1. 修改`TicketAppServiceImpl.java`中的`listTicket`方法
|
||
2. 手动实现分页查询,包括:
|
||
- 构建查询条件
|
||
- 调用`countTickets`获取总记录数
|
||
- 调用`selectTicketList`获取分页数据
|
||
- 手动组装分页结果
|
||
3. 测试修复后的功能,确保专家号能正确显示全部5条记录
|
||
|
||
## 代码修改点
|
||
- 文件:`d:/work/openhis-server-new/openhis-application/src/main/java/com/openhis/web/appointmentmanage/appservice/impl/TicketAppServiceImpl.java`
|
||
- 方法:`listTicket`
|
||
- 修改内容:替换MyBatis-Plus的自动分页,改为手动分页实现
|
||
|
||
## 预期效果
|
||
修复后,COUNT查询和实际查询将使用完全相同的条件,COUNT查询将返回正确的总记录数(5条),前端能显示所有5条专家号记录。 |