Browse Source

12.20 陈宇

lwhhszx 2 years ago
parent
commit
2e91f5f7eb

+ 1 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/AddSyneryVo.java

@@ -12,5 +12,6 @@ import java.util.List;
 @Schema(description="添加协同结果VO",required = true)
 public class AddSyneryVo {
     private Integer taskId;
+    private String patentNo;
     private List<CompareMessage> compareMessageList;
 }

+ 6 - 1
RMS/src/main/java/cn/cslg/report/common/model/vo/SplitVO.java

@@ -1,5 +1,6 @@
 package cn.cslg.report.common.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -19,8 +20,12 @@ public class SplitVO {
     private Integer splitType;
     @Schema(description = "拆分形式")
     private Integer splitBy;
+    @JsonProperty("ReportId")
     @Schema(description = "报告Id")
-    private Integer reportId;
+    private Integer ReportId;
     @Schema(description = "任务Id")
     private Integer taskId;
+
+
+
 }

+ 11 - 2
RMS/src/main/java/cn/cslg/report/service/business/CompareMessageService.java

@@ -338,6 +338,13 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
     public Boolean addSynery(AddSyneryVo addSyneryVo){
         // 根据任务Id获得任务信息
         Task task = taskService.getById(addSyneryVo.getTaskId());
+        //根据专利号和报告ID获得特征Id
+        LambdaQueryWrapper<Features> wrapper =new LambdaQueryWrapper<Features>();
+        wrapper.select(Features::getId);
+        wrapper.eq(Features::getReportId,task.getReportId());
+        wrapper.eq(Features::getSignPatentNo,addSyneryVo.getPatentNo());
+List<Features> features =featureService.list(wrapper);
+List<Integer> Ids =features.stream().map(Features::getId).collect(Collectors.toList());
         //装载对比结果信息
         List<CompareMessage> compareMessages =addSyneryVo.getCompareMessageList();
         compareMessages.forEach(
@@ -348,9 +355,11 @@ public class CompareMessageService extends ServiceImpl<CompareMessageMapper, Com
                 }
         );
         //删除对比记录
+        if(Ids.size()!=0){
         LambdaQueryWrapper<CompareMessage> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(CompareMessage::getTaskId,task.getId());
-        this.remove(queryWrapper);
+        queryWrapper.eq(CompareMessage::getTaskId,task.getId())
+                    .in(CompareMessage::getFeatureId,Ids);
+        this.remove(queryWrapper);}
    return     this.saveBatch(compareMessages);
 
     }

+ 10 - 3
RMS/src/main/java/cn/cslg/report/service/business/CompareScenariosService.java

@@ -41,6 +41,9 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
      *
      */
     public String add(CompareScenariosVO compareScenariosVO) throws IOException{
+        if(compareScenariosVO.getFeaturesIDList().size()==0&&compareScenariosVO.getRecordIDList().size()==0){
+            return Response.error("请至少选择一个特征");
+        }
         //对比方案信息入表
         CompareScenarios compareScenarios = new CompareScenarios();
         compareScenarios.setContrastResult(compareScenariosVO.getContrastResult());
@@ -98,9 +101,12 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
             //获得Id不为0的对比记录和特征关联Id
             List<Integer> featureRecordIds = select.stream().filter(item->item.getFeatureRecordID()!=0).map(AssoScenarIOS::getFeatureRecordID).collect(Collectors.toList());
             //根据关联Id获得特征Id和对比记录ID
-            LambdaQueryWrapper<AssoRecordsFeature> wrapper1 =new LambdaQueryWrapper<>();
-            wrapper1.in(AssoRecordsFeature::getId,featureRecordIds);
-            List<AssoRecordsFeature> assoRecordsFeatures =assoRecordsFeatureService.list(wrapper1);
+            List<AssoRecordsFeature> assoRecordsFeatures =new ArrayList<>();
+            if(featureRecordIds.size()!=0) {
+                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
@@ -124,6 +130,7 @@ public class CompareScenariosService extends ServiceImpl<CompareScenariosMapper,
                  }
 
             );
