From 5dcd6447f315e821727508cd26bf05f8220b39c8 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 09 四月 2026 13:54:47 +0800
Subject: [PATCH] Merge branch 'master' into master-手术随访

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java          |    7 +
 smartor/src/main/java/com/smartor/domain/VO/DetailTraceDealVO.java                                  |    7 +
 smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTrace.java                             |    7 +
 smartor/src/main/java/com/smartor/domain/VO/ServiceSubtaskDetailTraceVO.java                        |   34 ++++++
 smartor/src/main/java/com/smartor/mapper/PatMedOuthospMapper.java                                   |    5 +
 smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml                                   |    7 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailTraceController.java |   22 ++--
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailTraceServiceImpl.java            |   14 ++
 smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java                        |   22 +++-
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml                       |   12 +
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java                                        |   45 ++++++--
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java                       |   24 +++-
 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailTraceMapper.java                       |    3 
 smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailTraceService.java                    |    5 
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java                 |   34 ++++--
 15 files changed, 190 insertions(+), 58 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailTraceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailTraceController.java
index 0b9d204..a72eda8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailTraceController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailTraceController.java
@@ -12,6 +12,7 @@
 import com.smartor.domain.ServiceSubtaskDetailTrace;
 import com.smartor.domain.VO.DetailTraceDealVO;
 import com.smartor.domain.VO.SatisfactionExceptConfigQuestionReqVO;
+import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
 import com.smartor.service.IServiceSubtaskDetailTraceService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -45,14 +46,14 @@
     //@PreAuthorize("@ss.hasPermi('smartor:ltrace:list')")
     @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
     @PostMapping("/list")
-    public Map<String, Object> list(@RequestBody ServiceSubtaskDetailTrace serviceSubtaskDetailTrace) {
-        Integer offset = PageUtils.getOffset(serviceSubtaskDetailTrace.getPageNum(), serviceSubtaskDetailTrace.getPageSize());
-        serviceSubtaskDetailTrace.setPageNum(offset);
-        List<ServiceSubtaskDetailTrace> list = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTrace);
+    public Map<String, Object> list(@RequestBody ServiceSubtaskDetailTraceVO serviceSubtaskDetailTraceVO) {
+        Integer offset = PageUtils.getOffset(serviceSubtaskDetailTraceVO.getPageNum(), serviceSubtaskDetailTraceVO.getPageSize());
+        serviceSubtaskDetailTraceVO.setPageNum(offset);
+        List<ServiceSubtaskDetailTrace> list = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTraceVO);
 
-        serviceSubtaskDetailTrace.setPageNum(null);
-        serviceSubtaskDetailTrace.setPageSize(null);
-        List<ServiceSubtaskDetailTrace> total = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTrace);
+        serviceSubtaskDetailTraceVO.setPageNum(null);
+        serviceSubtaskDetailTraceVO.setPageSize(null);
+        List<ServiceSubtaskDetailTrace> total = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTraceVO);
 
         return getDataTable3(CollectionUtils.isNotEmpty(total) ? total.size() : 0, list);
     }
@@ -71,7 +72,7 @@
         detailTraceDealVO.setPageNum(null);
         detailTraceDealVO.setPageSize(null);
         Map<String, Object> totalResult = serviceSubtaskDetailTraceService.tracedeallist(detailTraceDealVO);
-        List<?> totalRows = (List<?>) totalResult.get("rows");
+        List<?> totalRows = (List<?>) totalResult.get("detailTraceDealDTOList");
 
         //灏嗘�绘暟淇℃伅娣诲姞鍒扮粨鏋滀腑
         result.put("totalException", totalResult.get("totalException"));
@@ -99,8 +100,8 @@
     //@PreAuthorize("@ss.hasPermi('smartor:ltrace:export')")
     @Log(title = "闅忚浠诲姟寮傚父璁板綍璺熻釜", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, ServiceSubtaskDetailTrace serviceSubtaskDetailTrace) {
-        List<ServiceSubtaskDetailTrace> list = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTrace);
+    public void export(HttpServletResponse response, ServiceSubtaskDetailTraceVO serviceSubtaskDetailTraceVO) {
+        List<ServiceSubtaskDetailTrace> list = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTraceVO);
         ExcelUtil<ServiceSubtaskDetailTrace> util = new ExcelUtil<ServiceSubtaskDetailTrace>(ServiceSubtaskDetailTrace.class);
         util.exportExcel(response, list, "闅忚浠诲姟寮傚父璁板綍璺熻釜鏁版嵁");
     }
