From 25a0ba7b2706db3c5ee546da3e0e7c909777b890 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 29 七月 2026 15:37:32 +0800
Subject: [PATCH] 1,患者过滤状态修改(之前只支持发送之前的过滤,现在支持发送之后的过滤,如果任务发送后,外链不能再打开) 2.在出入院表新增入院申请单字段 3.采集入院数据时,同时要采集importanceFlagCode    emergencyLevelCode 4.外链的发送,也要查询子任务状态,如果是不执行,也不能再发送

---
 smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java                          |  543 ++++++++++++++++++++++++++++++++++++
 smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java |   91 ++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java     |   22 +
 smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java                      |    3 
 smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java                  |   20 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java               |   26 +
 smartor/src/main/java/com/smartor/service/IPatMedInhospService.java                        |    3 
 smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java                               |   39 ++
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java                |   23 +
 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml                           |   54 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java   |   13 
 smartor/src/main/java/com/smartor/domain/PatMedInhosp.java                                 |   32 ++
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java              |    3 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java        |    8 
 14 files changed, 843 insertions(+), 37 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
index 6e53314..6a16085 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -12,12 +12,10 @@
 import com.ruoyi.common.utils.sms.smsUtils;
 import com.smartor.common.MtSubmitSmUtil;
 import com.smartor.common.ShiyiSmsUtil;
-import com.smartor.domain.ServiceOutPath;
-import com.smartor.domain.ShiyiSmsRequest;
-import com.smartor.domain.ShiyiSmsResponse;
-import com.smartor.domain.smsVO;
+import com.smartor.domain.*;
 import com.smartor.mapper.UtilsMapper;
 import com.smartor.service.IServiceOutPathService;
+import com.smartor.service.IServiceSubtaskService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -71,6 +69,8 @@
 
     @Autowired
     private IServiceOutPathService iServiceOutPathService;
+    @Autowired
+    private IServiceSubtaskService iServiceSubtaskService;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -106,6 +106,12 @@
     @PostMapping("/send")
     public AjaxResult sendAsk(@RequestBody smsVO vo) throws UnsupportedEncodingException {
         String content = "";
+        if (StringUtils.isNotEmpty(vo.getSubId())) {
+            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+            if (serviceSubtask.getSendstate() == 4L) content = "璇ヤ换鍔′笉鎵ц";
+            return AjaxResult.error(content);
+        }
+
         if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
             RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
             String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
@@ -193,8 +199,13 @@
      */
     @ApiOperation("寰俊鍙戦��")
     @PostMapping("/sendChat")
-    public AjaxResult sendChat(@RequestBody smsVO vo) throws UnsupportedEncodingException {
+    public AjaxResult sendChat(@RequestBody smsVO vo) {
         String sendMsg = "";
+        if (StringUtils.isNotEmpty(vo.getSubId())) {
+            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+            if (serviceSubtask.getSendstate() == 4L) sendMsg = "璇ヤ换鍔′笉鎵ц";
+            return AjaxResult.error(sendMsg);
+        }
         if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
             RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
             String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
@@ -246,6 +257,11 @@
             serviceOutPath.setUrl(url);
             iServiceOutPathService.insertServiceOutPath(serviceOutPath);
         }
+        if (StringUtils.isNotEmpty(vo.getSubId())) {
+            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
+            if (serviceSubtask.getSendstate() == 4L) content = "璇ヤ换鍔′笉鎵ц";
+        }
+
         return AjaxResult.success(content);
     }
 
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 49f7537..e29195d 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
@@ -12,6 +12,7 @@
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.service.ISysConfigService;
+import com.smartor.domain.DTO.PatMedInhospDTO;
 import com.smartor.domain.PatMedInhosp;
 import com.smartor.domain.PatMedInhospVO;
 import com.smartor.domain.PatMedReq;
@@ -79,6 +80,27 @@
     }
 
     /**
+     * 鏌ヨ鎮h�呬綇闄㈣褰曢�氳繃鍏ラ櫌鐢宠鍗曚俊鎭�
+     */
+    @ApiOperation("鏌ヨ鎮h�呬綇闄㈣褰曢�氳繃鍏ラ櫌鐢宠鍗曚俊鎭�")
+    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/selectPatMedInhospByApplication")
+    public TableDataInfo selectPatMedInhospByApplication(@RequestBody PatMedInhosp patMedInhosp) {
+        PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
+        SysUser user = getLoginUser().getUser();
+        patMedInhosp.setOrgid(user.getOrgid());
+        List<PatMedInhospDTO> list = patMedInhospService.selectPatMedInhospByApplication(patMedInhosp);
+        long count = PageUtils.count(new ISelect() {
+            @Override
+            public void doSelect() {
+                patMedInhospService.selectPatMedInhospByApplication(patMedInhosp);
+            }
+        });
+        return getDataTable2(count, list);
+    }
+
+    /**
      * 鍑洪櫌銆侀棬璇婁汉鏁板拰闅忚閲忕粺璁★紙鍛紝鏈堬紝骞达級
      */
     @ApiOperation("鍑洪櫌銆侀棬璇婁汉鏁板拰闅忚閲忕粺璁★紙鍛紝鏈堬紝骞达級")
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 9b7d92d..4e18fcc 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
@@ -952,12 +952,6 @@
         return AjaxResult.success(serviceSubtaskService.scanGenerateSubtask(serviceTask));
     }
 
-
-    @PostMapping("/test")
-    public void test() {
-        ryTask.dealOutHospInfo();
-    }
-
     @PostMapping("/syncMedInhospForShiyi")
     public void syncMedInhospForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
         collectHISService.syncMedInhosp(startTime, endTime);
@@ -967,12 +961,5 @@
     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;
-    }
-
 
 }
