|
@@ -5,6 +5,7 @@ import cn.cslg.report.common.model.dto.invalidReReport.InvalidReasonDTO;
|
|
import cn.cslg.report.common.model.dto.invalidReReport.ProofGroupDTO;
|
|
import cn.cslg.report.common.model.dto.invalidReReport.ProofGroupDTO;
|
|
import cn.cslg.report.common.model.dto.invalidReReport.QueryInvalidReasonDTO;
|
|
import cn.cslg.report.common.model.dto.invalidReReport.QueryInvalidReasonDTO;
|
|
import cn.cslg.report.common.model.vo.PersonnelVO;
|
|
import cn.cslg.report.common.model.vo.PersonnelVO;
|
|
|
|
+import cn.cslg.report.common.model.vo.invalidReReport.ExportInvalidReasonVO;
|
|
import cn.cslg.report.common.model.vo.invalidReReport.PagingVO;
|
|
import cn.cslg.report.common.model.vo.invalidReReport.PagingVO;
|
|
import cn.cslg.report.common.model.vo.invalidReReport.QueryAllFeaturesVO;
|
|
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.QueryInvalidReasonVO;
|
|
@@ -47,12 +48,14 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
private final ReportService reportService;
|
|
private final ReportService reportService;
|
|
private final AssoPositionFeaturesService assoPositionFeaturesService;
|
|
private final AssoPositionFeaturesService assoPositionFeaturesService;
|
|
private final AssoProofGroupService assoProofGroupService;
|
|
private final AssoProofGroupService assoProofGroupService;
|
|
|
|
+ private final ProofService proofService;
|
|
private final FeatureService featureService;
|
|
private final FeatureService featureService;
|
|
private final FeatureMapper featureMapper;
|
|
private final FeatureMapper featureMapper;
|
|
private final ProofGroupService proofGroupService;
|
|
private final ProofGroupService proofGroupService;
|
|
private final CacheUtils cacheUtils;
|
|
private final CacheUtils cacheUtils;
|
|
private final LoginUtils loginUtils;
|
|
private final LoginUtils loginUtils;
|
|
private final CompareFilesService compareFilesService;
|
|
private final CompareFilesService compareFilesService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 判断特征是否有重复的方法
|
|
* 判断特征是否有重复的方法
|
|
* @param checkReFeaturesDTO
|
|
* @param checkReFeaturesDTO
|
|
@@ -119,6 +122,7 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 添加无效理由和证据
|
|
* 添加无效理由和证据
|
|
* @param invalidReasonDTO 无效理由和证据Dto类
|
|
* @param invalidReasonDTO 无效理由和证据Dto类
|
|
@@ -130,6 +134,8 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
//判断invalidName的类型
|
|
//判断invalidName的类型
|
|
Integer invalidName = invalidReasonDTO.getInvalidName();
|
|
Integer invalidName = invalidReasonDTO.getInvalidName();
|
|
if(invalidName.equals(1)) {//若类型为1,则为说明书公开不充分,涉及内容为说明书,手动输入无效证据
|
|
if(invalidName.equals(1)) {//若类型为1,则为说明书公开不充分,涉及内容为说明书,手动输入无效证据
|
|
|
|
+ //将涉及内容字段设置为-1
|
|
|
|
+ invalidReasonDTO.setContent(-1);
|
|
BeanUtils.copyProperties(invalidReasonDTO, invalidReason);
|
|
BeanUtils.copyProperties(invalidReasonDTO, invalidReason);
|
|
//获取当前登陆人信息
|
|
//获取当前登陆人信息
|
|
PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
@@ -138,9 +144,6 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
invalidReason.insert();
|
|
invalidReason.insert();
|
|
} else if(invalidName.equals(0)){//若类型为0,则为“权利要求不清楚”,需要选择涉及内容(content)并输入相关证据(proofStr)
|
|
} else if(invalidName.equals(0)){//若类型为0,则为“权利要求不清楚”,需要选择涉及内容(content)并输入相关证据(proofStr)
|
|
if(invalidReasonDTO.getProofStr() != null && invalidReasonDTO.getProofStr() != ""){
|
|
if(invalidReasonDTO.getProofStr() != null && invalidReasonDTO.getProofStr() != ""){
|
|
- if(invalidReasonDTO.getInvalidName()==1){
|
|
|
|
- invalidReasonDTO.setContent(-1);
|
|
|
|
- }
|
|
|
|
//复制DTO类字段到InvalidReason实体类并保存入库
|
|
//复制DTO类字段到InvalidReason实体类并保存入库
|
|
BeanUtils.copyProperties(invalidReasonDTO, invalidReason);
|
|
BeanUtils.copyProperties(invalidReasonDTO, invalidReason);
|
|
//获取当前登陆人信息
|
|
//获取当前登陆人信息
|
|
@@ -206,6 +209,8 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
if(invalidReasonDTO.getProofGroups()!= null){
|
|
if(invalidReasonDTO.getProofGroups()!= null){
|
|
//复制DTO类字段到InvalidReason实体类并保存入库
|
|
//复制DTO类字段到InvalidReason实体类并保存入库
|
|
BeanUtils.copyProperties(invalidReasonDTO, invalidReason);
|
|
BeanUtils.copyProperties(invalidReasonDTO, invalidReason);
|
|
|
|
+ //权要排序
|
|
|
|
+ invalidReason.setRightSort(invalidReasonDTO.getContent());
|
|
//获取当前登陆人信息
|
|
//获取当前登陆人信息
|
|
PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
invalidReason.setCreateId(personnelVO.getId());
|
|
invalidReason.setCreateId(personnelVO.getId());
|
|
@@ -254,7 +259,7 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public String updateInvalidReason(InvalidReasonDTO invalidReasonDTO) {
|
|
public String updateInvalidReason(InvalidReasonDTO invalidReasonDTO) {
|
|
if(invalidReasonDTO.getId() == null){
|
|
if(invalidReasonDTO.getId() == null){
|
|
- return Response.error("请选择无效理由");
|
|
|
|
|
|
+ return Response.error("请选择无效理由");
|
|
}
|
|
}
|
|
Integer invalidName =invalidReasonDTO.getInvalidName();
|
|
Integer invalidName =invalidReasonDTO.getInvalidName();
|
|
InvalidReason invalidReason = this.getById(invalidReasonDTO.getId());
|
|
InvalidReason invalidReason = this.getById(invalidReasonDTO.getId());
|
|
@@ -439,15 +444,15 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
proofGroupIn.setArgument_str(proofGroup.getArgument_str());
|
|
proofGroupIn.setArgument_str(proofGroup.getArgument_str());
|
|
List<Integer> proofIds = assoProofGroups.stream().filter(item->item.getGroupId().equals(proofGroup.getId())).map(AssoProofGroup::getProofId).collect(Collectors.toList());
|
|
List<Integer> proofIds = assoProofGroups.stream().filter(item->item.getGroupId().equals(proofGroup.getId())).map(AssoProofGroup::getProofId).collect(Collectors.toList());
|
|
//根据证据id查询证据
|
|
//根据证据id查询证据
|
|
- List<CompareFiles> proofs =new ArrayList<>();
|
|
|
|
|
|
+ List<CompareFiles> proofs = new ArrayList<>();
|
|
if(proofIds.size()>0) {
|
|
if(proofIds.size()>0) {
|
|
LambdaQueryWrapper<CompareFiles> proofLambdaQueryWrapper = new LambdaQueryWrapper<CompareFiles>();
|
|
LambdaQueryWrapper<CompareFiles> proofLambdaQueryWrapper = new LambdaQueryWrapper<CompareFiles>();
|
|
proofLambdaQueryWrapper.in(CompareFiles::getId, proofIds);
|
|
proofLambdaQueryWrapper.in(CompareFiles::getId, proofIds);
|
|
- proofs =compareFilesService.list(proofLambdaQueryWrapper);
|
|
|
|
|
|
+ proofs = compareFilesService.list(proofLambdaQueryWrapper);
|
|
}
|
|
}
|
|
- List<QueryInvalidReasonVO.proofIn> proofIns =new ArrayList<>();
|
|
|
|
|
|
+ List<QueryInvalidReasonVO.proofIn> proofIns = new ArrayList<>();
|
|
proofs.forEach(item->{
|
|
proofs.forEach(item->{
|
|
- QueryInvalidReasonVO.proofIn proof=new QueryInvalidReasonVO.proofIn();
|
|
|
|
|
|
+ QueryInvalidReasonVO.proofIn proof = new QueryInvalidReasonVO.proofIn();
|
|
proof.setId(item.getId());
|
|
proof.setId(item.getId());
|
|
proof.setSort(item.getSysOrder());
|
|
proof.setSort(item.getSysOrder());
|
|
proof.setPatentNo(item.getPatentNo());
|
|
proof.setPatentNo(item.getPatentNo());
|
|
@@ -513,6 +518,113 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 导出无效理由所需的查询
|
|
|
|
+ * @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;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 装载特征集合
|
|
* 装载特征集合
|
|
* @param reportId
|
|
* @param reportId
|
|
@@ -582,4 +694,5 @@ public class InvalidReasonService extends ServiceImpl<InvalidReasonMapper, Inval
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|