From 745663af3e1398aae07c1dfbd026acfc11305e1f Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期六, 03 八月 2024 13:31:07 +0800 Subject: [PATCH] 优云点位在线率 --- ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexVideoServiceImpl.java | 19 +- ycl-server/src/main/java/com/ycl/platform/service/ICheckIndexVideoService.java | 18 +- ycl-server/src/main/java/com/ycl/api/PythonController.java | 20 ++ ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java | 20 +- ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OsdMonitorParam.java | 38 +++++ ycl-server/src/main/java/com/ycl/feign/UYClient.java | 6 ycl-common/src/main/java/constant/ApiConstants.java | 5 ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 4 ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java | 8 ycl-common/src/main/java/constant/CalculationStrategyConstants.java | 5 ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java | 8 ycl-server/src/main/java/com/ycl/task/VideoTask.java | 24 +++ ycl-server/src/main/java/com/ycl/task/UYTask.java | 35 +++++ ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml | 16 + ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java | 3 ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java | 136 +++++++++++++++++++ 16 files changed, 322 insertions(+), 43 deletions(-) diff --git a/ycl-common/src/main/java/constant/ApiConstants.java b/ycl-common/src/main/java/constant/ApiConstants.java index 105d11d..aefac02 100644 --- a/ycl-common/src/main/java/constant/ApiConstants.java +++ b/ycl-common/src/main/java/constant/ApiConstants.java @@ -42,5 +42,8 @@ //鍥介檯缂栫爜鐩戞祴缁撴灉 11-13浣嶄笉鍚堟爣鍑� public final static Integer HK_Info_GbCodeType_11NotStandard = 4; - + //浼樹簯鍦ㄧ嚎鐘舵�� 1鍦ㄧ嚎 0鏈煡 -1绂荤嚎 + public final static Integer UY_OnlineSite_Online = 1; + public final static Integer UY_OnlineSite_Unknown = 0; + public final static Integer UY_OnlineSite_Offline = -1; } diff --git a/ycl-common/src/main/java/constant/CalculationStrategyConstants.java b/ycl-common/src/main/java/constant/CalculationStrategyConstants.java index efcc0cb..280fad8 100644 --- a/ycl-common/src/main/java/constant/CalculationStrategyConstants.java +++ b/ycl-common/src/main/java/constant/CalculationStrategyConstants.java @@ -51,4 +51,9 @@ */ public static final String Face_ClockAccuracy = "faceClockAccuracy"; + + /** + * 瑙嗛鐐逛綅鍦ㄧ嚎鐜� + */ + public static final String Video_SiteOnline = "videoSiteOnline"; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OsdMonitorParam.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OsdMonitorParam.java new file mode 100644 index 0000000..d869df5 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/OsdMonitorParam.java @@ -0,0 +1,38 @@ +package com.ycl.platform.domain.param.UY; + + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class OsdMonitorParam { + /** + * 鍒嗛〉椤电爜 + */ + private Integer pageNum; + /** + * 鍒嗛〉澶у皬 + */ + private Integer pageSize; + /** + * tenantId蹇呴』 + */ + private Integer tenantId; + /** + * 鍖哄煙缂栫爜 + */ + private Integer arealayerno; + /** + * 鍏抽敭瀛� + */ + private Integer keyword; + /** + * 瀛楀箷淇℃伅鏍煎紡鏄惁鏈夋晥锛�1:鏈夋晥, -1:鏈煡, 0:鏃犳晥 + */ + private Integer osdFormat; + /** + * 鍥剧墖涓婄殑瀛楀箷鏃堕棿鍜屾憚鍍忔満鎷夌爜娴佹椂闂村樊鏄惁澶т簬鏈�澶у��, 1:澶т簬, -1:鏈煡, 0 灏忎簬 + */ + private Integer osdTime; +} diff --git a/ycl-server/src/main/java/com/ycl/api/PythonController.java b/ycl-server/src/main/java/com/ycl/api/PythonController.java new file mode 100644 index 0000000..97c9500 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/api/PythonController.java @@ -0,0 +1,20 @@ +package com.ycl.api; + +import com.ycl.platform.domain.param.UY.OsdMonitorParam; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 鎺ユ敹python鎺ュ彛鎺ㄩ�佺殑鏃堕挓鍑嗙‘ + */ +@RestController +@RequestMapping("/api") +public class PythonController { + @PostMapping("/videoClock") + public void videoClock(@RequestBody OsdMonitorParam param) { + //瀛樺偍python鎺ㄩ�佽棰戞椂閽熶俊鎭� + + } +} diff --git a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java index c3276a8..e701f1a 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/CarSnapshopDataCalculation.java @@ -44,7 +44,7 @@ //鍖哄煙杞﹁締鐐逛綅鍦ㄧ嚎鎸囨爣鐨勫唴閮ㄧ被 private static class AreaStats { int totalSites = 0; - int offlineSites = 0; + int onlineSites = 0; int totalDataSum = 0; } @@ -102,8 +102,8 @@ //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats()); stats.totalSites++; - if (ApiConstants.HK_SnapCount_ResultType_Null == result.getResultType()) { - stats.offlineSites++; + if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) { + stats.onlineSites++; } else { stats.totalDataSum += result.getDataCount(); } @@ -131,7 +131,7 @@ //璋冪敤鐐逛綅鍦ㄧ嚎璁$畻鏂规硶 Map<String, Object> siteOnlineParam = new HashMap<>(); siteOnlineParam.put("totalSites", stats.totalSites); - siteOnlineParam.put("offlineSites", stats.offlineSites); + siteOnlineParam.put("onlineSites", stats.onlineSites); BigDecimal siteOnline = siteOnline(siteOnlineParam); checkIndexCar.setSiteOnline(siteOnline); //瑙嗗浘搴撳鎺ョǔ瀹氭�� diff --git a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java index ced2623..cc07f33 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java +++ b/ycl-server/src/main/java/com/ycl/calculate/FaceSnapshotDataCalculation.java @@ -45,7 +45,7 @@ //鍖哄煙浜鸿劯鐐逛綅鍦ㄧ嚎鎸囨爣鐨勫唴閮ㄧ被 private static class AreaStats { int totalSites = 0; - int offlineSites = 0; + int onlineSites = 0; int totalDataSum = 0; } @@ -101,8 +101,8 @@ //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats()); stats.totalSites++; - if (ApiConstants.HK_SnapCount_ResultType_Null == result.getResultType()) { - stats.offlineSites++; + if (ApiConstants.HK_SnapCount_ResultType_Null != result.getResultType()) { + stats.onlineSites++; } else { stats.totalDataSum += result.getDataCount(); } @@ -126,7 +126,7 @@ //璋冪敤鐐逛綅鍦ㄧ嚎璁$畻鏂规硶 Map<String, Object> siteOnlineParam = new HashMap<>(); siteOnlineParam.put("totalSites", stats.totalSites); - siteOnlineParam.put("offlineSites", stats.offlineSites); + siteOnlineParam.put("onlineSites", stats.onlineSites); BigDecimal siteOnline = siteOnline(siteOnlineParam); checkIndexFace.setSiteOnline(siteOnline); //瑙嗗浘搴撳鎺ョǔ瀹氭�� 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 aa33b57..9ab85d9 100644 --- a/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java +++ b/ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java @@ -29,8 +29,7 @@ //鐐逛綅鍦ㄧ嚎鐜� public BigDecimal siteOnline(Map<String, Object> param) { BigDecimal totalSites = new BigDecimal((Integer) param.get("totalSites")); - BigDecimal offlineSites = new BigDecimal((Integer) param.get("offlineSites")); - BigDecimal onlineSites = totalSites.subtract(offlineSites); + BigDecimal onlineSites = new BigDecimal((Integer) param.get("onlineSites")); return onlineSites.divide(totalSites, 4, RoundingMode.HALF_UP); } diff --git a/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java b/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java new file mode 100644 index 0000000..fef8088 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/calculate/VideoOnlineCalculation.java @@ -0,0 +1,136 @@ +package com.ycl.calculate; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.ycl.platform.domain.entity.CheckIndexVideo; +import com.ycl.platform.domain.entity.TMonitor; +import com.ycl.platform.domain.result.HK.SnapshotDelayMonitorResult; +import com.ycl.platform.domain.result.UY.QueryVqdResult; +import com.ycl.platform.mapper.CheckIndexVideoMapper; +import com.ycl.platform.service.ICheckIndexFaceService; +import com.ycl.platform.service.ICheckIndexVideoService; +import com.ycl.platform.service.ITMonitorService; +import constant.ApiConstants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; +import utils.DateUtils; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 璁$畻瑙嗛璁惧鐐逛綅鍦ㄧ嚎鐜囥�侀噸鐐圭偣浣嶅湪绾跨巼 + * 鍥惧儚鐩戞祴璇婃柇缁撴灉 + * 鑾峰彇鍒嗙渷鍘呫�佸尯鍩熺殑map<k,v> k涓篸eptId鎴栬�匬rovince_deptId + * 寰幆map璁$畻鏁版嵁涓婁紶鍙婃椂鎬� + * 鏇存柊鎴栨柊澧� + */ +@Component +//TODO锛氶噸鐐规寚鎸ュ浘鍍忓湪绾跨巼 +public class VideoOnlineCalculation extends IndexCalculationServe implements CalculationStrategy<QueryVqdResult> { + @Autowired + private CheckIndexVideoMapper checkIndexVideoMapper; + @Autowired + private ITMonitorService monitorService; + @Autowired + private ICheckIndexVideoService checkIndexVideoService; + + //鍖哄煙瑙嗛鍦ㄧ嚎鐜囩殑鍐呴儴绫� + private static class AreaStats { + int totalSites = 0; + int onlineSites = 0; + int importantSites = 0; + int importantOnlineSites = 0; + } + + @Override + public void calculate(List<QueryVqdResult> list) { + if (CollectionUtils.isEmpty(list)) { + return; + } + + //鑾峰緱鍥芥爣鐮佷负key鐨勮澶噈ap + Map<String, TMonitor> monitorMap = monitorService.list(new QueryWrapper<TMonitor>() + .in("serial_number", list.stream().map(QueryVqdResult::getDeviceId).collect(Collectors.toList()))) + .stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity())); + //鑾峰彇鐪佸巺鍥芥爣鐮侀泦鍚� + List<String> provinceIds = getProvince(); + //閲嶇偣鐐逛綅闆嗗悎 + List<String> important = getImportant(); + + Map<String, AreaStats> areaStatsMap = new HashMap<>(); + for (QueryVqdResult result : list) { + TMonitor monitor = monitorMap.get(result.getDeviceId()); + if (monitor == null) continue; + + String deptId = monitor.getDeptId().toString(); + updateAreaStats(areaStatsMap, deptId, result, important); + + // 澶勭悊鐪佸巺鏁版嵁 + if (!CollectionUtils.isEmpty(provinceIds) && provinceIds.contains(monitor.getSerialNumber())) { + String provinceKey = "Province_" + deptId; + updateAreaStats(areaStatsMap, provinceKey, result, important); + } + } + + // 鏌ヨ鏄惁index琛ㄥ凡缁忓瓨鍦ㄤ粖鏃ユ暟鎹� + List<CheckIndexVideo> checkIndexVideoList = checkIndexVideoMapper.selectToday(DateUtils.getDate()); + List<CheckIndexVideo> checkIndexVideos = new ArrayList<>(); + areaStatsMap.forEach((deptId, stats) -> { + if (stats.totalSites > 0) { + CheckIndexVideo CheckIndexVideo = createOrUpdateCheckIndexFace(deptId, stats, checkIndexVideoList); + if (CheckIndexVideo != null) { + checkIndexVideos.add(CheckIndexVideo); + } + } + }); + + checkIndexVideoService.saveOrUpdateBatch(checkIndexVideos); + } + + /** + * 绱鎬荤偣浣嶆暟銆佸湪绾跨偣浣嶆暟銆侀噸鐐圭偣浣嶆暟銆侀噸鐐圭偣浣嶅湪绾挎暟 + */ + private void updateAreaStats(Map<String, AreaStats> areaStatsMap, String key, QueryVqdResult result, List<String> important) { + //杩斿洖瀵硅薄鐨勫紩鐢紝濡傛灉涓嶅瓨鍦ㄤ細鏀惧叆鏂扮殑key,value + AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats()); + stats.totalSites++; + if(important.contains(result.getDeviceId())){ + stats.importantSites++; + } + if (ApiConstants.UY_OnlineSite_Online.equals(result.getOnlineStatus())){ + stats.onlineSites++; + if(important.contains(result.getDeviceId())){ + stats.importantOnlineSites++; + } + } + } + + /** + * 瑙嗛鐐逛綅鍦ㄧ嚎鐜� + */ + private CheckIndexVideo createOrUpdateCheckIndexFace(String key, AreaStats stats, List<CheckIndexVideo> checkIndexVideoList) { + CheckIndexVideo CheckIndexVideo = getCheckIndex(key, checkIndexVideoList, CheckIndexVideo.class); + if (CheckIndexVideo == null) { + return null; + } + //璋冪敤鐐逛綅鍦ㄧ嚎鐜囪绠楁柟娉� + Map<String, Object> param = new HashMap<>(); + param.put("totalSites", stats.totalSites); + param.put("onlineSites", stats.onlineSites); + BigDecimal siteOnline = siteOnline(param); + CheckIndexVideo.setSiteOnline(siteOnline); + //璋冪敤鐐逛綅鍦ㄧ嚎鐜囪绠楁柟娉� 璁$畻閲嶇偣鐐逛綅鍦ㄧ嚎鐜� + Map<String, Object> importantParam = new HashMap<>(); + param.put("totalSites", stats.importantSites); + param.put("onlineSites", stats.importantOnlineSites); + BigDecimal importantSiteOnline = siteOnline(importantParam); + CheckIndexVideo.setKeySiteOnline(importantSiteOnline); + return CheckIndexVideo; + } +} 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 04ea8ea..b34a303 100644 --- a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java +++ b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java @@ -35,6 +35,10 @@ //浜鸿劯鏃堕挓鍑嗙‘鎬� calculators.put(CalculationStrategyConstants.Face_ClockAccuracy, new FaceClockAccuracyCalculation()); //TODO锛氫汉鑴哥洰褰曚竴鑷� + + //瑙嗛鐐逛綅鍦ㄧ嚎鐜� + calculators.put(CalculationStrategyConstants.Video_SiteOnline, new VideoOnlineCalculation()); + } public static CalculationStrategy getCalculator(String indexName) { diff --git a/ycl-server/src/main/java/com/ycl/feign/UYClient.java b/ycl-server/src/main/java/com/ycl/feign/UYClient.java index 7a5ccad..e350dcc 100644 --- a/ycl-server/src/main/java/com/ycl/feign/UYClient.java +++ b/ycl-server/src/main/java/com/ycl/feign/UYClient.java @@ -45,8 +45,12 @@ @PostMapping("/report/recordMetaDSum/list") JSONObject recordMetaDSumList(@RequestBody RecordMetaDSumParam recordMetaDSumParam); + /** + * osd鏍囨敞淇℃伅 + * @return + */ @GetMapping("/api/v1/app/osdMonitor/list") - JSONObject osdMonitorList(); + JSONObject osdMonitorList(@SpringQueryMap OsdMonitorParam param); /** * 鍥惧儚妫�娴嬭瘖鏂粨鏋� diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java index ae674d8..e43905a 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java @@ -1,20 +1,22 @@ package com.ycl.platform.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.platform.domain.entity.CheckIndexFace; import com.ycl.platform.domain.entity.CheckIndexVideo; import java.util.List; /** * 瑙嗛鎸囨爣姒傜巼鏁版嵁Mapper鎺ュ彛 - * + * * @author ruoyi * @date 2024-04-29 */ -public interface CheckIndexVideoMapper +public interface CheckIndexVideoMapper extends BaseMapper<CheckIndexVideo> { /** * 鏌ヨ瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param id 瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭 * @return 瑙嗛鎸囨爣姒傜巼鏁版嵁 */ @@ -22,7 +24,7 @@ /** * 鏌ヨ瑙嗛鎸囨爣姒傜巼鏁版嵁鍒楄〃 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 瑙嗛鎸囨爣姒傜巼鏁版嵁闆嗗悎 */ @@ -30,7 +32,7 @@ /** * 鏂板瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 缁撴灉 */ @@ -38,7 +40,7 @@ /** * 淇敼瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 缁撴灉 */ @@ -46,7 +48,7 @@ /** * 鍒犻櫎瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param id 瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭 * @return 缁撴灉 */ @@ -54,9 +56,11 @@ /** * 鎵归噺鍒犻櫎瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 * @return 缁撴灉 */ public int deleteCheckIndexVideoByIds(Long[] ids); + + List<CheckIndexVideo> selectToday(String date); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/ICheckIndexVideoService.java b/ycl-server/src/main/java/com/ycl/platform/service/ICheckIndexVideoService.java index 2f7e32c..832f9c6 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/ICheckIndexVideoService.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/ICheckIndexVideoService.java @@ -1,20 +1,20 @@ package com.ycl.platform.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.entity.CheckIndexVideo; import java.util.List; /** * 瑙嗛鎸囨爣姒傜巼鏁版嵁Service鎺ュ彛 - * + * * @author ruoyi * @date 2024-04-29 */ -public interface ICheckIndexVideoService -{ +public interface ICheckIndexVideoService extends IService<CheckIndexVideo> { /** * 鏌ヨ瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param id 瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭 * @return 瑙嗛鎸囨爣姒傜巼鏁版嵁 */ @@ -22,7 +22,7 @@ /** * 鏌ヨ瑙嗛鎸囨爣姒傜巼鏁版嵁鍒楄〃 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 瑙嗛鎸囨爣姒傜巼鏁版嵁闆嗗悎 */ @@ -30,7 +30,7 @@ /** * 鏂板瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 缁撴灉 */ @@ -38,7 +38,7 @@ /** * 淇敼瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 缁撴灉 */ @@ -46,7 +46,7 @@ /** * 鎵归噺鍒犻櫎瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param ids 闇�瑕佸垹闄ょ殑瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭闆嗗悎 * @return 缁撴灉 */ @@ -54,7 +54,7 @@ /** * 鍒犻櫎瑙嗛鎸囨爣姒傜巼鏁版嵁淇℃伅 - * + * * @param id 瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭 * @return 缁撴灉 */ diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexVideoServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexVideoServiceImpl.java index c0b1492..d1b013c 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexVideoServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexVideoServiceImpl.java @@ -1,6 +1,9 @@ package com.ycl.platform.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.platform.domain.entity.CheckIndexFace; import com.ycl.platform.domain.entity.CheckIndexVideo; +import com.ycl.platform.mapper.CheckIndexFaceMapper; import com.ycl.platform.mapper.CheckIndexVideoMapper; import com.ycl.platform.service.ICheckIndexVideoService; import org.springframework.beans.factory.annotation.Autowired; @@ -11,19 +14,19 @@ /** * 瑙嗛鎸囨爣姒傜巼鏁版嵁Service涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2024-04-29 */ @Service -public class CheckIndexVideoServiceImpl implements ICheckIndexVideoService +public class CheckIndexVideoServiceImpl extends ServiceImpl<CheckIndexVideoMapper, CheckIndexVideo> implements ICheckIndexVideoService { @Autowired private CheckIndexVideoMapper checkIndexVideoMapper; /** * 鏌ヨ瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param id 瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭 * @return 瑙嗛鎸囨爣姒傜巼鏁版嵁 */ @@ -35,7 +38,7 @@ /** * 鏌ヨ瑙嗛鎸囨爣姒傜巼鏁版嵁鍒楄〃 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 瑙嗛鎸囨爣姒傜巼鏁版嵁 */ @@ -47,7 +50,7 @@ /** * 鏂板瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 缁撴灉 */ @@ -60,7 +63,7 @@ /** * 淇敼瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param checkIndexVideo 瑙嗛鎸囨爣姒傜巼鏁版嵁 * @return 缁撴灉 */ @@ -72,7 +75,7 @@ /** * 鎵归噺鍒犻櫎瑙嗛鎸囨爣姒傜巼鏁版嵁 - * + * * @param ids 闇�瑕佸垹闄ょ殑瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭 * @return 缁撴灉 */ @@ -84,7 +87,7 @@ /** * 鍒犻櫎瑙嗛鎸囨爣姒傜巼鏁版嵁淇℃伅 - * + * * @param id 瑙嗛鎸囨爣姒傜巼鏁版嵁涓婚敭 * @return 缁撴灉 */ diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java index 4a359d9..7fa70ba 100644 --- a/ycl-server/src/main/java/com/ycl/task/UYTask.java +++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java @@ -4,9 +4,11 @@ import com.mongodb.client.result.DeleteResult; import com.ycl.feign.UYClient; import com.ycl.platform.domain.param.UY.OneMachineFileParam; +import com.ycl.platform.domain.param.UY.OsdMonitorParam; import com.ycl.platform.domain.param.UY.QueryVqdParam; import com.ycl.platform.domain.param.UY.RecordMetaDSumParam; import com.ycl.platform.domain.result.UY.OneMachineFileResult; +import com.ycl.platform.domain.result.UY.OsdMonitorResult; import com.ycl.platform.domain.result.UY.QueryVqdResult; import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; import com.ycl.platform.service.ITMonitorService; @@ -141,4 +143,37 @@ } log.info("缁撴潫鎵ц褰曞儚鍙敤鏁版嵁鍚屾"); } + + //瑙嗛鏍囨敞 + public void OsdMonitorTask() { + //瑙嗛鏍囨敞 + log.info("寮�濮嬫墽琛岃棰戞爣娉ㄦ暟鎹悓姝�"); + OsdMonitorParam param = new OsdMonitorParam(); + JSONObject jsonObject = uyClient.osdMonitorList(param); + if (jsonObject != null) { + if (jsonObject.getBoolean("success")) { + JSONObject data = jsonObject.getJSONObject("data"); + if (data != null) { + List<OsdMonitorResult> records = data.getList("records", OsdMonitorResult.class); + if (!CollectionUtils.isEmpty(records)) { + //濡傛灉浠婂ぉ瀛樺湪涔嬪墠鐨勬暟鎹厛鍒犻櫎 + Query query = new Query(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date()))); + DeleteResult result = mongoTemplate.remove(query, OsdMonitorResult.class); + //瀛樻斁鍦╩ongo涓� + mongoTemplate.insert(records); + } else { + log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖{}", data); + } + } else { + log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖{}", jsonObject); + } + } else { + log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖{}", jsonObject); + } + } else { + log.error("瑙嗛鏍囨敞鏁版嵁涓虹┖"); + } + log.info("缁撴潫鎵ц瑙嗛鏍囨敞鏁版嵁鍚屾"); + } } 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 0746c25..f910de4 100644 --- a/ycl-server/src/main/java/com/ycl/task/VideoTask.java +++ b/ycl-server/src/main/java/com/ycl/task/VideoTask.java @@ -1,10 +1,22 @@ package com.ycl.task; +import com.ycl.calculate.CalculationStrategy; +import com.ycl.factory.IndexCalculationFactory; +import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; +import com.ycl.platform.domain.result.UY.QueryVqdResult; +import com.ycl.utils.DateUtils; +import constant.ApiConstants; +import constant.CalculationStrategyConstants; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; /** * 瑙嗛璁$畻鑰冩牳鎸囨爣浠诲姟 @@ -15,4 +27,16 @@ public class VideoTask { @Autowired private MongoTemplate mongoTemplate; + + public void siteOnlineTask(){ + Date yesterday = DateUtils.addDays(new Date(), -1); + //璁$畻鐐逛綅鍦ㄧ嚎鐜囧拰閲嶇偣鐐逛綅鍦ㄧ嚎鐜� + Query query = new Query(); + query.addCriteria(Criteria + .where("mongoCreateTime").gte(DateUtils.getDayStart(yesterday)).lt(DateUtils.getDayEnd(yesterday))); + + List<QueryVqdResult> results = mongoTemplate.find(query, QueryVqdResult.class); + CalculationStrategy calculator = IndexCalculationFactory.getCalculator(CalculationStrategyConstants.Video_SiteOnline); + calculator.calculate(results); + } } diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml index a1c6e1e..35bd244 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ycl.platform.mapper.CheckIndexVideoMapper"> - + <resultMap type="com.ycl.platform.domain.entity.CheckIndexVideo" id="CheckIndexVideoResult"> <result property="id" column="id" /> <result property="deptId" column="dept_id" /> @@ -38,7 +38,7 @@ <select id="selectCheckIndexVideoList" parameterType="CheckIndexVideo" resultMap="CheckIndexVideoResult"> select tciv.*,sd.dept_name from t_check_index_video tciv left join sys_dept sd on tciv.dept_id = sd.dept_id - <where> + <where> <if test="deptId != null "> and tciv.dept_id = #{deptId}</if> <if test="examineTag != null "> and examine_tag = #{examineTag}</if> <if test="date != null "> and date_format(tciv.create_time,'%Y-%m') = #{date}</if> @@ -71,12 +71,12 @@ </if> </where> </select> - + <select id="selectCheckIndexVideoById" resultMap="CheckIndexVideoResult"> <include refid="selectCheckIndexVideoVo"/> where id = #{id} </select> - + <insert id="insertCheckIndexVideo" useGeneratedKeys="true" keyProperty="id"> insert into t_check_index_video <trim prefix="(" suffix=")" suffixOverrides=","> @@ -166,9 +166,13 @@ </delete> <delete id="deleteCheckIndexVideoByIds" > - delete from t_check_index_video where id in + delete from t_check_index_video where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> -</mapper> \ No newline at end of file + + <select id="selectToday"> + select * from t_check_index_video where DATE(create_time) = #{today} + </select> +</mapper> -- Gitblit v1.8.0