283b4a44 by xu

可信空间连接器入住接口

1 parent 836f7d80
package com.csbr.qingcloud.portal.controller;
import com.csbr.cloud.common.response.CommonRes;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import csbr.cloud.entity.annotation.SystemLog;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityQueryVO;
......@@ -76,6 +77,13 @@ public class TdsConnectorIdentityController {
return CommonRes.success(vo);
}
@PostMapping("/callback")
@Operation(summary = "流程回调",hidden = true)
public CommonRes<Boolean> flowComplete(@RequestBody BizCallbackDTO bizApproveVO) {
tdsConnectorIdentityService.flowComplete(bizApproveVO);
return CommonRes.success(true);
}
//endregion
}
......
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.mybatis.annotations.LikeQuery;
import com.csbr.cloud.mybatis.enums.LikeQueryEnum;
import com.csbr.cloud.workflow.domain.dto.appove.FlowBizGuidQueryDTO;
import csbr.cloud.entity.domain.base.dto.BasePageDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.EqualsAndHashCode;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @program:
......@@ -15,6 +19,25 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(title = "连接器身份信息查询参数")
public class TdsConnectorIdentityQueryVO extends BasePageDTO {
public class TdsConnectorIdentityQueryVO extends FlowBizGuidQueryDTO {
/**
* 接入连接器名称
*/
@Schema(description = "接入连接器名称")
@LikeQuery(type = LikeQueryEnum.ALL)
private String connectorName;
/**
* 是否调用查询的判断
*/
@Schema(description = "是否调用查询的判断", hidden = true)
private Boolean isNeedQuery;
/**
* 数据唯一标识【List集合】
*/
@Schema(description = "数据唯一标识", hidden = true)
private List<String> guidList;
}
......
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.workflow.domain.vo.appove.FlowRQBaseVO;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.NotBlank;
......@@ -18,7 +19,7 @@ import java.util.Map;
**/
@Data
@Schema(title = "连接器身份信息新增、修改参数")
public class TdsConnectorIdentityRQVO {
public class TdsConnectorIdentityRQVO extends FlowRQBaseVO {
/**
* 系统唯一标识
......@@ -90,6 +91,12 @@ public class TdsConnectorIdentityRQVO {
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date credentialTime;
/**
* 业务审批状态
*/
@Schema(description = "业务审批状态")
private String bizApproveState;
/******** 库表存储属性 需处理 *****/
/******** 自定义扩展 *****/
......
......@@ -81,4 +81,10 @@ public class MfTdsConnectorIdentity extends BaseDO {
@Name("凭证颁发日期")
private Date credentialTime;
/**
* 业务审批状态【N 草稿中,A 审批中,Y 已通过,R 驳回,C 已撤销,D 已废弃; 默认 N】
*/
@Name("业务审批状态")
private String bizApproveState;
}
......
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 csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityQueryVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityRQVO;
......@@ -37,19 +39,19 @@ public interface TdsConnectorIdentityService {
* 连接器身份信息数据新增
* @author xup
* @date 2025-08-20 15:13
* @param rqVO
* @param flowBaseVO
* @return boolean
*/
void saveTdsConnectorIdentity(TdsConnectorIdentityRQVO rqVO);
void saveTdsConnectorIdentity(FlowRQBaseVO flowBaseVO);
/**
* 连接器身份信息数据修改
* @author xup
* @date 2025-08-20 15:13
* @param rqVO
* @param flowBaseVO
* @return boolean
*/
void updateTdsConnectorIdentity(TdsConnectorIdentityRQVO rqVO);
void updateTdsConnectorIdentity(FlowRQBaseVO flowBaseVO);
/**
* 连接器身份信息数据删除
......@@ -69,4 +71,9 @@ public interface TdsConnectorIdentityService {
*/
void removeHandleByGuids(List<String> guids);
/**
* 流程回调
* @param bizApproveVO
*/
void flowComplete(BizCallbackDTO bizApproveVO);
}
......
package com.csbr.qingcloud.portal.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.enums.WorkFlowBizEnum;
import com.csbr.cloud.common.exception.CsbrSystemException;
import com.csbr.cloud.common.util.CommonUtil;
import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.common.util.MessageSourceUtil;
import com.csbr.cloud.mybatis.util.BizCommonRedisUtil;
import com.csbr.cloud.workflow.domain.dto.appove.AddApprovalDTO;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
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.TdsConnectorAdditionalService;
import com.csbr.qingcloud.portal.service.TdsConnectorVerifiableService;
......@@ -14,6 +22,8 @@ import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentity;
import com.csbr.qingcloud.portal.mybatis.service.MfTdsConnectorIdentityService;
import com.csbr.qingcloud.portal.service.TdsConnectorIdentityService;
import csbr.cloud.entity.enums.ApprovalStateEnum;
import io.seata.spring.annotation.GlobalTransactional;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
......@@ -23,6 +33,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
......@@ -34,9 +45,15 @@ import java.util.List;
**/
@Slf4j
@Service
public class TdsConnectorIdentityServiceImpl implements TdsConnectorIdentityService {
public class TdsConnectorIdentityServiceImpl extends FlowAbstractImpl implements TdsConnectorIdentityService {
/**
* 流程类型
*/
private static final String FLOW_TYPE = WorkFlowBizEnum.TDS_CONNECTOR.getValue();
private static final String SysFuncCode = "TDSCONNECTOR";
/**
* 功能名称
*/
private static final String FUNCTION_NAME = "连接器身份信息";
......@@ -56,6 +73,12 @@ public class TdsConnectorIdentityServiceImpl implements TdsConnectorIdentityServ
@Resource
private TdsConnectorAdditionalService tdsConnectorAdditionalService;
@Resource
private ApprovalFlowUtil approvalFlowUtil;
@Resource
private BizCommonRedisUtil bizCommonRedisUtil;
/**
* 连接器身份信息分页查询
* @author xup
......@@ -66,13 +89,18 @@ public class TdsConnectorIdentityServiceImpl implements TdsConnectorIdentityServ
@Override
public PageListVO<TdsConnectorIdentityRSVO> pageList(TdsConnectorIdentityQueryVO queryVO) {
beforeQuery(queryVO);
if (queryVO.getIsNeedQuery()) {
LambdaQueryWrapper<MfTdsConnectorIdentity> queryWrapper = mfTdsConnectorIdentityService.csbrQueryWrapper(queryVO, MfTdsConnectorIdentity.class);
queryWrapper.in(CollectionUtils.isNotEmpty(queryVO.getGuidList()), MfTdsConnectorIdentity::getGuid,
queryVO.getGuidList());
queryWrapper.orderByDesc(MfTdsConnectorIdentity::getCreateTime);
PageListVO<MfTdsConnectorIdentity> pageList = mfTdsConnectorIdentityService.csbrPageList(queryVO, queryWrapper);
PageListVO<TdsConnectorIdentityRSVO> rsPageList = csbrBeanUtil.convert(pageList, PageListVO.class);
afterQuery(pageList, rsPageList);
return rsPageList;
}
return new PageListVO<>();
}
/**
* 连接器身份信息获取详情数据
......@@ -103,16 +131,20 @@ public class TdsConnectorIdentityServiceImpl implements TdsConnectorIdentityServ
* 连接器身份信息数据新增
* @author xup
* @date 2025-08-20 15:13
* @param rqVO
* @param flowBaseVO
* @return boolean
*/
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
@Override
public void saveTdsConnectorIdentity(TdsConnectorIdentityRQVO rqVO) {
public void saveTdsConnectorIdentity(FlowRQBaseVO flowBaseVO) {
TdsConnectorIdentityRQVO rqVO = (TdsConnectorIdentityRQVO) flowBaseVO;
beforeSave(rqVO);
MfTdsConnectorIdentity entity = convertToEntity(rqVO);
rqVO.setGuid(entity.getGuid());
mfTdsConnectorIdentityService.csbrAddEntity(entity);
// 发起审批流程或保存草稿
AddApprovalDTO approvalDTO = getAddApprovalDTO(entity);
super.startWorkFlow(rqVO, approvalDTO, entity::setBizApproveState);
boolean flag = mfTdsConnectorIdentityService.save(entity);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_ADD_ERROR, messageSourceUtil.addMessage(FUNCTION_NAME));
......@@ -121,21 +153,49 @@ public class TdsConnectorIdentityServiceImpl implements TdsConnectorIdentityServ
}
/**
* 获取发起流程参数
* @author xup
* @date 2024-12-30 13:43
* @param entity
* @return com.csbr.cloud.workflow.domain.dto.appove.AddApprovalDTO
*/
private AddApprovalDTO getAddApprovalDTO(MfTdsConnectorIdentity entity) {
AddApprovalDTO approvalDTO = new AddApprovalDTO(FLOW_TYPE, entity.getGuid());
approvalDTO.setFuncCode(SysFuncCode);
// 流程消息中的变量替换参数
String msParam = String.format("%s,%s",bizCommonRedisUtil.getTenantName(entity.getTenantGuid()),null);
approvalDTO.setFlowMessageBody(msParam);
//设置跳转参数
approvalDTO.setUrlParam(String.format("guid=%s&damGuid=%s&groundingGuid=%s&serviceTenantGuid=%s",entity.getGuid(),null,null,entity.getTenantGuid()));
// 流程列表数据核心param参数处理
approvalDTO.setParam1(null);
approvalDTO.setParam2(null);
approvalDTO.setParam3(null);
approvalDTO.setParam4(null);
return approvalDTO;
}
/**
* 连接器身份信息数据修改
* @author xup
* @date 2025-08-20 15:13
* @param rqVO
* @param flowBaseVO
* @return boolean
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void updateTdsConnectorIdentity(TdsConnectorIdentityRQVO rqVO) {
public void updateTdsConnectorIdentity(FlowRQBaseVO flowBaseVO) {
// 将修改前数据查出来缓存下来,传入到修改后方法中,用于一些特殊逻辑处理,如某个值变化才进行
// MfTdsConnectorIdentity oldEntity = mfTdsConnectorIdentityService.getById(rqVO.getGuid());
TdsConnectorIdentityRQVO rqVO = (TdsConnectorIdentityRQVO) flowBaseVO;
MfTdsConnectorIdentity oldEntity = null;
beforeUpdate(rqVO);
MfTdsConnectorIdentity entity = convertToEntity(rqVO);
mfTdsConnectorIdentityService.csbrUpdateEntity(entity);
// 发起审批流程或保存草稿
AddApprovalDTO approvalDTO = getAddApprovalDTO(entity);
super.restartWorkFlow(rqVO,oldEntity.getBizApproveState(),approvalDTO,this::saveTdsConnectorIdentity,entity::setBizApproveState);
boolean flag = mfTdsConnectorIdentityService.updateById(entity);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_UPDATE_ERROR, messageSourceUtil.updateMessage(FUNCTION_NAME));
......@@ -196,6 +256,19 @@ public class TdsConnectorIdentityServiceImpl implements TdsConnectorIdentityServ
}
}
@Override
public void flowComplete(BizCallbackDTO bizApproveVO) {
MfTdsConnectorIdentity entity = mfTdsConnectorIdentityService.getById(bizApproveVO.getBizGuid());
if (entity == null) {
throw new CsbrSystemException(SystemError.DATA_NOT_EXISTS, messageSourceUtil.notExistsToSelectMessage(FUNCTION_NAME));
}
// 同步更新审批状态
LambdaUpdateWrapper<MfTdsConnectorIdentity> updateWrapper = mfTdsConnectorIdentityService.csbrUpdateWrapper(MfTdsConnectorIdentity.class);
updateWrapper.set(MfTdsConnectorIdentity::getBizApproveState, bizApproveVO.getApprovalState());
updateWrapper.eq(MfTdsConnectorIdentity::getGuid, bizApproveVO.getBizGuid());
mfTdsConnectorIdentityService.update(updateWrapper);
}
/**
* 连接器身份信息新新增前置处理
* @author xup
......@@ -399,7 +472,16 @@ public class TdsConnectorIdentityServiceImpl implements TdsConnectorIdentityServ
* @return void
*/
private void beforeQuery(TdsConnectorIdentityQueryVO rqQueryVO) {
rqQueryVO.setIsNeedQuery(true);
if (approvalFlowUtil.isQueryBizGuid(rqQueryVO)) {
rqQueryVO.setFlowType(FLOW_TYPE);
List<String> bizGuidList = approvalFlowUtil.getApprovalCrossTenantBizGuids(rqQueryVO);
if (CollectionUtils.isEmpty(bizGuidList)) {
rqQueryVO.setIsNeedQuery(false);
} else {
rqQueryVO.setGuidList(bizGuidList);
}
}
}
/**
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!