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