From 1e1814178edf84090b28492bbad340ab13e5c169 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 22 七月 2025 18:16:34 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 76 insertions(+), 18 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 73fdfa3..1aba511 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 org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import com.smartor.domain.*;
 import com.smartor.mapper.*;
@@ -37,7 +38,7 @@
     private ServiceSubtaskMapper serviceSubtaskMapper;
 
     @Autowired
-    private IvrTaskTemplateMapper ivrTaskTemplateMapper;
+    private ServiceTaskdeptMapper serviceTaskdeptMapper;
 
     @Autowired
     private PatArchiveImportMapper patArchiveImportMapper;
@@ -154,16 +155,67 @@
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean deleteServiceTaskByTaskid(Long taskid) {
-        ServiceSubtask ServiceTaskcall = new ServiceSubtask();
-        ServiceTaskcall.setTaskid(taskid);
-        ServiceTaskcall.setDelFlag("1");
-        Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtask(ServiceTaskcall);
+        ServiceSubtask serviceSubtask = new ServiceSubtask();
+        serviceSubtask.setTaskid(taskid);
+
+        //鏌ヨ瀛愪换鍔�
+        ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class);
+        List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+        for (ServiceSubtask ss : serviceSubtaskList) {
+            log.error("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());
+            redisCache.removeElementFromList("cache-2", ss.getId().toString());
+            redisCache.removeElementFromList("cache-3", ss.getId().toString());
+            redisCache.removeElementFromList("cache-4", ss.getId().toString());
+        }
+
+        serviceSubtask.setDelFlag("1");
+        Boolean aBoolean = serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask);
+
+        //鍏宠仈琛ㄥ垹闄�
+        ServiceTaskdept serviceTaskdept = new ServiceTaskdept();
+        serviceTaskdept.setTaskId(taskid);
+        int i = serviceTaskdeptMapper.deleteServiceTaskdeptByTaskId(serviceTaskdept);
+
         Boolean isSuccess = false;
-        if (!aBoolean) {
+        if (!aBoolean || i <= 0) {
             new BaseException("浠诲姟鍒犻櫎澶辫触");
         }
         isSuccess = serviceTaskMapper.deleteServiceTaskByTaskid(taskid);
         return isSuccess;
+    }
+
+
+    /**
+     * 鑾峰彇闅忚鍙婃椂鐜�
+     *
+     * @param serviceSubtask
+     * @return
+     */
+    public Map<String, Object> selectTimelyRate(ServiceSubtask serviceSubtask) {
+        if (serviceSubtask.getEndtime() != null && new Date().before(serviceSubtask.getEndtime())) {
+            serviceSubtask.setEndtime(new Date());
+        }
+        Double dob = serviceSubtaskMapper.selectTimelyRate(serviceSubtask);
+        // 1. 鏌ヨ鍏ㄩ儴鏁版嵁锛圫QL涓嶅垎椤碉級
+        List<ServiceSubtask> allList = serviceSubtaskMapper.selectTimelyRateDetail(serviceSubtask);
+        // 2. Java浠g爜鍒嗛〉
+        int pageNum = serviceSubtask.getPn() != null ? serviceSubtask.getPn() : 1;
+        int pageSize = serviceSubtask.getPs() != null ? serviceSubtask.getPs() : 10;
+        int fromIndex = (pageNum - 1) * pageSize;
+        int toIndex = Math.min(fromIndex + pageSize, allList.size());
+        List<ServiceSubtask> pageList = new ArrayList<>();
+        if (fromIndex < allList.size()) {
+            pageList = allList.subList(fromIndex, toIndex);
+        }
+        log.info("浠g爜鍒嗛〉鍙傛暟: pageNum={}, pageSize={}, fromIndex={}, toIndex={}, total={}", pageNum, pageSize, fromIndex, toIndex, allList.size());
+        Map<String, Object> map = new HashMap<>();
+        map.put("rate", dob);
+        map.put("detail", pageList);
+        map.put("total", allList.size()); // 鍙�夛細杩斿洖鎬绘暟
+        return map;
     }
 
     @Override
@@ -200,10 +252,13 @@
                 ServiceSubtask ss = new ServiceSubtask();
                 ss.setTaskid(taskid);
                 ss.setPatid(patid);
-                ss.setSendstate(1L);
-                ss.setResult("success");
-                ss.setFinishtime(new Date());
-                serviceSubtaskMapper.updateServiceSubtaskByCondition(ss);
+                Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss);
+                if (integer != null && integer != 6) {
+                    ss.setSendstate(1L);
+//                    ss.setResult("success");
+//                    ss.setFinishtime(new Date());
+                    serviceSubtaskMapper.updateServiceSubtaskByCondition(ss);
+                }
             }
         }
 
@@ -214,7 +269,6 @@
         map.put("type", serviceTask.getType());
         map.put("taskName", serviceTask.getTaskName());
         map.put("submit", "0");
-
         return map;
     }
 
@@ -280,7 +334,7 @@
                 ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions);
             }
         }
-        Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparingInt(IvrLibaTemplateScriptVO::getSort));
+        Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparingLong(IvrLibaTemplateScriptVO::getSort));
 
         return ivrLibaTemplateScriptVOS;
     }
@@ -300,9 +354,9 @@
         serviceSubtaskVO.setPatid(patid);
         List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
         if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() == 1) {
-            if (serviceSubtaskList.get(0).getSendstate() != 6 && isFinish == true) {
+            if (serviceSubtaskList.get(0).getSendstate() == 3 && isFinish == true) {
                 ServiceSubtask serviceSubtask = new ServiceSubtask();
-                serviceSubtask.setSendstate(7L);
+                serviceSubtask.setSendstate(1L);
                 serviceSubtask.setPatid(patid);
                 serviceSubtask.setTaskid(serviceTask.getTaskid());
                 serviceSubtaskMapper.updateServiceSubtaskByPatId(serviceSubtask);
@@ -353,7 +407,7 @@
                 }
                 //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹�
                 log.error("闂id锛歿},   闂鍐呭锛歿}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent());
-                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) {
+                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) {
                     svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                     svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                     svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
@@ -374,9 +428,13 @@
             ServiceSubtask serviceSubtask = new ServiceSubtask();
             serviceSubtask.setTaskid(taskid);
             serviceSubtask.setPatid(patid);
-            serviceSubtask.setResult("瀹屾垚");
-            serviceSubtask.setFinishtime(new Date());
-            serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
+            Integer integer = serviceSubtaskMapper.selectSendstateByCondition(serviceSubtask);
+            if (integer == 3) {
+                serviceSubtask.setResult("瀹屾垚");
+                serviceSubtask.setFinishtime(new Date());
+                serviceSubtask.setSendstate(6L);
+                serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
+            }
         }
         HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId));
         List list = new ArrayList();

--
Gitblit v1.9.3