From c93b5be2de361e5625ed199dbbeb42704d5e1cb1 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 13 七月 2026 16:22:41 +0800
Subject: [PATCH] Merge branch 'master' into master-任务组

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |    7 ++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java            |   18 ++++++
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java                     |   11 +++
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java                       |    5 +
 smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java                    |    2 
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml                       |   90 ++++++++++++++++++++++++++++++
 smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java                        |   22 +++++++
 7 files changed, 155 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index 4db09ad..2954bb2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -886,6 +886,13 @@
         return serviceSubtaskService.getHeLibraryCount(heLibraryCountVO);
     }
 
+    @ApiOperation("鑾峰彇瀹f暀缁熻瓒呴摼鎺�")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/gethelibraryCountHyperlink")
+    public AjaxResult gethelibraryCountHyperlink(@RequestBody HeLibraryCountVO heLibraryCountVO) {
+        return success(serviceSubtaskService.gethelibraryCountHyperlink(heLibraryCountVO));
+    }
+
     /**
      * 鎵嬪姩鍙戦�侀棶鍗锋ā鏉跨殑鐭俊鍔熻兘
      *
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java
index c27d624..023a85d 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java
@@ -207,6 +207,17 @@
     @ApiModelProperty(value = "diagType闆嗗悎")
     private List<String> diagTypes;
 
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "鍙戦�佹椂闂�")
+    private Date visittime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "瀹屾垚鏃堕棿")
+    private Date finishtime;
+
+    @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌 3.涓撶梾 4.澶栭儴瀵煎叆 5鎬ヨ瘖銆�6浣忛櫌銆�7浣撴锛�")
+    private String hospType;
+
     /**
      * pageNum
      */
diff --git a/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java b/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
index e6158d7..c398c38 100644
--- a/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
+++ b/smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
@@ -1,6 +1,7 @@
 package com.smartor.domain.VO;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -37,4 +38,25 @@
     @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌 3.涓撶梾 4.澶栭儴瀵煎叆 5鎬ヨ瘖銆�6浣忛櫌銆�7浣撴锛�")
     private String hospType;
 