diff --git a/smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java b/smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java
new file mode 100644
index 0000000..3277e05
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java
@@ -0,0 +1,543 @@
+package com.smartor.domain.DTO;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鎮h�呬綇闄㈣褰曞璞¤繑鍙� pat_med_inhosp
+ *
+ * @author smartor
+ * @date 2023-03-04
+ */
+@ApiModel(value = "PatMedInhospDTO", description = "鎮h�呬綇闄㈣褰曞璞¤繑鍙�")
+@Data
+public class PatMedInhospDTO extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鑷ID
+     */
+    @ApiModelProperty(value = "鑷ID")
+    private Long inhospid;
+
+    /**
+     * 鎬у埆
+     */
+    @ApiModelProperty(value = "鎬у埆 1鐢�  2濂�")
+    private Long sex;
+
+    /**
+     * 浣忛櫌鍙�
+     */
+    @ApiModelProperty(value = "浣忛櫌鍙�")
+    private String inhospno;
+
+    /**
+     * 娴佹按鍙�
+     */
+    @ApiModelProperty(value = "娴佹按鍙�")
+    private String serialnum;
+
+    /**
+     * 鎶ゅ+ID
+     */
+    @ApiModelProperty(value = "鎶ゅ+ID")
+    private String nurseId;
+
+    /**
+     * 鎶ゅ+濮撳悕
+     */
+    @ApiModelProperty(value = "鎶ゅ+濮撳悕")
+    private String nurseName;
+
+    /**
+     * 鍖婚櫌鍚嶇О
+     */
+    @ApiModelProperty(value = "鍖婚櫌鍚嶇О")
+    @Excel(name = " 鍖婚櫌鍚嶇О ")
+    private String hospitalname;
+
+    /**
+     * 鍖婚櫌缂栧彿
+     */
+    @ApiModelProperty(value = "鍖婚櫌缂栧彿")
+    private String hospitalcode;
+
+    /**
+     * 闄㈠尯缂栧彿
+     */
+    @ApiModelProperty(value = "闄㈠尯缂栧彿")
+    private String hospitaldistrictcode;
+
+    /**
+     * 闄㈠尯缂栧彿闆嗗悎
+     */
+    @ApiModelProperty(value = "闄㈠尯缂栧彿闆嗗悎")
+    private List<String> hospitaldistrictcodeList;
+
+    /**
+     * 闄㈠尯鍚嶇О
+     */
+    @ApiModelProperty(value = "闄㈠尯鍚嶇О")
+    @Excel(name = " 闄㈠尯鍚嶇О ")
+    private String hospitaldistrictname;
+
+    /**
+     * 鍏ラ櫌璇婃柇ICD鍊�
+     */
+    @ApiModelProperty(value = "鍏ラ櫌璇婃柇ICD鍊�")
+    private String icd10code;
+
+    /**
+     * 鍏ラ櫌璇婃柇鍚嶇О
+     */
+    @ApiModelProperty(value = "鍏ラ櫌璇婃柇鍚嶇О")
+    private String diagname;
+
+    /**
+     * 鍏ラ櫌鏃堕棿
+     */
+    @ApiModelProperty(value = "鍏ラ櫌鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 鍏ラ櫌鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date starttime;
+
+    /**
+     * 鍑洪櫌鏃堕棿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = " 鍑洪櫌鏃堕棿 ", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endtime;
+
+    /**
+     * 鍏ラ櫌绉戝浠g爜
+     */
+    @ApiModelProperty(value = "鍏ラ櫌绉戝浠g爜")
+    private String deptcode;
+    /**
+     * 鍏ラ櫌绉戝浠g爜
+     */
+    @ApiModelProperty(value = "鍏ラ櫌绉戝浠g爜闆嗗悎")
+    private List<String> deptcodeList;
+
+    /**
+     * 鍏ラ櫌绉戝鍚嶇О
+     */
+    @ApiModelProperty(value = "鍏ラ櫌绉戝鍚嶇О")
+    private String deptname;
+
+    /**
+     * 鎴块棿鍙�
+     */
+    @ApiModelProperty(value = "鎴块棿鍙�")
+    private String roomno;
+
+    /**
+     * 搴婁綅鍙�
+     */
+    @ApiModelProperty(value = "搴婁綅鍙�")
+    @Excel(name = " 搴婁綅鍙� ")
+    private String bedNo;
+
+    /**
+     * 鏈烘瀯ID
+     */
+    @ApiModelProperty(value = "鏈烘瀯ID")
+    @Excel(name = " 鏈烘瀯ID ")
+    private String orgid;
+
+    /**
+     * 鍒犻櫎鏍囪
+     */
+    @ApiModelProperty(value = "鍒犻櫎鏍囪")
+    private String delFlag;
+
+    /**
+     * 涓婁紶鏍囪
+     */
+    @ApiModelProperty(value = "涓婁紶鏍囪")
+    private Long isupload;
+
+    /**
+     * 涓婁紶鏃堕棿
+     */
+    @ApiModelProperty(value = "涓婁紶鏃堕棿")
+    private Date uploadTime;
+
+    /**
+     * 妗fID
+     */
+    @ApiModelProperty(value = "妗fID")
+    private Long patid;
+
+    /**
+     * 鍑洪櫌璇婃柇
+     */
+    @ApiModelProperty(value = "鍑洪櫌璇婃柇")
+    @Excel(name = " 鍑洪櫌璇婃柇 ")
+    private String leavediagname;
+
+    /**
+     * 鍑洪櫌璇婃柇ICD鍊�
+     */
+    @ApiModelProperty(value = "鍑洪櫌璇婃柇ICD鍊�")
+    private String leaveicd10code;
+
+    /**
+     * 鍖荤敓宸ュ彿
+     */
+    @ApiModelProperty(value = "鍖荤敓宸ュ彿")
+    private String drcode;
+
+    /**
+     * 鍖荤敓鍚嶇О
+     */
+    @ApiModelProperty(value = "鍖荤敓鍚嶇О")
+    @Excel(name = " 鍖荤敓鍚嶇О ")
+    private String drname;
+
+    /**
+     * 鏄惁鐢熸垚鏂规鐘舵��;0棰勫叆闄� 1鐢熸垚鍏ラ櫌 2鐢熸垚鍑洪櫌 9鏃犲尮閰嶆柟妗�   3鐢熸垚鍏ラ櫌鎾ら攢   4鐢熸垚鍑洪櫌鎾ら攢
+     */
+    @ApiModelProperty(value = "鏄惁鐢熸垚鏂规鐘舵��;0棰勫叆闄� 1鐢熸垚鍏ラ櫌 2鐢熸垚鍑洪櫌 9鏃犲尮閰嶆柟妗�   3鐢熸垚鍏ラ櫌鎾ら攢   4鐢熸垚鍑洪櫌鎾ら攢")
+    private Long schemestatus;
+
+    /**
+     * 鏄惁鐢熸垚閫氱敤鏂规鐘舵��;0鏈敓鎴� 1鐢熸垚 9鏃犲尮閰嶆柟妗�
+     */
+    @ApiModelProperty(value = "鏄惁鐢熸垚閫氱敤鏂规鐘舵��;0鏈敓鎴� 1鐢熸垚 9鏃犲尮閰嶆柟妗�")
+    private Long generalschemestatus;
+
+    /**
+     * 鍑洪櫌绉戝浠g爜
+     */
+    @ApiModelProperty(value = "鍑洪櫌绉戝浠g爜")
+    private String leaveldeptcode;
+
+    /**
+     * 鍑洪櫌绉戝鍚嶇О
+     */
+    @ApiModelProperty(value = "鍑洪櫌绉戝鍚嶇О")
+    @Excel(name = " 鍑洪櫌绉戝鍚嶇О ")
+    private String leaveldeptname;
+
+    /**
+     * 鐥呭尯ID
+     */
+    @ApiModelProperty(value = "鐥呭尯ID")
+    private String hospitaldistrictid;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿")
+    private String leavehospitaldistrictcode;
+
+    /**
+     * 鍑洪櫌鐥呭尯鍚嶇О
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯鍚嶇О")
+    @Excel(name = " 鍑洪櫌鐥呭尯鍚嶇О ")
+    private String leavehospitaldistrictname;
+
+    /**
+     * 鍑洪櫌鐥呭尯ID
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯ID")
+    private String leavehospitaldistrictid;
+
+    /**
+     * 鍏ラ櫌绉戝ID
+     */
+    @ApiModelProperty(value = "鍏ラ櫌绉戝ID")
+    private String deptid;
+
+    /**
+     * 鍑洪櫌绉戝ID
+     */
+    @ApiModelProperty(value = "鍑洪櫌绉戝ID")
+    private String leaveldeptid;
+
+    /**
+     * 鏂规鐘舵�佹搷浣滄椂闂�
+     */
+    @ApiModelProperty(value = "鏂规鐘舵�佹搷浣滄椂闂�")
+    private Date schemetime;
+
+    /**
+     * 鎮h�呭鍚�
+     */
+    @ApiModelProperty(value = "鎮h�呭鍚�")
+    private String patname;
+
+    /**
+     * 鎮h�呯紪鍙�
+     */
+    @ApiModelProperty(value = "鎮h�呯紪鍙�")
+    private String patno;
+
+    /**
+     * 浣忛櫌鏍囪瘑锛� 0锛氬湪闄�  1锛氬嚭闄�    2锛氳浆绉�
+     */
+    @ApiModelProperty(value = "浣忛櫌鏍囪瘑锛� 0锛氬湪闄�  1锛氬嚭闄�    2锛氳浆绉�  3寰呭叆闄�")
+    private String inhospstate;
+
+    /**
+     * 绉戝闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String deptcheckFlag;
+    /**
+     * 鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String wardcheckFlag;
+    /**
+     * 鐤剧梾闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鐤剧梾闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String diagcheckFlag;
+
+    /**
+     * 鍏ラ櫌绉戝闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鍏ラ櫌绉戝闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String inDeptcheckFlag;
+
+    /**
+     * 鍏ラ櫌鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊
+     */
+    @ApiModelProperty(value = "鍏ラ櫌鐥呭尯闀挎湡浠诲姟锛屾槸鍚﹀鐞嗭細0鏈鐞�   1澶勭悊鎴愬姛    2澶勭悊澶辫触 ")
+    private String inWardcheckFlag;
+
+    /**
+     * 骞撮緞
+     */
+    @ApiModelProperty(value = "骞撮緞")
+    private String age;
+
+    /**
+     * 鎵嬫満鍙�
+     */
+    @ApiModelProperty(value = "鎵嬫満鍙�")
+    private String telcode;
+
+    /**
+     * 闀挎湡浠诲姟鍘熷洜
+     */
+    @ApiModelProperty(value = "闀挎湡浠诲姟鍘熷洜")
+    private String longTaskReason;
+
+
+    /**
+     * pageNum
+     */
+    @ApiModelProperty("pageNum")
+    private Integer pageNum;
+
+    /**
+     * pageSize
+     */
+    @ApiModelProperty("pageSize")
+    private Integer pageSize;
+
+    /**
+     * pageNum
+     */
+    @ApiModelProperty("pn")
+    private Integer pn;
+
+    /**
+     * pageSize
+     */
+    @ApiModelProperty("ps")
+    private Integer ps;
+    /**
+     * 鍑洪櫌鏂瑰紡搴忓彿
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡搴忓彿")
+    @Excel(name = "鍑洪櫌鏂瑰紡搴忓彿")
+    private String outWayId;
+
+    /**
+     * 鍑洪櫌鏂瑰紡鍚嶇О
+     */
+    @ApiModelProperty("鍑洪櫌鏂瑰紡鍚嶇О")
+    @Excel(name = "鍑洪櫌鏂瑰紡鍚嶇О")
+    private String outWayName;
+    /**
+     * 鍑哄叆闄㈡爣璇�
+     */
+    @ApiModelProperty("鍑哄叆闄㈡爣璇嗭細0鍏ラ櫌  1鍑洪櫌 2 杞  3 棰勫叆闄�")
+    private Integer cry;
+
+    /**
+     * 鍑洪櫌鐥呭尯缂栧彿
+     */
+    @ApiModelProperty(value = "鍑洪櫌鐥呭尯缂栧彿闆嗗悎")
+    private List<String> leavehospitaldistrictcodes;
+
+    /**
+     * 鍑洪櫌绉戝浠g爜闆嗗悎
+     */
+    @ApiModelProperty(value = "鍑洪櫌绉戝浠g爜闆嗗悎")
+    private List<String> leaveldeptcodes;
+
+    /**
+     * 寮�濮嬪嚭闄㈡棩鏈�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "寮�濮嬪嚭闄㈡棩鏈�")
+    private Date startOutHospTime;
+
+    /**
+     * 缁撴潫鍑洪櫌鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "缁撴潫鍑洪櫌鏃ユ湡")
+    private Date endOutHospTime;
+
+    /**
+     * 寮�濮嬪叆闄㈡棩鏈�
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "寮�濮嬪叆闄㈡棩鏈�")
+    private Date startInHospTime;
+
+    /**
+     * 缁撴潫鍏ラ櫌鏃ユ湡
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "缁撴潫鍏ラ櫌鏃ユ湡")
+    private Date endInHospTime;
+
+    @ApiModelProperty(value = "鏄惁澶栭儴瀵煎叆锛�0涓嶆槸    1鏄�")
+    private Integer outImport = 0;
+
+
+    @ApiModelProperty(value = "鏌ヨ绫诲瀷锛�1鍏ㄩ儴   2鍑洪櫌   3鍏ラ櫌   4闂ㄨ瘖   5澶栭儴鎮h�� ")
+    private Integer queryType = 1;
+
+    @ApiModelProperty(value = "鏈烘瀯ID")
+    private String guid;
+
+    @ApiModelProperty(value = "鎿嶄綔浜�")
+    private String operator;
+
+    @ApiModelProperty(value = "鎿嶄綔浜篒D")
+    private String operatorId;
+
+    @ApiModelProperty(value = "鏍囩鍚�")
+    private String tagname;
+
+    @ApiModelProperty(value = "闅忚鏍囪瘑锛�0涓嶉渶瑕侊紝1瑕�")
+    private String fuflag;
+
+    @ApiModelProperty(value = "闅忚鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date fudate;
+
+    @ApiModelProperty(value = "闅忚鍛ㄦ湡寤鸿")
+    private String fuperiod;
+
+    @ApiModelProperty(value = "闅忚绫诲瀷缂栫爜")
+    private String futypecode;
+
+    @ApiModelProperty(value = "闅忚绫诲瀷鍚嶇О")
+    private String futypedesc;
+
+    @ApiModelProperty(value = "闅忚澶嶈瘖鎸囧")
+    private String fuadvice;
+
+    @ApiModelProperty(value = "涓撶梾闅忚寤鸿")
+    private String fuspecialadvice;
+
+    /**
+     * 璇佷欢鍙风爜
+     */
+    @ApiModelProperty("璇佷欢鍙风爜")
+    @Excel(name = " 璇佷欢鍙风爜 ")
+    private String idcardno;
+
+    /**
+     * 缁忕鍖荤敓
+     */
+    @ApiModelProperty("缁忕鍖荤敓")
+    @Excel(name = " 缁忕鍖荤敓 ")
+    private String managementDoctor;
+
+    /**
+     * 缁忕鍖荤敓
+     */
+    @ApiModelProperty("缁忕鍖荤敓")
+    @Excel(name = " 缁忕鍖荤敓 ")
+    private String managementDoctorCode;
+
+    @ApiModelProperty(value = "鏈�鍚庡紑濮嬫椂闂�")
+    private String lastStartTime;
+
+    @ApiModelProperty(value = "鏈�鍚庣粨鏉熸椂闂�")
+    private String lastEndTime;
+
+    /**
+     * 鏈烘瀯ID
+     */
+    @ApiModelProperty("闄㈠尯")
+    @Excel(name = " 闄㈠尯 ")
+    private String campusid;
+
+    /**
+     * 灏辫瘖鏉ユ簮ID
+     */
+    @ApiModelProperty("灏辫瘖鏉ユ簮ID")
+    @Excel(name = " 灏辫瘖鏉ユ簮ID ")
+    private String encounterSourceId;
+
+    /**
+     * 閲嶈鎬ф爣璁扮紪鐮�
+     * 鏋氫妇绫诲瀷锛欼mportFlagEnum
+     * FH0165.98 - 鐗圭害浜哄憳
+     * FH0165.99 - 绂讳紤浜哄憳
+     * FH0165.03 - 鏃�
+     * FH0165.02 - 鏃ラ棿璇婄枟
+     * FH0165.01 - 鏃ラ棿鎵嬫湳
+     */
+    @ApiModelProperty(value = "閲嶈鎬ф爣璁扮紪鐮�", example = "FH0165.01")
+    @Excel(name = " 閲嶈鎬ф爣璁扮紪鐮� ")
+    private String importanceFlagCode;
+
+    /**
+     * 绱ф�ョ▼搴︾紪鐮�
+     * 鏋氫妇绫诲瀷锛欵mergencyLevelEnum
+     * FH0164.01 - 鐩爣
+     * FH0164.02 - 鎬ュ嵄閲�
+     * FH0164.03 - 鎷╂湡
+     * FH0164.04 - 鍩虹
+     */
+    @ApiModelProperty(value = "绱ф�ョ▼搴︾紪鐮�", example = "FH0164.01")
+    @Excel(name = " 绱ф�ョ▼搴︾紪鐮� ")
+    private String emergencyLevelCode;
+
+    @ApiModelProperty(value = "鏄惁瀹f暀杩�")
+    @Excel(name = " 鏄惁瀹f暀瀹屾垚:0 鏈鏁� 1 宸插鏁� ")
+    private String finishFlag = "0";
+
+    /**
+     * '婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛�
+     */
+    @ApiModelProperty("'婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛�")
+    @Excel(name = " '婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛� ")
+    private String inhospMydFlag;
+}
diff --git a/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java b/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
index 8dbfa4d..0bba67d 100644
--- a/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
+++ b/smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
@@ -501,6 +501,38 @@
     private String campusid;
 
     /**
+     * 灏辫瘖鏉ユ簮ID
+     */
+    @ApiModelProperty("灏辫瘖鏉ユ簮ID")
+    @Excel(name = " 灏辫瘖鏉ユ簮ID ")
+    private String encounterSourceId;
+
+    /**
+     * 閲嶈鎬ф爣璁扮紪鐮�
+     * 鏋氫妇绫诲瀷锛欼mportFlagEnum
+     * FH0165.98 - 鐗圭害浜哄憳
+     * FH0165.99 - 绂讳紤浜哄憳
+     * FH0165.03 - 鏃�
+     * FH0165.02 - 鏃ラ棿璇婄枟
+     * FH0165.01 - 鏃ラ棿鎵嬫湳
+     */
+    @ApiModelProperty(value = "閲嶈鎬ф爣璁扮紪鐮�", example = "FH0165.01")
+    @Excel(name = " 閲嶈鎬ф爣璁扮紪鐮� ")
+    private String importanceFlagCode;
+
+    /**
+     * 绱ф�ョ▼搴︾紪鐮�
+     * 鏋氫妇绫诲瀷锛欵mergencyLevelEnum
+     * FH0164.01 - 鐩爣
+     * FH0164.02 - 鎬ュ嵄閲�
+     * FH0164.03 - 鎷╂湡
+     * FH0164.04 - 鍩虹
+     */
+    @ApiModelProperty(value = "绱ф�ョ▼搴︾紪鐮�", example = "FH0164.01")
+    @Excel(name = " 绱ф�ョ▼搴︾紪鐮� ")
+    private String emergencyLevelCode;
+
+    /**
      * '婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛�
      */
     @ApiModelProperty("'婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛�")
