From 0bbbd746e8c39d91ad7b47a4e36e29ab972dc98c Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 20 十月 2026 16:56:54 +0800
Subject: [PATCH] 处理长期任务发送问题
---
ruoyi-task/src/main/java/com/ruoyi/task/api/contract/VisitTaskCreateApiImpl.java | 63 ++++++++++++++++++++++++++++++-
1 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/ruoyi-task/src/main/java/com/ruoyi/task/api/contract/VisitTaskCreateApiImpl.java b/ruoyi-task/src/main/java/com/ruoyi/task/api/contract/VisitTaskCreateApiImpl.java
index 8698917..cb337ac 100644
--- a/ruoyi-task/src/main/java/com/ruoyi/task/api/contract/VisitTaskCreateApiImpl.java
+++ b/ruoyi-task/src/main/java/com/ruoyi/task/api/contract/VisitTaskCreateApiImpl.java
@@ -12,6 +12,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+
import com.ruoyi.task.domain.entity.ServiceSubtaskEntity;
import com.ruoyi.task.domain.ServiceSubtask;
import com.ruoyi.task.domain.ServiceTask;
@@ -186,6 +187,28 @@
return !CollectionUtils.isEmpty(list);
}
+ /**
+ * 鏄惁瀛樺湪銆屽悓涓�鎮h�� + 鍚屼竴娆″嚭闄㈣褰� + 鍚屼竴浠诲姟銆嶇殑瀛愪换鍔★紙{@code del_flag = 0}锛夈��
+ * <p>
+ * 鐩存帴鐢ㄧ幇鎴愮殑 {@code selectServiceSubtaskList}锛堟湰韬氨甯�
+ * {@code del_flag = 0} + {@code patid} + {@code inhospid} + {@code taskid} 涓変釜鏉′欢锛夛紝
+ * 涓嶆柊澧� XML 鈥斺�� 閬垮厤涓轰簡涓�涓�"鏈夋病鏈�"鍐嶅啓涓�鏉$瓑浠� SQL銆�
+ * <p>
+ * 鈿狅笍 涓嶆寜 {@code sendstate} 杩囨护锛氬凡鍋滅敤锛坰endstate=4锛夌殑鍘嗗彶琛屼篃绠�"鐢熸垚杩�"銆�
+ * 鍚﹀垯"鍋滄棫涓�鏉� + 鍐嶇敓鎴愪竴鏉�"浼氭棤闄愮疮绉� 鈥斺�� 杩欐鏄� 2026-10 鍚屼竴鎮h�呭嚑鍗佹潯瀛愪换鍔$殑鎴愬洜銆�
+ */
+ @Override
+ public boolean existsSubtask(Long patid, Long inhospid, Long taskid) {
+ if (patid == null || taskid == null) {
+ return false;
+ }
+ ServiceSubtaskEntity q = new ServiceSubtaskEntity();
+ q.setPatid(patid);
+ q.setInhospid(inhospid);
+ q.setTaskid(taskid);
+ return !CollectionUtils.isEmpty(serviceSubtaskMapper.selectServiceSubtaskList(q));
+ }
+
// ==========================================================================
// 瀛楁鎼繍锛堥�愬瓧娈靛鐓э紝鍕�"椤烘墜绮剧畝"锛�
// ==========================================================================
@@ -194,17 +217,27 @@
VisitLongTaskDto dto = new VisitLongTaskDto();
dto.setTaskid(t.getTaskid());
dto.setTaskName(t.getTaskName());
+ dto.setTaskDesc(t.getTaskDesc());
dto.setType(t.getType());
dto.setServiceType(t.getServiceType());
dto.setTemplateid(t.getTemplateid());
dto.setTemplatename(t.getTemplatename());
dto.setLibtemplateid(t.getLibtemplateid());
+ dto.setLibtemplatename(t.getLibtemplatename());
dto.setSendDay(t.getSendDay());
dto.setPreachform(t.getPreachform());
dto.setPreachformDesc(t.getPreachformDesc());
dto.setOrgid(t.getOrgid());
dto.setCampusid(t.getCampusid());
dto.setHosType(t.getHospType());
+ // 鍘� boxedServiceSubtask 绗竴琛岀殑 DtoConversionUtils.sourceToTarget 浼氭妸杩� 6 涓�
+ // 鎷疯繘瀛愪换鍔″苟闅� insertServiceSubtask 钀藉簱锛涗笉鎼氨鏄潤榛樹涪鍒楋紙瑙� VisitLongTaskDto 娉ㄩ噴锛�
+ dto.setGuid(t.getGuid());
+ dto.setPid(t.getPid());
+ dto.setSendType(t.getSendType());
+ dto.setIsupload(t.getIsupload());
+ dto.setTextParam(t.getTextParam());
+ dto.setUploadTime(t.getUploadTime());
dto.setUpdateBy(t.getUpdateBy());
dto.setCreateBy(t.getCreateBy());
return dto;
@@ -230,6 +263,7 @@
e.setSex(d.getSex());
e.setAge(d.getAge());
e.setInhospid(d.getInhospid());
+ e.setHospno(d.getHospno());
e.setNurseId(d.getNurseId());
e.setNurseName(d.getNurseName());
e.setDrcode(d.getDrcode());
@@ -246,6 +280,7 @@
e.setTemplateid(d.getTemplateid());
e.setTemplatename(d.getTemplatename());
e.setLibtemplateid(d.getLibtemplateid());
+ e.setLibtemplatename(d.getLibtemplatename());
e.setStarttime(d.getStarttime());
e.setEndtime(d.getEndtime());
e.setLongSendTime(d.getLongSendTime());
@@ -266,6 +301,29 @@
e.setOperationItemId(d.getOperationItemId());
e.setCreateBy(d.getCreateBy());
e.setUpdateBy(d.getUpdateBy());
+ // 鈿狅笍 create_time / update_time 涔嬪墠涔熸槸婕忕殑锛�
+ // 缁勮鍣紙boxedServiceSubtask 鍘� L1157-1177锛夈�亀riteInSubTask 鐨勬瘡涓� insert 鍒嗘敮
+ // 閮藉湪 setCreateTime/setUpdateTime锛孹ML 涔熸湁瀵瑰簲鏉′欢鍒楋紝浣嗚繖閲屾病鏄犲皠 鈫�
+ // 涓ゆ潯鏃堕棿鍒楅潤榛樿惤 NULL锛�2026-10 瀹炴満鍙戠幇锛夈��
+ e.setCreateTime(d.getCreateTime());
+ e.setUpdateTime(d.getUpdateTime());
+ // ------------------------------------------------------------------
+ // 浠诲姟鏉ユ簮瀛楁锛堝師 boxedServiceSubtask 绗竴琛� DtoConversionUtils 鏁存壒鎷峰叆锛�
+ //
+ // 鈿狅笍 杩� 8 涓槸"浠诲姟 鈫� 瀛愪换鍔�"鐨勫揩鐓у垪銆傚師鍏堝彧鎼簡 taskid/serviceType 绛夛紝
+ // taskName/taskDesc/type/libtemplatename 浠ュ強 guid/pid/sendType/isupload/
+ // textParam/uploadTime 鍏ㄩ儴婕忔槧灏� 鈫� XML 鐨� <if test="xxx != null"> 鐩存帴璺宠繃,
+ // service_subtask 涓婅繖浜涘垪闈欓粯涓� NULL锛�2026-10 鐢� addSubTaskByRule 瀹炴満鍙戠幇锛夈��
+ // ------------------------------------------------------------------
+ e.setTaskName(d.getTaskName());
+ e.setTaskDesc(d.getTaskDesc());
+ e.setType(d.getType());
+ e.setGuid(d.getGuid());
+ e.setPid(d.getPid());
+ e.setSendType(d.getSendType());
+ e.setIsupload(d.getIsupload());
+ e.setTextParam(d.getTextParam());
+ e.setUploadTime(d.getUploadTime());
// ------------------------------------------------------------------
// 闂ㄦ�ヨ瘖闅忚涓撶敤瀛楁锛圤uthospSubtaskDraft锛夈��
@@ -277,10 +335,9 @@
// 瑙� OuthospSubtaskDraft 鐨勭被娉ㄩ噴銆�
// ------------------------------------------------------------------
if (d instanceof com.ruoyi.common.core.service.dto.OuthospSubtaskDraft) {
- com.ruoyi.common.core.service.dto.OuthospSubtaskDraft o =
- (com.ruoyi.common.core.service.dto.OuthospSubtaskDraft) d;
+ com.ruoyi.common.core.service.dto.OuthospSubtaskDraft o = (com.ruoyi.common.core.service.dto.OuthospSubtaskDraft) d;
+ // hospno 宸蹭笂鎻愬埌鐖剁被 VisitSubtaskDraft锛堜笂闈㈢粺涓�鏄犲皠杩囦簡锛夛紝杩欓噷涓嶅啀閲嶅
// 鍙湁鐖剁被娌℃湁鐨勫瓧娈垫墠鍦ㄨ繖閲岃ˉ鏄犲皠锛堝叾浣欏 sendname/sfzh/phone/sex/age 鐖剁被宸叉湁锛�
- e.setHospno(o.getHospno());
e.setAdmindate(o.getAdmitdate());
e.setFinishtime(o.getFinishtime());
// 鈿狅笍 鍘熷疄鐜扮‖缂栫爜 "1"锛堜笉璇� serviceTask.getHospType()锛夛紝姝ゅ淇濇寔涓�鑷�
--
Gitblit v1.9.3