From 0c515e7b8e3c1c15c615cc831ef3fdb09ea5265e Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 10 十月 2025 10:25:17 +0800 Subject: [PATCH] 修改BUG --- smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java | 127 ++++++++++++++++++++++++++++++++++++++---- 1 files changed, 114 insertions(+), 13 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java index 898d8e9..c4f7484 100644 --- a/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java @@ -8,16 +8,16 @@ import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.DtoConversionUtils; import com.smartor.domain.*; +import com.smartor.mapper.ServiceSubtaskMapper; import com.smartor.service.CommonTaskService; import com.smartor.service.IServiceTaskService; -import com.smartor.service.ISvyTaskService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; @@ -34,6 +34,9 @@ public class CommonTaskServiceImpl implements CommonTaskService { @Autowired private IServiceTaskService ivrTaskService; + + @Autowired + private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private IServiceTaskService iServiceTaskService; @@ -57,7 +60,6 @@ //瀹f暀 return xjSend(sendTaskVO); } - log.error("璧板埌杩欓噷浜嗗槢"); return null; } @@ -67,9 +69,34 @@ //浠诲姟鏆傚仠鎴栫粓姝� ServiceTask serviceTask = new ServiceTask(); serviceTask.setTaskid(sendTaskVO.getTaskId()); - serviceTask.setStopState(ivrTask.getStopState() + 1); +// serviceTask.setStopState(ivrTask.getStopState() + 1); serviceTask.setSendState(sendTaskVO.getSendState()); int i = ivrTaskService.updateServiceTask(serviceTask); + //鑾峰彇鍒拌浠诲姟鎵�鏈夌殑鏈嶅姟锛屽苟浠庨槦鍒楅噷鍒犻櫎 + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(serviceTask.getTaskid()); + serviceSubtaskVO.setSendstate(2L); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + serviceSubtaskVO.setSendstate(1L); + List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); + } else { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; + } + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + log.error("sfSend闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString()); + serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); + redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); + } + } + return i; } @@ -80,6 +107,8 @@ //鍒ゆ柇浠诲姟鏄惁鏄珛鍗冲彂閫� if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) { String content = sendMQContent(sendTaskVO, ivrTask.getTemplateid().toString(), ivrTask.getPreachform(), ivrTask.getStopState(), null); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(ivrTask.getTaskid(), new Date()); //绔嬪嵆鍙戦�� redisCache.setCacheObject(content, content, 1, TimeUnit.SECONDS); //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓� @@ -102,23 +131,23 @@ } catch (JsonProcessingException e) { log.error("JsonProcessingException鎶ラ敊浜嗭細{}", e.getMessage()); } + Date date = new Date(); for (TaskSendTimeVO taskSendTimeVO : taskSendTimeVOList) { -// //鍘籗endTimeslot涓紝鑾峰彇鎵�鏈夌殑鏃堕棿娈� -// List<TaskSendTimeVO> list = new ArrayList<>(); -// list.add(taskSendTimeVO); - //鑾峰彇寮�濮嬪彂閫佹椂闂� String begantime = taskSendTimeVO.getBegantime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //璁板綍鐩墠鍒板彂閫佹椂闂寸殑姣鍊� 锛堝彂閫佹椂闂寸殑姣鍊� - 褰撳墠鏃堕棿鐨勬绉掑�硷級 Long milliseconds = 1000L; try { - Date date = sdf.parse(begantime); + date = sdf.parse(begantime); milliseconds = date.getTime() - System.currentTimeMillis(); System.out.println("鏃ユ湡姣鏁帮細" + milliseconds); SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class); sendTaskVO1.setSendType("1"); String content = sendMQContent(sendTaskVO1, ivrTask.getTemplateid().toString(), ivrTask.getPreachform(), ivrTask.getStopState(), taskSendTimeVO); + + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(ivrTask.getTaskid(), date); redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS); } catch (Exception e) { e.printStackTrace(); @@ -142,9 +171,33 @@ //浠诲姟鏆傚仠鎴栫粓姝� ServiceTask serviceTask = new ServiceTask(); serviceTask.setTaskid(sendTaskVO.getTaskId()); - serviceTask.setStopState(serviceTask1.getStopState() + 1); +// serviceTask.setStopState(serviceTask1.getStopState() + 1); serviceTask.setSendState(sendTaskVO.getSendState()); int i = iServiceTaskService.updateServiceTask(serviceTask); + //鑾峰彇鍒拌浠诲姟鎵�鏈夌殑鏈嶅姟锛屽苟浠庨槦鍒楅噷鍒犻櫎 + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(serviceTask1.getTaskid()); + serviceSubtaskVO.setSendstate(2L); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + serviceSubtaskVO.setSendstate(1L); + List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); + } else { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; + } + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + log.error("wjSend闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString()); + serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); + redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); + } + } return i; } @@ -156,6 +209,8 @@ if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) { String content = sendMQContent(sendTaskVO, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), null); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), new Date()); //绔嬪嵆鍙戦�� redisCache.setCacheObject(content, content, 1, TimeUnit.SECONDS); @@ -176,6 +231,7 @@ } catch (JsonProcessingException e) { log.error("JsonProcessingException鎶ラ敊浜嗭細{}", e.getMessage()); } + Date date = new Date(); for (TaskSendTimeVO taskSendTimeVO : taskSendTimeVOList) { //鍘籗endTimeslot涓紝鑾峰彇鎵�鏈夌殑鏃堕棿娈� // List<TaskSendTimeVO> list = new ArrayList<>(); @@ -187,7 +243,7 @@ //璁板綍鐩墠鍒板彂閫佹椂闂寸殑姣鍊� 锛堝彂閫佹椂闂寸殑姣鍊� - 褰撳墠鏃堕棿鐨勬绉掑�硷級 Long milliseconds = 1000L; try { - Date date = sdf.parse(begantime); + date = sdf.parse(begantime); milliseconds = date.getTime() - System.currentTimeMillis(); if (milliseconds < 0) { milliseconds = 1000L; @@ -200,6 +256,8 @@ SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class); sendTaskVO1.setSendType("1"); String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), taskSendTimeVO); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), date); redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS); } //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓� @@ -219,9 +277,34 @@ //浠诲姟鏆傚仠鎴栫粓姝� ServiceTask serviceTask = new ServiceTask(); serviceTask.setTaskid(sendTaskVO.getTaskId()); - serviceTask.setStopState(serviceTask1.getStopState() + 1); +// serviceTask.setStopState(serviceTask1.getStopState() + 1); serviceTask.setSendState(sendTaskVO.getSendState()); iServiceTaskService.updateServiceTask(serviceTask); + //鑾峰彇鍒拌浠诲姟鎵�鏈夌殑鏈嶅姟锛屽苟浠庨槦鍒楅噷鍒犻櫎 + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(serviceTask1.getTaskid()); + serviceSubtaskVO.setSendstate(2L); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + serviceSubtaskVO.setSendstate(1L); + List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); + } else { + if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; + } + if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + log.error("xjSend闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString()); + serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); + redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); + redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); + } + } + return 0; } @@ -233,6 +316,8 @@ if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) { String content = sendMQContent(sendTaskVO, serviceTask1.getLibtemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), null); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), new Date()); //绔嬪嵆鍙戦�� redisCache.setCacheObject(content, content, 1, TimeUnit.SECONDS); @@ -246,6 +331,7 @@ } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1") || StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("3")) { //鏃堕棿娈靛彂閫� ObjectMapper objectMapper = new ObjectMapper(); + Date date = new Date(); if (StringUtils.isNotEmpty(serviceTask1.getSendTimeSlot())) { List<TaskSendTimeVO> taskSendTimeVOList = null; try { @@ -265,7 +351,7 @@ //璁板綍鐩墠鍒板彂閫佹椂闂寸殑姣鍊� 锛堝彂閫佹椂闂寸殑姣鍊� - 褰撳墠鏃堕棿鐨勬绉掑�硷級 Long milliseconds = 1000L; try { - Date date = sdf.parse(begantime); + date = sdf.parse(begantime); milliseconds = date.getTime() - System.currentTimeMillis(); System.out.println("鏃ユ湡姣鏁帮細" + milliseconds); } catch (Exception e) { @@ -275,6 +361,8 @@ SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class); sendTaskVO1.setSendType("1"); String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), taskSendTimeVO); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), date); redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS); } //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓� @@ -312,4 +400,17 @@ commonTaskcallMQJson = commonTaskcallMQJson.substring(1, commonTaskcallMQJson.length() - 1); return commonTaskcallMQJson; } + + private void updateServiceSubtask(Long taskId, Date date) { + //鍙杩涘叆闃熷垪灏辩畻寰呭彂閫� + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(taskId); + serviceSubtaskVO.setSendstate(1L); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + serviceSubtask.setSendstate(2L); + serviceSubtask.setVisitTime(date); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + } + } } -- Gitblit v1.9.3