11114d30 by xiaojie

【数据资产】

1、企业信息-分页(调用流程)
1 parent 7e2cd4f1
......@@ -3,6 +3,7 @@ package com.csbr.qingcloud.portal.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.csbr.cloud.common.response.CommonRes;
import com.csbr.cloud.workflow.domain.dto.appove.FlowQueryDTO;
import com.csbr.cloud.workflow.domain.dto.appove.FlowUpdateStateDTO;
import com.csbr.qingcloud.portal.domain.vo.*;
import com.csbr.qingcloud.portal.service.EnterpriseChangeApproveService;
......@@ -69,6 +70,14 @@ public class EnterpriseController {
PageListVO<EnterpriseRSVO> pageVO = enterpriseService.pageList(queryVO);
return CommonRes.success(pageVO);
}
@PostMapping("/flow/page-list")
@SystemLog(value = "企业信息-分页(调用流程)")
@Operation(summary = "企业信息-分页(调用流程)")
public CommonRes<PageListVO<EnterpriseApproveRSVO>> flowPageList(@RequestBody @Valid FlowQueryDTO dto) {
PageListVO<EnterpriseApproveRSVO> pageVO = enterpriseService.flowPageList(dto);
return CommonRes.success(pageVO);
}
@GetMapping("/detail")
@SystemLog(value = "企业信息-详情")
......
package com.csbr.qingcloud.portal.domain.vo;
import com.csbr.cloud.workflow.domain.vo.appove.ApproveVO;
import com.csbr.cloud.workflow.domain.vo.appove.BizApproveVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @program: D:/git/ms-data-circulation-portal-service
* @description: 企业信息返回参数
* @author: xcq
* @create: 2024-12-26 16:18
**/
@Data
@Schema(title = "企业信息返回参数")
public class EnterpriseApproveRSVO extends ApproveVO {
@Schema(description = "跨平台审批状态(N 初始 A 审批中 Y 已通过 R 驳回 C 已撤销)")
private String crossPlatformApproveState;
/******** 子对象 *****/
}
......@@ -2,10 +2,9 @@ package com.csbr.qingcloud.portal.feign;
import com.csbr.cloud.common.config.FastCallFeignConfiguration;
import com.csbr.cloud.common.response.CommonRes;
import com.csbr.cloud.workflow.domain.dto.appove.FlowQueryDTO;
import com.csbr.cloud.workflow.domain.dto.appove.FlowUpdateStateDTO;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.qingcloud.portal.domain.vo.UserQueryDTO;
import com.csbr.qingcloud.portal.domain.vo.UserVO;
import com.csbr.cloud.workflow.domain.vo.appove.ApproveVO;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
import csbr.cloud.entity.domain.base.vo.PageListVO;
......@@ -13,10 +12,10 @@ import jakarta.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*;
import java.net.URI;
import java.util.List;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* @author Xiaocq
......@@ -30,5 +29,9 @@ public interface WorkflowFeign {
@RequestMapping(value = "/work-flow/data/allow-flow-core", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
CommonRes<Boolean> allowFlowCore(@RequestBody FlowUpdateStateDTO dto, @RequestHeader(required = false) MultiValueMap<String, String> headers);
@HystrixCommand(fallbackMethod = "CommonUtil.sleepFallback", commandProperties = {
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "4500")})
@RequestMapping(value = "/work-flow/data/get-flow-list-tenant", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
CommonRes<PageListVO<ApproveVO>> getFlowListCrossTenant(@RequestBody @Valid FlowQueryDTO dto);
}
......
package com.csbr.qingcloud.portal.mybatis.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.csbr.cloud.mybatis.service.impl.CsbrServiceImpl;
import com.csbr.qingcloud.portal.mybatis.mapper.MfEnterpriseMapper;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
......@@ -7,6 +9,10 @@ import com.csbr.qingcloud.portal.mybatis.service.MfEnterpriseService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
/**
* @program: D:/git/ms-data-circulation-portal-service
* @description: 企业信息逻辑层接口实现
......@@ -18,5 +24,12 @@ public class MfEnterpriseServiceImpl extends CsbrServiceImpl<MfEnterpriseMapper,
@Resource
private MfEnterpriseMapper mfEnterpriseMapper;
@Override
public List<MfEnterprise> listByIds(Collection<? extends Serializable> idList) {
LambdaQueryWrapper<MfEnterprise> queryWrapper = Wrappers.lambdaQuery(MfEnterprise.class);
queryWrapper.in(MfEnterprise::getGuid, idList);
csbrExcludeShardingLambdaQueryWrapper(queryWrapper);
return list(queryWrapper);
}
}
......
package com.csbr.qingcloud.portal.service;
import com.csbr.cloud.workflow.domain.dto.appove.FlowQueryDTO;
import com.csbr.cloud.workflow.domain.dto.appove.FlowUpdateStateDTO;
import com.csbr.qingcloud.portal.domain.vo.*;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
......@@ -27,6 +28,13 @@ public interface EnterpriseService {
PageListVO<EnterpriseRSVO> pageList(EnterpriseQueryVO queryVO);
/**
* 企业信息-分页(调用流程)
* @param dto
* @return
*/
PageListVO<EnterpriseApproveRSVO> flowPageList(FlowQueryDTO dto);
/**
* 企业信息获取详情数据
* @author xcq
* @date 2024-12-26 16:18
......
......@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.entity.RedisStaffPOJO;
import com.csbr.cloud.common.enums.SystemError;
import com.csbr.cloud.common.enums.WorkFlowBizEnum;
......@@ -14,13 +15,16 @@ import com.csbr.cloud.common.util.CsbrBeanUtil;
import com.csbr.cloud.common.util.MessageSourceUtil;
import com.csbr.cloud.distributelock.util.RedisUtil;
import com.csbr.cloud.workflow.domain.dto.appove.AddApprovalDTO;
import com.csbr.cloud.workflow.domain.dto.appove.FlowQueryDTO;
import com.csbr.cloud.workflow.domain.dto.callback.BizCallbackDTO;
import com.csbr.cloud.workflow.domain.vo.appove.ApproveVO;
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.feign.ConfigureFeign;
import com.csbr.qingcloud.portal.feign.PersonelFeign;
import com.csbr.qingcloud.portal.feign.WorkflowFeign;
import com.csbr.qingcloud.portal.mybatis.entity.MfDemand;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterprise;
import com.csbr.qingcloud.portal.mybatis.entity.MfEnterpriseChangeApprove;
......@@ -36,11 +40,16 @@ import io.seata.spring.annotation.GlobalTransactional;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* @program: D:/git/ms-data-circulation-portal-service
......@@ -73,6 +82,9 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
private PersonelFeign personelFeign;
@Resource
private WorkflowFeign workflowFeign;
@Resource
private RedisUtil redisUtil;
@Resource
......@@ -107,6 +119,40 @@ public class EnterpriseServiceImpl extends FlowAbstractImpl implements Enterpris
return new PageListVO<>(0L,0L);
}
@Override
public PageListVO<EnterpriseApproveRSVO> flowPageList(FlowQueryDTO dto) {
// 调用流程获取流程数据
PageListVO<ApproveVO> pageListVO = workflowFeign.getFlowListCrossTenant(dto).getData();
PageListVO<EnterpriseApproveRSVO> rsPageList = csbrBeanUtil.convert(pageListVO, PageListVO.class);
List<ApproveVO> approveVOList = pageListVO.getRecords();
if (ObjectUtils.isNotEmpty(approveVOList)) {
// 根据业务guid查询认证表数据
List<String> guids = approveVOList.stream().map(ApproveVO::getBizGuid).toList();
List<MfEnterprise> mfEnterprises = mfEnterpriseService.listByIds(guids);
Map<String, MfEnterprise> mfEnterpriseMap = new HashMap<>();
if (ObjectUtils.isNotEmpty(mfEnterprises)) {
mfEnterpriseMap = mfEnterprises.stream().collect(Collectors.toMap(MfEnterprise::getGuid, Function.identity()));
}
// 数据转换
List<EnterpriseApproveRSVO> results = new ArrayList<>();
for (ApproveVO approveVO : approveVOList) {
// 补跨服务审批状态数据
EnterpriseApproveRSVO enterpriseApproveRSVO = csbrBeanUtil.convert(approveVO, EnterpriseApproveRSVO.class);
if (ObjectUtils.isNotEmpty(mfEnterpriseMap) && mfEnterpriseMap.containsKey(enterpriseApproveRSVO.getGuid())) {
MfEnterprise mfEnterprise = mfEnterpriseMap.get(enterpriseApproveRSVO.getGuid());
enterpriseApproveRSVO.setCrossPlatformApproveState(mfEnterprise.getCrossPlatformApproveState());
}
results.add(enterpriseApproveRSVO);
}
rsPageList.setRecords(results);
}
return rsPageList;
}
/**
* 企业信息获取详情数据
* @author xcq
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!