From af73b41c2b027d8d74ce417e2f10008337577128 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 29 十月 2025 14:07:06 +0800
Subject: [PATCH] 新增服务补偿,用户查询BUG修改
---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 88 insertions(+), 6 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 0c5b3cb..fe021e6 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -1,5 +1,8 @@
 package com.smartor.service.impl;
 
+import com.alibaba.fastjson2.JSON;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
@@ -18,6 +21,7 @@
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 浠诲姟闂嵎闂閫夐」Service涓氬姟灞傚鐞�
@@ -198,7 +202,7 @@
                         }
 
                     } else {
-                        SvyTaskTemplateScriptVO svyTaskTemplateScriptVO =cacheList.get(i);
+                        SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = cacheList.get(i);
 //                        SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(i), SvyTaskTemplateScriptVO.class);
                         List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = cacheList.get(i).getSvyTaskTemplateTargetoptions();
 //                        List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(cacheList.get(i).getSvyTaskTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
@@ -278,6 +282,7 @@
             serviceSubtask.setTaskid(tid);
             serviceSubtask.setPatid(pid);
             serviceSubtask.setSubmit(1L);
+            serviceSubtask.setIsabnormal(serviceSubTaskAnswerReq.getIsabnormal());
             serviceSubtask.setSendstate(6L);
             serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep());
             serviceSubtask.setFinishtime(new Date());
@@ -367,7 +372,7 @@
                 } else {
                     SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = svyTaskTemplateScriptVOS.get(i);
 //                    SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i), SvyTaskTemplateScriptVO.class);
-                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions =svyTaskTemplateScriptVOS.get(i).getSvyTaskTemplateTargetoptions();
+                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = svyTaskTemplateScriptVOS.get(i).getSvyTaskTemplateTargetoptions();
 //                    List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class);
                     svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions);
 
@@ -665,10 +670,6 @@
             }
             serviceSubtaskDetailVO.setAsrtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", ""));
             serviceSubtaskDetailVO.setMatchedtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", ""));
