From 141eef1ac1e9111fb33f96a95b59ba69422f8688 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 14 九月 2026 17:02:17 +0800
Subject: [PATCH] 1.优化问卷详情的查询速度

---
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java |   42 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index ea93805..7c54fe0 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -1,8 +1,10 @@
 package com.smartor.mapper;
 
 import com.smartor.domain.*;
+import com.smartor.domain.DTO.QuestionCountKsOrBqDTO;
 import com.smartor.domain.VO.PatSatisfactionReqVO;
 import com.smartor.domain.VO.HeLibraryCountVO;
+import com.smartor.domain.VO.QuestionCountKsOrBqVO;
 import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.domain.entity.ServiceSubtaskSatisfactionEntity;
@@ -58,6 +60,8 @@
 
     public List<ServiceSubtask> selectServiceSubtaskListAgain(ServiceSubtaskEntity serviceSubtaskVO);
 
+    public List<ServiceSubtask> selectServiceSubtaskListDeadLine(ServiceSubtaskEntity serviceSubtaskVO);
+
     public List<Integer> selectSendstateByCondition(ServiceSubtask serviceSubtask);
 
     /**
@@ -76,14 +80,12 @@
      * @param scheduleId 璁″垝涓婚敭
      * @param loopCount  杞锛�0=棣栬疆锛�
      */
-    public int countActiveByScheduleIdAndLoop(@Param("scheduleId") Long scheduleId,
-                                              @Param("loopCount") Long loopCount);
+    public int countActiveByScheduleIdAndLoop(@Param("scheduleId") Long scheduleId, @Param("loopCount") Long loopCount);
 
     /**
      * 浠诲姟缁勶紙appltype=5锛夛細鎷夊彇鏌愪竴杞鐨勫叏閮� subtask锛堢敤浜庡厠闅嗗埌涓嬩竴杞級銆�
      */
-    public List<ServiceSubtask> selectByScheduleIdAndLoop(@Param("scheduleId") Long scheduleId,
-                                                          @Param("loopCount") Long loopCount);
+    public List<ServiceSubtask> selectByScheduleIdAndLoop(@Param("scheduleId") Long scheduleId, @Param("loopCount") Long loopCount);
 
     /**
      * 闅忚鍙婃椂鐜囷細搴旈殢璁挎椂闂�<瀹為檯闅忚鏃堕棿
@@ -94,7 +96,14 @@
     public Double selectTimelyRate(ServiceSubtask ServiceSubtask);
 
     /**
-     * 闅忚鍙婃椂鐜囷細搴旈殢璁挎椂闂�<瀹為檯闅忚鏃堕棿
+     * 闅忚鍙婃椂鐜囷紙鎸� groupKey 鍒嗙粍鎵归噺缁熻锛�
+     * <p>
+     * rate锛氬嚭闄㈡椂闂�(endtime)璧� rateDay + 琛ュ伩澶╂暟 鍐呭畬鎴愰殢璁跨殑鍗犳瘮銆�
+     * 琛ュ伩澶╂暟鍙栬嚜 service_subtask_preachform.compensate_time 鎸夊瓙浠诲姟姹傚拰锛�
+     * 鐢ㄥ瓙浠诲姟蹇収鑰岄潪 service_task.preachform_desc锛屼繚璇佸巻鍙叉暟鎹笉闅忎换鍔℃敼閰嶇疆鑰屽彉鍔ㄣ��
+     * rateDay 涓虹┖鏃� rate 杩斿洖 NULL銆�
+     * <p>
+     * finishRate锛氬簲闅忚鏃堕棿(visit_time) &lt;= 瀹為檯瀹屾垚鏃堕棿(finishtime) 鐨勫崰姣旓紝褰撳墠鏈闅忚缁熻浣跨敤銆�
      *
      * @param ServiceSubtaskvo
      * @return
@@ -250,9 +259,28 @@
     /**
      * 缁熻闂鐨勯�夐」鐨勭櫨鍒嗘瘮
      *
-     * @param taskIds
+     * @param taskIds          浠诲姟 ID 鍒楄〃 (鐢ㄤ簬鏈嶅姟绫诲瀷 2)
+     * @param startOutHospTime
+     * @param endOutHospTime
      * @return
      */
-    List<ServiceSubtaskDetailRatioExport> statQuestionOption(@Param("taskIds") List<Long> taskIds, @Param("startOutHospTime") Date startOutHospTime, @Param("endOutHospTime") Date endOutHospTime);
+    List<ServiceSubtaskDetailRatioExport> statQuestionOption(@Param("taskIds") List<Long> taskIds, @Param("startOutHospTime") Date startOutHospTime, @Param("endOutHospTime") Date endOutHospTime, @Param("scoreStart") Double scoreStart, @Param("scoreEnd") Double scoreEnd, @Param("questiontext") String questiontext, @Param("valueType") String valueType);
+
+    /**
+     * 鏍规嵁瀛愪换鍔� ID 缁熻闂鐨勯�夐」鐨勭櫨鍒嗘瘮锛堢敤浜庢弧鎰忓害缁熻 serviceType=6锛�
+     *
+     * @param subtaskIds       瀛愪换鍔� ID 鍒楄〃 (鍙兘鍗曚釜 taskid 涓嬬殑鎵�鏈夊瓙浠诲姟 id)
+     * @param startOutHospTime
+     * @param endOutHospTime
+     * @return
+     */
+    List<ServiceSubtaskDetailRatioExport> statQuestionOptionBySubtaskIds(@Param("subtaskIds") List<Long> subtaskIds, @Param("startOutHospTime") Date startOutHospTime, @Param("endOutHospTime") Date endOutHospTime, @Param("scoreStart") Double scoreStart, @Param("scoreEnd") Double scoreEnd, @Param("questiontext") String questiontext, @Param("valueType") String valueType);
+
+    /**
+     * 鏍规嵁绉戝銆佺梾鍖恒�侀鐩被鍨嬬粺璁$殑绉戝銆佺梾鍖鸿瘎鍒�
+     * @param questionCountKsOrBqVO
+     * @return
+     */
+    List<QuestionCountKsOrBqDTO> statQuestionOptionByKsOrBq(QuestionCountKsOrBqVO questionCountKsOrBqVO);
 
 }

--
Gitblit v1.9.3