From 90b39ba9d337721cd6c052510a9124ff539c5770 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 11 六月 2026 14:53:38 +0800
Subject: [PATCH] 【市一】指标统计 超链接

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java |   31 +++++++++++++++
 smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java                    |    1 
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java            |    2 
 smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java                              |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java         |   10 +++++
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java                 |    2 
 ruoyi-admin/src/main/resources/application.yml                                                 |    1 
 smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java                                  |    2 
 ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml                             |    5 +-
 smartor/src/main/java/com/smartor/service/IPatMedInhospService.java                            |    8 ++++
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java                    |   12 ++++-
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailVO.java                           |    9 ++++
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml                       |    7 +++
 smartor/src/main/java/com/smartor/domain/BaseDictOperation.java                                |    2 
 14 files changed, 81 insertions(+), 13 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
index b97a3ad..49f7537 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -246,4 +246,14 @@
             }
         }
     }
+
+    /**
+     * 澶勭悊鎮h�呬俊鎭紝杩涘叆瀛愪换鍔¤〃
+     */
+    @ApiOperation("addOperationSubTask")
+    @PostMapping("/addOperationSubTask")
+    public void addOperationSubTask() {
+        String config = configService.selectConfigByKey("visit.early.day");
+        iPatMedInhospService.addOperationSubTask(config);
+    }
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
index 5daa549..86252e7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
@@ -4,8 +4,10 @@
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysConfigService;
 import com.smartor.domain.*;
 import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
 import com.smartor.service.IServiceSubtaskDetailService;
@@ -17,6 +19,8 @@
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
+
+import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log;
 
 /**
  * 璇煶浠诲姟缁撴灉鏄庣粏Controller
@@ -32,6 +36,9 @@
     private IServiceSubtaskDetailService ServiceSubtaskDetailService;
     @Autowired
     private IServiceSubtaskService serviceSubtaskService;
+
+    @Autowired
+    private ISysConfigService configService;
 
     /**
      * 鏌ヨ鍗曚釜浜虹殑璇煶淇℃伅
@@ -156,11 +163,33 @@
     /**
      * 鑾峰彇闅忚璇︽儏-鎸囨爣璇︽儏(瓒呴摼鎺�)
      */
-    @ApiOperation("鑾峰彇闅忚璇︽儏-鎸囨爣璇︽儏(瓒呴摼鎺�)")
+    @ApiOperation("鑾峰彇闅忚璇︽儏-鎸囨爣璇︽儏")
     @PostMapping("/getServiceSubtaskDetails")
     public List<Map<String, Object>> getServiceSubtaskDetails(@RequestBody ServiceSubtaskDetailVO serviceSubtaskDetailVO) {
         List<Map<String, Object>> map = new ArrayList<>();
         map = ServiceSubtaskDetailService.getServiceSubtaskDetails(serviceSubtaskDetailVO);
         return map;
     }
+
+    /**
+     * 鑾峰彇闅忚璇︽儏-鎸囨爣璇︽儏(瓒呴摼鎺�)
+     */
+    @ApiOperation("鑾峰彇闅忚璇︽儏-鎸囨爣璇︽儏(瓒呴摼鎺�)")
+    @PostMapping("/getServiceSubtaskDetailsHyperlink")
+    public List<Map<String, Object>> getServiceSubtaskDetailsHyperlink(@RequestBody ServiceSubtaskDetailVO serviceSubtaskDetailVO) {
+        LoginUser loginUser = getLoginUser();
+        String orgid = loginUser.getUser().getOrgid();
+        String configKey = serviceSubtaskDetailVO.getConfigKey();
+        if (StringUtils.isNotEmpty(configKey)) {
+            String configValue = configService.selectConfigByKey(configKey, orgid);
+            serviceSubtaskDetailVO.setConfigValue(configValue);
+            if (StringUtils.isEmpty(configValue)) {
+                String logInfo = "getSfStatisticsCount-鍙傛暟 " + configKey + " 鏈厤缃�, 璇烽厤缃ソ鍚庨噸璇�";
+                log.error(logInfo);
+            }
+        }
+        List<Map<String, Object>> map = new ArrayList<>();
+        map = ServiceSubtaskDetailService.getServiceSubtaskDetails(serviceSubtaskDetailVO);
+        return map;
+    }
 }
diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml
index b6d2613..c326222 100644
--- a/ruoyi-admin/src/main/resources/application.yml
+++ b/ruoyi-admin/src/main/resources/application.yml
@@ -69,6 +69,7 @@
 
 # Spring閰嶇疆
 spring:
+  datasource:
   # 璧勬簮淇℃伅
   messages:
     # 鍥介檯鍖栬祫婧愭枃浠惰矾寰�
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
index d1e648a..bc6375d 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -381,7 +381,7 @@
         PatMedOperationItem patMedOperationItem = new PatMedOperationItem();
         patMedOperationItem.setOrgid(operation.getOrgid());
         if(StringUtils.isNotEmpty(operation.getOpid())){
-            patMedOperationItem.setOpid(Long.valueOf(operation.getOpid()));
+            patMedOperationItem.setOpid(operation.getOpid());
             patMedOperationItem.setLastStartTime(operation.getLastStartTime());
             patMedOperationItem.setLastEndTime(operation.getLastEndTime());
             List<PatMedOperationItem> patMedOperationItems = chMapper.selectOperItemList(patMedOperationItem);
diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
index 94aeecc..8c814e2 100644
--- a/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
+++ b/ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -922,7 +922,6 @@
                oi.pguid,
                oi.guid,
                oi.pid,
-               oi.opercheck_flag,
                oi.long_task_reason,
                oi.last_Update_Time
         from HEALTHY_PAT_MED_OPERATION_ITEM oi
@@ -934,10 +933,10 @@
             AND oi.opid = #{opid}
         </if>
         <if test="lastStartTime != null and lastStartTime != ''">
-            and last_Update_Time &gt;= to_date(#{lastStartTime}, 'YYYY-MM-DD HH24:MI:SS')
+            and oi.last_Update_Time &gt;= to_date(#{lastStartTime}, 'YYYY-MM-DD HH24:MI:SS')
         </if>
         <if test="lastEndTime != null and lastEndTime != ''">
-            and last_Update_Time &lt;= to_date(#{lastEndTime}, 'YYYY-MM-DD HH24:MI:SS')
+            and oi.last_Update_Time &lt;= to_date(#{lastEndTime}, 'YYYY-MM-DD HH24:MI:SS')
         </if>
     </select>
 </mapper>
diff --git a/smartor/src/main/java/com/smartor/domain/BaseDictOperation.java b/smartor/src/main/java/com/smartor/domain/BaseDictOperation.java
index 87f0132..bfc3ad1 100644
--- a/smartor/src/main/java/com/smartor/domain/BaseDictOperation.java
+++ b/smartor/src/main/java/com/smartor/domain/BaseDictOperation.java
@@ -32,7 +32,7 @@
      */
     @ApiModelProperty("his鎵嬫湳id")
     @Excel(name = "his鎵嬫湳id")
-    private Long opid;
+    private String opid;
 
     /**
      * 鎵嬫湳鍚嶇ОID
diff --git a/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java b/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
index d58c53f..8fd63cb 100644
--- a/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
+++ b/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
@@ -39,7 +39,7 @@
      */
     @ApiModelProperty("鎵嬫湳id")
     @Excel(name = "鎵嬫湳id")
-    private Long opid;
+    private String opid;
 
     /**
      * 鎵嬫湳鍚嶇ОID
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailVO.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailVO.java
index 12a5674..96026bd 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailVO.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailVO.java
@@ -201,6 +201,15 @@
     @ApiModelProperty("闂缁村害")
     private String dimension;
 
+    @ApiModelProperty(value = "鏌ヨ鍙傛暟 joyCount-婊℃剰搴︾粺璁�; returnVisitCount-澶嶈瘖缁熻")
+    private String configKey;
+
+    @ApiModelProperty(value = "鏌ヨ鍙傛暟瀵瑰簲鍊� joyCount-婊℃剰搴︾粺璁�; returnVisitCount-澶嶈瘖缁熻")
+    private String configValue;
+
+    @ApiModelProperty(value = "鏄惁濉姤 0-鍏ㄩ儴 1-宸插~鎶�")
+    private String isFilled;
+
     /**
      * 鍑洪櫌鐥呭尯缂栧彿
      */
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java
index fd644b1..3722acd 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java
@@ -57,7 +57,7 @@
      */
     @ApiModelProperty("鎵嬫湳id")
     @Excel(name = "鎵嬫湳id")
-    private Long opid;
+    private String opid;
 
     /**
      * 鎵嬫湳缂栫爜
diff --git a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
index 680bee7..774c5bc 100644
--- a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
+++ b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -115,4 +115,12 @@
      * @return
      */
     public List<PatMedInhosp> getDocAndPat(PatMedInhosp patMedInhosp);
+
+    /**
+     * 澶勭悊浠巋is鍙栨潵鐨勬墜鏈俊鎭�
+     *
+     * @param
+     * @return 缁撴灉
+     */
+    public void addOperationSubTask(String config);
 }
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
index c917f84..0323b0d 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailService.java
@@ -31,7 +31,6 @@
     public Map<String, Object> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail);
 
     public List<Map<String, Object>> getServiceSubtaskDetails(ServiceSubtaskDetailVO serviceSubtaskDetailVo);
-
     /**
      * 鏂板璇煶浠诲姟鍛煎彨鏄庣粏
      *
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index 778fee9..a7ed6a4 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -788,9 +788,14 @@
         if (Objects.isNull(patMedOperationItem.getOplevelcode())) {
             return;
         }
-        PatMedOperation patMedOperation = patMedOperationMapper.selectPatMedOperationById(patMedOperationItem.getOpid());
-        if (Objects.isNull(patMedOperation)) {
+        PatMedOperation patMedOperationVo = new PatMedOperation();
+        PatMedOperation patMedOperation = new PatMedOperation();
+        patMedOperationVo.setOpid(patMedOperationItem.getOpid());
+        List<PatMedOperation> patMedOperationList = patMedOperationMapper.selectPatMedOperationList(patMedOperationVo);
+        if (CollectionUtils.isEmpty(patMedOperationList)) {
             return;
+        }else {
+            patMedOperation = patMedOperationList.get(0);
         }
         PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperation.getPatid());
         if (Objects.isNull(patArchive)) {
@@ -1167,7 +1172,8 @@
         }
     }
 
-    private void addOperationSubTask(String config) {
+    @Override
+    public void addOperationSubTask(String config) {
         //            鎵嬫湳闅忚
         PatMedOperationItem pmoi = new PatMedOperationItem();
         //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index 09add5e..0354204 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1423,7 +1423,7 @@
             Boolean addMianTableFalg = true;
             for (ExternalOperationDetail externalOperationDetail : externalOperationDetails) {
                 PatMedOperationItem patMedOperationItem = new PatMedOperationItem();
-                patMedOperationItem.setOpid(patMedOperation.getId());
+                patMedOperationItem.setOpid(patMedOperation.getOpid());
                 patMedOperationItem.setOpcode(externalOperationDetail.getShouShuMCID());
                 patMedOperationItem.setOpdesc(externalOperationDetail.getShouShuMC());
                 patMedOperationItem.setMainFlag(externalOperationDetail.getZhuShouSBZ());
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
index f661975..1718b54 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
@@ -240,6 +240,13 @@
                 #{scriptId}
             </foreach>
         </if>
+        <if test="isFilled != null and isFilled != '0'">
+            AND IFNULL(ssd.matchedtext,ssd.asrtext) is not null
+            AND IFNULL(ssd.matchedtext,ssd.asrtext) != ''
+        </if>
+        <if test="configValue != null and configValue != ''">
+            AND ssd.categoryid IN (${configValue})
+        </if>
         order by ssd.sub_id desc, ssd.id desc
     </select>
     <select id="selectServiceSubtaskDetailByCalldetailid" parameterType="String" resultMap="ServiceSubtaskDetailResult">

--
Gitblit v1.9.3