‘liusuyi’
2023-09-25 e71d3d823093bafe0283a57aa640928709d09434
src/main/java/com/ard/alarm/camera/service/impl/ArdCamerasServiceImpl.java
@@ -12,6 +12,8 @@
import com.ard.alarm.external.domain.ArdEquipExternal;
import com.ard.alarm.external.mapper.ArdEquipExternalMapper;
import com.ard.utils.hiksdk.service.impl.HikClientUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
@@ -34,34 +36,31 @@
    private final static ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    public static List<ArdCameras> ardCameraList = new ArrayList<>();
    @Resource
    private ArdCamerasMapper ardCamerasMapper;
    //初始化执行
    @Override
    public void run(ApplicationArguments args) {
        //加载sdk库
        HikClientUtil.loadHCNetSDKLib();
        //获取小光电尝试登录
        ArdCameras ardCamera=new ArdCameras();
        ardCamera.setGdtype("0");
        ardCameraList = ardCamerasMapper.selectArdCamerasList(ardCamera);
        ardCameraList = selectArdCamerasList(new ArdCameras());
        HikClientUtil.loginAllCamera(ardCameraList);
        syncTask();
        syncCameraListTask();
    }
    /**
     * 同步任务
     * 同步相机列表任务
     * 实时获取在线的小光电
     * 刘苏义
     * 2023/8/11 9:09:27
     */
    private void syncTask() {
    private void syncCameraListTask() {
        scheduler.scheduleAtFixedRate(() -> {
            try {
                //region 定时同步小光电
                ArdCameras ardCamera=new ArdCameras();
                ardCamera.setGdtype("0");
                List<ArdCameras> newArdCameraList = ardCamerasMapper.selectArdCamerasList(ardCamera);
                List<ArdCameras> newArdCameraList = selectArdCamerasList(new ArdCameras());
                //需要更新的数据
                List<ArdCameras> updateList = sameListWithDifferent(ardCameraList, newArdCameraList);
                if (updateList.size() > 0) {
@@ -94,25 +93,16 @@
    }
    /**
     * 查询相机设备
     *
     * @param id 相机设备主键
     * @return 相机设备
     */
    @Override
    public ArdCameras selectArdCamerasById(String id) {
        return ardCamerasMapper.selectArdCamerasById(id);
    }
    /**
     * 查询相机设备列表
     *
     * @param ardCameras 相机设备
     * @param ardCamera 相机设备
     * @return 相机设备
     */
    @Override
    public List<ArdCameras> selectArdCamerasList(ArdCameras ardCameras) {
        return ardCamerasMapper.selectArdCamerasList(ardCameras);
    public List<ArdCameras> selectArdCamerasList(ArdCameras ardCamera) {
        ardCamera.setGdType("0");
        Wrapper<ArdCameras> queryWrapper=new QueryWrapper<>(ardCamera);
        return ardCamerasMapper.selectList(queryWrapper);
    }