Browse Source

场景计算统计

dsx 1 year ago
parent
commit
5e8f862274
1 changed files with 128 additions and 18 deletions
  1. 128 18
      src/main/java/com/fdkankan/job/job/SceneCallCountHandler.java

+ 128 - 18
src/main/java/com/fdkankan/job/job/SceneCallCountHandler.java

@@ -57,9 +57,9 @@ public class SceneCallCountHandler {
     public static final String DINGTALK_MSG_PATTERN =
             "**日期**: %s\n\n" +
             "**环境**: %s\n\n" +
-            "v4场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n" +
             "%s" +
-            "**错误日志**: %s";
+            "%s" +
+            "**错误日志**: \n\n%s";
 
     @XxlJob("sceneCallCountHandler")
     public void sceneCallCountHandler() throws Exception {
@@ -71,17 +71,86 @@ public class SceneCallCountHandler {
         Date dateEnd = DateExtUtil.endOfDay(time);
 
         //v4场景
-        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));
+//        AtomicInteger v4Count = new AtomicInteger(0);
+//        AtomicInteger v4Fail = new AtomicInteger(0);
+        int v4Count = 0,v4success = 0,v4Fail = 0,v4Waiting = 0;//总数
+        int v4CountKK = 0,v4successKK = 0,v4FailKK = 0,v4WaitingKK = 0;//看看
+        int v4CountKJ = 0,v4successKJ = 0,v4FailKJ = 0,v4WaitingKJ = 0;//看见
+        int v4CountSS = 0,v4successSS = 0,v4FailSS = 0,v4WaitingSS = 0;//深时
+        int v4CountSG = 0,v4successSG = 0,v4FailSG = 0,v4WaitingSG = 0;//深光
+        List<ScenePlus> scenePluses = scenePlusService.list(new LambdaQueryWrapper<ScenePlus>().ge(ScenePlus::getCreateTime, dateStart).le(ScenePlus::getCreateTime, dateEnd).isNotNull(ScenePlus::getCameraId));
 
         List<String> numList = new ArrayList<>();
         if(CollUtil.isNotEmpty(scenePluses)){
-            v4Count.set(scenePluses.size());
+            //汇总信息
+            v4Count = scenePluses.size();
             v4success = (int) scenePluses.stream().filter(plus -> plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2).count();
-            v4Fail.set((int) scenePluses.stream().filter(plus -> plus.getSceneStatus() == -1).count());
+            v4Fail = ((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());
+            numList = scenePluses.stream().filter(plus -> plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2).map(scenePlus -> scenePlus.getNum()).collect(Collectors.toList());
+
+            //细分信息
+            for (ScenePlus plus : scenePluses) {
+                switch (plus.getSceneSource()){
+                    case 1 : //看看
+                        v4CountKK++;
+                        if(plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2){
+                            v4successKK++;
+                        }
+                        if(plus.getSceneStatus() == -1 || plus.getSceneStatus() == 500){
+                            v4FailKK++;
+                        }
+                        if(plus.getSceneStatus() == 0){
+                            v4WaitingKK++;
+                        }
+                        break;
+                    case 3 : //看见
+                        v4CountKJ++;
+                        if(plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2){
+                            v4successKJ++;
+                        }
+                        if(plus.getSceneStatus() == -1 || plus.getSceneStatus() == 500){
+                            v4FailKJ++;
+                        }
+                        if(plus.getSceneStatus() == 0){
+                            v4WaitingKJ++;
+                        }
+                        break;
+                    case 4 : //看看
+                        v4CountSS++;
+                        if(plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2){
+                            v4successSS++;
+                        }
+                        if(plus.getSceneStatus() == -1 || plus.getSceneStatus() == 500){
+                            v4FailSS++;
+                        }
+                        if(plus.getSceneStatus() == 0){
+                            v4WaitingSS++;
+                        }
+                        break;
+                    case 5 : //看看
+                        v4CountSG++;
+                        if(plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2){
+                            v4successSG++;
+                        }
+                        if(plus.getSceneStatus() == -1 || plus.getSceneStatus() == 500){
+                            v4FailSG++;
+                        }
+                        if(plus.getSceneStatus() == 0){
+                            v4WaitingSG++;
+                        }
+                        break;
+                }
+            }
         }
+
+//        if(CollUtil.isNotEmpty(scenePluses)){
+//            v4Count.set(scenePluses.size());
+//            v4success = (int) scenePluses.stream().filter(plus -> plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2).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(
@@ -89,35 +158,75 @@ public class SceneCallCountHandler {
                         .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();
+            for (SceneBuildProcessLog item : logList) {
+//                if(!numList.contains(item.getNum())){
+//                    v4Count++;
+//                    v4Fail++;
+//                }
+                if(!numList.contains(item.getNum())){
+                    errorMsg.append(item.getNum()).append(":").append(SceneBuildProcessType.get(item.getProcess()).message()).append("出错\n\n");
                 }
-                errorMsg.append(item.getNum()).append(":").append(SceneBuildProcessType.get(item.getProcess()).message()).append("出错\n\n");
-            });
+            }
         }
