From 73caf5a7072976021f43a764ed2ad73404f4d040 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 02 一月 2025 13:42:15 +0800
Subject: [PATCH] mongo索引、运行监控报表调整
---
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java | 4
ycl-server/src/main/java/com/ycl/task/ContractTask.java | 20 +
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDelayMonitorResult.java | 4
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceSamplingResult.java | 6
ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java | 102 +++---
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/QueryVqdResult.java | 3
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java | 6
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java | 4
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java | 3
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java | 4
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java | 13
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java | 5
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CodeByAreaResult.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceSamplingResult.java | 5
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/AttrRecognitionMonitorResult.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoQualityResult.java | 3
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 2
ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java | 6
ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java | 9
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitorResourceResult.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/PicAccessResult.java | 4
ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DataCenter/SnapClockVO.java | 5
ycl-server/src/main/resources/application-dev.yml | 1
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java | 7
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/OrganizationTreeResult.java | 2
ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java | 539 ++++++++++++++++++++++++++--------------
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/DataIntegrityMonitoringResult.java | 4
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java | 5
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CarDetectResult.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CoordinateByAreaResult.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java | 1
ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDetectResult.java | 2
32 files changed, 433 insertions(+), 346 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java
index 461ebe2..dafcdd1 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/BaseResult.java
@@ -4,6 +4,8 @@
import org.bson.types.ObjectId;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.index.TextIndexed;
import java.time.LocalDate;
import java.util.Date;
@@ -17,14 +19,17 @@
* 鏁版嵁鏃ユ湡
*/
@CreatedDate
+ @Indexed(background = true)
private LocalDate mongoCreateTime;
/**
* 鍥芥爣鐮�
*/
+ @Indexed(background = true)
private String no;
/**
* 鐪佸巺
*/
+ @Indexed(background = true)
private Boolean provinceTag;
//鎺ユ敹mysql鏁版嵁鐢�
private Boolean provinceTagVideo;
@@ -34,20 +39,24 @@
/**
* 閮ㄧ骇
*/
+ @Indexed(background = true)
private Boolean deptTag;
/**
* 閲嶇偣
*/
+ @Indexed(background = true)
private Boolean importantTag;
/**
* 閲嶇偣鎸囨尌鍥惧儚
*/
+ @Indexed(background = true)
private Boolean importantCommandImageTag;
/**
* 鏂拌澶�, true浠h〃鏂拌澶囷紝false鍜宯ull涓嶆槸鏂拌澶�
*/
+ @Indexed(background = true)
private Boolean newDevice;
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/AttrRecognitionMonitorResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/AttrRecognitionMonitorResult.java
index 7c9f0d7..e1e1fc6 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/AttrRecognitionMonitorResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/AttrRecognitionMonitorResult.java
@@ -22,13 +22,11 @@
/**
* 璁惧鎴栧崱鍙e浗鏍囩紪鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鎴栧崱鍙e悕绉�
*/
- @TextIndexed
private String deviceName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CarDetectResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CarDetectResult.java
index 75b2953..d5d904c 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CarDetectResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CarDetectResult.java
@@ -17,13 +17,11 @@
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍖哄煙
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CodeByAreaResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CodeByAreaResult.java
index 6fd707e..791fe51 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CodeByAreaResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CodeByAreaResult.java
@@ -17,13 +17,11 @@
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CoordinateByAreaResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CoordinateByAreaResult.java
index 27fd236..cfab5c6 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CoordinateByAreaResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CoordinateByAreaResult.java
@@ -17,13 +17,11 @@
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java
index 7078f96..ad43a7c 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/CrossDetailResult.java
@@ -19,25 +19,21 @@
/**
* 缁勭粐缂栧彿锛岀敤浜庢煡璇㈣缁勭粐鍙婂叾鎵�鏈変笅绾х粍缁囧崱鍙e紓甯告儏鍐点�傝嫢涓嶄紶锛岃繑鍥炴墍鏈夊崱鍙e紓甯歌鎯呫��
*/
- @TextIndexed
private String orgCode;
/**
* 閲囬泦璁惧鍐呯爜锛岀敤浜庢爣璇嗙壒瀹氱殑閲囬泦璁惧銆�
*/
- @TextIndexed
private String indexCode;
/**
* 鍥芥爣缂栫爜锛堝鐮侊級锛岀敤浜庢爣鍑嗗寲鏍囪瘑閲囬泦璁惧銆�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 鍗″彛鍚嶇О锛岀敤浜庢弿杩版垨鏍囪瘑鍗″彛銆�
*/
- @TextIndexed
private String crossName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/DataIntegrityMonitoringResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/DataIntegrityMonitoringResult.java
index c038942..a714942 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/DataIntegrityMonitoringResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/DataIntegrityMonitoringResult.java
@@ -17,25 +17,21 @@
/**
* 鍗″彛鍐呯爜鎴栭噰闆嗚澶囧唴鐮侊紝dataType涓�1鏃惰〃绀哄崱鍙e唴鐮侊紝dataType涓�11鏃惰〃绀洪噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 璁惧鎴栧崱鍙e浗鏍囩紪鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鎴栧崱鍙e悕绉�
*/
- @TextIndexed
private String deviceName;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDetectResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDetectResult.java
index dc8a6ee..5d45a79 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDetectResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDetectResult.java
@@ -17,13 +17,11 @@
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍖哄煙
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java
index 97a0b15..d2037c4 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceInspectionResult.java
@@ -19,37 +19,31 @@
/**
* 璁惧鍚嶇О
*/
- @TextIndexed
private String deviceName;
/**
* 璁惧缂栧彿
*/
- @TextIndexed
private String externalIndexCode;
/**
* 鍗″彛鍐呯爜鎴栭噰闆嗚澶囧唴鐮侊紝dataType涓�1鏃惰〃绀哄崱鍙e唴鐮侊紝dataType涓�2鎴�11鏃惰〃绀洪噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* IP鍦板潃
*/
- @TextIndexed
private String networkAddr;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceSamplingResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceSamplingResult.java
index 92d85be..40fb956 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceSamplingResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/FaceDeviceSamplingResult.java
@@ -22,37 +22,31 @@
/**
* 璁惧鍚嶇О
*/
- @TextIndexed
private String deviceName;
/**
* 鍗″彛鍐呯爜鎴栭噰闆嗚澶囧唴鐮侊紝dataType涓�1鏃惰〃绀哄崱鍙e唴鐮侊紝dataType涓�2鎴�11鏃惰〃绀洪噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 璁惧鎴栧崱鍙e浗鏍囩紪鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* IP鍦板潃
*/
- @TextIndexed
private String networkAddr;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
// 浠ヤ笅涓哄祵濂楀璞$殑瀛楁
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitorResourceResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitorResourceResult.java
index c3b82cc..ee6241d 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitorResourceResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitorResourceResult.java
@@ -30,13 +30,11 @@
/**
* 鍚嶇О
*/
- @TextIndexed
private String monitorName;
/**
* 缂栧彿
*/
- @TextIndexed
private String monitorCode;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java
index d4105dd..5dfebbf 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/MonitoringDetailResult.java
@@ -19,25 +19,21 @@
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 閲囬泦璁惧鍐呯爜
*/
- @TextIndexed
private String indexCode;
/**
* 鍥芥爣缂栫爜锛堝鐮侊級
*/
- @TextIndexed
private String externalIndexCode;
/**
* 閲囬泦璁惧鍚嶇О
*/
- @TextIndexed
private String cameraName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/OrganizationTreeResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/OrganizationTreeResult.java
index bd11406..785e73a 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/OrganizationTreeResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/OrganizationTreeResult.java
@@ -31,13 +31,11 @@
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/PicAccessResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/PicAccessResult.java
index 29815f6..660c856 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/PicAccessResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/PicAccessResult.java
@@ -22,25 +22,21 @@
/**
* 鏁版嵁绫诲瀷涓�1鏃惰〃绀哄崱鍙e唴鐮侊紝鏁版嵁绫诲瀷涓�2鎴�11鏃惰〃绀轰汉鑴搁噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 璁惧鎴栧崱鍙e浗鏍囩紪鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鎴栧崱鍙e悕绉�
*/
- @TextIndexed
private String deviceName;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java
index 53e4f17..4365b71 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDataMonitorResult.java
@@ -22,25 +22,21 @@
/**
* dataType涓�1锛氬崱鍙e唴鐮� dataType涓�2鎴�11锛氶噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 璁惧鎴栧崱鍙e浗鏍囩紪鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鎴栧崱鍙e悕绉�
*/
- @TextIndexed
private String deviceName;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDelayMonitorResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDelayMonitorResult.java
index 3b5aa0c..731b83c 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDelayMonitorResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/SnapshotDelayMonitorResult.java
@@ -19,25 +19,21 @@
/**
* dataType涓�1锛氬崱鍙e唴鐮� dataType涓�2鎴�11锛氶噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 璁惧鎴栧崱鍙e浗鏍囩紪鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鎴栧崱鍙e悕绉�
*/
- @TextIndexed
private String deviceName;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java
index 9914bcf..6a6b806 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceInspectionResult.java
@@ -19,32 +19,27 @@
/**
* 璁惧缂栧彿锛宒ataType涓�1鏃惰〃绀哄崱鍙e唴鐮侊紝dataType涓�11鏃惰〃绀洪噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鍚嶇О
*/
- @TextIndexed
private String deviceName;
/**
* 鍗″彛鍐呯爜鎴栭噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceSamplingResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceSamplingResult.java
index 02e1390..ff11462 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceSamplingResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/HK/VehicleDeviceSamplingResult.java
@@ -22,31 +22,26 @@
/**
* 鍗″彛鍐呯爜鎴栭噰闆嗚澶囧唴鐮侊紝dataType涓�1鏃惰〃绀哄崱鍙e唴鐮侊紝dataType涓�11鏃惰〃绀洪噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 璁惧鎴栧崱鍙e浗鏍囩紪鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鎴栧崱鍙e悕绉�
*/
- @TextIndexed
private String deviceName;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
// 浠ヤ笅涓哄祵濂楀璞$殑瀛楁
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java
index b22f45d..14fc361 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/MonitorQualifyResult.java
@@ -20,7 +20,6 @@
/**
* IP鍦板潃
*/
- @TextIndexed
private QualifyResult ip;
/**
* 鐩戞帶鐐逛綅绫诲瀷
@@ -41,7 +40,6 @@
/**
* 璁惧鍚�
*/
- @TextIndexed
private QualifyResult name;
/**
* 璁惧鐘舵��
@@ -50,7 +48,6 @@
/**
* 璁惧缂栫爜
*/
- @TextIndexed
private QualifyResult serialNumber;
/**
* 鎽勫儚鏈洪噰闆嗗尯鍩�
@@ -75,12 +72,10 @@
/**
* 灞曠ず鍊�
*/
- @TextIndexed
private String showValue;
/**
* 鏁版嵁鍘熷鍊硷紝濡傚浗鏍囩爜绛�
*/
- @TextIndexed
private String value;
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java
index 7b80843..63d9094 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OneMachineFileResult.java
@@ -22,19 +22,16 @@
/**
* 璁惧缂栫爜锛�20浣嶏細涓績缂栫爜銆佽涓氱紪鐮併�佽澶囩被鍨嬨�佺綉缁滄爣璇嗐�佽澶囧簭鍙凤紝涓庤仈缃戝钩鍙�/鍏变韩骞冲彴鍥芥爣缂栫爜涓�鑷淬��
*/
- @TextIndexed
private String SBBM;
/**
* 璁惧鍚嶇О锛屾爣璇嗚澶囩殑鍩烘湰鍚嶇О銆傚懡鍚嶆柟寮忓弬鐓с�奊AT751-2008瑙嗛鍥惧儚鏂囧瓧鏍囨敞瑙勮寖銆嬨��
*/
- @TextIndexed
private String SBMC;
/**
* 鎽勫儚鏈洪噰闆嗗尯鍩燂紙鍙傝�冩枃妗hВ鏋愶級
*/
- @TextIndexed
private String SXJCJQY;
/**
@@ -46,7 +43,6 @@
/**
* IPV4鍦板潃锛屾憚鍍忔満IP鍦板潃銆�
*/
- @TextIndexed
private String IP;
/**
@@ -72,7 +68,6 @@
/**
* MAC鍦板潃锛屾憚鍍忔満MAC鍦板潃銆�
*/
- @TextIndexed
private String MACDZ;
/**
@@ -85,7 +80,6 @@
/**
* 璁惧鍘傚晢锛岀紪鐮�1-娴峰悍濞佽锛�2-澶у崕锛�3-澶╁湴浼熶笟锛�4-绉戣揪锛�5-瀹夎澹紱6-鍗氫笘锛�7-浜氬畨锛�8-鑻遍鎷擄紱9-瀹囪锛�10-娴蜂俊锛�11-涓槦鐢靛瓙锛�12-鏄庢櫙锛�13-鑱旀兂锛�14-涓叴锛�99-鍏朵粬銆�
*/
- @TextIndexed
private String SBCS;
/**
@@ -101,7 +95,6 @@
/**
* 鐐逛綅淇楃О锛岀洃鎺х偣浣嶉檮杩戝鏈夋爣蹇楁�у缓绛戙�佸満鎵�鎴栫洃鎺х偣浣嶅浜庡叕浼楃害瀹氫織鎴愮殑鍦扮偣锛屽彲浠ュ~鍐欐爣蹇楁�у缓璁惧悕绉板拰鍦扮偣淇楃О銆�
*/
- @TextIndexed
private String DWSC;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java
index ea63c09..1c04824 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java
@@ -23,7 +23,6 @@
/**
* 鍥芥爣鐮�
*/
- @TextIndexed
private String deviceNo;
/**
@@ -43,7 +42,6 @@
/**
* ip
*/
- @TextIndexed
private String ip;
/**
@@ -62,7 +60,6 @@
/**
* osd閫氶亾鍚�
*/
- @TextIndexed
private String osdName;
/**
* osd鐪�
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/QueryVqdResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/QueryVqdResult.java
index 8ccba5c..d950d48 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/QueryVqdResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/QueryVqdResult.java
@@ -22,7 +22,6 @@
/**
* 琛屾斂鍖哄垝鍚嶇О
*/
- @TextIndexed
private String arealayernoName;
/**
*
@@ -63,12 +62,10 @@
/**
* 璁惧 IP
*/
- @TextIndexed
private String deviceIp;
/**
* 璁惧鍚嶇О
*/
- @TextIndexed
private String deviceName;
/**
*
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java
index a07c5c9..f005ce1 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/RecordMetaDSumResult.java
@@ -3,6 +3,9 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycl.platform.domain.result.BaseResult;
import lombok.Data;
+import org.springframework.data.mongodb.core.index.CompoundIndex;
+import org.springframework.data.mongodb.core.index.CompoundIndexes;
+import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.index.TextIndexed;
import org.springframework.data.mongodb.core.mapping.Document;
@@ -16,12 +19,16 @@
*/
@Data
@Document(collection = "uy_record_meta_d_sum")
+@CompoundIndexes({
+ //name锛氱储寮曞悕绉� def锛氬瓧娈�(1姝e簭 -1鍊掑簭) unique锛氭槸鍚﹀敮涓�绱㈠紩
+ //鐩存帴鍔犲埌瀛楁涓婇潰娌$敤
+ @CompoundIndex(name = "video_record", def = "{statTime:-1, no:1}")
+})
public class RecordMetaDSumResult extends BaseResult {
/**
* 琛屾斂鍖哄煙鍚嶇О
*/
- @TextIndexed
private String arealayername;
/**
@@ -38,13 +45,11 @@
/**
* 鎽勫儚鏈篒D
*/
- @TextIndexed
private String deviceId;
/**
* 鎽勫儚鏈哄悕绉�
*/
- @TextIndexed
private String deviceName;
/**
@@ -60,7 +65,6 @@
/**
* 鍥芥爣骞冲彴ID
*/
- @TextIndexed
private String platId;
/**
@@ -82,6 +86,7 @@
* 缁熻鏃堕棿锛屾牸寮忎负鏃ユ湡瀛楃涓�
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @Indexed(background = true)
private Date statTime;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java
index 6a7bb2f..d6cd5ac 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoOnlineResult.java
@@ -30,7 +30,6 @@
/**
* 琛屾斂鍖哄垝鍚嶇О
*/
- @TextIndexed
private String arealayerName;
/**
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoQualityResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoQualityResult.java
index 39118cf..a68bddd 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoQualityResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/VideoQualityResult.java
@@ -16,7 +16,6 @@
private String arealayernoCode;
/** 琛屾斂鍖哄垝鍚嶇О */
- @TextIndexed
private String arealayernoName;
/** 妯$硦 */
@@ -35,11 +34,9 @@
private String deviceId;
/** 鎽勫儚鏈篿p */
- @TextIndexed
private String deviceIp;
/** 鎽勫儚鏈鸿澶囧悕绉� */
- @TextIndexed
private String deviceName;
/** 缁熻绾害 */
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DataCenter/SnapClockVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DataCenter/SnapClockVO.java
index 94b381c..4c4097b 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DataCenter/SnapClockVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/DataCenter/SnapClockVO.java
@@ -16,32 +16,27 @@
/**
* 璁惧缂栧彿锛宒ataType涓�1鏃惰〃绀哄崱鍙e唴鐮侊紝dataType涓�11鏃惰〃绀洪噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String externalIndexCode;
/**
* 璁惧鍚嶇О
*/
- @TextIndexed
private String deviceName;
/**
* 鍗″彛鍐呯爜鎴栭噰闆嗚澶囧唴鐮�
*/
- @TextIndexed
private String indexCode;
/**
* 缁勭粐缂栧彿
*/
- @TextIndexed
private String orgCode;
/**
* 缁勭粐鍚嶇О
*/
- @TextIndexed
private String orgName;
/**
diff --git a/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java b/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java
index f928385..9a50226 100644
--- a/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java
+++ b/ycl-server/src/main/java/com/ycl/handler/CustomCellWriteHandler.java
@@ -182,56 +182,56 @@
}
- public static void main(String[] args) {
- EasyExcel.write("test.xlsx", CalculateRule.class)
- // 鑷�傚簲鍒楀
- .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
- // 涓嬫媺妗�
- .registerWriteHandler(new CustomSheetWriteHandler(Arrays.asList("鎵f寚瀹氬垎鏁�", "鍒嗘暟涔樹互鏁伴噺", "闄や互鏁伴噺鍚庝箻浠ュ垎鏁�")))
- .registerWriteHandler(new CustomCellWriteHandler())
- // 鏍囨敞
- .registerWriteHandler(new CommentWriteHandler())
- .sheet("鍚堝悓瀵煎叆妯℃澘")
- .doWrite(getExcelData());
- }
-
- private static List<CalculateRule> getExcelData() {
- ArrayList<CalculateRule> list = new ArrayList<>();
-
- setTemplateRule(list,1,"璁惧骞冲潎鍦ㄧ嚎鐜�","鈮�98%",null,98D,RuleDeductCategoryEnum.DEDUCT_POINTS,0.00);
- setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","95%鈮よ澶囧钩鍧囧湪绾跨巼锛�98%",97D,95D,RuleDeductCategoryEnum.DEDUCT_POINTS,5.00);
- setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","90%鈮よ澶囧钩鍧囧湪绾跨巼锛�95%",94D,90D,RuleDeductCategoryEnum.DEDUCT_POINTS,10.00);
- setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","锛�90%",89D,null,RuleDeductCategoryEnum.DEDUCT_POINTS,20.00);
-
- setTemplateRule(list,2,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
- setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","OSD鏍囪瘑",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
- setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","涓�鏈轰竴妗�",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
-
- setTemplateRule(list,3,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,24灏忔椂鍚庢湭淇鐨�",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
- setTemplateRule(list,null,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,48灏忔椂鍚庢湭淇鐨�",null,48D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
-
- setTemplateRule(list,4,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","姣忚矾瑙嗛绱涓㈠け10鍒嗛挓浠ュ唴",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2);
- setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け10-60 鍒嗛挓",10D,60D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
- setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け1 灏忔椂-4 灏忔椂锛堝惈锛�",60D,240D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
- setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け4 灏忔椂-12 灏忔椂锛堝惈锛�",240D,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.5);
- setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け12 灏忔椂浠ヤ笂",null,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
-
- setTemplateRule(list,5,"纭繚鍥剧墖瀹屾暣涓嶅畾鏈熷鎵�鏈変汉鑴歌溅杈嗕互鍙婃櫤鑳藉墠绔姄鎷嶇殑鍥剧墖瀹屾暣鎬ф娊鏌�","鍙戠幇鍚庡彴瀛樺偍涓嶈兘璋冨彇鍓嶇璁惧鍥剧墖",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
-
-
- return list;
- }
-
- private static void setTemplateRule(ArrayList<CalculateRule> list,Integer id,String ruleName,String condition,Double max,Double min,RuleDeductCategoryEnum deductCategoryEnum,Double calcFraction) {
- CalculateRule calculateRule = new CalculateRule();
- calculateRule.setId(id);
- calculateRule.setRuleName(ruleName);
- calculateRule.setRuleCondition(condition);
- calculateRule.setMax(max);
- calculateRule.setMin(min);
- calculateRule.setDeductCategory(deductCategoryEnum);
- calculateRule.setCalcFraction(calcFraction);
- list.add(calculateRule);
- }
+// public static void main(String[] args) {
+// EasyExcel.write("test.xlsx", CalculateRule.class)
+// // 鑷�傚簲鍒楀
+// .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+// // 涓嬫媺妗�
+// .registerWriteHandler(new CustomSheetWriteHandler(Arrays.asList("鎵f寚瀹氬垎鏁�", "鍒嗘暟涔樹互鏁伴噺", "闄や互鏁伴噺鍚庝箻浠ュ垎鏁�")))
+// .registerWriteHandler(new CustomCellWriteHandler())
+// // 鏍囨敞
+// .registerWriteHandler(new CommentWriteHandler())
+// .sheet("鍚堝悓瀵煎叆妯℃澘")
+// .doWrite(getExcelData());
+// }
+//
+// private static List<CalculateRule> getExcelData() {
+// ArrayList<CalculateRule> list = new ArrayList<>();
+//
+// setTemplateRule(list,1,"璁惧骞冲潎鍦ㄧ嚎鐜�","鈮�98%",null,98D,RuleDeductCategoryEnum.DEDUCT_POINTS,0.00);
+// setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","95%鈮よ澶囧钩鍧囧湪绾跨巼锛�98%",97D,95D,RuleDeductCategoryEnum.DEDUCT_POINTS,5.00);
+// setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","90%鈮よ澶囧钩鍧囧湪绾跨巼锛�95%",94D,90D,RuleDeductCategoryEnum.DEDUCT_POINTS,10.00);
+// setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","锛�90%",89D,null,RuleDeductCategoryEnum.DEDUCT_POINTS,20.00);
+//
+// setTemplateRule(list,2,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","鏃堕挓鍚屾锛堣秴杩嚶�3绉掍负涓嶅悎鏍硷級",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+// setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","OSD鏍囪瘑",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+// setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","涓�鏈轰竴妗�",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+//
+// setTemplateRule(list,3,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,24灏忔椂鍚庢湭淇鐨�",null,24D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+// setTemplateRule(list,null,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,48灏忔椂鍚庢湭淇鐨�",null,48D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+//
+// setTemplateRule(list,4,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","姣忚矾瑙嗛绱涓㈠け10鍒嗛挓浠ュ唴",10D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.2);
+// setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け10-60 鍒嗛挓",10D,60D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
+// setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け1 灏忔椂-4 灏忔椂锛堝惈锛�",60D,240D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
+// setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け4 灏忔椂-12 灏忔椂锛堝惈锛�",240D,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.5);
+// setTemplateRule(list,null,"纭繚褰曞儚瀹屾暣涓嶅畾鏈熷鎵�鏈夌偣浣嶅綍鍍忓畬鏁存�ф娊鏌�","涓㈠け12 灏忔椂浠ヤ笂",null,720D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+//
+// setTemplateRule(list,5,"纭繚鍥剧墖瀹屾暣涓嶅畾鏈熷鎵�鏈変汉鑴歌溅杈嗕互鍙婃櫤鑳藉墠绔姄鎷嶇殑鍥剧墖瀹屾暣鎬ф娊鏌�","鍙戠幇鍚庡彴瀛樺偍涓嶈兘璋冨彇鍓嶇璁惧鍥剧墖",null,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,2.0);
+//
+//
+// return list;
+// }
+//
+// private static void setTemplateRule(ArrayList<CalculateRule> list,Integer id,String ruleName,String condition,Double max,Double min,RuleDeductCategoryEnum deductCategoryEnum,Double calcFraction) {
+// CalculateRule calculateRule = new CalculateRule();
+// calculateRule.setId(id);
+// calculateRule.setRuleName(ruleName);
+// calculateRule.setRuleCondition(condition);
+// calculateRule.setMax(max);
+// calculateRule.setMin(min);
+// calculateRule.setDeductCategory(deductCategoryEnum);
+// calculateRule.setCalcFraction(calcFraction);
+// list.add(calculateRule);
+// }
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
index 7bd7178..0e0e896 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TContractServiceImpl.java
@@ -85,9 +85,9 @@
setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","90%鈮よ澶囧钩鍧囧湪绾跨巼锛�95%",94D,90D,RuleDeductCategoryEnum.DEDUCT_POINTS,10.00);
setTemplateRule(list,null,"璁惧骞冲潎鍦ㄧ嚎鐜�","锛�90%",89D,null,RuleDeductCategoryEnum.DEDUCT_POINTS,20.00);
- setTemplateRule(list,2,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","鏃堕挓鍚屾",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
- setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","OSD鏍囪瘑",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
- setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","涓�鏈轰竴妗�",24D,null,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+ setTemplateRule(list,2,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","鏃堕挓鍚屾",null,25D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+ setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","OSD鏍囪瘑",null,25D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
+ setTemplateRule(list,null,"鍓嶇鎰熺煡婧愭不鐞嗗伐浣�","涓�鏈轰竴妗�",null,25D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.1);
setTemplateRule(list,3,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,24灏忔椂鍚庢湭淇鐨�",48D,25D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,0.5);
setTemplateRule(list,null,"瀵逛簬鍓嶇鐐逛綅寮傚父鎯呭喌鐨勫鐞�","闀滃ご鏁呴殰鎴栨薄鏌撴垨鏍戞灊閬尅鎴栨灙鏈鸿瑙掑亸绉绘甯歌搴︽垨琛ュ厜鐏簲浜湭浜�,48灏忔椂鍚庢湭淇鐨�",null,49D,RuleDeductCategoryEnum.MULTIPLY_POINTS_BY_QUANTITY,1.0);
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
index b044f0c..5a5f199 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/TMonitorServiceImpl.java
@@ -3,6 +3,7 @@
import annotation.DataScope;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mongodb.ExplainVerbosity;
import com.mongodb.client.AggregateIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
@@ -54,6 +55,7 @@
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.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import pojo.ExcelExp;
@@ -72,6 +74,9 @@
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
+import java.util.concurrent.*;
+import java.util.function.BinaryOperator;
+import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -94,6 +99,8 @@
private SysDictDataMapper dictDataMapper;
@Autowired
private DynamicColumnMapper dynamicColumnMapper;
+ @Autowired
+ private ThreadPoolTaskExecutor threadPoolTaskExecutor;
/**
* 鏌ヨ璁惧璧勪骇
@@ -353,8 +360,9 @@
}
/**
- * 鏌ongo鏌ユ煇涓湀璁惧鎬绘暟
- * 鏌ョ湅宸ュ崟鏁伴噺鏌ョ湅寮傚父鐨勬暟
+ * 鏌ongo鏌ユ煇涓湀璁惧鎬绘暟
+ * 鏌ョ湅宸ュ崟鏁伴噺鏌ョ湅寮傚父鐨勬暟
+ *
* @param monitorQuery 鏌ヨ鏉′欢
* @return
*/
@@ -432,75 +440,102 @@
}
exportForm.setDeptIds(deptIds);
}
- List<ExcelExp> mysheet = new ArrayList<>();
- exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + ""));
+ List<ExcelExp> sheet = new ArrayList<>();
+ //閫氳繃Collections闈欐�佹柟娉曪紝鎶妉ist杞负绾跨▼瀹夊叏鐨刲ist
+ List mysheet = Collections.synchronizedList(sheet);
VideoExportForm.convertTags(exportForm);
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
- List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
- Query query = getQuery(deviceIds, exportForm.getMonth());
+ Query query = getQuery(exportForm);
//鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁
List<TMonitorResult> onlineResult = mongoTemplate.find(query, TMonitorResult.class);
+ // 浣跨敤 Collectors.toMap 鍘婚噸锛屼繚鐣欐瘡涓� No 鐨勭涓�涓亣鍒扮殑鍏冪礌
+ Map<String, TMonitorResult> uniqueResultsMap = onlineResult.stream()
+ .collect(Collectors.toMap(
+ TMonitorResult::getNo, // keyMapper锛岃繖閲屽亣璁� getNo() 杩斿洖 No 瀛楁
+ Function.identity(), // valueMapper锛岀洿鎺ヤ娇鐢ㄥ璞℃湰韬�
+ (existing, replacement) -> existing // mergeFunction锛屽鏋滄湁閲嶅锛屼繚鐣欑涓�涓�
+ ));
+ // 灏� Map 杞崲涓� List
+ List<TMonitorResult> tMonitorResults = new ArrayList<>(uniqueResultsMap.values());
+ List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
+ // 灏嗗勾鏈堝瓧绗︿覆瑙f瀽涓篩earMonth瀵硅薄
+ YearMonth yearMonth = YearMonth.parse(exportForm.getMonth());
+ // 鑾峰彇褰撴湀鐨勭涓�澶�
+ LocalDate start = yearMonth.atDay(1);
+ // 鑾峰彇涓嬩釜鏈堢殑绗竴澶╋紙閫氳繃鍔犱笂1涓湀骞惰缃棩涓�1锛�
+ YearMonth nextMonth = yearMonth.plusMonths(1);
+ LocalDate end = nextMonth.atDay(1);
+ //鑾峰彇杩欎釜鏈堜唤鐨勯儴闂ㄦ暟鎹紝褰曞儚鐢变簬鏄墠涓�澶╃殑鎵�浠ヤ笉鐢╟reateTime瀛楁
+ Query videoQuery = new Query(Criteria.where("statTime").gte(start).lt(end));
+ videoQuery.addCriteria(Criteria.where("no").in(deviceIds));
//鏈堜唤姣忔棩褰曞儚鏁版嵁
- List<RecordMetaDSumResult> recordResult = mongoTemplate.find(query, RecordMetaDSumResult.class);
+ List<RecordMetaDSumResult> recordResult = mongoTemplate.find(videoQuery, RecordMetaDSumResult.class);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String[] weeks = {"鏄熸湡涓�", "鏄熸湡浜�", "鏄熸湡涓�", "鏄熸湡鍥�", "鏄熸湡浜�", "鏄熸湡鍏�", "鏄熸湡鏃�"};
// 鍒涘缓涓�涓狹ap鏉ュ瓨鍌ㄦ瘡澶╃殑绱姞鏁版嵁
- Map<String, VideoTotalExp> totalMap = new HashMap<>();
+ Map<String, VideoTotalExp> totalMap = new ConcurrentHashMap<>();
+ List<CompletableFuture<Void>> futures = new ArrayList<>();
//涓�涓儴闂ㄤ竴涓猻heet
for (Integer deptId : exportForm.getDeptIds()) {
- //浠庢暟鎹簱闆嗗悎绛涢�夐儴闂ㄦ暟鎹�
- List<String> ids = tMonitorResults.stream().filter(tMonitorResult -> deptId.equals(tMonitorResult.getDeptId())).map(BaseResult::getNo).collect(Collectors.toList());
- if (CollectionUtils.isEmpty(ids)) continue;
- //绛涢�夐儴闂ㄦ暟鎹�
- List<TMonitorResult> onlineList = onlineResult.stream().filter(tMonitorResult -> ids.contains(tMonitorResult.getNo())).collect(Collectors.toList());
- List<RecordMetaDSumResult> recordList = recordResult.stream().filter(result -> ids.contains(result.getNo())).collect(Collectors.toList());
- List<VideoTotalExp> videoTotalExps = new ArrayList<>();
- for (int i = 0; i < 31; i++) {
- String date = exportForm.getMonth();
- date += "-" + (i < 9 ? "0" + (i + 1) : (i + 1));
- //鎬婚噺
- VideoTotalExp totalExp = totalMap.computeIfAbsent(date, k -> new VideoTotalExp());
- LocalDate parseTime = LocalDate.parse(date, formatter);
- //鑾峰彇鏄熸湡鍑�
- String week = weeks[parseTime.getDayOfWeek().getValue() - 1];
- VideoTotalExp videoExp = new VideoTotalExp();
- videoExp.setDate(date);
- videoExp.setWeek(week);
- //璁剧疆鐐逛綅鍦ㄧ嚎鎬婚噺
- List<TMonitorResult> onlines = onlineList.stream().filter(tMonitorResult -> tMonitorResult.getMongoCreateTime().minusDays(1).equals(parseTime)).collect(Collectors.toList());
- if (!CollectionUtils.isEmpty(onlines)) {
- videoExp.setTotal(onlines.size());
- long count = onlines.stream()
- .filter(item -> ApiConstants.UY_OnlineSite_Online.equals(item.getOnline()))
- .count();
- videoExp.setOnline(Integer.valueOf(count + ""));
- videoExp.setOffline(videoExp.getTotal() - videoExp.getOnline());
+ CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
+ //绛涢�夐儴闂ㄦ暟鎹�
+ Set<String> ids = onlineResult.stream().filter(tMonitorResult -> deptId.equals(tMonitorResult.getDeptId())).map(BaseResult::getNo).collect(Collectors.toSet());
+ if (CollectionUtils.isEmpty(ids)) return;
+ //绛涢�夐儴闂ㄦ暟鎹�
+ List<TMonitorResult> onlineList = onlineResult.stream().filter(tMonitorResult -> deptId.equals(tMonitorResult.getDeptId())).collect(Collectors.toList());
+ List<RecordMetaDSumResult> recordList = recordResult.stream().filter(result -> ids.contains(result.getNo())).collect(Collectors.toList());
+ List<VideoTotalExp> videoTotalExps = new ArrayList<>();
+ for (int i = 0; i < 31; i++) {
+ String date = exportForm.getMonth();
+ date += "-" + (i < 9 ? "0" + (i + 1) : (i + 1));
+ //鎬婚噺
+ VideoTotalExp totalExp = totalMap.computeIfAbsent(date, k -> new VideoTotalExp());
+ LocalDate parseTime = LocalDate.parse(date, formatter);
+ //鑾峰彇鏄熸湡鍑�
+ String week = weeks[parseTime.getDayOfWeek().getValue() - 1];
+ VideoTotalExp videoExp = new VideoTotalExp();
+ videoExp.setDate(date);
+ videoExp.setWeek(week);
+ //璁剧疆鐐逛綅鍦ㄧ嚎鎬婚噺
+ List<TMonitorResult> onlines = onlineList.stream().filter(tMonitorResult -> tMonitorResult.getMongoCreateTime().minusDays(1).equals(parseTime)).collect(Collectors.toList());
+ if (!CollectionUtils.isEmpty(onlines)) {
+ videoExp.setTotal(onlines.size());
+ long count = onlines.stream()
+ .filter(item -> ApiConstants.UY_OnlineSite_Online.equals(item.getOnline()))
+ .count();
+ videoExp.setOnline(Integer.valueOf(count + ""));
+ videoExp.setOffline(videoExp.getTotal() - videoExp.getOnline());
+ }
+ //璁剧疆瀛樺偍鎯呭喌
+ List<RecordMetaDSumResult> records = recordList.stream().filter(record -> record.getMongoCreateTime().minusDays(1).equals(parseTime)).collect(Collectors.toList());
+ if (!CollectionUtils.isEmpty(records)) {
+ videoExp.setNoStore(Integer.valueOf(records.stream()
+ .filter(record -> ApiConstants.UY_RecordStatus_Abnormal.equals(record.getRecordStatus()))
+ .count() + ""));
+ videoExp.setPartStore(Integer.valueOf(records.stream()
+ .filter(record -> ApiConstants.UY_RecordStatus_Interval.equals(record.getRecordStatus()))
+ .count() + ""));
+ }
+ videoTotalExps.add(videoExp);
+ //绱姞浣滀负鍏ㄩ噺琛�
+ totalExp.setDate(date);
+ totalExp.setWeek(week);
+ totalExp.setTotal((totalExp.getTotal() == null ? 0 : totalExp.getTotal()) + (videoExp.getTotal() == null ? 0 : videoExp.getTotal()));
+ totalExp.setOnline((totalExp.getOnline() == null ? 0 : totalExp.getOnline()) + (videoExp.getOnline() == null ? 0 : videoExp.getOnline()));
+ totalExp.setOffline((totalExp.getOffline() == null ? 0 : totalExp.getOffline()) + (videoExp.getOffline() == null ? 0 : videoExp.getOffline()));
+ totalExp.setNoStore((totalExp.getNoStore() == null ? 0 : totalExp.getNoStore()) + (videoExp.getNoStore() == null ? 0 : videoExp.getNoStore()));
+ totalExp.setPartStore((totalExp.getPartStore() == null ? 0 : totalExp.getPartStore()) + (videoExp.getPartStore() == null ? 0 : videoExp.getPartStore()));
+ totalMap.put(date, totalExp);
}
- //璁剧疆瀛樺偍鎯呭喌
- List<RecordMetaDSumResult> records = recordList.stream().filter(record -> record.getMongoCreateTime().minusDays(1).equals(parseTime)).collect(Collectors.toList());
- if (!CollectionUtils.isEmpty(records)) {
- videoExp.setNoStore(Integer.valueOf(records.stream()
- .filter(record -> ApiConstants.UY_RecordStatus_Abnormal.equals(record.getRecordStatus()))
- .count() + ""));
- videoExp.setPartStore(Integer.valueOf(records.stream()
- .filter(record -> ApiConstants.UY_RecordStatus_Interval.equals(record.getRecordStatus()))
- .count() + ""));
- }
- videoTotalExps.add(videoExp);
- //绱姞浣滀负鍏ㄩ噺琛�
- totalExp.setDate(date);
- totalExp.setWeek(week);
- totalExp.setTotal((totalExp.getTotal() == null ? 0 : totalExp.getTotal()) + (videoExp.getTotal() == null ? 0 : videoExp.getTotal()));
- totalExp.setOnline((totalExp.getOnline() == null ? 0 : totalExp.getOnline()) + (videoExp.getOnline() == null ? 0 : videoExp.getOnline()));
- totalExp.setOffline((totalExp.getOffline() == null ? 0 : totalExp.getOffline()) + (videoExp.getOffline() == null ? 0 : videoExp.getOffline()));
- totalExp.setNoStore((totalExp.getNoStore() == null ? 0 : totalExp.getNoStore()) + (videoExp.getNoStore() == null ? 0 : videoExp.getNoStore()));
- totalExp.setPartStore((totalExp.getPartStore() == null ? 0 : totalExp.getPartStore()) + (videoExp.getPartStore() == null ? 0 : videoExp.getPartStore()));
- totalMap.put(date, totalExp);
- }
- AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
- ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoTotalExps, VideoTotalExp.class);
- mysheet.add(excelExp);
+ AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
+ ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoTotalExps, VideoTotalExp.class);
+ mysheet.add(excelExp);
+ }, threadPoolTaskExecutor);
+ futures.add(future);
}
+ // 绛夊緟鎵�鏈変换鍔″畬鎴�
+ CompletableFuture<Void> allFutures = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
+ allFutures.join(); // 杩欏皢闃诲鐩村埌鎵�鏈変换鍔″畬鎴�
+
//娣诲姞鍏ㄩ噺琛�
List<VideoTotalExp> totalExps = new ArrayList<>(totalMap.values());
totalExps = totalExps.stream().sorted(Comparator.comparing(VideoTotalExp::getDate)).collect(Collectors.toList());
@@ -525,10 +560,22 @@
}
exportForm.setDeptIds(deptIds);
}
- List<ExcelExp> mysheet = new ArrayList<>();
- exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + ""));
+ List<ExcelExp> sheet = new ArrayList<>();
+ //閫氳繃Collections闈欐�佹柟娉曪紝鎶妉ist杞负绾跨▼瀹夊叏鐨刲ist
+ List mysheet = Collections.synchronizedList(sheet);
VideoExportForm.convertTags(exportForm);
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
+ Query query = getQuery(exportForm);
+ //鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁
+ List<TMonitorResult> onlineResult = mongoTemplate.find(query, TMonitorResult.class);
+ // 浣跨敤 Collectors.toMap 鍘婚噸锛屼繚鐣欐瘡涓� No 鐨勭涓�涓亣鍒扮殑鍏冪礌
+ Map<String, TMonitorResult> uniqueResultsMap = onlineResult.stream()
+ .collect(Collectors.toMap(
+ TMonitorResult::getNo, // keyMapper锛岃繖閲屽亣璁� getNo() 杩斿洖 No 瀛楁
+ Function.identity(), // valueMapper锛岀洿鎺ヤ娇鐢ㄥ璞℃湰韬�
+ (existing, replacement) -> existing // mergeFunction锛屽鏋滄湁閲嶅锛屼繚鐣欑涓�涓�
+ ));
+ // 灏� Map 杞崲涓� List
+ List<TMonitorResult> tMonitorResults = new ArrayList<>(uniqueResultsMap.values());
//鑾峰彇鍔ㄦ�佸垪鏁版嵁
List<Integer> pointIds = tMonitorResults.stream().map(TMonitorResult::getPointId).collect(Collectors.toList());
List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds);
@@ -540,47 +587,73 @@
tMonitorResult.setDynamicColumnList(map.get(pointId));
}
}
- List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
- Query query = getQuery(deviceIds, exportForm.getMonth());
- //鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁
- List<TMonitorResult> onlineResult = mongoTemplate.find(query, TMonitorResult.class);
- //鍏ㄩ噺琛�
- List<VideoDailyExp> totalExps = new ArrayList<>();
+ List<CompletableFuture<List<VideoDailyExp>>> futures = new ArrayList<>();
for (Integer deptId : exportForm.getDeptIds()) {
- List<VideoDailyExp> videoDailyExps = new ArrayList<>();
- //浠庢暟鎹簱闆嗗悎绛涢�夐儴闂ㄦ暟鎹�
- List<TMonitorResult> monitors = tMonitorResults.stream().filter(tMonitorResult -> deptId.equals(tMonitorResult.getDeptId())).collect(Collectors.toList());
- if (CollectionUtils.isEmpty(monitors)) continue;
- List<String> ids = monitors.stream().map(BaseResult::getNo).collect(Collectors.toList());
- //绛涢�塵ongo鍖哄幙鏁版嵁
- List<TMonitorResult> onlines = onlineResult.stream().filter(result -> ids.contains(result.getNo())).collect(Collectors.toList());
- AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
- for (TMonitorResult result : monitors) {
- VideoDailyExp videoDailyExp = new VideoDailyExp();
- videoDailyExp.setSerialNumber(result.getNo());
- videoDailyExp.setDeviceName(result.getName());
- videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
- StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""));
- //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
- if (!CollectionUtils.isEmpty(result.getDynamicColumnList())) {
- List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList();
- for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
- tag.append(dynamicColumnVO.getColumnValue()).append("銆�");
+ CompletableFuture<List<VideoDailyExp>> future = CompletableFuture.supplyAsync(() -> {
+ List<VideoDailyExp> videoDailyExps = new ArrayList<>();
+ //绛涢�夐儴闂ㄦ暟鎹�
+ List<TMonitorResult> monitors = tMonitorResults.stream()
+ .filter(tMonitorResult -> deptId.equals(tMonitorResult.getDeptId()))
+ .collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(monitors)) return videoDailyExps;
+
+ List<String> ids = monitors.stream()
+ .map(BaseResult::getNo)
+ .collect(Collectors.toList());
+ //绛涢�塵ongo鍖哄幙鏁版嵁
+ List<TMonitorResult> onlines = onlineResult.stream()
+ .filter(result -> ids.contains(result.getNo()))
+ .collect(Collectors.toList());
+
+ AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
+ for (TMonitorResult result : monitors) {
+ VideoDailyExp videoDailyExp = new VideoDailyExp();
+ videoDailyExp.setSerialNumber(result.getNo());
+ videoDailyExp.setDeviceName(result.getName());
+ videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
+
+ StringBuilder tag = new StringBuilder("" +
+ (result.getProvinceTag() ? "鐪佸巺銆�" : "") +
+ (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") +
+ (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") +
+ (result.getDeptTag() ? "閮ㄧ骇銆�" : ""));
+
+ //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
+ if (!CollectionUtils.isEmpty(result.getDynamicColumnList())) {
+ for (DynamicColumnVO dynamicColumnVO : result.getDynamicColumnList()) {
+ tag.append(dynamicColumnVO.getColumnValue()).append("銆�");
+ }
}
+ // 鍒犻櫎瀛楃涓叉湯灏剧殑"銆�"
+ if (tag.toString().endsWith("銆�")) {
+ tag = new StringBuilder(tag.substring(0, tag.length() - 1));
+ }
+ videoDailyExp.setTag(tag.toString());
+
+ try {
+ setOnlineDaily(videoDailyExp, result, onlines);
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ }
+ videoDailyExps.add(videoDailyExp);
}
- // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
- if (tag.toString().endsWith("銆�")) {
- tag = new StringBuilder(tag.substring(0, tag.length() - 1));
- }
- videoDailyExp.setTag(tag.toString());
- setOnlineDaily(videoDailyExp, result, onlines);
- videoDailyExps.add(videoDailyExp);
- //鍏ㄩ噺琛�
- totalExps.add(videoDailyExp);
- }
- ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoDailyExps, VideoDailyExp.class);
- mysheet.add(excelExp);
+
+ ExcelExp excelExp = new ExcelExp(
+ areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(),
+ videoDailyExps,
+ VideoDailyExp.class
+ );
+ mysheet.add(excelExp);
+
+ return videoDailyExps;
+ }, threadPoolTaskExecutor);
+ futures.add(future);
}
+ // 鑾峰彇鍏ㄩ噺鏁版嵁
+ List<VideoDailyExp> totalExps = futures.stream()
+ .map(CompletableFuture::join)
+ .flatMap(List::stream)
+ .collect(Collectors.toList());
ExcelExp excelExp = new ExcelExp("鍏ㄩ噺", totalExps, VideoDailyExp.class);
mysheet.add(excelExp);
ExcelUtilManySheet<List<ExcelExp>> util = new ExcelUtilManySheet<>(mysheet);
@@ -601,10 +674,22 @@
}
exportForm.setDeptIds(deptIds);
}
- List<ExcelExp> mysheet = new ArrayList<>();
- exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + ""));
+
VideoExportForm.convertTags(exportForm);
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
+ Query query = getQuery(exportForm);
+ //鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁
+ List<TMonitorResult> onlineResult = mongoTemplate.find(query, TMonitorResult.class);
+
+ // 浣跨敤 Collectors.toMap 鍘婚噸锛屼繚鐣欐瘡涓� No 鐨勭涓�涓亣鍒扮殑鍏冪礌
+ Map<String, TMonitorResult> uniqueResultsMap = onlineResult.stream()
+ .collect(Collectors.toMap(
+ TMonitorResult::getNo, // keyMapper锛岃繖閲屽亣璁� getNo() 杩斿洖 No 瀛楁
+ Function.identity(), // valueMapper锛岀洿鎺ヤ娇鐢ㄥ璞℃湰韬�
+ (existing, replacement) -> existing // mergeFunction锛屽鏋滄湁閲嶅锛屼繚鐣欑涓�涓�
+ ));
+ // 灏� Map 杞崲涓� List
+ List<TMonitorResult> tMonitorResults = new ArrayList<>(uniqueResultsMap.values());
+ List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
//鑾峰彇鍔ㄦ�佸垪鏁版嵁
List<Integer> pointIds = tMonitorResults.stream().map(TMonitorResult::getPointId).collect(Collectors.toList());
List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds);
@@ -616,7 +701,7 @@
tMonitorResult.setDynamicColumnList(map.get(pointId));
}
}
- List<String> deviceIds = tMonitorResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
+
// 灏嗗勾鏈堝瓧绗︿覆瑙f瀽涓篩earMonth瀵硅薄
YearMonth yearMonth = YearMonth.parse(exportForm.getMonth());
// 鑾峰彇褰撴湀鐨勭涓�澶�
@@ -625,48 +710,74 @@
YearMonth nextMonth = yearMonth.plusMonths(1);
LocalDate end = nextMonth.atDay(1);
//鑾峰彇杩欎釜鏈堜唤鐨勯儴闂ㄦ暟鎹紝褰曞儚鐢变簬鏄墠涓�澶╃殑鎵�浠ヤ笉鐢╟reateTime瀛楁
- Query query = new Query(Criteria.where("statTime").gte(start).lt(end));
- query.addCriteria(Criteria.where("no").in(deviceIds));
+ Query videoQuery = new Query(Criteria.where("statTime").gte(start).lt(end));
+ videoQuery.addCriteria(Criteria.where("no").in(deviceIds));
//鏈堜唤姣忔棩褰曞儚绾挎暟鎹�
- List<RecordMetaDSumResult> recordResult = mongoTemplate.find(query, RecordMetaDSumResult.class);
- //鍏ㄩ噺琛�
- List<VideoDailyExp> totalExps = new ArrayList<>();
+ List<RecordMetaDSumResult> recordResult = mongoTemplate.find(videoQuery, RecordMetaDSumResult.class);
+
+ // 棰勫厛鎸夐儴闂↖D鍒嗙粍
+ Map<Integer, List<TMonitorResult>> monitorsByDept = tMonitorResults.stream()
+ .collect(Collectors.groupingBy(TMonitorResult::getDeptId));
+ // 棰勫厛鏋勫缓鏄犲皠
+ Map<String, List<RecordMetaDSumResult>> recordMap = recordResult.stream()
+ .collect(Collectors.groupingBy(RecordMetaDSumResult::getNo));
+ List<CompletableFuture<List<VideoDailyExp>>> futures = new ArrayList<>();
for (Integer deptId : exportForm.getDeptIds()) {
- List<VideoDailyExp> videoDailyExps = new ArrayList<>();
- //浠庢暟鎹簱闆嗗悎绛涢�夐儴闂ㄦ暟鎹�
- List<TMonitorResult> monitors = tMonitorResults.stream().filter(tMonitorResult -> deptId.equals(tMonitorResult.getDeptId())).collect(Collectors.toList());
- if (CollectionUtils.isEmpty(monitors)) continue;
- List<String> ids = monitors.stream().map(BaseResult::getNo).collect(Collectors.toList());
- //绛涢�塵ongo鍖哄幙鏁版嵁
- List<RecordMetaDSumResult> records = recordResult.stream().filter(result -> ids.contains(result.getNo())).collect(Collectors.toList());
- AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
- for (TMonitorResult result : monitors) {
- VideoDailyExp videoDailyExp = new VideoDailyExp();
- videoDailyExp.setSerialNumber(result.getNo());
- videoDailyExp.setDeviceName(result.getName());
- videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
- StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""));
- //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
- if (!CollectionUtils.isEmpty(result.getDynamicColumnList())) {
- List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList();
- for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
- tag.append(dynamicColumnVO.getColumnValue()).append("銆�");
+ CompletableFuture<List<VideoDailyExp>> future = CompletableFuture.supplyAsync(() -> {
+ List<VideoDailyExp> videoDailyExps = new ArrayList<>();
+ // 鑾峰彇褰撳墠閮ㄩ棬鐨勬暟鎹�
+ List<TMonitorResult> monitors = monitorsByDept.getOrDefault(deptId, Collections.emptyList());
+ if (CollectionUtils.isEmpty(monitors)) return videoDailyExps;
+ AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
+ for (TMonitorResult result : monitors) {
+ VideoDailyExp videoDailyExp = new VideoDailyExp();
+ videoDailyExp.setSerialNumber(result.getNo());
+ videoDailyExp.setDeviceName(result.getName());
+ videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
+ StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""));
+ //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
+ if (!CollectionUtils.isEmpty(result.getDynamicColumnList())) {
+ List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList();
+ for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
+ tag.append(dynamicColumnVO.getColumnValue()).append("銆�");
+ }
}
+ // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
+ if (tag.toString().endsWith("銆�")) {
+ tag = new StringBuilder(tag.substring(0, tag.length() - 1));
+ }
+ videoDailyExp.setTag(tag.toString());
+ // 浣跨敤Map鐩存帴鑾峰彇璁板綍锛岄伩鍏峟ilter鎿嶄綔
+ List<RecordMetaDSumResult> recordsResult = recordMap.get(result.getNo());
+ try {
+ if(!CollectionUtils.isEmpty(recordsResult)) setRecordDaily(videoDailyExp, result, recordsResult);
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ }
+ //鍖哄幙琛�
+ videoDailyExps.add(videoDailyExp);
}
- // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
- if (tag.toString().endsWith("銆�")) {
- tag = new StringBuilder(tag.substring(0, tag.length() - 1));
- }
- videoDailyExp.setTag(tag.toString());
- setRecordDaily(videoDailyExp, result, records);
- //鍖哄幙琛�
- videoDailyExps.add(videoDailyExp);
- //鍏ㄩ噺琛�
- totalExps.add(videoDailyExp);
- }
- ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoDailyExps, VideoDailyExp.class);
- mysheet.add(excelExp);
+ return videoDailyExps;
+ }, threadPoolTaskExecutor);
+ futures.add(future);
}
+ // 绛夊緟鎵�鏈変换鍔″畬鎴�
+ CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
+ // 姣忎釜閮ㄩ棬鐨勬暟鎹崟鐙繚瀛�
+ List<List<VideoDailyExp>> results = futures.stream()
+ .map(CompletableFuture::join) // 鑾峰彇姣忎釜Future鐨勭粨鏋�
+ .collect(Collectors.toList());
+ List<VideoDailyExp> totalExps = new ArrayList<>();
+ List<ExcelExp> mysheet = new ArrayList<>();
+ for (List<VideoDailyExp> result : results) {
+ ExcelExp excelExp = new ExcelExp(
+ result.get(0).getArea() == null ? "鏈煡" : result.get(0).getArea(),
+ result,
+ VideoDailyExp.class);
+ mysheet.add(excelExp);
+ totalExps.addAll(result);
+ }
+
ExcelExp excelExp = new ExcelExp("鍏ㄩ噺", totalExps, VideoDailyExp.class);
mysheet.add(excelExp);
ExcelUtilManySheet<List<ExcelExp>> util = new ExcelUtilManySheet<>(mysheet);
@@ -686,10 +797,18 @@
}
exportForm.setDeptIds(deptIds);
}
- List<ExcelExp> mysheet = new ArrayList<>();
- exportForm.setCameraFunType(Integer.valueOf(CheckConstants.Rule_Category_Video + ""));
- VideoExportForm.convertTags(exportForm);
- List<TMonitorResult> tMonitorResults = tMonitorMapper.selectMonitorResult(exportForm);
+ Query query = getQuery(exportForm);
+ //鏈堜唤姣忔棩鍦ㄧ嚎鏁版嵁
+ List<TMonitorResult> onlineResult = mongoTemplate.find(query, TMonitorResult.class);
+ // 浣跨敤 Collectors.toMap 鍘婚噸锛屼繚鐣欐瘡涓� No 鐨勭涓�涓亣鍒扮殑鍏冪礌
+ Map<String, TMonitorResult> uniqueResultsMap = onlineResult.stream()
+ .collect(Collectors.toMap(
+ TMonitorResult::getNo, // keyMapper锛岃繖閲屽亣璁� getNo() 杩斿洖 No 瀛楁
+ Function.identity(), // valueMapper锛岀洿鎺ヤ娇鐢ㄥ璞℃湰韬�
+ (existing, replacement) -> existing // mergeFunction锛屽鏋滄湁閲嶅锛屼繚鐣欑涓�涓�
+ ));
+ // 灏� Map 杞崲涓� List
+ List<TMonitorResult> tMonitorResults = new ArrayList<>(uniqueResultsMap.values());
//鑾峰彇鍔ㄦ�佸垪鏁版嵁
List<Integer> pointIds = tMonitorResults.stream().map(TMonitorResult::getPointId).collect(Collectors.toList());
List<DynamicColumnVO> dynamics = dynamicColumnMapper.getDynamicsByIds("t_yw_point", pointIds);
@@ -710,46 +829,72 @@
YearMonth nextMonth = yearMonth.plusMonths(1);
LocalDate end = nextMonth.atDay(1);
//鑾峰彇杩欎釜鏈堜唤鐨勯儴闂ㄦ暟鎹紝褰曞儚鐢变簬鏄墠涓�澶╃殑鎵�浠ヤ笉鐢╟reateTime瀛楁
- Query query = new Query(Criteria.where("statTime").gte(start).lt(end));
- query.addCriteria(Criteria.where("no").in(deviceIds));
+ Query videoQuery = new Query(Criteria.where("statTime").gte(start).lt(end));
+ videoQuery.addCriteria(Criteria.where("no").in(deviceIds));
//鏈堜唤姣忔棩褰曞儚绾挎暟鎹�
- List<RecordMetaDSumResult> recordResult = mongoTemplate.find(query, RecordMetaDSumResult.class);
- //鍏ㄩ噺琛�
- List<VideoDailyExp> totalExps = new ArrayList<>();
+ List<RecordMetaDSumResult> recordResult = mongoTemplate.find(videoQuery, RecordMetaDSumResult.class);
+ // 棰勫厛鎸夐儴闂↖D鍒嗙粍
+ Map<Integer, List<TMonitorResult>> monitorsByDept = tMonitorResults.stream()
+ .collect(Collectors.groupingBy(TMonitorResult::getDeptId));
+ // 棰勫厛鏋勫缓鏄犲皠
+ Map<String, List<RecordMetaDSumResult>> recordMap = recordResult.stream()
+ .collect(Collectors.groupingBy(RecordMetaDSumResult::getNo));
+
+ List<CompletableFuture<List<VideoDailyExp>>> futures = new ArrayList<>();
for (Integer deptId : exportForm.getDeptIds()) {
- List<VideoDailyExp> videoDailyExps = new ArrayList<>();
- //浠庢暟鎹簱闆嗗悎绛涢�夐儴闂ㄦ暟鎹�
- List<TMonitorResult> monitors = tMonitorResults.stream().filter(tMonitorResult -> deptId.equals(tMonitorResult.getDeptId())).collect(Collectors.toList());
- if (CollectionUtils.isEmpty(monitors)) continue;
- List<String> ids = monitors.stream().map(BaseResult::getNo).collect(Collectors.toList());
- //绛涢�塵ongo鍖哄幙鏁版嵁
- List<RecordMetaDSumResult> records = recordResult.stream().filter(result -> ids.contains(result.getNo())).collect(Collectors.toList());
- AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
- for (TMonitorResult result : monitors) {
- VideoDailyExp videoDailyExp = new VideoDailyExp();
- videoDailyExp.setSerialNumber(result.getNo());
- videoDailyExp.setDeviceName(result.getName());
- videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
- StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""));
- //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
- if (!CollectionUtils.isEmpty(result.getDynamicColumnList())) {
- List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList();
- for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
- tag.append(dynamicColumnVO.getColumnValue()).append("銆�");
+ CompletableFuture<List<VideoDailyExp>> future = CompletableFuture.supplyAsync(() -> {
+ List<VideoDailyExp> videoDailyExps = new ArrayList<>();
+ // 鑾峰彇褰撳墠閮ㄩ棬鐨勬暟鎹�
+ List<TMonitorResult> monitors = monitorsByDept.getOrDefault(deptId, Collections.emptyList());
+ if (CollectionUtils.isEmpty(monitors)) return videoDailyExps;
+ AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(deptId);
+ for (TMonitorResult result : monitors) {
+ VideoDailyExp videoDailyExp = new VideoDailyExp();
+ videoDailyExp.setSerialNumber(result.getNo());
+ videoDailyExp.setDeviceName(result.getName());
+ videoDailyExp.setArea(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName());
+ StringBuilder tag = new StringBuilder("" + (result.getProvinceTag() ? "鐪佸巺銆�" : "") + (result.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (result.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (result.getDeptTag() ? "閮ㄧ骇銆�" : ""));
+ //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
+ if (!CollectionUtils.isEmpty(result.getDynamicColumnList())) {
+ List<DynamicColumnVO> dynamicColumnList = result.getDynamicColumnList();
+ for (DynamicColumnVO dynamicColumnVO : dynamicColumnList) {
+ tag.append(dynamicColumnVO.getColumnValue()).append("銆�");
+ }
}
+ // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
+ if (tag.toString().endsWith("銆�")) {
+ tag = new StringBuilder(tag.substring(0, tag.length() - 1));
+ }
+ videoDailyExp.setTag(tag.toString());
+ // 浣跨敤Map鐩存帴鑾峰彇璁板綍锛岄伩鍏峟ilter鎿嶄綔
+ List<RecordMetaDSumResult> recordsResult = recordMap.get(result.getNo());
+ try {
+ if(!CollectionUtils.isEmpty(recordsResult)) setLoseDaily(videoDailyExp, recordsResult);
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ }
+ videoDailyExps.add(videoDailyExp);
}
- // 鍒犻櫎瀛楃涓叉湯灏剧殑鈥溿�佲��
- if (tag.toString().endsWith("銆�")) {
- tag = new StringBuilder(tag.substring(0, tag.length() - 1));
- }
- videoDailyExp.setTag(tag.toString());
- setLoseDaily(videoDailyExp, result, records);
- videoDailyExps.add(videoDailyExp);
- //鍏ㄩ噺琛�
- totalExps.add(videoDailyExp);
- }
- ExcelExp excelExp = new ExcelExp(areaDeptEnum == null ? "鏈煡" : areaDeptEnum.getName(), videoDailyExps, VideoDailyExp.class);
+ return videoDailyExps;
+ }, threadPoolTaskExecutor);
+ futures.add(future);
+ }
+ // 绛夊緟鎵�鏈変换鍔″畬鎴�
+ CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
+
+ // 姣忎釜閮ㄩ棬鐨勬暟鎹崟鐙繚瀛�
+ List<List<VideoDailyExp>> results = futures.stream()
+ .map(CompletableFuture::join) // 鑾峰彇姣忎釜Future鐨勭粨鏋�
+ .collect(Collectors.toList());
+ List<VideoDailyExp> totalExps = new ArrayList<>();
+ List<ExcelExp> mysheet = new ArrayList<>();
+ for (List<VideoDailyExp> result : results) {
+ ExcelExp excelExp = new ExcelExp(
+ result.get(0).getArea() == null ? "鏈煡" : result.get(0).getArea(),
+ result,
+ VideoDailyExp.class);
mysheet.add(excelExp);
+ totalExps.addAll(result);
}
ExcelExp excelExp = new ExcelExp("鍏ㄩ噺", totalExps, VideoDailyExp.class);
mysheet.add(excelExp);
@@ -904,7 +1049,7 @@
String type = car.replaceAll("3", "浜鸿劯");
monitor.setCameraFunType(type);
}
- StringBuilder tag = new StringBuilder("" + (monitor.getProvinceTagVideo() ? "鐪佸巺瑙嗛銆�" : "") + (monitor.getProvinceTagCar() ? "鐪佸巺杞﹁締銆�" : "")+ (monitor.getProvinceTagFace() ? "鐪佸巺浜鸿劯銆�" : "")+ (monitor.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (monitor.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (monitor.getDeptTag() ? "閮ㄧ骇銆�" : ""));
+ StringBuilder tag = new StringBuilder("" + (monitor.getProvinceTagVideo() ? "鐪佸巺瑙嗛銆�" : "") + (monitor.getProvinceTagCar() ? "鐪佸巺杞﹁締銆�" : "") + (monitor.getProvinceTagFace() ? "鐪佸巺浜鸿劯銆�" : "") + (monitor.getImportantTag() ? "閲嶇偣鐐逛綅銆�" : "") + (monitor.getImportantCommandImageTag() ? "閲嶇偣鎸囨尌鍥惧儚銆�" : "") + (monitor.getDeptTag() ? "閮ㄧ骇銆�" : ""));
//鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
if (!CollectionUtils.isEmpty(monitor.getDynamicColumnList())) {
List<DynamicColumnVO> dynamicColumnList = monitor.getDynamicColumnList();
@@ -920,14 +1065,14 @@
});
ExcelUtil<TMonitorExp> util = new ExcelUtil<>(TMonitorExp.class);
String sheetName = "";
- if("1".equals(tMonitor.getCameraFunType())){
+ if ("1".equals(tMonitor.getCameraFunType())) {
sheetName = "瑙嗛";
- }else if("2".equals(tMonitor.getCameraFunType())){
+ } else if ("2".equals(tMonitor.getCameraFunType())) {
sheetName = "杞﹁締";
- }else if("3".equals(tMonitor.getCameraFunType())){
+ } else if ("3".equals(tMonitor.getCameraFunType())) {
sheetName = "浜鸿劯";
}
- util.exportExcel(response, monitors,sheetName);
+ util.exportExcel(response, monitors, sheetName);
}
@@ -1014,7 +1159,7 @@
//鎸夋椂闂存帓搴�
results = results.stream().sorted(Comparator.comparing(BaseHomeVO::getCreateDate)).collect(Collectors.toList());
//濡傛灉鏄粯璁ゆ垨绱拰鍒欒繘琛岀疮鍜屼互鍙婅幏鍙栧熀鍑嗙嚎
- if(monitorQuery.getCategory() == null || monitorQuery.getCategory().equals(1)) {
+ if (monitorQuery.getCategory() == null || monitorQuery.getCategory().equals(1)) {
int snapCount = 0;
for (HomeCarVO vo : results) {
if (vo.getSnapCount() != null) {
@@ -1128,7 +1273,7 @@
//鎸夋椂闂存帓搴�
results = results.stream().sorted(Comparator.comparing(BaseHomeVO::getCreateDate)).collect(Collectors.toList());
//濡傛灉鏄粯璁ゆ垨绱拰鍒欒繘琛岀疮鍜屼互鍙婅幏鍙栧熀鍑嗙嚎
- if(monitorQuery.getCategory() == null || monitorQuery.getCategory().equals(1)) {
+ if (monitorQuery.getCategory() == null || monitorQuery.getCategory().equals(1)) {
int snapCount = 0;
for (HomeFaceVO vo : results) {
if (vo.getSnapCount() != null) {
@@ -1170,7 +1315,8 @@
return vo;
}
- private Query getQuery(List<String> deviceIds, String month) {
+ private Query getQuery(VideoExportForm exportForm) {
+ String month = exportForm.getMonth();
// 灏嗗勾鏈堝瓧绗︿覆瑙f瀽涓篩earMonth瀵硅薄
YearMonth yearMonth = YearMonth.parse(month);
// 鑾峰彇褰撴湀鐨勭涓�澶�
@@ -1180,7 +1326,15 @@
LocalDate end = nextMonth.atDay(1);
//鑾峰彇杩欎釜鏈堜唤鐨勯儴闂ㄦ暟鎹�
Query query = new Query(Criteria.where("mongoCreateTime").gte(start).lt(end));
- query.addCriteria(Criteria.where("no").in(deviceIds));
+ if (!CollectionUtils.isEmpty(exportForm.getDeptIds()))
+ query.addCriteria(Criteria.where("deptId").in(exportForm.getDeptIds()));
+ if (exportForm.getDeptTag() != null) query.addCriteria(Criteria.where("deptTag").is(exportForm.getDeptTag()));
+ if (exportForm.getProvinceTag() != null)
+ query.addCriteria(Criteria.where("provinceTag").is(exportForm.getProvinceTag()));
+ if (exportForm.getImportantTag() != null)
+ query.addCriteria(Criteria.where("importantTag").is(exportForm.getImportantTag()));
+ if (exportForm.getImportantCommandImageTag() != null)
+ query.addCriteria(Criteria.where("importantCommandImageTag").is(exportForm.getImportantCommandImageTag()));
return query;
}
@@ -1206,9 +1360,7 @@
}
//璁剧疆姣忔棩褰曞儚鏁版嵁
- private void setRecordDaily(VideoDailyExp videoDailyExp, TMonitorResult result, List<RecordMetaDSumResult> records) throws NoSuchFieldException, IllegalAccessException {
- //涓�涓澶囧綋鏈堝湪绾挎儏鍐�
- List<RecordMetaDSumResult> recordResults = records.stream().filter(online -> online.getNo().equals(result.getNo())).collect(Collectors.toList());
+ private void setRecordDaily(VideoDailyExp videoDailyExp, TMonitorResult result, List<RecordMetaDSumResult> recordResults) throws NoSuchFieldException, IllegalAccessException {
for (RecordMetaDSumResult recordResult : recordResults) {
int dayOfMonth = DateUtils.getDayOfMonth(recordResult.getStatTime());
Integer status = recordResult.getRecordStatus();
@@ -1228,9 +1380,8 @@
}
//璁剧疆姣忔棩褰曞儚缂哄け鏃堕暱鏁版嵁
- private void setLoseDaily(VideoDailyExp videoDailyExp, TMonitorResult result, List<RecordMetaDSumResult> records) throws NoSuchFieldException, IllegalAccessException {
+ private void setLoseDaily(VideoDailyExp videoDailyExp, List<RecordMetaDSumResult> recordResults) throws NoSuchFieldException, IllegalAccessException {
//涓�涓澶囧綋鏈堝湪绾挎儏鍐�
- List<RecordMetaDSumResult> recordResults = records.stream().filter(online -> online.getNo().equals(result.getNo())).collect(Collectors.toList());
for (RecordMetaDSumResult recordResult : recordResults) {
int dayOfMonth = DateUtils.getDayOfMonth(recordResult.getStatTime());
//鍙嶅皠璧嬪�硷紝瀛楁缁熶竴瀹氫箟涓篸ay+1锛�2锛�3...
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractTask.java b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
index 2112870..7767e99 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -179,7 +179,7 @@
.collect(Collectors.groupingBy(
CalculateRuleVO::getRuleName, // 鎸夎鍒欏悕绉板垎缁�
Collectors.groupingBy(
- CalculateRuleVO::getContractId // 姣忎釜瑙勫垯鍚嶇О鍐呴儴鍐嶆寜鍚堝悓ID鍒嗙粍,value涓鸿鍒欓泦鍚�
+ CalculateRuleVO::getContractId // 姣忎釜瑙勫垯鍚嶇О鍐呴儴鍐嶆寜鍚堝悓ID鍒嗙粍,value涓鸿鍒欓泦鍚�(澶氫釜鍚堝悓鎯呭喌)
)
));
//鍓嶇鎰熺煡婧愭不鐞嗗伐浣滐紙鏃堕挓鍚屾瑙勫垯銆丱SD瑙勫垯銆佷竴鏈轰竴妗h鍒欙級 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
@@ -195,13 +195,14 @@
LocalDateTime endTime = LocalDateTime.now();
// 璁$畻30澶╁墠鐨勬棩鏈�
LocalDateTime startTime = endTime.minusDays(30);
+ //闇�瑕佹煡瀹℃牳閫氳繃閭f潯璁板綍鐨勬椂闂�
List<WorkOrderVO> workOrders = workOrderMapper.selectPassOrder(startTime, endTime, WorkOrderStatusEnum.AUDITING_SUCCESS.getValue(), "瀹℃牳閫氳繃");
for (WorkOrderVO workOrder : workOrders) {
//妫�娴嬫槸鍚︽姤澶囪繃
if (!CollectionUtils.isEmpty(reportNumbers)) {
if (reportNumbers.contains(workOrder.getSerialNumber())) continue;
}
- if(!WorkOrderStatusEnum.AUDITING_SUCCESS.equals(workOrder.getStatus())) continue;
+// if(!WorkOrderStatusEnum.AUDITING_SUCCESS.equals(workOrder.getStatus())) continue;
String errorType = workOrder.getErrorType();
//瀛樺偍鏁呴殰 褰曞儚鎴栧浘鐗囪闂紓甯� 锛堟敼鎴愭墜鍔ㄦ墦鍒嗕簡锛�
// if (ErrorType.VIDEO_NONE.getValue().equals(errorType) || ErrorType.PIC_URLABNORMAL.getValue().equals(errorType)) {
@@ -238,8 +239,16 @@
Date createTime = workOrder.getDistributeTime();
Date auditTime = workOrder.getAuditTime();
double diffTime = (double) (auditTime.getTime() - createTime.getTime()) / (1000 * 60 * 60);
- //閫夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
+ //鎵惧埌瀵瑰簲瑙勫垯銆侀�夋嫨鏃堕棿鑼冨洿鍐呯殑瑙勫垯
for (CalculateRuleVO rule : rules) {
+ if(ErrorType.OSD_ERROR.getValue().equals(errorType)){
+ if(!rule.getRuleCondition().equals("OSD鏍囪瘑")) continue;
+ }else if(ErrorType.CLOCK_SKEW.getValue().equals(errorType)){
+ if(!rule.getRuleCondition().equals("鏃堕挓鍚屾")) continue;
+ }else if( ErrorType.POINT_INFO_ERROR.getValue().equals(errorType)){
+ if(!rule.getRuleCondition().equals("涓�鏈轰竴妗�")) continue;
+ }
+
if (checkRange(rule.getMin(), rule.getMax(), new BigDecimal(diffTime))) {
double deductScore = rule.getCalcFraction();
ContractScore contractScore = getContractScore(rule, deductScore, Math.round(diffTime * 100) / 100 + "", Remark + "宸ュ崟缂栧彿涓�:" + workOrder.getWorkOrderNo() + "澶勭悊瓒呮椂锛屾墸闄�" + deductScore + "鍒�");
@@ -319,7 +328,7 @@
List<ContractScore> contractScoreList = new ArrayList<>();
//鏌ヨ鎶ュ鍒楄〃
List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
- Date date = DateUtils.getDay(2024, 7, 13);
+ Date date = new Date();
//鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
.filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_PicComplete.getName().equals(calculateRuleVO.getRuleName()))
@@ -399,8 +408,7 @@
List<ContractScore> contractScoreList = new ArrayList<>();
//鏌ヨ鎶ュ鍒楄〃
List<String> reportNumbers = reportMapper.selectNumberList(AuditStatus_Pass, DateUtils.getDate());
- //TODO:娴嬭瘯鏃ユ湡
- Date date = DateUtils.getDay(2024, 7, 13);
+ Date date = new Date();
//鏌ュ浘鐗囧畬鏁存�ц鍒� 鑾峰彇key涓哄悎鍚宨d锛寁alue涓鸿鍒欑殑map
Map<Integer, List<CalculateRuleVO>> contractMap = contractMapper.getCalculateRule(new Date()).stream()
.filter(calculateRuleVO -> ContractRule.CONTRACT_RULE_VideoRecord.getName().equals(calculateRuleVO.getRuleName()))
diff --git a/ycl-server/src/main/resources/application-dev.yml b/ycl-server/src/main/resources/application-dev.yml
index c6fcd80..0a4d4be 100644
--- a/ycl-server/src/main/resources/application-dev.yml
+++ b/ycl-server/src/main/resources/application-dev.yml
@@ -131,6 +131,7 @@
mongodb:
# uri: mongodb://root1:yunwei%402024@192.168.3.88:27017/zgyw?authSource=admin
uri: mongodb://localhost:27017/zgyw
+ auto-index-creation: true
# 鎷夊彇鏁版嵁璇锋眰閰嶇疆
request:
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index db29bbe..36a5c80 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -353,7 +353,7 @@
</insert>
<select id="selectPassOrder" resultType="com.ycl.platform.domain.vo.WorkOrderVO">
- SELECT wo.id,wo.work_order_no,wo.unit_id,woet.error_name as errorType,woet.distribute_time,woar.create_time as auditTime
+ SELECT wo.id,wo.work_order_no,wo.unit_id,woet.error_name as errorType,woet.create_time as distributeTime,woar.create_time as auditTime
FROM t_work_order wo
LEFT JOIN t_work_order_error_type woet ON woet.work_order_no = wo.work_order_no
LEFT JOIN t_work_order_auditing_record woar ON woar.work_order_no = wo.work_order_no
--
Gitblit v1.8.0