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

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |  254 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 192 insertions(+), 62 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 498598d..40a747d 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,11 @@
 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.common.ScheduleSubtaskBuilder;
 import com.smartor.config.PhoneUtils;
 import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
 import com.smartor.domain.*;
@@ -113,6 +117,12 @@
     private IServiceSubtaskDetailTraceService traceService;
 
     @Autowired
+    private IServiceTaskScheduleService serviceTaskScheduleService;
+
+    @Autowired
+    private ScheduleSubtaskBuilder scheduleSubtaskBuilder;
+
+    @Autowired
     private FtpService ftpService;
 
     @Autowired
@@ -135,6 +145,12 @@
 
     @Value("${ASRCallBackPath}")
     private String ASRCallBackPath;
+
+    @Autowired
+    private MtSubmitSmUtil mtSubmitSmUtil;
+
+    @Autowired
+    private SysConfigMapper sysConfigMapper;
 
     @Autowired
     private RedisTemplate redisTemplate;
@@ -343,18 +359,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 +387,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 +405,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 +483,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 +710,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 +734,28 @@
                         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());
@@ -778,8 +811,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 +835,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.getPreachformList(), schedule, detailList, patTaskRelevance, serviceSubtask);
+                        continue;
+                    }
+
                     serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                     serviceSubtask.getId().intValue();
 
@@ -957,7 +1005,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 +1036,57 @@
 //                    }
 //                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.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())) {
@@ -1079,6 +1140,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);
@@ -1131,7 +1206,6 @@
         map.put("taskId", serviceTask.getTaskid().intValue());
         return map;
     }
-
 
     @Override
     public void phoneCallBack(PhoneCallBackVO phoneCallBackVO) {
@@ -2557,7 +2631,7 @@
      * @return
      */
     @Override
-    @Cacheable(value = "specialSfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
+//    @Cacheable(value = "specialSfStatistics", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
     public List<ServiceSubtaskStatistic> getSpecialSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
         log.info("getSpecialSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
         String groupKey = "drcode";
@@ -3049,6 +3123,7 @@
         }
         return serviceSubtaskStatistic;
     }
+
     /**
      * 棣栨闅忚缁熻
      *
@@ -3643,6 +3718,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 +4566,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