+            }
             //过滤拿到特征id
            List<Integer> featuresIds =select.stream().filter(item->item.getFeatureRecordID().equals(0)).map(AssoScenarIOS::getFeaturesID).collect(Collectors.toList());
             //根据特征Id查询特征

+ 53 - 46
RMS/src/main/java/cn/cslg/report/service/business/ReportDocumentService.java

@@ -94,7 +94,40 @@ public class ReportDocumentService extends ServiceImpl<ReportDocumentMapper, Rep
         String fileName = IdUtil.simpleUUID() + ".docx";
         String directoryName = fileUtils.createDirectory();
         String outPath = fileUtils.getSavePath(directoryName)+fileName;
-        //根据报告Id获得报告信息
+
+        XWPFTemplate template =this.getstabilityMaps(reportId,filePath);
+        // 读取模板、数据并渲染
+//         文件是否已存在,则删除
+        File file = new File(outPath);
+        if (file.exists()) {
+            file.delete();
+        }
+//         生成word保存在指定目录
+        template.writeToFile(outPath);
+        template.close();
+        //导出成功后,导出报告记录入库
+        String url = fileUtils.getDirectory2(directoryName) + fileName;
+        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
+        ReportDocument reportDocument =new ReportDocument();
+        reportDocument.setReportId(reportId);
+        reportDocument.setFileName(fileName);
+        reportDocument.setFilePath(url);
+        reportDocument.setPersonId(personnelVO.getId());
+        reportDocument.setTemplateId(reportTemplate.getId());
+        reportDocument.setTemplateName(reportTemplate.getTemplateName());
+        reportDocument.setPersonName(personnelVO.getName());
+        reportDocument.insert();
+        return Response.success(url);
+    }
+
+
+  /**
+     * @autor
+     * @return
+     * @description 装载稳定和无效模板信息
+     */
+    private XWPFTemplate getstabilityMaps(Integer reportId,String filePath) throws IOException {
+ //根据报告Id获得报告信息
         Report report = reportService.getById(reportId);
         // 根据拆分人(报告的创建人)Id和报告ID获得所有特征
         LambdaQueryWrapper<Features> allFeaturesWrapper = new LambdaQueryWrapper<>();
@@ -204,8 +237,11 @@ public class ReportDocumentService extends ServiceImpl<ReportDocumentMapper, Rep
             List<AssoScenarIOS> partScenariosRecords = scenariosRecords.stream().filter(item -> item.getScenariosID().equals(item1.getId())).collect(Collectors.toList());
             List<Integer> featureRecordsIds = partScenariosRecords.stream().map(AssoScenarIOS::getFeatureRecordID).collect(Collectors.toList());
             List<AssoRecordsFeature> assoRecordsFeatures1 =   assoRecordsFeatures.stream().filter(item->featureRecordsIds.contains(item.getId())).collect(Collectors.toList());
-            List<Integer> partRecordIds=assoRecordsFeatures1.stream().map(AssoRecordsFeature::getRecordsId).collect(Collectors.toList());
-            List<Integer> partFetIds =assoRecordsFeatures1.stream().map(AssoRecordsFeature::getFeatureId).collect(Collectors.toList());
+            List<Integer> partRecordIds= assoRecordsFeatures1.stream().map(AssoRecordsFeature::getRecordsId).collect(Collectors.toList());
+            List<Integer> partFetIds = assoRecordsFeatures1.stream().map(AssoRecordsFeature::getFeatureId).collect(Collectors.toList());
+            //获得共识特征的ID
+            List<Integer> comFetIds =partScenariosRecords.stream().map(AssoScenarIOS::getFeaturesID).collect(Collectors.toList());
+            partFetIds.addAll(comFetIds);
             //获得单个对比方案的权要的所有特征
             List<Features> partFeatures = allFeatures.stream().filter(item -> partFetIds.contains(item.getId())).collect(Collectors.toList());
             List<CompareRecords> records = compareRecords.stream().filter(item -> partRecordIds.contains(item.getId())).collect(Collectors.toList());
@@ -261,7 +297,6 @@ public class ReportDocumentService extends ServiceImpl<ReportDocumentMapper, Rep
                 }
             });
             //比较所有专利号和权要所有权要的大小,如果相等则将该专利加入到新颖性列表中