diff --git a/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java b/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
index 08ce3c5..0d2fa40 100644
--- a/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
+++ b/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
@@ -396,5 +396,44 @@
     @ApiModelProperty("闄㈠尯")
     @Excel(name = " 闄㈠尯 ")
     private String campusid;
+
+    /**
+     * 灏辫瘖鏉ユ簮ID
+     */
+    @ApiModelProperty("灏辫瘖鏉ユ簮ID")
+    @Excel(name = " 灏辫瘖鏉ユ簮ID ")
+    private String encounterSourceId;
+
+    /**
+     * 閲嶈鎬ф爣璁扮紪鐮�
+     * 鏋氫妇绫诲瀷锛欼mportFlagEnum
+     * FH0165.98 - 鐗圭害浜哄憳
+     * FH0165.99 - 绂讳紤浜哄憳
+     * FH0165.03 - 鏃�
+     * FH0165.02 - 鏃ラ棿璇婄枟
+     * FH0165.01 - 鏃ラ棿鎵嬫湳
+     */
+    @ApiModelProperty(value = "閲嶈鎬ф爣璁扮紪鐮�", example = "FH0165.01")
+    @Excel(name = " 閲嶈鎬ф爣璁扮紪鐮� ")
+    private String importanceFlagCode;
+
+    /**
+     * 绱ф�ョ▼搴︾紪鐮�
+     * 鏋氫妇绫诲瀷锛欵mergencyLevelEnum
+     * FH0164.01 - 鐩爣
+     * FH0164.02 - 鎬ュ嵄閲�
+     * FH0164.03 - 鎷╂湡
+     * FH0164.04 - 鍩虹
+     */
+    @ApiModelProperty(value = "绱ф�ョ▼搴︾紪鐮�", example = "FH0164.01")
+    @Excel(name = " 绱ф�ョ▼搴︾紪鐮� ")
+    private String emergencyLevelCode;
+
+    /**
+     * '婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛�
+     */
+    @ApiModelProperty("'婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛�")
+    @Excel(name = " '婊℃剰搴︽爣璇嗭細0鏈仛婊″害   1浣忛櫌婊″害搴�  2鍑洪櫌婊℃剰搴�  锛堝鏋滄棦瑕佸仛浣忛櫌锛屽張瑕佸仛鍑洪櫌锛屽垯鐢ㄢ��,鈥濆垎鍓诧紝渚嬪1,2锛� ")
+    private String inhospMydFlag;
 }
 
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java b/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java
index 9ed805b..629ae54 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java
@@ -211,6 +211,9 @@
     @ApiModelProperty(value = "鐥呭巻鏂囦欢鐘舵��")
     private Integer medicalRecordFileStatus;
 
