Kaynağa Gözat

20240902 查询不同版本权要

lwhhszx 1 yıl önce
ebeveyn
işleme
3d89ca661b

+ 8 - 0
src/main/java/cn/cslg/pas/controller/PatentClaimController.java

@@ -67,5 +67,13 @@ public class PatentClaimController {
         }
         return Response.success("更新成功");
     }
+    //更新权要法院意见等信息
+    @Operation(summary = "获取不同版本的权利要求")
+    @PostMapping("/getVersionClaims")
+    public Response getVersionClaims(@RequestBody QueryClaimDTO queryClaimDTO) throws Exception {
+        List<PatentClaimVO> patentClaimVOS  = patentClaimService.getVersionPatentClaim(queryClaimDTO);
+        return Response.success(patentClaimVOS);
+    }
+
 
 }

+ 62 - 6
src/main/java/cn/cslg/pas/service/business/invalidReport/PatentClaimService.java

@@ -260,8 +260,7 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
         for (PatentClaimDTO patentClaimDTO : patentClaims) {
             if (patentClaimDTO.getIfUpdate() != null && patentClaimDTO.getIfUpdate().equals(0)) {
                 continue;
-            }
-            else {
+            } else {
                 PatentClaim patentClaim = this.dtoToDomain(patentClaimDTO);
                 patentClaim.setCreateId(personnelVO.getId());
                 patentClaim.setClaimMessageId(claimMessageId);
@@ -285,10 +284,67 @@ public class PatentClaimService extends ServiceImpl<PatentClaimMapper, PatentCla
         return patentClaim;
     }
 
-    private List<PatentClaimVO> getVersionPatentClaim(QueryClaimDTO queryClaimDTO){
-        Integer projectId =queryClaimDTO.getProjectId();
-        Integer editVersion=queryClaimDTO.getEditVersion();
+    public List<PatentClaimVO> getVersionPatentClaim(QueryClaimDTO queryClaimDTO) {
+        List<PatentClaimVO> patentClaimVOS = new ArrayList<>();
+        Integer projectId = queryClaimDTO.getProjectId();
+        Integer editVersion = queryClaimDTO.getEditVersion();
+        if (editVersion == null || editVersion != 2) {
+            editVersion = 1;
+        }
+
+        //根据projectId查询出所有权利要求
+        LambdaQueryWrapper<PatentClaim> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentClaim::getProjectId, projectId).orderByAsc(PatentClaim::getSysOrder);
+        List<PatentClaim> patentClaims = this.list(queryWrapper);
+        if (patentClaims == null || patentClaims.size() == 0) {
+            return patentClaimVOS;
+        }
+        List<Integer> claimIds = patentClaims.stream().map(PatentClaim::getId).collect(Collectors.toList());
+
+        // 查询无效历史
+        LambdaQueryWrapper<PatentClaimHistory> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.ne(PatentClaimHistory::getOperateType, 2).
+                in(PatentClaimHistory::getClaimId, claimIds);
+        //如果只查询版本1
+        if (editVersion == 1) {
+            queryWrapper1.eq(PatentClaimHistory::getIfFirst, true);
+        }
+        List<PatentClaimHistory> patentClaimHistoryList = patentClaimHistoryService.list(queryWrapper1);
 
-      return  null;
+        Integer index = 0;
+        //遍历权利要求
+        for (PatentClaim patentClaim : patentClaims) {
+            PatentClaimVO patentClaimVO = new PatentClaimVO();
+            patentClaimVO.setContent(patentClaim.getContent());
+            patentClaimVO.setClaimType(patentClaim.getClaimType());
+            patentClaimVO.setSysOrder(index);
+            patentClaimVO.setId(patentClaim.getId());
+            List<PatentClaimHistory> calimHistories = patentClaimHistoryList.stream().filter(item -> item.getClaimId().equals(patentClaim.getId())).collect(Collectors.toList());
+
+            PatentClaimHistory deleteClaimHistory = calimHistories.stream().filter(item -> item.getOperateType().equals(1)).findFirst().orElse(null);
+            //查看是否有删除的历史记录,如果有则直接跳过
+            if (deleteClaimHistory != null) {
+                continue;
+            }
+
+            List<PatentClaimHistory> editClaimHistories = calimHistories.stream().filter(item -> item.getOperateType().equals(0)).collect(Collectors.toList());
+            if (editVersion == 1) {
+                if (editClaimHistories != null && editClaimHistories.size() > 0) {
+                    patentClaimVO.setContent(editClaimHistories.get(0).getContent());
+                }
+            } else if (editVersion == 2) {
+                PatentClaimHistory editClaimHistory = editClaimHistories.stream().filter(item -> item.getIfFirst().equals(false)).findFirst().orElse(null);
+                if (editClaimHistory == null) {
+                    editClaimHistory = editClaimHistories.stream().filter(item -> item.getIfFirst().equals(true)).findFirst().orElse(null);
+                }
+                if (editClaimHistory != null) {
+                    patentClaimVO.setContent(editClaimHistory.getContent());
+                }
+            }
+            patentClaimVOS.add(patentClaimVO);
+            index++;
+        }
+
+        return patentClaimVOS;
     }
 }

Dosya farkı çok büyük olduğundan ihmal edildi
+ 26 - 0
src/test/java/cn/cslg/pas/service/PatentClaimServiceTest.java