From 71f61d13531b3e2a0099ba5afe3f268c99c5bacf Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期四, 29 五月 2025 18:13:33 +0800 Subject: [PATCH] 修改大屏录像可用率指标,点位在线指标,数据中心录像可用率, --- ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java | 2 ycl-server/src/main/java/com/ycl/platform/service/impl/CheckIndexVideoServiceImpl.java | 28 +++++ ycl-server/src/main/java/com/ycl/platform/mapper/TMonitorMapper.java | 2 ycl-server/src/main/java/com/ycl/task/UYTask.java | 12 + ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java | 219 ++++++++++++++++++++++++++++++++++--------- ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml | 12 ++ ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java | 7 + 7 files changed, 229 insertions(+), 53 deletions(-) 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 42b764a..a6a4bbc 100644 --- a/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java +++ b/ycl-server/src/main/java/com/ycl/factory/IndexCalculationFactory.java @@ -50,7 +50,7 @@ //浜鸿劯鐩綍涓�鑷� calculatorClasses.put(CalculationStrategyConstants.Face_DirectConsistent, FaceConsistentCalculation.class); - //涓�鏈轰竴妗f敞鍐岀巼銆佹。妗堣�冩牳姣� + //娉ㄥ唽鐜囥�佹。妗堣�冩牳姣� calculatorClasses.put(CalculationStrategyConstants.Video_MonitorRegis_ArchiveRate,MonitorRegistrationCalculation.class); //涓�鏈轰竴妗e悎鏍肩巼 calculatorClasses.put(CalculationStrategyConstants.Video_MonitorQualify, MonitorQualifyCalculation.class); 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 0bde409..1a13b60 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 @@ -137,6 +137,8 @@ void deleteAll(); + Long getAllVideo(); + List<String> getIdListVideo(); /** * 鎵归噺淇敼璁惧鍘傚晢绫诲瀷 diff --git a/ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java b/ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java index a01b82d..9bb6299 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java @@ -12,6 +12,7 @@ import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigDecimal; import java.util.List; /** @@ -30,6 +31,9 @@ void pointOnlineCarExport(HttpServletResponse response, DataCenterQuery query) throws IOException; Result updateDynamicValue(UpdateDynamicValueForm form); + + //zxl + BigDecimal videoPointOnlineRateCount(DataCenterQuery params); /** * 瑙嗛锛氱偣浣嶅湪绾跨巼 @@ -72,6 +76,9 @@ */ Result videoAssessmentFileRatio(DataCenterQuery query); + //zxl + BigDecimal videoAvailabilityRateCount(DataCenterQuery params); + /** * 瑙嗛锛氬綍鍍忓彲鐢ㄧ巼 * 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 10b5e63..5baab03 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 @@ -3,12 +3,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.CheckIndexVideo; import com.ycl.platform.domain.query.DashboardQuery; +import com.ycl.platform.domain.query.DataCenterQuery; import com.ycl.platform.mapper.CheckIndexVideoMapper; +import com.ycl.platform.service.DataCenterService; import com.ycl.platform.service.ICheckIndexVideoService; +import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import utils.DateUtils; +import java.util.Date; import java.util.List; /** @@ -18,6 +22,7 @@ * @date 2024-04-29 */ @Service +@RequiredArgsConstructor public class CheckIndexVideoServiceImpl extends ServiceImpl<CheckIndexVideoMapper, CheckIndexVideo> implements ICheckIndexVideoService { @Autowired @@ -96,8 +101,31 @@ return checkIndexVideoMapper.deleteCheckIndexVideoById(id); } + public final DataCenterService dataCenterService; @Override public CheckIndexVideo dashboard(DashboardQuery dashboardQuery) { + //淇敼 褰曞儚鍙敤鐜� 鍜� 鐐逛綅鍦ㄧ嚎鐜囧湪浠婂ぉ + if(dashboardQuery.getDeptId() == null){ + DataCenterQuery dataCenterQuery = new DataCenterQuery(); + dataCenterQuery.setDate(new Date()); + dataCenterQuery.setTime(); + //鍖哄幙 2 鐪佸巺 1 鍏畨閮�3 + if(dashboardQuery.getDataScope() == 2){ + dataCenterQuery.setDataType(0); + }else if(dashboardQuery.getDataScope() == 1){ + dataCenterQuery.setDataType(1); + }else if(dashboardQuery.getDataScope() == 3){ + dataCenterQuery.setDataType(2); + } + //鍏ㄩ儴0 鐪佸巺1 鍏畨閮�2 + + CheckIndexVideo checkIndexVideo = checkIndexVideoMapper.dashboard(dashboardQuery); + checkIndexVideo.setSiteOnline(dataCenterService.videoPointOnlineRateCount(dataCenterQuery)); + + checkIndexVideo.setVideoAvailable(dataCenterService.videoAvailabilityRateCount(dataCenterQuery)); + return checkIndexVideo; + + } return checkIndexVideoMapper.dashboard(dashboardQuery); } } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java index 1397a1e..aff9843 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java @@ -20,6 +20,7 @@ import com.ycl.platform.domain.vo.DynamicColumnVO; import com.ycl.platform.mapper.DynamicColumnMapper; import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper; +import com.ycl.platform.mapper.TMonitorMapper; import com.ycl.platform.mapper.YwPointMapper; import com.ycl.platform.service.*; import com.ycl.system.Result; @@ -66,7 +67,6 @@ private final MongoTemplate mongoTemplate; private final ImageResourceSecurityDetailMapper securityDetailMapper; private final YwPointMapper pointMapper; - private final ICheckIndexVideoService checkIndexVideoService; private final ICheckIndexCarService checkIndexCarService; private final ICheckIndexFaceService checkIndexFaceService; private final DynamicColumnMapper dynamicColumnMapper; @@ -630,6 +630,50 @@ + } + + //zxl + @Override + public BigDecimal videoPointOnlineRateCount(DataCenterQuery params){ + //鍗$墖缁熻 + int totalCount = 0; + int onlineCount = 0; + int offlineCount = 0; + int unknownCount = 0; + //鏋勫缓鏉′欢 + List<Criteria> criteriaList = new ArrayList<>(); + // 娣诲姞鍥哄畾鏉′欢 + criteriaList.add(Criteria.where("monitorType").regex(".*" + CheckConstants.Rule_Category_Video + ".*")); + criteriaList.add(Criteria.where("mongoCreateTime").gte(params.getStartTime()).lte(params.getEndTime())); + // 鏍规嵁dataType鍔ㄦ�佹坊鍔犳潯浠� + if (params.getDataType() == 1) { + criteriaList.add(Criteria.where("provinceTag").is(Boolean.TRUE)); + } else if (params.getDataType() == 2) { + criteriaList.add(Criteria.where("deptTag").is(Boolean.TRUE)); + } + // 鏋勫缓match鎿嶄綔 + MatchOperation match = Aggregation.match( + new Criteria().andOperator(criteriaList.toArray(new Criteria[0])) + ); + GroupOperation group = Aggregation.group() + .sum(ConditionalOperators.when(Criteria.where("online").is(ApiConstants.UY_OnlineSite_Online)).then(1).otherwise(0)).as("onlineCount") + .sum(ConditionalOperators.when(Criteria.where("online").is(ApiConstants.UY_OnlineSite_Offline)).then(1).otherwise(0)).as("offlineCount") + .sum(ConditionalOperators.when(Criteria.where("online").is(ApiConstants.UY_OnlineSite_Unknown)).then(1).otherwise(0)).as("unknownCount"); + // 灏嗗尮閰嶉樁娈靛拰鍒嗙粍闃舵缁勫悎璧锋潵 + Aggregation aggregation = Aggregation.newAggregation(match, group); + // 鎵ц鑱氬悎鏌ヨ + AggregationResults<Map> results = mongoTemplate.aggregate(aggregation, "t_monitor_online", Map.class); // 鏇挎崲涓轰綘鐨勯泦鍚堝悕绉� + for (Map<String, Object> result : results.getMappedResults()) { + offlineCount = (Integer) result.getOrDefault("offlineCount", 0L); + unknownCount = (Integer) result.getOrDefault("unknownCount", 0L); + onlineCount = (Integer) result.getOrDefault("onlineCount", 0L); + totalCount = offlineCount + unknownCount + onlineCount; + } + BigDecimal onlineRate = BigDecimal.ZERO; + if (totalCount!=0) { + onlineRate = new BigDecimal(onlineCount).divide(new BigDecimal(totalCount), 3,RoundingMode.DOWN).multiply(new BigDecimal("100")); + } + return onlineRate; } /** @@ -1370,45 +1414,23 @@ return recordingMinTime; } + private final TMonitorMapper tMonitorMapper; - /** - * 瑙嗛锛氬綍鍍忓彲鐢ㄧ巼 - * - * @param params - * @return - */ + //zxl @Override - public Result videoAvailabilityRate(DataCenterQuery params) { - - List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); - Query query = MongoUtil.getQuery(params, "createTime", likeFileds, null); - //涓嬫媺妗嗗綍鍍忔儏鍐垫煡璇㈡潯浠� - if (params.getOption() != null) { - query.addCriteria(Criteria.where("recordStatus").is(params.getOption())); - } - long total = mongoTemplate.count(query, RecordMetaDSumResult.class); - MongoUtil.setPage(query, params, "createTime"); - List<RecordMetaDSumResult> resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); - //鏌ヨ鍔ㄦ�佸垪鏁版嵁 - //鏌ヨ鍔ㄦ�佸垪鏁版嵁鏇村叿id鏌ヨ -// List<DynamicColumnVO> dynamicColumnNames = dynamicColumnMapper.getDynamicColumnByTableName("uy_record_meta_d_sum"); - //缈昏瘧琛屾斂鍖哄煙 - resultList.forEach(item -> { - String areaCode = item.getArealayername().substring(0, 6); - AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromCode(areaCode); - if (areaDeptEnum != null) item.setArealayername(areaDeptEnum.getName()); - - List<DynamicColumnVO> list = dynamicColumnMapper.getDynamicColumnByTable(TableNameConstants.COLUMN_NAME_VIDEO,item.getId()); - item.setDynamicColumnList(list); - - }); + public BigDecimal videoAvailabilityRateCount(DataCenterQuery params){ + System.out.println("------------------------------------------------------------------------------------"); + System.out.println(params); // 缁熻鏁伴噺 + List<String> noString = tMonitorMapper.getIdListVideo(); MongoDatabase database = mongoTemplate.getDb(); MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum"); List<Integer> status = Arrays.asList(1, 0, -1); List<String> resultCount = status.stream().map(item -> { List<Document> dList = new ArrayList<>(2); + dList.add(new Document("recordStatus", new Document("$eq", item))); + dList.add(new Document("no", new Document("$in", noString))); setTag(params, dList); Document filter = new Document("$and", dList); // 鏋勫缓鑱氬悎绠¢亾 @@ -1435,8 +1457,9 @@ double finalRecordingMinTime = getSySMinTime(); List<Document> documentList = new ArrayList<>(2); + documentList.add(new Document("no", new Document("$in", noString))); setTag(params, documentList); - Document recording = new Document("recordDuration",new Document("$gte", finalRecordingMinTime)); + Document recording = new Document("missDuration",new Document("$lte", finalRecordingMinTime)); documentList.add(recording); Document filter = new Document("$and", documentList); @@ -1448,25 +1471,13 @@ new Document("$count", "uniqueDeviceIds") ); AggregateIterable<Document> result = collection2.aggregate(pipeline); + + Integer uniqueDeviceIdCount = 0; for (Document doc : result) { uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� } - log.error("褰曞儚鍙敤鐜囨墦鍗帮細{}",uniqueDeviceIdCount); -// List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) -// .select(CheckIndexVideo::getVideoAvailable) -// .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province) -// .eq(params.getDataType().equals(2), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Dept) -// .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(params.getStartTime()), DateUtils.getDayEnd(params.getEndTime())) -// .list(); -// BigDecimal onlineRate = BigDecimal.ZERO; -// if (CollectionUtils.isNotEmpty(videoList)) { -// BigDecimal sum = videoList.stream().map(CheckIndexVideo::getVideoAvailable).reduce(BigDecimal.ZERO, BigDecimal::add); -// BigDecimal count = BigDecimal.valueOf(videoList.size()); -// onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); -// } - //鍔犱竴涓�绘暟 int totalCount = 0; for (String s : resultCount) { totalCount += Integer.parseInt(s); @@ -1474,8 +1485,120 @@ resultCount.add(0, totalCount + ""); BigDecimal onlineRate = BigDecimal.ZERO; +// 1锛氬畬鏁� 0锛氶棿姝� -1锛氬紓甯� | + if (!StringUtils.isEmpty(resultCount.get(0)) && !"0".equals(resultCount.get(0))) { + //resultCount.get(0)鏄�绘暟 uniqueDeviceIdCount鏄洿鍏风郴缁熷弬鏁版煡璇㈠埌mongodb涓ぇ浜庣瓑浜� recordDuration瀛楁鐨勬�绘暟 + onlineRate = new BigDecimal(uniqueDeviceIdCount).divide(new BigDecimal(resultCount.get(0)), 3,RoundingMode.DOWN).multiply(new BigDecimal("100")); + } + System.out.println(resultCount); + System.out.println(onlineRate); + return onlineRate; + } + + + /** + * 瑙嗛锛氬綍鍍忓彲鐢ㄧ巼 + * + * @param params + * @return + */ + @Override + public Result videoAvailabilityRate(DataCenterQuery params) { + List<String> noString = tMonitorMapper.getIdListVideo(); + + List<String> likeFileds = Arrays.asList("deviceId", "deviceName"); + Query query = MongoUtil.getQuery(params, "createTime", likeFileds, null); + if (CollectionUtils.isNotEmpty(noString)) { // 闃叉绌洪泦鍚堝紓甯� + query.addCriteria(Criteria.where("no").in(noString)); + } + //涓嬫媺妗嗗綍鍍忔儏鍐垫煡璇㈡潯浠� + if (params.getOption() != null) { + query.addCriteria(Criteria.where("recordStatus").is(params.getOption())); + } + long total = mongoTemplate.count(query, RecordMetaDSumResult.class); + MongoUtil.setPage(query, params, "createTime"); + + List<RecordMetaDSumResult> resultList = mongoTemplate.find(query, RecordMetaDSumResult.class); + //鏌ヨ鍔ㄦ�佸垪鏁版嵁 + //鏌ヨ鍔ㄦ�佸垪鏁版嵁鏇村叿id鏌ヨ +// List<DynamicColumnVO> dynamicColumnNames = dynamicColumnMapper.getDynamicColumnByTableName("uy_record_meta_d_sum"); + //缈昏瘧琛屾斂鍖哄煙 + resultList.forEach(item -> { + String areaCode = item.getArealayername().substring(0, 6); + AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromCode(areaCode); + if (areaDeptEnum != null) item.setArealayername(areaDeptEnum.getName()); + + List<DynamicColumnVO> list = dynamicColumnMapper.getDynamicColumnByTable(TableNameConstants.COLUMN_NAME_VIDEO,item.getId()); + item.setDynamicColumnList(list); + + }); + // 缁熻鏁伴噺 + + MongoDatabase database = mongoTemplate.getDb(); + MongoCollection<Document> collection = database.getCollection("uy_record_meta_d_sum"); + List<Integer> status = Arrays.asList(1, 0, -1); + List<String> resultCount = status.stream().map(item -> { + List<Document> dList = new ArrayList<>(2); + + dList.add(new Document("recordStatus", new Document("$eq", item))); + dList.add(new Document("no", new Document("$in", noString))); + setTag(params, dList); + Document filter = new Document("$and", dList); + // 鏋勫缓鑱氬悎绠¢亾 + List<Document> pipeline = Arrays.asList( + new Document("$match", filter), + // $group 鍘婚噸 + new Document("$group", new Document("_id", "$deviceId")), + new Document("$count", "uniqueDeviceIds") + ); + // 鎵ц鑱氬悎鏌ヨ骞惰幏鍙栫粨鏋� + AggregateIterable<Document> result = collection.aggregate(pipeline); + Integer uniqueDeviceIdCount = 0; + for (Document doc : result) { + uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); + break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� + } + return uniqueDeviceIdCount + ""; + }).collect(Collectors.toList()); + + //璁$畻褰曞儚鍙敤鐜� + MongoDatabase databaes2 = mongoTemplate.getDb(); + MongoCollection<Document> collection2 = databaes2.getCollection("uy_record_meta_d_sum"); + + double finalRecordingMinTime = getSySMinTime(); + + List<Document> documentList = new ArrayList<>(2); + documentList.add(new Document("no", new Document("$in", noString))); + setTag(params, documentList); + Document recording = new Document("missDuration",new Document("$lte", finalRecordingMinTime)); + documentList.add(recording); + + Document filter = new Document("$and", documentList); + // 鏋勫缓鑱氬悎绠¢亾 + List<Document> pipeline = Arrays.asList( + new Document("$match", filter), + // $group 鍘婚噸 + new Document("$group", new Document("_id", "$deviceId")), + new Document("$count", "uniqueDeviceIds") + ); + AggregateIterable<Document> result = collection2.aggregate(pipeline); + + + Integer uniqueDeviceIdCount = 0; + for (Document doc : result) { + uniqueDeviceIdCount = doc.getInteger("uniqueDeviceIds"); + break; // 涓嶉渶瑕佺户缁亶鍘嗭紝鍥犱负 $count 鍙細浜х敓涓�涓粨鏋� + } + log.error("褰曞儚鍙敤鐜囨墦鍗帮細{}",uniqueDeviceIdCount); + int totalCount = 0; + for (String s : resultCount) { + totalCount += Integer.parseInt(s); + } + resultCount.add(0, totalCount + ""); + + BigDecimal onlineRate = BigDecimal.ZERO; // 1锛氬畬鏁� 0锛氶棿姝� -1锛氬紓甯� | if (!StringUtils.isEmpty(resultCount.get(0)) && !"0".equals(resultCount.get(0))) { //resultCount.get(0)鏄�绘暟 uniqueDeviceIdCount鏄洿鍏风郴缁熷弬鏁版煡璇㈠埌mongodb涓ぇ浜庣瓑浜� recordDuration瀛楁鐨勬�绘暟 @@ -1548,7 +1671,7 @@ List<Document> documentList = new ArrayList<>(4); documentList.add(new Document("deptTag", new Document("$eq", Boolean.TRUE))); setTag(params, documentList); - Document recording = new Document("recordDuration",new Document("$gte", finalRecordingMinTime)); + Document recording = new Document("missDuration",new Document("$lte", finalRecordingMinTime)); documentList.add(recording); Document filter = new Document("$and", documentList); // 鏋勫缓鑱氬悎绠¢亾 @@ -1655,7 +1778,7 @@ List<Document> documentList = new ArrayList<>(4); documentList.add(new Document("importantTag", new Document("$eq", Boolean.TRUE))); setTag(params, documentList); - Document recording = new Document("recordDuration",new Document("$gte", finalRecordingMinTime)); + Document recording = new Document("missDuration",new Document("$lte", finalRecordingMinTime)); documentList.add(recording); Document filter = new Document("$and", documentList); // 鏋勫缓鑱氬悎绠¢亾 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 1e2e4d6..e031afe 100644 --- a/ycl-server/src/main/java/com/ycl/task/UYTask.java +++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java @@ -3,7 +3,6 @@ import com.alibaba.fastjson2.JSONObject; import com.mongodb.client.result.DeleteResult; import com.ycl.feign.UYClient; -import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.param.UY.ImageDetectionParam; import com.ycl.platform.domain.param.UY.MonitorQualifyParam; @@ -28,9 +27,6 @@ import com.ycl.utils.DateUtils; import constant.ApiConstants; import constant.CheckConstants; -import constant.RedisConstant; -import enumeration.ErrorType; -import enumeration.general.WorkOrderStatusEnum; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -46,6 +42,7 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicReference; import java.util.function.Function; import java.util.stream.Collectors; @@ -422,6 +419,7 @@ param.setStatTime(yesterday); JSONObject jsonObject = uyClient.recordMetaDSumList(param); double minTime = getSySMinTime(); + AtomicReference<Integer> count = new AtomicReference<>(0); if (jsonObject != null) { if (ApiConstants.UYSuccessCodeStr.equals(jsonObject.getString("code"))) { List<RecordMetaDSumResult> records = jsonObject.getList("data", RecordMetaDSumResult.class); @@ -434,9 +432,13 @@ if (Objects.nonNull(item.getDeviceId())) { item.setNo(item.getDeviceId()); } + //鍒ゆ柇 骞朵慨鏀瑰綍鍍忕己灏戠姸鎬� if (item.getRecordStatus() != -1){ + + count.getAndSet(count.get() + 1); if (item.getMissDuration() > minTime){ + log.error("鏀瑰彉鏁版嵁status{}锛�",item.getRecordStatus()); item.setRecordStatus(0); }else if (item.getMissDuration() < minTime){ item.setRecordStatus(1); @@ -445,7 +447,9 @@ }); //鎵撴爣绛� pointService.setDeviceTagByGB(records,CheckConstants.Rule_Category_Video); + log.error("鍙戠敓鐘舵�佹敼鍙樻暟閲�:{}",count); //瀛樻斁鍦╩ongo涓� + log.error("鏂板mongodb鏁版嵁澶у皬锛歿}",records.size()); mongoTemplate.insertAll(records); // // 宸ュ崟鐢熸垚 // uyErrorTypeCheckService.recordMetaDSumCheck(records); diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml index 244d095..946e9e9 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml @@ -417,6 +417,18 @@ ${params.dataScope} </where> </select> + <select id="getAllVideo" resultType="java.lang.Long"> + SELECT + IFNULL(SUM(IF((m.camera_fun_type like '%1%'), 1, 0)), 0) AS video + FROM t_monitor m + left join t_yw_point p on m.serial_number = p.serial_number + </select> + + <select id="getIdListVideo" resultType="java.lang.String"> + select m.serial_number + FROM t_monitor m where m.camera_fun_type like '%1%' + </select> + <select id="assetManagementCount" resultType="java.util.Map"> SELECT count(*) AS total, IFNULL(SUM(IF((m.camera_fun_type like '%1%'), 1, 0)), 0) AS video, -- Gitblit v1.8.0