|
@@ -3,6 +3,7 @@ package cn.cslg.pas.service.business;
|
|
|
import cn.cslg.pas.common.dto.business.LiteratureQueryDTO;
|
|
|
import cn.cslg.pas.common.model.cronModel.PersonnelVO;
|
|
|
import cn.cslg.pas.common.model.cronModel.Records;
|
|
|
+import cn.cslg.pas.common.model.cronModel.SystemFile;
|
|
|
import cn.cslg.pas.common.utils.CacheUtils;
|
|
|
import cn.cslg.pas.common.utils.LoginUtils;
|
|
|
import cn.cslg.pas.common.vo.CompareLiteratureVO;
|
|
@@ -15,6 +16,8 @@ import cn.cslg.pas.exception.XiaoShiException;
|
|
|
import cn.cslg.pas.mapper.CompareLiteratureMapper;
|
|
|
import cn.cslg.pas.service.business.es.EsPatentService;
|
|
|
import cn.cslg.pas.service.business.es.EsService;
|
|
|
+import cn.cslg.pas.service.common.FileManagerService;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -23,7 +26,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
+import java.util.concurrent.Callable;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -45,6 +50,9 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
|
|
|
@Autowired
|
|
|
private ReportProjectService reportProjectService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private FileManagerService fileManagerService;
|
|
|
+
|
|
|
//添加专利对比文献
|
|
|
public Integer addPatentCompareLiterature(String patentNo, Integer projectId, String createId) {
|
|
|
Integer id = null;
|
|
@@ -67,19 +75,42 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
|
|
|
}
|
|
|
|
|
|
//添加对比文献
|
|
|
- public Integer addCompareLiterature(CompareLiteratureDTO compareLiteratureDTO) {
|
|
|
+ public Integer addNotPatent(CompareLiteratureDTO compareLiteratureDTO) {
|
|
|
PersonnelVO personnelVO = new PersonnelVO();
|
|
|
+ Integer projectId = compareLiteratureDTO.getProjectId();
|
|
|
try {
|
|
|
- personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
+ personnelVO = new PersonnelVO();
|
|
|
+ personnelVO.setId("1");
|
|
|
+// personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
} catch (Exception e) {
|
|
|
throw new UnLoginException("未登录");
|
|
|
}
|
|
|
+ Integer order = 0;
|
|
|
+ //根据报告id获得最大序号
|
|
|
+ LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(CompareLiterature::getProjectId, projectId);
|
|
|
+ CompareLiterature compareLiteratureBig = this.getOne(queryWrapper, false);
|
|
|
+ if (compareLiteratureBig != null && compareLiteratureBig.getSysOrder() != null) {
|
|
|
+ order = compareLiteratureBig.getSysOrder() + 1;
|
|
|
+ }
|
|
|
CompareLiterature compareLiterature = new CompareLiterature();
|
|
|
compareLiterature.setCreateId(personnelVO.getId());
|
|
|
+ //报告id
|
|
|
compareLiterature.setProjectId(compareLiteratureDTO.getProjectId());
|
|
|
+ //文档guid
|
|
|
compareLiterature.setLiteratureNo(compareLiteratureDTO.getFileGuid());
|
|
|
+ //文档名称
|
|
|
compareLiterature.setName(compareLiteratureDTO.getName());
|
|
|
+ //描述
|
|
|
compareLiterature.setDescription(compareLiteratureDTO.getDescription());
|
|
|
+ //作者
|
|
|
+ compareLiterature.setAuthorName(compareLiteratureDTO.getAuthorName());
|
|
|
+ //类型
|
|
|
+ compareLiterature.setType(1);
|
|
|
+ //装载排序
|
|
|
+ compareLiterature.setSysOrder(order);
|
|
|
+ //装载公开日
|
|
|
+ compareLiterature.setPublicDate(compareLiteratureDTO.getPublicDate());
|
|
|
compareLiterature.insert();
|
|
|
|
|
|
return compareLiterature.getId();
|
|
@@ -104,10 +135,10 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
|
|
|
compareLiteratureVOS = this.loadCompareLiterature(compareLiteratures, reportProject);
|
|
|
//装载不同的类型的对比文献
|
|
|
Records records = new Records();
|
|
|
- records.setData(compareLiteratureVOS);
|
|
|
- records.setTotal(page.getTotal());
|
|
|
- records.setSize(Long.parseLong(literatureQueryDTO.getSize().toString()));
|
|
|
- records.setCurrent(Long.parseLong(literatureQueryDTO.getCurrent().toString()));
|
|
|
+ records.setData(compareLiteratureVOS);
|
|
|
+ records.setTotal(page.getTotal());
|
|
|
+ records.setSize(Long.parseLong(literatureQueryDTO.getSize().toString()));
|
|
|
+ records.setCurrent(Long.parseLong(literatureQueryDTO.getCurrent().toString()));
|
|
|
return records;
|
|
|
}
|
|
|
|
|
@@ -117,9 +148,9 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
|
|
|
//查询标的专利号
|
|
|
List<CompareLiteratureVO> compareLiteratureVOS = new ArrayList<>();
|
|
|
//非专利文献列表
|
|
|
- List<CompareLiterature> fileLiterature = compareLiteratures.stream().filter(item -> item.getType().equals(2)).collect(Collectors.toList());
|
|
|
+ List<String> guids = compareLiteratures.stream().filter(item -> item.getType().equals(1)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
|
|
|
//专利文献列表
|
|
|
- List<String> patentNos = compareLiteratures.stream().filter(item -> item.getType().equals(1)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
|
|
|
+ List<String> patentNos = compareLiteratures.stream().filter(item -> item.getType().equals(0)).map(CompareLiterature::getLiteratureNo).collect(Collectors.toList());
|
|
|
List<Patent> patentList = new ArrayList<>();
|
|
|
|
|
|
if (reportProject.getSignPatentNo() != null) {
|
|
@@ -128,7 +159,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
|
|
|
|
|
|
if (patentNos.size() > 0) {
|
|
|
try {
|
|
|
- patentList = esPatentService.getPatentsByNo(patentNos,false,null,null);
|
|
|
+ patentList = esPatentService.getPatentsByNo(patentNos, false, null, null);
|
|
|
} catch (Exception e) {
|
|
|
throw new XiaoShiException("装载文献信息失败");
|
|
|
}
|
|
@@ -140,17 +171,30 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
|
|
|
|| item.getPublicNo().equals(signPatentNo) ||
|
|
|
item.getGrantNo().equals(signPatentNo)).findFirst().orElse(null);
|
|
|
|
|
|
-
|
|
|
+ //查询文件
|
|
|
+ List<SystemFile> systemFiles = new ArrayList<>();
|
|
|
+ //查询文件
|
|
|
+ if (guids.size() != 0) {
|
|
|
+ try {
|
|
|
+ String res = fileManagerService.getSystemFileFromFMS(guids);
|
|
|
+ if (res != null && !res.trim().equals("")) {
|
|
|
+ systemFiles = JSONObject.parseArray(res, SystemFile.class);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new XiaoShiException("装载错误");
|
|
|
+ }
|
|
|
+ }
|
|
|
for (CompareLiterature compareLiterature : compareLiteratures) {
|
|
|
Integer id = compareLiterature.getId();
|
|
|
String literatureNo = compareLiterature.getLiteratureNo();
|
|
|
+ Date publicDate = compareLiterature.getPublicDate();
|
|
|
CompareLiteratureVO compareLiteratureVO = new CompareLiteratureVO();
|
|
|
compareLiteratureVO.setId(id);
|
|
|
compareLiteratureVO.setName(compareLiterature.getName());
|
|
|
-
|
|
|
+ compareLiteratureVO.setLiteratureNo(compareLiterature.getLiteratureNo());
|
|
|
//当为专利文献时
|
|
|
- if (compareLiterature.getType().equals(1)) {
|
|
|
- compareLiteratureVO.setIfSignAppEarly(false);
|
|
|
+ if (compareLiterature.getType().equals(0)) {
|
|
|
+ compareLiteratureVO.setFitType(0);
|
|
|
if (patentList.size() > 0) {
|
|
|
Patent patent = patentList.stream()
|
|
|
.filter(item -> item.getAppNo().equals(literatureNo)
|
|
@@ -166,18 +210,50 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
|
|
|
|
|
|
//比较标的专利的申请日和对比专利的公开或者公告日
|
|
|
if (signPatent.getAppDate() != null) {
|
|
|
- if (patent.getPublicDate() != null) {
|
|
|
- if (signPatent.getAppDate().compareTo(patent.getPublicDate()) >= 0) {
|
|
|
- compareLiteratureVO.setIfSignAppEarly(true);
|
|
|
+ //当专利的申请日存在时
|
|
|
+ if (patent.getAppDate() != null) {
|
|
|
+ if (signPatent.getAppDate().compareTo(patent.getAppDate()) <= 0) {
|
|
|
+ compareLiteratureVO.setFitType(0);
|
|
|
+ } else if (patent.getPublicDate() != null) {
|
|
|
+ if (signPatent.getAppDate().compareTo(patent.getPublicDate()) <= 0)
|
|
|
+ compareLiteratureVO.setFitType(1);
|
|
|
+ else if (signPatent.getAppDate().compareTo(patent.getPublicDate()) > 0) {
|
|
|
+ compareLiteratureVO.setFitType(2);
|
|
|
+ }
|
|
|
+ } else if (patent.getGrantDate() != null) {
|
|
|
+ if (signPatent.getAppDate().compareTo(patent.getGrantDate()) <= 0)
|
|
|
+ compareLiteratureVO.setFitType(1);
|
|
|
+ else if (signPatent.getAppDate().compareTo(patent.getGrantDate()) > 0) {
|
|
|
+ compareLiteratureVO.setFitType(2);
|
|
|
+ }
|
|
|
}
|
|
|
- } else if (patent.getGrantDate() != null) {
|
|
|
- if (signPatent.getAppDate().compareTo(patent.getGrantDate()) >= 0) {
|
|
|
- compareLiteratureVO.setIfSignAppEarly(true);
|
|
|
- } } }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ //非专利文献
|
|
|
+ else {
|
|
|
+ if (signPatent.getAppDate() != null) {
|
|
|
+ if (publicDate != null) {
|
|
|
+ if (signPatent.getAppDate().compareTo(publicDate) <= 0) {
|
|
|
+ compareLiteratureVO.setFitType(0);
|
|
|
+ } else {
|
|
|
+ compareLiteratureVO.setFitType(2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //装载文件
|
|
|
+ if (literatureNo != null && systemFiles != null && systemFiles.size() != 0) {
|
|
|
+ SystemFile systemFile = systemFiles.stream().filter(item -> item.getGuid().equals(literatureNo)).findFirst().orElse(null);
|
|
|
+ if (systemFile != null) {
|
|
|
+ compareLiteratureVO.setSystemFile(systemFile);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
compareLiteratureVOS.add(compareLiteratureVO);
|
|
|
}
|
|
|
|