+    @ApiModelProperty(value = "灏辫瘖鏉ユ簮ID")
+    private String encounterSourceId;
+
     @ApiModelProperty(value = "涓昏鍑洪櫌璇婃柇")
     private ServiceSLTDDiagnosisResDTO mainDischargeDiagnosis;
 
diff --git a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
index 1bfc516..51e8aad 100644
--- a/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
+++ b/smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -3,6 +3,7 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.smartor.domain.*;
+import com.smartor.domain.DTO.PatMedInhospDTO;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
@@ -33,6 +34,8 @@
      */
     public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
 
+    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp);
+
     /**
      * 鍑洪櫌銆侀棬璇婁汉鏁板拰闅忚閲忕粺璁★紙鍛紝鏈堬紝骞达級
      */
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
index ad67157..29181f7 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -164,23 +164,23 @@
             patArchiveVO.setIsoperation(2);
             patArchiveMapper.updatePatArchive(patArchive);
             if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
-                //涓嶉渶瑕佹湇鍔′簡锛岄渶瑕侀�氳繃patid鍜宻endstate=2鎴栬�卻endstate=1鍘绘煡璇竴涓嬶紝service_subtask閲屾槸鍚︽湁姝e湪鎵ц鐨勪换鍔★紝鏈夌殑璇濓紝绔嬪嵆鍋滀簡
+                //涓嶉渶瑕佹湇鍔′簡锛岄渶瑕侀�氳繃patid鍜宻endstate=1,2,3,5,7鍘绘煡璇竴涓嬶紝service_subtask閲屾槸鍚︽湁姝e湪鎵ц鐨勪换鍔★紝鏈夌殑璇濓紝绔嬪嵆鍋滀簡
+                List<Long> list = Arrays.asList(1L, 2L, 3L, 5L, 7L);
+                List<ServiceSubtask> serviceSubtaskList = new ArrayList<>();
                 ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
                 serviceSubtaskVO.setPatid(patArchive.getId());
-                serviceSubtaskVO.setSendstate(2L);
-                List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
-                serviceSubtaskVO.setSendstate(1L);
-                List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
-                if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
-                    if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1);
-                } else {
-                    if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1;
+                for (Long ss : list) {
+                    serviceSubtaskVO.setSendstate(ss);
+                    List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+                    serviceSubtaskList.addAll(serviceSubtasks);
                 }
                 //鍘籸edis涓紝鏌ヨ鏄惁鏈塻ubid锛屾湁鐨勮瘽绉婚櫎cache-exist
                 if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                     for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                         log.info("闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString());
-                        serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
+                        serviceSubtask.setSendstate(4L);
+                        serviceSubtask.setRemark(patArchiveVO.getNotrequiredreason());
+                        serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                         redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
                         redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
                         redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString());
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 1477f7a..a8c7e00 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -10,6 +10,7 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.smartor.domain.*;
+import com.smartor.domain.DTO.PatMedInhospDTO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
 import com.smartor.service.IPatMedInhospService;
@@ -110,6 +111,24 @@
             patMedInhosp1.setTagname(tagname);
         }
         return patMedInhospList;
+    }
+
+    @Override
+    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp) {
+        List<PatMedInhosp> patMedInhosps = selectPatMedInhospList(patMedInhosp);
+        if (!org.springframework.util.CollectionUtils.isEmpty(patMedInhosps)) {
+            return null;
+        }
+        List<PatMedInhospDTO> patMedInhospDTOList = DtoConversionUtils.sourceToTarget(patMedInhosps, PatMedInhospDTO.class);
+        for (PatMedInhospDTO pmd : patMedInhospDTOList) {
+            ServiceSubtaskEntity serviceSubtask = new ServiceSubtaskEntity();
+            serviceSubtask.setServiceType("4");
+            serviceSubtask.setInhospid(pmd.getInhospid());
+            List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtask);
+            if (CollectionUtils.isNotEmpty(serviceSubtasks)) pmd.setFinishFlag("1");
+        }
+
+        return patMedInhospDTOList;
     }
 
     @Override
