Blame view

src/main/java/com/objecteye/websocket/SelectMongoData.java 24.5 KB
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
1
2
3
4
  package com.objecteye.websocket;
  
  import cn.hutool.core.date.DateTime;
  import cn.hutool.core.date.DateUtil;
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
5
6
  import com.objecteye.entity.SyDeploy;
  import com.objecteye.entity.SystemStartTime;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.data.mongodb.core.MongoTemplate;
  import org.springframework.data.mongodb.core.query.Criteria;
  import org.springframework.data.mongodb.core.query.Query;
  import org.springframework.stereotype.Component;
  
  import java.util.*;
  
  
  @Component
  public class SelectMongoData {
  
      private static float sdkThreshold = 0.7F;  //sdk的阈值
  
      @Autowired
      private MongoTemplate mongoTemplate;
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
23
24
25
26
  
      //处理过车总量
      public long getVehicleCount() {
          Query query = new Query();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
27
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
28
29
30
31
32
33
34
35
36
37
      }
  
      //监控总天数(从系统接入的那天开始算起)
      public long getMonitorTotalDays() {
          Query query = new Query();
          SystemStartTime one = mongoTemplate.findOne(query, SystemStartTime.class, "SystemStartTime");
          long startTime = one.getStartTime();
          DateTime now = DateUtil.date();
          DateTime endOfDay = DateUtil.endOfDay(now);
          long endTime = endOfDay.getTime();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
38
          return (endTime - startTime + 1) / (1000 * 60 * 60 * 24);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
      }
  
      //记录程序开始运行时间
      public void setSystemStartTime() {
          Query query = new Query();
          long count = mongoTemplate.count(query, "SystemStartTime");
          if (count == 0) {
              //获取当前时间
              DateTime date = DateUtil.date();
              //获取本日开始时间
              DateTime time = DateUtil.beginOfDay(date);
              long startTime = time.getTime();
              SystemStartTime systemStartTime = new SystemStartTime();
              systemStartTime.setStartTime(startTime);
              mongoTemplate.save(systemStartTime, "SystemStartTime");
          }
      }
  
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
57
58
      //布控车辆/排总数
      public int getDeployCount() {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
59
          return (int) mongoTemplate.count(Query.query(Criteria.where("isDelete").is(0)), SyDeploy.class);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
60
61
62
63
      }
  
      //报警总数
      public long getAlarmCount() {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
64
          return mongoTemplate.count(new Query(), "plateAlarmMsg");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
65
66
67
68
69
70
71
72
73
74
75
76
77
78
      }
  
      //本月过车总数
      public long getVehicleCountInMonth() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本月第一天时间
          DateTime time = DateUtil.beginOfMonth(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
79
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
80
81
82
83
84
85
86
87
88
89
90
91
92
93
      }
  
      //本周过车总数
      public long getVehicleCountInWeek() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本周开始时间
          DateTime time = DateUtil.beginOfWeek(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
94
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
      }
  
      //本日主驾未系安全带
      public long getDriverBelt() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本日开始时间
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_illegal_driver_belt_confidence").gt(sdkThreshold)
                  .and("vehicle_illegal_driver_belt_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
111
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
      }
  
      //本日副驾驶未系安全带
      public long getCopilotBelt() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本日开始时间
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_illegal_copilot_belt_confidence").gt(sdkThreshold)
                  .and("vehicle_illegal_copilot_belt_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
128
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
      }
  
      //本日主驾打电话
      public long getDriverPhone() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本日开始时间
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_illegal_driver_phone_confidence").gt(sdkThreshold)
                  .and("vehicle_illegal_driver_phone_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
145
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
146
147
148
149
150
151
152
153
154
155
156
157
158
159
      }
  
      //本日副驾打电话
      public long getCopilotPhone() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_illegal_copilot_phone_confidence").gt(sdkThreshold)
                  .and("vehicle_illegal_copilot_phone_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
160
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
      }
  
      //本日主驾抽烟
      public long getDriverSmoke() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本日开始时间
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_illegal_driver_smoke_confidence").gt(sdkThreshold)
                  .and("vehicle_illegal_driver_smoke_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
177
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
      }
  
      //本日副驾抽烟
      public long getCopilotSmoke() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本日开始时间
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_illegal_copilot_smoke_confidence").gt(sdkThreshold)
                  .and("vehicle_illegal_copilot_smoke_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
194
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
195
196
      }
  
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
      //本日违规类型排名
      public List<Map<String, Object>> getViolationTypeRanking() {
          List<Map<String, Object>> list = new ArrayList<>();
          Map<String, Object> map = new HashMap<>();
          map.put("name", "主驾未系安全带");
          map.put("value", getDriverBelt());
          list.add(map);
          Map<String, Object> map1 = new HashMap<>();
          map1.put("name", "副驾驶未系安全带");
          map1.put("value", getCopilotBelt());
          list.add(map1);
          Map<String, Object> map2 = new HashMap<>();
          map2.put("name", "主驾打电话");
          map2.put("value", getDriverPhone());
          list.add(map2);
          Map<String, Object> map3 = new HashMap<>();
          map3.put("name", "主驾抽烟");
          map3.put("value", getDriverSmoke());
          list.add(map3);
          Map<String, Object> map4 = new HashMap<>();
          map4.put("name", "污损车牌");
          map4.put("value", 0);
          list.add(map4);
          Map<String, Object> map5 = new HashMap<>();
          map5.put("name", "无车牌");
          map5.put("value", 0);
          list.add(map5);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
224
225
226
227
228
229
          list.sort((a, b) -> {
              //默认flag值1,默认是升序,如果返回是为-flag则是降序
              String valueA = a.get("value").toString();
              String valueB = b.get("value").toString();
              int flag = Integer.parseInt(valueA) - Integer.parseInt(valueB);
              return Integer.compare(0, flag);
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
          });
          return list;
      }
  
      //本日渣土车
      public long getMuckCarCount() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_special_score").gt(sdkThreshold)
                  .and("vehicle_special_type").is(2);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
246
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
247
248
249
250
251
252
253
254
255
256
257
258
259
260
      }
  
      //本日危化品车
      public long getDangerousChemicalsVehicleCount() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_special_score").gt(sdkThreshold)
                  .and("vehicle_special_type").is(1);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