-            //            if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) {
-//                nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString();
-//            }
-//            serviceSubtaskDetailVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions());
         } else {
             //闈炲崟澶氶��
             if (StringUtils.isNotEmpty(svyTaskTemplateScriptVO.getScriptResult())) {
@@ -699,11 +700,86 @@
         ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
         serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
 
+        //濡備綍杩欓渶瑕佹湇鍔¤ˉ鍋跨殑鏈嶅姟ID涓嶄负绌虹殑璇濓紝鍒欒繘琛岀珛鍗冲彂閫�
+        if (CollectionUtils.isNotEmpty(svyTaskTemplateScriptVO.getSendTaskids()) && CollectionUtils.isNotEmpty(selectServiceSubtaskList)) {
+            sendTaskIds(svyTaskTemplateScriptVO.getSendTaskids(), selectServiceSubtaskList.get(0));
+        }
+
         Map<String, String> map = new HashMap<>();
         map.put("nextScriptNo", nextScriptNo);
         map.put("score", score);
         map.put("id", "" + serviceSubtaskDetail.getId());
         return map;
+    }
+
+    private Boolean sendTaskIds(List<Integer> sendTaskids, ServiceSubtask serviceSubtask) {
+        for (Integer taskId : sendTaskids) {
+            ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(Long.valueOf(taskId));
+            String content = sendMQContent(serviceTask, null);
+            //鍏堜慨鏀圭姸鎬�
+            insertServiceSubtask(serviceTask, new Date(), serviceSubtask);
+            //绔嬪嵆鍙戦��
+            redisCache.setCacheObject(content, content, 1, TimeUnit.SECONDS);
+            serviceTask.setStopState(null);
+            log.info("娑堟伅鍙戦�佹垚鍔�");
+        }
+        return null;
+    }
+
+
+    private void insertServiceSubtask(ServiceTask serviceTask, Date date, ServiceSubtask serviceSubtask) {
+        //鍙杩涘叆闃熷垪灏辩畻寰呭彂閫�
+        serviceSubtask.setTaskid(serviceTask.getTaskid());
+        serviceSubtask.setTaskName(serviceTask.getTaskName());
+        serviceSubtask.setLibtemplateid(StringUtils.isNotEmpty(serviceTask.getLibtemplateid()) ? Long.valueOf(serviceTask.getLibtemplateid()) : null);
+        serviceSubtask.setTemplatename(serviceTask.getTemplatename());
+        serviceSubtask.setTemplateid(serviceTask.getTemplateid());
+        serviceSubtask.setSendstate(2L);
+        serviceSubtask.setVisitTime(date);
+        serviceSubtask.setId(null);
+        serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
+
+        //璁剧疆鍙戦�佽ˉ鍋挎柟寮忥紙杩欎釜瀹屽叏鎸夌収鏈嶅姟鐨勫彂閫佹柟寮忔潵璧帮級
+        if (StringUtils.isNotEmpty(serviceTask.getPreachformDesc())) {
+            ObjectMapper objectMapper = new ObjectMapper();
+            try {
+                List<Map<String, Object>> pfList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+                for (Map<String, Object> map : pfList) {
+                    ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
+                    serviceSubtaskPreachform.setSort(ObjectUtils.isEmpty(map.get("sort")) ? 0 : Long.valueOf(map.get("sort").toString()));
+                    serviceSubtaskPreachform.setPreachform(ObjectUtils.isEmpty(map.get("preachform")) ? "" : map.get("preachform").toString());
+                    serviceSubtaskPreachform.setCompensateTime(ObjectUtils.isEmpty(map.get("compensateTime")) ? "" : map.get("compensateTime").toString());
+                    serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
+                    serviceSubtaskPreachform.setSubid(serviceSubtask.getId());
+                    //杩欎釜sendstate闇�瑕佸湪鏁版嵁搴撹缃竴涓粯璁ゅ�间负鈥�1鈥�
+                    serviceSubtaskPreachform.setSendstate("1");
+                    serviceSubtaskPreachform.setOrgid(serviceTask.getOrgid());
+                    serviceSubtaskPreachform.setCreateTime(new Date());
+                    serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform);
+                }
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+            }
+
+        }
+
+
+    }
+
+    private String sendMQContent(ServiceTask serviceTask, TaskSendTimeVO sendTimeslot) {
+        CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
+        commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
+        commonTaskcallMQ.setSendType("2");
+        commonTaskcallMQ.setTemplateid(ObjectUtils.isNotEmpty(serviceTask.getTemplateid()) ? serviceTask.getTemplateid().toString() : null);
+        commonTaskcallMQ.setPreachform(serviceTask.getPreachform());
+        commonTaskcallMQ.setStopState(serviceTask.getStopState());
+        commonTaskcallMQ.setTaskType(StringUtils.isNotEmpty(serviceTask.getType()) ? Integer.valueOf(serviceTask.getType()) : null);
+        commonTaskcallMQ.setSendTimeslot(sendTimeslot);
+        commonTaskcallMQ.setUpdateSendstate(2);
+
+        String commonTaskcallMQJson = JSON.toJSONString(commonTaskcallMQ);
+        commonTaskcallMQJson = commonTaskcallMQJson.substring(1, commonTaskcallMQJson.length() - 1);
+        return commonTaskcallMQJson;
     }
 
     private Map<String, String> setSFInfo(IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO, Long taskid, Long patid) {
@@ -764,6 +840,12 @@
         ServiceSubtaskDetail serviceSubtaskDetail = DtoConversionUtils.sourceToTarget(serviceSubtaskDetailVO, ServiceSubtaskDetail.class);
         serviceSubtaskDetailMapper.insertServiceSubtaskDetail(serviceSubtaskDetail);
 
+        //濡備綍杩欓渶瑕佹湇鍔¤ˉ鍋跨殑鏈嶅姟ID涓嶄负绌虹殑璇濓紝鍒欒繘琛岀珛鍗冲彂閫�
+        if (CollectionUtils.isNotEmpty(ivrTaskTemplateScriptVO.getSendTaskids()) && CollectionUtils.isNotEmpty(selectServiceSubtaskList)) {
+            sendTaskIds(ivrTaskTemplateScriptVO.getSendTaskids(), selectServiceSubtaskList.get(0));
+        }
+
+
         Map<String, String> map = new HashMap<>();
         map.put("nextScriptNo", nextScriptNo);
         map.put("score", score);
--
Gitblit v1.9.3