fuliqi
2025-01-08 6451d61e4438c93d78b5fb187afd7bc538f2af44
OSD导出
5个文件已修改
87 ■■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/result/UY/OsdCheckResult.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/DataCenterService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
    /**
     * 视频:校时正确率
     *