zxl
114 分钟以前 3b0516a2959e25576e4f3fda697a3b025d06c8c9
ycl-server/src/main/java/com/ycl/task/OsdTask.java
@@ -2,10 +2,16 @@
import com.mongodb.client.result.DeleteResult;
import com.ycl.api.DH.lib.NetSDKLib;
import com.ycl.api.DH.lib.structure.NET_CFG_GBMODE_INFO;
import com.ycl.api.DH.lib.structure.NET_GBMODE_CUSTOMTITLE_INFO;
import com.ycl.api.DH.lib.structure.NET_TITLE_OSD_INFO;
import com.ycl.api.DH.module.LoginModule;
import com.ycl.api.DH.utils.DHApi;
import com.ycl.api.HK.HKApi;
import com.ycl.api.YS.YSApi;
import com.ycl.platform.domain.entity.TMonitor;
import com.ycl.platform.domain.result.BaseResult;
import com.ycl.platform.domain.result.OSDResult;
import com.ycl.platform.domain.result.UY.MonitorQualifyResult;
import com.ycl.platform.domain.result.UY.OsdCheckResult;
@@ -29,6 +35,9 @@
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -36,6 +45,8 @@
import java.util.concurrent.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.ycl.api.DH.lib.enumeration.NET_EM_CFG_OPERATE_TYPE.NET_EM_CFG_GBMODE;
@Slf4j
@Component("OsdTask")
@@ -60,6 +71,7 @@
    public String YSUserName;
    @Value("${YS.password}")
    public String YSPassword;
    /**
     * 通过查mongoDB每日一机一档数据获取设备ip
     * 筛选视频设备
@@ -86,7 +98,7 @@
        List<MonitorQualifyResult> oneMachineFileResults = mongoTemplate.find(query, MonitorQualifyResult.class);
        //需要考核的数据
        List<String> serialNumbers = oneMachineFileResults.stream().map(result -> result.getSerialNumber().getValue()).collect(Collectors.toList());
        if(!CollectionUtils.isEmpty(serialNumbers)) {
        if (!CollectionUtils.isEmpty(serialNumbers)) {
            ExecutorService executorService = new ThreadPoolExecutor(16,
                    128,
                    5000,
@@ -116,7 +128,7 @@
            List<OsdCheckResult> checkResults = new ArrayList<>();
            Map<String, TMonitor> monitorMap = monitors.stream().collect(Collectors.toMap(TMonitor::getSerialNumber, Function.identity()));
            for (OSDResult osdResult : osdResultList) {
                if(osdResult!=null) {
                if (osdResult != null) {
                    TMonitor monitor = monitorMap.get(osdResult.getSerialNumber());
                    //封装OsdCheckResult
                    OsdCheckResult osdCheckResult = getOsdCheckResult(osdResult, monitor);
@@ -131,8 +143,19 @@
                //如果今天存在之前的数据先删除
                Query pyQuery = new Query(Criteria
                        .where("mongoCreateTime").gte(DateUtils.getDayStart(new Date())).lt(DateUtils.getDayEnd(new Date())));
                List<OsdCheckResult> osdCheckResults = mongoTemplate.find(pyQuery, OsdCheckResult.class);
                pointService.setDeviceTagByGB(checkResults, CheckConstants.Rule_Category_Video);
                //添加旧数据进去
                List<String> resultNos = checkResults.stream().map(BaseResult::getNo).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(osdCheckResults)) {
                    for (OsdCheckResult mongoResult : osdCheckResults) {
                        //如果新的结果中没有旧数据那么加进去
                        if (!resultNos.contains(mongoResult.getNo())) {
                            checkResults.add(mongoResult);
                        }
                    }
                }
                DeleteResult result = mongoTemplate.remove(pyQuery, OsdCheckResult.class);
                pointService.setDeviceTagByGB(checkResults,CheckConstants.Rule_Category_Video);
                //存放在mongo中
                mongoTemplate.insertAll(checkResults);
                // 工单生成
@@ -170,7 +193,7 @@
            } else {
                osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Error);
            }
        }else {
        } else {
            osdCheckResult.setOsdTimeCorrect(ApiConstants.OSD_Unknown);
        }
        //检查通道名是否正确
@@ -181,7 +204,7 @@
            } else {
                osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Error);
            }
        }else {
        } else {
            osdCheckResult.setOsdNameCorrect(ApiConstants.OSD_Unknown);
        }
        //检查省是否正确
@@ -191,7 +214,7 @@
            } else {
                osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Error);
            }
        }else {
        } else {
            osdCheckResult.setOsdProvinceCorrect(ApiConstants.OSD_Unknown);
        }
        //检查市是否正确
@@ -201,7 +224,7 @@
            } else {
                osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Error);
            }
        }else {
        } else {
            osdCheckResult.setOsdCityCorrect(ApiConstants.OSD_Unknown);
        }
        //检查区县是否正确
@@ -212,10 +235,17 @@
            } else {
                osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Error);
            }
        }else {
        } else {
            osdCheckResult.setOsdPartCorrect(ApiConstants.OSD_Unknown);
        }
    }
    public void test() throws ExecutionException, InterruptedException {
        log.info("测试获取OSD");
        OSDResult osd3 = DHApi.getOsdOld("","51030340001320207201", "51.95.34.20", DHUserName, DHPassword);
        log.info("osd3:{}", osd3);
        OSDResult osd4 = DHApi.getOsdOld("","51030342001320173201", "51.95.33.174", DHUserName, DHPassword);
        log.info("osd4:{}", osd4);
    }
}