+11
-21
@@ -84,7 +84,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.*;
|
||||||
@@ -450,35 +449,25 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
@Override
|
@Override
|
||||||
public List<ProcessStandardComplianceCheckDetail> generate(ProcessStandardComplianceCheck scc) throws Exception {
|
public List<ProcessStandardComplianceCheckDetail> generate(ProcessStandardComplianceCheck scc) throws Exception {
|
||||||
String splitFileSource = scc.getSplitFileSource();
|
String splitFileSource = scc.getSplitFileSource();
|
||||||
CompletableFuture<List<ProcessStandardComplianceCheckDetail>> detailInfoListFuture;
|
List<ProcessStandardComplianceCheckDetail> detailInfoList;
|
||||||
CompletableFuture<List<ModelExcelVO>> modelExcelVOListFuture;
|
|
||||||
|
|
||||||
// 找到拆分数据
|
// 找到拆分数据
|
||||||
if (StrUtil.isBlank(splitFileSource)) {
|
if (StrUtil.isBlank(splitFileSource)) {
|
||||||
MultipartFile splitFile = this.getFileById(scc.getSplitFile());
|
MultipartFile splitFile = this.getFileById(scc.getSplitFile());
|
||||||
detailInfoListFuture = CompletableFuture.supplyAsync(() -> this.getSplitData(scc, splitFile));
|
detailInfoList = this.getSplitData(scc, splitFile);
|
||||||
} else {
|
} else {
|
||||||
detailInfoListFuture = CompletableFuture.supplyAsync(() -> this.getSplitDataByStandard(scc));
|
detailInfoList = this.getSplitDataByStandard(scc);
|
||||||
// 是否与上一版本一致
|
// 是否与上一般一致
|
||||||
String isSameLastVersion = scc.getIsSameLastVersion();
|
String isSameLastVersion = scc.getIsSameLastVersion();
|
||||||
if (YesOrNoEnum.NO.getValue().equals(isSameLastVersion)) {
|
if (YesOrNoEnum.NO.getValue().equals(isSameLastVersion)) {
|
||||||
detailInfoListFuture = detailInfoListFuture.thenApply(details -> details.stream()
|
// 过滤出也为否的数据
|
||||||
.filter(detail -> YesOrNoEnum.NO.getValue().equals(detail.getIsSameAsPrevVersion()))
|
detailInfoList = detailInfoList.stream().filter(detail -> YesOrNoEnum.NO.getValue().equals
|
||||||
.collect(Collectors.toList()));
|
(detail.getIsSameAsPrevVersion())).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 获取两个文件
|
||||||
// 获取模型文件并转换
|
|
||||||
MultipartFile modelFile = this.getFileById(scc.getModelFile());
|
MultipartFile modelFile = this.getFileById(scc.getModelFile());
|
||||||
modelExcelVOListFuture = CompletableFuture.supplyAsync(() -> this.getModelExcelData(modelFile));
|
// 文件内容转换
|
||||||
|
List<ModelExcelVO> modelExcelVOList = this.getModelExcelData(modelFile);
|
||||||
// 等待两个异步操作完成
|
|
||||||
CompletableFuture.allOf(detailInfoListFuture, modelExcelVOListFuture).join();
|
|
||||||
|
|
||||||
// 结合两个文件的数据
|
|
||||||
List<ProcessStandardComplianceCheckDetail> detailInfoList = detailInfoListFuture.get();
|
|
||||||
List<ModelExcelVO> modelExcelVOList = modelExcelVOListFuture.get();
|
|
||||||
|
|
||||||
// 根据主表数据和车型文件生成子表数据并保存
|
// 根据主表数据和车型文件生成子表数据并保存
|
||||||
return this.saveAllDetailData(modelExcelVOList, detailInfoList);
|
return this.saveAllDetailData(modelExcelVOList, detailInfoList);
|
||||||
}
|
}
|
||||||
@@ -1127,6 +1116,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
this.transToDictValue(modelExcelVOList, listDict);
|
this.transToDictValue(modelExcelVOList, listDict);
|
||||||
}
|
}
|
||||||
// 转换一下数据
|
// 转换一下数据
|
||||||
|
|
||||||
return modelExcelVOList;
|
return modelExcelVOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user