From 1ecb6109954d22e9be03518d64cdcfd89b599091 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 02 六月 2026 18:20:11 +0800
Subject: [PATCH] 1.处理修改service_task时,子任务删除,未将出院数据还原的问题; 2.新增省立同德满意度接口 3.处理患者基本信息并发新增的问题

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java |   38 ++++++++++++++++++++++----------------
 1 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
index 5dfdd5e..162d9a1 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -175,7 +175,8 @@
             if (flag == 0) {
                 tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam1(), pri_key));
                 pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam2(), pri_key));
-                subid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam6(), pri_key));
+                if (StringUtils.isNotEmpty(serviceSubTaskAnswerReq.getParam6()))
+                    subid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getParam6(), pri_key));
             } else if (flag == 1) {
                 tid = Long.valueOf(serviceSubTaskAnswerReq.getParam1());
                 pid = Long.valueOf(serviceSubTaskAnswerReq.getParam2());
@@ -196,7 +197,7 @@
             String[] split = key.split("-");
             //鍏堝垽鏂紝鏄笉鏄綋鍓嶆彁浜や汉鐨勶紝涓嶆槸褰撳墠鎻愪氦浜虹殑锛岃烦杩�
             try {
-                if (ObjectUtils.isNotEmpty(split[0]) && ObjectUtils.isNotEmpty(split[1]) && !Long.valueOf(split[0]).equals(pid) && !Long.valueOf(split[1]).equals(tid) && !Long.valueOf(split[2]).equals(subid)) {
+                if (ObjectUtils.isNotEmpty(split[0]) && ObjectUtils.isNotEmpty(split[1]) && !Long.valueOf(split[0]).equals(pid) && !Long.valueOf(split[1]).equals(tid) && !Objects.isNull(split[2]) && !Long.valueOf(split[2]).equals(subid)) {
                     continue;
                 }
             } catch (Exception e) {
@@ -237,7 +238,7 @@
 
                         if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort().equals(nextScriptno)) {
 //                            log.error("svyTaskTemplateScriptVO鐨勫�间负锛歿}", svyTaskTemplateScriptVO);
-                            Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), Long.valueOf(split[2]));
+                            Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), Objects.isNull(split[2]) ? null : Long.valueOf(split[2]));
                             log.error("nextScriptNo鐨勪俊鎭负锛歿}", map.get("nextScriptNo"));
                             if (!Objects.isNull(map.get("nextScriptNo")))
                                 nextScriptno = Long.valueOf(map.get("nextScriptNo"));
@@ -280,7 +281,7 @@
                         ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
 
                         if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()).equals(nextScriptno)) {
-                            Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), Long.valueOf(split[2]));
+                            Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]), Objects.isNull(split[2]) ? null : Long.valueOf(split[2]));
                             log.error("----nextScriptNo2鐨勪俊鎭负锛歿}", map.get("nextScriptNo"));
                             if (!Objects.isNull(map.get("nextScriptNo")))
                                 nextScriptno = Long.valueOf(map.get("nextScriptNo"));
@@ -353,7 +354,7 @@
                         for (SvyTaskTemplateScriptVO svyTaskTemplateScriptVO : cacheList) {
                             if (svyTaskTemplateScriptVO.getSort() == 1L) {
                                 //璇存槑鏄涓�棰�
-                                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = cacheList.get(0).getSvyTaskTemplateTargetoptions();
+                                List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions();
                                 svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
                                 Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid, subid);
                                 if (map == null) continue;
@@ -398,7 +399,7 @@
                         for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : cacheList) {
                             if (ivrTaskTemplateScriptVO.getSort() != null && ivrTaskTemplateScriptVO.getSort() == 1L) {
                                 //璇存槑鏄涓�棰�
-                                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = cacheList.get(0).getIvrTaskScriptTargetoptionList();
+                                List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = ivrTaskTemplateScriptVO.getIvrTaskScriptTargetoptionList();
                                 ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions);
                                 //瀹冧咯閮芥槸ivr_task_templatescript_id,鎵�浠ヨ繖閲岄渶瑕佽缃竴涓�
                                 ivrTaskTemplateScriptVO.setId(ivrTaskTemplateScriptVO.getScriptID());
@@ -456,7 +457,9 @@
 
             //灏嗗綋鍓嶅彂閫佺姸鎬佹敼鎴�9瀹屾垚
             ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
-            serviceSubtaskPreachform.setPreachform(serviceSubtaskList.get(0).getCurrentPreachform());
+            if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
+                serviceSubtaskPreachform.setPreachform(serviceSubtaskList.get(0).getCurrentPreachform());
+            }
             serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
             serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid());
             List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
