Browse Source

场景计算统计

dsx 2 năm trước cách đây
mục cha
commit
fd4ec9c438
1 tập tin đã thay đổi với 25 bổ sung25 xóa
  1. 25 25
      src/main/java/com/fdkankan/job/job/SceneCallCountHandler.java

+ 25 - 25
src/main/java/com/fdkankan/job/job/SceneCallCountHandler.java

@@ -3,10 +3,6 @@ package com.fdkankan.job.job;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.img.ImgUtil;
 import cn.hutool.core.util.StrUtil;
-import cn.hutool.db.Db;
-import cn.hutool.db.Entity;
-import cn.hutool.db.ds.DSFactory;
-import com.alibaba.druid.pool.DruidDataSource;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.common.constant.CommonOperStatus;
 import com.fdkankan.common.util.DateExtUtil;
@@ -14,12 +10,10 @@ import com.fdkankan.dingtalk.DingTalkSendUtils;
 import com.fdkankan.job.entity.SceneBuildProcessLog;
 import com.fdkankan.job.entity.ScenePlus;
 import com.fdkankan.job.entity.ScenePro;
-import com.fdkankan.job.service.IRepairUpXmlUrlService;
 import com.fdkankan.job.service.ISceneBuildProcessLogService;
 import com.fdkankan.job.service.IScenePlusService;
 import com.fdkankan.job.service.ISceneProService;
 import com.fdkankan.model.constants.SceneBuildProcessType;
-import com.taobao.api.ApiException;
 import com.xxl.job.core.context.XxlJobHelper;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,15 +21,14 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Component;
 
-import javax.sql.DataSource;
 import java.io.File;
-import java.io.UnsupportedEncodingException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
 import java.sql.SQLException;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -78,14 +71,33 @@ public class SceneCallCountHandler {
         Date dateEnd = DateExtUtil.endOfDay(time);
 
         //v4场景
-        int v4Count = 0; int v4success = 0; int v4Fail = 0; int v4Waiting = 0;
+        AtomicInteger v4Count = new AtomicInteger(); int v4success = 0; AtomicInteger v4Fail = new AtomicInteger(); int v4Waiting = 0;
         List<ScenePlus> scenePluses = scenePlusService.list(new LambdaQueryWrapper<ScenePlus>().ge(ScenePlus::getCreateTime, dateStart).le(ScenePlus::getCreateTime, dateEnd));
 
+        List<String> numList = new ArrayList<>();
         if(CollUtil.isNotEmpty(scenePluses)){
-            v4Count = scenePluses.size();
+            v4Count.set(scenePluses.size());
             v4success = (int) scenePluses.stream().filter(plus -> plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2).count();
-            v4Fail = (int)scenePluses.stream().filter(plus -> plus.getSceneStatus() == -1).count();
+            v4Fail.set((int) scenePluses.stream().filter(plus -> plus.getSceneStatus() == -1).count());
             v4Waiting = (int)scenePluses.stream().filter(plus -> plus.getSceneStatus() == 0).count();
+            numList = scenePluses.stream().map(scenePlus -> scenePlus.getNum()).collect(Collectors.toList());
+        }
+        //查询错误日志
+        StringBuilder errorMsg = new StringBuilder();
+        List<SceneBuildProcessLog> logList = sceneBuildProcessLogService.list(
+                new LambdaQueryWrapper<SceneBuildProcessLog>()
+                        .eq(SceneBuildProcessLog::getState, CommonOperStatus.FAILD.code())
+                        .ge(SceneBuildProcessLog::getUpdateTime, dateStart).le(SceneBuildProcessLog::getUpdateTime, dateEnd));
+        if(CollUtil.isNotEmpty(logList)){
+            errorMsg.append("\n\n");
+            List<String> finalNumList = numList;
+            logList.stream().forEach(item->{
+                if(!finalNumList.contains(item.getNum())){
+                    v4Count.incrementAndGet();
+                    v4Fail.incrementAndGet();
+                }
+                errorMsg.append(item.getNum()).append(":").append(SceneBuildProcessType.get(item.getProcess()).message()).append("出错\n\n");
+            });
         }
 
         //v3场景
@@ -108,18 +120,6 @@ public class SceneCallCountHandler {
             v3Msg = String.format("v3场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v3Count, v3success, v3Fail, v3Waiting);
         }
 
-        //查询错误日志
-        StringBuilder errorMsg = new StringBuilder();
-        List<SceneBuildProcessLog> logList = sceneBuildProcessLogService.list(
-                new LambdaQueryWrapper<SceneBuildProcessLog>()
-                        .eq(SceneBuildProcessLog::getState, CommonOperStatus.FAILD.code())
-                        .ge(SceneBuildProcessLog::getUpdateTime, dateStart).le(SceneBuildProcessLog::getUpdateTime, dateEnd));
-        if(CollUtil.isNotEmpty(logList)){
-            errorMsg.append("\n\n");
-            logList.stream().forEach(item->{
-                errorMsg.append(item.getNum()).append(":").append(SceneBuildProcessType.get(item.getProcess()).message()).append("出错\n\n");
-            });
-        }
         if(StrUtil.isNotBlank(v3ErrorMsg)){
             errorMsg.append(v3ErrorMsg);
         }