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

---
 smartor/src/main/java/com/smartor/domain/PatArchive.java                                 |    4 
 smartor/src/main/java/com/smartor/service/IPatMedInhospService.java                      |    2 
 smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java             |    3 
 smartor/src/main/java/com/smartor/domain/ServiceSubtask.java                             |    2 
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java              |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |   33 ++++++++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java            |  118 +++++++++++++++++++++++++++++
 smartor/src/main/java/com/smartor/service/IPatMedOperationService.java                   |    5 +
 smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java                     |    6 
 smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java                    |    2 
 smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java           |    3 
 11 files changed, 172 insertions(+), 9 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 73b9e8b..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
@@ -48,6 +48,8 @@
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
+import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;
+
 /**
  * 鍗曚竴浠诲姟锛堥殢璁匡級Controller
  *
@@ -87,6 +89,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;
@@ -914,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() {
@@ -945,4 +976,6 @@
         int result = ryTask.qwenLLMTest(questionText, voiceText, value, regexText);
         return result;
     }
+
+
 }
diff --git a/smartor/src/main/java/com/smartor/domain/PatArchive.java b/smartor/src/main/java/com/smartor/domain/PatArchive.java
index 5733dd8..51e63c5 100644
--- a/smartor/src/main/java/com/smartor/domain/PatArchive.java
+++ b/smartor/src/main/java/com/smartor/domain/PatArchive.java
@@ -336,8 +336,8 @@
     /**
      * 浼氬憳灞炴��:0闈炰細鍛橈紝1涓�鑸細鍛樸��2閲嶈浼氬憳
      */
-    @ApiModelProperty("浼氬憳灞炴��:0闈炰細鍛橈紝1涓�鑸細鍛樸��2閲嶈浼氬憳")
-    @Excel(name = " 浼氬憳灞炴��:0闈炰細鍛橈紝1涓�鑸細鍛樸��2閲嶈浼氬憳 ")
+    @ApiModelProperty("浼氬憳灞炴��:0闈炰細鍛橈紝1涓�鑸細鍛樸��2閲嶈浼氬憳 -1铏氭嫙鎮h��")
+    @Excel(name = " 浼氬憳灞炴��:0闈炰細鍛橈紝1涓�鑸細鍛樸��2閲嶈浼氬憳 -1铏氭嫙鎮h��")
     private String viptype;
 
     @ApiModelProperty("鍑洪櫌鐥呭尯鍚嶇О")
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
index e4d37cf..dcee2ce 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -451,7 +451,7 @@
      * 灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌锛�
      */
     @Excel(name = "  灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌锛�")
-    @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌 3.涓撶梾 4.澶栭儴瀵煎叆 5鎬ヨ瘖銆�6浣忛櫌銆�7浣撴锛�")
+    @ApiModelProperty(value = "灏辫瘖绫诲瀷锛�1闂ㄨ瘖  2鍑洪櫌 3.涓撶梾 4.澶栭儴瀵煎叆 5鎬ヨ瘖銆�6浣忛櫌銆�7浣撴銆�8鎵爜锛�")
     private String hospType;
 
 
diff --git a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
index 774c5bc..1bfc516 100644
--- a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
+++ b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -123,4 +123,6 @@
      * @return 缁撴灉
      */
     public void addOperationSubTask(String config);
+
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type);
 }
diff --git a/smartor/src/main/java/com/smartor/service/IPatMedOperationService.java b/smartor/src/main/java/com/smartor/service/IPatMedOperationService.java
index ea0f8cb..6a4ab83 100644
--- a/smartor/src/main/java/com/smartor/service/IPatMedOperationService.java
+++ b/smartor/src/main/java/com/smartor/service/IPatMedOperationService.java
@@ -1,6 +1,9 @@
 package com.smartor.service;
 
+import com.smartor.domain.PatArchive;
 import com.smartor.domain.PatMedOperation;
+import com.smartor.domain.ServiceSubtask;
+import com.smartor.domain.ServiceTask;
 
 import java.util.List;
 
