Browse Source

3/21 权要解析

lwhhszx 1 year ago
parent
commit
b2bbfe63a8

+ 30 - 0
src/main/java/cn/cslg/pas/common/dto/OPS/GetClaimsInfoParamsDTO.java

@@ -0,0 +1,30 @@
+package cn.cslg.pas.common.dto.OPS;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 远程调用爬取欧专局,获取获取权要信息的接口的DTO类
+ *
+ * @Author chenyu
+ * @Date 2023/4/12
+ */
+@Accessors(chain = true)
+@Data
+public class GetClaimsInfoParamsDTO implements Serializable {
+    /**
+     * 国家前2位首字母
+     */
+    private String cc;
+    /**
+     * 专利号数字
+     */
+    private String number;
+    /**
+     * 专利种类
+     */
+    private String kind;
+
+}

+ 30 - 0
src/main/java/cn/cslg/pas/common/dto/OPS/GetDescriptionInfoParamsDTO.java

@@ -0,0 +1,30 @@
+package cn.cslg.pas.common.dto.OPS;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 远程调用爬取欧专局,获取说明书信息的接口的DTO类
+ *
+ * @Author chenyu
+ * @Date 2023/4/12
+ */
+@Accessors(chain = true)
+@Data
+public class GetDescriptionInfoParamsDTO implements Serializable {
+    /**
+     * 国家前2位首字母
+     */
+    private String cc;
+    /**
+     * 专利号数字
+     */
+    private String number;
+    /**
+     * 专利种类
+     */
+    private String kind;
+
+}

+ 30 - 0
src/main/java/cn/cslg/pas/common/dto/OPS/GetFuTuParamsDTO.java

@@ -0,0 +1,30 @@
+package cn.cslg.pas.common.dto.OPS;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 远程调用爬取欧专局,获取附件的接口的DTO类
+ *
+ * @Author chenyu
+ * @Date 2023/4/12
+ */
+@Accessors(chain = true)
+@Data
+public class GetFuTuParamsDTO implements Serializable {
+    /**
+     * 附件链接
+     */
+    private String link;
+    /**
+     * 附件页数
+     */
+    private Integer page;
+    /**
+     * 附件类型
+     */
+    private String type;
+
+}

+ 30 - 0
src/main/java/cn/cslg/pas/common/dto/OPS/GetSearchBiblioParamsDTO.java

@@ -0,0 +1,30 @@
+package cn.cslg.pas.common.dto.OPS;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 远程调用爬取欧专局,获取一批专利著录接口的DTO类
+ *
+ * @Author chenyu
+ * @Date 2023/4/11
+ */
+@Accessors(chain = true)
+@Data
+public class GetSearchBiblioParamsDTO implements Serializable {
+    /**
+     * 检索信息条件
+     */
+    private String query;
+    /**
+     * 起始专利数(1代表从第1个专利开始,注意不是页数)
+     */
+    private Integer start;
+    /**
+     * 最后专利数(10代表到第10个专利为止,注意不是页数)
+     */
+    private Integer end;
+
+}

+ 38 - 0
src/main/java/cn/cslg/pas/common/dto/OPS/PubNo.java

@@ -0,0 +1,38 @@
+package cn.cslg.pas.common.dto.OPS;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * 公开号
+ *
+ * @Author chenyu
+ * @Date 2023/4/11
+ */
+@Accessors(chain = true)
+@Data
+public class PubNo implements Serializable {
+    /**
+     * 公开号类型(如:docdb、epodoc)
+     */
+    private String type;
+    /**
+     * 公开号国家(如:AU)
+     */
+    private String country;
+    /**
+     * 公开号数字(如:2021229172)
+     */
+    private String number;
+    /**
+     * 申请号类型格式(如:A1)
+     */
+    private String kind;
+    /**
+     * 申请号日期(如:2023-04-06T00:00:00)
+     */
+    private String date;
+
+}

