From cc479e6a056785103996cc7ea67dbd5faa3e800e Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 19 十月 2026 18:07:22 +0800
Subject: [PATCH] 数据采集模块

---
 ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/service/InhospSubtaskWriter.java |   43 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/service/InhospSubtaskWriter.java b/ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/service/InhospSubtaskWriter.java
index 3758e0f..2c3db08 100644
--- a/ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/service/InhospSubtaskWriter.java
+++ b/ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/service/InhospSubtaskWriter.java
@@ -105,9 +105,14 @@
      * @param archive  鎮h�呮。妗�
      * @param type     0=鑽搧瀹f暀 / 1=绂婚櫌绉戝 / 2=绂婚櫌鐥呭尯 / 3=鐤剧梾 / 4=鍏ラ櫌绉戝 / 5=鍏ラ櫌鐥呭尯
      * @param config   {@code sys_config: visit.early.day}
+     * @return <b>鏄惁鐪熺殑钀戒簡搴�</b>锛堟垨"鏈潵灏卞凡缁忔湁"锛夈��
+     *         杩斿洖鍊兼槸 2026-10"涓�涓偅鑰呭彧鐢熸垚涓�鏉¢殢璁夸换鍔�"鏀归�犵殑鍒ゆ嵁锛�
+     *         缂栨帓灞傛寜缁村害浼樺厛绾ч�愪釜灏濊瘯锛屽彧鏈夋嬁鍒� {@code true} 鎵嶇畻璇ョ淮搴︽垚鍔熷苟鍋滄銆�
+     *         鍘熷疄鐜版槸 {@code void}锛岀紪鎺掑眰鐢�"璋冪敤浜嗗嚑娆�"褰撴垚鍔熸暟 鈥斺�� 閭f槸閿欑殑
+     *         锛堜换鍔℃湭鍙戝竷/琚幓閲嶆椂鍚屾牱鏄�"鐢熸垚浜嗕竴鏉�"锛夈��
      */
-    public void writeInSubTask(Long taskid, Boolean check, VisitInhospRow inhosp,
-                               VisitArchiveRow archive, Integer type, String config) {
+    public boolean writeInSubTask(Long taskid, Boolean check, VisitInhospRow inhosp,
+                                  VisitArchiveRow archive, Integer type, String config) {
         // 鍘� L683-685
         String longTaskReason = inhosp.getLongTaskReason();
         String orgId = inhosp.getOrgid();
@@ -120,17 +125,32 @@
         if (taskApi == null) {
             log.warn("銆愬嚭鍏ラ櫌闅忚銆慥isitTaskCreateApi 涓嶅彲鐢紙浠诲姟鍒涘缓妯″潡鏈閰嶏級锛屾湰鎮h�呬笉鐢熸垚瀛愪换鍔°��"
                     + "inhospid={}, taskid={}", inhosp.getInhospid(), taskid);
-            return;
+            return false;
         }
         VisitLongTaskDto serviceTask = taskApi.findPublishedLongTask(taskid);
         if (serviceTask == null) {
             writeMissingTaskFlag(inhosp, type, longTaskReason, taskid);
-            return;
+            return false;
         }
 
         // 鍘� L729-731
         if ("1".equals(inhosp.getInhospstate()) && inhosp.getEndtime() == null) {
-            return;
+            return false;
+        }
+
+        // ------------------------------------------------------------------
+        // 銆愭敼閫犅�2026-10銆戣惤搴撳墠鏈�鍚庝竴閬撳垽閲嶏細
+        //   鍚屼竴鎮h�� + 鍚屼竴娆″嚭闄㈣褰� + 鍚屼竴浠诲姟锛屽彧瑕佸凡缁忔湁涓�鏉℃湭鍒犻櫎鐨勫瓙浠诲姟锛堝惈宸插仠鐢ㄧ殑锛夛紝
+        //   灏变笉鍐� insert銆傚師鍥犺 VisitTaskCreateApi#existsSubtask 鐨勬敞閲婏細
+        //   鎮h�呰閲嶅鎵埌鏃朵細璧�"鍋滄棫 + 鍐� insert 涓�鏉� sendstate=4"鐨勫垎鏀紝
+        //   姣忚窇涓�杞涓�鏉★紝鏈�缁堝悓涓�鎮h�呭嚑鍗佹潯銆�
+        // ------------------------------------------------------------------
+        if (taskApi.existsSubtask(archive == null ? null : archive.getId(),
+                inhosp.getInhospid(), taskid)) {
+            log.info("銆愬嚭鍏ラ櫌闅忚銆戞偅鑰厈}鍑洪櫌璁板綍{}浠诲姟{}宸叉湁瀛愪换鍔★紝璺宠繃閲嶅鐢熸垚銆�",
+                    inhosp.getPatid(), inhosp.getInhospid(), taskid);
+            writeFlagByType(inhosp.getInhospid(), type, "1", null);
+            return true;
         }
 
         // 鍘� L732-736锛氱粍瑁咃紙鍓綔鐢ㄧ敱鏈被瀹炵幇锛岃 missingOutHospTime锛�
@@ -138,7 +158,7 @@
                 toTaskSource(serviceTask, inhosp), inhosp, archive, config, type,
                 row -> onMissingOutHospTime(row));
         if (ObjectUtils.isEmpty(serviceSubtask)) {
-            return;
+            return false;
         }
 
         // 鍘� L737-753锛氬氨璇婄瀹�/鐥呭尯濉厖
@@ -286,6 +306,7 @@
                         serviceSubtask.getTaskid(), serviceSubtask.getPatid());
                 writeFlagByType(inhosp.getInhospid(), type, "2", "鐢熸垚瀛愪换鍔″け璐� " + type);
             }