@@ -136,6 +137,7 @@
     @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody ServiceSubtaskDetailTrace serviceSubtaskDetailTrace) {
+        if (serviceSubtaskDetailTrace.getPatdescJson() != null) serviceSubtaskDetailTrace.setPatdesc(serviceSubtaskDetailTrace.getPatdescJson().toJSONString());
         return toAjax(serviceSubtaskDetailTraceService.updateServiceSubtaskDetailTtrace(serviceSubtaskDetailTrace));
     }
 
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index ddb0a57..d33e19d 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -342,19 +342,38 @@
                     serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
                     log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
 
-//                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
-//                    serviceSLTDInhospReqVO.setStartHeadTime(null);
-//                    serviceSLTDInhospReqVO.setStartTailTime(null);
-//                    serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
-//                    serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
-//                    serviceSLTDInhospReqVO.setStatusList(null);
-//                    List<String> list1 = new ArrayList<>();
-//                    list1.add("FH0108.01");
-//                    list1.add("FH0108.03");
-//                    serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1);
-//                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗘暟鎹叆鍙傦細{}", serviceSLTDInhospReqVO);
-//                    serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
-//                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁锛岄櫌鍖猴細{}", cid);
+                    // 闂ㄦ�ヨ瘖鍒嗛〉閲囬泦锛氭瘡椤�1000鏉★紝鐩村埌鏃犳暟鎹负姝�
+                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬪垎椤甸噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
+                    serviceSLTDInhospReqVO.setStartHeadTime(null);
+                    serviceSLTDInhospReqVO.setStartTailTime(null);
+                    serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime);
+                    serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime);
+                    serviceSLTDInhospReqVO.setStatusList(null);
+                    List<String> list1 = new ArrayList<>();
+                    list1.add("FH0108.01");
+                    list1.add("FH0108.03");
+                    serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1);
+                    long outpPage = 1L;
+                    final long OUTP_PAGE_SIZE = 1000L;
+                    while (true) {
+                        serviceSLTDInhospReqVO.setCurrent(outpPage);
+                        serviceSLTDInhospReqVO.setSize(OUTP_PAGE_SIZE);
+                        log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濋噰闆嗙{}椤垫暟鎹紝闄㈠尯锛歿}", outpPage, cid);
+                        List<ServiceSLTDInhospResDTO> outpResult = serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO);
+                        if (CollectionUtils.isEmpty(outpResult)) {
+                            log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濈{}椤垫棤鏁版嵁锛岄噰闆嗙粨鏉燂紝闄㈠尯锛歿}", outpPage, cid);
+                            break;
+                        }
+                        log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濈{}椤甸噰闆唟}鏉★紝闄㈠尯锛歿}", outpPage, outpResult.size(), cid);
+                        if (outpResult.size() < OUTP_PAGE_SIZE) {
+                            break;
+                        }
+                        outpPage++;
+                    }
+                    // 娓呴櫎鍒嗛〉鍙傛暟锛岄伩鍏嶅奖鍝嶅悗缁嚭鍏ラ櫌鏌ヨ
+                    serviceSLTDInhospReqVO.setCurrent(null);
+                    serviceSLTDInhospReqVO.setSize(null);
+                    log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆垎椤甸噰闆嗗畬鎴愶紝闄㈠尯锛歿}", cid);
 
                     log.debug("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濆紑濮嬮噰闆嗘暟鎹紝闄㈠尯锛歿}", cid);
                     serviceSLTDInhospReqVO.setStartHeadTime(null);
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTrace.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTrace.java
index 176d723..2bab8d4 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTrace.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailTrace.java
@@ -2,6 +2,7 @@
 
 import java.util.Date;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
@@ -205,6 +206,12 @@
      */
     @ApiModelProperty("鍖呭惈鎮h�呭鍚嶃�佹偅鑰呯數璇濄�佸氨璇婄瀹ょ瓑")
     @Excel(name = "鍖呭惈鎮h�呭鍚嶃�佹偅鑰呯數璇濄�佸氨璇婄瀹ょ瓑")
