调用海康bug修改
This commit is contained in:
parent
a0445656e8
commit
b0e74517df
@ -109,11 +109,13 @@ public class AsyncHikvision {
|
||||
* 添加劳务人员-海康
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
@Async("hikvisionExecutor")
|
||||
public void addWorkerForHikvisionAsync(WorkerInfo workerInfo) {
|
||||
public void addWorkerForHikvisionAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
try {
|
||||
hikvisionCall.addWorkerForHikvision(workerInfo);
|
||||
hikvisionCall.addWorkerForHikvision(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
} catch (Exception e) {
|
||||
log.error("海康:", e);
|
||||
sendNoticeForWorker(workerInfo, e, "添加");
|
||||
@ -121,9 +123,9 @@ public class AsyncHikvision {
|
||||
}
|
||||
|
||||
@Async("hikvisionExecutor")
|
||||
public void editWorkerForHikvisionAsync(WorkerInfo workerInfo) {
|
||||
public void editWorkerForHikvisionAsync(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) {
|
||||
try {
|
||||
hikvisionCall.editWorkerForHikvision(workerInfo);
|
||||
hikvisionCall.editWorkerForHikvision(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
} catch (Exception e) {
|
||||
log.error("海康:", e);
|
||||
sendNoticeForWorker(workerInfo, e, "更新");
|
||||
|
||||
@ -55,6 +55,7 @@ import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendanceMapper;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl;
|
||||
import com.zhgd.xmgl.modules.worker.service.impl.WorkerAttendanceServiceImpl;
|
||||
import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync;
|
||||
import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionCompareDataMapper;
|
||||
@ -69,6 +70,8 @@ import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.tuple.ImmutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@ -108,6 +111,9 @@ public class HikvisionCall {
|
||||
@Lazy
|
||||
@Autowired
|
||||
CarInfoServiceImpl carInfoService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
EnterpriseInfoServiceImpl enterpriseInfoService;
|
||||
@Lazy
|
||||
@Autowired
|
||||
private XzHikvisionCompareDataMapper xzHikvisionCompareDataMapper;
|
||||
@ -822,14 +828,20 @@ public class HikvisionCall {
|
||||
* 添加人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
public void addWorkerForHikvision(WorkerInfo workerInfo) throws Exception {
|
||||
public void addWorkerForHikvision(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) throws Exception {
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
addWorkerFromHttp(workerInfo, project);
|
||||
addWorkerFace(workerInfo, project);
|
||||
if (isSaveWorker) {
|
||||
addWorkerFromHttp(workerInfo, project);
|
||||
}
|
||||
if (isSaveWorkerFace) {
|
||||
addWorkerFace(workerInfo, project);
|
||||
}
|
||||
}
|
||||
|
||||
public void addWorkerFromHttp(WorkerInfo workerInfo, Project project) throws Exception {
|
||||
@ -885,19 +897,25 @@ public class HikvisionCall {
|
||||
* 编辑人员
|
||||
*
|
||||
* @param workerInfo
|
||||
* @param isSaveWorker
|
||||
* @param isSaveWorkerFace
|
||||
*/
|
||||
public void editWorkerForHikvision(WorkerInfo workerInfo) throws Exception {
|
||||
public void editWorkerForHikvision(WorkerInfo workerInfo, boolean isSaveWorker, boolean isSaveWorkerFace) throws Exception {
|
||||
Project project = projectMapper.selectOne(new LambdaQueryWrapper<Project>().eq(Project::getProjectSn, workerInfo.getProjectSn()));
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
JSONObject wiJo = getWorkerInfoByPersonId(String.valueOf(workerInfo.getId()), project);
|
||||
if (wiJo != null) {
|
||||
editWorkerFromHttp(workerInfo, project);
|
||||
if (isSaveWorker) {
|
||||
editWorkerFromHttp(workerInfo, project);
|
||||
}
|
||||
|
||||
editWorkerFace(workerInfo, project);
|
||||
if (isSaveWorkerFace) {
|
||||
editWorkerFace(workerInfo, project);
|
||||
}
|
||||
} else {
|
||||
addWorkerForHikvision(workerInfo);
|
||||
addWorkerForHikvision(workerInfo, isSaveWorker, isSaveWorkerFace);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1036,17 +1054,22 @@ public class HikvisionCall {
|
||||
String type = "25";
|
||||
if (success) {
|
||||
JSONObject jo = JSONObject.parseObject(rs);
|
||||
JSONObject dataJo = jo.getJSONObject("data");
|
||||
Optional<JSONArray> fOp = Optional.ofNullable(dataJo).map(o -> o.getJSONArray("failures"));
|
||||
if (fOp.isPresent() && fOp.get().size() != 0) {
|
||||
if ("0x00052102".equals(fOp.get().getJSONObject(0).getString("code"))) {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:上级组织不存在";
|
||||
title += "失败";
|
||||
success = false;
|
||||
if (jo.get("data") instanceof JSONObject) {
|
||||
JSONObject dataJo = jo.getJSONObject("data");
|
||||
Optional<JSONArray> fOp = Optional.ofNullable(dataJo).map(o -> o.getJSONArray("failures"));
|
||||
if (fOp.isPresent() && fOp.get().size() != 0) {
|
||||
if ("0x00052102".equals(fOp.get().getJSONObject(0).getString("code"))) {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:上级组织不存在";
|
||||
title += "失败";
|
||||
success = false;
|
||||
} else {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:下发异常";
|
||||
title += "失败";
|
||||
success = false;
|
||||
}
|
||||
} else {
|
||||
msg = "同步失败,组织名称:" + orgName + "。失败原因:下发异常";
|
||||
title += "失败";
|
||||
success = false;
|
||||
msg = "同步成功,组织名称:" + orgName;
|
||||
title += "成功";
|
||||
}
|
||||
} else {
|
||||
msg = "同步成功,组织名称:" + orgName;
|
||||
@ -1516,7 +1539,6 @@ public class HikvisionCall {
|
||||
return oldCarInfo == null ? null : oldCarInfo.getString("vehicleId");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存绑定群组关系
|
||||
*
|
||||
@ -1825,14 +1847,16 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo);
|
||||
enterpriseInfo = BeanUtil.toBean(enterpriseInfoService.getEnterpriseInfoById(new MapBuilder<String, Object>()
|
||||
.put(Cts.PROJECT_SN, enterpriseInfo.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseInfo.getId()).build()), EnterpriseInfo.class);
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo, String.valueOf(enterpriseInfo.getProjectEnterprise().getId()));
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
|
||||
private HikvisionOrganization getHikvisionOrganization(EnterpriseInfo enterpriseInfo) {
|
||||
private HikvisionOrganization getHikvisionOrganization(EnterpriseInfo enterpriseInfo, String orgIndexCode) {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
hikvisionOrganization.setOrgIndexCode(String.valueOf(enterpriseInfo.getId()));
|
||||
hikvisionOrganization.setOrgIndexCode(orgIndexCode);
|
||||
hikvisionOrganization.setOrgName(enterpriseInfo.getEnterpriseName());
|
||||
hikvisionOrganization.setParentIndexCode(enterpriseInfo.getProjectSn());
|
||||
return hikvisionOrganization;
|
||||
@ -1848,14 +1872,28 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo);
|
||||
if (existOrg(project, String.valueOf(enterpriseInfo.getId()))) {
|
||||
Pair<Boolean, String> existAndIndexCode = existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, enterpriseInfo.getId());
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo, existAndIndexCode.getRight());
|
||||
if (existAndIndexCode.getLeft()) {
|
||||
editOrgFromHttp(project, hikvisionOrganization);
|
||||
} else {
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
}
|
||||
|
||||
private Pair<Boolean, String> existAndGetEnterpriseOrgIndexCodeByEnterpriseId(Project project, Long enterpriseId) throws Exception {
|
||||
EnterpriseInfo enterpriseInfo = BeanUtil.toBean(enterpriseInfoService.getEnterpriseInfoById(new MapBuilder<String, Object>()
|
||||
.put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build()), EnterpriseInfo.class);
|
||||
JSONArray orgList = getOrgList(project, StrUtil.join(",", enterpriseInfo.getId(), enterpriseInfo.getProjectEnterprise().getId()), project.getProjectSn());
|
||||
String index = null;
|
||||
if (CollUtil.isEmpty(orgList)) {
|
||||
index = String.valueOf(enterpriseInfo.getProjectEnterprise().getId());
|
||||
} else {
|
||||
index = orgList.getJSONObject(0).getString("orgIndexCode");
|
||||
}
|
||||
return new ImmutablePair<>(CollUtil.isNotEmpty(orgList), index);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组织
|
||||
*
|
||||
@ -1868,12 +1906,8 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("indexCodes", Arrays.asList(enterpriseId));
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
Pair<Boolean, String> pair = existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, Long.valueOf(enterpriseId));
|
||||
String rs = HikvisionUtil.deleteOrgByIndexCodes(project, Arrays.asList(pair.getRight()));
|
||||
sendNoticeForOrg("删除组织到海康isc", rs, enterpriseName);
|
||||
}
|
||||
|
||||
@ -1887,16 +1921,16 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo);
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo, project);
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
|
||||
private HikvisionOrganization getHikvisionOrganization(TeamInfo teamInfo) {
|
||||
private HikvisionOrganization getHikvisionOrganization(TeamInfo teamInfo, Project project) throws Exception {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
hikvisionOrganization.setOrgIndexCode(String.valueOf(teamInfo.getId()));
|
||||
hikvisionOrganization.setOrgName(teamInfo.getTeamName());
|
||||
hikvisionOrganization.setParentIndexCode(String.valueOf(teamInfo.getEnterpriseId()));
|
||||
hikvisionOrganization.setParentIndexCode(existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, teamInfo.getEnterpriseId()).getRight());
|
||||
return hikvisionOrganization;
|
||||
}
|
||||
|
||||
@ -1910,8 +1944,8 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo);
|
||||
if (existOrg(project, String.valueOf(teamInfo.getId()))) {
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo, project);
|
||||
if (existOrg(project, String.valueOf(teamInfo.getId()), hikvisionOrganization.getParentIndexCode())) {
|
||||
editOrgFromHttp(project, hikvisionOrganization);
|
||||
} else {
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
@ -1927,29 +1961,15 @@ public class HikvisionCall {
|
||||
}
|
||||
|
||||
private void deleteOrgFromHttp(Project project, List<String> idList, String orgName) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("indexCodes", idList);
|
||||
String rs = HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
String rs = HikvisionUtil.deleteOrgByIndexCodes(project, idList);
|
||||
sendNoticeForOrg("删除组织到海康isc", rs, orgName);
|
||||
}
|
||||
|
||||
private void addOrgNoticeFromHttp(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
|
||||
String rs = addOrgFromHttp(project, hikvisionOrganization);
|
||||
String rs = HikvisionUtil.addOrgFromHttp(project, hikvisionOrganization);
|
||||
sendNoticeForOrg("添加组织到海康isc", rs, hikvisionOrganization.getOrgName());
|
||||
}
|
||||
|
||||
private String addOrgFromHttp(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
ArrayList<HikvisionOrganization> list = new ArrayList<>();
|
||||
list.add(hikvisionOrganization);
|
||||
return HikvisionUtil.doPost(host, path, JSON.toJSONString(list), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组织
|
||||
*
|
||||
@ -1974,16 +1994,16 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo);
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo, project);
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
|
||||
private HikvisionOrganization getHikvisionOrganization(DepartmentInfo departmentInfo) {
|
||||
private HikvisionOrganization getHikvisionOrganization(DepartmentInfo departmentInfo, Project project) throws Exception {
|
||||
HikvisionOrganization hikvisionOrganization = new HikvisionOrganization();
|
||||
hikvisionOrganization.setClientId(null);
|
||||
hikvisionOrganization.setOrgIndexCode(String.valueOf(departmentInfo.getId()));
|
||||
hikvisionOrganization.setOrgName(departmentInfo.getDepartmentName());
|
||||
hikvisionOrganization.setParentIndexCode(String.valueOf(departmentInfo.getEnterpriseId()));
|
||||
hikvisionOrganization.setParentIndexCode(existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, departmentInfo.getEnterpriseId()).getRight());
|
||||
return hikvisionOrganization;
|
||||
}
|
||||
|
||||
@ -1997,8 +2017,8 @@ public class HikvisionCall {
|
||||
if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) {
|
||||
return;
|
||||
}
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo);
|
||||
if (existOrg(project, String.valueOf(departmentInfo.getId()))) {
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo, project);
|
||||
if (existOrg(project, String.valueOf(departmentInfo.getId()), hikvisionOrganization.getParentIndexCode())) {
|
||||
editOrgFromHttp(project, hikvisionOrganization);
|
||||
} else {
|
||||
addOrgNoticeFromHttp(project, hikvisionOrganization);
|
||||
@ -2030,7 +2050,7 @@ public class HikvisionCall {
|
||||
return;
|
||||
}
|
||||
HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(project);
|
||||
addOrgFromHttp(project, hikvisionOrganization);
|
||||
HikvisionUtil.addOrgFromHttp(project, hikvisionOrganization);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2053,16 +2073,31 @@ public class HikvisionCall {
|
||||
}
|
||||
|
||||
/**
|
||||
* 组织存在?
|
||||
* 组织是否存在
|
||||
*
|
||||
* @param project
|
||||
* @param orgIndex
|
||||
* @param orgIndexs 逗号分割
|
||||
* @param parentOrgIndexCode
|
||||
* @return
|
||||
*/
|
||||
public boolean existOrg(Project project, String orgIndex) throws Exception {
|
||||
String rs = HikvisionUtil.getOrgV2(project, orgIndex, project.getProjectSn());
|
||||
public boolean existOrg(Project project, String orgIndexs, String parentOrgIndexCode) throws Exception {
|
||||
JSONArray list = getOrgList(project, orgIndexs, parentOrgIndexCode);
|
||||
return list.size() > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询组织
|
||||
*
|
||||
* @param project
|
||||
* @param orgIndexs 逗号分割
|
||||
* @param parentOrgIndexCode
|
||||
* @return
|
||||
*/
|
||||
private JSONArray getOrgList(Project project, String orgIndexs, String parentOrgIndexCode) throws Exception {
|
||||
String rs = HikvisionUtil.getOrgV2(project, orgIndexs, parentOrgIndexCode);
|
||||
JSONObject jo = HikvisionUtil.getJSONObjectData(rs);
|
||||
return jo.getJSONArray("list").size() > 0;
|
||||
JSONArray list = jo.getJSONArray("list");
|
||||
return list;
|
||||
}
|
||||
|
||||
private HikvisionOrganization getHikvisionOrganization(Project project) {
|
||||
|
||||
@ -250,7 +250,11 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper,
|
||||
}
|
||||
List<XzUserToSupplier> xzUserToSuppliers = baseMapper.getSupplierUserIdByProjectSnAndEnterpriseId(projectSn, enterpriseId);
|
||||
for (XzUserToSupplier xzUserToSupplier : xzUserToSuppliers) {
|
||||
systemUserService.deleteTenantOrSupplier(String.valueOf(xzUserToSupplier.getUserId()), projectSn);
|
||||
try {
|
||||
systemUserService.deleteTenantOrSupplier(String.valueOf(xzUserToSupplier.getUserId()), projectSn);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
EnterpriseInfo enterpriseInfo = baseMapper.selectById(enterpriseId);
|
||||
//同步海康
|
||||
|
||||
@ -2345,7 +2345,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(1).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
asyncHikvision.addWorkerForHikvisionAsync(workerInfo);
|
||||
asyncHikvision.addWorkerForHikvisionAsync(workerInfo, true, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -2367,6 +2367,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
|
||||
}
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(1).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(workerInfo.getProjectSn()).setType(2).setOperate(2).setWhoId(workerInfo.getId()).setBigType(1).setCreateDate(getSyncTimeWithInitIfAbsent(1, workerInfo.getId())));
|
||||
asyncHikvision.editWorkerForHikvisionAsync(workerInfo);
|
||||
asyncHikvision.editWorkerForHikvisionAsync(workerInfo, true, true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,6 +58,7 @@ import java.util.*;
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Slf4j
|
||||
public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCompareDataMapper, XzHikvisionCompareData> implements IXzHikvisionCompareDataService {
|
||||
@Lazy
|
||||
@Autowired
|
||||
private ICarInfoService carInfoService;
|
||||
@Lazy
|
||||
@ -292,13 +293,14 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
|
||||
|
||||
private void syncWorker(XzHikvisionCompareData data) throws Exception {
|
||||
boolean isWorker = data.getOurType() == 4;
|
||||
ProjectInfoExtVo projectInfoBySn = projectService.getProjectInfoBySn(data.getProjectSn());
|
||||
WorkerInfo workerInfo = workerInfoService.queryById(data.getUniqueId());
|
||||
if (data.getExistIsc() == 1 && data.getExistMyPlatform() == 0) {
|
||||
//查询id是否存在平台,存在就更新,不存在就删除
|
||||
if (workerInfo != null) {
|
||||
//同步海康
|
||||
workerInfoService.editWorkerForHikvision(workerInfo);
|
||||
asyncHikvision.editWorkerForHikvisionAsync(workerInfo, isWorker, !isWorker);
|
||||
} else {
|
||||
workerInfo = new WorkerInfo();
|
||||
workerInfo.setWorkerName(data.getWorkerName());
|
||||
@ -314,10 +316,10 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl<XzHikvisionCo
|
||||
JSONArray list = HikvisionUtil.getJSONObjectData(rtJo).getJSONArray("list");
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
//新增
|
||||
workerInfoService.addWorkerForHikvision(workerInfo);
|
||||
asyncHikvision.addWorkerForHikvisionAsync(workerInfo, isWorker, !isWorker);
|
||||
} else {
|
||||
//更新
|
||||
workerInfoService.editWorkerForHikvision(workerInfo);
|
||||
asyncHikvision.editWorkerForHikvisionAsync(workerInfo, isWorker, !isWorker);
|
||||
}
|
||||
} else {
|
||||
log.error("校验数据同步海康失败,失败原因:{}", rtJo.toJSONString());
|
||||
|
||||
@ -10,15 +10,13 @@ import com.hikvision.artemis.sdk.constant.Constants;
|
||||
import com.hikvision.artemis.sdk.enums.Method;
|
||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||
import com.zhgd.jeecg.common.execption.OpenPromptException;
|
||||
import com.zhgd.xmgl.base.HikvisionOrganization;
|
||||
import com.zhgd.xmgl.base.HikvisionReservationCarInfo;
|
||||
import com.zhgd.xmgl.modules.project.entity.Project;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 海康接口
|
||||
@ -374,4 +372,31 @@ public class HikvisionUtil {
|
||||
String body = jo.toJSONString();
|
||||
return doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量添加组织
|
||||
*
|
||||
* @param project
|
||||
* @param hikvisionOrganization
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String addOrgFromHttp(Project project, HikvisionOrganization hikvisionOrganization) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
ArrayList<HikvisionOrganization> list = new ArrayList<>();
|
||||
list.add(hikvisionOrganization);
|
||||
return doPost(host, path, JSON.toJSONString(list), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
}
|
||||
|
||||
public static String deleteOrgByIndexCodes(Project project, List<String> indexCodes) throws Exception {
|
||||
final String ARTEMIS_PATH = "/artemis";
|
||||
final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/delete";
|
||||
String host = "https://" + project.getArtemisConfigHost();
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("indexCodes", indexCodes);
|
||||
String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret());
|
||||
return rs;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user