Browse Source

批量保存特征/修复bug/检索记录管理

lwhhszx 1 year ago
parent
commit
c2993ae5da

+ 10 - 0
src/main/java/cn/cslg/pas/common/dto/QuerySearchRecordDTO.java

@@ -0,0 +1,10 @@
+package cn.cslg.pas.common.dto;
+
+import lombok.Data;
+
+@Data
+public class QuerySearchRecordDTO {
+    private Integer projectId;
+    private Long size;
+    private Long current;
+}

+ 37 - 0
src/main/java/cn/cslg/pas/common/dto/business/AddSearchRecordDTO.java

@@ -0,0 +1,37 @@
+package cn.cslg.pas.common.dto.business;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class AddSearchRecordDTO {
+    private Integer id;
+    /**
+     * 检索历史
+     */
+    private String searchCondition;
+    /**
+     * 检索数据库
+     */
+    private String searchBase;
+
+    /**
+     * 检索数量
+     */
+    private Integer allNum;
+    /**
+     * 检索人
+     */
+    private String searchPerson;
+    /**
+     * 检索时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date searchTime;
+    private Integer projectId;
+}

+ 45 - 0
src/main/java/cn/cslg/pas/common/vo/SearchRecordVO.java

@@ -0,0 +1,45 @@
+package cn.cslg.pas.common.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SearchRecordVO {
+    private Integer id;
+
+    /**
+     * 检索历史
+     */
+
+    private String searchCondition;
+    /**
+     * 检索数据库
+     */
+    private String searchBase;
+
+    /**
+     * 检索数量
+     */
+
+    private Integer allNum;
+    /**
+     * 检索人
+     */
+
+    private String searchPerson;
+    /**
+     * 检索时间
+     */
+
+    private Date searchTime;
+
+
+    private String createId;
+
+    private String createName;
+    private Date createTime;
+
+    private Integer projectId;
+}

+ 18 - 0
src/main/java/cn/cslg/pas/controller/FeatureController.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.controller;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.dto.QuerySplitDTO;
 import cn.cslg.pas.common.dto.invalidDTO.QueryClaimSplitHistoryDTO;
+import cn.cslg.pas.common.dto.invalidDTO.UpdateFeatureDTO;
 import cn.cslg.pas.common.model.cronModel.Records;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.common.vo.business.SplitVO;
