From c4dc6a5d66524d08b768046d9d2d5974bf96f45c Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 11 十一月 2026 14:06:23 +0800
Subject: [PATCH] Merge branch 'smartor_ls_261103' into smartor_ls_merge

---
 ruoyi-task/src/main/java/com/ruoyi/task/mapper/ServiceSubtaskMapper.java |  108 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 106 insertions(+), 2 deletions(-)

diff --git a/ruoyi-task/src/main/java/com/ruoyi/task/mapper/ServiceSubtaskMapper.java b/ruoyi-task/src/main/java/com/ruoyi/task/mapper/ServiceSubtaskMapper.java
index e23f262..1bbb207 100644
--- a/ruoyi-task/src/main/java/com/ruoyi/task/mapper/ServiceSubtaskMapper.java
+++ b/ruoyi-task/src/main/java/com/ruoyi/task/mapper/ServiceSubtaskMapper.java
@@ -38,11 +38,29 @@
 
     /**
      * 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級鍒楄〃
+     * <p>
+     * 鍏ュ弬 soonTimeout=1 涓� soonTimeoutHours=N 鏃讹紝浠呰繑鍥炩�滃皻鏈秴鏃躲�佷笖灏嗗湪 N 灏忔椂鍐呰秴鏃垛�濈殑鏁版嵁锛�
+     * 鎴鏃堕棿鍙e緞涓� getCurrentUserServiceSubtaskCount 鐨� soonTimeoutCount 涓�鑷淬��
      *
      * @param serviceSubtaskVO 鍗曚竴浠诲姟锛堥殢璁匡級
      * @return 鍗曚竴浠诲姟锛堥殢璁匡級闆嗗悎
      */
     public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskEntity serviceSubtaskVO);
+
+    /**
+     * 鍒嗛〉绗竴闃舵锛氬彧鍙栧綋鍓嶉〉鐨勫瓙浠诲姟 id銆�
+     * <p>
+     * where / order 涓� {@link #selectServiceSubtaskList} 鍏辩敤鍚屼竴浠� XML 鐗囨
+     * 锛坽@code serviceSubtaskWhere} / {@code serviceSubtaskOrderByPaged}锛夛紝
+     * 淇濊瘉涓ゆ潯璇彞鍙e緞涓�鑷达紝涓嶄細鍑虹幇銆岀涓�闃舵閫夊嚭琛屻�佺浜岄樁娈靛張琚繃婊ゆ帀銆嶃��
+     * <p>
+     * 涔嬫墍浠ヨ鍗曠嫭涓�鏉★細鍒楄〃璇彞 select 绾� 100 鍒楋紝娣辩炕椤垫椂琚� offset 璺宠繃鐨勬瘡涓�琛�
+     * 閮借鍥炶〃璇绘暣琛岋紱鑰屽彧鍙� id 鐨勮鍙ュ彲浠ヨ蛋瑕嗙洊绱㈠紩骞舵彁鍓嶆埅鏂��
+     *
+     * @param serviceSubtaskVO 鏌ヨ鏉′欢锛坧ageNum 鏄� offset銆乸ageSize 鏄瘡椤垫潯鏁帮紝鐢辫皟鐢ㄦ柟绠楀ソ锛�
+     * @return 褰撳墠椤电殑瀛愪换鍔� id锛屽凡鎸夋帓搴忚鍒欐帓濂藉簭
+     */
+    public List<Long> selectServiceSubtaskIdsPage(ServiceSubtaskEntity serviceSubtaskVO);
 
     
 