+            return i == 1;
         } catch (Exception e) {
             // 鍘� L900-912锛氬嚭閿欏洖婊氫簨鍔�
             log.info("鐢熸垚瀛愪换鍔℃姤閿欏洖婊歴erviceSubtask鐨則askid涓猴細{},patid涓猴細{}",
@@ -294,6 +315,7 @@
             //     鍘熸牱淇濈暀锛堣绫绘敞閲婄 1 鏉★級銆�
             writeFlagByTypeForRollback(inhosp.getInhospid(), type, "2", "鐢熸垚瀛愪换鍔℃姤閿欏洖婊� " + type);
             e.printStackTrace();
+            return false;
         }
     }
 
@@ -478,16 +500,25 @@
         com.ruoyi.inhospvisit.domain.row.VisitTaskRow t = new com.ruoyi.inhospvisit.domain.row.VisitTaskRow();
         t.setTaskid(dto.getTaskid());
         t.setTaskName(dto.getTaskName());
+        t.setTaskDesc(dto.getTaskDesc());
         t.setType(dto.getType());
         t.setServiceType(dto.getServiceType());
         t.setTemplateid(dto.getTemplateid());
         t.setTemplatename(dto.getTemplatename());
         t.setLibtemplateid(dto.getLibtemplateid());
+        t.setLibtemplatename(dto.getLibtemplatename());
         t.setSendDay(dto.getSendDay());
         t.setPreachform(dto.getPreachform());
         t.setPreachformDesc(dto.getPreachformDesc());
         t.setOrgid(dto.getOrgid());
         t.setCampusid(dto.getCampusid());
+        // 浠ヤ笅 6 涓悓鏍峰睘浜�"鍘� DtoConversionUtils 鎷疯礉銆侀殢 insert 钀藉簱"鐨勫垪
+        t.setGuid(dto.getGuid());
+        t.setPid(dto.getPid());
+        t.setSendType(dto.getSendType());
+        t.setIsupload(dto.getIsupload());
+        t.setTextParam(dto.getTextParam());
+        t.setUploadTime(dto.getUploadTime());
         t.setUpdateBy(dto.getUpdateBy());
         t.setCreateBy(dto.getCreateBy());
         return t;

--
Gitblit v1.9.3