261
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
262
263
264
265
266
267
268
269
270
271
272
273
274
275
      }
  
      //本日过车总数
      public long getVehicleCountInDay() {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取当前时间
          DateTime date = DateUtil.date();
          //获取本日开始时间
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
276
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
277
278
279
280
      }
  
      //本日违规总数
      public long getViolateCountInDay() {
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
281
          return getDriverBelt() + getCopilotBelt() + getDriverPhone() + getCopilotPhone() + getDriverSmoke() + getCopilotSmoke();
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
282
283
284
285
286
287
288
289
      }
  
      //本日报警总数
      public long getAlarmCountInDay() {
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
290
          return mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime)), "plateAlarmMsg");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
291
292
293
294
295
296
297
298
      }
  
      //本日车牌报警总数
      public long getPlateAlarmCountInDay() {
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
299
          return mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(0)), "plateAlarmMsg");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
300
301
302
303
304
305
306
307
      }
  
      //本日车辆报警总数
      public long getVihecleAlarmCountInDay() {
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
308
          return mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(1)), "plateAlarmMsg");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
309
310
311
312
313
314
315
316
      }
  
      //本日人员报警总数
      public long getPersonAlarmCountInDay() {
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
317
          return mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(2)), "plateAlarmMsg");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
      }
  
      //本日相关数据
      public Map<String, Object> getTodayData() {
          Map<String, Object> dataMap = new HashMap<>();
          //时间
          DateTime date = DateUtil.date();
          DateTime time = DateUtil.beginOfDay(date);
          long startTime = time.getTime();
          long endTime = date.getTime();
          //本日过车总数
          long vehicleCountInDay = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime)), "rabbitMQVehicle");
          dataMap.put("vehicleCountInDay", vehicleCountInDay);
          //本日主驾未系安全带
          long driverBeltInDay = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_driver_belt_confidence").gt(sdkThreshold).and("vehicle_illegal_driver_belt_status").is(1000)), "rabbitMQVehicle");
          //本日副驾驶未系安全带
          long copilotBeltInDay = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_copilot_belt_confidence").gt(sdkThreshold).and("vehicle_illegal_copilot_belt_status").is(1000)), "rabbitMQVehicle");
          //本日主驾打电话
          long driverPhone = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_driver_phone_confidence").gt(sdkThreshold).and("vehicle_illegal_driver_phone_status").is(1000)), "rabbitMQVehicle");
          //本日副驾打电话
          long copilotPhone = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_copilot_phone_confidence").gt(sdkThreshold).and("vehicle_illegal_copilot_phone_status").is(1000)), "rabbitMQVehicle");
          //本日主驾抽烟
          long driverSmoke = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_driver_smoke_confidence").gt(sdkThreshold).and("vehicle_illegal_driver_smoke_status").is(1000)), "rabbitMQVehicle");
          //本日副驾抽烟
          long copilotSmoke = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_copilot_smoke_confidence").gt(sdkThreshold).and("vehicle_illegal_copilot_smoke_status").is(1000)), "rabbitMQVehicle");
          //本日渣土车
          long muckCarCount = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_special_score").gt(sdkThreshold).and("vehicle_special_type").is(2)), "rabbitMQVehicle");
          dataMap.put("muckCarCount", muckCarCount);
          //本日危化品车
          long dangerousCarCount = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_special_score").gt(sdkThreshold).and("vehicle_special_type").is(1)), "rabbitMQVehicle");
          dataMap.put("dangerousCarCount", dangerousCarCount);
          //本日违规总数
          long violateCountInDay = driverBeltInDay + copilotBeltInDay + driverPhone + copilotPhone + driverSmoke + copilotSmoke;
          dataMap.put("violateCountInDay", violateCountInDay);
          //本日车牌报警总数
          long plateAlarmCountInDay = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(0)), "plateAlarmMsg");
          dataMap.put("plateAlarmCountInDay", plateAlarmCountInDay);
          //本日车辆报警总数
          long vihecleAlarmCountInDay = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(1)), "plateAlarmMsg");
          dataMap.put("vihecleAlarmCountInDay", vihecleAlarmCountInDay);
          //本日人员报警总数
          long personAlarmCountInDay = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(2)), "plateAlarmMsg");
          dataMap.put("personAlarmCountInDay", personAlarmCountInDay);
          //本日报警总数
          long alarmCountInDay = plateAlarmCountInDay + vihecleAlarmCountInDay + personAlarmCountInDay;
          dataMap.put("alarmCountInDay", alarmCountInDay);
          //违规排行
          Map<String, Long> map = new HashMap<String, Long>();
          map.put("主驾未系安全带", driverBeltInDay);
          map.put("副驾驶未系安全带", copilotBeltInDay);
          map.put("主驾打电话", driverPhone);
          map.put("主驾抽烟", driverSmoke);
          map.put("污损车牌", Long.valueOf(0));
          map.put("无车牌", Long.valueOf(0));
          Comparator<Map.Entry<String, Long>> valueComparator = new Comparator<Map.Entry<String, Long>>() {
              @Override
              public int compare(Map.Entry<String, Long> o1, Map.Entry<String, Long> o2) {
                  return Math.toIntExact(o2.getValue() - o1.getValue());
              }
          };
          List<Map.Entry<String, Long>> violationTypeRanking = new ArrayList<Map.Entry<String, Long>>(map.entrySet());
          Collections.sort(violationTypeRanking, valueComparator);
          dataMap.put("violationTypeRanking", violationTypeRanking);
  
          return dataMap;
  
      }
  
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
      //七日过车情况(近七天每天的过车总量)
      public List<Long> getOneWeekVehicleCount() {
          List<Long> list = new ArrayList<>();
          //获取当前时间
          DateTime date = DateUtil.date();
          for (int i = 6; i >= 0; i--) {
              DateTime offsetDay = DateUtil.offsetDay(date, -i);
              long countToday = getVehicleCountToday(offsetDay);
              list.add(countToday);
          }
          if (list.size() <= 0) {
              return null;
          }
          return list;
      }
  
      //当天过车总量
      public long getVehicleCountToday(DateTime date) {
          //获取本日开始时间
          DateTime beginOfDay = DateUtil.beginOfDay(date);
          //获取本日结束时间
          DateTime endOfDay = DateUtil.endOfDay(date);
          Query query = new Query();
          Criteria criteria = new Criteria();
          long startTime = beginOfDay.getTime();
          long endTime = endOfDay.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
414
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
      }
  
      //七日特殊品类车辆走势(近七天每天渣土车、危化品车总数)
      public List<long[]> getOneWeekSpecialtyVehicleCount() {
          List<long[]> list = new ArrayList<>();
          //获取当前时间
          DateTime date = DateUtil.date();
          for (int i = 6; i >= 0; i--) {
              DateTime offsetDay = DateUtil.offsetDay(date, -i);
              long muckCarCountToday = getMuckCarCountToday(offsetDay);
              long chemicalsVehicleCountToday = getDangerousChemicalsVehicleCountToday(offsetDay);
              long[] l = new long[2];
              l[0] = muckCarCountToday;
              l[1] = chemicalsVehicleCountToday;
              list.add(l);
          }
          return list;
      }
  
      //一天中渣土车总量
      public long getMuckCarCountToday(DateTime date) {
          //获取本日开始时间
          DateTime beginOfDay = DateUtil.beginOfDay(date);
          //获取本日结束时间
          DateTime endOfDay = DateUtil.endOfDay(date);
          Query query = new Query();
          Criteria criteria = new Criteria();
          long startTime = beginOfDay.getTime();
          long endTime = endOfDay.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_special_score").gt(sdkThreshold)
                  .and("vehicle_special_type").is(2);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
448
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
      }
  
      //一天中危化品车总量
      public long getDangerousChemicalsVehicleCountToday(DateTime date) {
          Query query = new Query();
          Criteria criteria = new Criteria();
          //获取本日开始时间
          DateTime beginOfDay = DateUtil.beginOfDay(date);
          //获取本日结束时间
          DateTime endOfDay = DateUtil.endOfDay(date);
          long startTime = beginOfDay.getTime();
          long endTime = endOfDay.getTime();
          criteria.and("pictime").gte(startTime).lt(endTime)
                  .and("vehicle_special_score").gt(sdkThreshold)
                  .and("vehicle_special_type").is(1);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
465
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
466
467
468
      }
  
      //获取卡口经过车辆数
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
469
      public long getVehicleCountBydeviceId() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