@@ -17,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 
 /**
  * 特征Controller层
@@ -122,4 +125,19 @@ public class FeatureController {
         }
 
     }
+
+
+    @Operation(summary = "批量添加特征")
+    @PostMapping("/saveBatchFeature")
+    public Response saveBatchFeature(@RequestBody UpdateFeatureDTO updateFeatureDTO) throws Exception {
+        try {
+            Records records = new Records();
+            List<Integer> ids = featureService.saveBatchFeature(updateFeatureDTO);
+            records.setData(ids);
+            return Response.success(records);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+    }
 }

+ 74 - 0
src/main/java/cn/cslg/pas/controller/SearchRecordController.java

@@ -0,0 +1,74 @@
+package cn.cslg.pas.controller;
+
+
+import cn.cslg.pas.common.core.base.Constants;
+import cn.cslg.pas.common.dto.QuerySearchRecordDTO;
+import cn.cslg.pas.common.dto.business.AddSearchRecordDTO;
+import cn.cslg.pas.common.dto.invalidDTO.AddEvidenceReasonDTO;
+import cn.cslg.pas.common.dto.invalidDTO.QueryEvidenceReasonDTO;
+import cn.cslg.pas.common.dto.invalidDTO.QueryInvalidHistoryDTO;
+import cn.cslg.pas.common.dto.invalidDTO.UpdateMessageDTO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.common.vo.invalidVO.QueryEvidenceReasonVO;
+import cn.cslg.pas.service.SearchRecordService;
+import cn.cslg.pas.service.business.invalidReport.EvidenceReasonService;
+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;
+
+@Slf4j
+@RequestMapping(Constants.API_XiaoSHI + "/searchRecord")
+@RestController
+public class SearchRecordController {
+    @Autowired
+    private SearchRecordService searchRecordService;
+
+    @Operation(summary = "添加或更新检索记录")
+    @PostMapping("/addSearchRecord")
+    public Response addSearchRecord(@RequestBody AddSearchRecordDTO addSearchRecordDTO) {
+        Records records = new Records();
+        try {
+            Integer id = searchRecordService.addSearchRecord(addSearchRecordDTO);
+            records.setData(id);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success(records);
+    }
+
+    @Operation(summary = "删除检索记录")
+    @PostMapping("/removeSearchRecords")
+    public Response removeSearchRecords(@RequestBody List<Integer> ids) {
+        Records records = new Records();
+        try {
+            List<Integer> idList = searchRecordService.removeSearchRecords(ids);
+            records.setData(idList);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success(records);
+    }
+
+    @Operation(summary = "查询检索记录")
+    @PostMapping("/querySearchRecords")
+    public Response querySearchRecords(@RequestBody QuerySearchRecordDTO querySearchRecordDTO) {
+        Records records = new Records();
+        try {
+            records = searchRecordService.querySearchRecord(querySearchRecordDTO);
+        } catch (Exception e) {
+            return Response.error(e.getMessage());
+        }
+
+        return Response.success(records);
+    }
+
+}

+ 52 - 0
src/main/java/cn/cslg/pas/domain/business/SearchRecord.java

@@ -0,0 +1,52 @@
+package cn.cslg.pas.domain.business;
+
+import cn.cslg.pas.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 检索记录表
+ * 2024/1/10
+ * lrj
+ */
+@Data
+@TableName("search_record")
+public class SearchRecord extends BaseEntity<SearchRecord>  {
+    /**
+     * 检索历史
+     */
+    @TableField(value = "search_condition")
+    private String searchCondition;
+    /**
+     * 检索数据库
+     */
+    @TableField(value = "search_base")
+    private String searchBase;
+
+    /**
+     * 检索数量
+     */
+    @TableField(value = "all_num")
+    private Integer allNum;
+    /**
+     * 检索人
+     */
+    @TableField(value = "search_person")
+    private String searchPerson;
+    /**
+     * 检索时间
+     */
+    @TableField(value = "search_time")
+    private Date searchTime;
+
+    @TableField(value = "create_id")
+    private String createId;
+    @TableField(value = "create_time")
+    private Date createTime;
+    @TableField(value = "project_id")
+    private Integer projectId;
+
+}

+ 14 - 0
src/main/java/cn/cslg/pas/mapper/SearchRecordMapper.java

@@ -0,0 +1,14 @@
+package cn.cslg.pas.mapper;
+
+import cn.cslg.pas.domain.business.AdminProceed;
+import cn.cslg.pas.domain.business.SearchRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Author lrj
+ * @Date 2024/01/10
+ */
+@Repository
+public interface SearchRecordMapper extends BaseMapper<SearchRecord> {
+}

+ 148 - 0
src/main/java/cn/cslg/pas/service/SearchRecordService.java

