From 28446c1489c8977d634e7a39dbbc96967e22c6f1 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 11 五月 2026 11:32:31 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java |  152 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 112 insertions(+), 40 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
index 3ccc455..531474a 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -10,6 +10,7 @@
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
+import com.smartor.domain.entity.ServiceSubtaskEntity;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import com.smartor.domain.*;
@@ -69,7 +70,7 @@
 
 
     @Autowired
-    private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper;
+    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
     @Autowired
     private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper;
 
@@ -169,10 +170,10 @@
         serviceSubtask.setTaskid(taskid);
 
         //鏌ヨ瀛愪换鍔�
-        ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class);
+        ServiceSubtaskEntity serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskEntity.class);
         List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
         for (ServiceSubtask ss : serviceSubtaskList) {
-            log.error("sfSend闇�瑕佺Щ闄ょ殑subId涓猴細{}", ss.getId().toString());
+            log.info("sfSend闇�瑕佺Щ闄ょ殑subId涓猴細{}", ss.getId().toString());
             redisCache.removeElementFromList("cache-exist", ss.getId().toString());
             redisCache.removeElementFromList("cache-0", ss.getId().toString());
             redisCache.removeElementFromList("cache-1", ss.getId().toString());
@@ -229,32 +230,32 @@
     }
 
     @Override
-    public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom) {
+    public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom, Long subId) {
         Map<String, Object> map = new HashMap<>();
-        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
-        serviceSubtaskVO.setPatid(patid);
-        serviceSubtaskVO.setTaskid(taskid);
-        serviceSubtaskVO.setSendstate(3L);
+        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+        if (subId != null) {
+            serviceSubtaskVO.setSubId(subId);
+        } else {
+            serviceSubtaskVO.setPatid(patid);
+            serviceSubtaskVO.setTaskid(taskid);
+            serviceSubtaskVO.setSendstate(3L);
+        }
         List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
-//        //鏌ヨ鎮h�呮槸鍚﹂噸瑕嗗仛棰�
-//        if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
-//            Long submit = selectServiceSubtaskList.get(0).getSubmit();
-//            if (submit == 1L) {
-//                map.put("submit", "1");
-//                return map;
-//            }
-//        }
+
         //閫氳繃浠诲姟ID鑾峰彇妯℃澘ID
         ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
+        if (serviceTask == null) {
+            throw new BaseException("浠诲姟涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎锛宼askid: " + taskid);
+        }
         List info = new ArrayList();
         if (serviceTask.getType().equals("1")) {
             //闅忚
-            log.error("鏂囨湰闅忚闂");
+            log.info("鏂囨湰闅忚闂");
             info = sfInfo(serviceTask, patid, patfrom);
         } else if (serviceTask.getType().equals("2")) {
             //闂嵎
-            log.error("鏂囨湰闂嵎闂");
-            info = wjInfo(serviceTask, patid, isFinish, patfrom);
+            log.info("鏂囨湰闂嵎闂");
+            info = wjInfo(serviceTask, patid, isFinish, patfrom, subId);
         } else {
             //瀹f暀
             info = xjInfo(Long.valueOf(serviceTask.getLibtemplateid()), taskid, patid, isFinish);
@@ -263,9 +264,10 @@
                 ServiceSubtask ss = new ServiceSubtask();
                 ss.setTaskid(taskid);
                 ss.setPatid(patid);
-                Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss);
-                if (integer != null && integer != 6) {
-                    ss.setSendstate(1L);
+                ss.setSendstate(3L);
+                List<Integer> integer = serviceSubtaskMapper.selectSendstateByCondition(ss);
+                if (integer != null) {
+                    ss.setSendstate(6L);
                     serviceSubtaskMapper.updateServiceSubtaskByCondition(ss);
                 }
             }
@@ -299,6 +301,9 @@
     public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum) {
         //閫氳繃浠诲姟ID鑾峰彇妯℃澘ID
         ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
+        if (serviceTask == null) {
+            throw new BaseException("浠诲姟涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎锛宼askid: " + taskid);
+        }
         //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
         SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
         svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
@@ -317,9 +322,9 @@
                 patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid());
             }
         } else if (StringUtils.isNotEmpty(mzserialnum)) {
-            PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
+            PatMedOuthospQueryReq patMedOuthosp = new PatMedOuthospQueryReq();
             patMedOuthosp.setSerialnum(mzserialnum);
-            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp);
+            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthosp);
             if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
                 patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid());
             }
