653402e3 by xiaojie

【数据资产】

1、连接器注册到数据港
1 parent e44f81a5
......@@ -23,4 +23,6 @@ public class DataPortConfig {
private String enterpriseRegisterUri;
private String operatorUpdateUri;
private String enterpriseUpdateUri;
private String connectorRegisterUri;
private String destroyConnector;
}
......
......@@ -4,10 +4,6 @@ import com.csbr.cloud.common.entity.CsbrUpdate;
import com.csbr.cloud.common.response.CommonRes;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.qingcloud.portal.domain.vo.*;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseChangeApprove;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseChangeApproveService;
import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseService;
import com.csbr.qingcloud.portal.service.DataPortService;
import com.csbr.qingcloud.portal.service.DemandService;
import csbr.cloud.entity.annotation.SystemLog;
import csbr.cloud.entity.domain.base.vo.PageListVO;
......@@ -133,23 +129,6 @@ public class DemandController {
return CommonRes.success(pageVO);
}
@Resource
private MfEnterpriseService mfEnterpriseService;
@Resource
private MfEnterpriseChangeApproveService mfEnterpriseChangeApproveService;
@Resource
private DataPortService dataPortService;
@GetMapping("/test")
public CommonRes getToken(@RequestParam String guid) {
MfEnterpriseChangeApprove entity = mfEnterpriseChangeApproveService.getById(guid);
dataPortService.enterpriseUpdate(entity);
dataPortService.operatorUpdate(entity);
return CommonRes.success(Boolean.TRUE);
}
//endregion
}
......
......@@ -4,6 +4,7 @@ import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.exception.CsbrSystemException;
import com.csbr.cloud.common.response.CommonRes;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.qingcloud.portal.domain.vo.ConnectorIdentityRQVO;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentity;
import csbr.cloud.entity.annotation.SystemLog;
import csbr.cloud.entity.domain.base.vo.PageListVO;
......@@ -129,6 +130,14 @@ public class TdsConnectorIdentityController {
TdsConnectorIdentityRSVO vo = tdsConnectorIdentityService.checkConnector();
return CommonRes.success(vo);
}
@PostMapping("/update-identity")
@SystemLog(value = "连接器身份信息-修改接入连接器身份标识")
@Operation(summary = "连接器身份信息-修改接入连接器身份标识")
public CommonRes<Boolean> updateIdentity(@RequestBody ConnectorIdentityRQVO vo) {
tdsConnectorIdentityService.updateIdentity(vo);
return CommonRes.success(true);
}
//endregion
}
......
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.workflow.domain.vo.appove.FlowRQBaseVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @program:
* @description: 连接器身份信息新增、修改参数
* @author: xup
* @create: 2025-08-20 15:13
**/
@Data
@Schema(title = "连接器身份标识参数")
public class ConnectorIdentityRQVO {
/**
* 系统唯一标识
*/
@Schema(description = "系统唯一标识")
@NotBlank(message = "系统唯一标识为空.")
private String guid;
/**
* 接入连接器身份标识(由区域/行业功能节点下发,唯一标识连接器身份)
*/
@Schema(description = "接入连接器身份标识(由区域/行业功能节点下发,唯一标识连接器身份)")
@NotBlank(message = "接入连接器身份标识为空.")
private String connectorIdentity;
}
package com.csbr.qingcloud.portal.domain.vo.dataPort;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
/**
* @program: daop-projects
* @description:
* @author: xiaojie
* @create: 2025-10-11 15:38
**/
@Data
@Schema(title = "连接器注册参数")
public class ConnectorRegisterRQVO {
@Schema(title = "连接器身份基本信息")
private IdentityBaseRQVO baseInfo;
@Schema(title = "连接器身份附加信息")
private IdentityExtendRQVO extendInfo;
@Schema(title = "连接器身份附件信息")
private AttachmentCommonVO attachInfo;
}
\ No newline at end of file
package com.csbr.qingcloud.portal.domain.vo.dataPort;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @program: daop-projects
* @description:
* @author: xiaojie
* @create: 2025-10-11 15:38
**/
@Data
@Schema(title = "连接器注册返回参数")
public class ConnectorRegisterRSVO {
@Schema(title = "接入连接器身份标识")
private String identityCode;
@Schema(title = "可信身份凭证(数字证书、DID 等),由平台认可的签发机构生成")
private String connectorCert;
@Schema(title = "凭证颁发日期(格式:YYYY-MM-DD)")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private String authTime;
@Schema(title = "可验证身份签发单位")
private String connectorIssueOrg;
}
\ No newline at end of file
package com.csbr.qingcloud.portal.domain.vo.dataPort;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
/**
* @program: daop-projects
* @description:
* @author: xiaojie
* @create: 2025-10-11 15:38
**/
@Data
@Schema(title = "连接器身份基本参数")
public class IdentityBaseRQVO {
@Schema(title = "唯一身份标识")
private String identityCode;
@Schema(title = "接入连接器名称")
private String connectorName;
@Schema(title = "IP 地址列表")
private String connectorIpList;
@Schema(title = "域名列表")
private String connectorDomainList;
@Schema(title = "接入类型")
private String connectorJoinType;
@Schema(title = "所属法人或其他组织名称")
private String enterpriseName;
@Schema(title = "所属法人或其他组织 统一社会信用代码")
private String enterpriseCode;
}
\ No newline at end of file
package com.csbr.qingcloud.portal.domain.vo.dataPort;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
/**
* @program: daop-projects
* @description:
* @author: xiaojie
* @create: 2025-10-11 15:38
**/
@Data
@Schema(title = "连接器身份附加参数")
public class IdentityExtendRQVO {
@Schema(title = "供应商名称")
private String supplierName;
@Schema(title = "供应商统一社会信用代码")
private String supplierCode;
@Schema(title = "产品 SN 号")
private String connectorSN;
@Schema(title = "产品版本号")
private String connectorVersion;
@Schema(title = "连接器类型 1-标准型接入连接器 2-全功能型接入连接器")
private String connectorType;
@Schema(title = "物理设备唯一标识符(若有多台,只登记管理 服务器 mac 地址)")
private String connectorMac;
}
\ No newline at end of file
package com.csbr.qingcloud.portal.service;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityRSVO;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseChangeApprove;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentity;
/**
* @program: daop-projects
......@@ -34,4 +36,16 @@ public interface DataPortService {
* @param entity
*/
void enterpriseUpdate(MfEnterpriseChangeApprove entity);
/**
* 连接器注册
* @param entity
*/
void connectorRegister(MfTdsConnectorIdentity entity);
/**
* 连接器注销
* @param identityCode
*/
void destroyConnector(String identityCode);
}
\ No newline at end of file
......
......@@ -2,6 +2,7 @@ package com.csbr.qingcloud.portal.service;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.cloud.workflow.domain.vo.appove.FlowRQBaseVO;
import com.csbr.qingcloud.portal.domain.vo.ConnectorIdentityRQVO;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentity;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityQueryVO;
......@@ -114,4 +115,10 @@ public interface TdsConnectorIdentityService {
void crossFlowCallBack(BizCallbackDTO dto);
MfTdsConnectorIdentity getTdsConnectorIdentityById(String guid);
/**
* 修改接入连接器身份标识
* @param vo
*/
void updateIdentity(ConnectorIdentityRQVO vo);
}
......
package com.csbr.qingcloud.portal.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.csbr.cloud.common.enums.RedisKeyEnum;
import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.distributelock.util.RedisUtil;
import com.csbr.qingcloud.portal.config.DataPortConfig;
import com.csbr.qingcloud.portal.domain.vo.dataPort.EnterpriseRegisterRQVO;
import com.csbr.qingcloud.portal.domain.vo.dataPort.EnterpriseSubordinateRQVO;
import com.csbr.qingcloud.portal.domain.vo.dataPort.OperatorRegisterRQVO;
import com.csbr.qingcloud.portal.domain.vo.dataPort.OperatorSubordinateRQVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorAdditionalRSVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityRSVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorVerifiableRSVO;
import com.csbr.qingcloud.portal.domain.vo.dataPort.*;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseChangeApprove;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentity;
import com.csbr.qingcloud.portal.mybatis.service.MfTdsConnectorIdentityService;
import com.csbr.qingcloud.portal.service.DataPortService;
import com.csbr.qingcloud.portal.service.TdsConnectorAdditionalService;
import com.csbr.qingcloud.portal.service.TdsConnectorVerifiableService;
import com.csbr.qingcloud.portal.util.DataPortConnectUtil;
import com.csbr.qingcloud.portal.util.InvokeUtil;
import com.csbr.qingcloud.portal.util.ZQConfig;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
......@@ -20,9 +28,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.*;
/**
* @program: daop-projects
......@@ -46,6 +52,21 @@ public class DataPortServiceImpl implements DataPortService {
@Resource
private CsbrBeanUtil csbrBeanUtil;
@Resource
private ZQConfig zqConfig;
@Resource
private InvokeUtil invokeUtil;
@Resource
private TdsConnectorAdditionalService tdsConnectorAdditionalService;
@Resource
private TdsConnectorVerifiableService tdsConnectorVerifiableService;
@Resource
private MfTdsConnectorIdentityService mfTdsConnectorIdentityService;
@Override
public void operatorRegister(MfEnterprise entity) {
log.info("======经办人用户注册开始======");
......@@ -80,6 +101,93 @@ public class DataPortServiceImpl implements DataPortService {
log.info("======法人用户更新结束======");
}
@Override
public void connectorRegister(MfTdsConnectorIdentity entity) {
log.info("======连接器注册开始======");
ConnectorRegisterRQVO registerRQVO = beforeConnector(entity);
Object object = dataPortConnectUtil.postByAuthorization(registerRQVO, dataPortConfig.getConnectorRegisterUri());
ConnectorRegisterRSVO connectorRegisterRSVO = JSON.parseObject(JSON.toJSONString(object), ConnectorRegisterRSVO.class);
log.info("object, {}", object);
log.info("connectorRegisterRSVO, {}", connectorRegisterRSVO);
// 修改接入连接器身份标识
entity.setConnectorIdentity(connectorRegisterRSVO.getIdentityCode());
mfTdsConnectorIdentityService.updateById(entity);
// 修改主平台连接器身份标识
JSONObject jsonObject = new JSONObject();
jsonObject.put("bizCode", "TDSCONNECTOR");
jsonObject.put("operation", "XGSFBS");
JSONObject data = new JSONObject();
data.put("guid", entity.getGuid());
data.put("connectorIdentity", entity.getConnectorIdentity());
jsonObject.put("zqData", data);
invokeUtil.invokeMainDel(jsonObject, zqConfig.getAppKey(), zqConfig.getReceiveUrl());
log.info("======连接器注册结束======");
}
@Override
public void destroyConnector(String identityCode) {
log.info("======连接器注销开始======");
JSONObject jsonObject = new JSONObject();
jsonObject.put("identityCode", identityCode);
dataPortConnectUtil.postByAuthorization(jsonObject, dataPortConfig.getDestroyConnector());
log.info("======连接器注销结束======");
}
private ConnectorRegisterRQVO beforeConnector(MfTdsConnectorIdentity entity) {
ConnectorRegisterRQVO registerRQVO = new ConnectorRegisterRQVO();
IdentityBaseRQVO baseInfo = new IdentityBaseRQVO();
baseInfo.setConnectorName(entity.getConnectorName());
baseInfo.setIdentityCode(entity.getLegalSocialCreditCode());
if (ObjectUtils.isNotEmpty(entity.getIpAddressList())) {
baseInfo.setConnectorIpList(String.join(",", entity.getIpAddressList()));
}
if (ObjectUtils.isNotEmpty(entity.getDomainList())) {
baseInfo.setConnectorDomainList(String.join(",", entity.getDomainList()));
}
baseInfo.setConnectorJoinType(String.valueOf(entity.getAccessMethod()));
baseInfo.setEnterpriseName(entity.getLegalEntity());
baseInfo.setEnterpriseCode(entity.getLegalSocialCreditCode());
registerRQVO.setBaseInfo(baseInfo);
// 添加附加信息
TdsConnectorAdditionalRSVO tdsConnectorAdditional = tdsConnectorAdditionalService.getTdsConnectorAdditionalByConnectorGuid(entity.getGuid());
if (ObjectUtils.isNotEmpty(tdsConnectorAdditional)) {
IdentityExtendRQVO extendInfo = new IdentityExtendRQVO();
extendInfo.setSupplierName(tdsConnectorAdditional.getSupplierName());
extendInfo.setSupplierCode(tdsConnectorAdditional.getSupplierCode());
extendInfo.setConnectorSN(tdsConnectorAdditional.getProductSn());
extendInfo.setConnectorVersion(tdsConnectorAdditional.getProductVersion());
Integer connectorType = tdsConnectorAdditional.getConnectorType();
if (ObjectUtils.isNotEmpty(connectorType)) {
String connectorTypeStr;
if (connectorType == 0) {
connectorTypeStr = "1";
} else {
connectorTypeStr = "2";
}
extendInfo.setConnectorType(connectorTypeStr);
}
extendInfo.setConnectorMac(tdsConnectorAdditional.getDeviceMacAddress());
registerRQVO.setExtendInfo(extendInfo);
}
// 添加附件信息
TdsConnectorVerifiableRSVO tdsConnectorVerifiable = tdsConnectorVerifiableService.getTdsConnectorVerifiableByConnectorGuid(entity.getGuid());
if (ObjectUtils.isNotEmpty(tdsConnectorVerifiable)) {
JSONArray levelProtectionEvaluationResults = tdsConnectorVerifiable.getLevelProtectionEvaluationResults();
if (ObjectUtils.isNotEmpty(levelProtectionEvaluationResults)) {
AttachmentCommonVO attachInfo = new AttachmentCommonVO();
JSONObject jsonObject = levelProtectionEvaluationResults.getJSONObject(0);
attachInfo.setAttachType("等级保护测评结果");
String name = jsonObject.getString("name");
attachInfo.setAttachName(StringUtils.isNotEmpty(name) ? name.split("\\.")[0] : name);
attachInfo.setVerifyUrl(jsonObject.getString("url"));
registerRQVO.setAttachInfo(attachInfo);
}
}
return registerRQVO;
}
/**
* 经办人注册前置
* @param entity
......
......@@ -18,6 +18,7 @@ import com.csbr.cloud.workflow.domain.vo.appove.FlowRQBaseVO;
import com.csbr.cloud.workflow.util.ApprovalFlowUtil;
import com.csbr.cloud.workflow.util.FlowAbstractImpl;
import com.csbr.qingcloud.portal.domain.vo.*;
import com.csbr.qingcloud.portal.service.DataPortService;
import com.csbr.qingcloud.portal.service.TdsConnectorAdditionalService;
import com.csbr.qingcloud.portal.service.TdsConnectorVerifiableService;
import com.csbr.qingcloud.portal.util.IdentificationCodeUtil;
......@@ -90,6 +91,9 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
@Resource
private ValidatorUtil validatorUtil;
@Resource
private DataPortService dataPortService;
/**
* 连接器身份信息分页查询
* @author xup
......@@ -491,6 +495,7 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
if("Y".equals(entity.getIsChangeData())) {
changSourceConnectorInentity(entity);
}
dataPortService.connectorRegister(entity);
}
//驳回和撤销是,修改原来数据状态
if(ApprovalStateEnum.REJECT.getValue().equals(dto.getApprovalState())
......@@ -508,6 +513,15 @@ public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements
return mfTdsConnectorIdentityService.getById(guid);
}
@Override
public void updateIdentity(ConnectorIdentityRQVO vo) {
MfTdsConnectorIdentity entity = mfTdsConnectorIdentityService.getById(vo.getGuid());
if (ObjectUtils.isNotEmpty(entity)) {
entity.setConnectorIdentity(vo.getConnectorIdentity());
mfTdsConnectorIdentityService.updateById(entity);
}
}
@Transactional
public void afterChangeSaveTdsConnectorIdentity(String guid, MfTdsConnectorIdentity oldTdsConnectorIdentity,
Boolean isRestart) {
......
......@@ -115,7 +115,7 @@ public class DataPortConnectUtil {
DataPortRes dataPortRes = restTemplate.postForObject(
dataPortConfig.getRequestUri() + uri
, request, DataPortRes.class);
log.info("======调用数据港接口(authKey调用)======, {}", dataPortRes);
if (ObjectUtils.isEmpty(dataPortRes)) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, "调用数据港接口失败.");
}
......@@ -138,7 +138,7 @@ public class DataPortConnectUtil {
DataPortRes dataPortRes = restTemplate.postForObject(
dataPortConfig.getRequestUri() + uri
, request, DataPortRes.class);
log.info("======调用数据港接口(Authorization调用)======, {}", dataPortRes);
if (ObjectUtils.isEmpty(dataPortRes)) {
throw new CsbrSystemException(SystemError.DATA_GET_ERROR, "调用数据港接口失败.");
}
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!