+    private JSONObject patdescJson;
+    /**
+     * 鍖呭惈鎮h�呭鍚嶃�佹偅鑰呯數璇濄�佸氨璇婄瀹ょ瓑
+     */
+    @ApiModelProperty("鍖呭惈鎮h�呭鍚嶃�佹偅鑰呯數璇濄�佸氨璇婄瀹ょ瓑")
+    @Excel(name = "鍖呭惈鎮h�呭鍚嶃�佹偅鑰呯數璇濄�佸氨璇婄瀹ょ瓑")
     private String patdesc;
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/VO/DetailTraceDealVO.java b/smartor/src/main/java/com/smartor/domain/VO/DetailTraceDealVO.java
index 7298a7f..62135c9 100644
--- a/smartor/src/main/java/com/smartor/domain/VO/DetailTraceDealVO.java
+++ b/smartor/src/main/java/com/smartor/domain/VO/DetailTraceDealVO.java
@@ -34,6 +34,13 @@
     @ApiModelProperty("澶勭悊绉戝鍚嶇О")
     @Excel(name = "澶勭悊绉戝鍚嶇О")
     private String todeptname;
+    
+    /**
+     * 闂绫诲瀷:璇煶銆侀棶鍗�
+     */
+    @ApiModelProperty("闂绫诲瀷:璇煶銆侀棶鍗�")
+    @Excel(name = "妯℃澘绫诲瀷锛�1.璇煶 2.闂嵎")
+    private Integer templateType;
 
 
     /**
diff --git a/smartor/src/main/java/com/smartor/domain/VO/ServiceSubtaskDetailTraceVO.java b/smartor/src/main/java/com/smartor/domain/VO/ServiceSubtaskDetailTraceVO.java
new file mode 100644
index 0000000..c7ed763
--- /dev/null
+++ b/smartor/src/main/java/com/smartor/domain/VO/ServiceSubtaskDetailTraceVO.java
@@ -0,0 +1,34 @@
+package com.smartor.domain.VO;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.smartor.domain.ServiceSubtaskDetailTrace;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 闅忚浠诲姟寮傚父璁板綍璺熻釜瀵硅薄 service_subtask_detail_trace
+ *
+ * @author lihu
+ * @date 2026-03-24
+ */
+@Data
+@ApiModel("闅忚浠诲姟寮傚父璁板綍璺熻釜")
+public class ServiceSubtaskDetailTraceVO extends ServiceSubtaskDetailTrace {
+    private static final long serialVersionUID = -6807897351219920003L;
+
+    /**
+     * 闂ID闆嗗悎
+     */
+    @ApiModelProperty("闂ID")
+    @Excel(name = "闂ID闆嗗悎")
+    private List<Long> scriptids;
+
+
+}
+
diff --git a/smartor/src/main/java/com/smartor/mapper/PatMedOuthospMapper.java b/smartor/src/main/java/com/smartor/mapper/PatMedOuthospMapper.java
index bf12d7c..c0fb31b 100644
--- a/smartor/src/main/java/com/smartor/mapper/PatMedOuthospMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/PatMedOuthospMapper.java
@@ -40,6 +40,11 @@
     int existsInTable(@Param("tableName") String tableName, @Param("id") Long id);
 
     /**
+     * 鎸� serialnum 鏌ヨ鎸囧畾鍒嗚〃涓槸鍚﹀凡瀛樺湪璇ヨ褰曪紝鐢ㄤ簬鎻掑叆鍓嶅幓閲�
+     */
+    int countBySerialnum(@Param("tableName") String tableName, @Param("serialnum") String serialnum);
+
+    /**
      * 鏇存柊鍒版寚瀹氬垎琛紙鐢ㄤ簬璺敱鍒版纭垎琛級
      */
     int updateInTable(@Param("tableName") String tableName, @Param("record") PatMedOuthosp record);
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailTraceMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailTraceMapper.java
index 56d61b1..cb7a2fa 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailTraceMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailTraceMapper.java
@@ -3,6 +3,7 @@
 import java.util.List;
 
 import com.smartor.domain.VO.DetailTraceDealVO;
+import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
 import org.apache.ibatis.annotations.Mapper;
 import com.smartor.domain.ServiceSubtaskDetailTrace;
 
@@ -28,7 +29,7 @@
      * @param ServiceSubtaskDetailTtrace 闅忚浠诲姟寮傚父璁板綍璺熻釜
      * @return 闅忚浠诲姟寮傚父璁板綍璺熻釜闆嗗悎
      */
-    public List<ServiceSubtaskDetailTrace> selectServiceSubtaskDetailTtraceList(ServiceSubtaskDetailTrace ServiceSubtaskDetailTtrace);
+    public List<ServiceSubtaskDetailTrace> selectServiceSubtaskDetailTtraceList(ServiceSubtaskDetailTraceVO ServiceSubtaskDetailTtrace);
 
 
     public List<ServiceSubtaskDetailTrace> tracedeallist(DetailTraceDealVO detailTraceDealVO);
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailTraceService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailTraceService.java
index 27e4e0d..3391fbd 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailTraceService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskDetailTraceService.java
@@ -7,6 +7,7 @@
 import com.smartor.domain.ServiceSubtaskDetailTrace;
 import com.smartor.domain.VO.DetailTraceDealVO;
 import com.smartor.domain.VO.SatisfactionExceptConfigQuestionReqVO;
+import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
@@ -28,10 +29,10 @@
     /**
      * 鏌ヨ闅忚浠诲姟寮傚父璁板綍璺熻釜鍒楄〃
      *
-     * @param serviceSubtaskDetailTtrace 闅忚浠诲姟寮傚父璁板綍璺熻釜
+     * @param subtaskDetailTraceVO 闅忚浠诲姟寮傚父璁板綍璺熻釜
      * @return 闅忚浠诲姟寮傚父璁板綍璺熻釜闆嗗悎
      */
