xiexiang 2 gadi atpakaļ
vecāks
revīzija
696aade37b

+ 109 - 4
RMS/src/main/java/cn/cslg/report/service/business/InvalidReReport/InvalidReasonService.java

@@ -2,10 +2,7 @@ package cn.cslg.report.service.business.InvalidReReport;
 
 import cn.cslg.report.common.model.dto.invalidReReport.*;
 import cn.cslg.report.common.model.vo.PersonnelVO;
-import cn.cslg.report.common.model.vo.invalidReReport.PagingVO;
-import cn.cslg.report.common.model.vo.invalidReReport.ProofGroupDetailVO;
-import cn.cslg.report.common.model.vo.invalidReReport.QueryAllFeaturesVO;
-import cn.cslg.report.common.model.vo.invalidReReport.QueryInvalidReasonVO;
+import cn.cslg.report.common.model.vo.invalidReReport.*;
 import cn.cslg.report.common.utils.CacheUtils;
 import cn.cslg.report.common.utils.DataUtils;
 import cn.cslg.report.common.utils.Response;
@@ -640,4 +637,112 @@ List<InvalidReasonFieldValue> valuesTem =invalidReasonFieldValues.stream().filte
         return Response.success("修改成功");
     }
 
+
+
+    /**
+     * 导出无效理由所需的查询
+     * @param reportId
+     * @return
+     */
+    public List<ExportInvalidReasonVO> exportInvalidReason(Integer reportId){
+        List<ExportInvalidReasonVO> exportInvalidReasonVOS = new ArrayList<>();
+        //根据报告id查询出所有无效理由,无效理由(0权利要求不清楚 1说明书公开不充分 2不具备创造性 3不具备新颖性)
+        LambdaQueryWrapper<InvalidReason> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(InvalidReason::getReportId,reportId);
+        List<InvalidReason> invalidReasons = this.list(queryWrapper);
+        for(InvalidReason invalidReason : invalidReasons){
+            if(invalidReason != null){
+                ExportInvalidReasonVO exportInvalidReasonVO = this.invalidReasonToExport(invalidReason);
+                exportInvalidReasonVOS.add(exportInvalidReasonVO);
+            }
+        }
+        return exportInvalidReasonVOS;
+    }
+
+    /**
+     * 根据无效理由对象转换成返回的VO类
+     * @param invalidReason
+     * @return
+     */
+    public ExportInvalidReasonVO invalidReasonToExport(InvalidReason invalidReason){
+        ExportInvalidReasonVO exportInvalidReasonVO = new ExportInvalidReasonVO();
+        //陈述意见
+        exportInvalidReasonVO.setArgumentStr(invalidReason.getArgumentStr());
+        Integer invalidName = invalidReason.getInvalidName();
+        //无效理由类型为0,为权利要求不清楚
+        if(invalidName.equals(0)){
+            //无效理由
+            exportInvalidReasonVO.setInvalidName(invalidName);
+            //涉及内容(权要排序)
+            exportInvalidReasonVO.setContent(invalidReason.getRightSort());
+            //相关证据
+            exportInvalidReasonVO.setProofStr(invalidReason.getProofStr());
+
+            return exportInvalidReasonVO;
+        } else if(invalidName.equals(1)){//无效理由类型为1,为说明书公开不充分
+            //无效理由
+            exportInvalidReasonVO.setInvalidName(invalidName);
+            //涉及内容(说明书为-1)
+            exportInvalidReasonVO.setContent(-1);
+            //相关证据
+            exportInvalidReasonVO.setProofStr(invalidReason.getProofStr());
+            return exportInvalidReasonVO;
+        } else if(invalidName.equals(2) || invalidName.equals(3)){//无效理由类型为2,为不具备创造性;无效理由类型为3,为不具备新颖性
+            //无效理由
+            exportInvalidReasonVO.setInvalidName(invalidName);
+            //涉及内容(权要排序)
+            exportInvalidReasonVO.setContent(invalidReason.getRightSort());
+            //相关证据是证据组合字符串
+            Integer invalidReasonId = invalidReason.getId();
+            String proofStr = this.proofGroupToString(invalidReasonId);
+            exportInvalidReasonVO.setProofStr(proofStr);
+            return exportInvalidReasonVO;
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * 根据无效理由id,返回相关证据的字符串
+     * @param invalidReasonId
+     * @return
+     */
+    public String proofGroupToString(Integer invalidReasonId){
+        //1.根据无效理由id查询出多个证据组合id
+        LambdaQueryWrapper<ProofGroup> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ProofGroup::getInvalidReasonId, invalidReasonId);
+        List<ProofGroup> proofGroups = proofGroupService.list(queryWrapper);
+        List<Integer> proofGroupIds = proofGroups.stream().map(ProofGroup::getId).collect(Collectors.toList());
+        //2.根据每个证据组合id到关联表中查询出所有的证据ids,并拼接成字符串
+        LambdaQueryWrapper<AssoProofGroup> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.in(AssoProofGroup::getGroupId, proofGroupIds);
+        List<AssoProofGroup> assoProofGroups = assoProofGroupService.list(queryWrapper1);
+        List<String> results = new ArrayList<>();
+        StringBuilder SB = new StringBuilder();
+        for(Integer proofGroupId : proofGroupIds){
+            List<Integer> proofIds = assoProofGroups.stream().filter(item->item.getGroupId().equals(proofGroupId)).map(AssoProofGroup::getProofId).collect(Collectors.toList());
+            //3.根据证据ids,到证据表中查询出所有证据,并拼接成字符串
+            if(proofIds.size() > 0){
+                //根据证据ids查询证据排序字段
+                LambdaQueryWrapper<CompareFiles> queryWrapper2 = new LambdaQueryWrapper<CompareFiles>();
+                queryWrapper2.in(CompareFiles::getId, proofIds);
+                List<CompareFiles> proofs = compareFilesService.list(queryWrapper2);
+                List<Integer> sysorders = proofs.stream().map(CompareFiles::getSysOrder).collect(Collectors.toList());
+                StringBuilder sb = new StringBuilder();
+                for(Integer sysorder : sysorders){
+                    sb.append("证据").append(sysorder).append("+");
+                }
+                sb.deleteCharAt(sb.length() - 1);
+                sb.append("\n");
+                String result = sb.toString();
+                results.add(result);
+            }
+        }
+        for(String resultStr : results){
+            SB.append(resultStr);
+        }
+        String STR = SB.toString();
+        return STR;
+    }
+
 }