diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index b52a6a93c..fad0294bc 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -2,10 +2,14 @@ package com.zhgd.xmgl.async; 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.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; @@ -13,6 +17,7 @@ import org.springframework.stereotype.Component; @Component public class AsyncHikvision { @Autowired + @Lazy HikvisionCall hikvisionCall; /** @@ -100,4 +105,67 @@ public class AsyncHikvision { 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(); + } + } } diff --git a/src/main/java/com/zhgd/xmgl/base/HikvisionEnterpriseInfo.java b/src/main/java/com/zhgd/xmgl/base/HikvisionOrganization.java similarity index 90% rename from src/main/java/com/zhgd/xmgl/base/HikvisionEnterpriseInfo.java rename to src/main/java/com/zhgd/xmgl/base/HikvisionOrganization.java index d2d8ec049..f033ca43a 100644 --- a/src/main/java/com/zhgd/xmgl/base/HikvisionEnterpriseInfo.java +++ b/src/main/java/com/zhgd/xmgl/base/HikvisionOrganization.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data -public class HikvisionEnterpriseInfo { +public class HikvisionOrganization { @JsonProperty("clientId") private Long clientId; diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index 8ff6c7059..5fed1203e 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -9,15 +9,17 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.base.HikvisionCarInfo; -import com.zhgd.xmgl.base.HikvisionEnterpriseInfo; import com.zhgd.xmgl.base.HikvisionEventsPictureRq; +import com.zhgd.xmgl.base.HikvisionOrganization; import com.zhgd.xmgl.base.SubscribeEventQo; import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.CarPassRecord; import com.zhgd.xmgl.modules.car.mapper.CarPassRecordMapper; import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; +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 com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService; @@ -29,6 +31,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -47,12 +50,16 @@ public class HikvisionCall { @Value("${upload.image.url.prefix:}") private String imageUrlPrefix; @Autowired + @Lazy private ProjectMapper projectMapper; @Autowired + @Lazy private IWorkerAttendanceService workerAttendanceService; @Autowired + @Lazy private WorkerInfoMapper workerInfoMapper; @Autowired + @Lazy private CarPassRecordMapper carPassRecordMapper; public void addWorkerForHikvision(WorkerInfo workerInfo) { @@ -72,7 +79,7 @@ public class HikvisionCall { jsonBody.put("personId", workerInfo.getId()); jsonBody.put("personName", workerInfo.getWorkerName()); jsonBody.put("gender", workerInfo.getSex()); - jsonBody.put("orgIndexCode", "todo");//todo + jsonBody.put("orgIndexCode", getOrgIndexCode(workerInfo)); jsonBody.put("birthday", workerInfo.getBirthday()); jsonBody.put("phoneNo", workerInfo.getPhoneNumber()); jsonBody.put("email", workerInfo.getPersonMail()); @@ -88,6 +95,20 @@ public class HikvisionCall { return body; } + private String getOrgIndexCode(WorkerInfo workerInfo) { + if (workerInfo == null) { + return null; + } + if (Objects.equals(workerInfo.getPersonType(), 1)) { + return String.valueOf(workerInfo.getTeamId()); + } else if (Objects.equals(workerInfo.getPersonType(), 2)) { + return String.valueOf(workerInfo.getDepartmentId()); + } else if (Objects.equals(workerInfo.getPersonType(), 3)) { + return String.valueOf(workerInfo.getProjectSn()); + } + return null; + } + public void editWorkerForHikvision(WorkerInfo workerInfo) { Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, workerInfo.getProjectSn())); @@ -341,20 +362,20 @@ public class HikvisionCall { final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add"; String host = "https://" + project.getArtemisConfigHost(); - HikvisionEnterpriseInfo hikvisionEnterpriseInfo = getHikvisionEnterpriseInfo(enterpriseInfo); + HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo); JsonArray array = new JsonArray(); - array.add(BeanUtil.toBean(hikvisionEnterpriseInfo, JsonObject.class)); + array.add(BeanUtil.toBean(hikvisionOrganization, JsonObject.class)); String body = array.toString(); HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); } - private HikvisionEnterpriseInfo getHikvisionEnterpriseInfo(EnterpriseInfo enterpriseInfo) { - HikvisionEnterpriseInfo hikvisionEnterpriseInfo = new HikvisionEnterpriseInfo(); - hikvisionEnterpriseInfo.setClientId(null); - hikvisionEnterpriseInfo.setOrgIndexCode(String.valueOf(enterpriseInfo.getId())); - hikvisionEnterpriseInfo.setOrgName(enterpriseInfo.getEnterpriseName()); - hikvisionEnterpriseInfo.setParentIndexCode(null); - return hikvisionEnterpriseInfo; + private HikvisionOrganization getHikvisionOrganization(EnterpriseInfo enterpriseInfo) { + HikvisionOrganization hikvisionOrganization = new HikvisionOrganization(); + hikvisionOrganization.setClientId(null); + hikvisionOrganization.setOrgIndexCode(String.valueOf(enterpriseInfo.getId())); + hikvisionOrganization.setOrgName(enterpriseInfo.getEnterpriseName()); + hikvisionOrganization.setParentIndexCode(enterpriseInfo.getProjectSn()); + return hikvisionOrganization; } public void editEnterpriseInfoForHikvision(EnterpriseInfo enterpriseInfo) { @@ -365,8 +386,8 @@ public class HikvisionCall { final String ARTEMIS_PATH = "/artemis"; final String path = ARTEMIS_PATH + "/api/resource/v1/org/single/update"; String host = "https://" + project.getArtemisConfigHost(); - HikvisionEnterpriseInfo hikvisionEnterpriseInfo = getHikvisionEnterpriseInfo(enterpriseInfo); - HikvisionUtil.doPost(host, path, JSONArray.toJSONString(hikvisionEnterpriseInfo), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo); + HikvisionUtil.doPost(host, path, JSONArray.toJSONString(hikvisionOrganization), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); } @@ -383,4 +404,125 @@ public class HikvisionCall { HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); } + + public void addTeamInfoForHikvision(TeamInfo teamInfo) { + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, teamInfo.getProjectSn())); + if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { + return; + } + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add"; + String host = "https://" + project.getArtemisConfigHost(); + HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo); + JsonArray array = new JsonArray(); + array.add(BeanUtil.toBean(hikvisionOrganization, JsonObject.class)); + String body = array.toString(); + HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + } + + private HikvisionOrganization getHikvisionOrganization(TeamInfo teamInfo) { + HikvisionOrganization hikvisionOrganization = new HikvisionOrganization(); + hikvisionOrganization.setClientId(null); + hikvisionOrganization.setOrgIndexCode(String.valueOf(teamInfo.getId())); + hikvisionOrganization.setOrgName(teamInfo.getTeamName()); + hikvisionOrganization.setParentIndexCode(String.valueOf(teamInfo.getEnterpriseId())); + return hikvisionOrganization; + } + + public void editTeamInfoForHikvision(TeamInfo teamInfo) { + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, teamInfo.getProjectSn())); + if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { + return; + } + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/resource/v1/org/single/update"; + String host = "https://" + project.getArtemisConfigHost(); + HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(teamInfo); + HikvisionUtil.doPost(host, path, JSONArray.toJSONString(hikvisionOrganization), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + } + + public void deleteTeamInfoForHikvision(TeamInfo teamInfo) { + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, teamInfo.getProjectSn())); + 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(teamInfo.getId())); + HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + } + + public void addDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, departmentInfo.getProjectSn())); + if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { + return; + } + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add"; + String host = "https://" + project.getArtemisConfigHost(); + HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo); + JsonArray array = new JsonArray(); + array.add(BeanUtil.toBean(hikvisionOrganization, JsonObject.class)); + String body = array.toString(); + HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + } + + private HikvisionOrganization getHikvisionOrganization(DepartmentInfo departmentInfo) { + HikvisionOrganization hikvisionOrganization = new HikvisionOrganization(); + hikvisionOrganization.setClientId(null); + hikvisionOrganization.setOrgIndexCode(String.valueOf(departmentInfo.getId())); + hikvisionOrganization.setOrgName(departmentInfo.getDepartmentName()); + hikvisionOrganization.setParentIndexCode(String.valueOf(departmentInfo.getEnterpriseId())); + return hikvisionOrganization; + } + + public void editDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, departmentInfo.getProjectSn())); + if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { + return; + } + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/resource/v1/org/single/update"; + String host = "https://" + project.getArtemisConfigHost(); + HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(departmentInfo); + HikvisionUtil.doPost(host, path, JSONArray.toJSONString(hikvisionOrganization), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + } + + public void deleteDepartmentInfoForHikvision(DepartmentInfo departmentInfo) { + Project project = projectMapper.selectOne(new LambdaQueryWrapper().eq(Project::getProjectSn, departmentInfo.getProjectSn())); + 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(departmentInfo.getId())); + HikvisionUtil.doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + } + + public void editProjectForHikvision(Project project) { + if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { + return; + } + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/resource/v1/org/batch/add"; + String host = "https://" + project.getArtemisConfigHost(); + HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(project); + JsonArray array = new JsonArray(); + array.add(BeanUtil.toBean(hikvisionOrganization, JsonObject.class)); + String body = array.toString(); + HikvisionUtil.doPost(host, path, body, null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); + } + + private HikvisionOrganization getHikvisionOrganization(Project project) { + HikvisionOrganization hikvisionOrganization = new HikvisionOrganization(); + hikvisionOrganization.setClientId(null); + hikvisionOrganization.setOrgIndexCode(project.getProjectSn()); + hikvisionOrganization.setOrgName(project.getProjectName()); + hikvisionOrganization.setParentIndexCode(null); + return hikvisionOrganization; + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java index 87a7edae7..885c6a02c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectController.java @@ -193,28 +193,8 @@ public class ProjectController { @ApiOperation(value = "编辑项目信息", notes = "编辑项目信息", httpMethod = "POST") @PostMapping(value = "/edit") public Result edit(@RequestBody Project project) { - Result result = new Result(); - String projectSn = project.getProjectSn(); - LambdaQueryWrapper queryWrapper = null; - if (StringUtils.isNotBlank(projectSn)) { - queryWrapper = new LambdaQueryWrapper().eq(Project::getProjectSn, projectSn); - } else if (project.getProjectId() != null) { - queryWrapper = new LambdaQueryWrapper().eq(Project::getProjectId, project.getProjectId()); - } else { - throw new RuntimeException("请求参数异常"); - } - Project projectEntity = projectService.getOne(queryWrapper); - if (projectEntity == null) { - result.error500(MessageUtil.get("notFindErr")); - } else { - boolean ok = projectService.update(project, queryWrapper); - redisRepository.del("projectInfoBySn:" + projectEntity.getProjectSn()); - if (ok) { - result.successMsg(MessageUtil.get("editSucess")); - } - } - - return result; + projectService.edit(project); + return Result.ok(); } /** diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java index 4ac8a3246..719b69e9a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/IProjectService.java @@ -83,4 +83,6 @@ public interface IProjectService extends IService { void saveProjectExtendInfo(ProjectExtDto map); Project getProjectExtendInfo(Map map); + + void edit(Project project); } diff --git a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java index a96d2ed73..b84190e4c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/service/impl/ProjectServiceImpl.java @@ -16,8 +16,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.mybatis.EntityMap; import com.zhgd.redis.lock.RedisRepository; +import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.entity.vo.ZwProjectDataVo; -import com.zhgd.xmgl.enums.ParamEnum; import com.zhgd.xmgl.modules.basicdata.constant.DictionaryConstant; import com.zhgd.xmgl.modules.basicdata.entity.*; import com.zhgd.xmgl.modules.basicdata.mapper.BaseModuleProjectMapper; @@ -99,6 +99,8 @@ public class ProjectServiceImpl extends ServiceImpl impl @Autowired private BimfaceConfigMapper bimfaceConfigMapper; @Autowired + private AsyncHikvision asyncHikvision; + @Autowired private SystemProvincesServiceImpl systemProvincesService; @Autowired private SystemAreasMapper systemAreasMapper; @@ -333,6 +335,28 @@ public class ProjectServiceImpl extends ServiceImpl impl return project; } + @Override + public void edit(Project project) { + String projectSn = project.getProjectSn(); + LambdaQueryWrapper queryWrapper = null; + if (StringUtils.isNotBlank(projectSn)) { + queryWrapper = new LambdaQueryWrapper().eq(Project::getProjectSn, projectSn); + } else if (project.getProjectId() != null) { + queryWrapper = new LambdaQueryWrapper().eq(Project::getProjectId, project.getProjectId()); + } else { + throw new RuntimeException("请求参数异常"); + } + Project projectEntity = baseMapper.selectOne(queryWrapper); + if (projectEntity == null) { + throw new OpenAlertException(MessageUtil.get("notFindErr")); + } + baseMapper.update(project, queryWrapper); + redisRepository.del("projectInfoBySn:" + projectEntity.getProjectSn()); + + //同步海康 + asyncHikvision.editProjectForHikvision(project); + } + @Override public void saveZwProject(ZwProjectDataVo zwProjectDataVo) { Project project = new Project(); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DepartmentInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DepartmentInfoServiceImpl.java index c451c34aa..e1a33bb9d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DepartmentInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/DepartmentInfoServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.mybatis.EntityMap; +import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.async.AsyncJiLianDa; import com.zhgd.xmgl.async.AsyncWorker; import com.zhgd.xmgl.modules.gt.entity.GtMaterialInOutWarehouse; @@ -38,6 +39,8 @@ public class DepartmentInfoServiceImpl extends ServiceImpl i private EnterpriseInfoMapper enterpriseInfoMapper; @Autowired private AsyncJiLianDa asyncJiLianDa; + @Autowired + private AsyncHikvision asyncHikvision; @Override public void removeTeamInfo(String id) { @@ -69,6 +72,9 @@ public class TeamInfoServiceImpl extends ServiceImpl i } teamInfoMapper.deleteById(id); asyncJiLianDa.removeTeamInfo(teamInfo); + + //同步海康 + asyncHikvision.deleteTeamInfoForHikvision(teamInfo); } @Override @@ -113,6 +119,9 @@ public class TeamInfoServiceImpl extends ServiceImpl i //上传外部平台 asyncWorker.sendAddOrUpdateTeam(teamInfo, null, 1); asyncJiLianDa.saveTeamInfo(teamInfo); + + //同步海康 + asyncHikvision.editTeamInfoForHikvision(teamInfo); return teamInfo; } @@ -142,6 +151,9 @@ public class TeamInfoServiceImpl extends ServiceImpl i //上传外部平台 asyncWorker.sendAddOrUpdateTeam(teamInfo, null, 1); asyncJiLianDa.saveTeamInfo(teamInfo); + + //同步海康 + asyncHikvision.addTeamInfoForHikvision(teamInfo); return teamInfo; }