+        String v4Msg = String.format( "v4场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v4Count, v4success, v4Fail, v4Waiting)
+                .concat(String.format("\t看看总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v4CountKK, v4successKK, v4FailKK, v4WaitingKK))
+                .concat(String.format("\t看见总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v4CountKJ, v4successKJ, v4FailKJ, v4WaitingKJ))
+                .concat(String.format("\t深时总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v4CountSS, v4successSS, v4FailSS, v4WaitingSS))
+                .concat(String.format("\t深光总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v4CountSG, v4successSG, v4FailSG, v4WaitingSG));
 
         //v3场景
         String v3Msg = "";
         StringBuilder v3ErrorMsg =  new StringBuilder();
         if(env.equals("gn")){
-            int v3Count = 0; int v3success = 0; int v3Fail = 0; int v3Waiting = 0;
+            int v3Count = 0, v3success = 0, v3Fail = 0, v3Waiting = 0;
+            int v3CountKK = 0, v3successKK = 0, v3FailKK = 0, v3WaitingKK = 0;
+            int v3CountKJ = 0, v3successKJ = 0, v3FailKJ = 0, v3WaitingKJ = 0;
             List<ScenePro> scenePros = sceneProService.list(new LambdaQueryWrapper<ScenePro>().ge(ScenePro::getCreateTime, dateStart).le(ScenePro::getCreateTime, dateEnd));
             if(CollUtil.isNotEmpty(scenePros)){
                 v3Count = scenePros.size();
                 v3success = (int) scenePros.stream().filter(plus -> plus.getStatus() == 1 || plus.getStatus() == -2).count();
                 v3Fail = (int)scenePros.stream().filter(plus -> plus.getStatus() == -1).count();
                 v3Waiting = (int)scenePros.stream().filter(plus -> plus.getStatus() == 0).count();
+
+                //细分信息
+                for (ScenePro pro : scenePros) {
+                    switch (pro.getSceneSource()){
+                        case 1 : //看看
+                            v3CountKK++;
+                            if(pro.getStatus() == 1 || pro.getStatus() == -2){
+                                v3successKK++;
+                            }
+                            if(pro.getStatus() == -1 || pro.getStatus() == 500){
+                                v3FailKK++;
+                            }
+                            if(pro.getStatus() == 0){
+                                v3WaitingKK++;
+                            }
+                            break;
+                        case 3 : //看见
+                            v3CountKJ++;
+                            if(pro.getStatus() == 1 || pro.getStatus() == -2){
+                                v3successKJ++;
+                            }
+                            if(pro.getStatus() == -1 || pro.getStatus() == 500){
+                                v3FailKJ++;
+                            }
+                            if(pro.getStatus() == 0){
+                                v3WaitingKJ++;
+                            }
+                            break;
+                    }
+                }
+
                 scenePros.stream().forEach(pro->{
                     if(pro.getStatus().equals(CommonOperStatus.FAILD.code())){
                         v3ErrorMsg.append(pro.getNum()).append(":").append("计算失败\n\n");
                     }
                 });
             }
-            v3Msg = String.format("v3场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v3Count, v3success, v3Fail, v3Waiting);
+            v3Msg = String.format("v3场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v3Count, v3success, v3Fail, v3Waiting)
+                    .concat(String.format("看看总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v3CountKK, v3successKK, v3FailKK, v3WaitingKK))
+                    .concat(String.format("看看总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v3CountKJ, v3successKJ, v3FailKJ, v3WaitingKJ));
         }
 
         if(StrUtil.isNotBlank(v3ErrorMsg)){
@@ -137,7 +246,7 @@ public class SceneCallCountHandler {
         String ddMsg = String.format(
                 DINGTALK_MSG_PATTERN, DateExtUtil.format(time, DateExtUtil.dateStyle4),
                 envName,
-                v4Count.get(), v4success, v4Fail.get(), v4Waiting,
+                v4Msg,
                 v3Msg,
                 errorMsg);
 
@@ -153,4 +262,5 @@ public class SceneCallCountHandler {
     }
 
 
+
 }