From 66a52b9c8b6d0668ff3d7c431e9e17f2c365e3e6 Mon Sep 17 00:00:00 2001
From: zhs <zhs18203887318@163.com>
Date: 星期三, 05 十一月 2025 11:01:10 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 89 insertions(+), 15 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 66e6364..370d592 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -1,11 +1,12 @@
 package com.smartor.service.impl;
 
 import com.alibaba.fastjson2.JSON;
-import com.fasterxml.jackson.annotation.JsonFormat;
+import com.alibaba.fastjson2.JSONObject;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.dx.MessageSend;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.*;
 import com.smartor.common.FtpService;
@@ -24,13 +25,9 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.LocalTime;
-import java.time.ZoneId;
+import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -174,7 +171,19 @@
 
         ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
         if (CollectionUtils.isEmpty(list) || list.size() == 0) {
-            return DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class);
+            ServiceTaskVO serviceTaskVO = DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class);
+            ObjectMapper objectMapper = new ObjectMapper();
+            try {
+                List<Map<String, Object>> mapList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+                serviceTaskVO.setPreachformList(mapList);
+//
+//                String result = mapList.stream().map(mapList1 -> mapList1.get("preachform")).map(String::valueOf).collect(Collectors.joining(","));
+//                serviceTaskVO.setPreachform(result);
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+            }
+
+            return serviceTaskVO;
         }
 
         //灏嗘煡鍑烘潵鐨勬暟鎹�掑叆ServiceSubtaskVO涓�
@@ -262,8 +271,17 @@
             serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid());
             serviceSubtaskPreachform.setSubid(serviceSubtask1.getId());
             List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform);
-            serviceTaskVO.setPreachformList(serviceSubtaskPreachformList);
+            List<Map<String, Object>> resultList = serviceSubtaskPreachformList.stream().map(item -> {
+                Map<String, Object> map = new HashMap<>();
+                map.put("sort", item.getSort());
+                map.put("preachform", item.getPreachform());
+                map.put("compensateTime", item.getCompensateTime());
+                return map;
+            }).collect(Collectors.toList());
+            serviceTaskVO.setPreachformList(resultList);
 
+//            String result = resultList.stream().map(mapList1 -> mapList1.get("preachform")).map(String::valueOf).collect(Collectors.joining(","));
+//            serviceTaskVO.setPreachform(result);
         }
 
         serviceTaskVO.setPatTaskRelevances(patTaskRelevances);
@@ -431,7 +449,7 @@
         ObjectMapper mapper = new ObjectMapper();
         try {
             String preachformList = mapper.writeValueAsString(serviceTaskVO.getPreachformList());
-            serviceTask.setPreachform(preachformList);
+            serviceTask.setPreachformDesc(preachformList);
         } catch (JsonProcessingException e) {
             e.printStackTrace();
         }