@@ -108,10 +126,14 @@
     /**
      * 闅忚鍙婃椂鐜囷紙鎸� groupKey 鍒嗙粍鎵归噺缁熻锛�
      * <p>
-     * rate锛氬嚭闄㈡椂闂�(endtime)璧� rateDay + 琛ュ伩澶╂暟 鍐呭畬鎴愰殢璁跨殑鍗犳瘮銆�
+     * rate锛氬畬鎴愭椂闂�(finishtime) 涓嶆櫄浜庡強鏃剁巼鍩哄噯鐨勫崰姣旓紝鍒嗘瘝涓哄簲闅忚鏁般��
+     * 闈炰换鍔$粍(appltype != 5)锛歟ndtime + send_day(缂虹渷1) + 危琛ュ伩澶╂暟 + 1 澶╋紱
+     * 浠诲姟缁�(appltype = 5)锛氭寜 schedule_benchmark 瑙f瀽鍩哄噯鏃堕棿
+     * (1-鍏ラ櫌 2-鍑洪櫌 3-灏辫瘖 4-鍏ョ粍 0/鍏跺畠-鑷畾涔夋椂闂�) + day_offset
+     * + 危琛ュ伩澶╂暟 + 1 澶╋紙涓嶅彔鍔� send_day锛夈��
      * 琛ュ伩澶╂暟鍙栬嚜 service_subtask_preachform.compensate_time 鎸夊瓙浠诲姟姹傚拰锛�
      * 鐢ㄥ瓙浠诲姟蹇収鑰岄潪 service_task.preachform_desc锛屼繚璇佸巻鍙叉暟鎹笉闅忎换鍔℃敼閰嶇疆鑰屽彉鍔ㄣ��
-     * rateDay 涓虹┖鏃� rate 杩斿洖 NULL銆�
+     * rateDay 鍙傛暟涓嶅啀鍙備笌璇ュ彛寰勩��
      * <p>
      * finishRate锛氬簲闅忚鏃堕棿(visit_time) &lt;= 瀹為檯瀹屾垚鏃堕棿(finishtime) 鐨勫崰姣旓紝褰撳墠鏈闅忚缁熻浣跨敤銆�
      *
@@ -140,6 +162,14 @@
 
     public Boolean updateServiceSubtaskByCondition(ServiceSubtask ServiceSubtask);
 
+    /**
+     * 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欐寜榛樿閫夐」瀹屾垚锛氬彧鏇存柊褰撳墠瀛愪换鍔★紝涓斿彧鍏佽 sendstate=1銆佹湭鎻愪氦鐨勬暟鎹��
+     *
+     * @param serviceSubtask 蹇呭~ id銆乫inishtime銆乺esult銆乺emark
+     * @return 褰卞搷琛屾暟
+     */
+    public int updateWechatDefaultComplete(ServiceSubtask serviceSubtask);
+
     public Boolean updateServiceSubtaskByTaskGuid(ServiceSubtask ServiceSubtask);
 
     /**
@@ -153,6 +183,30 @@
     public int deleteServiceSubtaskByCondition(@Param("taskid") Long id, @Param("patid") Long patid);
 
     /**
+     * 鍒犻櫎鎮h�呭嚭闄㈣褰曞搴旂殑鏈畬鎴愰殢璁夸换鍔�
+     *
+     * @param patid      鎮h�匢D
+     * @param inhospids  鍑洪櫌璁板綍ID闆嗗悎
+     * @param sendstates 鏈畬鎴愮姸鎬侀泦鍚�
+     * @return 鍒犻櫎鏉℃暟
+     */
+    public int deleteUnfinishedServiceSubtaskByInhospids(@Param("patid") Long patid,
+                                                         @Param("inhospids") List<Long> inhospids,
+                                                         @Param("sendstates") List<Long> sendstates);
+
+    /**
+     * 缁熻鎮h�呮寚瀹氫换鍔′笅鏈畬鎴愮殑闅忚浠诲姟鏁伴噺锛堢敤浜庝汉宸ラ殢璁块噸澶嶆牎楠岋級
+     *
+     * @param patid      鎮h�匢D
+     * @param taskid     浠诲姟ID
+     * @param sendstates 鏈畬鎴愮姸鎬侀泦鍚�
+     * @return 鏈畬鎴愪换鍔℃暟閲�
+     */
+    int countUnfinishedServiceSubtaskByPatidAndTaskid(@Param("patid") Long patid,
+                                                      @Param("taskid") Long taskid,
+                                                      @Param("sendstates") List<Long> sendstates);
+
+    /**
      * 鍒犻櫎鍗曚竴浠诲姟锛堥殢璁匡級
      *
      * @return 缁撴灉
@@ -162,6 +216,25 @@
     public List<ServiceSubtaskCount> getSfFzInfoEveryMonth(ServiceSubtaskCountReq serviceSubtaskCountReq);
 
     public List<ServiceSubtask> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
+    /**
+     * 闅忚鍒嗙被缁熻锛氭寜鍒嗙粍锛坓roupKey=drcode / leaveldeptcode / leavehospitaldistrictcode锛夊湪搴撻噷鑱氬悎銆�
+     * <p>
+     * 鐢ㄤ簬鏇夸唬鈥滄妸 getSfStatistics 鍛戒腑鐨勫叏閮ㄦ槑缁嗚鎹炲洖鍐呭瓨鍐嶉�愯绱姞鈥濈殑鑰佸仛娉曪紝
+     * 鍙繑鍥炲垎缁勬暟锛堝嚑鍗佽锛夌殑缁撴灉锛涚粺璁″彛寰勪笌 {@code getStatisticCategory} 瀹屽叏涓�鑷淬��
+     *
+     * @param serviceSubtaskCountReq 鏌ヨ鏉′欢锛堝繀椤诲凡璁剧疆 groupKey / groupKeyList锛�
+     * @return 姣忎釜鍒嗙粍鐨勮仛鍚堢粺璁�
+     */
+    public List<ServiceSubtaskStatistic> getSfStatisticsScriptSum(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
+    /**
+     * 闅忚鍒嗙被缁熻锛氭弧鎰忓害棰樼洰閲忔寜鍒嗙粍鑱氬悎锛堟浛浠� getSfStatisticsCategory 鐨� IN 澶у垪琛� + 鍐呭瓨杩囨护锛夈��
+     *
+     * @param serviceSubtaskCountReq 鏌ヨ鏉′欢锛堝繀椤诲凡璁剧疆 groupKey / groupKeyList / configValue锛�
+     * @return 姣忚鍖呭惈 groupCode銆乯oyAllCount銆乯oyCount 涓変釜閿�
+     */
+    public List<Map<String, Object>> getSfStatisticsScriptJoySum(ServiceSubtaskCountReq serviceSubtaskCountReq);
 
     public List<ServiceSubtaskStatistic> getSpecialSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq);
 