+ 0 - 145
src/main/java/cn/cslg/pas/common/utils/BackupUtils.java

@@ -1,145 +0,0 @@
-package cn.cslg.pas.common.utils;
-
-import cn.hutool.core.io.FileUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.system.ApplicationHome;
-import org.springframework.stereotype.Component;
-import org.yaml.snakeyaml.Yaml;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-
-@Slf4j
-public class BackupUtils {
-
-    private final static String BACKUP_CONFIG = "backup-config.yml";
-
-    private static Backup getBackupConfig() {
-        try {
-            ApplicationHome ah = new ApplicationHome(BackupUtils.class);
-            File file = ah.getSource();
-            String rootPath = file.getParentFile().toString() + FileUtils.FILE_SEPARATOR + BACKUP_CONFIG;
-            Yaml yaml = new Yaml();
-            InputStream in = FileUtil.getInputStream(rootPath);
-            Backup backup = yaml.loadAs(in, Backup.class);
-            if (in != null) {
-                in.close();
-            }
-            return backup;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-
-
-    public void run() {
-        Backup backup = getBackupConfig();
-        if (backup == null) {
-            log.info("数据库备份配置文件不存在");
-            return;
-        }
-        log.info("数据库备份配置文件:{}", backup);
-        if (backup.isEnable()) {
-            String path = FileUtils.getStaticPath(FileUtils.BACKUP_FILE);
-            String fileName = DateUtils.getNowTimeFormat(DateUtils.YYYYMMDDHHMMSS) + ".sql";
-            try {
-                String cmd = String.format("mysqldump --skip-opt -h%s -P%s -u%s -p%s %s > %s", backup.getHost(), backup.getPort(), backup.getUsername(), backup.getPassword(), backup.getDb(), path + FileUtils.FILE_SEPARATOR + fileName);
-                String[] command;
-                if (backup.getOs() == 0) {
-                    command = new String[]{"cmd", "/c", String.valueOf(cmd)};
-                } else {
-                    command = new String[]{"/bin/sh", "-c", String.valueOf(cmd)};
-                }
-                Runtime.getRuntime().exec(command);
-                log.info("备份数据库成功");
-            } catch (Exception e) {
-                e.printStackTrace();
-                log.error("备份数据库失败");
-            }
-        }
-    }
-
-    public static class Backup {
-        private String host;
-        private String port;
-        private String db;
-        private String username;
-        private String password;
-        private int os;
-        private boolean enable;
-
-        @Override
-        public String toString() {
-            return "Backup{" +
-                    "host='" + host + '\'' +
-                    ", port='" + port + '\'' +
-                    ", db='" + db + '\'' +
-                    ", username='" + username + '\'' +
-                    ", password='" + password + '\'' +
-                    ", os=" + os +
-                    ", enable=" + enable +
-                    '}';
-        }
-
-        public boolean isEnable() {
-            return enable;
-        }
-
-        public void setEnable(boolean enable) {
-            this.enable = enable;
-        }
-
-        public String getHost() {
-            return host;
-        }
-
-        public void setHost(String host) {
-            this.host = host;
-        }
-
-        public String getPort() {
-            return port;
-        }
-
-        public void setPort(String port) {
-            this.port = port;
-        }
-
-        public String getDb() {
-            return db;
-        }
-
-        public void setDb(String db) {
-            this.db = db;
-        }
-
-        public String getUsername() {
-            return username;
-        }
-
-        public void setUsername(String username) {
-            this.username = username;
-        }
-
-        public String getPassword() {
-            return password;
-        }
-
-        public void setPassword(String password) {
-            this.password = password;
-        }
-
-        public int getOs() {
-            return os;
-        }
-
-        public void setOs(int os) {
-            this.os = os;
-        }
-    }
-
-}

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

@@ -45,35 +45,6 @@ public class FileUtils {
         return rootPath;
     }
 
-    public String analysisJsonFile() {
-        ApplicationHome ah = new ApplicationHome(BackupUtils.class);
-        File file = ah.getSource();
-        String settingFilePath = file.getParentFile().toString() + FileUtils.FILE_SEPARATOR + "uploadSetting.json";
-        BufferedReader reader = null;
-        StringBuilder last = new StringBuilder();
-        InputStreamReader inputStreamReader;
-        try (FileInputStream fileInputStream = new FileInputStream(settingFilePath)) {
-            inputStreamReader = new InputStreamReader(fileInputStream, StandardCharsets.UTF_8);
-
-            reader = new BufferedReader(inputStreamReader);
-            String tempString;
-            while ((tempString = reader.readLine()) != null) {
-                last.append(tempString);
-            }
-            reader.close();
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            if (reader != null) {
-                try {
-                    reader.close();
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-        return last.toString();
-    }
 
     public static   File  getFileByBytes(byte[] bytes, String prefix, String suffix) {
         BufferedOutputStream bos = null;

+ 0 - 2
src/main/java/cn/cslg/pas/common/utils/LoginUtils.java

@@ -6,8 +6,6 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestAttributes;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
-
-
 import java.util.List;
 
 @Component

+ 13 - 0
src/main/java/cn/cslg/pas/common/utils/PatentNoUtil.java

@@ -0,0 +1,13 @@
+package cn.cslg.pas.common.utils;
+
+import cn.cslg.pas.common.vo.OPS.PatentNoDetailVO;
+import org.springframework.stereotype.Component;
+
+@Component
+public class PatentNoUtil {
+    public static PatentNoDetailVO getPatentNoDetail(String patentNo){
+        PatentNoDetailVO patentNoDetailVO=new PatentNoDetailVO();
+        //TODO
+        return patentNoDetailVO;
+    }
+}

+ 15 - 0
src/main/java/cn/cslg/pas/common/vo/OPS/PatentNoDetailVO.java

@@ -0,0 +1,15 @@
+package cn.cslg.pas.common.vo.OPS;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 拆分保存特征的前端传输DTO类
+ */
+@Data
+@Accessors(chain = true)
+public class PatentNoDetailVO {
+private String cc;
+private String number;
+private String kind;
+}

+ 0 - 1
src/main/java/cn/cslg/pas/controller/CompareLiteratureController.java

@@ -92,7 +92,6 @@ public class CompareLiteratureController {
             return Response.success("删除成功");
         } catch (Exception e) {
             return Response.error("删除失败");
-
         }
     }
 }

+ 46 - 18
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -105,7 +105,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
 
         List<String> sqls = formatQueryService.reSqls(queryRequest, "patentProject");
-        sqls =this.loadSearchSql(sqls);
+        sqls = this.loadSearchSql(sqls);
         //根据sql查询专题库信息
         List<PatentProjectVO> patentProjectVOS = patentProjectMapper.getPatentProject(sqls.get(0), sqls.get(1), sqls.get(2));
         Long total = patentProjectMapper.getPatentProjectCount(sqls.get(0));
@@ -194,7 +194,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         StringRequest stringRequest = new StringRequest();
         BeanUtils.copyProperties(groupRequest, stringRequest);
         List<String> sqls = formatQueryService.reSqls(stringRequest, tableName);
-        sqls=this.loadSearchSql(sqls);
+        sqls = this.loadSearchSql(sqls);
         //格式化 分组
         GroupConfig groupConfig = null;
         if (groupRequest.getGroupBy() != null) {
@@ -207,13 +207,13 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         }
 
         tableName = "patent_project as pp left join project as p on pp.project_id = p.id ";
-      tableName+=  "left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id " +
+        tableName += "left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id " +
                 "left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id " +
                 "left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id";
         //返回分组数据
         QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
-        String countFiled="distinct p.id";
-        ReGroupDataVO reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField(),countFiled);
+        String countFiled = "distinct p.id";
+        ReGroupDataVO reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField(), countFiled);
 
         //装载数据
         GroupVO groupVO = new GroupVO();
@@ -322,7 +322,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         if (events != null && events.size() != 0) {
             //遍历传入的事件集合
             if (events != null && events.size() != 0) {
-                assoProjectEventService.addAssoEventProject(events,project.getId(),0);
+                assoProjectEventService.addAssoEventProject(events, project.getId(), 0);
             }
         }
 
@@ -374,7 +374,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             //遍历传入的树
             for (ProjectTreesDTO projectTreesDTO : trees) {
                 List<Integer> valueIds = projectTreesDTO.getValueIds();
-                if(valueIds==null||valueIds.size()==0){
+                if (valueIds == null || valueIds.size() == 0) {
                     valueIds = Arrays.asList(0);
                 }
                 //遍历值id集合
@@ -497,7 +497,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         List<ProjectEventDTO> events = updatePatentProjectDTO.getEvents();
         if (events != null && events.size() != 0) {
             if (events != null && events.size() != 0) {
-                assoProjectEventService.addAssoEventProject(events,project.getId(),0);
+                assoProjectEventService.addAssoEventProject(events, project.getId(), 0);
             }
         }
 
@@ -553,7 +553,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             //遍历传入的树
             for (ProjectTreesDTO projectTreesDTO : trees) {
                 List<Integer> valueIds = projectTreesDTO.getValueIds();
-                if(valueIds==null||valueIds.size()==0){
+                if (valueIds == null || valueIds.size() == 0) {
                     valueIds = Arrays.asList(0);
                 }
                 //遍历值id集合
@@ -879,20 +879,19 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         }
 
     }
+
     //装载查询语句
-    private List<String> loadSearchSql(List<String> sqls){
-        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
-        String id =personnelVO.getId();
-        Integer tenantId= personnelVO.getTenantId();
+    private List<String> loadSearchSql(List<String> sqls) {
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        String id = personnelVO.getId();
+        Integer tenantId = personnelVO.getTenantId();
         Integer roleType = personnelVO.getRoleType();
         String rootSql = "";
         if (roleType == null || roleType.equals(0)) {
-           rootSql ="(p.create_id ="+id+" or p.head_id="+id+" or p.id in (select project_id from asso_project_person where person_id ="+id+"))";
+            rootSql = "(p.create_id =" + id + " or p.head_id=" + id + " or p.id in (select project_id from asso_project_person where person_id =" + id + "))";
 
-        }
-        else if(roleType.equals(2))
-        {
-            rootSql="(p.tenant_id="+tenantId+" or p.id in (select project_id from asso_project_person where person_id ="+id+"))";
+        } else if (roleType.equals(2)) {
+            rootSql = "(p.tenant_id=" + tenantId + " or p.id in (select project_id from asso_project_person where person_id =" + id + "))";
         }
 
         if (sqls.get(0) != null && !sqls.get(0).equals("") && !rootSql.equals("")) {
@@ -905,4 +904,33 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
 
     }
 
+    private Boolean IfNameExist(String name) {
+        Integer tenantId = 1;
+        LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Project::getTenantId, tenantId)
+                .eq(Project::getName, name);
+        Project project = projectService.getOne(queryWrapper, false);
+        if (project != null) {
+            return false;
+        }
+
+        return true;
+    }
+
+    public PatentProjectVO getPatentProjectVOById(Integer projectId) {
+        List<String> sqls = new ArrayList<>();
+        String sql1 = "p.id =" + projectId;
+        sqls.add(sql1);
+        sqls.add(null);
+        sqls.add(null);
+        List<PatentProjectVO> patentProjectVOS = patentProjectMapper.getPatentProject(sqls.get(0), sqls.get(1), sqls.get(2));
+       try {
+           this.loadPatentProject(patentProjectVOS);
+       }
+    catch (Exception e){}
+       if(patentProjectVOS!=null&&patentProjectVOS.size()>0){
+           return  patentProjectVOS.get(0);
+       }
+       return null;
+    }
 }

+ 118 - 0
src/main/java/cn/cslg/pas/service/common/OPSService.java

@@ -0,0 +1,118 @@
+package cn.cslg.pas.service.common;
+
+import cn.cslg.pas.common.dto.OPS.*;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+@Service
+public class OPSService {
+    /**
+     * 远程调用获取一批专利著录的接口
+     *
+     * @return
+     */
+    @Value("${OPSUrl}")
+    private String OPSUrl;
+    public String getSearchBiblio(GetSearchBiblioParamsDTO getSearchBiblioParamsDTO) throws IOException {
+        //String param = new Gson().toJson(getSearchBiblioParamsDTO);
+        //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(OPSUrl + "/api/OPSQuery/SearchBiblio?query=" + getSearchBiblioParamsDTO.getQuery() + "&start=" + getSearchBiblioParamsDTO.getStart() + "&end=" + getSearchBiblioParamsDTO.getEnd())
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * 远程调用获取权要信息的接口
+     *
+     * @return
+     */
+    public String getClaimsInfo(GetClaimsInfoParamsDTO getClaimsInfoParamsDTO) throws IOException {
+        //String param = new Gson().toJson(getClaimsInfoParamsDTO);
+        //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(OPSUrl + "/api/OPSQuery/GetClaimsInfo?cc=" + getClaimsInfoParamsDTO.getCc() + "&number=" + getClaimsInfoParamsDTO.getNumber() + "&kind=" + getClaimsInfoParamsDTO.getKind())
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * 远程调用获取说明书的接口
+     *
+     * @return
+     */
+    public String getDescriptionInfo(GetDescriptionInfoParamsDTO getDescriptionInfoParamsDTO) throws IOException {
+        //String param = new Gson().toJson(getDescriptionInfoParamsDTO);
+        //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(OPSUrl + "/api/OPSQuery/GetDescriptionInfo?cc=" + getDescriptionInfoParamsDTO.getCc() + "&number=" + getDescriptionInfoParamsDTO.getNumber() + "&kind=" + getDescriptionInfoParamsDTO.getKind())
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * 远程调用获取Image信息的接口
+     *
+     * @return
+     */
+    public String getImagesInfo(PubNo pubNo) throws IOException {
+        String pn = pubNo.getCountry() + pubNo.getNumber() + "." + pubNo.getKind();
+        //String param = new Gson().toJson(pn);
+        //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(OPSUrl + "/api/OPSQuery/GetImagesInfo?Pn=" + pn)
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
+
+    /**
+     * 远程调用获取附件文件流的接口
+     *
+     * @return
+     */
+    public byte[] getPatentFile(GetFuTuParamsDTO getFuTuParamsDTO) throws IOException {
+        //String param = new Gson().toJson(getFuTuParamsDTO);
+        //RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), param);
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(OPSUrl + "/api/OPSQuery/GetPatentFile?link=" + getFuTuParamsDTO .getLink() + "&page=" + getFuTuParamsDTO.getPage() + "&type=" + getFuTuParamsDTO.getType())
+                .get()
+                .build();
+        byte[] buffer = okHttpClient.newCall(request).execute().body().bytes();
+        return buffer;
+    }
+
+}

+ 5 - 6
src/main/java/cn/cslg/pas/service/exportProject/ExportProjectService.java

@@ -11,6 +11,7 @@ import cn.cslg.pas.common.vo.PatentData;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.common.vo.UploadParamsVO;
 import cn.cslg.pas.common.vo.UploadSettingVO;
+import cn.cslg.pas.common.vo.business.PatentProjectVO;
 import cn.cslg.pas.common.vo.exportProject.CustomFiledExportVO;
 import cn.cslg.pas.common.vo.exportProject.CustomFiledRecord;
 import cn.cslg.pas.domain.business.*;
@@ -59,7 +60,8 @@ public class ExportProjectService {
     private TreeNodeService treeNodeService;
     @Autowired
     private EsCustomFieldService esCustomFieldService;
-
+     @Autowired
+     private PatentProjectService patentProjectService;
     public void exportProject(Integer projectId) {
         String directoryName = IdUtil.simpleUUID();
         String url = FileUtils.getStaticPath(directoryName);
@@ -78,10 +80,10 @@ public class ExportProjectService {
     public void writeProjectToFile(Integer projectId, String url) {
         //根据projectId查询对象
         try {
-            Project project = projectService.getById(projectId);
+            PatentProjectVO patentProjectVO=patentProjectService.getPatentProjectVOById(projectId);
             String projectUrl = url + "\\project.json";
             ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(projectUrl));
-            oos.writeObject(project);
+            oos.writeObject(patentProjectVO);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -143,10 +145,7 @@ public class ExportProjectService {
             }
         } catch (Exception e) {
             e.printStackTrace();
-
         }
-
-
     }
 
 

+ 6 - 2
src/main/java/cn/cslg/pas/service/exportProject/ImportProjectService.java

@@ -1,8 +1,11 @@
 package cn.cslg.pas.service.exportProject;
 
+import cn.cslg.pas.common.dto.business.PatentProjectDTO;
 import cn.cslg.pas.common.utils.FileUtils;
+import cn.cslg.pas.common.vo.business.PatentProjectVO;
 import cn.cslg.pas.domain.business.Project;
 import cn.hutool.core.util.ZipUtil;
+import com.alibaba.fastjson2.util.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.io.File;
@@ -20,8 +23,9 @@ public class ImportProjectService {
             ZipFile zipFile = new ZipFile(file);
             InputStream inputStream = ZipUtil.get(zipFile,"project.json");
             ObjectInputStream ois = new ObjectInputStream(inputStream);
-            Project project = (Project) ois.readObject();
-            System.out.println(project);
+            PatentProjectVO patentProjectVO = (PatentProjectVO) ois.readObject();
+            PatentProjectDTO patentProjectDTO =new PatentProjectDTO();
+
         } catch (Exception e) {
         }
 

+ 0 - 53
src/main/java/cn/cslg/pas/service/importPatent/GetRightAndFullTextFromWebThread.java

@@ -140,59 +140,6 @@ public class GetRightAndFullTextFromWebThread extends Thread {
 
     }
 
-    //装载说明书文档
-    private void loadFullText(UploadPatentWebDTO uploadPatentWebDTO, String cnFullXmlStr) {
-        Patent patent = uploadPatentWebDTO.getPatent();
-        try {
-            //若没有取到全文文本,即取不到说明书文本,则将当前申请号或专利号和备注信息记录到问题记录表
-            if (cnFullXmlStr.equals("")) {
-                return;
-            }
-
-            SAXReader reader = new SAXReader();
-            reader.setEntityResolver(new IgnoreDTDEntityResolver());
-            Reader stringReader = new StringReader(cnFullXmlStr);
-            Document document = reader.read(stringReader);
-            XPath xpath = document.createXPath("//description//p");
-            List<Element> elements = (List<Element>) xpath.selectNodes(document);
-            if (elements.size() == 0) {
-                xpath = document.createXPath("//business:Description//base:Paragraphs");
-                elements = (List<Element>) xpath.selectNodes(document);
-            }
-            List<String> fullTexts = new ArrayList<>();
-            Integer count = 1;
-            for (Element item : elements) {
-                String fullText = item.getText().replaceAll("<br/>", "");
-                if (!fullText.trim().equals("技术领域")
-                        && !fullText.trim().equals("发明内容")
-                        && !fullText.trim().equals("附图说明")
-                        && !fullText.trim().equals("具体实施方式")
-                        && !fullText.trim().equals("背景技术")
-                        && !fullText.trim().equals("实用新型内容")) {
-                    String formattedNum = String.format("%04d", count);
-                    fullText = "[" + formattedNum + "]" + fullText;
-                    count++;
-                }
-                fullText = fullText.replaceAll("\r\n|\r|\n| ", "");
-                fullTexts.add(fullText);
-            }
-            String fullText = "";
-            if (fullTexts.size() != 0) {
-                fullText = cn.cslg.pas.common.utils.StringUtils.join(fullTexts, "\r");
-            }
-            Text text = new Text();
-            text.setIfOrigin(true);
-            text.setTextContent(fullText);
-            text.setLanguage(patent.getAppCountry());
-            patent.setPublicFullText(Arrays.asList(text));
-
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-
-    }
-
     public void setIfProductAll(Boolean ifProductAll) {
         this.ifProductAll = ifProductAll;
         if (taskLock.tryLock()) {

+ 25 - 2
src/main/java/cn/cslg/pas/service/importPatent/ImportSinglePatentService.java

@@ -9,6 +9,8 @@ import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.esDataForm.AddressSplitter;
 import cn.cslg.pas.common.utils.esDataForm.PatentClassifySplitter;
 import cn.cslg.pas.common.vo.*;
+import cn.cslg.pas.common.dto.OPS.GetClaimsInfoParamsDTO;
+import cn.cslg.pas.common.dto.OPS.GetDescriptionInfoParamsDTO;
 import cn.cslg.pas.domain.business.PatentClaim;
 import cn.cslg.pas.domain.business.ReportProject;
 import cn.cslg.pas.domain.es.*;
@@ -17,12 +19,11 @@ import cn.cslg.pas.service.business.ReportProjectService;
 import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.business.invalidReport.PatentClaimService;
 import cn.cslg.pas.service.common.FileManagerService;
+import cn.cslg.pas.service.common.OPSService;
 import cn.cslg.pas.service.common.PatentStarApiService;
-import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
-import lombok.experimental.Accessors;
 import org.dom4j.Document;
 import org.dom4j.Element;
 import org.dom4j.XPath;
@@ -58,6 +59,8 @@ public class ImportSinglePatentService {
     private CacheUtils cacheUtils;
     @Autowired
     private LoginUtils loginUtils;
+    @Autowired
+    private OPSService opsService;
 
     public StarPatentVO getPatentFromWeb(String patentNo) {
         StarPatentVO starPatentVO = null;
@@ -860,4 +863,24 @@ public class ImportSinglePatentService {
         return ts;
 
     }
+
+    /**
+     * 从OPS装载权利要求
+     * @param uploadPatentWebDTO
+     * @throws Exception
+     */
+    public void loadClaimFromOPS(UploadPatentWebDTO uploadPatentWebDTO) throws Exception {
+        //从ops获取权利要求
+        GetClaimsInfoParamsDTO getClaimsInfoParamsDTO = new GetClaimsInfoParamsDTO();
+        opsService.getClaimsInfo(getClaimsInfoParamsDTO);
+    }
+
+    /**
+     * 从OPS装载说明书
+     * @throws Exception
+     */
+    private void  loadFullTextFromOPS(UploadPatentWebDTO uploadPatentWebDTO) throws Exception{
+        GetDescriptionInfoParamsDTO getDescriptionInfoParamsDTO =new GetDescriptionInfoParamsDTO();
+        opsService.getDescriptionInfo(getDescriptionInfoParamsDTO);
+    }
 }

+ 1 - 1
src/main/resources/application-prodNetOut.yml

@@ -12,7 +12,7 @@ spring:
         max-wait: -1ms
     timeout: 2000ms
   datasource:
-    url: jdbc:mysql://47.101.137.223:3306/pas-prod?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
+    url: jdbc:mysql://47.101.137.223:3306/pas_prod2?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=GMT%2B8
     username: root
     password: TU5x6IeBi7rl
     driver-class-name: com.mysql.cj.jdbc.Driver