From 732024c03df1d810b8f5a8a526066967f1bfbb5d Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 26 六月 2026 17:53:27 +0800
Subject: [PATCH] 南华部分功能提交

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |   83 +++++++++++++++++++++++++++++------------
 1 files changed, 58 insertions(+), 25 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 56c6428..f73cbce 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
@@ -1,5 +1,8 @@
 package com.ruoyi.web.controller.smartor;
 
+import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.ISelect;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
@@ -13,20 +16,22 @@
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.dx.MessageSend;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.enums.MsgLSEnum;
 import com.ruoyi.common.enums.PreachFormEnum;
 import com.ruoyi.common.enums.SendStateEnum;
 import com.ruoyi.common.exception.base.BaseException;
-import com.ruoyi.common.utils.DateUtils;
-import com.ruoyi.common.utils.DtoConversionUtils;
-import com.ruoyi.common.utils.PageUtils;
-import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.*;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.reflect.ReflectUtils;
 import com.ruoyi.quartz.service.ICollectHISService;
 import com.ruoyi.quartz.task.RyTask;
+import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserDeptService;
+import com.smartor.common.LSHospTokenUtil;
+import com.smartor.common.QwenLLMUtil;
 import com.smartor.domain.*;
 import com.smartor.domain.VO.HeLibraryCountVO;
 import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
@@ -48,6 +53,8 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -91,6 +98,9 @@
 
     @Value("${spring.profiles.active}")
     private String active;
+
+    @Value("${isAdmin}")
+    private List<Long> isAdmin;
 
     @Autowired
     private RedisCache redisCache;
@@ -233,7 +243,7 @@
             for (ServiceSubtaskExport serviceSubtaskExport : serviceSubtaskExports) {
                 String pf = PreachFormEnum.getDescByCode(serviceSubtaskExport.getPreachform());
                 serviceSubtaskExport.setPreachform(pf);
-                if(serviceSubtaskExport.getSendstate() != null) {
+                if (serviceSubtaskExport.getSendstate() != null) {
                     String stName = SendStateEnum.getDescByCode("" + serviceSubtaskExport.getSendstate());
                     serviceSubtaskExport.setStName(stName);
                 }
@@ -550,27 +560,23 @@
 
         Integer statisticaltype = serviceSubtaskCountReq.getStatisticaltype();
 
-        if(ObjectUtils.isNotEmpty(statisticaltype)){
+        if (ObjectUtils.isNotEmpty(statisticaltype)) {
             SysUser user = getLoginUser().getUser();
-            if(statisticaltype==1){
-                if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())){
-                    //鍏ㄩ儴鐥呭尯
-                    String deptInfo = user.getDeptInfo();
-                    Gson gson = new Gson();
-                    // 3. 瀹氫箟 List 绫诲瀷锛堟牳蹇冿級
-                    TypeToken<List<String>> typeToken = new TypeToken<List<String>>() {};
-                    List<String> leavehospitaldistrictcodes = gson.fromJson(deptInfo, typeToken.getType());
-                    serviceSubtaskCountReq.setLeavehospitaldistrictcodes(leavehospitaldistrictcodes);
-                }
-            }else if(statisticaltype==2){
-                if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getDeptcodes())){
-                    //鍏ㄩ儴绉戝
-                    String hospInfo = user.getHospInfo();
-                    Gson gson = new Gson();
-                    // 3. 瀹氫箟 List 绫诲瀷锛堟牳蹇冿級
-                    TypeToken<List<String>> typeToken = new TypeToken<List<String>>() {};
-                    List<String> deptCodes = gson.fromJson(hospInfo, typeToken.getType());
-                    serviceSubtaskCountReq.setDeptcodes(deptCodes);
+            if (!isAdmin.contains(user.getUserId())) {
+                if (statisticaltype == 1) {
+                    if (CollectionUtils.isEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) {
+                        //鍏ㄩ儴鐥呭尯
+                        String deptInfo = user.getDeptInfo();
+                        List<String> leavehospitaldistrictcodes = JSON.parseArray(deptInfo).stream().map(item -> (String) ((List<?>) item).get(0)).collect(Collectors.toList());
+                        serviceSubtaskCountReq.setLeavehospitaldistrictcodes(leavehospitaldistrictcodes);
+                    }
+                } else if (statisticaltype == 2) {
+                    if (CollectionUtils.isEmpty(serviceSubtaskCountReq.getDeptcodes())) {
+                        //鍏ㄩ儴绉戝
+                        String hospInfo = user.getHospInfo();
+                        List<String> deptCodes = JSON.parseArray(hospInfo).stream().map(item -> (String) ((List<?>) item).get(0)).collect(Collectors.toList());
+                        serviceSubtaskCountReq.setDeptcodes(deptCodes);
+                    }
                 }
             }
         }
@@ -873,10 +879,31 @@
         return serviceSubtaskService.getHeLibraryCount(heLibraryCountVO);
     }
 
+    /**
+     * 鎵嬪姩鍙戦�侀棶鍗锋ā鏉跨殑鐭俊鍔熻兘
+     *
+     * @param subid
+     * @return
+     */
+    @GetMapping(value = "/smsSubTask/{subid}")
+    public Map<String, Object> smsSubTask(@PathVariable("subid") Long subid) {
+        return serviceSubtaskService.smsSubTask(subid);
+    }
+
 
     @PostMapping("/test")
     public void test() {
         ryTask.dealOutHospInfo();
+    }
+
+    @PostMapping("/compensateTasktest")
+    public void compensateTasktest(@RequestParam("subId") Long subId) {
+        ryTask.compensateTaskTest(subId);
+    }
+
+    @PostMapping("/longTaskSendtest")
+    public void longTaskSendtest(@RequestParam("subId") Long subId) {
+        ryTask.longTaskSendTest(subId);
     }
 
     @PostMapping("/syncMedInhospForShiyi")
@@ -888,4 +915,10 @@
     public void syncMedOperForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
         collectHISService.syncOper(startTime, endTime);
     }
+
+    @PostMapping("/qwenLLMTest")
+    public int qwenLLMTest(@RequestParam("voiceText") String questionText, @RequestParam("voiceText") String voiceText, @RequestParam("value") String value, @RequestParam("regexText") String regexText) {
+        int result = ryTask.qwenLLMTest(questionText, voiceText, value, regexText);
+        return result;
+    }
 }

--
Gitblit v1.9.3