@@ -0,0 +1,148 @@
+package cn.cslg.pas.service;
+
+
+import cn.cslg.pas.common.dto.QuerySearchRecordDTO;
+import cn.cslg.pas.common.dto.business.AddSearchRecordDTO;
+import cn.cslg.pas.common.model.cronModel.Personnel;
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
+import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.SearchRecordVO;
+import cn.cslg.pas.domain.business.AssoEventFile;
+import cn.cslg.pas.domain.business.SearchRecord;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.mapper.AssoEventFileMapper;
+import cn.cslg.pas.mapper.SearchRecordMapper;
+import cn.cslg.pas.service.permissions.PermissionService;
+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;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 检索记录
+ * lrj
+ */
+@Service
+public class SearchRecordService extends ServiceImpl<SearchRecordMapper, SearchRecord> {
+    @Autowired
+    private CacheUtils cacheUtils;
+    @Autowired
+    private LoginUtils loginUtils;
+
+    @Autowired
+    private PermissionService permissionService;
+
+    /**
+     * 添加检索记录
+     *
+     * @param addSearchRecordDTO
+     * @return
+     */
+    public Integer addSearchRecord(AddSearchRecordDTO addSearchRecordDTO) {
+        if (addSearchRecordDTO == null) {
+            throw new XiaoShiException("请传入数据");
+        }
+        Integer id = addSearchRecordDTO.getId();
+        SearchRecord searchRecord = new SearchRecord();
+        BeanUtils.copyProperties(addSearchRecordDTO, searchRecord);
+        if (id != null) {
+            SearchRecord searchRecord1 = this.getById(id);
+            if (searchRecord1 == null) {
+                throw new XiaoShiException("记录不存在");
+            }
+            searchRecord.setCreateId(searchRecord1.getCreateId());
+            searchRecord.setCreateTime(searchRecord1.getCreateTime());
+            searchRecord.updateById();
+        } else {
+            PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+            searchRecord.setCreateId(personnelVO.getId());
+            searchRecord.insert();
+            id = searchRecord.getId();
+        }
+        return id;
+    }
+
+    /**
+     * 删除检索记录
+     *
+     * @param ids 检索记录id
+     * @return
+     */
+    public List<Integer> removeSearchRecords(List<Integer> ids) {
+        if (ids == null) {
+            throw new XiaoShiException("请传入数据");
+        }
+        this.removeBatchByIds(ids);
+        return ids;
+    }
+
+
+    /**
+     * 删除检索记录
+     *
+     * @param querySearchRecordDTO 查询检索记录dto
+     *                             lrj
+     * @return
+     */
+    public Records querySearchRecord(QuerySearchRecordDTO querySearchRecordDTO) {
+        Integer projectId = querySearchRecordDTO.getProjectId();
+        Long size = querySearchRecordDTO.getSize();
+        Long current = querySearchRecordDTO.getCurrent();
+
+        if (projectId == null) {
+            throw new XiaoShiException("请传入报告id");
+        }
+
+        LambdaQueryWrapper<SearchRecord> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SearchRecord::getProjectId, projectId);
+        Page<SearchRecord> searchRecordPage = this.page(new Page<>(current, size), queryWrapper);
+        Long total = searchRecordPage.getTotal();
+        List<SearchRecord> searchRecords = searchRecordPage.getRecords();
+        List<SearchRecordVO> vos = this.loadRecord(searchRecords);
+        Records records = new Records();
+        records.setCurrent(current);
+        records.setSize(size);
+        records.setTotal(total);
+        records.setData(vos);
+        return records;
+    }
+
+
+    private List<SearchRecordVO> loadRecord(List<SearchRecord> searchRecords) {
+        List<SearchRecordVO> searchRecordVOS = new ArrayList<>();
+        if (searchRecords.size() == 0) {
+            return searchRecordVOS;
+        }
+        List<String> createIds = searchRecords.stream().map(SearchRecord::getCreateId).collect(Collectors.toList());
+        //查询创建人名称
+        List<Personnel> personnels = new ArrayList<>();
+        if (createIds.size() != 0) {
+            try {
+                String res = permissionService.getPersonnelByIdsFromPCS(createIds);
+                JSONObject jsonObject = JSONObject.parseObject(res);
+                personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
+            } catch (Exception e) {
+
+            }
+        }
+        for (SearchRecord searchRecord : searchRecords) {
+            SearchRecordVO searchRecordVO = new SearchRecordVO();
+            BeanUtils.copyProperties(searchRecord, searchRecordVO);
+            Personnel personnel = personnels.stream().filter(i -> i.getId().equals(searchRecordVO.getCreateId())).findFirst().orElse(null);
+            if (personnel != null) {
+                searchRecordVO.setCreateName(personnel.getPersonnelName());
+            }
+            searchRecordVOS.add(searchRecordVO);
+        }
+        return searchRecordVOS;
+    }
+}

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

@@ -465,7 +465,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         String name = literatureNo;
         if (patent != null) {
             if (patent.getTitle() != null && patent.getTitle().size() != 0) {
-                name += "(" + patent.getTitle().get(0).getTextContent();
+                name += "(" + patent.getTitle().get(0).getTextContent()+")";
             }
             compareLiterature.setAppDate(patent.getAppDate());
             compareLiterature.setPublicDate(patent.getPublicDate());
@@ -478,6 +478,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         if (patent != null && patent.getRightHolder() != null && patent.getRightHolder().size() > 0) {
             authorName = patent.getRightHolder().get(0).getName();
         }
+
         compareLiterature.setAuthorName(authorName);
         //类型
         compareLiterature.setType(0);

+ 68 - 4
src/main/java/cn/cslg/pas/service/business/FeatureService.java

@@ -458,7 +458,12 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         return allFeatures;
     }
 
