From af3ec57db40f80fba5903aaedae5e66bf46a7ed9 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 01 七月 2026 10:57:18 +0800
Subject: [PATCH] 【景宁】任务组开发
---
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 324 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 264 insertions(+), 60 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 b4d9b1c..14acb1a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -12,7 +12,10 @@
import com.ruoyi.common.utils.*;
import com.ruoyi.common.core.service.IConfigService;
import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.mapper.SysConfigMapper;
import com.smartor.common.FtpService;
+import com.smartor.common.MtSubmitSmUtil;
import com.smartor.config.PhoneUtils;
import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
import com.smartor.domain.*;
@@ -113,6 +116,12 @@
private IServiceSubtaskDetailTraceService traceService;
@Autowired
+ private IServiceTaskScheduleService serviceTaskScheduleService;
+
+ @Autowired
+ private com.smartor.common.ScheduleSubtaskBuilder scheduleSubtaskBuilder;
+
+ @Autowired
private FtpService ftpService;
@Autowired
@@ -135,6 +144,12 @@
@Value("${ASRCallBackPath}")
private String ASRCallBackPath;
+
+ @Autowired
+ private MtSubmitSmUtil mtSubmitSmUtil;
+
+ @Autowired
+ private SysConfigMapper sysConfigMapper;
@Autowired
private RedisTemplate redisTemplate;
@@ -343,18 +358,17 @@
// serviceTaskVO.setPreachform(result);
}
- if(StringUtils.isNotEmpty(serviceTaskVO.getPreachformDesc())){
+ if (StringUtils.isNotEmpty(serviceTaskVO.getPreachformDesc())) {
//鐩存帴閫氳繃PreachformDesc鐢熸垚List杩斿洖
try {
List<Map<String, Object>> mapList = objectMapper.readValue(serviceTaskVO.getPreachformDesc(), List.class);
serviceTaskVO.setPreachformList(mapList);
- }catch (Exception e) {
+ } catch (Exception e) {
}
- }else {
- if(CollectionUtils.isNotEmpty(list)){
+ } else {
+ if (CollectionUtils.isNotEmpty(list)) {
//鑾峰彇璇ユ偅鑰呮墍鏈夌殑鎵ц鐘舵��
- List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformLists.stream()
- .filter((item -> item.getSubid().equals(list.get(0).getId()) && item.getTaskid().equals(serviceTask.getTaskid()))).collect(Collectors.toList());
+ List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformLists.stream().filter((item -> item.getSubid().equals(list.get(0).getId()) && item.getTaskid().equals(serviceTask.getTaskid()))).collect(Collectors.toList());
List<Map<String, Object>> resultList = serviceSubtaskPreachformList.stream().map(item -> {
Map<String, Object> map = new HashMap<>();
map.put("sort", item.getSort());
@@ -372,16 +386,12 @@
@Override
public List<ServiceSubtaskRes> patItem(ServiceSubtaskEntity serviceSubtaskEntity) {
if (serviceSubtaskEntity.getSendstateView() != null) {
- // 1锛氬緟闅忚锛�2 寰呭彂閫侊級锛�2锛氶殢璁夸腑锛�3 宸插彂閫併��1 琚鍙栵級銆�3锛氭湭瀹屾垚锛�5 鍙戦�佸け璐ャ��7銆佽秴鏃讹級銆�4锛氬凡瀹屾垚锛� 6 宸插畬鎴愶級銆�5锛氭棤闇�闅忚锛�4 涓嶆墽琛岋級
+ // 1锛氬緟闅忚锛�1 琚鍙栥��2 寰呭彂閫併��3 宸插彂閫併��5 鍙戦�佸け璐ャ��7銆佽秴鏃讹級锛�2锛氬凡瀹屾垚锛� 6 宸插畬鎴愶級銆�3锛氭棤闇�闅忚锛�4 涓嶆墽琛岋級
if (serviceSubtaskEntity.getSendstateView() == 1)
- serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(2L)));
+ serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 5L, 7L)));
if (serviceSubtaskEntity.getSendstateView() == 2)
- serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(1L, 3L)));
- if (serviceSubtaskEntity.getSendstateView() == 3)
- serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(5L, 7L)));
- if (serviceSubtaskEntity.getSendstateView() == 4)
serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(6L)));
- if (serviceSubtaskEntity.getSendstateView() == 5)
+ if (serviceSubtaskEntity.getSendstateView() == 3)
serviceSubtaskEntity.setSendstates(new ArrayList<>(Arrays.asList(4L)));
}
@@ -394,13 +404,10 @@
serviceSubtaskRes.setContinueContent(serviceSubtask.getContinueContent());
}
// 1锛氬緟闅忚锛�2 寰呭彂閫侊級锛�2锛氶殢璁夸腑锛�3 宸插彂閫併��1 琚鍙栵級銆�3锛氭湭瀹屾垚锛�5 鍙戦�佸け璐ャ��7銆佽秴鏃讹級銆�4锛氬凡瀹屾垚锛� 6 宸插畬鎴愶級銆�5锛氭棤闇�闅忚锛�4 涓嶆墽琛岋級
- if (serviceSubtaskRes.getSendstate() == 2) serviceSubtaskRes.setSendstateView(1L);
- if (serviceSubtaskRes.getSendstate() == 1 || serviceSubtaskRes.getSendstate() == 3L)
- serviceSubtaskRes.setSendstateView(2L);
- if (serviceSubtaskRes.getSendstate() == 5 || serviceSubtaskRes.getSendstate() == 7L)
- serviceSubtaskRes.setSendstateView(3L);
- if (serviceSubtaskRes.getSendstate() == 6) serviceSubtaskRes.setSendstateView(4L);
- if (serviceSubtaskRes.getSendstate() == 4) serviceSubtaskRes.setSendstateView(5L);
+ if (serviceSubtaskRes.getSendstate() == 1 || serviceSubtaskRes.getSendstate() == 2L || serviceSubtaskRes.getSendstate() == 3L || serviceSubtaskRes.getSendstate() == 5 || serviceSubtaskRes.getSendstate() == 7L)
+ serviceSubtaskRes.setSendstateView(1L);
+ if (serviceSubtaskRes.getSendstate() == 6) serviceSubtaskRes.setSendstateView(2L);
+ if (serviceSubtaskRes.getSendstate() == 4) serviceSubtaskRes.setSendstateView(3L);
serviceSubtaskResList.add(serviceSubtaskRes);
}
return serviceSubtaskResList;
@@ -475,13 +482,16 @@
// MyBatis 鐨� SUM 鍦ㄦ病鏈夊尮閰嶈鏃朵細杩斿洖 null
result.putIfAbsent("wzx", 0);
result.putIfAbsent("ysf", 0);
- result.putIfAbsent("yc", 0);
- result.putIfAbsent("jg", 0);
result.putIfAbsent("fssb", 0);
result.putIfAbsent("yfs", 0);
result.putIfAbsent("blq", 0);
- result.putIfAbsent("dsf", 0);
result.putIfAbsent("total", 0);
+ result.putIfAbsent("wxsf", 0);
+ result.putIfAbsent("xsf", 0);
+ result.putIfAbsent("dsf", 0);
+ result.putIfAbsent("ywc", 0);
+ result.putIfAbsent("yc", 0);
+ result.putIfAbsent("jg", 0);
}
return result;
}
@@ -699,8 +709,8 @@
//鍗楀崕闄勪竴鐨刬cd10code鏄湁閲嶅鐨勶紝鎵�浠ヤ笉鑳界敤鍗楀崕闄勪竴鐨刬cd10code鍘绘煡璇�
log.info("----serviceTaskdiag鐨勫�间负锛歿}", serviceTaskdiag);
if (!StringUtils.isEmpty(serviceTaskVO.getIcd10name())) {
- String[] Icd10Names = serviceTaskVO.getIcd10name().split(",");
- String[] Icd10codes = serviceTaskVO.getIcd10code().split(",");
+ String[] Icd10Names = serviceTaskVO.getIcd10name().split("$");
+ String[] Icd10codes = serviceTaskVO.getIcd10code().split("$");
for (int i = 0; i < Icd10Names.length; i++) {
serviceTaskdiag.setIcd10code(Icd10codes[i]);
serviceTaskdiag.setIcd10name(Icd10Names[i]);
@@ -723,6 +733,24 @@
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());
+ log.info("----serviceTaskSchedule鐨勫�间负锛歿}", scheduleVO);
+ serviceTaskScheduleService.saveScheduleWithDetail(scheduleVO);
+ // 缁戝畾缁村害鍐欐潯浠惰〃锛堜緵 HIS 鑷姩绾冲叆鍖归厤锛宭ongtask 鎭�=1锛�
+ bindDimensionCondition(serviceTask, serviceTaskVO);
} else {
ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
serviceTaskdept.setTaskId(serviceTask.getTaskid());
@@ -778,8 +806,8 @@
serviceSubtask.setInhospid(patTaskRelevance.getHospid());
//鏂板缓瀹屾垚灏辨槸寰呭彂閫佺姸鎬�
serviceSubtask.setSendstate(2L);
- serviceSubtask.setDeptcode(StringUtils.isNotEmpty(patTaskRelevance.getDeptcode())?patTaskRelevance.getDeptcode():serviceTaskVO.getDeptcode());
- serviceSubtask.setDeptname(StringUtils.isNotEmpty(patTaskRelevance.getDeptName())?patTaskRelevance.getDeptName():serviceTaskVO.getDeptname());
+ serviceSubtask.setDeptcode(StringUtils.isNotEmpty(patTaskRelevance.getDeptcode()) ? patTaskRelevance.getDeptcode() : serviceTaskVO.getDeptcode());
+ serviceSubtask.setDeptname(StringUtils.isNotEmpty(patTaskRelevance.getDeptName()) ? patTaskRelevance.getDeptName() : serviceTaskVO.getDeptname());
serviceSubtask.setLeavehospitaldistrictcode(patTaskRelevance.getLeavehospitaldistrictcode());
serviceSubtask.setLeavehospitaldistrictname(patTaskRelevance.getLeavehospitaldistrictname());
serviceSubtask.setType(serviceTaskVO.getType());
@@ -802,11 +830,26 @@
serviceSubtask.setUpdateBy(serviceTask.getCreateBy());
serviceSubtask.setVisitTime(DateUtils.parseDate(serviceTaskVO.getShowTimeMorn()));
//濡傛灉绔嬪嵆鎵ц锛屾椂闂村氨鏄綋鍓嶆椂闂�
- if(serviceTaskVO.getSendType()!=null&&serviceTaskVO.getSendType()==2) serviceSubtask.setVisitTime(new Date());
+ if (serviceTaskVO.getSendType() != null && serviceTaskVO.getSendType() == 2)
+ serviceSubtask.setVisitTime(new Date());
if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) {
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, schedule, detailList, patTaskRelevance, serviceSubtask);
+ continue;
+ }
+
serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
serviceSubtask.getId().intValue();
@@ -957,7 +1000,7 @@
if (StringUtils.isNotEmpty(serviceTaskVO.getIcd10code())) {
String[] icd10codes = serviceTaskVO.getIcd10code().split(",");
String[] icd10names = serviceTaskVO.getIcd10name().split(",");
- if(!active.equals("nhfy")&&!active.equals("druid")){
+ if (!active.equals("nhfy") && !active.equals("druid")) {
if (icd10codes.length != icd10names.length) {
throw new BaseException("鐤剧梾缂栫爜鍜岀柧鐥呭悕绉版暟閲忎笉涓�鑷�");
}
@@ -988,44 +1031,56 @@
// }
// serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
- serviceTaskoper.setOplevelcode(serviceTaskVO.getOplevelcode());
+// serviceTaskoper.setOplevelcode(serviceTaskVO.getOplevelcode());
serviceTaskoper.setTaskId(serviceTask.getTaskid());
serviceTaskoper.setTaskName(serviceTask.getTaskName());
serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask()));
serviceTaskoper.setGuid(serviceTask.getGuid());
serviceTaskoper.setOrgid(serviceTask.getOrgid());
- serviceTaskoper.setCreateTime(new Date());
-// if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
-// String[] opcodes = serviceTaskVO.getOpcode().split(",");
-// for (String opcode : opcodes) {
-// //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦�
-// ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
-// serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
-// serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode());
-// List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
-//
-// serviceTaskoper.setOpcode(opcode);
-// log.info("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper);
-// if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
-// serviceTaskoper.setId(serviceTaskopers.get(0).getId());
-// serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
-// } else {
-// serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
-// }
-// }
-// }
- ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
- serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
- serviceTaskoper2.setOrgid(serviceTask.getOrgid());
-// serviceTaskoper2.setOplevelcode(serviceTaskVO.getOplevelcode());
- List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
- if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
- serviceTaskoper.setId(serviceTaskopers.get(0).getId());
- serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
- } else {
- serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
+ serviceTaskoper.setDeptCode(serviceTask1.getDeptcode());
+ serviceTaskoper.setDeptName(serviceTask1.getDeptname());
+ serviceTaskoper.setWardCode(serviceTask1.getLeavehospitaldistrictcode());
+ serviceTaskoper.setWardName(serviceTask1.getLeavehospitaldistrictname());
+
+ serviceTaskoper.setCreateTime(new Date());
+ if (StringUtils.isNotEmpty(serviceTaskVO.getOplevelcode())) {
+ String[] opLevelcodes = serviceTaskVO.getOplevelcode().split(",");
+ for (String opLevelcode : opLevelcodes) {
+ //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦�
+ log.info("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper);
+ ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
+ serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
+ serviceTaskoper2.setOrgid(serviceTask.getOrgid());
+ serviceTaskoper2.setOplevelcode(opLevelcode);
+ List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
+
+ serviceTaskoper.setOplevelcode(opLevelcode);
+ if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
+ serviceTaskoper.setId(serviceTaskopers.get(0).getId());
+ serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
+ } else {
+ serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
+ }
+ }
}
+ } 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.setCreateBy(serviceTask.getUpdateBy());
+ serviceTaskScheduleService.saveScheduleWithDetail(scheduleVO);
+ // 鍏堟竻鏃х淮搴︽潯浠惰〃锛屽啀鎸夋渶鏂板叆鍙傞噸鍐欙紙闃茶繃鏈熺淮搴︽畫鐣欏鑷磋绾冲叆锛�
+ clearDimensionCondition(serviceTask.getTaskid());
+ bindDimensionCondition(serviceTask, serviceTaskVO);
}
}
if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
@@ -1079,6 +1134,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, schedule, detailList, patTaskRelevance, serviceSubtask);
+ continue;
+ }
if (patTaskRelevance.getIsoperation() == 2) {
serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
@@ -1132,6 +1201,85 @@
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
public void phoneCallBack(PhoneCallBackVO phoneCallBackVO) {
@@ -3049,6 +3197,7 @@
}
return serviceSubtaskStatistic;
}
+
/**
* 棣栨闅忚缁熻
*
@@ -3643,6 +3792,7 @@
serviceOutPath.setParam2(patid);
serviceOutPath.setCreateTime(new Date());
serviceOutPath.setParam6(subId);
+ serviceOutPath.setOrgid(serviceSubtask.getOrgid());
iServiceOutPathService.insertServiceOutPath(serviceOutPath);
//杞垚16杩涘埗
String format = String.format("%03X", serviceOutPath.getId());
@@ -4490,6 +4640,60 @@
return resultMap;
}
+ @Override
+ public Map<String, Object> smsSubTask(Long subid) {
+ log.info("smsSubTask鐨勫叆鍙備负锛歿}", subid);
+ Map<String, Object> resultMap = new HashMap<>();
+ resultMap.put("code", "500");
+ resultMap.put("msg", "鍙戦�佸け璐�");
+
+ //鑾峰彇鎮h�呯殑鍩烘湰淇℃伅
+ ServiceSubtask serviceSubtask = selectServiceSubtaskById(subid);
+ RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+ String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
+ String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
+ String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key);
+
+ //鍙戦�佹暟鎹殑灏佽
+ ServiceOutPath serviceOutPath = new ServiceOutPath();
+ serviceOutPath.setParam1(taskId);
+ serviceOutPath.setParam2(patid);
+ serviceOutPath.setParam3(serviceSubtask.getTaskName());
+ serviceOutPath.setParam6(subId);
+ serviceOutPath.setCreateTime(new Date());
+ serviceOutPath.setOrgid(serviceSubtask.getOrgid());
+ iServiceOutPathService.insertServiceOutPath(serviceOutPath);
+ String format = String.format("%03X", serviceOutPath.getId());
+ serviceOutPath.setRadix(format);
+ serviceOutPath.setUpdateTime(new Date());
+ iServiceOutPathService.updateServiceOutPath(serviceOutPath);
+
+ SendMagParam sendMagParam = new SendMagParam();
+ sendMagParam.setType("4");
+ sendMagParam.setPhone(serviceSubtask.getPhone());
+ sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/wt?p=" + format : localIP + "/wt?p=" + format);
+
+ SysConfig sysConfig = new SysConfig();
+
+ sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template");
+
+ if (!Objects.isNull(sysConfig)) {
+ String smsContemt = sysConfig.getConfigValue();
+ sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl()));
+ }
+
+ if (active.equals("nhfy")) {
+ Map<String, Object> smsResult = mtSubmitSmUtil.submitSm(sendMagParam.getPhone(), sendMagParam.getContent());
+ if (smsResult != null && smsResult.get("result") != null && smsResult.get("result").toString().equals("0")) {
+ resultMap.put("code", "200");
+ resultMap.put("msg", "鍙戦�佹垚鍔�");
+ serviceSubtask.setRemark(StringUtils.isNotEmpty(serviceSubtask.getRemark()) ? serviceSubtask.getRemark() + ";鐭俊鍙戦�佹垚鍔�" : "鐭俊鍙戦�佹垚鍔�");
+ log.info("鏄惁鍙戦�佹垚鍔燂細{}", serviceSubtask.getRemark());
+ updateServiceSubtask(serviceSubtask);
+ }
+ }
+ return resultMap;
+ }
private Boolean saveServiceSubtaskDetail(ServiceSubtask serviceSubtask) {
Boolean result = true;
--
Gitblit v1.9.3