-    public List<ServiceSubtaskDetailTrace> selectServiceSubtaskDetailTtraceList(ServiceSubtaskDetailTrace serviceSubtaskDetailTtrace);
+    public List<ServiceSubtaskDetailTrace> selectServiceSubtaskDetailTtraceList(ServiceSubtaskDetailTraceVO subtaskDetailTraceVO);
 
     /**
      * 寮傚父闂澶勭悊鎯呭喌鏌ヨ
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 a0f265d..f5bd02f 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -172,16 +172,24 @@
             log.error("闂ㄦ�ュ氨璇婃椂闂翠笉鑳戒负绌�");
             return 0;
         }
+        // 闇�瑕佹彃鍏ュ埌鍝釜琛紝鏍规嵁灏辫瘖鏃堕棿鐨勬棩鏈熸潵瀹氾紝濡傛灉鏍规嵁灏辫瘖鏃堕棿鏉ョ‘瀹氱殑琛ㄤ笉瀛樺湪锛屽垯瀛樺湪pat_med_outhosp琛ㄤ腑
+        String targetTable = resolveTargetTable(patMedOuthosp.getAdmitdate());
+        if (targetTable == null) {
+            return 0;
+        }
+        // 鎻掑叆鍓嶆寜 serialnum 鏌ラ噸锛岄槻姝㈤噸澶嶉噰闆嗗鑷撮噸澶嶅叆搴�
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(patMedOuthosp.getSerialnum())) {
+            int exists = patMedOuthospMapper.countBySerialnum(targetTable, patMedOuthosp.getSerialnum());
+            if (exists > 0) {
+                log.debug("[insert] serialnum={} 宸插瓨鍦ㄤ簬琛� {}锛岃烦杩囨彃鍏�", patMedOuthosp.getSerialnum(), targetTable);
+                return 0;
+            }
+        }
         patMedOuthosp.setCreateTime(DateUtils.getNowDate());
         patMedOuthosp.setUpdateTime(DateUtils.getNowDate());
         patMedOuthosp.setGuid(UUID.randomUUID().toString());
-        //闇�瑕佹彃鍏ュ埌鍝釜琛紝鏍规嵁灏辫瘖鏃堕棿鐨勬棩鏈熸潵瀹氾紝濡傛灉鏍规嵁灏辫瘖鏃堕棿鏉ョ‘瀹氱殑琛ㄤ笉瀛樺湪锛屽垯瀛樺湪pat_med_outhosp琛ㄤ腑
-        String targetTable = resolveTargetTable(patMedOuthosp.getAdmitdate());
-        if (targetTable != null) {
-            log.info("[insert] 璺敱鍒板垎琛�: {}", targetTable);
-            return patMedOuthospMapper.insertIntoTable(targetTable, patMedOuthosp);
-        }
-        return 0;
+        log.info("[insert] 璺敱鍒板垎琛�: {}", targetTable);
+        return patMedOuthospMapper.insertIntoTable(targetTable, patMedOuthosp);
     }
 
     /**
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 65ce765..119a6da 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -393,6 +393,13 @@
         params.put("inpatientArea", null);
 //        params.put("status", reqVO.getStatusList() != null && !reqVO.getStatusList().isEmpty() ? reqVO.getStatusList().get(0) : null);
         params.put("status", null);
+        // 鍒嗛〉鍙傛暟锛堥棬鎬ヨ瘖鍒嗛〉閲囬泦鏃朵娇鐢級
+        if (reqVO.getCurrent() != null) {
+            params.put("current", reqVO.getCurrent());
+        }
+        if (reqVO.getSize() != null) {
+            params.put("size", reqVO.getSize());
+        }
         return params;
     }
 
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 0fd2033..742e7f7 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -1,6 +1,7 @@
 package com.smartor.service.impl;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.core.redis.RedisCache;
@@ -10,6 +11,7 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.smartor.domain.*;
 import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
+import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
 import com.smartor.domain.entity.ServiceSubtaskEntity;
 import com.smartor.mapper.*;
 import com.smartor.service.IServiceSubtaskAnswerService;
@@ -898,7 +900,12 @@
             subtaskDetailTrace.setAsrtext(stt.getOptioncontent());
             subtaskDetailTrace.setRecordpath(null);
             subtaskDetailTrace.setPatid(selectServiceSubtaskList.get(0).getPatid());
-            subtaskDetailTrace.setPatdesc(selectServiceSubtaskList.get(0).getSendname() + "," + selectServiceSubtaskList.get(0).getPhone() + "," + selectServiceSubtaskList.get(0).getDeptname());
+            JSONObject patdescJson1 = new JSONObject();
+            patdescJson1.put("sendname", selectServiceSubtaskList.get(0).getSendname());
+            patdescJson1.put("phone", selectServiceSubtaskList.get(0).getPhone());
+            patdescJson1.put("sex", selectServiceSubtaskList.get(0).getSex() == null ? selectServiceSubtaskList.get(0).getSex() == 1 ? "鐢�" : "濂�" : null);
+            patdescJson1.put("age", selectServiceSubtaskList.get(0).getAge());
+            subtaskDetailTrace.setPatdesc(patdescJson1.toJSONString());
             subtaskDetailTrace.setTodeptcode(svyTaskTemplateScriptVO.getDutyDeptCode());
             subtaskDetailTrace.setTodeptname(svyTaskTemplateScriptVO.getDutyDeptName());
             subtaskDetailTrace.setOrgid(selectServiceSubtaskList.get(0).getOrgid());
@@ -909,10 +916,10 @@
             traceService.insertServiceSubtaskDetailTtrace(subtaskDetailTrace);
         } else if (ObjectUtils.isNotEmpty(stt) && stt.getIsabnormal() == 1L) {
             //杩欓噷涓昏鏄�曞尰鎶や汉鍛樻妸寮傚父閫夐」鏀规垚浜嗛潪寮傚父鐨勶紝杩欓噷灏遍渶瑕佹煡涓�涓嬭繖鏉℃暟鎹槸涓嶆槸鍦ㄦ弧鎰忓害寮傚父琛紝濡傛灉鍦紝鍒欒鍒犻櫎
-            ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace();
-            subtaskDetailTrace.setSubId(serviceSubtaskDetailVO.getSubId());
-            subtaskDetailTrace.setScriptid(svyTaskTemplateScriptVO.getId());
-            List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = traceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTrace);
+            ServiceSubtaskDetailTraceVO subtaskDetailTraceVO = new ServiceSubtaskDetailTraceVO();
+            subtaskDetailTraceVO.setSubId(serviceSubtaskDetailVO.getSubId());
+            subtaskDetailTraceVO.setScriptid(svyTaskTemplateScriptVO.getId());
+            List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = traceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTraceVO);
             if (CollectionUtils.isNotEmpty(serviceSubtaskDetailTraces)) {
                 traceService.deleteServiceSubtaskDetailTtraceById(serviceSubtaskDetailTraces.get(0).getId());
             }
@@ -1103,7 +1110,7 @@
             subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId());
             subtaskDetailTrace.setSubId(serviceSubtaskDetailVO.getSubId());
             subtaskDetailTrace.setTaskid(serviceSubtaskDetailVO.getTaskid());
-            subtaskDetailTrace.setTemplateid(ivrTaskTemplateScriptVO.getTemplateID()!=null ? Long.valueOf(ivrTaskTemplateScriptVO.getTemplateID()) : null);
+            subtaskDetailTrace.setTemplateid(ivrTaskTemplateScriptVO.getTemplateID() != null ? Long.valueOf(ivrTaskTemplateScriptVO.getTemplateID()) : null);
             subtaskDetailTrace.setTemplatequestionnum(ivrTaskTemplateScriptVO.getSort() == null ? null : Long.valueOf(ivrTaskTemplateScriptVO.getSort()));
 
             //鑾峰彇鍒嗙被淇℃伅
@@ -1131,7 +1138,12 @@
             subtaskDetailTrace.setAsrtext(ivrTaskTemplateScriptVO.getIvrtext());
             subtaskDetailTrace.setRecordpath(null);
             subtaskDetailTrace.setPatid(selectServiceSubtaskList.get(0).getPatid());
-            subtaskDetailTrace.setPatdesc(selectServiceSubtaskList.get(0).getSendname() + "," + selectServiceSubtaskList.get(0).getPhone() + "," + selectServiceSubtaskList.get(0).getDeptname());
+            JSONObject patdescJson2 = new JSONObject();
+            patdescJson2.put("sendname", selectServiceSubtaskList.get(0).getSendname());
+            patdescJson2.put("phone", selectServiceSubtaskList.get(0).getPhone());
+            patdescJson2.put("sex", selectServiceSubtaskList.get(0).getSex() == null ? selectServiceSubtaskList.get(0).getSex() == 1 ? "鐢�" : "濂�" : null);
+            patdescJson2.put("age", selectServiceSubtaskList.get(0).getAge());
+            subtaskDetailTrace.setPatdesc(patdescJson2.toJSONString());
             subtaskDetailTrace.setTodeptcode(ivrTaskTemplateScriptVO.getDutyDeptCode());
             subtaskDetailTrace.setTodeptname(ivrTaskTemplateScriptVO.getDutyDeptName());
             subtaskDetailTrace.setOrgid(selectServiceSubtaskList.get(0).getOrgid());
@@ -1142,10 +1154,10 @@
             traceService.insertServiceSubtaskDetailTtrace(subtaskDetailTrace);
         } else if (stt.getIsabnormal() != null && stt.getIsabnormal() != 1L) {
             //杩欓噷涓昏鏄�曞尰鎶や汉鍛樻妸寮傚父閫夐」鏀规垚浜嗛潪寮傚父鐨勶紝杩欓噷灏遍渶瑕佹煡涓�涓嬭繖鏉℃暟鎹槸涓嶆槸鍦ㄦ弧鎰忓害寮傚父琛紝濡傛灉鍦紝鍒欒鍒犻櫎
-            ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace();
-            subtaskDetailTrace.setSubId(serviceSubtaskDetailVO.getSubId());
-            subtaskDetailTrace.setScriptid(ivrTaskTemplateScriptVO.getScriptID() == null ? ivrTaskTemplateScriptVO.getId() : ivrTaskTemplateScriptVO.getScriptID());
-            List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = traceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTrace);
+            ServiceSubtaskDetailTraceVO subtaskDetailTraceVO = new ServiceSubtaskDetailTraceVO();
+            subtaskDetailTraceVO.setSubId(serviceSubtaskDetailVO.getSubId());
+            subtaskDetailTraceVO.setScriptid(ivrTaskTemplateScriptVO.getScriptID() == null ? ivrTaskTemplateScriptVO.getId() : ivrTaskTemplateScriptVO.getScriptID());
+            List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = traceService.selectServiceSubtaskDetailTtraceList(subtaskDetailTraceVO);
             if (CollectionUtils.isNotEmpty(serviceSubtaskDetailTraces)) {
                 traceService.deleteServiceSubtaskDetailTtraceById(serviceSubtaskDetailTraces.get(0).getId());
             }
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailTraceServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailTraceServiceImpl.java
index d49690e..b19a590 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailTraceServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailTraceServiceImpl.java
@@ -3,6 +3,7 @@
 import java.util.*;
 import java.util.stream.Collectors;
 
+import com.alibaba.fastjson2.JSON;
 import com.github.pagehelper.util.StringUtil;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
@@ -10,6 +11,7 @@
 import com.smartor.domain.DTO.DetailTraceDealDTO;
 import com.smartor.domain.VO.DetailTraceDealVO;
 import com.smartor.domain.VO.SatisfactionExceptConfigQuestionReqVO;
+import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
 import com.smartor.mapper.ServiceSubtaskDetailMapper;
 import com.smartor.mapper.ServiceSubtaskDetailTraceMapper;
 import com.smartor.mapper.SvyLibScriptCategoryMapper;
@@ -62,12 +64,18 @@
     /**
      * 鏌ヨ闅忚浠诲姟寮傚父璁板綍璺熻釜鍒楄〃
      *
-     * @param serviceSubtaskDetailTrace 闅忚浠诲姟寮傚父璁板綍璺熻釜
+     * @param serviceSubtaskDetailTraceVO 闅忚浠诲姟寮傚父璁板綍璺熻釜
      * @return 闅忚浠诲姟寮傚父璁板綍璺熻釜
      */
     @Override
