|
@@ -87,13 +87,16 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
|
|
|
//根据报告ID查询对比方案
|
|
|
LambdaQueryWrapper<CompareScenarios> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(CompareScenarios::getReportId, reportID);
|
|
|
- List<CompareScenarios> CompareScenarios = this.list(wrapper);
|
|
|
+ List<CompareScenarios> compareScenarios = this.list(wrapper);
|
|
|
//根据报告ID和权要id获得特征
|
|
|
LambdaQueryWrapper<Features> featuresWrapper =new LambdaQueryWrapper<>();
|
|
|
featuresWrapper.eq(Features::getReportId,reportID);
|
|
|
List<Features> allFeatures =featureService.list(featuresWrapper);
|
|
|
+ //获得所有对比方案id进而获得所有对比方案和特征-对比记录关联id
|
|
|
+ List<Integer> scenarioIds =compareScenarios.stream().map(CompareScenarios::getId).collect(Collectors.toList());
|
|
|
+ List<AssoScenarIOS> selects = assoScenarIOSService.select(scenarioIds);
|
|
|
//遍历对比方案
|
|
|
- for (CompareScenarios a:CompareScenarios){
|
|
|
+ for (CompareScenarios a:compareScenarios){
|
|
|
CompareScenariosVO compareScenariosVO=new CompareScenariosVO();
|
|
|
compareScenariosVO.setRightId(a.getRightId());
|
|
|
compareScenariosVO.setContrastResult( a.getContrastResult());
|
|
@@ -103,9 +106,8 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
|
|
|
compareScenariosVO.setId(a.getId());
|
|
|
//获得对比方案的特征列表
|
|
|
List<Features> featuresLists =allFeatures.stream().filter(item->item.getRightId().equals(a.getRightId())).collect(Collectors.toList());
|
|
|
-
|
|
|
//根据对比方案ID获得所有对比方案和对比记录关联信息
|
|
|
- List<AssoScenarIOS> select = assoScenarIOSService.select(a.getId());
|
|
|
+ List<AssoScenarIOS> select = selects.stream().filter(item->item.getScenariosID()==a.getId()).collect(Collectors.toList());
|
|
|
//获得Id不为0的对比记录和特征关联Id
|
|
|
List<Integer> featureRecordIds = select.stream().filter(item->item.getFeatureRecordID()!=0).map(AssoScenarIOS::getFeatureRecordID).collect(Collectors.toList());
|
|
|
//根据关联Id获得特征Id和对比记录ID
|
|
@@ -115,20 +117,19 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
|
|
|
LambdaQueryWrapper<AssoRecordsFeature> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
wrapper1.in(AssoRecordsFeature::getId, featureRecordIds);
|
|
|
assoRecordsFeatures = assoRecordsFeatureService.list(wrapper1);
|
|
|
-
|
|
|
+ }
|
|
|
//获取特征Id
|
|
|
List<Integer> featureIds= assoRecordsFeatures.stream().map(AssoRecordsFeature::getFeatureId).collect(Collectors.toList());
|
|
|
//对比记录Id
|
|
|
List<Integer> recordId =assoRecordsFeatures.stream().map(AssoRecordsFeature::getRecordsId).collect(Collectors.toList());
|
|
|
//根据特征Id查询特征
|
|
|
- LambdaQueryWrapper<Features> wrapper2 =new LambdaQueryWrapper<>();
|
|
|
- wrapper2.in(Features::getId,featureIds);
|
|
|
- List<Features> features =featureService.list(wrapper2);
|
|
|
- //根据记录ID查询记录
|
|
|
- LambdaQueryWrapper<CompareRecords> wrapper3 =new LambdaQueryWrapper<>();
|
|
|
- wrapper3.in(CompareRecords::getId,recordId);
|
|
|
- List<CompareRecords> compareRecords =compareRecordsService.list(wrapper3);
|
|
|
-
|
|
|
+ List<Features> features = allFeatures.stream().filter(item->featureIds.contains(item.getId())).collect(Collectors.toList());
|
|
|
+ List<CompareRecords> compareRecords =new ArrayList<>();
|
|
|
+ if(recordId!=null&&recordId.size()>0) {
|
|
|
+ LambdaQueryWrapper<CompareRecords> wrapper3 = new LambdaQueryWrapper<>();
|
|
|
+ wrapper3.in(CompareRecords::getId, recordId);
|
|
|
+ compareRecords = compareRecordsService.list(wrapper3);
|
|
|
+ }
|
|
|
for(Features item : featuresLists) {
|
|
|
AssoRecordsFeature assoRecordsFeature = assoRecordsFeatures.stream().filter(te->te.getFeatureId().equals(item.getId())).findFirst().orElse(new AssoRecordsFeature());
|
|
|
//筛选对比文件
|
|
@@ -137,15 +138,12 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
|
|
|
assoRecordsFeature.setFeatures(item);
|
|
|
assoRecordsFeatures1.add(assoRecordsFeature);
|
|
|
}
|
|
|
- }
|
|
|
//过滤拿到特征id
|
|
|
List<Integer> featuresIds =select.stream().filter(item->item.getFeatureRecordID().equals(0)).map(AssoScenarIOS::getFeaturesID).collect(Collectors.toList());
|
|
|
//根据特征Id查询特征
|
|
|
List<Features> featuresList =new ArrayList<>();
|
|
|
if(featuresIds!=null&&featuresIds.size()>0) {
|
|
|
- LambdaQueryWrapper<Features> wrapper4 = new LambdaQueryWrapper<>();
|
|
|
- wrapper4.in(Features::getId,featuresIds);
|
|
|
- featuresList=featureService.list(wrapper4);
|
|
|
+ featuresList= allFeatures.stream().filter(item->featuresIds.contains(item.getId())).collect(Collectors.toList());
|
|
|
}
|
|
|
compareScenariosVO.setFeaturesList(featuresList);
|
|
|
compareScenariosVO.setFeaturesIDList(featuresIds);
|