Browse Source

20240929 添加查新对比记录

lwhhszx 11 months ago
parent
commit
60b6945e7a

+ 1 - 0
src/main/java/cn/cslg/pas/common/core/base/PoiPolicy.java

@@ -3,4 +3,5 @@ package cn.cslg.pas.common.core.base;
 public class PoiPolicy {
     public static final String TABLE = "table";
     public static final String HTML = "html";
+    public static final String PICTURE="picture";
 }

+ 2 - 2
src/main/java/cn/cslg/pas/controller/NoveltyProjectController.java

@@ -245,8 +245,8 @@ public class NoveltyProjectController {
     @Operation(summary = "复用报告")
     @PostMapping("/copyMessage")
     public Response copyMessage(@RequestBody NoveltyProjectCopyDTO noveltyProjectCopyDTO) throws Exception{
-         noveltyProjectService.copyNoveltyProject(noveltyProjectCopyDTO);
-        return Response.success(true);
+      Integer id=   noveltyProjectService.copyNoveltyProject(noveltyProjectCopyDTO);
+        return Response.success(id);
     }
 
 }

+ 2 - 2
src/main/java/cn/cslg/pas/service/business/NoveltyProjectService.java

@@ -353,7 +353,7 @@ public class NoveltyProjectService extends ServiceImpl<NoveltyProjectMapper, Nov
         projectMapper.deleteById(vo.getProjectId());
     }
 
-    public void copyNoveltyProject(NoveltyProjectCopyDTO noveltyProjectCopyDTO) throws Exception {
+    public Integer copyNoveltyProject(NoveltyProjectCopyDTO noveltyProjectCopyDTO) throws Exception {
         Integer fromProjectId = noveltyProjectCopyDTO.getFromProjectId();
         Integer toProjectId = noveltyProjectCopyDTO.getToProjectId();
         List<String> compareRecordIds = noveltyProjectCopyDTO.getCompareRecordIds();
@@ -363,6 +363,6 @@ public class NoveltyProjectService extends ServiceImpl<NoveltyProjectMapper, Nov
         noveltySearchRecordService.copySearchRecord(searchRecordIds, toProjectId);
         noveltyCompareLiteratureService.copyCompareFile(compareLiteratureIds, toProjectId, fromProjectId);
         noveltyCompareRecordService.copyCompareRecord(compareRecordIds, toProjectId, fromProjectId);
-
+ return toProjectId;
     }
 }

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/ReferencesService.java

@@ -151,7 +151,7 @@ public class ReferencesService extends ServiceImpl<ReferencesMapper, References>
                 queryWrapper.orderBy(true, isTrue, column);
             }
         } else {
-            queryWrapper.orderBy(true, true, "create_time");
+            queryWrapper.orderBy(true, false, "create_time");
         }
         IPage<References> referencesPage = this.page(page, queryWrapper);
         List<References> references = referencesPage.getRecords();

+ 2 - 0
src/main/java/cn/cslg/pas/service/novelty/ImportPatentQueenService.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.stereotype.Service;
 
 import java.util.Arrays;
@@ -20,6 +21,7 @@ import java.util.Arrays;
  */
 @Service
 @RequiredArgsConstructor
