f89494e3 by xu

可信空间连接器入住接口

1 parent a1ed6008
package com.csbr.qingcloud.portal.controller;
import com.csbr.cloud.common.response.CommonRes;
import csbr.cloud.entity.annotation.SystemLog;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementQueryVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRQVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO;
import com.csbr.qingcloud.portal.service.TdsConnectorIdentityManagementService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @program:
* @description: 连接器身份管理-控制器
* @author: xup
* @create: 2025-09-23 17:35
**/
@RestController
@RequestMapping("/tds-connector-identity-management")
@Tag(name = "连接器身份管理-控制器")
public class TdsConnectorIdentityManagementController {
@Resource
private TdsConnectorIdentityManagementService tdsConnectorIdentityManagementService;
//region 基本操作
@PostMapping("/save")
@SystemLog(value = "连接器身份管理-新增")
@Operation(summary = "连接器身份管理-新增")
public CommonRes<Boolean> saveTdsConnectorIdentityManagement(@RequestBody @Valid TdsConnectorIdentityManagementRQVO vo) {
tdsConnectorIdentityManagementService.saveTdsConnectorIdentityManagement(vo);
return CommonRes.success(true);
}
@PutMapping("/update")
@SystemLog(value = "连接器身份管理-修改")
@Operation(summary = "连接器身份管理-修改")
public CommonRes<Boolean> updateTdsConnectorIdentityManagement(@RequestBody @Valid TdsConnectorIdentityManagementRQVO vo) {
tdsConnectorIdentityManagementService.updateTdsConnectorIdentityManagement(vo);
return CommonRes.success(true);
}
@DeleteMapping("/delete")
@SystemLog(value = "连接器身份管理-批量删除")
@Operation(summary = "连接器身份管理-批量删除")
public CommonRes<Boolean> removeByGuids(@RequestBody List<String> guids) {
tdsConnectorIdentityManagementService.removeByGuids(guids);
return CommonRes.success(true);
}
@PostMapping("/page-list")
@SystemLog(value = "连接器身份管理-分页")
@Operation(summary = "连接器身份管理-分页")
public CommonRes<PageListVO<TdsConnectorIdentityManagementRSVO>> pageList(@RequestBody @Valid TdsConnectorIdentityManagementQueryVO queryVO) {
PageListVO<TdsConnectorIdentityManagementRSVO> pageVO = tdsConnectorIdentityManagementService.pageList(queryVO);
return CommonRes.success(pageVO);
}
@GetMapping("/detail")
@SystemLog(value = "连接器身份管理-详情")
@Operation(
summary = "连接器身份管理-详情",
parameters = {
@Parameter(name = "guid", description = "连接器身份管理唯一标识", required = true)}
)
public CommonRes<TdsConnectorIdentityManagementRSVO> getTdsConnectorIdentityManagementDetail(@RequestParam String guid) {
TdsConnectorIdentityManagementRSVO vo = tdsConnectorIdentityManagementService.getTdsConnectorIdentityManagementDetail(guid);
return CommonRes.success(vo);
}
@PostMapping("/flow-call-back")
@SystemLog(value = "连接器身份管理-流程结束后进行业务回调")
@Operation(summary = "连接器身份管理-流程结束后进行业务回调", hidden = true)
public CommonRes<Boolean> flowCallBack(@RequestBody @Valid BizCallbackDTO dto) {
tdsConnectorIdentityManagementService.flowCallBack(dto);
return CommonRes.success(true);
}
//endregion
}
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.workflow.domain.dto.appove.FlowBizGuidQueryDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.EqualsAndHashCode;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @program:
* @description: 连接器身份管理查询参数
* @author: xup
* @create: 2025-09-23 17:35
**/
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(title = "连接器身份管理查询参数")
public class TdsConnectorIdentityManagementQueryVO extends FlowBizGuidQueryDTO {
/**
* 业务审批状态【N 草稿中,A 审批中,Y 已通过,R 驳回,C 已撤销,D 已废弃】
*/
@Schema(description = "业务审批状态【N 草稿中,A 审批中,Y 已通过,R 驳回,C 已撤销,D 已废弃】")
private String bizApproveState;
/******** 自定义扩展 *****/
/**
* 数据唯一标识【List集合】
*/
@Schema(description = "数据唯一标识", hidden = true)
private List<String> guidList;
/**
* 是否调用查询的判断
*/
@Schema(description = "是否调用查询的判断", hidden = true)
private Boolean isNeedQuery;
}
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;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.Date;
/**
* @program:
* @description: 连接器身份管理新增、修改参数
* @author: xup
* @create: 2025-09-23 17:35
**/
@Data
@Schema(title = "连接器身份管理新增、修改参数")
public class TdsConnectorIdentityManagementRQVO extends FlowRQBaseVO {
/**
* 连接器Guid
*/
@Schema(description = "连接器Guid")
@NotBlank(message = "连接器Guid为空。")
private String connectorGuid;
/**
* 使用场景(数据字典使用场景)
*/
@Schema(description = "使用场景(数据字典使用场景)")
@NotBlank(message = "使用场景为空。")
private String useScenariosCode;
/**
* 期望效期
*/
@Schema(description = "期望效期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@NotNull(message = "期望效期为空。")
private Date expirationTime;
/**
* 申请是由
*/
@Schema(description = "申请是由")
private String applicationReason;
/**
* Key标识私钥
*/
@Schema(description = "Key标识私钥")
private String privatekey;
/**
* 凭证证书
*/
@Schema(description = "凭证证书")
private String certificate;
/**
* 凭证有效期
*/
@Schema(description = "凭证有效期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date voucherExpirationTime;
/**
* 业务审批状态
*/
@Schema(description = "业务审批状态")
private String bizApproveState;
/******** 库表存储属性 需处理 *****/
/******** 自定义扩展 *****/
/******** 子对象 *****/
}
package com.csbr.qingcloud.portal.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.csbr.cloud.workflow.domain.vo.appove.BizApproveVO;
import java.util.Date;
/**
* @program:
* @description: 连接器身份管理返回参数
* @author: xup
* @create: 2025-09-23 17:35
**/
@Data
@Schema(title = "连接器身份管理返回参数")
public class TdsConnectorIdentityManagementRSVO {
/**
* 系统唯一标识
*/
@Schema(description = "系统唯一标识")
private String guid;
/**
* 专区Guid
*/
@Schema(description = "专区Guid")
private String zqGuid;
/**
* 使用场景(数据字典使用场景)
*/
@Schema(description = "使用场景(数据字典使用场景)")
private String useScenariosCode;
/**
* 期望效期
*/
@Schema(description = "期望效期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date expirationTime;
/**
* 申请是由
*/
@Schema(description = "申请是由")
private String applicationReason;
/**
* Key标识私钥
*/
@Schema(description = "Key标识私钥")
private String privatekey;
/**
* 凭证证书
*/
@Schema(description = "凭证证书")
private String certificate;
/**
* 凭证有效期
*/
@Schema(description = "凭证有效期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date voucherExpirationTime;
/**
* 业务审批状态
*/
@Schema(description = "业务审批状态")
private String bizApproveState;
/******** 库表存储属性 需处理 *****/
/******** 自定义扩展 *****/
/**
* 审批信息
*/
@Schema(description = "审批信息")
private BizApproveVO approveVO;
/******** 子对象 *****/
}
package com.csbr.qingcloud.portal.mybatis.entity;
import csbr.cloud.entity.domain.base.dao.BaseDO;
import jdk.jfr.Name;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* @program:
* @description: 连接器身份管理实体
* @author: xup
* @create: 2025-09-23 17:35
**/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@Name("连接器身份管理")
public class MfTdsConnectorIdentityManagement extends BaseDO {
/**
* 专区Guid
*/
@Name("专区Guid")
private String zqGuid;
/**
* 使用场景(数据字典使用场景)
*/
@Name("使用场景(数据字典使用场景)")
private String useScenariosCode;
/**
* 期望效期
*/
@Name("期望效期")
private Date expirationTime;
/**
* 申请是由
*/
@Name("申请是由")
private String applicationReason;
/**
* Key标识私钥
*/
@Name("Key标识私钥")
private String privatekey;
/**
* 凭证证书
*/
@Name("凭证证书")
private String certificate;
/**
* 凭证有效期
*/
@Name("凭证有效期")
private Date voucherExpirationTime;
/**
* 业务审批状态
*/
@Name("业务审批状态")
private String bizApproveState;
}
package com.csbr.qingcloud.portal.mybatis.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentityManagement;
/**
* @program:
* @description: 连接器身份管理 Mapper 接口
* @author: xup
* @create: 2025-09-23 17:35
**/
@Mapper
public interface MfTdsConnectorIdentityManagementMapper extends BaseMapper<MfTdsConnectorIdentityManagement> {
}
package com.csbr.qingcloud.portal.mybatis.service;
import com.csbr.cloud.base.service.CsbrService;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentityManagement;
/**
* @program:
* @description: 连接器身份管理逻辑层接口
* @author: xup
* @create: 2025-09-23 17:35
**/
public interface MfTdsConnectorIdentityManagementService extends CsbrService<MfTdsConnectorIdentityManagement> {
}
package com.csbr.qingcloud.portal.mybatis.service.impl;
import com.csbr.cloud.mybatis.service.impl.CsbrServiceImpl;
import com.csbr.qingcloud.portal.mybatis.mapper.MfTdsConnectorIdentityManagementMapper;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentityManagement;
import com.csbr.qingcloud.portal.mybatis.service.MfTdsConnectorIdentityManagementService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
/**
* @program:
* @description: 连接器身份管理逻辑层接口实现
* @author: xup
* @create: 2025-09-23 17:35
**/
@Service
public class MfTdsConnectorIdentityManagementServiceImpl extends CsbrServiceImpl<MfTdsConnectorIdentityManagementMapper, MfTdsConnectorIdentityManagement> implements MfTdsConnectorIdentityManagementService {
@Resource
private MfTdsConnectorIdentityManagementMapper mfTdsConnectorIdentityManagementMapper;
}
package com.csbr.qingcloud.portal.service;
import csbr.cloud.entity.domain.base.vo.PageListVO;
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.TdsConnectorIdentityManagementQueryVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO;
import java.util.List;
/**
* @program:
* @description: 连接器身份管理业务逻辑接口
* @author: xup
* @create: 2025-09-23 17:35
**/
public interface TdsConnectorIdentityManagementService {
/**
* 连接器身份管理分页查询
* @author xup
* @date 2025-09-23 17:35
* @param queryVO
* @return com.csbr.cloud.mybatis.entity.PageListVO<com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO>
*/
PageListVO<TdsConnectorIdentityManagementRSVO> pageList(TdsConnectorIdentityManagementQueryVO queryVO);
/**
* 连接器身份管理获取详情数据
* @author xup
* @date 2025-09-23 17:35
* @param guid
* @return com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO
*/
TdsConnectorIdentityManagementRSVO getTdsConnectorIdentityManagementDetail(String guid);
/**
* 连接器身份管理数据新增
* @author xup
* @date 2025-09-23 17:35
* @param flowBaseVO
* @return void
*/
void saveTdsConnectorIdentityManagement(FlowRQBaseVO flowBaseVO);
/**
* 连接器身份管理数据修改
* @author xup
* @date 2025-09-23 17:35
* @param flowBaseVO
* @return void
*/
void updateTdsConnectorIdentityManagement(FlowRQBaseVO flowBaseVO);
/**
* 连接器身份管理数据删除、并有相关的处理操作
* @author xup
* @date 2025-09-23 17:35
* @param guids
* @return void
*/
void removeByGuids(List<String> guids);
/**
* 流程结束后进行业务回调
* @author xup
* @date 2025-09-23 17:35
* @param dto
* @return void
*/
void flowCallBack(BizCallbackDTO dto);
}
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.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.enums.WorkFlowBizEnum;
import csbr.cloud.entity.enums.ApprovalStateEnum;
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.workflow.util.ApprovalFlowUtil;
import com.csbr.cloud.workflow.util.FlowAbstractImpl;
import com.csbr.cloud.common.util.MessageSourceUtil;
import csbr.cloud.entity.domain.base.vo.PageListVO;
import com.csbr.cloud.workflow.domain.vo.appove.FlowRQBaseVO;
import com.csbr.cloud.workflow.domain.vo.appove.BizApproveVO;
import com.csbr.cloud.workflow.domain.dto.appove.AddApprovalDTO;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementQueryVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRQVO;
import com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO;
import com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentityManagement;
import com.csbr.qingcloud.portal.mybatis.service.MfTdsConnectorIdentityManagementService;
import com.csbr.qingcloud.portal.service.TdsConnectorIdentityManagementService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import io.seata.spring.annotation.GlobalTransactional;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
* @program:
* @description: 连接器身份管理业务逻辑实现
* @author: xup
* @create: 2025-09-23 17:35
**/
@Slf4j
@Service
public class TdsConnectorIdentityManagementServiceImpl extends FlowAbstractImpl implements TdsConnectorIdentityManagementService {
/**
* 功能名称
*/
private static final String FUNCTION_NAME = "连接器身份管理";
/**
* 流程类型
*/
private static final String FLOW_TYPE = WorkFlowBizEnum.TDS_NODE_CONNECTOR_IDENTITY.getValue();
private static final String SysFuncCode = "TDS_NODE_CONNECTOR_IDENTITY";
@Resource
private MfTdsConnectorIdentityManagementService mfTdsConnectorIdentityManagementService;
@Resource
private CsbrBeanUtil csbrBeanUtil;
@Resource
private ApprovalFlowUtil approvalFlowUtil;
@Resource
private MessageSourceUtil messageSourceUtil;
/**
* 连接器身份管理分页查询
* @author xup
* @date 2025-09-23 17:35
* @param queryVO
* @return com.csbr.cloud.mybatis.entity.PageListVO<com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO>
*/
@Override
public PageListVO<TdsConnectorIdentityManagementRSVO> pageList(TdsConnectorIdentityManagementQueryVO queryVO) {
beforeQuery(queryVO);
if (queryVO.getIsNeedQuery()) {
LambdaQueryWrapper<MfTdsConnectorIdentityManagement> queryWrapper = mfTdsConnectorIdentityManagementService.csbrQueryWrapper(queryVO, MfTdsConnectorIdentityManagement.class);
queryWrapper.in(CollectionUtils.isNotEmpty(queryVO.getGuidList()), MfTdsConnectorIdentityManagement::getGuid,
queryVO.getGuidList());
queryWrapper.orderByDesc(MfTdsConnectorIdentityManagement::getCreateTime);
PageListVO<MfTdsConnectorIdentityManagement> pageList = mfTdsConnectorIdentityManagementService.csbrPageList(queryVO, queryWrapper);
PageListVO<TdsConnectorIdentityManagementRSVO> rsPageList = csbrBeanUtil.convert(pageList, PageListVO.class);
afterQuery(pageList, rsPageList);
return rsPageList;
}
return new PageListVO<>();
}
/**
* 连接器身份管理获取详情数据
* @author xup
* @date 2025-09-23 17:35
* @param guid
* @return com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO
*/
@Override
public TdsConnectorIdentityManagementRSVO getTdsConnectorIdentityManagementDetail(String guid) {
if (StringUtils.isBlank(guid)) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00010",
String.format("获取%s详情数据", FUNCTION_NAME), "数据唯一标识"));
}
MfTdsConnectorIdentityManagement entity = mfTdsConnectorIdentityManagementService.getById(guid);
if (entity == null) {
throw new CsbrSystemException(SystemError.DATA_NOT_EXISTS, messageSourceUtil.notExistsToSelectMessage(String.format("获取%s详情数据", FUNCTION_NAME)));
}
return convertToVO(entity, true);
}
/**
* 连接器身份管理数据新增
* @author xup
* @date 2025-09-23 17:35
* @param flowBaseVO
* @return void
*/
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
@Override
public void saveTdsConnectorIdentityManagement(FlowRQBaseVO flowBaseVO) {
TdsConnectorIdentityManagementRQVO rqVO = (TdsConnectorIdentityManagementRQVO) flowBaseVO;
beforeSave(rqVO);
MfTdsConnectorIdentityManagement entity = convertToEntity(rqVO);
// 发起审批流程或保存草稿
AddApprovalDTO approvalDTO = getAddApprovalDTO(entity);
super.startWorkFlow(rqVO, approvalDTO, entity::setBizApproveState);
// 业务数据保存
boolean flag = mfTdsConnectorIdentityManagementService.save(entity);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_ADD_ERROR, rqVO.getImmediateApprove() ?
messageSourceUtil.submitMessage(FUNCTION_NAME) : messageSourceUtil.addMessage(FUNCTION_NAME));
}
afterSave(entity, rqVO);
}
/**
* 连接器身份管理数据修改
* @author xup
* @date 2025-09-23 17:35
* @param flowBaseVO
* @return void
*/
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
@Override
public void updateTdsConnectorIdentityManagement(FlowRQBaseVO flowBaseVO) {
TdsConnectorIdentityManagementRQVO rqVO = (TdsConnectorIdentityManagementRQVO) flowBaseVO;
// 将修改前数据查出来缓存下来,传入到修改后方法中,用于一些特殊逻辑处理,如某个值变化才进行
// MfTdsConnectorIdentityManagement oldEntity = mfTdsConnectorIdentityManagementService.getById(rqVO.getGuid());
beforeUpdate(rqVO);
MfTdsConnectorIdentityManagement entity = convertToEntity(rqVO);
// 发起审批流程或保存草稿
AddApprovalDTO approvalDTO = getAddApprovalDTO(entity);
super.startOrRestartWorkFlow(rqVO, rqVO.getBizApproveState(), approvalDTO, entity::setBizApproveState);
if (rqVO.getIsRestart()) {
// 重新提交
againSubmitFlow(entity, rqVO, approvalDTO);
} else {
// 修改业务数据
boolean flag = mfTdsConnectorIdentityManagementService.updateById(entity);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_UPDATE_ERROR, rqVO.getImmediateApprove() ?
messageSourceUtil.submitMessage(FUNCTION_NAME) : messageSourceUtil.updateMessage(FUNCTION_NAME));
}
afterUpdate(entity, rqVO);
}
}
/**
* 重新提交连接器身份管理
* @author xup
* @date 2025-09-23 17:35
* @param entity
* @param rqVO
* @param approvalDTO
* @return void
*/
private void againSubmitFlow(MfTdsConnectorIdentityManagement entity, TdsConnectorIdentityManagementRQVO rqVO, AddApprovalDTO approvalDTO) {
// 重新提交的数据重置相关字段
entity.setGuid(CommonUtil.newGuid());
entity.setBizApproveState(ApprovalStateEnum.CHECKING.getValue());
mfTdsConnectorIdentityManagementService.csbrBaseEntity(entity);
// 保存新数据
boolean flag = mfTdsConnectorIdentityManagementService.save(entity);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_ADD_ERROR, messageSourceUtil.addMessage(String.format("重新提交%s",FUNCTION_NAME)));
}
// 发起新的流程
approvalDTO.setBizGuid(entity.getGuid());
approvalFlowUtil.addApproval(approvalDTO);
afterSave(entity, rqVO);
}
/**
* 连接器身份管理数据删除、并有相关的处理操作
* @author xup
* @date 2025-09-23 17:35
* @param guids
* @return void
*/
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
@Override
public void removeByGuids(List<String> guids) {
if (CollectionUtils.isEmpty(guids)) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00012",
String.format("删除%s数据", FUNCTION_NAME), "数据唯一标识"));
}
for (String guid : guids) {
MfTdsConnectorIdentityManagement entity = mfTdsConnectorIdentityManagementService.getById(guid);
beforeRemove(entity);
boolean flag = mfTdsConnectorIdentityManagementService.removeById(guid);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, messageSourceUtil.delMessage(FUNCTION_NAME));
}
afterRemove(entity);
}
// 删除流程数据
approvalFlowUtil.removeApproveByBizGuids(guids);
}
/**
* 流程结束后进行业务回调
* @author xup
* @date 2025-09-23 17:35
* @param dto
* @return void
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void flowCallBack(BizCallbackDTO dto) {
MfTdsConnectorIdentityManagement entity = mfTdsConnectorIdentityManagementService.getById(dto.getBizGuid());
if (entity == null) {
throw new CsbrSystemException(SystemError.DATA_NOT_EXISTS, messageSourceUtil.notExistsToSelectMessage(FUNCTION_NAME));
}
if (ApprovalStateEnum.PASSED.getValue().equals(dto.getApprovalState())) {
// todo
}
// 同步更新审批状态
LambdaUpdateWrapper<MfTdsConnectorIdentityManagement> updateWrapper = mfTdsConnectorIdentityManagementService.csbrUpdateWrapper(MfTdsConnectorIdentityManagement.class);
updateWrapper.set(MfTdsConnectorIdentityManagement::getBizApproveState, dto.getApprovalState());
updateWrapper.eq(MfTdsConnectorIdentityManagement::getGuid, dto.getBizGuid());
boolean flag = mfTdsConnectorIdentityManagementService.update(updateWrapper);
if (!flag) {
throw new CsbrSystemException(SystemError.DATA_UPDATE_ERROR, messageSourceUtil.updateMessage(String.format("%s的业务审批状态", FUNCTION_NAME)));
}
}
/**
* 获取发起流程参数
* @author xup
* @date 2025-09-23 17:35
* @param entity
* @return com.csbr.cloud.workflow.domain.dto.appove.AddApprovalDTO
*/
private AddApprovalDTO getAddApprovalDTO(MfTdsConnectorIdentityManagement entity) {
AddApprovalDTO approvalDTO = new AddApprovalDTO(FLOW_TYPE, entity.getGuid());
// todo
approvalDTO.setFuncCode(SysFuncCode);
// 流程消息中的变量替换参数
approvalDTO.setFlowMessageBody(null);
// 流程列表数据核心param参数处理
approvalDTO.setParam1(null);
approvalDTO.setParam2(null);
approvalDTO.setParam3(null);
approvalDTO.setParam4(null);
return approvalDTO;
}
/**
* 连接器身份管理新新增前置处理
* @author xup
* @date 2025-09-23 17:35
* @param rqVO
* @return void
*/
private void beforeSave(TdsConnectorIdentityManagementRQVO rqVO) {
//region 1.输入基础验证
//endregion
//region 2.数据验证特殊处理
//region 2.1.业务合规性验证
//endregion 2.1.业务合规性验证
//region 2.2.业务数据验证
//endregion 2.2.业务数据验证
//endregion 2.数据验证特殊处理
//region 3.数据转换处理
//region 3.1.数据过程转换
//endregion 3.1.数据过程转换
//endregion 3.数据转换处理
//region 4.数据过滤与补充处理
//endregion 4.数据过滤与补充处理
//region 5.过程处理
//region 5.1.计算逻辑处理
//endregion 5.1.计算逻辑处理
//region 5.2.业务逻辑处理
//endregion 5.2.业务逻辑处理
//endregion 5.过程处理
}
/**
* 连接器身份管理新增后置处理
* @author xup
* @date 2025-09-23 17:35
* @param entity
* @param rqVO
* @return void
*/
private void afterSave(MfTdsConnectorIdentityManagement entity, TdsConnectorIdentityManagementRQVO rqVO) {
//region 1.输出特殊转换
//region 1.1.输出过滤与补充处理
//endregion 1.1.输出过滤与补充处理
//endregion 1.输出特殊转换
}
/**
* 连接器身份管理修改前置校验、处理
* @author xup
* @date 2025-09-23 17:35
* @param rqVO
* @return void
*/
private void beforeUpdate(TdsConnectorIdentityManagementRQVO rqVO) {
//region 1.输入基础验证
if (StringUtils.isBlank(rqVO.getGuid())) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00010", String.format("修改%s数据",FUNCTION_NAME), "数据唯一标识"));
}
//endregion
//region 2.数据验证特殊处理
//region 2.1.业务合规性验证
//endregion 2.1.业务合规性验证
//region 2.2.业务数据验证
LambdaQueryWrapper<MfTdsConnectorIdentityManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MfTdsConnectorIdentityManagement::getGuid, rqVO.getGuid());
queryWrapper.select(MfTdsConnectorIdentityManagement::getGuid, MfTdsConnectorIdentityManagement::getBizApproveState);
MfTdsConnectorIdentityManagement entity = mfTdsConnectorIdentityManagementService.getOne(queryWrapper);
if (entity == null) {
throw new CsbrSystemException(SystemError.DATA_NOT_EXISTS, messageSourceUtil.notExistsToUpdateMessage(FUNCTION_NAME));
}
//endregion 2.2.业务数据验证
//endregion 2.数据验证特殊处理
//region 3.数据转换处理
//region 3.1.数据过程转换
rqVO.setBizApproveState(entity.getBizApproveState());
//endregion 3.1.数据过程转换
//endregion 3.数据转换处理
//region 4.数据过滤与补充处理
//endregion 4.数据过滤与补充处理
//region 5.过程处理
//region 5.1.计算逻辑处理
//endregion 5.1.计算逻辑处理
//region 5.2.业务逻辑处理
//endregion 5.2.业务逻辑处理
//endregion 5.过程处理
}
/**
* 连接器身份管理修改后置处理
* @author xup
* @date 2025-09-23 17:35
* @param entity
* @param rqVO
* @return void
*/
protected void afterUpdate(MfTdsConnectorIdentityManagement entity, TdsConnectorIdentityManagementRQVO rqVO) {
//region 1.输出特殊转换
//region 1.1.输出过滤与补充处理
//endregion 1.1.输出过滤与补充处理
//endregion 1.输出特殊转换
}
/**
* 连接器身份管理删除前置处理
* @author xup
* @date 2025-09-23 17:35
* @param entity
* @return void
*/
private void beforeRemove(MfTdsConnectorIdentityManagement entity) {
if (entity == null) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, messageSourceUtil.notExistsToDelMessage(FUNCTION_NAME));
}
if (ApprovalStateEnum.CHECKING.getValue().equals(entity.getBizApproveState()) ||
ApprovalStateEnum.PASSED.getValue().equals(entity.getBizApproveState())) {
throw new CsbrSystemException(SystemError.DATA_DEL_ERROR, "审批中和审批通过的数据不能删除!");
}
}
/**
* 连接器身份管理删除后置处理
* @author xup
* @date 2025-09-23 17:35
* @param entity
* @return void
*/
private void afterRemove(MfTdsConnectorIdentityManagement entity) {
}
/**
* 连接器身份管理查询方法前置验证、处理
* @author xup
* @date 2025-09-23 17:35
* @param rqQueryVO
* @return void
*/
private void beforeQuery(TdsConnectorIdentityManagementQueryVO rqQueryVO) {
rqQueryVO.setIsNeedQuery(true);
if (approvalFlowUtil.isQueryBizGuid(rqQueryVO)) {
rqQueryVO.setFlowType(FLOW_TYPE);
List<String> bizGuidList = approvalFlowUtil.getApprovalBizGuids(rqQueryVO);
if (CollectionUtils.isEmpty(bizGuidList)) {
rqQueryVO.setIsNeedQuery(false);
} else {
rqQueryVO.setGuidList(bizGuidList);
}
}
}
/**
* 连接器身份管理查询方法后置数据转换、处理
* @author xup
* @date 2025-09-23 17:35
* @param pageList 数据库查询数据
* @param rsPageList 返回的最终数据
* @return void
*/
private void afterQuery(PageListVO<MfTdsConnectorIdentityManagement> pageList, PageListVO<TdsConnectorIdentityManagementRSVO> rsPageList) {
if (CollectionUtils.isNotEmpty(pageList.getRecords())) {
rsPageList.setRecords(convertToVO(pageList.getRecords()));
}
// 需要特殊处理数据时使用
/*if(CollectionUtils.isNotEmpty(pageList.getRecords())){
List<TdsConnectorIdentityManagementRSVO> results = new ArrayList<>();
for (MfTdsConnectorIdentityManagement item : pageList.getRecords()){
TdsConnectorIdentityManagementRSVO vo = convertToVO(item);
results.add(vo);
}
rsPageList.setRecords(results);
}*/
}
//region 辅助操作
/**
* 连接器身份管理实体数据转换为视图对象数据(多个)
* @author xup
* @date 2025-09-23 17:35
* @param entityList 实体数据列表
* @return java.util.List<com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO> 视图对象列表
*/
private List<TdsConnectorIdentityManagementRSVO> convertToVO(List<MfTdsConnectorIdentityManagement> entityList) {
if (CollectionUtils.isEmpty(entityList)) {
// W00012 = {0}:参数[{1}]不能为空!
throw new CsbrSystemException(SystemError.DATA_INPUT_ERROR, messageSourceUtil.getMessage("W00012",
"实体数据转换为视图对象实体数据", "实体数据"));
}
Set<String> guidSet = CommonUtil.filterSetFiled(entityList, MfTdsConnectorIdentityManagement::getGuid);
Map<String, BizApproveVO> approvalInfoMap = approvalFlowUtil.getApprovalInfoMap(guidSet);
List<TdsConnectorIdentityManagementRSVO> voList = new ArrayList<>(entityList.size());
for (MfTdsConnectorIdentityManagement item : entityList) {
TdsConnectorIdentityManagementRSVO vo = convertToVO(item, false);
if (approvalInfoMap != null && approvalInfoMap.containsKey(item.getGuid())) {
vo.setApproveVO(approvalInfoMap.get(item.getGuid()));
}
voList.add(vo);
}
return voList;
}
/**
* 连接器身份管理实体数据转换为视图对象数据
* @author xup
* @date 2025-09-23 17:35
* @param entity
* @param isDetail
* @return com.csbr.qingcloud.portal.domain.vo.TdsConnectorIdentityManagementRSVO
*/
private TdsConnectorIdentityManagementRSVO convertToVO(MfTdsConnectorIdentityManagement entity, boolean isDetail) {
TdsConnectorIdentityManagementRSVO vo = csbrBeanUtil.convert(entity, TdsConnectorIdentityManagementRSVO.class);
if (isDetail) {
//流程数据处理
vo.setApproveVO(approvalFlowUtil.getApprovalInfo(entity.getGuid()));
}
return vo;
}
/**
* 连接器身份管理新增、修改和其他情况的参数转换为实体
* @author xup
* @date 2025-09-23 17:35
* @param vo
* @return com.csbr.qingcloud.portal.mybatis.entity.MfTdsConnectorIdentityManagement
*/
private MfTdsConnectorIdentityManagement convertToEntity(TdsConnectorIdentityManagementRQVO vo) {
MfTdsConnectorIdentityManagement entity = csbrBeanUtil.convert(vo, MfTdsConnectorIdentityManagement.class);
// 新增时数据默认guid赋值,转换后该guid可能别使用
if (StringUtils.isBlank(vo.getGuid())) {
entity.setGuid(CommonUtil.newGuid());
}
return entity;
}
//endregion
}
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!