xiangpei
2024-09-30 e498e084b2ccc08afc7a7bf3a83e6eb462c1629b
ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -7,9 +7,11 @@
import com.ycl.platform.domain.entity.WorkOrder;
import com.ycl.platform.domain.entity.YwPoint;
import com.ycl.platform.domain.param.UY.*;
import com.ycl.platform.domain.result.SYS.TMonitorResult;
import com.ycl.platform.domain.result.UY.RecordMetaDSumResult;
import com.ycl.platform.domain.result.UY.*;
import com.ycl.platform.domain.vo.OnlineThreadVO;
import com.ycl.platform.domain.vo.TMonitorVO;
import com.ycl.platform.domain.vo.UpdateOnlineVO;
import com.ycl.platform.mapper.TMonitorMapper;
import com.ycl.platform.service.UYErrorTypeCheckService;
@@ -18,6 +20,7 @@
import com.ycl.system.domain.SysConfig;
import com.ycl.system.mapper.SysConfigMapper;
import com.ycl.thread.OnlineCheckThread;
import com.ycl.utils.CheckPointUtil;
import com.ycl.utils.DateUtils;
import com.ycl.utils.http.HttpUtils;
import com.ycl.utils.http.SelfHttpUtil;
@@ -55,11 +58,9 @@
    private final UYErrorTypeCheckService uyErrorTypeCheckService;
    private final YwPointService pointService;
    private final TMonitorMapper monitorMapper;
    private final SelfHttpUtil selfHttpUtil;
    private final RedisTemplate redisTemplate;
    private final WorkOrderService workOrderService;
    private final SysConfigMapper sysConfigMapper;
    private final CheckPointUtil checkPointUtil;
    @Value("${youYun.tenantId}")
    private String tenantId;
    @Value("${youYun.apikey}")
@@ -190,15 +191,15 @@
            log.error("请配置离线次数,此次设置为默认值2");
        }
        // 先查出设备IP集合
        List<TMonitor> monitorList = monitorMapper.getDistinctIP();
        List<Future<OnlineThreadVO>> futureList = new ArrayList<>(48);
        List<OnlineThreadVO> dataList = new ArrayList<>(48);
        for (TMonitor monitor : monitorList) {
            OnlineCheckThread thread = new OnlineCheckThread(monitor, redisTemplate, selfHttpUtil, times);
            Future<OnlineThreadVO> future = executorService.submit(thread);
        List<TMonitorResult> monitorList = monitorMapper.getDistinctIP();
        List<Future<TMonitorResult>> futureList = new ArrayList<>(48);
        List<TMonitorResult> dataList = new ArrayList<>(48);
        for (TMonitorResult monitor : monitorList) {
            OnlineCheckThread thread = new OnlineCheckThread(monitor,checkPointUtil,times);
            Future<TMonitorResult> future = executorService.submit(thread);
            futureList.add(future);
        }
        for (Future<OnlineThreadVO> future : futureList) {
        for (Future<TMonitorResult> future : futureList) {
            dataList.add(future.get()); // get方法会阻塞,知道拿到结果才继续执行for
        }
@@ -216,16 +217,25 @@
        // 工单
        List<WorkOrder> workOrderList = dataList.stream()
                .filter(item -> Objects.nonNull(item.getWorkOrder()))
                .map(OnlineThreadVO::getWorkOrder)
                .map(TMonitorResult::getWorkOrder)
                .collect(Collectors.toList());
        if (CollectionUtils.isEmpty(workOrderList)) {
            return;
        }
        workOrderService.innerAddWorkOrder(workOrderList);
        //存放到mongo
        if (!CollectionUtils.isEmpty(dataList)) {
            //如果存在之前的数据先删除
            Query query = new Query(Criteria.where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
            DeleteResult result = mongoTemplate.remove(query, TMonitorResult.class);
            //存放在mongo中
            mongoTemplate.insertAll(dataList);
            log.info("结束同步点位在线率到mongo");
        }
        log.info("点位在线监测完成");
    }
    //点位在线率
    //(弃用)点位在线率
    public void videoOnlineTask() {
        //视频图像质量
        log.info("开始执行点位在线数据同步");