xiangpei
2024-08-16 3dd63e0590245a1b711b670c64342e1f41f00284
Merge remote-tracking branch 'origin/master'
4个文件已修改
3个文件已添加
136 ■■■■ 已修改文件
ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/PyOsdParam.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/feign/PythonClient.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/PythonTask.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/application-dev.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/resources/application-prod.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-pojo/src/main/java/com/ycl/platform/domain/param/UY/PyOsdParam.java
New file
@@ -0,0 +1,15 @@
package com.ycl.platform.domain.param.UY;
import lombok.Data;
import java.util.List;
@Data
public class PyOsdParam {
    /**
     * 国标码
     */
    private List<String> deviceNoList;
    private String Date;
}
ycl-server/src/main/java/com/ycl/calculate/IndexCalculationServe.java
@@ -180,7 +180,7 @@
        List<YwPoint> commandImages = pointMapper.selectByTag(null, null, Boolean.TRUE);
        return CollectionUtils.isEmpty(commandImages) ? new ArrayList<>() : commandImages.stream().map(YwPoint::getSerialNumber).collect(Collectors.toList());
    }
    //返回重点指挥图像集合
    //返回monitor
    public List<String> getMonitorFromMongo() {
        // 获取Calendar实例,默认使用当前时区和语言环境
        Calendar calendar = Calendar.getInstance();
ycl-server/src/main/java/com/ycl/feign/PythonClient.java
New file
@@ -0,0 +1,21 @@
package com.ycl.feign;
import com.alibaba.fastjson2.JSONObject;
import com.ycl.platform.domain.param.UY.PyOsdParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@Component
@FeignClient(name = "PythonClient", url = "${request.pythonDomain}")
public interface PythonClient {
    /**
     * OSD标注
     *
     * @return 查询摄像机OSD标注
     */
    @PostMapping("/")
    JSONObject pythonOsd(@RequestBody PyOsdParam param);
}
ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java
@@ -1,7 +1,6 @@
package com.ycl.platform.controller;
import com.ycl.platform.domain.query.DataCenterQuery;
import com.ycl.platform.domain.query.PlatformOnlineQuery;
import com.ycl.platform.service.DataCenterService;
import com.ycl.platform.service.PlatformOnlineService;
import com.ycl.system.Result;
@@ -172,9 +171,6 @@
    }
    /**
     * 车辆:视图库对接稳定性
     *
@@ -286,13 +282,6 @@
    }
    /**
     * 人脸:视图库对接稳定性
     *
@@ -301,7 +290,7 @@
     */
    @GetMapping("/faceViewDockStable")
    public Result faceViewDockStable(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.faceViewDockStable(query));
        return (dataCenterService.faceViewDockStable(query));
    }
    /**
@@ -312,7 +301,7 @@
     */
    @GetMapping("/facePointOnlineRate")
    public Result facePointOnlineRate(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.facePointOnlineRate(query));
        return (dataCenterService.facePointOnlineRate(query));
    }
    /**
@@ -323,7 +312,7 @@
     */
    @GetMapping("/faceDirectoryConsistency")
    public Result faceDirectoryConsistency(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.faceDirectoryConsistency(query));
        return (dataCenterService.faceDirectoryConsistency(query));
    }
    /**
@@ -334,7 +323,7 @@
     */
    @GetMapping("/faceCollectionConsistency")
    public Result faceCollectionConsistency(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.faceCollectionConsistency(query));
        return (dataCenterService.faceCollectionConsistency(query));
    }
    /**
@@ -345,7 +334,7 @@
     */
    @GetMapping("/faceImgQualification")
    public Result faceImgQualification(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.faceImgQualification(query));
        return (dataCenterService.faceImgQualification(query));
    }
    /**
@@ -356,7 +345,7 @@
     */
    @GetMapping("/faceCapturesImagesAccuracy")
    public Result faceCapturesImagesAccuracy(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.faceCapturesImagesAccuracy(query));
        return (dataCenterService.faceCapturesImagesAccuracy(query));
    }
    /**
@@ -367,7 +356,7 @@
     */
    @GetMapping("/faceTimelyUpload")
    public Result faceTimelyUpload(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.faceTimelyUpload(query));
        return (dataCenterService.faceTimelyUpload(query));
    }
    /**
@@ -378,6 +367,6 @@
     */
    @GetMapping("/faceAvailabilityOfLargeImg")
    public Result faceAvailabilityOfLargeImg(DataCenterQuery query) {
        return Result.ok().data(dataCenterService.faceAvailabilityOfLargeImg(query));
        return (dataCenterService.faceAvailabilityOfLargeImg(query));
    }
}
ycl-server/src/main/java/com/ycl/task/PythonTask.java
New file
@@ -0,0 +1,69 @@
package com.ycl.task;
import com.alibaba.fastjson2.JSONObject;
import com.mongodb.client.result.DeleteResult;
import com.ycl.feign.PythonClient;
import com.ycl.feign.UYClient;
import com.ycl.platform.domain.param.UY.*;
import com.ycl.platform.domain.result.UY.*;
import com.ycl.platform.service.ITMonitorService;
import com.ycl.platform.service.IYwThresholdService;
import com.ycl.utils.DateUtils;
import constant.ApiConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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 org.springframework.util.CollectionUtils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
 * python对接任务
 * 拿去osd标注、标注时间数据
 */
@Slf4j
@Component("PythonTask")
public class PythonTask {
    @Autowired
    private MongoTemplate mongoTemplate;
    @Autowired
    private PythonClient pythonClient;
    public void pythonOsdTask(){
        log.info("开始执行pythonOsd数据同步");
        PyOsdParam pyOsdParam = new PyOsdParam();
        pyOsdParam.setDate(DateUtils.getDate());
        Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
        List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
        if(!CollectionUtils.isEmpty(oneMachineFileResults)) {
            List<String> deviceIdList = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList());
            pyOsdParam.setDeviceNoList(deviceIdList);
            //查询osd标注和时间信息
            JSONObject jsonObject = pythonClient.pythonOsd(pyOsdParam);
            if (jsonObject != null) {
                if (ApiConstants.UYSuccessCode.equals(jsonObject.getInteger("code"))) {
                    List<PyOsdResult> records = jsonObject.getList("data", PyOsdResult.class);
                    if (!CollectionUtils.isEmpty(records)) {
                        //如果今天存在之前的数据先删除
                        Query pyQuery = new Query(Criteria
                                .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                        DeleteResult result = mongoTemplate.remove(pyQuery, PyOsdResult.class);
                        //存放在mongo中
                        mongoTemplate.insertAll(records);
                    }
                } else {
                    log.error("pythonOsd数据为空{}", jsonObject);
                }
            }
            log.info("结束执行pythonOsd数据同步");
        }
    }
}
ycl-server/src/main/resources/application-dev.yml
@@ -130,6 +130,7 @@
  retry: 4 # 最大重试次数
  youYunDomain: http://51.92.65.56 # 优云地址
  haiKangDomain: 51.92.65.48 # 海康地址
  pythonDomain: 11 # python脚本地址
youYun:
  tenantId: e10adc3949ba59abbe56e057f20f88dd
ycl-server/src/main/resources/application-prod.yml
@@ -130,6 +130,7 @@
  retry: 4 # 最大重试次数
  youYunDomain: http://51.92.65.56 # 优云地址
  haiKangDomain: 51.92.65.48 # 海康地址
  pythonDomain: 11 # python脚本地址
youYun:
  tenantId: e10adc3949ba59abbe56e057f20f88dd