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