| | |
| | | import com.ycl.platform.domain.result.HK.*; |
| | | import com.ycl.platform.domain.result.SYS.TMonitorResult; |
| | | import com.ycl.platform.domain.result.UY.*; |
| | | import com.ycl.platform.domain.vo.DataCenter.MonitorQualifyResultVO; |
| | | import com.ycl.platform.domain.vo.PointDetailVO; |
| | | import com.ycl.platform.mapper.ImageResourceSecurityDetailMapper; |
| | | import com.ycl.platform.mapper.YwPointMapper; |
| | |
| | | import com.ycl.system.page.PageUtil; |
| | | import com.ycl.utils.DateUtils; |
| | | import com.ycl.utils.MongoUtil; |
| | | import com.ycl.utils.bean.BeanUtils; |
| | | import constant.ApiConstants; |
| | | import constant.CheckConstants; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | @Override |
| | | public Result videoOneMachineDocumentRegister(DataCenterQuery params) { |
| | | List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue"); |
| | | Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); |
| | | |
| | | List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, TIME_FIELD, likeFileds, null); |
| | | Query query = new Query(); |
| | | Criteria and = new Criteria(); |
| | | if(params.getOption()!=null){ |
| | | if(params.getOption() ==1){ |
| | | andCriteria.add(Criteria.where("newDevice").is(Boolean.TRUE)); |
| | | }else if(params.getOption() ==-1){ |
| | | andCriteria.add(Criteria.where("newDevice").is(Boolean.FALSE)); |
| | | } |
| | | } |
| | | and.andOperator(andCriteria); |
| | | query = Query.query(and); |
| | | long total = mongoTemplate.count(query, MonitorQualifyResult.class); |
| | | MongoUtil.setPage(query, params, TIME_FIELD); |
| | | List<MonitorQualifyResult> resultList = mongoTemplate.find(query, MonitorQualifyResult.class); |
| | | |
| | | List<MonitorQualifyResultVO> resultVOS = new ArrayList<>(); |
| | | for (MonitorQualifyResult result : resultList) { |
| | | MonitorQualifyResultVO vo = MonitorQualifyResult.getVO(result); |
| | | resultVOS.add(vo); |
| | | } |
| | | // 统计数量 |
| | | MongoDatabase database = mongoTemplate.getDb(); |
| | | MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify"); |
| | | |
| | | //总数 |
| | | List<Document> dList1 = new ArrayList<>(2); |
| | | dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList1); |
| | | Document totalFilter = new Document("$and",dList1); |
| | | //新设备数 |
| | | List<Document> dList2 = new ArrayList<>(2); |
| | | dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList2); |
| | | List<Document> dList3 = new ArrayList<>(2); |
| | | dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList3); |
| | | List<Document> dList4 = new ArrayList<>(2); |
| | | dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList4); |
| | | Document ipErrFilter = new Document("$and", dList1); |
| | | Document macdzErrFilter = new Document("$and", dList2); |
| | | Document latitudeErrFilter = new Document("$and", dList3); |
| | | Document longitudeErrFilter = new Document("$and", dList4); |
| | | dList2.add(new Document("newDevice",Boolean.TRUE)); |
| | | Document newFilter = new Document("$and",dList2); |
| | | |
| | | List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); |
| | | List<Document> lists = Arrays.asList(totalFilter, newFilter); |
| | | List<String> rList = lists.stream().map(filter -> { |
| | | // 构建聚合管道 |
| | | List<Document> pipeline = Arrays.asList( |
| | |
| | | return uniqueDeviceIdCount + ""; |
| | | }).collect(Collectors.toList()); |
| | | |
| | | Date now = new Date(); |
| | | List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) |
| | | .select(CheckIndexVideo::getMonitorRegistration) |
| | | .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province) |
| | | .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) |
| | | .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)) { |
| | |
| | | rList.add(this.remove0(onlineRate)); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("count", rList); |
| | | map.put("list", resultList); |
| | | map.put("list", resultVOS); |
| | | return Result.ok().data(map).total(total); |
| | | } |
| | | |
| | |
| | | @Override |
| | | public Result videoOneMachineDocumentQualified(DataCenterQuery params) { |
| | | List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue"); |
| | | Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); |
| | | List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, TIME_FIELD, likeFileds, null); |
| | | Query query = new Query(); |
| | | Criteria and = new Criteria(); |
| | | and.andOperator(andCriteria); |
| | | query = Query.query(and); |
| | | if(params.getOption()!=null){ |
| | | if(params.getOption() ==1){ |
| | | andCriteria.add(Criteria.where("serialNumber.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("name.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("civilCode.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("integrated_device.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("jkdwlx.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("latitude.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("longitude.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("macdz.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("name.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("sbzt.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("sxjcjqy.error").is(Boolean.FALSE)); |
| | | andCriteria.add(Criteria.where("sxjgnlx.error").is(Boolean.FALSE)); |
| | | Criteria and2 = new Criteria(); |
| | | and2.andOperator(andCriteria); |
| | | query = Query.query(and2); |
| | | }else if(params.getOption() ==-1){ |
| | | Criteria c1 = Criteria.where("serialNumber.error").is(Boolean.TRUE); |
| | | Criteria c2 = Criteria.where("name.error").is(Boolean.TRUE); |
| | | Criteria c3 = Criteria.where("civilCode.error").is(Boolean.TRUE); |
| | | Criteria c4 = Criteria.where("integrated_device.error").is(Boolean.TRUE); |
| | | Criteria c5 = Criteria.where("jkdwlx.error").is(Boolean.TRUE); |
| | | Criteria c6 = Criteria.where("latitude.error").is(Boolean.TRUE); |
| | | Criteria c7 = Criteria.where("longitude.error").is(Boolean.TRUE); |
| | | Criteria c8 = Criteria.where("macdz.error").is(Boolean.TRUE); |
| | | Criteria c9 = Criteria.where("name.error").is(Boolean.TRUE); |
| | | Criteria c10 = Criteria.where("sbzt.error").is(Boolean.TRUE); |
| | | Criteria c11 = Criteria.where("sxjcjqy.error").is(Boolean.TRUE); |
| | | Criteria c12 = Criteria.where("sxjgnlx.error").is(Boolean.TRUE); |
| | | Criteria orOperator = new Criteria().orOperator(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12); |
| | | orOperator.andOperator(andCriteria); |
| | | query = Query.query(orOperator); |
| | | } |
| | | } |
| | | |
| | | long total = mongoTemplate.count(query, MonitorQualifyResult.class); |
| | | MongoUtil.setPage(query, params, TIME_FIELD); |
| | | List<MonitorQualifyResult> resultList = mongoTemplate.find(query, MonitorQualifyResult.class); |
| | | |
| | | List<MonitorQualifyResultVO> resultVOS = new ArrayList<>(); |
| | | for (MonitorQualifyResult result : resultList) { |
| | | MonitorQualifyResultVO vo = MonitorQualifyResult.getVO(result); |
| | | resultVOS.add(vo); |
| | | } |
| | | // 统计数量 |
| | | MongoDatabase database = mongoTemplate.getDb(); |
| | | MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify"); |
| | | |
| | | //总数 |
| | | List<Document> dList1 = new ArrayList<>(2); |
| | | dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList1); |
| | | Document totalFilter = new Document("$and",dList1); |
| | | //合格数 |
| | | List<Document> dList2 = new ArrayList<>(2); |
| | | dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList2); |
| | | List<Document> dList3 = new ArrayList<>(2); |
| | | dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList3); |
| | | List<Document> dList4 = new ArrayList<>(2); |
| | | dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList4); |
| | | Document ipErrFilter = new Document("$and", dList1); |
| | | Document macdzErrFilter = new Document("$and", dList2); |
| | | Document latitudeErrFilter = new Document("$and", dList3); |
| | | Document longitudeErrFilter = new Document("$and", dList4); |
| | | dList2.add(new Document("serialNumber.error",Boolean.FALSE)); |
| | | dList2.add(new Document("name.error",Boolean.FALSE)); |
| | | dList2.add(new Document("civilCode.error",Boolean.FALSE)); |
| | | dList2.add(new Document("integrated_device.error",Boolean.FALSE)); |
| | | dList2.add(new Document("jkdwlx.error",Boolean.FALSE)); |
| | | dList2.add(new Document("latitude.error",Boolean.FALSE)); |
| | | dList2.add(new Document("longitude.error",Boolean.FALSE)); |
| | | dList2.add(new Document("macdz.error",Boolean.FALSE)); |
| | | dList2.add(new Document("name.error",Boolean.FALSE)); |
| | | dList2.add(new Document("sbzt.error",Boolean.FALSE)); |
| | | dList2.add(new Document("sxjcjqy.error",Boolean.FALSE)); |
| | | dList2.add(new Document("sxjgnlx.error",Boolean.FALSE)); |
| | | setTag(params,dList2); |
| | | Document qualifyFilter = new Document("$and",dList2); |
| | | //不合格数 |
| | | Document mongoCreateTimeRange = new Document() |
| | | .append("$gte", params.getStartTime()) |
| | | .append("$lt", params.getEndTime()); |
| | | Document mongoCreateTime = new Document("mongoCreateTime", mongoCreateTimeRange); |
| | | List<Document> errorConditions = new ArrayList<>(); |
| | | errorConditions.add(new Document("serialNumber.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("name.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("civilCode.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("integrated_device.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("jkdwlx.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("name.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("sbzt.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("sxjcjqy.error", new Document("$eq", Boolean.TRUE))); |
| | | errorConditions.add(new Document("sxjgnlx.error", new Document("$eq", Boolean.TRUE))); |
| | | Document errorFilter = new Document("$or", errorConditions); |
| | | Document unQualifyFilter = new Document("$and", Arrays.asList(mongoCreateTime, errorFilter)); |
| | | |
| | | List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); |
| | | List<Document> lists = Arrays.asList(totalFilter, qualifyFilter, unQualifyFilter); |
| | | List<String> rList = lists.stream().map(filter -> { |
| | | // 构建聚合管道 |
| | | List<Document> pipeline = Arrays.asList( |
| | |
| | | return uniqueDeviceIdCount + ""; |
| | | }).collect(Collectors.toList()); |
| | | |
| | | Date now = new Date(); |
| | | List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) |
| | | .select(CheckIndexVideo::getMonitorQualification) |
| | | .eq(params.getDataType().equals(1), CheckIndexVideo::getExamineTag, CheckConstants.Examine_Tag_Province) |
| | | .between(CheckIndexVideo::getCreateTime, DateUtils.getDayStart(now), DateUtils.getDayEnd(now)) |
| | | .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)) { |
| | |
| | | rList.add(this.remove0(onlineRate)); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("count", rList); |
| | | map.put("list", resultList); |
| | | map.put("list", resultVOS); |
| | | return Result.ok().data(map).total(total); |
| | | } |
| | | |
| | | /** |
| | | * 视频:档案考核比 |
| | | * |
| | | * 档案留存总量:mongo存的所有去重后的档案 |
| | | * 当日档案:当日的档案 |
| | | * 档案考核比 = 当日档案/档案留存总量 |
| | | * @param params |
| | | * @return |
| | | * @return1 |
| | | */ |
| | | @Override |
| | | public Result videoAssessmentFileRatio(DataCenterQuery params) { |
| | | List<String> likeFileds = Arrays.asList("ip.showValue", "name.showValue", "serialNumber.showValue"); |
| | | Query query = MongoUtil.getQuery(params, TIME_FIELD, likeFileds, null); |
| | | |
| | | List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, TIME_FIELD, likeFileds, null); |
| | | Query query = new Query(); |
| | | Criteria and = new Criteria(); |
| | | and.andOperator(andCriteria); |
| | | query = Query.query(and); |
| | | long total = mongoTemplate.count(query, MonitorQualifyResult.class); |
| | | MongoUtil.setPage(query, params, TIME_FIELD); |
| | | List<MonitorQualifyResult> resultList = mongoTemplate.find(query, MonitorQualifyResult.class); |
| | | |
| | | List<MonitorQualifyResultVO> resultVOS = new ArrayList<>(); |
| | | for (MonitorQualifyResult result : resultList) { |
| | | MonitorQualifyResultVO vo = MonitorQualifyResult.getVO(result); |
| | | resultVOS.add(vo); |
| | | } |
| | | // 统计数量 |
| | | MongoDatabase database = mongoTemplate.getDb(); |
| | | MongoCollection<Document> collection = database.getCollection("uy_monitor_qualify"); |
| | | |
| | | //总数 |
| | | List<Document> dList1 = new ArrayList<>(2); |
| | | dList1.add(new Document("ip.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList1); |
| | | DataCenterQuery totalParams = new DataCenterQuery(); |
| | | BeanUtils.copyProperties(params,totalParams); |
| | | totalParams.setStartTime(null); |
| | | setTag(totalParams, dList1); |
| | | Document totalFilter = new Document("$and",dList1); |
| | | //当日档案数 |
| | | List<Document> dList2 = new ArrayList<>(2); |
| | | dList2.add(new Document("macdz.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList2); |
| | | List<Document> dList3 = new ArrayList<>(2); |
| | | dList3.add(new Document("latitude.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList3); |
| | | List<Document> dList4 = new ArrayList<>(2); |
| | | dList4.add(new Document("longitude.error", new Document("$eq", Boolean.TRUE))); |
| | | setTag(params, dList4); |
| | | Document ipErrFilter = new Document("$and", dList1); |
| | | Document macdzErrFilter = new Document("$and", dList2); |
| | | Document latitudeErrFilter = new Document("$and", dList3); |
| | | Document longitudeErrFilter = new Document("$and", dList4); |
| | | Document newFilter = new Document("$and",dList2); |
| | | |
| | | List<Document> lists = Arrays.asList(ipErrFilter, macdzErrFilter, latitudeErrFilter, longitudeErrFilter); |
| | | List<Document> lists = Arrays.asList(totalFilter, newFilter); |
| | | List<String> rList = lists.stream().map(filter -> { |
| | | // 构建聚合管道 |
| | | List<Document> pipeline = Arrays.asList( |
| | |
| | | return uniqueDeviceIdCount + ""; |
| | | }).collect(Collectors.toList()); |
| | | |
| | | rList.add("0%"); |
| | | List<CheckIndexVideo> videoList = new LambdaQueryChainWrapper<>(checkIndexVideoService.getBaseMapper()) |
| | | .select(CheckIndexVideo::getArchivesRate) |
| | | .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::getArchivesRate).reduce(BigDecimal.ZERO, BigDecimal::add); |
| | | BigDecimal count = BigDecimal.valueOf(videoList.size()); |
| | | onlineRate = sum.divide(count, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); |
| | | } |
| | | rList.add(this.remove0(onlineRate)); |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("count", rList); |
| | | map.put("list", resultList); |
| | | map.put("list", resultVOS); |
| | | return Result.ok().data(map).total(total); |
| | | } |
| | | |
| | |
| | | List<String> likeFileds = Arrays.asList("deviceNo", "osdName"); |
| | | List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, "checkTime", likeFileds, 3); |
| | | Query query = new Query(); |
| | | Criteria and = new Criteria(); |
| | | and.andOperator(andCriteria); |
| | | query = Query.query(and); |
| | | //下拉框标注正确查询条件 |
| | | if (params.getOption() != null) { |
| | | if(params.getOption()==1) { |
| | |
| | | andCriteria.add(Criteria.where("osdProvinceCorrect").is(1)); |
| | | andCriteria.add(Criteria.where("osdCityCorrect").is(1)); |
| | | andCriteria.add(Criteria.where("osdPartCorrect").is(1)); |
| | | Criteria and = new Criteria(); |
| | | and.andOperator(andCriteria); |
| | | query = Query.query(and); |
| | | Criteria and2 = new Criteria(); |
| | | and2.andOperator(andCriteria); |
| | | query = Query.query(and2); |
| | | }else if(params.getOption()==-1){ |
| | | // 使用$or条件连接多个字段检查,每个字段检查是否等于-1 |
| | | Criteria c1 = Criteria.where("osdNameCorrect").is(-1); |
| | |
| | | } else if (params.getDataType().equals(2)) { |
| | | dList.add(new Document("deptTag", new Document("$eq", Boolean.TRUE))); |
| | | } |
| | | Document mongoCreateTimeRange = new Document() |
| | | .append("$gte", params.getStartTime()) |
| | | .append("$lt", params.getEndTime()); |
| | | Document mongoCreateTimeRange = new Document(); |
| | | if (params.getStartTime()!=null) mongoCreateTimeRange.append("$gte", params.getStartTime()); |
| | | if (params.getEndTime()!=null) mongoCreateTimeRange .append("$lt", params.getEndTime()); |
| | | dList.add(new Document("mongoCreateTime", mongoCreateTimeRange)); |
| | | } |
| | | } |