-    public void saveBatchFeature(UpdateFeatureDTO updateFeatureDTO) {
+    /**
+     * 保存特征
+     * @param updateFeatureDTO
+     * @return
+     */
+    public List<Integer> saveBatchFeature(UpdateFeatureDTO updateFeatureDTO) {
         List<UpdateFeatureDTO.ChangedFeatures> features = updateFeatureDTO.getFeaturesList();
         Integer projectId = updateFeatureDTO.getProjectId();
         if (features == null) {
@@ -479,10 +484,69 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         LambdaQueryWrapper<PatentSplitMessage> queryWrapper1 = new LambdaQueryWrapper<>();
         queryWrapper1.eq(PatentSplitMessage::getPatentNo, signPatentNo)
                 .eq(PatentSplitMessage::getProjectId, projectId);
-        PatentSplitMessage patentSplitMessage =patentSplitMessageService.getOne(queryWrapper1,false);
-        if(patentSplitMessage==null){
-            throw  new XiaoShiException("未进行拆分过");
+        PatentSplitMessage patentSplitMessage = patentSplitMessageService.getOne(queryWrapper1, false);
+        if (patentSplitMessage == null) {
+            throw new XiaoShiException("未进行拆分过");
         }
+        List<Integer> ids =   this.saveFeatures(features, patentSplitMessage.getId(), projectId);
+        return ids;
+    }
+
+
+    /**
+     * 批量添加特征
+     * @param features
+     * @param splitMessageId
+     * @param projectId
+     * @return
+     */
+    public List<Integer> saveFeatures(List<UpdateFeatureDTO.ChangedFeatures> features, Integer splitMessageId, Integer projectId) {
+        List<Integer> addIds = new ArrayList<>();
+        LambdaQueryWrapper<Feature> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(Feature::getId);
+        queryWrapper.eq(Feature::getSplitMessageId, splitMessageId);
+        List<Feature> featureList = this.list(queryWrapper);
+        List<Integer> ids = featureList.stream().map(Feature::getId).collect(Collectors.toList());
+
+        PersonnelVO personnelVO = new PersonnelVO();
+        personnelVO.setId("1");
+        personnelVO.setTenantId(1);
 
+        List<Feature> addFeatures = new ArrayList<>();
+        features.forEach(item -> {
+            Integer id = item.getId();
+            if (id == null) {
+                Feature feature = new Feature();
+                feature.setCreateId(personnelVO.getId());
+                feature.setSplitMessageId(splitMessageId);
+                feature.setContent(item.getContent());
+                feature.setExplainText(item.getExplainText());
+                feature.setRightSort(item.getRightSort());
+                feature.setProjectId(projectId);
+                feature.setSysOrder(item.getSysOrder());
+                feature.setTenantId(personnelVO.getTenantId());
+                addFeatures.add(feature);
+            } else {
+                ids.remove(id);
+                if (item.getIfChange() != null && item.getIfChange().equals(true)) {
+                    Feature feature = this.getById(id);
+                    feature.setSysOrder(item.getSysOrder());
+                    feature.setContent(item.getContent());
+                    feature.setExplainText(item.getExplainText());
+                    feature.updateById();
+                }
+            }
+
+        });
+
+        //添加特征
+        if (addFeatures.size() != 0) {
+            this.saveBatch(addFeatures);
+            addIds = addFeatures.stream().map(Feature::getId).collect(Collectors.toList());
+        }
+        if (ids.size() != 0) {
+            this.removeBatchByIds(ids);
+        }
+        return addIds;
     }
 }

+ 1 - 0
src/main/java/cn/cslg/pas/service/business/invalidReport/AssoGroupFeatureService.java

@@ -176,6 +176,7 @@ public class AssoGroupFeatureService extends ServiceImpl<AssoGroupFeatureMapper,
             assoGroupFeature1.setOperateMode(1);
             assoGroupFeature1.setFeaturePreId(genFeatureId);
             assoGroupFeature1.setFeatureOrder(featureOrder);
+            assoGroupFeature1.setFeatureId(featureId);
             assoGroupFeature1.insert();
         } else {
             assoGroupFeature1.setGroupId(genGroupId);

+ 13 - 14
src/main/java/cn/cslg/pas/service/business/invalidReport/EvidenceReasonService.java

@@ -63,7 +63,6 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
 
         List<AddEvidenceReasonsDTO> addEvidenceReasonsDTOList = new ArrayList<>();
 
-        if (gen.equals(0)) {
             // 遍历装载不同的特征
             addEvidenceReasonsDTOs.forEach(item -> {
                 AddEvidenceReasonsDTO tem = addEvidenceReasonsDTOList.stream().filter(i -> i.getFeatureOrder().equals(item.getFeatureOrder())).findFirst().orElse(null);
@@ -72,7 +71,6 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
                 }
 
             });
-
             //遍历插入无id特征
             addEvidenceReasonsDTOList.forEach(item -> {
                 if (item.getFeatureId() == null) {
@@ -83,16 +81,14 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
                 }
             });
 
-        }
-
         List<Integer> assoIds = new ArrayList<>();
-        if (gen.equals(0)) {
+
             LambdaQueryWrapper<AssoGroupFeature> queryWrapper = new LambdaQueryWrapper<>();
             queryWrapper.eq(AssoGroupFeature::getGroupId, groupId)
-                    .eq(AssoGroupFeature::getFeatureGen, gen);
+                    .eq(AssoGroupFeature::getFeatureGen,0);
             List<AssoGroupFeature> assoGroupFeatures = assoGroupFeatureService.list(queryWrapper);
             assoIds = assoGroupFeatures.stream().map(AssoGroupFeature::getId).collect(Collectors.toList());
-        }
+
 
 
         for (AddEvidenceReasonsDTO addEvidenceReasonsDTO : addEvidenceReasonsDTOs) {
@@ -100,11 +96,11 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
             Integer featureId = addEvidenceReasonsDTO.getFeatureId();
             Integer featureOrder = addEvidenceReasonsDTO.getFeatureOrder();
             Integer featureGroupId = addEvidenceReasonsDTO.getFeatureGroupId();
-            if (gen.equals(0)) {
+
                 //判断
                 AddEvidenceReasonsDTO tem = addEvidenceReasonsDTOList.stream()
                         .filter(item -> addEvidenceReasonsDTO.getFeatureOrder().equals(item.getFeatureOrder())).findFirst().orElse(null);
-                if (tem == null) {
+                if (tem != null) {
                     featureId = tem.getFeatureId();
                 }
 
@@ -117,22 +113,25 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
                     assoGroupFeature.setFeatureGen(0);
                     assoGroupFeature.insert();
                     featureGroupId = assoGroupFeature.getId();
-                } else {
+                }
+                else {
                     AssoGroupFeature assoGroupFeature = assoGroupFeatureService.getById(featureGroupId);
+                    if(assoGroupFeature.getOperateMode()==null||(assoGroupFeature.getOperateMode()!=null&&!assoGroupFeature.getOperateMode().equals(1))){
                     assoGroupFeature.setFeatureId(featureId);
                     assoGroupFeature.setFeatureOrder(featureOrder);
                     assoGroupFeature.updateById();
                     assoIds.remove(featureGroupId);
+                    }
                 }
-            }
+
 
             //添加无效理由
             Integer reasonId = this.addEvidenceReason(addEvidenceReasonsDTO, personnelVO.getId());
             //根据特征证据组合关联id 删除和无效理由关联
-            LambdaQueryWrapper<AssoFeatureReason> queryWrapper = new LambdaQueryWrapper<>();
-            queryWrapper.eq(AssoFeatureReason::getGFeatureId, featureGroupId)
+            LambdaQueryWrapper<AssoFeatureReason> queryWrapper12 = new LambdaQueryWrapper<>();
+            queryWrapper12.eq(AssoFeatureReason::getGFeatureId, featureGroupId)
                     .eq(AssoFeatureReason::getGen, gen);
-            assoFeatureReasonService.remove(queryWrapper);
+            assoFeatureReasonService.remove(queryWrapper12);
             //添加特征和证据组合关联
             AssoFeatureReason assoFeatureReason = new AssoFeatureReason();
             assoFeatureReason.setReasonId(reasonId);

+ 10 - 6
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimHistoryService.java

@@ -20,6 +20,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.*;
@@ -44,6 +45,7 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
      *
      * @param alterPatentClaimDTO
      */
+    @Transactional(rollbackFor = Exception.class)
     public Integer alterPatentClaim(AlterPatentClaimDTO alterPatentClaimDTO) {
         if (alterPatentClaimDTO == null) {
             throw new XiaoShiException("入参为空");
@@ -67,12 +69,14 @@ public class PatentClaimHistoryService extends ServiceImpl<PatentClaimHistoryMap
             patentClaimHistory.setContent(alterPatentClaimDTO.getContent());
             patentClaimHistory.setDescription(alterPatentClaimDTO.getDescription());
             patentClaimHistory.updateById();
-        } else {
-            PatentClaimHistory patentClaimHistory1 = new PatentClaimHistory();
-            BeanUtils.copyProperties(alterPatentClaimDTO, patentClaimHistory1);
-            patentClaimHistory1.setOperateType(0);
-            patentClaimHistory1.setCreateId(personnelVO.getId());
-            patentClaimHistory1.insert();
+        }
+        else {
+
+             patentClaimHistory= new PatentClaimHistory();
+            BeanUtils.copyProperties(alterPatentClaimDTO, patentClaimHistory);
+            patentClaimHistory.setOperateType(0);
+            patentClaimHistory.setCreateId(personnelVO.getId());
+            patentClaimHistory.insert();
         }
 
         return patentClaimHistory.getId();

+ 7 - 2
src/main/java/cn/cslg/pas/service/importPatent/GetCataloguingFromWebThread.java

@@ -68,7 +68,7 @@ public class GetCataloguingFromWebThread extends Thread {
                 if (starPatentVO.getApplicationNo().startsWith("CN")) {
                     patentZhuLuStr = patentStarApiService.getCnBibApi(uploadPatentWebDTO.getStarPatentVO().getRowApplicationNo());
                 } else {
-                    patentZhuLuStr = patentStarApiService.getENBibApi(uploadPatentWebDTO.getStarPatentVO().getRowApplicationNo());
+                    patentZhuLuStr = patentStarApiService.getENBibApi(uploadPatentWebDTO.getStarPatentVO().getPublicNo());
                 }
                 if (patentZhuLuStr != null && !patentZhuLuStr.trim().equals("") && !patentZhuLuStr.equals("{}") && !patentZhuLuStr.contains("请求不合法")) {
                     this.loadPatent(uploadPatentWebDTO);
@@ -301,6 +301,9 @@ public class GetCataloguingFromWebThread extends Thread {
             }
             patent.setRightHolder(patentPeople);
         }
+        else if(patent.getApplicant()!=null){
+            patent.setRightHolder(patent.getApplicant());
+        }
 
         //装载法律状态(os_patent表status字段值)
         Integer status = starPatentVO.getLG();
@@ -454,7 +457,9 @@ public class GetCataloguingFromWebThread extends Thread {
                 patentPeople.add(patentPerson);
             }
             patent.setApplicant(patentPeople);
-
+            if(patent.getRightHolder()==null||patent.getRightHolder().size()==0){
+                patent.setRightHolder(patent.getApplicant());
+            }
         }
 
 

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

@@ -69,6 +69,7 @@ public class ImportSinglePatentService {
             return null;
         }
         Patent patent = this.getPatentCataloguingFromWeb(starPatentVO);
+
         PatentJoin patentJoin = new PatentJoin();
         patentJoin.setName("patent");
         patent.setPatentJoin(patentJoin);
@@ -89,16 +90,15 @@ public class ImportSinglePatentService {
         if (starPatentVO.getApplicationNo().startsWith("CN")) {
             patentZhuLuStr = patentStarApiService.getCnBibApi(starPatentVO.getRowApplicationNo());
         } else {
-            patentZhuLuStr = patentStarApiService.getENBibApi(starPatentVO.getRowApplicationNo());
+            patentZhuLuStr = patentStarApiService.getENBibApi(starPatentVO.getPublicNo());
         }
         UploadPatentWebDTO uploadPatentWebDTO = new UploadPatentWebDTO();
         uploadPatentWebDTO.setPatent(new Patent());
         uploadPatentWebDTO.setStarPatentVO(starPatentVO);
+        this.loadPatent(uploadPatentWebDTO);
         if (patentZhuLuStr != null && !patentZhuLuStr.trim().equals("") && !patentZhuLuStr.equals("{}") && !patentZhuLuStr.contains("请求不合法")) {
-            this.loadPatent(uploadPatentWebDTO);
             if (starPatentVO.getApplicationNo().startsWith("CN")) {
                 this.loadCNPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent(), starPatentVO);
-
                 //装载专利号
                 if (uploadPatentWebDTO.getPatent().getAppNo() != null) {
                     uploadPatentWebDTO.getPatent().setPatentNo(uploadPatentWebDTO.getPatent().getAppNo());
@@ -108,7 +108,7 @@ public class ImportSinglePatentService {
                     uploadPatentWebDTO.getPatent().setPatentNo(uploadPatentWebDTO.getPatent().getPublicNo());
                 }
             } else {
-//                this.loadWorldPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent());
+                this.loadWorldPatent(patentZhuLuStr, uploadPatentWebDTO.getPatent());
                 //装载专利号
                 if (uploadPatentWebDTO.getPatent().getGrantNo() != null) {
                     uploadPatentWebDTO.getPatent().setPatentNo(uploadPatentWebDTO.getPatent().getGrantNo());
@@ -124,9 +124,11 @@ public class ImportSinglePatentService {
 
     //装载专利信息
     private void loadPatent(UploadPatentWebDTO uploadPatentWebDTO) {
+
         String country = "";
         Patent patent = uploadPatentWebDTO.getPatent();
         StarPatentVO starPatentVO = uploadPatentWebDTO.getStarPatentVO();
+
         //装载专利类型
         Integer patentType = starPatentVO.getPatentType();
         if (patentType != null) {
@@ -181,6 +183,7 @@ public class ImportSinglePatentService {
         if (starPatentVO.getApplicationDate() != null && !starPatentVO.getApplicationDate().equals("")) {
             Date date = DateUtils.strToDate(starPatentVO.getApplicationDate());
             patent.setAppDate(date);
+
         }
 
         //装载发明人
@@ -201,7 +204,6 @@ public class ImportSinglePatentService {
         if (starPatentVO.getApplicationNo() != null && !starPatentVO.getApplicationNo().equals("")) {
             patent.setAppNo(starPatentVO.getApplicationNo());
             country = starPatentVO.getApplicationNo().substring(0, 2);
-
         }
 
         //装载公开号
@@ -213,6 +215,18 @@ public class ImportSinglePatentService {
             patent.setGrantNo(starPatentVO.getPublicAccreditNo());
         }
 
+        if(patent.getAppNo().startsWith("CN")){
+            patent.setPatentNo(patent.getAppNo());
+        }
+        else {
+            if(patent.getPublicNo()!=null){
+                patent.setPatentNo(patent.getPublicNo());
+            }
+            else if(patent.getGrantNo()!=null)
+            {
+                patent.setPatentNo(patent.getGrantNo());
+            }
+        }
         //装载申请人
         if (starPatentVO.getApplicantStr() != null && !starPatentVO.getApplicantStr().equals("")) {
             List<String> names = Arrays.asList(starPatentVO.getApplicantStr().split(";"));
@@ -267,6 +281,9 @@ public class ImportSinglePatentService {
             }
             patent.setRightHolder(patentPeople);
         }
+        else if(patent.getApplicant()!=null){
+            patent.setRightHolder(patent.getApplicant());
+        }
 
         //装载法律状态(os_patent表status字段值)
         Integer status = starPatentVO.getLG();
@@ -421,7 +438,9 @@ public class ImportSinglePatentService {
                 patentPeople.add(patentPerson);
             }
             patent.setApplicant(patentPeople);
-
+if(patent.getRightHolder()==null||patent.getRightHolder().size()==0){
+    patent.setRightHolder(patent.getApplicant());
+}
         }