@@ -811,10 +830,10 @@
         if (ObjectUtils.isEmpty(serviceSubtask)) {
             return;
         }
-        if(StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())){
+        if (StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())) {
             serviceSubtask.setVisitDeptCode(patMedOperationItem.getDeptcode());
             serviceSubtask.setVisitDeptName(patMedOperationItem.getDeptname());
-        }else {
+        } else {
             serviceSubtask.setVisitDeptCode(patMedOperationItem.getHospitaldistrictcode());
             serviceSubtask.setVisitDeptName(patMedOperationItem.getHospitaldistrictname());
         }
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
index 2ada147..82c4094 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -9,6 +9,8 @@
 import com.ruoyi.common.core.domain.entity.SysUserDept;
 import com.ruoyi.common.core.domain.entity.SysUserRole;
 import com.ruoyi.common.utils.StringUtils;
+import com.smartor.common.enums.EmergencyLevelEnum;
+import com.smartor.common.enums.ImportFlagEnum;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.smartor.common.DistinctByProperty;
 import com.smartor.domain.*;
@@ -795,7 +797,6 @@
         patMedInhosp.setInhospno(dto.getHealthcareRecordNo());
         patMedInhosp.setFuflag("1");
 
-
         if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1"))
             patMedInhosp.setFuflag("0");
         if ("0".equals(cry)) {
@@ -840,6 +841,13 @@
             setDischargeInfo(patMedInhosp, dto);
         } else {
             setAdmissionInfo(patMedInhosp, dto);
+            patMedInhosp.setEncounterSourceId(dto.getEncounterSourceId() == null ? "" : dto.getEncounterSourceId());
+            if (StringUtils.isNotEmpty(dto.getEncounterSourceId())) {
+                //鏍规嵁 encounterSourceId 鑾峰彇 importanceFlagCode   emergencyLevelCode
+                Map<String, String> applyInfo = hospitalizedApply(dto.getEncounterSourceId(), dto.getOrgId());
+                patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode"));
+                patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode"));
+            }
         }
 
         patMedInhosp.setDrname(dto.getDoctorName());
@@ -884,6 +892,86 @@
         patMedInhosp.setHospitaldistrictid("" + dto.getAreaId());
         patMedInhosp.setHospitaldistrictcode("" + dto.getAreaId());
         patMedInhosp.setHospitaldistrictname(dto.getAreaName());
