1.同步大华平台设备 组织架构信息
parent
00de04fd98
commit
81740090b4
|
|
@ -8,6 +8,8 @@ import com.zcloud.primeport.domain.model.DaHuaCarPageCmd;
|
||||||
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
|
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
|
||||||
import com.zcloud.primeport.dto.DaHuaCarDeleteCmd;
|
import com.zcloud.primeport.dto.DaHuaCarDeleteCmd;
|
||||||
import com.zcloud.primeport.dto.DaHuaPersonDeleteCmd;
|
import com.zcloud.primeport.dto.DaHuaPersonDeleteCmd;
|
||||||
|
import com.zcloud.primeport.dto.DaHuaResourceSyncCmd;
|
||||||
|
import com.zcloud.primeport.dto.clientobject.DaHuaResourceSyncResultCO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
@ -15,6 +17,7 @@ import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
@Api(tags = "大华平台对接")
|
@Api(tags = "大华平台对接")
|
||||||
@RequestMapping("/${application.gateway}/dahua")
|
@RequestMapping("/${application.gateway}/dahua")
|
||||||
|
|
@ -105,4 +108,14 @@ public class DaHuaController {
|
||||||
}
|
}
|
||||||
return daHuaService.deletePerson(cmd);
|
return daHuaService.deletePerson(cmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("同步大华部门、企业映射和门口设备")
|
||||||
|
@PostMapping("/resource/sync")
|
||||||
|
public SingleResponse<DaHuaResourceSyncResultCO> syncResources(
|
||||||
|
@Valid @RequestBody(required = false) DaHuaResourceSyncCmd cmd) {
|
||||||
|
if (daHuaService == null) {
|
||||||
|
throw new RuntimeException("大华服务未配置");
|
||||||
|
}
|
||||||
|
return daHuaService.syncResources(cmd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -7,9 +7,13 @@ import com.zcloud.primeport.domain.model.DaHuaAccessRecordCmd;
|
||||||
import com.zcloud.primeport.domain.model.DaHuaCarAddCmd;
|
import com.zcloud.primeport.domain.model.DaHuaCarAddCmd;
|
||||||
import com.zcloud.primeport.domain.model.DaHuaCarPageCmd;
|
import com.zcloud.primeport.domain.model.DaHuaCarPageCmd;
|
||||||
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
|
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
|
||||||
|
import com.zcloud.primeport.domain.model.DaHuaResourceSyncResultE;
|
||||||
import com.zcloud.primeport.dto.DaHuaCarDeleteCmd;
|
import com.zcloud.primeport.dto.DaHuaCarDeleteCmd;
|
||||||
import com.zcloud.primeport.dto.DaHuaPersonDeleteCmd;
|
import com.zcloud.primeport.dto.DaHuaPersonDeleteCmd;
|
||||||
|
import com.zcloud.primeport.dto.DaHuaResourceSyncCmd;
|
||||||
|
import com.zcloud.primeport.dto.clientobject.DaHuaResourceSyncResultCO;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -20,6 +24,9 @@ public class DaHuaServiceImpl implements DaHuaServiceI {
|
||||||
@Autowired
|
@Autowired
|
||||||
private DaHuaGateway daHuaGateway;
|
private DaHuaGateway daHuaGateway;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private DaHuaResourceSyncApplicationService daHuaResourceSyncApplicationService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse<Long> generatePersonId() {
|
public SingleResponse<Long> generatePersonId() {
|
||||||
Long id = daHuaGateway.generatePersonId();
|
Long id = daHuaGateway.generatePersonId();
|
||||||
|
|
@ -196,4 +203,16 @@ public class DaHuaServiceImpl implements DaHuaServiceI {
|
||||||
System.out.println("大华门禁事件查询最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + (dhData != null ? "已返回数据" : "null"));
|
System.out.println("大华门禁事件查询最终返回 - success:" + resp.isSuccess() + ", errCode:" + resp.getErrCode() + ", errMessage:" + resp.getErrMessage() + ", data:" + (dhData != null ? "已返回数据" : "null"));
|
||||||
return resp;
|
return resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleResponse<DaHuaResourceSyncResultCO> syncResources(DaHuaResourceSyncCmd cmd) {
|
||||||
|
DaHuaResourceSyncCmd actualCmd = cmd == null ? new DaHuaResourceSyncCmd() : cmd;
|
||||||
|
int pageSize = actualCmd.getPageSize() == null ? 200 : actualCmd.getPageSize();
|
||||||
|
boolean autoMatchByName = actualCmd.getAutoMatchByName() == null || actualCmd.getAutoMatchByName();
|
||||||
|
DaHuaResourceSyncResultE result = daHuaResourceSyncApplicationService.sync(
|
||||||
|
pageSize, actualCmd.getSubsystem(), autoMatchByName);
|
||||||
|
DaHuaResourceSyncResultCO data = new DaHuaResourceSyncResultCO();
|
||||||
|
BeanUtils.copyProperties(result, data);
|
||||||
|
return SingleResponse.of(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8,6 +8,8 @@ import com.zcloud.primeport.domain.model.DaHuaCarPageCmd;
|
||||||
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
|
import com.zcloud.primeport.domain.model.DaHuaPersonSyncCmd;
|
||||||
import com.zcloud.primeport.dto.DaHuaCarDeleteCmd;
|
import com.zcloud.primeport.dto.DaHuaCarDeleteCmd;
|
||||||
import com.zcloud.primeport.dto.DaHuaPersonDeleteCmd;
|
import com.zcloud.primeport.dto.DaHuaPersonDeleteCmd;
|
||||||
|
import com.zcloud.primeport.dto.DaHuaResourceSyncCmd;
|
||||||
|
import com.zcloud.primeport.dto.clientobject.DaHuaResourceSyncResultCO;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -30,4 +32,6 @@ public interface DaHuaServiceI {
|
||||||
SingleResponse<Boolean> deleteCar(DaHuaCarDeleteCmd cmd);
|
SingleResponse<Boolean> deleteCar(DaHuaCarDeleteCmd cmd);
|
||||||
|
|
||||||
SingleResponse<Map<String, Object>> queryAccessRecord(DaHuaAccessRecordCmd cmd);
|
SingleResponse<Map<String, Object>> queryAccessRecord(DaHuaAccessRecordCmd cmd);
|
||||||
|
|
||||||
|
SingleResponse<DaHuaResourceSyncResultCO> syncResources(DaHuaResourceSyncCmd cmd);
|
||||||
}
|
}
|
||||||
|
|
@ -8,7 +8,7 @@ import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableConfigurationProperties(DaHuaProperties.class)
|
@EnableConfigurationProperties({DaHuaProperties.class, DaHuaResourceProperties.class})
|
||||||
public class DaHuaAutoConfig {
|
public class DaHuaAutoConfig {
|
||||||
|
|
||||||
@Bean("dahuaApiOauthConfig")
|
@Bean("dahuaApiOauthConfig")
|
||||||
|
|
|
||||||
|
|
@ -328,3 +328,73 @@ CREATE TABLE `video` (
|
||||||
`env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
|
`env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='摄像头表';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='摄像头表';
|
||||||
|
|
||||||
|
CREATE TABLE `dahua_department_corp_mapping` (
|
||||||
|
`id` bigint NOT NULL COMMENT '主键ID',
|
||||||
|
`dahua_department_id` bigint NOT NULL COMMENT '大华部门ID',
|
||||||
|
`dahua_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '大华组织编码',
|
||||||
|
`dahua_department_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '大华部门名称快照',
|
||||||
|
`corp_id` bigint NOT NULL COMMENT '本平台企业ID,对应corp_info.id',
|
||||||
|
`corp_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '本平台企业名称快照',
|
||||||
|
`match_type` smallint NOT NULL DEFAULT '1' COMMENT '匹配方式:1-名称匹配,2-人工绑定',
|
||||||
|
`bind_status` smallint NOT NULL DEFAULT '1' COMMENT '绑定状态:1-有效,0-停用',
|
||||||
|
`last_sync_time` datetime DEFAULT NULL COMMENT '最近同步时间',
|
||||||
|
`delete_enum` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'FALSE' COMMENT '删除标识',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`create_id` bigint DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`update_id` bigint DEFAULT NULL COMMENT '更新人ID',
|
||||||
|
`env` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROD' COMMENT '环境标识',
|
||||||
|
`create_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||||
|
`update_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人姓名',
|
||||||
|
`tenant_id` bigint DEFAULT NULL COMMENT '租户ID',
|
||||||
|
`org_id` bigint DEFAULT NULL COMMENT '组织ID',
|
||||||
|
`version` int NOT NULL DEFAULT '0' COMMENT '版本号',
|
||||||
|
`remarks` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uk_dahua_department_corp_mapping_department` (`dahua_department_id`),
|
||||||
|
UNIQUE KEY `uk_dahua_department_corp_mapping_org_code` (`dahua_org_code`),
|
||||||
|
UNIQUE KEY `uk_dahua_department_corp_mapping_corp` (`corp_id`),
|
||||||
|
KEY `idx_dahua_department_corp_mapping_status` (`bind_status`, `delete_enum`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='大华部门与本平台企业映射表';
|
||||||
|
|
||||||
|
CREATE TABLE `dahua_device` (
|
||||||
|
`id` bigint NOT NULL COMMENT '主键ID',
|
||||||
|
`device_code` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '大华设备编码',
|
||||||
|
`device_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '大华设备名称',
|
||||||
|
`device_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备类型',
|
||||||
|
`device_category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备类别',
|
||||||
|
`device_manufacturer` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备厂商',
|
||||||
|
`device_model` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备型号',
|
||||||
|
`is_online` smallint DEFAULT NULL COMMENT '在线状态:1-在线,0-离线',
|
||||||
|
`offline_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '离线原因',
|
||||||
|
`sub_system` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '所属大华子系统',
|
||||||
|
`device_ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '设备IP',
|
||||||
|
`device_port` int DEFAULT NULL COMMENT '设备端口',
|
||||||
|
`dahua_department_id` bigint DEFAULT NULL COMMENT '大华所属部门ID',
|
||||||
|
`dahua_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '大华所属组织编码',
|
||||||
|
`dahua_org_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '大华所属组织名称',
|
||||||
|
`corp_id` bigint DEFAULT NULL COMMENT '本平台企业ID,对应corp_info.id',
|
||||||
|
`corp_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '本平台企业名称快照',
|
||||||
|
`match_status` smallint NOT NULL DEFAULT '0' COMMENT '企业匹配状态:1-已匹配,0-未匹配',
|
||||||
|
`raw_data` json DEFAULT NULL COMMENT '大华原始设备数据',
|
||||||
|
`last_sync_time` datetime DEFAULT NULL COMMENT '最近同步时间',
|
||||||
|
`delete_enum` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'FALSE' COMMENT '删除标识',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||||
|
`create_id` bigint DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`update_id` bigint DEFAULT NULL COMMENT '更新人ID',
|
||||||
|
`env` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'PROD' COMMENT '环境标识',
|
||||||
|
`create_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人姓名',
|
||||||
|
`update_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人姓名',
|
||||||
|
`tenant_id` bigint DEFAULT NULL COMMENT '租户ID',
|
||||||
|
`org_id` bigint DEFAULT NULL COMMENT '组织ID',
|
||||||
|
`version` int NOT NULL DEFAULT '0' COMMENT '版本号',
|
||||||
|
`remarks` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
UNIQUE KEY `uk_dahua_device_code` (`device_code`),
|
||||||
|
KEY `idx_dahua_device_department` (`dahua_department_id`),
|
||||||
|
KEY `idx_dahua_device_org_code` (`dahua_org_code`),
|
||||||
|
KEY `idx_dahua_device_corp` (`corp_id`),
|
||||||
|
KEY `idx_dahua_device_match_status` (`match_status`, `delete_enum`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='大华门口设备同步表';
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue