Ver código fonte

2/21 导出数据包

lwhhszx 1 ano atrás
pai
commit
558bf3adef

+ 16 - 0
src/main/java/cn/cslg/pas/common/utils/FileUtils.java

@@ -178,4 +178,20 @@ public class FileUtils {
         }
         return fileInputStream;
     }
+
+    public String getTempPath(String fileName) {
+        String tempPath = getStaticPath(COMMON_FILE) + FILE_SEPARATOR + "temp";
+        File file = new File(tempPath);
+        if (!file.exists()) {
+            file.mkdir();
+        }
+        return tempPath + FILE_SEPARATOR + fileName;
+    }
+
+    public String getDirectory(String fileName) {
+        return FILE_SEPARATOR + this.createDirectory() + FILE_SEPARATOR + fileName;
+    }
+    public String getSystemPath(String url) {
+        return getStaticPath(COMMON_FILE) + FILE_SEPARATOR + url;
+    }
 }

+ 45 - 0
src/main/java/cn/cslg/pas/controller/ProjectExportController.java

@@ -0,0 +1,45 @@
+package cn.cslg.pas.controller;
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.business.AsInvalidReasonHistoryDTO;
+import cn.cslg.pas.common.dto.business.OtherPatentInfoDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.service.business.AsInvalidReasonHistoryService;
+import cn.cslg.pas.service.business.ProjectExportService;
+import io.swagger.v3.oas.annotations.Operation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 作为无效证据使用历史
+ *
+ * @Author xiexiang
+ * @Date 2024/1/19
+ */
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/projectExport")
+@RestController
+public class ProjectExportController {
+    @Autowired
+    private ProjectExportService projectExportService;
+
+    @Operation(summary = "导出文件")
+    @PostMapping("/exportProject")
+    public Response saveOrUpdate(@RequestBody AsInvalidReasonHistoryDTO asInvalidReasonHistoryDTO) {
+        try {
+            projectExportService.exportProject();
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+        }
+
+        return Response.success("aa");
+    }
+
+}

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

@@ -108,4 +108,6 @@ public class CommonService {
         });
         return maps;
 }
+
+
 }

+ 84 - 0
src/main/java/cn/cslg/pas/service/business/ProjectExportService.java

@@ -0,0 +1,84 @@
+package cn.cslg.pas.service.business;
+
+import cn.cslg.pas.common.dto.PatentDTO;
+import cn.cslg.pas.common.dto.business.PatentProjectDTO;
+import cn.cslg.pas.common.model.request.QueryRequest;
+import cn.cslg.pas.common.model.request.StringRequest;
+import cn.cslg.pas.common.utils.FileUtils;
+import cn.cslg.pas.common.utils.JsonUtils;
+import cn.cslg.pas.domain.es.Patent;
+import cn.cslg.pas.service.business.es.EsService;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ZipUtil;
+import io.swagger.v3.oas.annotations.media.Schema;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
+@Service
+public class ProjectExportService {
+    @Autowired
+    private FileUtils fileUtils;
+    @Autowired
+    private EsService esService;
+    @Autowired
+    private PatentProjectService patentProjectService;
+    @Autowired
+    private ProjectService projectService;
+    public void exportProject() throws Exception {
+        String directoryName = IdUtil.simpleUUID();
+        String fileName = directoryName + ".zip";
+        String tempPath = fileUtils.getTempPath(directoryName);
+        String url = fileUtils.getDirectory(fileName);
+        String savePath = fileUtils.getSystemPath(url);
+        File directory = new File(tempPath);
+        if (!directory.exists()) {
+            boolean success = directory.mkdir();
+            if (!success) {
+                throw new Exception("数据导出时创建文件夹失败");
+            }
+        }
+        Patent patent = new Patent();
+        patent.setAppNo("123");
+        this.saveDataToJsonFile(tempPath, "专利.json", getProjectPatent(185));
+        File file = ZipUtil.zip(tempPath, savePath);
+        FileUtil.del(tempPath);
+
+    }
+
+    public void saveDataToJsonFile(String tempPath, String fileName, String data) throws IOException {
+        String path = tempPath + FileUtils.FILE_SEPARATOR + fileName;
+        FileOutputStream fileOutputStream = new FileOutputStream(path);
+        fileOutputStream.write(data.getBytes(StandardCharsets.UTF_8));
+        fileOutputStream.close();
+    }
+
+    public String getProjectPatent(Integer projectId) throws Exception{
+        StringRequest stringRequest =new StringRequest();
+        stringRequest.setProjectId(185);
+        PatentDTO patentDTO =esService.esSearch(stringRequest);
+        if(patentDTO ==null){
+            patentDTO=new PatentDTO();
+        }
+           return Objects.requireNonNull(JsonUtils.objectToJson(patentDTO.getPatents()));
+    }
+
+    /**
+     *
+     * @param projectId
+     * @return
+     */
+    public String getProject(Integer projectId){
+
+        PatentProjectDTO patentProjectDTO =new PatentProjectDTO();
+        //根据
+
+        return "";
+    }
+}

+ 4 - 0
src/main/java/cn/cslg/pas/service/business/es/EsService.java

@@ -260,6 +260,10 @@ public class EsService {
         if (current != null && size != null && current > 0 && size > 0) {
             builder.from((current.intValue() - 1) * size.intValue()).size(size.intValue());
         }
+        else {
+            builder.from(0).size(99999);
+
+        }
 
         //解除最大条数限制
         builder.trackTotalHits(i -> i.enabled(true));

+ 1 - 1
src/main/java/cn/cslg/pas/service/common/PatentStarApiService.java

@@ -802,7 +802,7 @@ public class PatentStarApiService {
 
     public StarPatentVO getPatentByNo(String patentNo) {
         StarPatentVO starPatentVO = null;
-        String condition = "AN=(" + patentNo + ") OR PN=(" + patentNo + ") OR GN=(" + patentNo + ")";
+        String condition = "AN=(" + patentNo + ") OR PN=(" + patentNo + ") OR GN=(" + patentNo + ") OR ANO=("+patentNo+")";
         String dbType = "CN";
         if (!patentNo.startsWith("CN")) {
             dbType = "WD";

+ 2 - 1
src/main/java/cn/cslg/pas/service/importPatent/ImportFromWebToEsService.java

@@ -224,7 +224,8 @@ public class ImportFromWebToEsService implements PatentImportImp {
                         StarPatentVO starPatentVO =starPatents.get(j);
                       nos.removeIf(item->item.equals(starPatentVO.getApplicationNo())
                               ||item.equals(starPatentVO.getPublicNo())
-                              ||item.equals(starPatentVO.getPublicAccreditNo()));
+                              ||item.equals(starPatentVO.getPublicAccreditNo())
+                               ||item.equals(starPatentVO.getRowApplicationNo()));
                         UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
                         Patent patent = new Patent();
                         //装载start