|
@@ -3,10 +3,15 @@ package cn.cslg.pas.service.novelty;
|
|
import cn.cslg.pas.common.dto.AddCompareFileDTO;
|
|
import cn.cslg.pas.common.dto.AddCompareFileDTO;
|
|
import cn.cslg.pas.common.dto.CompareFileIdDTO;
|
|
import cn.cslg.pas.common.dto.CompareFileIdDTO;
|
|
import cn.cslg.pas.common.dto.QueryCompareFileDTO;
|
|
import cn.cslg.pas.common.dto.QueryCompareFileDTO;
|
|
|
|
+import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareRecordVO;
|
|
import cn.cslg.pas.common.vo.QueryCompareFileVO;
|
|
import cn.cslg.pas.common.vo.QueryCompareFileVO;
|
|
|
|
+import cn.cslg.pas.domain.business.CompareLiterature;
|
|
|
|
+import cn.cslg.pas.domain.es.Marking;
|
|
import cn.cslg.pas.mapper.CompareLiteratureMapper;
|
|
import cn.cslg.pas.mapper.CompareLiteratureMapper;
|
|
import cn.cslg.pas.mapper.RetrieveRecordMapper;
|
|
import cn.cslg.pas.mapper.RetrieveRecordMapper;
|
|
import cn.cslg.pas.mapper.novelty.NoveltyCompareLiteratureMapper;
|
|
import cn.cslg.pas.mapper.novelty.NoveltyCompareLiteratureMapper;
|
|
|
|
+import cn.cslg.pas.service.business.CompareLiteratureService;
|
|
|
|
+import cn.cslg.pas.service.business.es.EsScratchWordsService;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -20,18 +25,20 @@ import org.springframework.context.annotation.Lazy;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.CollectionUtils;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
-* @author admin
|
|
|
|
-* @description 针对表【novelty_compare_literature(查新报告对比文件)】的数据库操作Service实现
|
|
|
|
-* @createDate 2024-09-29 09:10:32
|
|
|
|
-*/
|
|
|
|
|
|
+ * @author admin
|
|
|
|
+ * @description 针对表【novelty_compare_literature(查新报告对比文件)】的数据库操作Service实现
|
|
|
|
+ * @createDate 2024-09-29 09:10:32
|
|
|
|
+ */
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@Slf4j
|
|
@Slf4j
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
-public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareLiteratureMapper, NoveltyCompareLiterature>{
|
|
|
|
|
|
+public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareLiteratureMapper, NoveltyCompareLiterature> {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private NoveltyCompareLiteratureMapper noveltyCompareLiteratureMapper;
|
|
private NoveltyCompareLiteratureMapper noveltyCompareLiteratureMapper;
|
|
@@ -41,6 +48,8 @@ public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareL
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private CompareLiteratureMapper compareLiteratureMapper;
|
|
private CompareLiteratureMapper compareLiteratureMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private EsScratchWordsService esScratchWordsService;
|
|
|
|
|
|
public List<QueryCompareFileVO> queryCompareFile(QueryCompareFileDTO vo) {
|
|
public List<QueryCompareFileVO> queryCompareFile(QueryCompareFileDTO vo) {
|
|
return noveltyCompareLiteratureMapper.queryCompareFile(vo);
|
|
return noveltyCompareLiteratureMapper.queryCompareFile(vo);
|
|
@@ -80,6 +89,90 @@ public class NoveltyCompareLiteratureService extends ServiceImpl<NoveltyCompareL
|
|
|
|
|
|
compareLiteratureMapper.deleteById(vo.getCompareLitertureId());
|
|
compareLiteratureMapper.deleteById(vo.getCompareLitertureId());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public List<Integer> copyCompareFile(List<Integer> ids, Integer projectId, Integer fromProjectId) throws Exception {
|
|
|
|
+
|
|
|
|
+ if (ids == null || ids.size() == 0) {
|
|
|
|
+ return new ArrayList<>();
|
|
|
|
+ }
|
|
|
|
+ QueryCompareFileDTO queryCompareFileDTOFrom = new QueryCompareFileDTO();
|
|
|
|
+ queryCompareFileDTOFrom.setIds(ids);
|
|
|
|
+ List<QueryCompareFileVO> queryCompareFileVOSFrom = this.getBaseMapper().queryCompareFile(queryCompareFileDTOFrom);
|
|
|
|
+ List<String> patentNos = queryCompareFileVOSFrom.stream().map(QueryCompareFileVO::getLiteratureNo).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ QueryCompareFileDTO queryCompareFileDTOTo = new QueryCompareFileDTO();
|
|
|
|
+ queryCompareFileDTOTo.setPatentNos(patentNos);
|
|
|
|
+ queryCompareFileDTOTo.setProjectId(projectId);
|
|
|
|
+ List<QueryCompareFileVO> queryCompareFileVOSTo = this.getBaseMapper().queryCompareFile(queryCompareFileDTOTo);
|
|
|
|
+
|
|
|
|
+ for (QueryCompareFileVO queryCompareFileVO : queryCompareFileVOSFrom) {
|
|
|
|
+ QueryCompareFileVO queryCompareFileVOTo = queryCompareFileVOSTo.stream().filter(item -> item.getLiteratureNo().equals(queryCompareFileVO.getLiteratureNo())).findFirst().orElse(null);
|
|
|
|
+ if (queryCompareFileVOTo == null) {
|
|
|
|
+ CompareLiterature compareLiterature = new CompareLiterature();
|
|
|
|
+ BeanUtils.copyProperties(queryCompareFileVO, compareLiterature);
|
|
|
|
+ compareLiterature.setId(null);
|
|
|
|
+ compareLiterature.insert();
|
|
|
|
+ } else {
|
|
|
|
+ Integer fromId = queryCompareFileVO.getCompareFileId();
|
|
|
|
+ if (fromId == null) {
|
|
|
|
+ //什么都不需要做
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ Integer toId = queryCompareFileVOTo.getCompareFileId();
|
|
|
|
+ if (toId == null) {
|
|
|
|
+ NoveltyCompareLiterature noveltyCompareLiterature = new NoveltyCompareLiterature();
|
|
|
|
+ BeanUtils.copyProperties(queryCompareFileVO, noveltyCompareLiterature);
|
|
|
|
+ noveltyCompareLiterature.setRetrieveRecordId(queryCompareFileVOTo.getRetrieveRecordId());
|
|
|
|
+ noveltyCompareLiterature.insert();
|
|
|
|
+ } else {
|
|
|
|
+ NoveltyCompareLiterature noveltyCompareLiterature = new NoveltyCompareLiterature();
|
|
|
|
+ BeanUtils.copyProperties(queryCompareFileVOTo, noveltyCompareLiterature);
|
|
|
|
+ if (queryCompareFileVO.getBeneficialEffect() != null) {
|
|
|
|
+ noveltyCompareLiterature.setBeneficialEffect(noveltyCompareLiterature.getBeneficialEffect() + queryCompareFileVO.getBeneficialEffect());
|
|
|
|
+ }
|
|
|
|
+ if (queryCompareFileVO.getRelevance() != null) {
|
|
|
|
+ noveltyCompareLiterature.setRelevance(noveltyCompareLiterature.getRelevance() + queryCompareFileVO.getRelevance());
|
|
|
|
+ }
|
|
|
|
+ if (queryCompareFileVO.getLiteratureRemark() != null) {
|
|
|
|
+ noveltyCompareLiterature.setRemark(noveltyCompareLiterature.getRemark() + queryCompareFileVO.getLiteratureRemark());
|
|
|
|
+ }
|
|
|
|
+ if (queryCompareFileVO.getGeneralRemark() != null) {
|
|
|
|
+ noveltyCompareLiterature.setGeneralRemark(noveltyCompareLiterature.getGeneralRemark() + queryCompareFileVO.getGeneralRemark());
|
|
|
|
+ }
|
|
|
|
+ if (queryCompareFileVO.getTechnicalPoints() != null) {
|
|
|
|
+ noveltyCompareLiterature.setGeneralRemark(noveltyCompareLiterature.getTechnicalPoints() + queryCompareFileVO.getTechnicalPoints());
|
|
|
|
+ }
|
|
|
|
+ if (queryCompareFileVO.getExcuteCase() != null) {
|
|
|
|
+ noveltyCompareLiterature.setExcuteCase(noveltyCompareLiterature.getExcuteCase() + queryCompareFileVO.getExcuteCase());
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if (queryCompareFileVO.getBeneficialEffect() != null) {
|
|
|
|
+ noveltyCompareLiterature.setBeneficialEffect(noveltyCompareLiterature.getBeneficialEffect() + queryCompareFileVO.getBeneficialEffect());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //添加标注
|
|
|
|
+ if (patentNos != null && patentNos.size() > 0) {
|
|
|
|
+ List<NoveltyCompareRecordVO> noveltyCompareRecordVOS = esScratchWordsService.queryMarkingByNo(fromProjectId, patentNos);
|
|
|
|
+ List<Marking> markings = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ noveltyCompareRecordVOS.forEach(item -> {
|
|
|
|
+ Marking marking = new Marking();
|
|
|
|
+ BeanUtils.copyProperties(item, marking);
|
|
|
|
+ marking.setProjectId(projectId);
|
|
|
|
+ markings.add(marking);
|
|
|
|
+ });
|
|
|
|
+ esScratchWordsService.saveListToEs(markings);
|
|
|
|
+ }
|
|
|
|
+ return ids;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|