From 83c49918bb3709fce818fcdeb8c1db147eadcede Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 16 七月 2026 16:44:15 +0800
Subject: [PATCH] Merge branch 'master' into master-任务组
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 134 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 128 insertions(+), 6 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 44bef82..e1e7b6c 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.*;
@@ -115,6 +116,12 @@
@Autowired
private IServiceSubtaskDetailTraceService traceService;
+
+ @Autowired
+ private IServiceTaskScheduleService serviceTaskScheduleService;
+
+ @Autowired
+ private ScheduleSubtaskBuilder scheduleSubtaskBuilder;
@Autowired
private FtpService ftpService;
@@ -745,6 +752,29 @@
serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
}
}
+
+ } else if (serviceTaskVO.getAppltype().equals("5")) {
+ // 浠诲姟缁勶細蹇呴』涓洪暱鏈熶换鍔★紙鍚﹀垯 findMatchingTaskIds 鎵笉鍒帮紝鏃犳硶鑷姩绾冲叆鏂板嚭闄㈡偅鑰咃級
+ if (serviceTaskVO.getLongTask() == null || serviceTaskVO.getLongTask() != 1) {
+ throw new BaseException("appltype=5 浠诲姟缁勫繀椤讳负闀挎湡浠诲姟锛坙ongTask=1锛�");
+ }
+ // 淇濆瓨璁″垝 + 鏄庣粏
+ ServiceTaskScheduleVO scheduleVO = serviceTaskVO.getServiceTaskScheduleVO();
+ if (scheduleVO == null) {
+ throw new BaseException("appltype=5 浠诲姟缁勶細serviceTaskScheduleVO 涓嶈兘涓虹┖");
+ }
+ scheduleVO.setTaskid(serviceTask.getTaskid());
+ 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);
} else {
ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
serviceTaskdept.setTaskId(serviceTask.getTaskid());
@@ -830,6 +860,20 @@
serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime());
serviceSubtask.setVisitTime(patTaskRelevance.getVisittime());
}
+
+ // ===== appltype=5 浠诲姟缁勶細鎸� schedule 鐨� detailList 娲剧敓澶氭潯 subtask =====
+ if ("5".equals(serviceTaskVO.getAppltype())) {
+ ServiceTaskSchedule schedule = serviceTaskScheduleService.selectByTaskid(serviceTask.getTaskid());
+ if (schedule == null) {
+ throw new BaseException("appltype=5 浠诲姟缁勶細鏈壘鍒� taskid=" + serviceTask.getTaskid() + " 鐨勮鍒�");
+ }
+ List<ServiceTaskScheduleDetail> detailList =
+ serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId());
+ scheduleSubtaskBuilder.buildSubtasksForPatient(
+ serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask);
+ continue;
+ }
+
serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
serviceSubtask.getId().intValue();
@@ -1044,6 +1088,24 @@
}
}
}
+ } else if (serviceTaskVO.getAppltype().equals("5")) {
+ // 浠诲姟缁勪慨鏀癸細鍒犳棫 schedule + 鏄庣粏锛岄噸寤恒�俿ubtask 涓婇潰宸叉壒閲忔竻鐞嗐��
+ if (serviceTaskVO.getLongTask() == null || serviceTaskVO.getLongTask() != 1) {
+ throw new BaseException("appltype=5 浠诲姟缁勫繀椤讳负闀挎湡浠诲姟锛坙ongTask=1锛�");
+ }
+ ServiceTaskScheduleVO scheduleVO = serviceTaskVO.getServiceTaskScheduleVO();
+ if (scheduleVO == null) {
+ throw new BaseException("appltype=5 浠诲姟缁勶細serviceTaskScheduleVO 涓嶈兘涓虹┖");
+ }
+ 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);
}
}
if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
@@ -1097,6 +1159,20 @@
serviceSubtask.setVisitTime(patTaskRelevance.getVisittime());
serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam()));
if (patTaskRelevance.getIsoperation() != null) {
+ // appltype=5 浠诲姟缁勶細杩藉姞鎮h�咃紙isoperation=1锛夎蛋璁″垝娲剧敓锛涗慨鏀癸紙2锛�/鍒犻櫎锛�3锛変粛璧板師閫昏緫
+ if ("5".equals(serviceTaskVO.getAppltype()) && patTaskRelevance.getIsoperation() == 1) {
+ ServiceTaskSchedule schedule = serviceTaskScheduleService.selectByTaskid(serviceTask.getTaskid());
+ if (schedule == null) {
+ throw new BaseException("appltype=5 浠诲姟缁勶細鏈壘鍒� taskid=" + serviceTask.getTaskid() + " 鐨勮鍒�");
+ }
+ List<ServiceTaskScheduleDetail> detailList =
+ serviceTaskScheduleService.selectDetailByScheduleid(schedule.getId());
+ serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
+ serviceSubtask.setCreateBy(serviceTask.getUpdateBy());
+ scheduleSubtaskBuilder.buildSubtasksForPatient(
+ serviceTask, serviceTaskVO.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask);
+ continue;
+ }
if (patTaskRelevance.getIsoperation() == 2) {
serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
@@ -1149,7 +1225,6 @@
map.put("taskId", serviceTask.getTaskid().intValue());
return map;
}
-
@Override
public void phoneCallBack(PhoneCallBackVO phoneCallBackVO) {
@@ -2863,15 +2938,15 @@
//棣栨鍑洪櫌闅忚
if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() == 1) {
//棣栨搴旈殢璁�
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+ if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L)) {
serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L);
}
- //棣栨寰呴殢璁�
- if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
- serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L);
+ //棣栨鏃犻渶闅忚
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate().equals(4L)) {
+ serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
}
//棣栨闅忚澶辫触(鍖呮嫭闅忚澶辫触+浜哄伐瓒呮椂)
- if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) {
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(5L) || serviceSubtask.getSendstate().equals(7L))) {
serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
}
/**
@@ -2881,6 +2956,10 @@
//棣栨闅忚鎴愬姛
if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L))) {
serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+ }
+ //棣栨鏃犻渶闅忚
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
+ serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
}
//棣栨闅忚浜哄伐 (涓嶇粺璁′笉鎵ц)
if (serviceSubtask.getSendstate() != null && !serviceSubtask.getSendstate().equals(4L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
@@ -2903,6 +2982,10 @@
if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L))) {
serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
}
+ //棣栨鏃犻渶闅忚
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
+ serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
+ }
//棣栨闅忚浜哄伐 (鍙粺璁″凡瀹屾垚)
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate().equals(6L) && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
@@ -2923,6 +3006,10 @@
//棣栨闅忚鎴愬姛 - 缁熻鏃跺�欏姞涓婁笉鎵ц鐨勶紝宸插彂閫佺殑
if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(6L) || serviceSubtask.getSendstate().equals(3L) || serviceSubtask.getSendstate().equals(4L))) {
serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
+ }
+ //棣栨鏃犻渶闅忚
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
+ serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
}
//棣栨闅忚浜哄伐 (缁熻涓嶆墽琛�)
if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
@@ -2956,6 +3043,10 @@
//鍐嶆搴旈殢璁�
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
serviceSubtaskStatistic.setNeedFollowUpAgain(serviceSubtaskStatistic.getNeedFollowUpAgain() + 1L);
+ }
+ //鍐嶆鏃犻渶闅忚
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+ serviceSubtaskStatistic.setNonFollowUpAgain(serviceSubtaskStatistic.getNonFollowUpAgain() + 1L);
}
//鍐嶆寰呴殢璁�
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
@@ -3107,6 +3198,10 @@
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L);
}
+ //棣栨鏃犻渶闅忚
+ if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate().equals(4L))) {
+ serviceSubtaskStatistic.setNonFollowUpFirst(serviceSubtaskStatistic.getNonFollowUpFirst() + 1L);
+ }
//棣栨寰呴殢璁�
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L);
@@ -3253,6 +3348,10 @@
//鍐嶆搴旈殢璁�
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
serviceSubtaskStatistic.setNeedFollowUpAgain(serviceSubtaskStatistic.getNeedFollowUpAgain() + 1L);
+ }
+ //鍐嶆鏃犻渶闅忚
+ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+ serviceSubtaskStatistic.setNonFollowUpAgain(serviceSubtaskStatistic.getNonFollowUpAgain() + 1L);
}
//鍐嶆寰呴殢璁�
if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
@@ -4511,6 +4610,29 @@
}
@Override
+ public List<ServiceSubtask> gethelibraryCountHyperlink(HeLibraryCountVO heLibraryCountVO){
+ String hyperLinkInfoType = heLibraryCountVO.getHyperLinkInfoType();
+ if(StringUtils.isNotEmpty(hyperLinkInfoType)){
+ heLibraryCountVO.setSendstate(null);
+ heLibraryCountVO.setIsFinished(null);
+ switch (hyperLinkInfoType) {
+ case "totalCountInfo":
+ break;
+ case "sendSuccessCountInfo":
+ heLibraryCountVO.setSendstate(6L);
+ break;
+ case "readCountInfo":
+ heLibraryCountVO.setIsFinished("1");
+ break;
+ default:
+ break;
+ }
+ }
+ List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.gethelibraryCountHyperlink(heLibraryCountVO);
+ return serviceSubtasks;
+ }
+
+ @Override
public Map<String, Object> smsSubTask(Long subid) {
log.info("smsSubTask鐨勫叆鍙備负锛歿}", subid);
Map<String, Object> resultMap = new HashMap<>();
--
Gitblit v1.9.3