@@ -65,4 +68,6 @@
      * @return
      */
     public int dealOperationInfo();
+
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive);
 }
diff --git a/smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java b/smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java
index 2c9bc1a..2535163 100644
--- a/smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java
+++ b/smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java
@@ -3,9 +3,7 @@
 import java.util.List;
 
 import com.ruoyi.common.core.page.TableDataInfo;
-import com.smartor.domain.PatMedOuthosp;
-import com.smartor.domain.PatMedReq;
-import com.smartor.domain.PatMedRes;
+import com.smartor.domain.*;
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
@@ -69,4 +67,6 @@
     public PatMedOuthosp getDeptCodeByPatId(PatMedOuthosp patMedOuthosp);
 
     public Integer dealOutpatientInfo();
+
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive);
 }
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index 7239987..2134e3d 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -198,4 +198,6 @@
      * @return
      */
     public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startOutHospTime, Date endOutHospTime);
+
+    public String scanGenerateSubtask(ServiceTask serviceTaskVo);
 }
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 a5e49ee..84eab66 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -935,7 +935,8 @@
 
 
     //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
+    @Override
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
         //澧炲姞serviceTask鍒ょ┖
 //        if(Objects.isNull(serviceTask)){
 //            return null;
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java
index 298bf62..d16c37d 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java
@@ -185,7 +185,8 @@
     }
 
     //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive) {
+    @Override
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive) {
         ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
         serviceSubtask.setTaskid(serviceTask.getTaskid());
         if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
index 97496b2..bf908b7 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -475,7 +475,8 @@
     }
 
     //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
+    @Override
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
         ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
         serviceSubtask.setTaskid(serviceTask.getTaskid());
         if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
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 22812af..46958c5 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -6,6 +6,7 @@
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.dx.MessageSend;
@@ -131,6 +132,9 @@
 
     @Autowired
     private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper;
+
+    @Autowired
+    private IPatMedInhospService patMedInhospService;
 
     @Value("${pri_key}")
     private String pri_key;
@@ -4765,4 +4769,118 @@
         }
     }
 
