修改:知识库列表审批人批量查询返回
This commit is contained in:
@@ -2,8 +2,6 @@ package com.sdm.data.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -188,4 +186,9 @@ public class FileMetadataInfo implements Serializable {
|
||||
@TableField(value = "cidFlowId")
|
||||
private String cidFlowId;
|
||||
|
||||
@Schema(description= "cidFlowReviewer:cid审核电子流程里面的评审人,只有列表展示使用")
|
||||
@TableField(value = "cidFlowReviewer", insertStrategy = FieldStrategy.NEVER,select = false,updateStrategy = FieldStrategy.NEVER)
|
||||
private String cidFlowReviewer;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ import com.sdm.common.entity.resp.system.CIDUserResp;
|
||||
import com.sdm.common.feign.impl.project.SimulationNodeFeignClientImpl;
|
||||
import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
|
||||
import com.sdm.common.feign.inter.system.IApproveFeignClient;
|
||||
import com.sdm.common.log.CoreLogger;
|
||||
import com.sdm.common.utils.CidApproveUtil;
|
||||
import com.sdm.common.utils.CidSysUserUtil;
|
||||
import com.sdm.common.utils.PageUtils;
|
||||
import com.sdm.data.model.bo.ApprovalFileDataContentsModel;
|
||||
@@ -38,6 +40,7 @@ import com.sdm.data.service.impl.dataFileHandle.ApproveStrategyFactory;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.MapUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.assertj.core.util.DateUtil;
|
||||
@@ -95,7 +98,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
private IFielPermissionDictService filePermissionDictService;
|
||||
|
||||
@Autowired
|
||||
SysUserFeignClientImpl sysUserFeignClient;
|
||||
private SysUserFeignClientImpl sysUserFeignClient;
|
||||
|
||||
@Autowired
|
||||
private IMinioService minioService;
|
||||
@@ -646,6 +649,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
.in(FileMetadataInfo::getApproveType,fileDatdList)
|
||||
.list();
|
||||
setCreatorNames(files);
|
||||
setCidInfos(files);
|
||||
PageDataResp<List<FileMetadataInfo>> page = new PageDataResp<>();
|
||||
page.setData(files);
|
||||
page.setTotal(pageDataResp.getTotal());
|
||||
@@ -697,6 +701,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
.list();
|
||||
// 创建人赋值
|
||||
setCreatorNames(list);
|
||||
setCidInfos(list);
|
||||
PageInfo<FileMetadataInfo> page = new PageInfo<>(list);
|
||||
return PageUtils.getJsonObjectSdmResponse(list, page);
|
||||
}
|
||||
@@ -1771,7 +1776,6 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
SdmResponse<List<CIDUserResp>> userListSdmRsp = sysUserFeignClient.listUserByIds(
|
||||
UserQueryReq.builder().userIds(creatorIds).build()
|
||||
);
|
||||
|
||||
// 批量设置 creatorName
|
||||
if (userListSdmRsp.isSuccess() && CollectionUtils.isNotEmpty(userListSdmRsp.getData())) {
|
||||
Map<Long, CIDUserResp> cidUserMap = CidSysUserUtil.getCidUserToMap(userListSdmRsp.getData());
|
||||
@@ -1792,6 +1796,58 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
}
|
||||
}
|
||||
|
||||
private void setCidInfos(List<FileMetadataInfo> list) {
|
||||
try {
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
// 提取评审的cidFlowId,当前不可能超过500,无需分批
|
||||
List<String> cidFlowIds = list.stream()
|
||||
.map(FileMetadataInfo::getCidFlowId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.toList();
|
||||
// 查询电子流详情
|
||||
SdmResponse sdmResponse = approveFeignClient.queryBatchApproveFlowStatus(cidFlowIds);
|
||||
// JSONArray array
|
||||
Object data = sdmResponse.getData();
|
||||
// 批量设置
|
||||
if (sdmResponse.isSuccess() && !Objects.isNull(data)) {
|
||||
Map<String, List<Map<String, Object>>> flowInfosMap = CidApproveUtil.convertApproveFlowInfos(data);
|
||||
if(MapUtils.isNotEmpty(flowInfosMap)){
|
||||
list.forEach(fileMetadataInfo -> {
|
||||
String cidFlowId = fileMetadataInfo.getCidFlowId();
|
||||
List<Map<String, Object>> flowInfos = flowInfosMap.get(cidFlowId);
|
||||
fileMetadataInfo.setCidFlowReviewer(getCidFlowReviewer(flowInfos));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("setCreatorNames error:{}",e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// 从审批详情里拼接审批人
|
||||
private String getCidFlowReviewer(List<Map<String, Object>> flowInfos) {
|
||||
try {
|
||||
if (CollectionUtils.isEmpty(flowInfos)) {
|
||||
CoreLogger.warn("getCidFlowReviewer flowInfos null");
|
||||
return "";
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
flowInfos.forEach(flowInfo -> {
|
||||
// flowInfo非空,nodeType非空且非0(发起人),nodeUserName非空
|
||||
if (!Objects.isNull(flowInfo) && !Objects.isNull(flowInfo.get("nodeType")) &&
|
||||
!Objects.equals(NumberConstants.ZERO, flowInfo.get("nodeType")) && !Objects.isNull(flowInfo.get("nodeUserName"))) {
|
||||
sb.append(flowInfo.get("nodeUserName")).append(",");
|
||||
}
|
||||
});
|
||||
String resultStr = sb.toString();
|
||||
resultStr.substring(0, resultStr.length() - 1);
|
||||
return resultStr;
|
||||
} catch (Exception e) {
|
||||
CoreLogger.error("getCidFlowReviewer error,param:{},errMsg:{}", JSONObject.toJSONString(flowInfos), e.getMessage());
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user