-    public List<ServiceSubtaskDetailTrace> selectServiceSubtaskDetailTtraceList(ServiceSubtaskDetailTrace serviceSubtaskDetailTrace) {
-        return serviceSubtaskDetailTraceMapper.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTrace);
+    public List<ServiceSubtaskDetailTrace> selectServiceSubtaskDetailTtraceList(ServiceSubtaskDetailTraceVO serviceSubtaskDetailTraceVO) {
+        List<ServiceSubtaskDetailTrace> serviceSubtaskDetailTraces = serviceSubtaskDetailTraceMapper.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTraceVO);
+        for (ServiceSubtaskDetailTrace serviceSubtaskDetailTrace : serviceSubtaskDetailTraces) {
+            if (StringUtils.isNotEmpty(serviceSubtaskDetailTrace.getPatdesc())) {
+                serviceSubtaskDetailTrace.setPatdescJson(JSON.parseObject(serviceSubtaskDetailTrace.getPatdesc()));
+            }
+        }
+        return serviceSubtaskDetailTraces;
     }
 
     @Override
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 a60c28f..8e623b3 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1,6 +1,7 @@
 package com.smartor.service.impl;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -576,14 +577,14 @@
             if (StringUtils.isNotEmpty(serviceTaskVO.getLibtemplateid())) {
                 serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid());
                 serviceTask.setLibtemplatename(serviceTaskVO.getLibtemplatename());