+    @ApiModelProperty(value = "鏈烘瀯ID")
+    private String orgid;
+
+    @ApiModelProperty("鍙戦�佺姸鎬�")
+    private String sendstate;
+
+    @ApiModelProperty("瀹屾垚鐘舵�侊紙0鏈畬鎴� 1宸插畬鎴� 瀵瑰簲finishtime鏄惁鏈夊�硷級")
+    private String isFinished;
+
+    /**
+     * pageNum
+     */
+    @ApiModelProperty("pageNum")
+    private Integer pageNum;
+
+    /**
+     * pageSize
+     */
+    @ApiModelProperty("pageSize")
+    private Integer pageSize;
+
 }
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 9cf5b38..c00c91f 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -242,6 +242,11 @@
     List<Map<String, Object>> getHeLibraryCount(HeLibraryCountVO heLibraryCountVO);
 
     /**
+     * 瀹f暀缁熻瓒呴摼鎺�
+     */
+    List<ServiceSubtask> gethelibraryCountHyperlink(HeLibraryCountVO heLibraryCountVO);
+
+    /**
      * 缁熻闂鐨勯�夐」鐨勭櫨鍒嗘瘮
      * @param taskIds
      * @return
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index 93ae55b..daa0128 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -187,6 +187,8 @@
 
     public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO);
 
+    public List<ServiceSubtask> gethelibraryCountHyperlink(@RequestBody HeLibraryCountVO heLibraryCountVO);
+
     Map<String, Object> smsSubTask(Long subid);
 
     /**
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index b81b373..5d7cd97 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -3176,6 +3176,18 @@
                 serviceSubtaskStatistic.setFollowUpNeeded(serviceSubtaskStatistic.getFollowUpNeeded() + 1L);
             }
 
+            //棣栨鍑洪櫌闅忚-缁熻鍐嶆鎺ㄩ�佹暟閲�
+            if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() > 1) {
+                //鍐嶆搴旈殢璁�
+                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+                    serviceSubtaskStatistic.setNeedFollowUpAgain(serviceSubtaskStatistic.getNeedFollowUpAgain() + 1L);
+                }
+                //鍐嶆闅忚瀹屾垚
+                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 6) {
+                    serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
+                }
+            }
+
             //棣栨鍑洪櫌闅忚
             if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() == 1) {
                 //棣栨搴旈殢璁�
@@ -4586,6 +4598,12 @@
     }
 
     @Override
+    public List<ServiceSubtask> gethelibraryCountHyperlink(HeLibraryCountVO heLibraryCountVO){
+        List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.gethelibraryCountHyperlink(heLibraryCountVO);
+        return serviceSubtasks;
+    }
+
+    @Override
     public Map<String, Object> smsSubTask(Long subid) {
         log.info("smsSubTask鐨勫叆鍙備负锛歿}", subid);
         Map<String, Object> resultMap = new HashMap<>();
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 7e4b4b2..6982d8f 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2701,6 +2701,9 @@
         <if test="visitCount != null and visitCount > 1">
             AND visit_count > 1
         </if>
+        <if test="drname != null  and drname != ''">
+            AND drname like concat('%', #{drname}, '%')
+        </if>
     </select>
 
 
@@ -2889,6 +2892,15 @@
         FROM service_subtask
         WHERE del_flag = 0
         AND service_type = 4
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="sendstate != null">
+            AND sendstate = #{sendstate}
+        </if>
+        <if test="isFinished != null and isFinished != '0'">
+            AND finishtime is not null
+        </if>
         <if test="starttime != null">AND starttime &gt;= #{starttime}</if>
         <if test="endtime != null">AND endtime &lt;= #{endtime}</if>
         <if test="visittime != null">AND DATE(visit_time) = DATE(#{visittime})</if>
@@ -2935,6 +2947,84 @@
         order by schedule_seq asc, id asc
     </select>
 
+    <select id="gethelibraryCountHyperlink" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
+            resultMap="ServiceSubtaskResult">
+        select id,
+        visit_count,
+        is_visit_again,
+        type,
+        orgid,
+        drcode,
+        drname,
+        leavehospitaldistrictcode,
+        leavehospitaldistrictname,
+        deptcode,
+        deptname,
+        sendstate,
+        preachform,
+        current_preachform,
+        excep,
+        nurse_id,
+        nurse_name,
+        taskid,
+        task_name,
+        visit_time,
+        finishtime,
+        endtime,
+        senddate,
+        suggest,
+        result,
+        templateid,
+        templatename,
+        patid,
+        sendname,
+        send_type,
+        recordid,
+        exrecallcount,
+        continue_flag,
+        continue_time_now,
+        continue_content,
+        continue_count,
+        continue_time_next,
+        task_situation
+        from service_subtask
+        where 1=1
+        and del_flag = 0
+        AND service_type = 4
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="sendstate != null and isFinished != '0'">
+            AND sendstate = #{sendstate}
+        </if>
+        <if test="isFinished != null">
+            AND finishtime is not null
+        </if>
+        <if test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">
+            AND leavehospitaldistrictcode IN
+            <foreach collection="hospitaldistrictcodes" item="hospitaldistrictcode" open="(" separator=","
+                     close=")">
+                #{hospitaldistrictcode}
+            </foreach>
+        </if>
+        <if test="deptcodes != null and deptcodes.size() > 0">
+            AND deptcode IN
+            <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                     close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        <if test="starttime != null">AND starttime &gt;= #{starttime}</if>
+        <if test="endtime != null">AND endtime &lt;= #{endtime}</if>
+        <if test="visittime != null">AND DATE(visit_time) = DATE(#{visittime})</if>
+        <if test="finishtime != null">AND DATE(finishtime) = DATE(#{finishtime})</if>
+        <if test="hospType != null and hospType != ''">AND hosp_type = #{hospType}</if>
+        order by endtime desc
+        <if test="pageSize != null  and pageNum != null">
+            limit ${pageSize} OFFSET ${pageNum}
+        </if>
+    </select>
+
     <select id="statQuestionOption" resultType="com.smartor.domain.ServiceSubtaskDetailRatioExport">
         SELECT
         d.questiontext AS questiontext,

--
Gitblit v1.9.3