470
471
472
473
474
475
          Query query = new Query();
          SystemStartTime one = mongoTemplate.findOne(query, SystemStartTime.class, "SystemStartTime");
          long startTime = one.getStartTime();
          DateTime now = DateUtil.date();
          long endTime = now.getTime();
          Criteria criteria = new Criteria();
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
476
477
          criteria.and("pictime").gte(startTime).lt(endTime);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
478
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
479
480
481
      }
  
      //获取过去一小时卡口经过车辆数
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
482
      public long getVehicleCountInHours() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
483
484
485
486
487
488
          Query query = new Query();
          DateTime now = DateUtil.date(); //现在
          DateTime offsetHour = DateUtil.offsetHour(now, -1); //一小时前
          long startTime = offsetHour.getTime();
          long endTime = now.getTime();
          Criteria criteria = new Criteria();
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
489
490
          criteria.and("pictime").gte(startTime).lt(endTime);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
491
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
492
493
494
      }
  
      //限定设备,主驾未系安全带
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
495
      public long getDriverBeltByDeviceId() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
496
497
          Query query = new Query();
          Criteria criteria = new Criteria();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
498
          criteria.and("vehicle_illegal_driver_belt_confidence").gt(sdkThreshold)
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
499
500
                  .and("vehicle_illegal_driver_belt_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
501
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
502
503
504
      }
  
      //限定设备,副驾驶未系安全带
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
505
      public long getCopilotBeltByDeviceId() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
