wisdomisite-java/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java
2024-04-02 18:26:22 +08:00

233 lines
7.2 KiB
Java

package com.zhgd.xmgl.async;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhgd.xmgl.call.HikvisionCall;
import com.zhgd.xmgl.modules.car.entity.CarInfo;
import com.zhgd.xmgl.modules.project.entity.Project;
import com.zhgd.xmgl.modules.project.entity.ProjectVideoConfig;
import com.zhgd.xmgl.modules.video.entity.ProjectVideoHkVqd;
import com.zhgd.xmgl.modules.video.entity.VideoItem;
import com.zhgd.xmgl.modules.video.mapper.ProjectVideoHkVqdMapper;
import com.zhgd.xmgl.modules.video.mapper.VideoItemMapper;
import com.zhgd.xmgl.modules.worker.entity.DepartmentInfo;
import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo;
import com.zhgd.xmgl.modules.worker.entity.TeamInfo;
import com.zhgd.xmgl.modules.worker.entity.WorkerInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Component
public class AsyncHikvision {
@Autowired
@Lazy
HikvisionCall hikvisionCall;
@Autowired
VideoItemMapper videoItemMapper;
@Autowired
ProjectVideoHkVqdMapper projectVideoHkVqdMapper;
/**
* 添加劳务人员-海康
*
* @param workerInfo
*/
@Async
public void addWorkerForHikvision(WorkerInfo workerInfo) {
try {
hikvisionCall.addWorkerForHikvision(workerInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editWorkerForHikvision(WorkerInfo workerInfo) {
try {
hikvisionCall.editWorkerForHikvision(workerInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void deleteWorkerForHikvision(WorkerInfo workerInfo) {
try {
hikvisionCall.deleteWorkerForHikvision(workerInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void addCarInfoForHikvision(CarInfo carInfo) {
try {
hikvisionCall.addCarInfoFromHttp(carInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editCarInfoForHikvision(CarInfo carInfo) {
try {
hikvisionCall.editCarInfoForHikvision(carInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void deleteCarInfoForHikvision(CarInfo carInfo) {
try {
hikvisionCall.deleteCarInfoForHikvision(carInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void addEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) {
try {
hikvisionCall.addEnterpriseInfoForHikvision(enterpriseInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) {
try {
hikvisionCall.editEnterpriseInfoForHikvision(enterpriseInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void deleteEnterpriseInfoForHikvision(String enterpriseInfo, String projectSn) {
try {
hikvisionCall.deleteEnterpriseInfoForHikvision(enterpriseInfo, projectSn);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editTeamInfoForHikvision(TeamInfo teamInfo) {
try {
hikvisionCall.editTeamInfoForHikvision(teamInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void deleteTeamInfoForHikvision(TeamInfo teamInfo) {
try {
hikvisionCall.deleteTeamInfoForHikvision(teamInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void addTeamInfoForHikvision(TeamInfo teamInfo) {
try {
hikvisionCall.addTeamInfoForHikvision(teamInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editDepartmentInfoForHikvision(DepartmentInfo teamInfo) {
try {
hikvisionCall.editDepartmentInfoForHikvision(teamInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void addDepartmentInfoForHikvision(DepartmentInfo teamInfo) {
try {
hikvisionCall.addDepartmentInfoForHikvision(teamInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void deleteDepartmentInfoForHikvision(DepartmentInfo teamInfo) {
try {
hikvisionCall.deleteDepartmentInfoForHikvision(teamInfo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Async
public void editProjectForHikvision(Project project) {
try {
hikvisionCall.editProjectForHikvision(project);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 添加视频质量诊断结果
*
* @param projectVideoConfig
*/
@Async
public void addVqdForHikvision(ProjectVideoConfig projectVideoConfig) {
try {
List<VideoItem> videoItems = videoItemMapper.selectList(new LambdaQueryWrapper<VideoItem>()
.eq(VideoItem::getVideoId, projectVideoConfig.getId()));
ArrayList<String> indexCodes = new ArrayList<>();
for (int i = 0; i < videoItems.size(); i++) {
VideoItem videoItem = videoItems.get(i);
indexCodes.add(videoItem.getSerialNumber());
if ((i + 1) % 20 == 0) {
//20一次发生http请求
JSONObject requestParam = new JSONObject();
requestParam.put("pageNo", 1);
requestParam.put("pageSize", 20);
requestParam.put("indexCodes", indexCodes);
JSONObject jo = hikvisionCall.getVqdForHikvision(projectVideoConfig, requestParam);
if (jo != null) {
//插入结果
JSONArray listJa = jo.getJSONArray("list");
if (CollUtil.isEmpty(listJa)) {
continue;
}
for (int j = 0; j < listJa.size(); j++) {
JSONObject lJo = listJa.getJSONObject(j);
ProjectVideoHkVqd vqd = new ProjectVideoHkVqd();
BeanUtil.copyProperties(lJo, vqd);
vqd.setProjectSn(projectVideoConfig.getProjectSn());
projectVideoHkVqdMapper.insert(vqd);
}
}
} else if (i == videoItems.size() - 1) {
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}