From 425e3bdee94d374ca423e59fdfc69bfbc9e26a67 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 16 八月 2024 16:54:13 +0800
Subject: [PATCH] 指标计算bug处理
---
ycl-server/src/main/resources/mapper/zgyw/CheckIndexCarMapper.xml | 2
ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java | 27 ++++++
ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml | 2
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java | 14 +++
ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 60 +++++++++-----
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java | 56 ++++++++-----
ycl-server/src/main/java/com/ycl/utils/DateUtils.java | 13 +++
ycl-server/src/main/java/com/ycl/task/VideoTask.java | 7 +
ycl-pojo/src/main/java/com/ycl/platform/base/CheckIndex.java | 11 ++
ycl-server/src/main/java/com/ycl/task/MonitorTask.java | 11 --
ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml | 2
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java | 12 --
13 files changed, 144 insertions(+), 75 deletions(-)
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/base/CheckIndex.java b/ycl-pojo/src/main/java/com/ycl/platform/base/CheckIndex.java
index 55c23d9..694cf78 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/base/CheckIndex.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/base/CheckIndex.java
@@ -1,29 +1,36 @@
package com.ycl.platform.base;
import annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
public abstract class CheckIndex {
+ @TableField("id")
public Long id;
//鏌ヨ鏉′欢锛屾湀浠�
+ @TableField(exist = false)
public String date;
//鏌ヨ鏉′欢锛屾棩鏈�
+ @TableField(exist = false)
public String day;
@Excel(name = "鏃ユ湡",dateFormat = "yyyy-MM-dd")
+ @TableField("create_time")
public Date createTime;
-
+ @TableField("dept_id")
public Long deptId;
@Excel(name = "鍖哄幙")
+ @TableField(exist = false)
public String deptName;
/** 鑰冩牳鏍囩锛堢渷鍘�/甯傚眬锛� */
@Excel(name = "鑰冩牳鏍囩", dictType = "platform_examine_tag")
+ @TableField("examine_tag")
public Short examineTag;
-
+ @TableField(exist = false)
public List<Integer> deptIds;
public Long getId() {
return id;
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java
index 4f81312..5155291 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexCar.java
@@ -2,6 +2,8 @@
import annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.platform.base.CheckIndex;
import java.math.BigDecimal;
@@ -10,57 +12,67 @@
/**
* 杞﹁締鎸囨爣姒傜巼鏁版嵁瀵硅薄 t_check_index_car
- *
+ *
* @author ruoyi
* @date 2024-04-29
*/
-
+@TableName("check_index_car")
public class CheckIndexCar extends CheckIndex
{
private static final long serialVersionUID = 1L;
-
/** 瑙嗗浘搴撳鎺ョǔ瀹氭�� */
@Excel(name = "瑙嗗浘搴撳鎺ョǔ瀹氭��")
+ @TableField("view_connect_stability")
private BigDecimal viewConnectStability;
/** 鐐逛綅鍦ㄧ嚎鐜� */
@Excel(name = "鐐逛綅鍦ㄧ嚎鐜�")
+ @TableField("site_online")
private BigDecimal siteOnline;
/** 鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼 */
@Excel(name = "鑱旂綉鍗″彛璁惧鐩綍涓�鑷寸巼",width = 25)
+ @TableField("device_directory_consistent")
private BigDecimal deviceDirectoryConsistent;
/** 杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� */
@Excel(name = "杞﹁締鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�",width = 25)
+ @TableField("vehicle_information_collection_accuracy")
private BigDecimal vehicleInformationCollectionAccuracy;
/** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬� */
@Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁瀹屾暣鎬�",width = 25)
+ @TableField("vehicle_capture_integrity")
private BigDecimal vehicleCaptureIntegrity;
/** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬� */
@Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁鍑嗙‘鎬�",width = 25)
+ @TableField("vehicle_capture_accuracy")
private BigDecimal vehicleCaptureAccuracy;
/** 杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬� */
@Excel(name = "杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�",width = 25)
+ @TableField("vehicle_timing_accuracy")
private BigDecimal vehicleTimingAccuracy;
/** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬� */
@Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁涓婁紶鍙婃椂鎬�",width = 25)
+ @TableField("vehicle_upload_timeliness")
private BigDecimal vehicleUploadTimeliness;
/** 杞﹁締鍗″彛璁惧url鍙敤鎬� */
@Excel(name = "杞﹁締鍗″彛璁惧url鍙敤鎬�",width = 25)
+ @TableField("vehicle_url_availability")
private BigDecimal vehicleUrlAvailability;
/** 杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬� */
@Excel(name = "杞﹁締鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬�",width = 25)
+ @TableField("vehicle_picture_availability")
private BigDecimal vehiclePictureAvailability;
@ExcelIgnore
+ @TableField(exist = false)
private List<String> quarter;
public List<String> getQuarter() {
@@ -130,88 +142,88 @@
public void setExamineTag(Short examineTag) {
super.setExamineTag(examineTag);
}
- public void setViewConnectStability(BigDecimal viewConnectStability)
+ public void setViewConnectStability(BigDecimal viewConnectStability)
{
this.viewConnectStability = viewConnectStability;
}
- public BigDecimal getViewConnectStability()
+ public BigDecimal getViewConnectStability()
{
return viewConnectStability;
}
- public void setSiteOnline(BigDecimal siteOnline)
+ public void setSiteOnline(BigDecimal siteOnline)
{
this.siteOnline = siteOnline;
}
- public BigDecimal getSiteOnline()
+ public BigDecimal getSiteOnline()
{
return siteOnline;
}
- public void setDeviceDirectoryConsistent(BigDecimal deviceDirectoryConsistent)
+ public void setDeviceDirectoryConsistent(BigDecimal deviceDirectoryConsistent)
{
this.deviceDirectoryConsistent = deviceDirectoryConsistent;
}
- public BigDecimal getDeviceDirectoryConsistent()
+ public BigDecimal getDeviceDirectoryConsistent()
{
return deviceDirectoryConsistent;
}
- public void setVehicleInformationCollectionAccuracy(BigDecimal vehicleInformationCollectionAccuracy)
+ public void setVehicleInformationCollectionAccuracy(BigDecimal vehicleInformationCollectionAccuracy)
{
this.vehicleInformationCollectionAccuracy = vehicleInformationCollectionAccuracy;
}
- public BigDecimal getVehicleInformationCollectionAccuracy()
+ public BigDecimal getVehicleInformationCollectionAccuracy()
{
return vehicleInformationCollectionAccuracy;
}
- public void setVehicleCaptureIntegrity(BigDecimal vehicleCaptureIntegrity)
+ public void setVehicleCaptureIntegrity(BigDecimal vehicleCaptureIntegrity)
{
this.vehicleCaptureIntegrity = vehicleCaptureIntegrity;
}
- public BigDecimal getVehicleCaptureIntegrity()
+ public BigDecimal getVehicleCaptureIntegrity()
{
return vehicleCaptureIntegrity;
}
- public void setVehicleCaptureAccuracy(BigDecimal vehicleCaptureAccuracy)
+ public void setVehicleCaptureAccuracy(BigDecimal vehicleCaptureAccuracy)
{
this.vehicleCaptureAccuracy = vehicleCaptureAccuracy;
}
- public BigDecimal getVehicleCaptureAccuracy()
+ public BigDecimal getVehicleCaptureAccuracy()
{
return vehicleCaptureAccuracy;
}
- public void setVehicleTimingAccuracy(BigDecimal vehicleTimingAccuracy)
+ public void setVehicleTimingAccuracy(BigDecimal vehicleTimingAccuracy)
{
this.vehicleTimingAccuracy = vehicleTimingAccuracy;
}
- public BigDecimal getVehicleTimingAccuracy()
+ public BigDecimal getVehicleTimingAccuracy()
{
return vehicleTimingAccuracy;
}
- public void setVehicleUploadTimeliness(BigDecimal vehicleUploadTimeliness)
+ public void setVehicleUploadTimeliness(BigDecimal vehicleUploadTimeliness)
{
this.vehicleUploadTimeliness = vehicleUploadTimeliness;
}
- public BigDecimal getVehicleUploadTimeliness()
+ public BigDecimal getVehicleUploadTimeliness()
{
return vehicleUploadTimeliness;
}
- public void setVehicleUrlAvailability(BigDecimal vehicleUrlAvailability)
+ public void setVehicleUrlAvailability(BigDecimal vehicleUrlAvailability)
{
this.vehicleUrlAvailability = vehicleUrlAvailability;
}
- public BigDecimal getVehicleUrlAvailability()
+ public BigDecimal getVehicleUrlAvailability()
{
return vehicleUrlAvailability;
}
- public void setVehiclePictureAvailability(BigDecimal vehiclePictureAvailability)
+ public void setVehiclePictureAvailability(BigDecimal vehiclePictureAvailability)
{
this.vehiclePictureAvailability = vehiclePictureAvailability;
}
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java
index 761475d..a573c31 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexFace.java
@@ -2,6 +2,8 @@
import annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.platform.base.CheckIndex;
import java.math.BigDecimal;
@@ -10,47 +12,57 @@
/**
* 浜鸿劯鎸囨爣姒傜巼鏁版嵁瀵硅薄 t_check_index_face
- *
+ *
* @author ruoyi
* @date 2024-04-29
*/
+@TableName("t_check_index_face")
public class CheckIndexFace extends CheckIndex
{
private static final long serialVersionUID = 1L;
/** 瑙嗗浘搴撳鎺ョǔ瀹氭�� */
@Excel(name = "瑙嗗浘搴撳鎺ョǔ瀹氭��")
+ @TableField("view_connect_stability")
private BigDecimal viewConnectStability;
/** 鐐逛綅鍦ㄧ嚎鐜� */
@Excel(name = "鐐逛綅鍦ㄧ嚎鐜�")
+ @TableField("site_online")
private BigDecimal siteOnline;
/** 璁惧鐩綍涓�鑷寸巼 */
@Excel(name = " 璁惧鐩綍涓�鑷寸巼")
+ @TableField("device_directory_consistent")
private BigDecimal deviceDirectoryConsistent;
/** 浜鸿劯鍗″彛淇℃伅閲囬泦鍑嗙‘鐜� */
@Excel(name = "浜鸿劯鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�",width = 25)
+ @TableField("face_information_collection_accuracy")
private BigDecimal faceInformationCollectionAccuracy;
/** 璁惧鎶撴媿鍥剧墖鍚堟牸鎬� */
@Excel(name = "璁惧鎶撴媿鍥剧墖鍚堟牸鎬�")
+ @TableField("face_picture_qualification")
private BigDecimal facePictureQualification;
/** 璁惧鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬� */
@Excel(name = "璁惧鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬�",width = 25)
+ @TableField("face_timing_accuracy")
private BigDecimal faceTimingAccuracy;
/** 鎶撴媿浜鸿劯鏁版嵁涓婁紶鍙婃椂鎬� */
@Excel(name = "鎶撴媿浜鸿劯鏁版嵁涓婁紶鍙婃椂鎬�",width = 25)
+ @TableField("face_upload_timeliness")
private BigDecimal faceUploadTimeliness;
/** 浜鸿劯鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬� */
@Excel(name = "浜鸿劯鍗″彛璁惧鎶撴媿鏁版嵁澶у浘鍙敤鎬�",width = 25)
+ @TableField("face_picture_availability")
private BigDecimal facePictureAvailability;
@ExcelIgnore
+ @TableField(exist = false)
private List<String> quarter;
public List<String> getQuarter() {
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
index 5f1d164..5a90295 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
@@ -2,6 +2,8 @@
import annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.platform.base.CheckIndex;
import java.math.BigDecimal;
@@ -10,98 +12,121 @@
/**
* 瑙嗛鎸囨爣姒傜巼鏁版嵁瀵硅薄 t_check_index_video
- *
+ *
* @author ruoyi
* @date 2024-04-29
*/
+@TableName("t_check_index_video")
public class CheckIndexVideo extends CheckIndex
{
private static final long serialVersionUID = 1L;
/** 骞冲彴鍦ㄧ嚎鐜� */
@Excel(name = "骞冲彴鍦ㄧ嚎鐜�")
+ @TableField("platform_online")
private BigDecimal platformOnline;
/** 涓�鏈轰竴妗e悎鏍肩巼 */
@Excel(name = "涓�鏈轰竴妗e悎鏍肩巼")
+ @TableField("monitor_qualification")
private BigDecimal monitorQualification;
/** 妗f鑰冩牳姣� */
@Excel(name = "涓�鏈轰竴妗f敞鍐岀巼")
+ @TableField("monitor_registration")
private BigDecimal monitorRegistration;
/** 妗f鑰冩牳姣� */
@Excel(name = "妗f鑰冩牳姣�")
+ @TableField("archives_rate")
private BigDecimal archivesRate;
/** 鐐逛綅鍦ㄧ嚎鐜� */
@Excel(name = "鐐逛綅鍦ㄧ嚎鐜�")
+ @TableField("site_online")
private BigDecimal siteOnline;
/** 褰曡薄鍙敤鐜� */
@Excel(name = "褰曡薄鍙敤鐜�")
+ @TableField("video_available")
private BigDecimal videoAvailable;
/** 鏍囨敞姝g‘鐜� */
@Excel(name = "鏍囨敞姝g‘鐜�")
+ @TableField("annotation_accuracy")
private BigDecimal annotationAccuracy;
/** 鏍℃椂鍑嗙‘鐜� */
@Excel(name = "鏍℃椂鍑嗙‘鐜�")
+ @TableField("timing_accuracy")
private BigDecimal timingAccuracy;
/** 閲嶇偣鐐逛綅鍦ㄧ嚎鐜� */
@Excel(name = "閲嶇偣鐐逛綅鍦ㄧ嚎鐜�")
+ @TableField("key_site_online")
private BigDecimal keySiteOnline;
/** 閲嶇偣鐐逛綅褰曡薄鍙敤鐜� */
@Excel(name = "閲嶇偣鐐逛綅褰曡薄鍙敤鐜�",width = 25)
+ @TableField("key_video_available")
private BigDecimal keyVideoAvailable;
/** 閲嶇偣鐐逛綅鏍囨敞姝g‘鐜� */
@Excel(name = "閲嶇偣鐐逛綅鏍囨敞姝g‘鐜�",width = 25)
+ @TableField("key_annotation_accuracy")
private BigDecimal keyAnnotationAccuracy;
/** 閲嶇偣鐐逛綅鎸夋椂姝g‘鐜� */
@Excel(name = "閲嶇偣鐐逛綅鎸夋椂姝g‘鐜�",width = 25)
+ @TableField("key_timing_accuracy")
private BigDecimal keyTimingAccuracy;
/** 閲嶇偣鎸囨尌鍥惧儚鍏畨閮ㄥ贰妫�缁撴灉 */
@Excel(name = "閲嶇偣鎸囨尌鍥惧儚鍏畨閮ㄥ贰妫�缁撴灉",width = 25)
+ @TableField("key_command_image_inspection")
private BigDecimal keyCommandImageInspection;
/** 閲嶇偣鎸囨尌鍥惧儚鐩綍鏍� */
@Excel(name = "閲嶇偣鎸囨尌鍥惧儚鐩綍鏍�",width = 25)
+ @TableField("key_command_image_directory_tree")
private BigDecimal keyCommandImageDirectoryTree;
/** 鍦ㄧ嚎妫�鏌ュ钩鍙伴儴缃插強杩愯鐜� */
@Excel(name = "鍦ㄧ嚎妫�鏌ュ钩鍙伴儴缃插強杩愯鐜�",width = 25)
+ @TableField("online_inspection_platform")
private BigDecimal onlineInspectionPlatform;
/** 瑙嗛浼犺緭缃戣祫浜у噯纭巼 */
@Excel(name = "瑙嗛浼犺緭缃戣祫浜у噯纭巼",width = 25)
+ @TableField("video_transmission_assets_accuracy")
private BigDecimal videoTransmissionAssetsAccuracy;
/** 瑙嗛浼犺緭缃戣祫浜у急鍙d护寰楀垎姣旂巼 */
@Excel(name = "瑙嗛浼犺緭缃戣祫浜у急鍙d护寰楀垎姣旂巼",width = 25)
+ @TableField("video_transmission_assets_weak_password_score")
private BigDecimal videoTransmissionAssetsWeakPasswordScore;
/** 瑙嗛浼犺緭缃戝嵄闄╄祫浜у緱鍒嗘瘮閲� */
@Excel(name = "瑙嗛浼犺緭缃戝嵄闄╄祫浜у緱鍒嗘瘮閲�",width = 25)
+ @TableField("video_transmission_dangerous_assetsScore")
private BigDecimal videoTransmissionDangerousAssetsScore;
/** 瑙嗛浼犺緭缃戣竟鐣屽畬鏁存�ф娴嬫墸鍒嗛」 */
@Excel(name = "瑙嗛浼犺緭缃戣竟鐣屽畬鏁存�ф娴嬫墸鍒嗛」",width = 25)
+ @TableField("video_transmission_boundary_integrity_detection")
private BigDecimal videoTransmissionBoundaryIntegrityDetection;
/** 瑙嗛浼犺緭缃戣竟鐣屽畬鏁存�ф娴嬫墸鍒嗛」 */
@Excel(name = "閲嶇偣鎸囨尌鍥惧儚鍦ㄧ嚎鐜�",width = 25)
+ @TableField("key_command_image_online")
private BigDecimal keyCommandImageOnline;
/** 鏈堣繍琛岀巼 */
@Excel(name = "鏈堣繍琛岀巼")
+ @TableField("operating_rate")
private BigDecimal operatingRate;
@ExcelIgnore
+ @TableField(exist = false)
private List<String> quarter;
public List<String> getQuarter() {
diff --git a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
index 28f72a2..e1f2f1f 100644
--- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
+++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -194,17 +194,9 @@
return CollectionUtils.isEmpty(commandImages) ? new ArrayList<>() : commandImages.stream().map(YwPoint::getSerialNumber).collect(Collectors.toList());
}
//杩斿洖monitor
+ //TODO:鏃堕棿鍐欐浜�
public List<String> getMonitorFromMongo() {
- // 鑾峰彇Calendar瀹炰緥锛岄粯璁や娇鐢ㄥ綋鍓嶆椂鍖哄拰璇█鐜
- Calendar calendar = Calendar.getInstance();
- // 娓呴櫎Calendar涓殑鎵�鏈夊瓧娈靛�硷紝浠ラ伩鍏嶅畠浠褰撳墠鏃ユ湡鏃堕棿鏈夊奖鍝�
- calendar.clear();
- // 璁剧疆骞翠唤銆佹湀浠斤紙娉ㄦ剰锛氭湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠�8鏈堟槸7锛夈�佹棩鏈�
- calendar.set(Calendar.YEAR, 2024);
- calendar.set(Calendar.MONTH, Calendar.AUGUST);
- calendar.set(Calendar.DAY_OF_MONTH, 13);
- // Calendar.getTime()鏂规硶杩斿洖涓�涓〃绀烘Calendar鏃堕棿鍊肩殑Date瀵硅薄
- Date date = calendar.getTime();
+ Date date = DateUtils.getDay(2024,7,13);
Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
// Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
diff --git a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
index 7813b7d..07375b4 100644
--- a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
+++ b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java
@@ -3,57 +3,71 @@
import com.ycl.calculate.*;
import com.ycl.platform.domain.result.UY.VideoQualityResult;
import constant.CalculationStrategyConstants;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.beans.factory.BeanFactoryAware;
+import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
-
-public class IndexCalculationFactory {
- private static final Map<String, CalculationStrategy> calculators = new HashMap<>();
+@Component
+public class IndexCalculationFactory implements BeanFactoryAware {
+ private static BeanFactory beanFactory;
+ private static final Map<String, Class<? extends CalculationStrategy>> calculatorClasses = new HashMap<>();
static {
//杞﹁締鐐逛綅鍦ㄧ嚎銆佽鍥惧簱瀵规帴绋冲畾鎬�
- calculators.put(CalculationStrategyConstants.Car_SiteOnline_ViewStability, new CarSnapshopDataCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_SiteOnline_ViewStability, CarSnapshopDataCalculation.class);
//杞﹁締淇℃伅鍑嗙‘鐜�
- calculators.put(CalculationStrategyConstants.Car_InfoAccuracy, new CarInFoAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_InfoAccuracy, CarInFoAccuracyCalculation.class);
//杞﹁締鎶撴媿鏁版嵁涓婁紶寤惰繜
- calculators.put(CalculationStrategyConstants.Car_SnapshotDelay, new CarSnapshotDelayCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_SnapshotDelay, CarSnapshotDelayCalculation.class);
//杞﹁締鏁版嵁鎶撴媿瀹屾暣鎬�
- calculators.put(CalculationStrategyConstants.Car_DataIntegrity, new CarDataIntegrityCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_DataIntegrity, CarDataIntegrityCalculation.class);
//杞﹁締鏁版嵁鎶撴媿鍑嗙‘鎬с�乽rl銆佸ぇ鍥惧彲鐢�
- calculators.put(CalculationStrategyConstants.Car_DataAccuracy_Url_PicUsability, new CarDeviceSampleCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_DataAccuracy_Url_PicUsability, CarDeviceSampleCalculation.class);
//杞﹁締鏃堕挓鍑嗙‘鎬�
- calculators.put(CalculationStrategyConstants.Car_ClockAccuracy, new CarClockAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_ClockAccuracy, CarClockAccuracyCalculation.class);
//杞﹁締鐩綍涓�鑷�
- calculators.put(CalculationStrategyConstants.Car_DirectConsistent, new CarConsistentCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Car_DirectConsistent, CarConsistentCalculation.class);
//浜鸿劯鐐逛綅鍦ㄧ嚎銆佽鍥惧簱瀵规帴绋冲畾
- calculators.put(CalculationStrategyConstants.Face_SiteOnline_ViewStability, new FaceSnapshotDataCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_SiteOnline_ViewStability, FaceSnapshotDataCalculation.class);
//浜鸿劯淇℃伅鍑嗙‘鐜�
- calculators.put(CalculationStrategyConstants.Face_InfoAccuracy, new FaceInFoAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_InfoAccuracy, FaceInFoAccuracyCalculation.class);
//浜鸿劯鎶撴媿鏁版嵁寤惰繜
- calculators.put(CalculationStrategyConstants.Face_SnapshotDelay, new FaceSnapshotDelayCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_SnapshotDelay, FaceSnapshotDelayCalculation.class);
//浜鸿劯鍥剧墖鍚堟牸銆佸ぇ鍥惧彲鐢�
- calculators.put(CalculationStrategyConstants.Face_DataAccuracy_PicUsability, new FaceDeviceSampleCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_DataAccuracy_PicUsability, FaceDeviceSampleCalculation.class);
//浜鸿劯鏃堕挓鍑嗙‘鎬�
- calculators.put(CalculationStrategyConstants.Face_ClockAccuracy, new FaceClockAccuracyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_ClockAccuracy, FaceClockAccuracyCalculation.class);
//浜鸿劯鐩綍涓�鑷�
- calculators.put(CalculationStrategyConstants.Face_DirectConsistent, new FaceConsistentCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Face_DirectConsistent, FaceConsistentCalculation.class);
//涓�鏈轰竴妗f敞鍐岀巼銆佹。妗堣�冩牳姣�
- calculators.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,new MonitorRegistrationCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,MonitorRegistrationCalculation.class);
//涓�鏈轰竴妗e悎鏍肩巼
- calculators.put(CalculationStrategyConstants.Video_MonitorQualify, new MonitorQualifyCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_MonitorQualify, MonitorQualifyCalculation.class);
//瑙嗛鐐逛綅鍦ㄧ嚎鐜�
- calculators.put(CalculationStrategyConstants.Video_SiteOnline, new VideoOnlineCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_SiteOnline, VideoOnlineCalculation.class);
//瑙嗛褰曞儚鍙敤鐜�
- calculators.put(CalculationStrategyConstants.Video_Usability, new VideoUsabilityCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_Usability, VideoUsabilityCalculation.class);
//骞冲彴鍦ㄧ嚎鐜�
- calculators.put(CalculationStrategyConstants.Video_PlatformOnline,new PlatformOnlineCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_PlatformOnline,PlatformOnlineCalculation.class);
//Osd鍑嗙‘鐜囧拰鏃堕棿鏍囨敞鍑嗙‘鐜�
- calculators.put(CalculationStrategyConstants.Video_OsdTime,new VideoOsdCalculation());
+ calculatorClasses.put(CalculationStrategyConstants.Video_OsdTime,VideoOsdCalculation.class);
}
public static CalculationStrategy getCalculator(String indexName) {
- return calculators.get(indexName);
+ Class<? extends CalculationStrategy> clazz = calculatorClasses.get(indexName);
+ if (clazz != null) {
+ return beanFactory.getBean(clazz);
+ }
+ return null;
+ }
+
+ @Override
+ public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
+ IndexCalculationFactory.beanFactory = beanFactory;
}
}
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
index 15fe311..5bc6c34 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java
@@ -9,6 +9,7 @@
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.domain.vo.screen.MonitorRateVO;
import com.ycl.platform.domain.vo.screen.MonitorTotalVO;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -20,6 +21,7 @@
* @author ruoyi
* @date 2024-03-04
*/
+@Mapper
public interface TMonitorMapper extends BaseMapper<TMonitor>
{
/**
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index 5676db1..bc08a68 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -58,16 +58,7 @@
//鍚屾mongodb涓�鏈轰竴妗e埌鏁版嵁搴�
@Transactional(rollbackFor = Exception.class)
public void synchronize() {
- // 鑾峰彇Calendar瀹炰緥锛岄粯璁や娇鐢ㄥ綋鍓嶆椂鍖哄拰璇█鐜
- Calendar calendar = Calendar.getInstance();
- // 娓呴櫎Calendar涓殑鎵�鏈夊瓧娈靛�硷紝浠ラ伩鍏嶅畠浠褰撳墠鏃ユ湡鏃堕棿鏈夊奖鍝�
- calendar.clear();
- // 璁剧疆骞翠唤銆佹湀浠斤紙娉ㄦ剰锛氭湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠�8鏈堟槸7锛夈�佹棩鏈�
- calendar.set(Calendar.YEAR, 2024);
- calendar.set(Calendar.MONTH, Calendar.AUGUST);
- calendar.set(Calendar.DAY_OF_MONTH, 13);
- // Calendar.getTime()鏂规硶杩斿洖涓�涓〃绀烘Calendar鏃堕棿鍊肩殑Date瀵硅薄
- Date date = calendar.getTime();
+ Date date = DateUtils.getDay(2024,7,13);
Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
// Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
diff --git a/ycl-server/src/main/java/com/ycl/task/VideoTask.java b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
index 4dc6072..1d212aa 100644
--- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java
@@ -79,13 +79,14 @@
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_Usability);
calculator.calculate(tMonitorVOS);
}
-
+ //TODO:鏃堕棿鍐欐浜�
public void oneMonitorQualifyTask(){
//璁$畻涓�鏈轰竴妗e悎鏍肩巼
- Date yesterday = DateUtils.addDays(new Date(), -1);
+// Date yesterday = DateUtils.addDays(new Date(), -1);
+ Date date = DateUtils.getDay(2024,7,13);
Query query = new Query();
query.addCriteria(Criteria
- .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday)));
+ .where("mongoCreateTime").gte(DateUtils.getDayStart(date)).lt(DateUtils.getDayEnd(date)));
List<MonitorQualifyResult> results = mongoTemplate.find(query, MonitorQualifyResult.class);
CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_MonitorQualify);
calculator.calculate(results);
diff --git a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
index 9988e85..b685b27 100644
--- a/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
+++ b/ycl-server/src/main/java/com/ycl/utils/DateUtils.java
@@ -278,4 +278,17 @@
}
+ public static Date getDay(int year,int month,int day) {
+ // 鑾峰彇Calendar瀹炰緥锛岄粯璁や娇鐢ㄥ綋鍓嶆椂鍖哄拰璇█鐜
+ Calendar calendar = Calendar.getInstance();
+ // 娓呴櫎Calendar涓殑鎵�鏈夊瓧娈靛�硷紝浠ラ伩鍏嶅畠浠褰撳墠鏃ユ湡鏃堕棿鏈夊奖鍝�
+ calendar.clear();
+ // 璁剧疆骞翠唤銆佹湀浠斤紙娉ㄦ剰锛氭湀浠芥槸浠�0寮�濮嬬殑锛屾墍浠�8鏈堟槸7锛夈�佹棩鏈�
+ calendar.set(Calendar.YEAR, year);
+ calendar.set(Calendar.MONTH, month);
+ calendar.set(Calendar.DAY_OF_MONTH, day);
+ // Calendar.getTime()鏂规硶杩斿洖涓�涓〃绀烘Calendar鏃堕棿鍊肩殑Date瀵硅薄
+ Date date = calendar.getTime();
+ return date;
+ }
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexCarMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexCarMapper.xml
index b28ab74..ccf2eb8 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexCarMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexCarMapper.xml
@@ -121,7 +121,7 @@
</foreach>
</delete>
- <select id="selectToday">
+ <select id="selectToday" resultType="com.ycl.platform.domain.entity.CheckIndexCar">
select * from t_check_index_car where DATE(create_time) = #{today}
</select>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
index b2a65f5..1fb3bc2 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexFaceMapper.xml
@@ -111,7 +111,7 @@
</foreach>
</delete>
- <select id="selectToday">
+ <select id="selectToday" resultType="com.ycl.platform.domain.entity.CheckIndexFace">
select * from t_check_index_car where DATE(create_time) = #{today}
</select>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
index ee8c4a0..c5f1d1c 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
@@ -172,7 +172,7 @@
</foreach>
</delete>
- <select id="selectToday">
+ <select id="selectToday" resultType="com.ycl.platform.domain.entity.CheckIndexVideo">
select * from t_check_index_video where DATE(create_time) = #{today}
</select>
--
Gitblit v1.8.0