From af6c73841b54f0c9002ce85b8c0d1679e25d5d7c Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 01 七月 2026 18:06:02 +0800
Subject: [PATCH] 【景宁】任务组开发

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |  102 +++++++--------------------------------------------
 1 files changed, 14 insertions(+), 88 deletions(-)

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 14acb1a..40a747d 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -16,6 +16,7 @@
 import com.ruoyi.system.mapper.SysConfigMapper;
 import com.smartor.common.FtpService;
 import com.smartor.common.MtSubmitSmUtil;
+import com.smartor.common.ScheduleSubtaskBuilder;
 import com.smartor.config.PhoneUtils;
 import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
 import com.smartor.domain.*;
@@ -119,7 +120,7 @@
     private IServiceTaskScheduleService serviceTaskScheduleService;
 
     @Autowired
-    private com.smartor.common.ScheduleSubtaskBuilder scheduleSubtaskBuilder;
+    private ScheduleSubtaskBuilder scheduleSubtaskBuilder;
 
     @Autowired
     private FtpService ftpService;
@@ -747,10 +748,14 @@
                     scheduleVO.setOrgid(serviceTask.getOrgid());
                     scheduleVO.setCampusid(serviceTask.getCampusid());
                     scheduleVO.setCreateBy(serviceTask.getCreateBy());
+
+                    scheduleVO.setDeptCodes(serviceTaskVO.getDeptcode());
+                    scheduleVO.setWardCodes(serviceTaskVO.getLeavehospitaldistrictcode());
+                    scheduleVO.setIcd10Codes(serviceTaskVO.getIcd10code());
+                    scheduleVO.setOplevelCodes(serviceTaskVO.getOplevelcode());
+
                     log.info("----serviceTaskSchedule鐨勫�间负锛歿}", scheduleVO);
                     serviceTaskScheduleService.saveScheduleWithDetail(scheduleVO);
-                    // 缁戝畾缁村害鍐欐潯浠惰〃锛堜緵 HIS 鑷姩绾冲叆鍖归厤锛宭ongtask 鎭�=1锛�
-                    bindDimensionCondition(serviceTask, serviceTaskVO);
                 } else {
                     ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
                     serviceTaskdept.setTaskId(serviceTask.getTaskid());
@@ -846,7 +851,7 @@
                         List<ServiceTaskScheduleDetail> detailList =
                                 serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId());
                         scheduleSubtaskBuilder.buildSubtasksForPatient(
-                                serviceTask, serviceTaskVO, schedule, detailList, patTaskRelevance, serviceSubtask);
+                                serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask);
                         continue;
                     }
 
@@ -1076,11 +1081,12 @@
                     scheduleVO.setTaskid(serviceTask.getTaskid());
                     scheduleVO.setOrgid(serviceTask.getOrgid());
                     scheduleVO.setCampusid(serviceTask.getCampusid());
+                    scheduleVO.setDeptCodes(serviceTaskVO.getDeptcode());
+                    scheduleVO.setWardCodes(serviceTaskVO.getLeavehospitaldistrictcode());
+                    scheduleVO.setIcd10Codes(serviceTaskVO.getIcd10code());
+                    scheduleVO.setOplevelCodes(serviceTaskVO.getOplevelcode());
                     scheduleVO.setCreateBy(serviceTask.getUpdateBy());
                     serviceTaskScheduleService.saveScheduleWithDetail(scheduleVO);
-                    // 鍏堟竻鏃х淮搴︽潯浠惰〃锛屽啀鎸夋渶鏂板叆鍙傞噸鍐欙紙闃茶繃鏈熺淮搴︽畫鐣欏鑷磋绾冲叆锛�
-                    clearDimensionCondition(serviceTask.getTaskid());
-                    bindDimensionCondition(serviceTask, serviceTaskVO);
                 }
             }
             if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