+    public String scanGenerateSubtask(ServiceTask serviceTaskVo){
+        String content = "";
+        String ip = localIP;
+        ServiceTask serviceTask = new ServiceTask();
+        serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceTaskVo.getTaskid());
+        if(ObjectUtils.isNotEmpty(serviceTask)){
+            try {
+                ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+                if(ObjectUtils.isNotEmpty(serviceTaskVo.getDeptcode())){
+                    serviceTaskdept.setDeptType("1");
+                    serviceTaskdept.setDeptCode(serviceTask.getDeptcode());
+                }
+                if(ObjectUtils.isNotEmpty(serviceTaskVo.getLeavehospitaldistrictcode())){
+                    serviceTaskdept.setDeptType("2");
+                    serviceTaskdept.setDeptCode(serviceTaskVo.getLeavehospitaldistrictcode());
+                }
+                serviceTaskdept.setServiceType(serviceTask.getServiceType());
+                serviceTaskdept.setOrgid(serviceTask.getOrgid());
+                serviceTaskdept.setTaskId(serviceTaskVo.getTaskid());
+                List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(serviceTaskdept);
+
+                if (!CollectionUtils.isEmpty(serviceTaskdepts)) {
+                    ServiceTaskdept serviceTaskdept1 = serviceTaskdepts.get(0);
+                    PatArchive patArchiveVo = new PatArchive();
+                    patArchiveVo.setViptype("-1");
+                    List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(patArchiveVo);
+                    PatArchive patArchive = new PatArchive();
+                    if(!ObjectUtils.isNotEmpty(patArchives)){
+                        PatArchive newPatArchive = new PatArchive();
+                        newPatArchive.setPatientno("00000000");
+                        newPatArchive.setName("铏氭嫙鎮h��");
+                        patArchiveMapper.insertPatArchiveSingle(newPatArchive);
+                        patArchive = newPatArchive;
+                    }else {
+                        patArchive = patArchives.get(0);
+                    }
+                    //灏佽serviceSubtask
+                    ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patArchive);
+                    int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+                    //鏍规嵁鐢熸垚澶栭摼
+                    if (ObjectUtils.isNotEmpty(serviceSubtask.getTaskid()) &&
+                            ObjectUtils.isNotEmpty(serviceSubtask.getPatid())
+                            && ObjectUtils.isNotEmpty(serviceSubtask.getId())) {
+                        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+                        String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key);
+                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+                        String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
+                        ServiceOutPath serviceOutPath = new ServiceOutPath();
+                        serviceOutPath.setParam1(taskId);
+                        serviceOutPath.setParam2(patid);
+                        serviceOutPath.setParam3(serviceTask.getTaskName());
+                        serviceOutPath.setParam6(subId);
+                        serviceOutPath.setCreateTime(new Date());
+                        serviceOutPath.setOrgid(serviceTask.getOrgid());
+                        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+                        String format = String.format("%03X", serviceOutPath.getId());
+                        serviceOutPath.setRadix(format);
+                        serviceOutPath.setUpdateTime(new Date());
+                        String url = ip + ":" + req_path + "/wt?p=" + format;
+                        content = url;
+                        serviceOutPath.setUrl(url);
+                        iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("銆愭壂鐮佺敓鎴愪换鍔°�戝鐞嗗紓甯革細{}", e.getMessage());
+            }
+        }
+        return content;
+    }
+
+    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatArchive patArchive) {
+        ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
+        serviceSubtask.setTaskid(serviceTask.getTaskid());
+        if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
+            serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
+//        serviceSubtask.setNurseId(patMedInhosp1.getNurseId());
+//        serviceSubtask.setNurseName(patMedInhosp1.getNurseName());
+//        serviceSubtask.setDrcode(patMedInhosp1.getDrcode());
+//        serviceSubtask.setDrname(patMedInhosp1.getDrname());
+        serviceSubtask.setDeptcode(serviceTask.getDeptcode());
+        serviceSubtask.setDeptname(serviceTask.getDeptname());
+        serviceSubtask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode());
+        serviceSubtask.setLeavehospitaldistrictname(serviceTask.getLeavehospitaldistrictname());
+        serviceSubtask.setTemplateid(serviceTask.getTemplateid());
+        serviceSubtask.setTemplatename(serviceTask.getTemplatename());
+        serviceSubtask.setPatid(patArchive.getId());
+        serviceSubtask.setSendname(patArchive.getName());
+        serviceSubtask.setSfzh(patArchive.getIdcardno());
+        serviceSubtask.setPhone(patArchive.getTelcode());
+        if (StringUtils.isBlank(patArchive.getTelcode())) serviceSubtask.setPhone(patArchive.getRelativetelcode());
+        serviceSubtask.setSex(patArchive.getSex());
+        serviceSubtask.setAge(patArchive.getAge());
+        serviceSubtask.setSendstate(3L);
+//        serviceSubtask.setManagementDoctor(patMedInhosp1.getManagementDoctor());
+//        serviceSubtask.setManagementDoctorCode(patMedInhosp1.getManagementDoctorCode());
+        serviceSubtask.setServiceType(serviceTask.getServiceType());
+        serviceSubtask.setPreachform(serviceTask.getPreachform());
+        serviceSubtask.setHospType("8");
+        serviceSubtask.setCreateTime(new Date());
+        serviceSubtask.setUpdateTime(new Date());
+//        serviceSubtask.setCreateBy(patMedInhosp1.getNurseName());
+//        serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode());
+//        serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname());
+        serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
+        serviceSubtask.setUpdateTime(new Date());
+        serviceTask.setSendDay(1L);
+        Date newDate = new Date();
+        serviceSubtask.setLongSendTime(newDate);
+        serviceSubtask.setVisitTime(newDate);
+        return serviceSubtask;
+    }
 }

--
Gitblit v1.9.3