fix: scc流程导出限制文件名最大长度

This commit is contained in:
2024-08-13 17:06:11 +08:00
parent d557e808b6
commit bf9fb8a071
@@ -85,7 +85,6 @@ import java.io.InputStream;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.jero.modules.activiti.common.ActivitiCommon.*; import static com.jero.modules.activiti.common.ActivitiCommon.*;
@@ -165,7 +164,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
processInfo.setProcessDefinitionId(processDefinitionId); processInfo.setProcessDefinitionId(processDefinitionId);
processInfo.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue()); processInfo.setProcessType(ProcessTypeEnum.STANDARD_COMPLIANCE_CHECK.getValue());
// 第一个节点业务数据处理 // 第一个节点业务数据处理
CompletableFuture.runAsync(() -> this.startNodeBusProcess(processInfoVO)); this.startNodeBusProcess(processInfoVO);
// 保存选人信息 // 保存选人信息
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap); processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userInfoMap);
// 获取第一个任务的taskId // 获取第一个任务的taskId
@@ -366,14 +365,14 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
if (distributeFlag) { if (distributeFlag) {
String batchId = UUID.randomUUID().toString(); String batchId = UUID.randomUUID().toString();
// 筛选出本次提交分发出的数据 // 筛选出本次提交分发出的数据
List<ProcessStandardComplianceCheckDetail> distributeDetailList = detailInfoList.stream() List<ProcessStandardComplianceCheckDetail> distributeDetailList = detailInfoList.parallelStream()
.filter(e -> StrUtil.isNotBlank(e.getDesignEngineer())) .filter(e -> StrUtil.isNotBlank(e.getDesignEngineer()))
.collect(Collectors.toList()); .collect(Collectors.toList());
List<String> ids = distributeDetailList.stream().map(ProcessStandardComplianceCheckDetail::getId).collect(Collectors.toList()); List<String> ids = distributeDetailList.parallelStream().map(ProcessStandardComplianceCheckDetail::getId).collect(Collectors.toList());
// 分发需要设置未分发数据条数 // 分发需要设置未分发数据条数
unallocatedQuantity = detailInfoList.size() - distributeDetailList.size(); unallocatedQuantity = detailInfoList.size() - distributeDetailList.size();
// 去重找到所有设计师 // 去重找到所有设计师
List<String> designEngineerList = distributeDetailList.stream() List<String> designEngineerList = distributeDetailList.parallelStream()
.map(ProcessStandardComplianceCheckDetail::getDesignEngineer) .map(ProcessStandardComplianceCheckDetail::getDesignEngineer)
.flatMap(engineer -> Arrays.stream(engineer.split(","))) .flatMap(engineer -> Arrays.stream(engineer.split(",")))
.distinct() .distinct()
@@ -505,7 +504,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo(); ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo();
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList(); List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
String fileName = standardInfo.getStandardNumber() + "-" + standardInfo.getStandardName() + "-符合性排查"; String fileName = standardInfo.getStandardNumber() + "-" + standardInfo.getStandardName() + "-符合性排查";
int maxFileNameLength = 255; int maxFileNameLength = 100;
String fileExtension = ".xls"; String fileExtension = ".xls";
// 检查文件名长度并截取(如果需要) // 检查文件名长度并截取(如果需要)
if (fileName.length() + fileExtension.length() > maxFileNameLength) { if (fileName.length() + fileExtension.length() > maxFileNameLength) {
@@ -562,7 +561,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo(); ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo();
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList(); List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
String fileName = standardInfo.getStandardNumber() + "-" + standardInfo.getStandardName() + "-符合性排查"; String fileName = standardInfo.getStandardNumber() + "-" + standardInfo.getStandardName() + "-符合性排查";
int maxFileNameLength = 255; int maxFileNameLength = 100;
String fileExtension = ".xls"; String fileExtension = ".xls";
// 检查文件名长度并截取(如果需要) // 检查文件名长度并截取(如果需要)
if (fileName.length() + fileExtension.length() > maxFileNameLength) { if (fileName.length() + fileExtension.length() > maxFileNameLength) {