@@ -331,7 +336,7 @@
         }
 
         //鍒ゆ柇涓�涓嬩粖澶╂槸鍚﹀凡缁忓仛杩囬锛屽仛杩囧氨涓嶈鍐嶅仛浜�
-        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
         serviceSubtaskVO.setTaskid(taskid);
         serviceSubtaskVO.setPatid(patArchive.getId());
         serviceSubtaskVO.setVisitTime(new Date());
@@ -365,7 +370,7 @@
                     }
                 }
                 //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹�
-                log.error("闂id锛歿},   闂鍐呭锛歿}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
+                log.info("闂id锛歿},   闂鍐呭锛歿}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                 if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
@@ -458,12 +463,16 @@
      * @param patid
      * @return
      */
-    private List wjInfo(ServiceTask serviceTask, Long patid, Boolean isFinish, String patfrom) {
+    private List wjInfo(ServiceTask serviceTask, Long patid, Boolean isFinish, String patfrom, Long subId) {
         //鐢ㄦ埛鐐瑰嚮浜嗗閾撅紝灏辩畻浠栭鍙栦簡
         //杩欐牱鍋氫細鏈変竴涓棶棰橈紝濡傛灉鍥哄畾浠诲姟锛屼細鍑虹幇涓�涓换鍔¢噷锛屾湁澶氫釜璇ユ偅鑰�
-        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
-        serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
-        serviceSubtaskVO.setPatid(patid);
+        ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+        if (subId != null) {
+            serviceSubtaskVO.setSubId(subId);
+        } else {
+            serviceSubtaskVO.setTaskid(serviceTask.getTaskid());
+            serviceSubtaskVO.setPatid(patid);
+        }
         List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
         if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() == 1) {
             if (serviceSubtaskList.get(0).getSendstate() == 3 && isFinish == true) {
@@ -477,11 +486,16 @@
         //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅
         SvyTaskTemplateScript svyTaskTemplateScript = new SvyTaskTemplateScript();
         svyTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid()));
+        if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.get(0).getTemplateid() != null)
+            svyTaskTemplateScript.setTemplateID(serviceSubtaskList.get(0).getTemplateid());
         svyTaskTemplateScript.setDelFlag("0");
         List<SvyTaskTemplateScript> svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
         if (CollectionUtils.isEmpty(svyTaskTemplateScripts) || svyTaskTemplateScripts.size() == 0) {
-            log.info("svyTaskTemplateScripts涓虹┖浜嗭紝璇峰敖蹇仈绯荤鐞嗗憳澶勭悊");
-            return new ArrayList<>();
+            insertSvyTaskTempScript(null, serviceTask);
+            svyTaskTemplateScripts = svyTaskTemplateScriptMapper.selectSvyTaskTemplateScriptList(svyTaskTemplateScript);
+            if (CollectionUtils.isEmpty(svyTaskTemplateScripts)) {
+                throw new BaseException("璇疯仈绯荤鐞嗗憳锛屾鏌ラ棶棰樻ā鏉夸俊鎭�!");
+            }
         }
         List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyTaskTemplateScripts, SvyTaskTemplateScriptVO.class);
 
@@ -504,21 +518,21 @@
         }
         List<Map<String, String>> mapList = new ArrayList<>();
 
-        for (Map<String, String> map : ivrTaskMap.values()) {
-            mapList.add(map);
+        if (ivrTaskMap != null) {
+            for (Map<String, String> map : ivrTaskMap.values()) {
+                mapList.add(map);
+            }
         }
-
         //灏嗘ā鏉块棶棰樿瘽鏈噷鐨勯�氶厤绗︽浛鎹�
         for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : svyTaskTemplateScriptVOS) {
             if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent())) {
                 for (Map<String, String> map : mapList) {
                     for (String key : map.keySet()) {
-
                         svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : ""));
                     }
                 }
                 //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹�
