|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
}
|