Files
his/.trae/documents/plan_20251231_063300.md
2026-01-09 11:33:03 +08:00

1.6 KiB
Raw Blame History

修复门诊预约界面专家号查询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条专家号记录。