-                log.error("闂id锛歿},   闂鍐呭锛歿}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
+                log.info("闂id锛歿},   闂鍐呭锛歿}", svyTaskTemplateScriptVO.getId(), svyTaskTemplateScriptVO.getScriptContent());
                 if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                     svyTaskTemplateScriptVO.setScriptContent(svyTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
@@ -532,11 +546,68 @@
                 if (svyTaskTemplateTargetoption.getNodynamiccruxs().size() == 0)
                     svyTaskTemplateTargetoption.setNodynamiccruxs(null);
                 List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateTargetoptionMapper.selectSvyTaskTemplateTargetoptionList(svyTaskTemplateTargetoption);
-                svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
+                if (CollectionUtils.isNotEmpty(svyTaskTemplateTargetoptions)) {
+                    svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
+                } else {
+                    //濡傛灉閫夐」娌℃湁鏌ュ埌锛岄渶瑕佸幓鍩虹妯℃澘搴撳皢閫夐」鏌ヨ鍑烘潵锛屾斁鍒颁换鍔℃ā鏉块�夐」搴撲腑
+                    insertSvyTaskTempScript(svyTaskTemplateScriptVO, serviceTask);
+
+                }
             }
         }
         Collections.sort(svyTaskTemplateScriptVOS, Comparator.comparingLong(SvyTaskTemplateScriptVO::getSort));
         return svyTaskTemplateScriptVOS;
+    }
+
+
+    private void insertSvyTaskTempScript(SvyTaskTemplateScriptVO svyTaskTemplateScriptVO, ServiceTask serviceTask) {
+        log.info("-------鍩虹妯℃澘libtemplateid鐨勫�间负锛歿}", serviceTask.getLibtemplateid());
+        if (StringUtils.isEmpty(serviceTask.getLibtemplateid())) {
+            return;
+        }
+
+        SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript();
+        svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid()));
+        List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript);
+        log.info("-------鍩虹妯℃澘svyLibTemplateScripts闂鍊间负锛歿}", svyLibTemplateScripts.size());
+        for (SvyLibTemplateScript sll : svyLibTemplateScripts) {
+            if (ObjectUtils.isNotEmpty(svyTaskTemplateScriptVO)) {
+                if (sll.getScriptContent().trim().equals(svyTaskTemplateScriptVO.getScriptContent().trim())) {
+                    SvyLibTemplateTargetoption sltto = new SvyLibTemplateTargetoption();
+                    sltto.setScriptid(sll.getId());
+                    List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto);
+
+                    //灏嗘煡鍑烘潵鐨勯�夐」锛屾斁鍒皊vyTaskTemplateTargetoption涓�
+                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
+                    for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) {
+                        svyTaskTemplateTargetoptionList.get(i).setTemplateID(svyTaskTemplateScriptVO.getTemplateID());
+                        svyTaskTemplateTargetoptionList.get(i).setScriptid(svyTaskTemplateScriptVO.getId());
+                        svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i));
+                        log.info("-------鏂板瀹屼箣鍚庣殑閫夐」ID鍊间负锛歿}", svyTaskTemplateTargetoptionList.get(i).getId());
+                    }
+                    svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptionList);
+                }
+            } else {
+                //鏂板闂
+                SvyTaskTemplateScript stts = DtoConversionUtils.sourceToTarget(sll, SvyTaskTemplateScript.class);
+                stts.setId(null);
+                stts.setTaskid(serviceTask.getTaskid());
+                stts.setTemplateID(serviceTask.getTemplateid());
+                svyTaskTemplateScriptMapper.insertSvyTaskTemplateScript(stts);
+
+                //鏂板闂閫夐」
+                SvyLibTemplateTargetoption sltto = new SvyLibTemplateTargetoption();
+                sltto.setScriptid(sll.getId());
+                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(sltto);
+                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptionList = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class);
+                for (int i = 0; i < svyTaskTemplateTargetoptionList.size(); i++) {
+                    svyTaskTemplateTargetoptionList.get(i).setTemplateID(serviceTask.getTemplateid());
+                    svyTaskTemplateTargetoptionList.get(i).setScriptid(stts.getId());
+                    svyTaskTemplateTargetoptionMapper.insertSvyTaskTemplateTargetoption(svyTaskTemplateTargetoptionList.get(i));
+                }
+
+            }
+        }
     }
 
     private List xjInfo(Long templateId, Long taskid, Long patid, Boolean isFinish) {
@@ -544,8 +615,9 @@
             ServiceSubtask serviceSubtask = new ServiceSubtask();
             serviceSubtask.setTaskid(taskid);
             serviceSubtask.setPatid(patid);
-            Integer integer = serviceSubtaskMapper.selectSendstateByCondition(serviceSubtask);
-            if (integer == 3) {
+            serviceSubtask.setSendstate(3L);
+            List<Integer> integer = serviceSubtaskMapper.selectSendstateByCondition(serviceSubtask);
+            if (integer != null) {
                 serviceSubtask.setResult("瀹屾垚");
                 serviceSubtask.setFinishtime(new Date());
                 serviceSubtask.setSendstate(6L);

--
Gitblit v1.9.3