ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java
@@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.base.AbsQuery; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import utils.DateUtils; import java.util.Date; @@ -18,6 +19,7 @@ @Data public class DataCenterQuery extends AbsQuery { @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date date; /** 开始时间 */ ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java
@@ -1,5 +1,6 @@ package com.ycl.platform.domain.result.UY; import annotation.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.domain.result.BaseResult; import constant.ApiConstants; @@ -23,6 +24,7 @@ /** * 国标码 */ @Excel(name = "设备编码",sort = 1) private String deviceNo; /** @@ -33,6 +35,7 @@ /** * 摄像机品牌0/1/2 海康/大华/宇视 */ @Excel(name = "设备品牌",sort = 2) private String deviceBrandStr; /** * 设备类型 @@ -42,48 +45,57 @@ /** * ip */ @Excel(name = "IP",sort = 3) private String ip; /** * 检测时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "检测时间",dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 10) private Date checkTime; /** * 标注时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "OSD标注时间",dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 9) private Date setTime; /** * osd通道名 */ @Excel(name = "通道名称",sort = 4) private String osdName; /** * osd省 */ @Excel(name = "OSD省",sort = 5) private String osdProvince; /** * osd市 */ @Excel(name = "OSD市",sort = 6) private String osdCity; /** * osd区 */ @Excel(name = "OSD区",sort = 7) private String osdPart; /** * osd左下角 */ @Excel(name = "OSD左下角",sort = 8) private String osdLB; /** * osdTimeCorrect时间是否正确 */ @Excel(name = "时间是否正确",sort = 16, readConverterExp = "0=未知,1=正确,-1=错误") private Integer osdTimeCorrect; /** @@ -94,6 +106,7 @@ /** * osd通道名是否正确 1正确 0未知 -1错 */ @Excel(name = "通道名是否正确",sort = 11, readConverterExp = "0=未知,1=正确,-1=错误") private Integer osdNameCorrect; /** @@ -104,6 +117,7 @@ /** * osd省是否正确 */ @Excel(name = "OSD省是否正确",sort = 12, readConverterExp = "0=未知,1=正确,-1=错误") private Integer osdProvinceCorrect; /** @@ -114,6 +128,7 @@ /** * osd市是否正确 */ @Excel(name = "OSD市是否正确",sort = 13, readConverterExp = "0=未知,1=正确,-1=错误") private Integer osdCityCorrect; /** @@ -124,6 +139,7 @@ /** * osd区是否正确 */ @Excel(name = "OSD区是否正确",sort = 14, readConverterExp = "0=未知,1=正确,-1=错误") private Integer osdPartCorrect; /** @@ -133,6 +149,7 @@ /** * osd左下角是否正确 */ @Excel(name = "OSD左下是否正确",sort = 15, readConverterExp = "0=未知,1=正确,-1=错误") private Integer osdLbCorrect; ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java
@@ -6,6 +6,7 @@ import com.ycl.platform.service.PlatformOnlineService; import com.ycl.system.Result; import io.swagger.annotations.ApiOperation; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -160,7 +161,17 @@ query.setTime(); return dataCenterService.videoImportantPointLabelingAccuracy(query); } /** * 视频:导出重点点位标注正确率 * * @param query * @return */ @PostMapping("/videoImportantPointLabelingAccuracy/export") public void videoImportantPointLabelingAccuracyExport(HttpServletResponse response,DataCenterQuery query) { query.setTime(); dataCenterService.videoImportantPointLabelingAccuracyExport(response,query); } /** * 视频:校时正确率 (新规则已经弃用) * ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java
@@ -6,6 +6,7 @@ import com.ycl.platform.domain.result.UY.OneMachineFileResult; import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; import com.ycl.system.Result; import jakarta.servlet.http.HttpServletResponse; import java.util.List; @@ -97,6 +98,7 @@ * @return */ Result videoImportantPointLabelingAccuracy(DataCenterQuery query); void videoImportantPointLabelingAccuracyExport(HttpServletResponse response,DataCenterQuery query); /** * 视频:校时正确率 ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -9,6 +9,7 @@ import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.ycl.platform.domain.entity.*; import com.ycl.platform.domain.excel.TMonitorExp; import com.ycl.platform.domain.query.DataCenterQuery; import com.ycl.platform.domain.result.HK.*; import com.ycl.platform.domain.result.SYS.TMonitorResult; @@ -26,9 +27,11 @@ import com.ycl.utils.DateUtils; import com.ycl.utils.MongoUtil; import com.ycl.utils.bean.BeanUtils; import com.ycl.utils.poi.ExcelUtil; import constant.ApiConstants; import constant.CheckConstants; import enumeration.general.AreaDeptEnum; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.apache.commons.collections.CollectionUtils; import org.bson.Document; @@ -1148,6 +1151,56 @@ return Result.ok().data(map).total(total); } @Override public void videoImportantPointLabelingAccuracyExport(HttpServletResponse response, DataCenterQuery params) { List<String> likeFileds = Arrays.asList("deviceNo", "osdName"); List<Criteria> andCriteria = MongoUtil.getAndCriteria(params, "checkTime", 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("osdNameCorrect").is(1)); andCriteria.add(Criteria.where("osdTimeCorrect").is(1)); andCriteria.add(Criteria.where("osdProvinceCorrect").is(1)); andCriteria.add(Criteria.where("osdCityCorrect").is(1)); andCriteria.add(Criteria.where("osdPartCorrect").is(1)); 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); Criteria c2 = Criteria.where("osdTimeCorrect").is(-1); Criteria c3 = Criteria.where("osdProvinceCorrect").is(-1); Criteria c4 = Criteria.where("osdCityCorrect").is(-1); Criteria c5 = Criteria.where("osdPartCorrect").is(-1); Criteria orOperator = new Criteria().orOperator(c1, c2, c3, c4, c5); orOperator.andOperator(andCriteria); query = Query.query(orOperator); }else { Criteria c1 = Criteria.where("osdNameCorrect").is(0); Criteria c2 = Criteria.where("osdTimeCorrect").is(0); Criteria c3 = Criteria.where("osdProvinceCorrect").is(0); Criteria c4 = Criteria.where("osdCityCorrect").is(0); Criteria c5 = Criteria.where("osdPartCorrect").is(0); Criteria orOperator = new Criteria().orOperator(c1, c2, c3, c4, c5); orOperator.andOperator(andCriteria); query = Query.query(orOperator); } } List<OsdCheckResult> resultList = mongoTemplate.find(query, OsdCheckResult.class); for (OsdCheckResult osdCheckResult : resultList) { OsdCheckResult.getError(osdCheckResult); } ExcelUtil<OsdCheckResult> util = new ExcelUtil<>(OsdCheckResult.class); String sheetName = "OSD标注"; util.exportExcel(response, resultList, sheetName); } /** * 视频:校时正确率 *