506
507
          Query query = new Query();
          Criteria criteria = new Criteria();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
508
          criteria.and("vehicle_illegal_copilot_belt_confidence").gt(sdkThreshold)
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
509
510
                  .and("vehicle_illegal_copilot_belt_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
511
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
512
513
514
      }
  
      //限定设备,主驾打电话
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
515
      public long getDriverPhoneByDeviceId() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
516
517
          Query query = new Query();
          Criteria criteria = new Criteria();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
518
          criteria.and("vehicle_illegal_driver_phone_confidence").gt(sdkThreshold)
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
519
520
                  .and("vehicle_illegal_driver_phone_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
521
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
522
523
524
      }
  
      //限定设备,副驾打电话
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
525
      public long getCopilotPhoneByDeviceId() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
526
527
          Query query = new Query();
          Criteria criteria = new Criteria();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
528
          criteria.and("vehicle_illegal_copilot_phone_confidence").gt(sdkThreshold)
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
529
530
                  .and("vehicle_illegal_copilot_phone_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
531
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
532
533
534
      }
  
      //限定设备,主驾抽烟
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
535
      public long getDriverSmokeByDeviceId() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
536
537
          Query query = new Query();
          Criteria criteria = new Criteria();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
538
          criteria.and("vehicle_illegal_driver_smoke_confidence").gt(sdkThreshold)
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
539
540
                  .and("vehicle_illegal_driver_smoke_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
541
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
542
543
544
      }
  
      //限定设备,副驾抽烟
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
545
      public long getCopilotSmokeByDeviceId() {
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
546
547
          Query query = new Query();
          Criteria criteria = new Criteria();
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
548
          criteria.and("vehicle_illegal_copilot_smoke_confidence").gt(sdkThreshold)
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
549
550
                  .and("vehicle_illegal_copilot_smoke_status").is(1000);
          query.addCriteria(criteria);
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
551
          return mongoTemplate.count(query, "rabbitMQVehicle");
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
552
553
554
      }
  
      //设备接入至现在的违规车辆数
40c853a1   Liu Haoyu   去掉MySQL相关内容, 去掉my...
555
556
      public long getViolateCountByDeviceId() {
          return getDriverBeltByDeviceId() + getDriverPhoneByDeviceId() + getDriverSmokeByDeviceId() + getCopilotBeltByDeviceId() + getCopilotPhoneByDeviceId() + getCopilotSmokeByDeviceId();
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
      }
  
      //转换类型
      public String changeType(long count) {
          String strCount = null;
          if (count > 99999999) {
              count = count % 100000000;
              strCount = count + "亿";
              return strCount;
          }
          strCount = "" + count;
          return strCount;
      }
  
  
  }