-
             List<String> noveltyFiles = new ArrayList<>();
             patentNOs.forEach(
                     item -> {
@@ -338,58 +373,30 @@ public class ReportDocumentService extends ServiceImpl<ReportDocumentMapper, Rep
             allRightScenarios.add(map);
             resultMaps.add(resultMap);
         });
-
-
-        // 为表格的显示绑定行循环
-        LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
-        HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();
-        // 将bz设置为行循环绑定的数据源的key,即key是bz的value会在模板中的{{bz}}处进行解析
-        Configure configure = Configure.builder().bind("patentList", policy).bind("fileDetails", policy).bind("allResults", policy).bind("remark",htmlRenderPolicy).build();
+  //1.系统数据
+        //存放单条对比结果的map
         Map<String, Object> map = new HashMap<>();
-        //1.系统数据
         String date = DateUtils.formatDate(new Date(), DateUtils.YYYY_MM_DD);
         String[] ds = date.split("-");
         map.put("sys", new SystemMO(ds[0], ds[1], ds[2], "", "reportName"));
         map.put("patentList", patentListMaps);
         map.put("combinations", allRightScenarios);
         map.put("allResults",resultMaps);
+        // 为表格的显示绑定行循环
+        LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
+        HtmlRenderPolicy htmlRenderPolicy = new HtmlRenderPolicy();
+        // 将bz设置为行循环绑定的数据源的key,即key是bz的value会在模板中的{{bz}}处进行解析
+        Configure configure = Configure.builder().bind("patentList", policy).bind("fileDetails", policy).bind("allResults", policy).bind("remark",htmlRenderPolicy).build();
         // 读取模板、数据并渲染
         XWPFTemplate template = XWPFTemplate.compile(filePath, configure).render(map);
-//         文件是否已存在,则删除
-        File file = new File(outPath);
-        if (file.exists()) {
-            file.delete();
-        }
-//         生成word保存在指定目录
-        template.writeToFile(outPath);
-        template.close();
-        //导出成功后,导出报告记录入库
-        String url = fileUtils.getDirectory2(directoryName) + fileName;
-        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
-        ReportDocument reportDocument =new ReportDocument();
-        reportDocument.setReportId(reportId);
-        reportDocument.setFileName(fileName);
-        reportDocument.setFilePath(url);
-        reportDocument.setPersonId(personnelVO.getId());
-        reportDocument.setTemplateId(reportTemplate.getId());
-        reportDocument.setTemplateName(reportTemplate.getTemplateName());
-        reportDocument.setPersonName(personnelVO.getName());
-        reportDocument.insert();
-        return Response.success(url);
+return  template;
     }
-
-
-/*    *//**
-     * @autor
-     * @return
-     * @description 装载稳定和无效模板信息
-     *//*
-    private Map<String, Object> getstabilityMaps(){
-
-
-
-
-    }*/
+//
+//    private XWPFTemplate FTOtemplate(Integer reportId,String filePath){
+//
+//        XWPFTemplate template = XWPFTemplate.compile(filePath, configure).render(map);
+//        return template;
+//    }
 
 }
 

BIN
RMS/target/classes/cn/cslg/report/common/model/vo/SplitVO.class


BIN
RMS/target/classes/cn/cslg/report/controller/ReportDocumentController.class


BIN
RMS/target/classes/cn/cslg/report/service/business/CompareMessageService.class


BIN
RMS/target/classes/cn/cslg/report/service/business/CompareScenariosService.class


BIN
RMS/target/classes/cn/cslg/report/service/business/ReportDocumentService.class