-            }else {
+            } else {
                 if (ObjectUtils.isNotEmpty(serviceTaskVO.getSvyTaskTemplateVO())) {
-                    serviceTask.setLibtemplateid(""+serviceTaskVO.getSvyTaskTemplateVO().getTemplateid());
-                    serviceTask.setLibtemplatename(""+serviceTaskVO.getLibtemplatename());
+                    serviceTask.setLibtemplateid("" + serviceTaskVO.getSvyTaskTemplateVO().getTemplateid());
+                    serviceTask.setLibtemplatename("" + serviceTaskVO.getLibtemplatename());
                 }
                 if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
-                    serviceTask.setLibtemplateid(""+serviceTaskVO.getIvrTaskTemplateVO().getLibtemplateid());
-                    serviceTask.setLibtemplatename(""+serviceTaskVO.getIvrTaskTemplateVO().getLibtemplatename());
+                    serviceTask.setLibtemplateid("" + serviceTaskVO.getIvrTaskTemplateVO().getLibtemplateid());
+                    serviceTask.setLibtemplatename("" + serviceTaskVO.getIvrTaskTemplateVO().getLibtemplatename());
                 }
             }
             if (serviceTaskVO.getTemplateid() != null) {
@@ -1591,7 +1592,12 @@
                             subtaskDetailTrace.setAsrtext(phoneCallReqYQVO.getAsrtext());
                             subtaskDetailTrace.setRecordpath(phoneCallReqYQVO.getRecordpath());
                             subtaskDetailTrace.setPatid(serviceSubtask.getPatid());
-                            subtaskDetailTrace.setPatdesc(serviceSubtask.getSendname() + "," + serviceSubtask.getPhone() + "," + serviceSubtask.getDeptname());
+                            JSONObject patdescJson = new JSONObject();
+                            patdescJson.put("sendname", serviceSubtask.getSendname());
+                            patdescJson.put("phone", serviceSubtask.getPhone());
+                            patdescJson.put("age", serviceSubtask.getAge());
+                            patdescJson.put("sex", serviceSubtask.getSex() != null ? serviceSubtask.getSex() == 1 ? "鐢�" : "濂�" : null);
+                            subtaskDetailTrace.setPatdesc(patdescJson.toJSONString());
                             subtaskDetailTrace.setTodeptcode(ivrTaskTemplateScriptVO.getDutyDeptCode());
                             subtaskDetailTrace.setTodeptname(ivrTaskTemplateScriptVO.getDutyDeptName());
                             subtaskDetailTrace.setOrgid(serviceSubtask.getOrgid());
@@ -2659,9 +2665,9 @@
 
         if (visitCount != null && visitCount > 1) {
             serviceSubtaskStatistic = getStatisticAgain(serviceSubtaskList, followUpCountStyle);
-        }else if(visitCount != null && visitCount == 1){
+        } else if (visitCount != null && visitCount == 1) {
             serviceSubtaskStatistic = getStatisticFirst(serviceSubtaskList, followUpCountStyle);
-        }else {
+        } else {
             //鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮
             DecimalFormat percentFormat = new DecimalFormat("##.##%");
             serviceSubtaskStatistic.setDeptname(serviceSubtaskList.get(0).getDeptname());
@@ -2921,6 +2927,7 @@
 
     /**
      * 棣栨闅忚缁熻
+     *
      * @param serviceSubtaskList
      * @param followUpCountStyle
      * @return
@@ -3082,6 +3089,7 @@
 
     /**
      * 鍐嶆闅忚缁熻
+     *
      * @param serviceSubtaskList
      * @param followUpCountStyle
      * @return
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml
index 36d7089..b53811c 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml
@@ -447,6 +447,13 @@
         WHERE id = #{id}
     </select>
 
+    <!-- 鎸� serialnum 鏌ヨ鎸囧畾鍒嗚〃涓槸鍚﹀凡瀛樺湪璇ヨ褰曪紝鐢ㄤ簬鎻掑叆鍓嶅幓閲� -->
+    <select id="countBySerialnum" resultType="int">
+        SELECT COUNT(*)
+        FROM ${tableName}
+        WHERE serialnum = #{serialnum}
+    </select>
+
     <update id="updateInTable" parameterType="map">
         update ${tableName}
         <trim prefix="SET" suffixOverrides=",">
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml
index 3d10b0a..4595c28 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailTraceMapper.xml
@@ -108,7 +108,7 @@
         from service_subtask_detail_trace
     </sql>
 
-    <select id="selectServiceSubtaskDetailTtraceList" parameterType="com.smartor.domain.ServiceSubtaskDetailTrace"
+    <select id="selectServiceSubtaskDetailTtraceList" parameterType="com.smartor.domain.VO.ServiceSubtaskDetailTraceVO"
             resultMap="ServiceSubtaskDetailTtraceResult">
         <include refid="selectServiceSubtaskDetailTtraceVo"/>
         where del_flag=0
@@ -160,8 +160,11 @@
         <if test="valueType != null  and valueType != ''">
             and value_type = #{valueType}
         </if>
-        <if test="scriptid != null ">
-            and scriptid = #{scriptid}
+        <if test="scriptids != null ">
+            and scriptid in
+            <foreach item="scriptid" collection="scriptids" open="(" separator="," close=")">
+                #{scriptid}
+            </foreach>
         </if>
         <if test="answerps != null  and answerps != ''">
             and answerps = #{answerps}
@@ -268,6 +271,9 @@
         <if test="type != null  and type != ''">
             and type = #{type}
         </if>
+        <if test="templateType != null">
+            and template_type = #{templateType}
+        </if>
     </select>
 
 

--
Gitblit v1.9.3