@@ -1145,7 +1151,7 @@
                             serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
                             serviceSubtask.setCreateBy(serviceTask.getUpdateBy());
                             scheduleSubtaskBuilder.buildSubtasksForPatient(
-                                    serviceTask, serviceTaskVO, schedule, detailList, patTaskRelevance, serviceSubtask);
+                                    serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask);
                             continue;
                         }
                         if (patTaskRelevance.getIsoperation() == 2) {
@@ -1199,86 +1205,6 @@
         Map<String, Integer> map = new HashMap<>();
         map.put("taskId", serviceTask.getTaskid().intValue());
         return map;
-    }
-
-    /**
-     * 浠诲姟缁勶紙appltype=5锛夌粦瀹氱淮搴﹀啓鏉′欢琛紝渚� HIS 鑷姩绾冲叆鍖归厤銆�
-     * longtask 鎭�=1锛堝惁鍒欑嫭绔嬫壂鎻�/涓绘壂鎻忔寜 longtask=1 鏌ヤ笉鍒帮級銆�
-     * 澶嶇敤鐜版湁 service_taskdept锛堢瀹eptType=1/鐥呭尯deptType=2锛夈�乻ervice_taskdiag锛堢柧鐥咃級銆�
-     * 鎵嬫湳缁村害鏈湡涓嶅啓锛堟殏涓嶆敮鎸佽嚜鍔ㄧ撼鍏ワ級銆�
-     */
-    private void bindDimensionCondition(ServiceTask serviceTask, ServiceTaskVO vo) {
-        // 绉戝
-        if (StringUtils.isNotEmpty(vo.getDeptcode())) {
-            for (String deptCode : vo.getDeptcode().split(",")) {
-                if (StringUtils.isEmpty(deptCode)) continue;
-                ServiceTaskdept d = new ServiceTaskdept();
-                d.setTaskId(serviceTask.getTaskid());
-                d.setTaskName(serviceTask.getTaskName());
-                d.setOrgid(serviceTask.getOrgid());
-                d.setLongtask(1L);
-                d.setDeptCode(deptCode);
-                d.setDeptType("1");
-                d.setServiceType(vo.getServiceType());
-                serviceTaskdeptService.insertServiceTaskdept(d);
-            }
-        }
-        // 鐥呭尯
-        if (StringUtils.isNotEmpty(vo.getLeavehospitaldistrictcode())) {
-            for (String wardCode : vo.getLeavehospitaldistrictcode().split(",")) {
-                if (StringUtils.isEmpty(wardCode)) continue;
-                ServiceTaskdept d = new ServiceTaskdept();
-                d.setTaskId(serviceTask.getTaskid());
-                d.setTaskName(serviceTask.getTaskName());
-                d.setOrgid(serviceTask.getOrgid());
-                d.setLongtask(1L);
-                d.setDeptCode(wardCode);
-                d.setDeptType("2");
-                d.setServiceType(vo.getServiceType());
-                serviceTaskdeptService.insertServiceTaskdept(d);
-            }
-        }
-        // 鐤剧梾锛堢敤 split(",")锛屽嬁鐓ф妱 appltype=3 鐜扮綉鐨� split("$") bug锛�
-        if (StringUtils.isNotEmpty(vo.getIcd10code())) {
-            String[] codes = vo.getIcd10code().split(",");
-            String[] names = StringUtils.isNotEmpty(vo.getIcd10name()) ? vo.getIcd10name().split(",") : new String[0];
-            for (int i = 0; i < codes.length; i++) {
-                if (StringUtils.isEmpty(codes[i])) continue;
-                ServiceTaskdiag dg = new ServiceTaskdiag();
-                dg.setTaskId(serviceTask.getTaskid());
-                dg.setTaskName(serviceTask.getTaskName());
-                dg.setOrgid(serviceTask.getOrgid());
-                dg.setLongtask(1L);
-                dg.setServiceType(vo.getServiceType());
-                dg.setIcd10code(codes[i]);
-                dg.setIcd10name(i < names.length ? names[i] : null);
-                dg.setGuid(serviceTask.getGuid());
-                dg.setCreateTime(new Date());
-                serviceTaskdiagService.insertServiceTaskdiag(dg);
-            }
-        }
-    }
-
-    /**
-     * 浠诲姟缁勪慨鏀规椂锛屽厛杞垹璇� task 鏃х殑缁村害鏉′欢琛ㄨ褰曪紙闃茶繃鏈熺淮搴︽畫鐣欏鑷磋绾冲叆锛夈��
-     */
-    private void clearDimensionCondition(Long taskId) {
-        ServiceTaskdept dq = new ServiceTaskdept();
-        dq.setTaskId(taskId);
-        List<ServiceTaskdept> depts = serviceTaskdeptService.selectServiceTaskdeptList(dq);
-        if (CollectionUtils.isNotEmpty(depts)) {
-            for (ServiceTaskdept d : depts) {
-                serviceTaskdeptService.deleteServiceTaskdeptById(d.getId());
-            }
-        }
-        ServiceTaskdiag gq = new ServiceTaskdiag();
-        gq.setTaskId(taskId);
-        List<ServiceTaskdiag> diags = serviceTaskdiagService.selectServiceTaskdiagList(gq);
-        if (CollectionUtils.isNotEmpty(diags)) {
-            for (ServiceTaskdiag g : diags) {
-                serviceTaskdiagService.deleteServiceTaskdiagById(g.getId());
-            }
-        }
     }
 
     @Override

--
Gitblit v1.9.3