+    }
+
+    /**
+     * 鏍规嵁鍏ラ櫌鐢宠鍗旾D鏌ヨ鍏ラ櫌鐢宠鍗曡鎯�
+     * 鍙彁鍙� importanceFlagCode锛坕mportanceFlagCodeList閫楀彿鎷兼帴锛夊拰 emergencyLevelCode 涓や釜鍊�
+     */
+    private Map<String, String> hospitalizedApply(String encounterSourceId, String orgid) {
+        Map<String, String> applyInfo = new HashMap<>();
+        Map<String, String> headers = buildRequestHeaders();
+        log.info("闄㈢敵璇峰崟ID鏌ヨ鍏ラ櫌鐢宠鍗曪細{},appKey:{}", sltdPubPath + "/sf/hospitalizedApply/query", APP_KEY);
+        //璁剧疆鍏ュ弬
+        Map<String, Object> requestParams = new HashMap<>();
+        requestParams.put("applyId", encounterSourceId);
+        requestParams.put("orgId", orgid);
+
+        String result = null;
+        if (StringUtils.isNotEmpty(encounterSourceId) && StringUtils.isNotEmpty(orgid))
+            result = HttpUtils.sendPostByHeader(sltdPubPath + "/sf/hospitalizedApply/query", new Gson().toJson(requestParams), headers);
+
+        if (StringUtils.isEmpty(result)) {
+            log.error("銆恏ospitalizedApply銆戞帴鍙h繑鍥炰负绌猴紝applyId={}", encounterSourceId);
+            return applyInfo;
+        }
+        try {
+            Gson gson = new Gson();
+            Type mapType = new TypeToken<Map<String, Object>>() {
+            }.getType();
+            Map<String, Object> responseMap = gson.fromJson(result, mapType);
+            Object dataObj = responseMap == null ? null : responseMap.get("data");
+            if (dataObj instanceof Map) {
+                Map<String, Object> data = (Map<String, Object>) dataObj;
+                //閲嶈鎬ф爣璁扮紪鐮侊紝鎺ュ彛杩斿洖鏄暟缁勶紝闇�瑕佽浆鎹负瀛楀吀鍚嶇О
+                Object importanceFlagCodeListObj = data.get("importanceFlagCodeList");
+                if (importanceFlagCodeListObj instanceof List) {
+                    List<?> importanceFlagCodeList = (List<?>) importanceFlagCodeListObj;
+                    // 杩囨护鎺� null 鍊�
+                    List<String> nonNullList = importanceFlagCodeList.stream()
+                            .filter(Objects::nonNull)
+                            .map(Object::toString)
+                            .filter(StringUtils::isNotEmpty)
+                            .collect(Collectors.toList());
+
+                    if (!nonNullList.isEmpty()) {
+                        String importanceFlagLabel;
+                        if (nonNullList.size() == 1) {
+                            // 鍙湁涓�涓�硷紝鐩存帴閫氳繃鏋氫妇鑾峰彇鎻忚堪
+                            importanceFlagLabel = ImportFlagEnum.getDescByCode(nonNullList.get(0));
+                        } else {
+                            // 澶氫釜鍊硷紝鐢ㄩ�楀彿鎷兼帴鏋氫妇鎻忚堪
+                            StringBuilder labelBuilder = new StringBuilder();
+                            for (String code : nonNullList) {
+                                String label = ImportFlagEnum.getDescByCode(code);
+                                if (StringUtils.isNotEmpty(label)) {
+                                    labelBuilder.append(label).append(",");
+                                }
+                            }
+                            importanceFlagLabel = StringUtils.stripEnd(labelBuilder.toString(), ",");
+                        }
+
+                        if (StringUtils.isNotEmpty(importanceFlagLabel)) {
+                            applyInfo.put("importanceFlagCode", importanceFlagLabel);
+                        }
+                    }
+                }
+                //绱ф�ョ▼搴︾紪鐮侊紝閫氳繃鏋氫妇杞崲鎻忚堪
+                Object emergencyLevelCodeObj = data.get("emergencyLevelCode");
+                if (emergencyLevelCodeObj != null) {
+                    String emergencyLevelLabel = EmergencyLevelEnum.getDescByCode(emergencyLevelCodeObj.toString());
+                    if (StringUtils.isNotEmpty(emergencyLevelLabel)) {
+                        applyInfo.put("emergencyLevelCode", emergencyLevelLabel);
+                    }
+                }
+            } else {
+                log.error("銆恏ospitalizedApply銆戞帴鍙h繑鍥瀌ata涓嶆槸瀵硅薄锛宎pplyId={}锛宺esult锛歿}", encounterSourceId, result);
+            }
+        } catch (Exception e) {
+            log.error("銆恏ospitalizedApply銆戣В鏋愬叆闄㈢敵璇峰崟璇︽儏澶辫触锛宎pplyId={}", encounterSourceId, e);
+        }
+        log.info("銆恏ospitalizedApply銆慳pplyId={}锛宨mportanceFlagCode={}锛宔mergencyLevelCode={}", encounterSourceId, applyInfo.get("importanceFlagCode"), applyInfo.get("emergencyLevelCode"));
+        return applyInfo;
     }
 
     /**
@@ -1076,6 +1164,7 @@
         dto.setCostCategoryCode(getStringValue(dataItem, "costCategoryCode"));
         dto.setCostNatureName(getStringValue(dataItem, "costNatureName"));
         dto.setCostNatureCode(getStringValue(dataItem, "costNatureCode"));
+        dto.setEncounterSourceId(getStringValue(dataItem, "encounterSourceId"));
         dto.setFurtherConsultationStatus(getIntegerValue(dataItem, "furtherConsultationStatus"));
         Object mainDiagObj = dataItem.get("mainDischargeDiagnosis");
         if (mainDiagObj instanceof Map) {
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index 7699e68..11124d2 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -5,6 +5,7 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.RSAPublicKeyExample;
@@ -738,6 +739,13 @@
     public Map<String, Object> selectPatQuestionResult(ServiceSubTaskQueryReq serviceSubTaskQueryReq) {
         log.info("selectPatQuesTionResult鐨勫叆鍙備负锛歿}", serviceSubTaskQueryReq);
         Map<String, Object> map = new HashMap<>();
+        if (serviceSubTaskQueryReq.getSubId() != null) {
+            ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId());
+            if (serviceSubtask.getSendstate() == 4L) {
+                log.info("鎮h�呭瓙浠诲姟ID涓猴細{}锛岀姸鎬佷负锛歿}", serviceSubTaskQueryReq.getSubId(), serviceSubtask.getSendstate());
+                throw new BaseException("璇ヤ换鍔′笉鎵ц");
+            }
+        }
 
         //鑾峰彇鏈鐨勯棶绛旂粨鏋�
         Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom(), serviceSubTaskQueryReq.getSubId());
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 dffe37f..95d1918 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -6,7 +6,6 @@
 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;
@@ -18,7 +17,6 @@
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.system.service.ISysConfigService;
-import com.smartor.common.DeepSeekApi;
 import com.smartor.common.FtpService;
 import com.smartor.common.MtSubmitSmUtil;
 import com.smartor.config.PhoneUtils;
@@ -33,7 +31,6 @@
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.ObjectUtils;
-import org.apache.ibatis.annotations.Param;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index b176b00..7ac873f 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -76,10 +76,16 @@
         <result property="managementDoctorCode" column="management_doctor_code"/>
         <result property="campusid" column="campusid"/>
         <result property="inhospMydFlag" column="inhosp_myd_flag"/>
+        <result property="encounterSourceId" column="encounter_source_id"/>
+        <result property="importanceFlagCode" column="importance_flag_code"/>
+        <result property="emergencyLevelCode" column="emergency_level_code"/>
     </resultMap>
 
     <sql id="selectPatMedInhospVo">
         select inhospid,
+               encounter_source_id,
+               importance_flag_code,
+               emergency_level_code,
                patname,
                inhosp_myd_flag,
                campusid,
@@ -216,6 +222,9 @@
         b.fuadvice,
         b.fuspecialadvice,
         b.inhosp_myd_flag,
+        b.encounter_source_id,
+        b.importance_flag_code,
+        b.emergency_level_code,
         a.idcardno
         FROM
         pat_med_inhosp b
@@ -261,6 +270,9 @@
         <if test="inDeptcheckFlag != null ">and b.in_deptcheck_flag = #{inDeptcheckFlag}</if>
         <if test="inWardcheckFlag != null ">and b.in_wardcheck_flag = #{inWardcheckFlag}</if>
         <if test="diagcheckFlag != null ">and b.diagcheck_flag = #{diagcheckFlag}</if>
+        <if test="encounterSourceId != null ">and b.encounter_source_id = #{encounterSourceId}</if>
+        <if test="importanceFlagCode != null ">and b.importance_flag_code = #{importanceFlagCode}</if>
+        <if test="emergencyLevelCode != null ">and b.emergency_level_code = #{emergencyLevelCode}</if>
         <if test="cry != null and cry == 0 ">and b.endtime is null</if>
         <if test="cry != null and cry == 1 ">and b.inhospstate=1</if>
         <if test="cry != null and cry == 2 ">and b.inhospstate=2</if>
@@ -342,6 +354,9 @@
         select
         b.inhospid,
         b.nurse_id,
+        b.encounter_source_id,
+        b.importance_flag_code,
+        b.emergency_level_code,
         b.nurse_name,
         b.patname,
         b.management_doctor,
@@ -410,6 +425,15 @@
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
         </if>
+        <if test="encounterSourceId != null and encounterSourceId != ''">
+            and b.encounter_source_id = #{encounterSourceId}
+        </if>
+        <if test="importanceFlagCode != null and importanceFlagCode != ''">
+            and b.importance_flag_code = #{importanceFlagCode}
+        </if>
+        <if test="emergencyLevelCode != null and emergencyLevelCode != ''">
+            and b.emergency_level_code = #{emergencyLevelCode}
+        </if>
         <if test="serialnum != null and serialnum != ''">
             and b.serialnum = #{serialnum}
         </if>
@@ -421,6 +445,9 @@
         select CONCAT( a.age, a.age_unit ) AS age,
         a.telcode as telcode,
         b.inhospid,
+        b.encounter_source_id,
+        b.importance_flag_code,
+        b.emergency_level_code,
         b.management_doctor,
         b.management_doctor_code,
         b.patname,
@@ -494,6 +521,15 @@
         and a.id = b.patid
         AND a.idcardno != ''
         <if test="inhospMydFlag != null ">and b.inhosp_myd_flag = #{inhospMydFlag}</if>
+        <if test="encounterSourceId != null and encounterSourceId != ''">
+            and b.encounter_source_id = #{encounterSourceId}
+        </if>
+        <if test="importanceFlagCode != null and importanceFlagCode != ''">
+            and b.importance_flag_code = #{importanceFlagCode}
+        </if>
+        <if test="emergencyLevelCode != null and emergencyLevelCode != ''">
+            and b.emergency_level_code = #{emergencyLevelCode}
+        </if>
         <if test="orgid != null and orgid != ''">
             and a.orgid = #{orgid}
         </if>
@@ -626,6 +662,9 @@
         <if test="managementDoctor != null ">and management_doctor = #{managementDoctor}</if>
         <if test="managementDoctorCode != null ">and management_doctor_code = #{managementDoctorCode}</if>
         <if test="campusid != null ">and campusid = #{campusid}</if>
+        <if test="importanceFlagCode != null ">and importance_flag_code = #{importanceFlagCode}</if>
+        <if test="emergencyLevelCode != null ">and emergency_level_code = #{emergencyLevelCode}</if>
+        <if test="encounterSourceId != null ">and encounter_source_id = #{encounterSourceId}</if>
     </select>
 
 
@@ -699,6 +738,9 @@
             <if test="managementDoctorCode != null ">management_doctor_code,</if>
             <if test="campusid != null ">campusid,</if>
             <if test="inhospMydFlag != null ">inhosp_myd_flag,</if>
+            <if test="importanceFlagCode != null ">importance_flag_code,</if>
+            <if test="emergencyLevelCode != null ">emergency_level_code,</if>
+            <if test="encounterSourceId != null ">encounter_source_id,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="serialnum != null">#{serialnum},</if>
@@ -766,7 +808,9 @@
             <if test="managementDoctor != null ">#{managementDoctor},</if>
             <if test="managementDoctorCode != null ">#{managementDoctorCode},</if>
             <if test="campusid != null ">#{campusid},</if>
-            <if test="inhospMydFlag != null ">#{inhospMydFlag},</if>
+            <if test="importanceFlagCode != null ">#{importanceFlagCode},</if>
+            <if test="emergencyLevelCode != null ">#{emergencyLevelCode},</if>
+            <if test="encounterSourceId != null ">#{encounterSourceId},</if>
         </trim>
     </insert>
 
@@ -785,7 +829,7 @@
         nurse_id, nurse_name, out_way_id, out_way_name, guid,
         operator, operator_id, inhospno, remark,
         fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice, management_doctor,
-        management_doctor_doctor,campusid, inhosp_myd_flag
+        management_doctor_doctor,campusid, inhosp_myd_flag, importance_flag_code, emergency_level_code, encounter_source_id
         )
         values
         <foreach collection="list" item="item" separator=",">
@@ -807,7 +851,8 @@
             #{item.nurseId}, #{item.nurseName}, #{item.outWayId}, #{item.outWayName}, #{item.guid},
             #{item.operator}, #{item.operatorId}, #{item.inhospno}, #{item.remark},
             #{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice},
-            #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode}, #{item.campusid}, #{item.inhospMydFlag}
+            #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode}, #{item.campusid}, #{item.inhospMydFlag},
+            #{item.importanceFlagCode}, #{item.emergencyLevelCode}, #{item.encounterSourceId}
             )
         </foreach>
     </insert>
@@ -881,6 +926,9 @@
             <if test="managementDoctorCode != null ">management_doctor_code = #{managementDoctorCode},</if>
             <if test="campusid != null ">campusid = #{campusid},</if>
             <if test="inhospMydFlag != null ">inhosp_myd_flag = #{inhospMydFlag},</if>
+            <if test="importanceFlagCode != null ">importance_flag_code = #{importanceFlagCode},</if>
+            <if test="emergencyLevelCode != null ">emergency_level_code = #{emergencyLevelCode},</if>
+            <if test="encounterSourceId != null ">encounter_source_id = #{encounterSourceId},</if>
         </trim>
         where inhospid = #{inhospid}
     </update>

--
Gitblit v1.9.3