@@ -594,8 +612,12 @@
 
                     //闇�瑕佹寜service_task閲岀殑preachform鐨勯『搴忓皢鍙戦�佹柟寮忎繚瀛樺埌service_subtask_preachform琛ㄤ腑
                     if (StringUtils.isNotEmpty(serviceTaskVO.getPreachformList())) {
-                        List<ServiceSubtaskPreachform> pfList = serviceTaskVO.getPreachformList();
-                        for (ServiceSubtaskPreachform serviceSubtaskPreachform : pfList) {
+                        List<Map<String, Object>> pfList = serviceTaskVO.getPreachformList();
+                        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鈥�
@@ -818,8 +840,12 @@
                 ServiceSubtask serviceSubtask = ssTaskList.get(i);
                 serviceSubtaskPreachformMapper.deleteServiceSubtaskPreachformBySubid(serviceSubtask.getId());
                 if (StringUtils.isNotEmpty(serviceTaskVO.getPreachformList())) {
-                    List<ServiceSubtaskPreachform> pfList = serviceTaskVO.getPreachformList();
-                    for (ServiceSubtaskPreachform serviceSubtaskPreachform : pfList) {
+                    List<Map<String, Object>> pfList = serviceTaskVO.getPreachformList();
+                    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鈥�
@@ -2053,6 +2079,37 @@
         return result;
     }
 
+    @Override
+    public List<PatArchiveSrmVO> sendMsgTemplate(List<PatArchiveSrmVO> patArchiveSrmVOS) {
+        //鐢ㄦ潵璁板綍鍙戦�佸け璐ョ殑
+        List<PatArchiveSrmVO> sendError = new ArrayList<>();
+
+        for (PatArchiveSrmVO patArchiveSrmVO : patArchiveSrmVOS) {
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY骞碝M鏈坉d鏃H:mm");
+            String timestamp = simpleDateFormat.format(patArchiveSrmVO.getVisitTime());
+
+            StringBuilder stringBuilder = new StringBuilder();
+            if (patArchiveSrmVO.getSrmTemplate().equals("鍏ラ櫌鍑嗗涓績-鏃犳鏌�")) {
+                stringBuilder.append(patArchiveSrmVO.getName() + ",鎮ㄥソ锛佷富绠″尰鐢熷凡涓烘偍瀹夋帓浣忛櫌锛岃浜庡綋澶�");
+            } else if (patArchiveSrmVO.getSrmTemplate().equals("鍏ラ櫌鍑嗗涓績-绌鸿吂妫�鏌�")) {
+                stringBuilder.append(patArchiveSrmVO.getName() + ",鎮ㄥソ锛佷富绠″尰鐢熷凡涓烘偍瀹夋帓浣忛櫌锛岃褰撳ぉ绌鸿吂骞朵簬");
+            } else if (patArchiveSrmVO.getSrmTemplate().equals("鏃ラ棿鐥呮埧鈥旀嫨鏈熺梾浜烘鏌�")) {
+                stringBuilder.append(patArchiveSrmVO.getName() + ",鎮ㄥソ锛佷富绠″尰鐢熷凡涓烘偍瀹夋帓浣忛櫌鍓嶆鏌ワ紝璇峰綋澶╃┖鑵瑰苟浜�");
+            }
+
+            stringBuilder.append(timestamp + ",涔嬪墠鎼哄甫鍖讳繚鍗℃垨鐢靛瓙鍖讳繚鍗¤韩浠借瘉鍑鏉$煭淇″埌1鍙锋ゼ3妤煎崡鍏ラ櫌鍑嗗涓績鍏ラ櫌鐧昏绐楀彛锛屽姙鐞嗘寮忎綇闄㈡墜缁紝瀹屾垚鍚勯」妫�鏌ュ悗鍐嶅埌鐩稿簲鐥呭尯鎶ゅ+绔欐姤鍒般��");
+            stringBuilder.append("鍏ラ櫌鍑嗗涓績鐢佃瘽锛�89975977銆傚叆闄㈠姙鐞嗛』鐭�:https://mp.weixin.qq.com/s/OCkotuRyQ8Ld2owFF0YErw");
+
+            JSONObject data = MessageSend.sendMsg(stringBuilder.toString(), "2", patArchiveSrmVO.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")));
+            String code = data.get("code").toString();
+            if (StringUtils.isNotEmpty(code) && !code.equals("00000")) {
+                sendError.add(patArchiveSrmVO);
+            }
+        }
+
+        return sendError;
+    }
+
     /**
      * 鑾峰彇闅忚缁熻姣斾緥
      *
@@ -2273,8 +2330,25 @@
                     serviceSubtaskStatistic.setAbnormalAgain(serviceSubtaskStatistic.getAbnormalAgain() + 1L);
                 }
             }
-
-
+            //闅忚鎯呭喌
+            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 1) {
+                serviceSubtaskStatistic.setTaskSituation1(serviceSubtaskStatistic.getTaskSituation1() + 1);
+            }
+            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 2) {
+                serviceSubtaskStatistic.setTaskSituation2(serviceSubtaskStatistic.getTaskSituation2() + 1);
+            }
+            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 3) {
+                serviceSubtaskStatistic.setTaskSituation3(serviceSubtaskStatistic.getTaskSituation3() + 1);
+            }
+            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 4) {
+                serviceSubtaskStatistic.setTaskSituation4(serviceSubtaskStatistic.getTaskSituation4() + 1);
+            }
+            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 5) {
+                serviceSubtaskStatistic.setTaskSituation5(serviceSubtaskStatistic.getTaskSituation5() + 1);
+            }
+            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() == 6) {
+                serviceSubtaskStatistic.setTaskSituation6(serviceSubtaskStatistic.getTaskSituation6() + 1);
+            }
         }
 
 

--
Gitblit v1.9.3