@@ -194,6 +267,14 @@
      */
     public List<ServiceSubtaskScriptCount> getSfStatisticsScriptItemDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
 
+    /**
+     * 闂閫夐」鏁板瓧涓嬮捇锛氭煡璇㈤�夋嫨浜嗘寚瀹氶�夐」鐨� service_subtask 鍒楄〃
+     *
+     * @param serviceSubtaskCountReq 缁熻缁村害銆佺瀹�/鐥呭尯銆佷换鍔°�侀鐩強閫夐」鏉′欢
+     * @return service_subtask 鍒楄〃
+     */
+    public List<ServiceSubtask> getSfStatisticsScriptDetailsHyperlink(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
 
     public List<PatMedRes> getDeptRanking(PatMedReq patMedReq);
 
@@ -212,6 +293,7 @@
      * ywc: 宸插畬鎴愭暟閲� sendstate = 6L
      * dfs: 寰呭彂閫佹暟閲� sendstate = 1L, 3L, 4L, 5L, 6L, 7L
      * yfs: 宸插彂閫佹暟閲� sendstate = 2L
+     * cs: 瓒呮椂鏁伴噺 sendstate = 7L
      * yc: 寮傚父鏁伴噺 excep = '1'
      * yc: 璀﹀憡鏁伴噺 excep = '2'
      */
@@ -226,8 +308,20 @@
      * failedVisitCount: 褰撳墠鐧诲綍浜洪殢璁夸换鍔″け璐ユ�婚噺
      * abnormalVisitVount: 褰撳墠鐧诲綍浜洪殢璁夸换鍔″紓甯告�婚噺
      * allVisitCount: 褰撳墠鐧诲綍浜洪殢璁夸换鍔℃�婚噺
+     * soonTimeoutCount: 褰撳墠鐧诲綍浜哄嵆灏嗚秴鏃舵暟閲忥紙瓒呮椂鎴鏃堕棿鍦� soonTimeoutHours 灏忔椂鍐咃紝浠呯粺璁″皻鏈秴鏃剁殑鏁版嵁锛�
      */
     public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity serviceSubtaskVO);
+
+    /**
+     * 褰撳墠鐧诲綍浜哄緟澶勭悊闅忚浠诲姟锛屾寜鍑洪櫌骞存湀鍒嗙粍缁熻
+     * <p>
+     * 缁熻鍙e緞锛氬嚭闄㈤殢璁�/闂ㄨ瘖闅忚锛坰ervice_type in 2,3锛�+ 浜哄伐锛坈urrent_preachform = '1'锛�
+     * + 寰呴殢璁跨姸鎬侊紙sendstate in 1,2,3,5,7锛�+ 鍑洪櫌鏃堕棿鏃╀簬绛変簬浠婂ぉ - 7 澶┿��
+     *
+     * @param serviceSubtaskVO 鏌ヨ鏉′欢锛坥rgid銆佺瀹ゃ�佺梾鍖猴級
+     * @return 姣忚鍖呭惈 month锛坹yyy-MM锛変笌 cnt锛堟暟閲忥級锛屾暟閲忎负 0 鐨勬湀浠戒笉浼氳繑鍥�
+     */
+    public List<Map<String, Object>> countPendingManualTaskByMonth(ServiceSubtaskEntity serviceSubtaskVO);
 
     /**
      * 鑾峰彇闂ㄨ瘖闅忚浜烘暟
@@ -282,4 +376,14 @@
 
     
 
+    /**
+     * 鏉′欢鏇存柊鍘熶换鍔$殑鈥滄槸鍚﹀啀娆¢殢璁库�濇爣璇嗭紝鐢ㄤ簬浜屾闅忚骞傜瓑鎺у埗銆�
+     * 浠呭綋褰撳墠鍊间笉鏄洰鏍囧�兼椂鎵嶆洿鏂帮紝杩斿洖鍙楀奖鍝嶈鏁般��
+     *
+     * @param id           瀛愪换鍔� ID
+     * @param isVisitAgain 鐩爣鍊硷紙2-宸插啀娆¢殢璁匡級
+     * @return 鍙楀奖鍝嶈鏁帮紝1 琛ㄧず鎶㈠埌鐢熸垚鏉冿紝0 琛ㄧず宸茶鍏朵粬璇锋眰澶勭悊
+     */
+    int updateIsVisitAgainById(@Param("id") Long id, @Param("isVisitAgain") Integer isVisitAgain);
+
 }

--
Gitblit v1.9.3