+@EnableAsync
 public class ImportPatentQueenService extends ServiceImpl<ImportPatentQueenMapper, ImportPatentQueen> {
     private final ImportSinglePatentService importSinglePatentService;
     private final CompareLiteratureService compareLiteratureService;

+ 1 - 1
src/main/java/cn/cslg/pas/service/novelty/NoveltyCompareLiteratureService.java

@@ -260,7 +260,7 @@ public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareL
                 compareLiterature.insert();
                 NoveltyCompareLiterature noveltyCompareLiterature = new NoveltyCompareLiterature();
                 BeanUtils.copyProperties(queryCompareFileVO, noveltyCompareLiterature);
-                noveltyCompareLiterature.setCompareLitertureId(queryCompareFileVOTo.getCompareLitertureId());
+                noveltyCompareLiterature.setCompareLitertureId(compareLiterature.getId());
                 noveltyCompareLiterature.insert();
             } else {
                 Integer fromId = queryCompareFileVO.getCompareFileId();

+ 42 - 5
src/main/java/cn/cslg/pas/service/novelty/NoveltyExportReportService.java

@@ -35,6 +35,7 @@ import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
 import lombok.RequiredArgsConstructor;
 import org.ddr.poi.html.HtmlRenderPolicy;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
@@ -49,7 +50,8 @@ public class NoveltyExportReportService {
     private final FileUtils fileUtils;
     private final FileManagerService fileManagerService;
     private final ReferencesService referencesService;
-
+    @Value("${FMSUrl}")
+    private String FMSUrl;
     public String exportReport(Integer id) throws Exception {
         LambdaQueryWrapper<NoveltyReportReferences> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(NoveltyReportReferences::getReportReferenceId, id);
@@ -69,7 +71,6 @@ public class NoveltyExportReportService {
         // 根据模板id 获取模板
         Integer tempalteId = noveltyReportReferences.getTemplateId();
 
-
         //获取模板
         NoveltyReportTemplate noveltyReportTemplate = noveltyReportTemplateService.getById(tempalteId);
         String configureSource = noveltyReportTemplate.getTempleMessage();
@@ -79,15 +80,17 @@ public class NoveltyExportReportService {
 
         Map<String, Object> map = new HashMap<>();
 
-        Object dataObject = JSONObject.parse(dataSource);
-        map.put("cm", dataObject);
+      JSONObject jsonObject=  this.loadReportData(dataSource,configureSource);
+
+        map.put("cm", jsonObject);
         // 获取模板路径
         String templateUrl = noveltyReportTemplate.getTemplatePath();
 
         String templateFilePath = fileUtils.getPath(templateUrl);
 
         //读取模板后保存生成word的地址
-        String fileName = IdUtil.simpleUUID() + ".docx";
+        String name =noveltyReportTemplate.getTemplateName().replace("模板","报告");
+        String fileName = name + ".docx";
         String directoryName = fileUtils.createDirectory();
 
         String outPath = fileUtils.getSavePath(directoryName) + fileName;
@@ -122,10 +125,44 @@ public class NoveltyExportReportService {
                 case PoiPolicy.HTML:
                     configureBuilder.bind(key, htmlRenderPolicy);
                     break;
+
+
             }
 
         }
         Configure configure = configureBuilder.build();
         return configure;
     }
+
+    public JSONObject loadReportData(String dataSource,String configSource) {
+        JSONObject configObject = JSONObject.parseObject(configSource);
+        JSONObject dataObject  =JSONObject.parseObject(dataSource);
+        for (Map.Entry<String, Object> entry : configObject.entrySet()) {
+            String key = entry.getKey();
+            JSONObject jsonObject = configObject.getJSONObject(key);
+            String type = jsonObject.getString("type");
+            switch (type) {
+                case PoiPolicy.PICTURE:
+                 String[] keys=    key.split("\\.");
+                 JSONObject jsonObject1 =dataObject;
+                    List<JSONObject> jsonObjectPics=new ArrayList<>();
+                 for (int i=0;i<keys.length;i++){
+                     if(i!=keys.length-1){
+                         jsonObject1=jsonObject1.getJSONObject(keys[i]);
+                     }
+                     else {
+                         jsonObjectPics =jsonObject1.getJSONArray(keys[i]);
+                     }
+                 }
+                    if(jsonObjectPics!=null){
+                        jsonObjectPics.forEach(item->{
+                            String value ="<img src='"+FMSUrl+"/fileManager/downloadFile?fileId="+item.get("url").toString()+"' style='width:150px;height:180px;object-fit: contain;' fit='contain'>";
+                            item.put("url",value);
+                        });
+                    }
+                    break;
+            }
+        }
+        return dataObject;
+    }
 }