@@ -655,7 +658,9 @@
             if (flag == 0L) {
                 tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
                 pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
-                subid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
+                if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6()))
+                    subid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
+
             } else if (flag == 1L) {
                 tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
                 pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
@@ -729,19 +734,20 @@
 
     @Override
     public Map<String, Object> selectPatQuestionResult(ServiceSubTaskQueryReq serviceSubTaskQueryReq) {
-        log.error("selectPatQuesTionResult鐨勫叆鍙備负锛歿}", serviceSubTaskQueryReq);
+        log.info("selectPatQuesTionResult鐨勫叆鍙備负锛歿}", serviceSubTaskQueryReq);
         Map<String, Object> map = new HashMap<>();
 
         //鑾峰彇鏈鐨勯棶绛旂粨鏋�
-        Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom());
+        Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom(), serviceSubTaskQueryReq.getSubId());
         map = getMap(scriptInfoByCondition, serviceSubTaskQueryReq.getSubId(), serviceSubTaskQueryReq.getPatid());
 
         //鑾峰彇涓婃鐨勯棶绛旂粨鏋�
         ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId());
         map.put("upScriptResult", null);
+        map.put("templateName", serviceSubtask.getTemplatename());
         map.put("upTaskName", null);
         if (ObjectUtils.isNotEmpty(serviceSubtask) && serviceSubtask.getUpid() != null) {
-            Map<String, Object> scriptInfoByCondition2 = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom());
+            Map<String, Object> scriptInfoByCondition2 = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom(),serviceSubTaskQueryReq.getSubId());
             Map<String, Object> map1 = getMap(scriptInfoByCondition2, Long.valueOf(serviceSubtask.getUpid()), serviceSubTaskQueryReq.getPatid());
             if (!map1.isEmpty()) {
                 map.put("upScriptResult", map1.get("scriptResult"));
@@ -756,10 +762,8 @@
     private Map<String, Object> getMap(Map<String, Object> scriptInfoByCondition, Long subid, Long patid) {
         Map<String, Object> map = new HashMap<>();
         if (ObjectUtils.isNotEmpty(scriptInfoByCondition) && ObjectUtils.isNotEmpty(scriptInfoByCondition.get("script"))) {
-//            log.error("-----------scriptInfoByCondition鐨勫�间负锛歿}", scriptInfoByCondition);
             if (scriptInfoByCondition.get("type").equals("1")) {
                 List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = (List<IvrTaskTemplateScriptVO>) scriptInfoByCondition.get("script");
-//                List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScriptVOS, IvrLibaTemplateScriptVO.class);
                 for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) {
                     Map<String, String> scriptResult = getScriptResult(subid, patid, ivrTaskTemplateScriptVO.getId());
                     if (ObjectUtils.isNotEmpty(scriptResult)) {
@@ -858,6 +862,8 @@
         }
         ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(taskid);
         serviceSubtaskDetailVO.setQuestiontext(svyTaskTemplateScriptVO.getScriptContent());
+        serviceSubtaskDetailVO.setIsMydException(svyTaskTemplateScriptVO.getIsMydException());
+        serviceSubtaskDetailVO.setDimension(svyTaskTemplateScriptVO.getDimension());
         serviceSubtaskDetailVO.setCategoryid(svyTaskTemplateScriptVO.getCategoryid());
         serviceSubtaskDetailVO.setTaskid(Long.valueOf(taskid));
         serviceSubtaskDetailVO.setTargetid(svyTaskTemplateScriptVO.getTargetid() != null ? svyTaskTemplateScriptVO.getTargetid().intValue() : null);
@@ -892,12 +898,12 @@
         SvyTaskTemplateTargetoption stt = null;
         Long isabnormalFlag = 0L;
         for (SvyTaskTemplateTargetoption svyTaskTemplateTargetoption : svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions()) {
-            if (svyTaskTemplateTargetoption.getOptioncontent().trim().equals(svyTaskTemplateScriptVO.getScriptResult()))
+            if (StringUtils.isNotEmpty(svyTaskTemplateTargetoption.getOptioncontent()) && svyTaskTemplateTargetoption.getOptioncontent().trim().equals(svyTaskTemplateScriptVO.getScriptResult()))
                 stt = svyTaskTemplateTargetoption;
         }
 
         //鍒ゆ柇涓�涓嬪綋鍓嶇殑闂鏄笉鏄弧鎰忓害闂锛屽苟涓攄utyDeptCode鏄惁鏈夊�硷紝骞朵笖閫夐」鏄笉鏄紓甯搁�夐」锛屽鏋滃叏绗﹀悎锛屽垯寰�婊℃剰搴﹂棶棰樺紓甯歌〃鏂板
-        if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && 1 == stt.getIsabnormal()) {
+        if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getDutyDeptCode()) && stt != null && 1 == stt.getIsabnormal()) {
             isabnormalFlag = 1L;
             ServiceSubtaskDetailTrace subtaskDetailTrace = new ServiceSubtaskDetailTrace();
             subtaskDetailTrace.setDetailId(serviceSubtaskDetail.getId());
@@ -1088,7 +1094,7 @@
         ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
         serviceSubtaskVO.setTaskid(taskid);
         serviceSubtaskVO.setPatid(patid);
-        serviceSubtaskVO.setPatid(subid);
+        serviceSubtaskVO.setSubId(subid);
         List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
 
         String score = "0";

--
Gitblit v1.9.3