From e1b933c0c344494afe86bae9162dca9bdc34fd56 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 22 七月 2026 17:04:14 +0800
Subject: [PATCH] 【丽水】扫码生成外链

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |   81 +++++++++++++++++++++++++++++++---------
 1 files changed, 62 insertions(+), 19 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 2954bb2..0844150 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,11 +1,7 @@
 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;
 import com.ruoyi.common.annotation.AddOrgId;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.HttpStatus;
@@ -16,9 +12,7 @@
 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;
@@ -27,11 +21,8 @@
 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;
@@ -53,11 +44,11 @@
 
 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;
+
+import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;
 
 /**
  * 鍗曚竴浠诲姟锛堥殢璁匡級Controller
@@ -99,6 +90,12 @@
     @Value("${spring.profiles.active}")
     private String active;
 
+    @Value("${localIP}")
+    private String localIP;
+
+    @Value("${req_path}")
+    private String req_path;
+
     @Value("${isAdmin}")
     private List<Long> isAdmin;
 
@@ -111,7 +108,6 @@
     @ApiOperation("鏌ヨ鎮h�呴殢璁夸俊鎭�")
     @PostMapping("/patItem")
     public Map<String, Object> patItem(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
-
         serviceSubtaskVO.setPageNum(PageUtils.getOffset(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize()));
         List<ServiceSubtaskRes> serviceSubtaskList = null;
         LoginUser loginUser = getLoginUser();
@@ -189,6 +185,15 @@
         if (ObjectUtils.isNotEmpty(loginUser) && ObjectUtils.isNotEmpty(loginUser.getUser())) {
             userId = loginUser.getUser().getUserId();
         }
+        if (serviceSubtaskEntity.getSendstateView() != null) {
+            //            1锛氬緟闅忚锛�1 琚鍙栥��2 寰呭彂閫併��3 宸插彂閫併��5 鍙戦�佸け璐ャ��7銆佽秴鏃讹級锛�2锛氬凡瀹屾垚锛� 6 宸插畬鎴愶級銆�3锛氭棤闇�闅忚锛�4 涓嶆墽琛岋級
+            if (serviceSubtaskEntity.getSendstateView() == 1)
+                serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 5L, 7L)));
+            if (serviceSubtaskEntity.getSendstateView() == 2)
+                serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(6L)));
+            if (serviceSubtaskEntity.getSendstateView() == 3)
+                serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(4L)));
+        }
         if (ObjectUtils.isNotEmpty(userId)) {
             Map<String, Object> redisMap = redisCache.getCacheObject(userId + "patItemCount");
             Boolean redisFlag = false;
@@ -258,14 +263,13 @@
 
             //鑾峰彇serviceSubtaskList涓殑鎵�鏈塼askid
             List<Long> taskIds = serviceSubtaskList.stream().map(ServiceSubtaskRes::getTaskid).filter(ObjectUtils::isNotEmpty).distinct().collect(Collectors.toList());
-            serviceSubtaskDetailRatioExports = serviceSubtaskService.statQuestionOption(taskIds);
+            serviceSubtaskDetailRatioExports = serviceSubtaskService.statQuestionOption(taskIds, serviceSubtaskVO.getStartOutHospTime(), serviceSubtaskVO.getEndOutHospTime());
 
         }
 
 
         ExcelUtil<ServiceSubtaskExport> util = new ExcelUtil<ServiceSubtaskExport>(ServiceSubtaskExport.class);
-        util.exportExcelTwoSheet(response, serviceSubtaskExports, "鎮h�呴殢璁夸俊鎭〃鍗�",
-                serviceSubtaskDetailRatioExports, "闂璇︽儏鍗犳瘮", ServiceSubtaskDetailRatioExport.class);
+        util.exportExcelTwoSheet(response, serviceSubtaskExports, "鎮h�呴殢璁夸俊鎭〃鍗�", serviceSubtaskDetailRatioExports, "闂璇︽儏鍗犳瘮", ServiceSubtaskDetailRatioExport.class);
     }
 
     /**
@@ -573,15 +577,29 @@
                 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());
+                        List<String> leavehospitaldistrictcodes = null;
+                        SysUserDept sysUserWard = new SysUserDept();
+                        sysUserWard.setUserId(user.getUserId());
+                        sysUserWard.setOrgid(user.getOrgid());
+                        sysUserWard.setDeptType("2");
+                        List<SysUserDept> wardList = sysUserDeptService.selectSysUserDeptList(sysUserWard);
+                        if(CollectionUtils.isNotEmpty(wardList)) {
+                            leavehospitaldistrictcodes = wardList.stream().map(SysUserDept::getDeptCode).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());
+                        List<String> deptCodes = null;
+                        SysUserDept sysUserDept = new SysUserDept();
+                        sysUserDept.setUserId(user.getUserId());
+                        sysUserDept.setOrgid(user.getOrgid());
+                        sysUserDept.setDeptType("1");
+                        List<SysUserDept> deptList = sysUserDeptService.selectSysUserDeptList(sysUserDept);
+                        if(CollectionUtils.isNotEmpty(deptList)){
+                            deptCodes = deptList.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList());
+                        }
                         serviceSubtaskCountReq.setDeptcodes(deptCodes);
                     }
                 }
@@ -904,6 +922,29 @@
         return serviceSubtaskService.smsSubTask(subid);
     }
 
+    /**
+     * 璺宠浆涓棿椤�
+     *
+     * @param taskId
+     * @return
+     */
+    @PostMapping(value = "/goSfRelay")
+    public AjaxResult goSfRelay(@RequestParam("taskId") Long taskId) {
+        String url = localIP + ":" + req_path + "/SfRelay?taskid=" + taskId;
+        return AjaxResult.success(url);
+    }
+
+    /**
+     * 鎵爜鐢熸垚瀛愪换鍔�
+     *
+     * @param serviceTask
+     * @return
+     */
+    @PostMapping(value = "/scanGenerateSubtask")
+    public AjaxResult scanGenerateSubtask(@RequestBody ServiceTask serviceTask) {
+        return AjaxResult.success(serviceSubtaskService.scanGenerateSubtask(serviceTask));
+    }
+
 
     @PostMapping("/test")
     public void test() {
@@ -935,4 +976,6 @@
         int result = ryTask.qwenLLMTest(questionText, voiceText, value, regexText);
         return result;
     }
+
+
 }

--
Gitblit v1.9.3