|
@@ -79,10 +79,12 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
*/
|
|
|
public String splitPatentRight(String patentNo, Integer splitType, Integer splitBy, Integer reportId) throws IOException {
|
|
|
PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
|
|
|
+ //根据报告ID查询报告
|
|
|
LambdaQueryWrapper<Report> queryWrapper = new LambdaQueryWrapper();
|
|
|
queryWrapper.eq(Report::getId, reportId);
|
|
|
+ //未查到报告报错
|
|
|
if( reportService.list(queryWrapper).size()==0){
|
|
|
- return Response.error();
|
|
|
+ return Response.error("未查询到报告");
|
|
|
}
|
|
|
Report report = reportService.list(queryWrapper).get(0);
|
|
|
Integer flag = 0;
|
|
@@ -92,6 +94,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
if(splitType==null){
|
|
|
splitType=0;
|
|
|
}
|
|
|
+ //如果报告未拆分过权要,或者拆分类型不同则更新报告
|
|
|
if (report.getSplitBy() == null || report.getSplitType() == null || report.getSplitBy() != splitBy || report.getSplitType() != splitType) {
|
|
|
report.setSplitBy(splitBy);
|
|
|
report.setSplitType(splitType);
|
|
@@ -105,14 +108,15 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
JSONObject jsonObject = JSONObject.parseObject(resBody);
|
|
|
//解析jason获得标的专利的权要
|
|
|
List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
|
|
|
+ //给权要进行格式更改
|
|
|
List<PatentRight> patentRights = FormatPatentRights(patentRightsOrgin);
|
|
|
List<Integer> partRightIds = new ArrayList<>();
|
|
|
List<String> flags = new ArrayList<>();
|
|
|
// 当splitType=0仅拆解主权要
|
|
|
- if (splitType == 0) {
|
|
|
- partRightIds = patentRights.stream().filter(item -> item.getType() == 1).map(PatentRight::getId).collect(Collectors.toList());
|
|
|
+ if (splitType .equals(0) ) {
|
|
|
+ partRightIds = patentRights.stream().filter(item -> item.getType() .equals(1) ).map(PatentRight::getId).collect(Collectors.toList());
|
|
|
}// 当splitType=1拆解全部权要
|
|
|
- else if (splitType == 1) {
|
|
|
+ else if (splitType .equals(1) ) {
|
|
|
partRightIds = patentRights.stream().map(PatentRight::getId).collect(Collectors.toList());
|
|
|
}
|
|
|
//当splitBy=0时仅仅根据“,”拆解
|
|
@@ -131,22 +135,23 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
flags.add(",");
|
|
|
flags.add(",");
|
|
|
}
|
|
|
+ Integer a=splitBy;
|
|
|
+ Integer b =splitType;
|
|
|
Features featureTO = new Features();
|
|
|
featureTO.setReportId(reportId);
|
|
|
featureTO.setSignPatentNo(patentNo);
|
|
|
- //featureTO.setPartnerId();
|
|
|
- //查询数据库里是否有查询记录
|
|
|
+ featureTO.setPartnerId(personnelVO.getId());
|
|
|
+ featureTO.setSplitType(splitType);
|
|
|
+ featureTO.setSplitBy(splitBy);
|
|
|
+ //查询数据库里是否有拆分记录
|
|
|
List<Features> featureFromDb = this.queryFeatures(featureTO);
|
|
|
+ //删除所有不符合登录人拆分条件的拆分特征
|
|
|
LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.eq(Features::getReportId, reportId)
|
|
|
.eq(Features::getSignPatentNo, patentNo)
|
|
|
- .eq(Features::getPartnerId, personnelVO.getId())
|
|
|
- .ne(Features::getSplitBy,splitBy);
|
|
|
- if(splitType==1)
|
|
|
- {wrapper.ne(Features::getSplitBy,-1);}
|
|
|
+ .eq(Features::getPartnerId, personnelVO.getId());
|
|
|
+ wrapper.and(QueryWrapper -> QueryWrapper.ne(Features::getSplitBy,a).or().ne(Features::getSplitType,b));
|
|
|
this.remove(wrapper);
|
|
|
-
|
|
|
-
|
|
|
//将拆解的权要和特征装载到对象PatentRightVo
|
|
|
for (int i = 0; i < patentRights.size(); i++) {
|
|
|
//特征序号
|
|
@@ -156,19 +161,22 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
String name ="权要"+tems[0].replace(" ","");
|
|
|
int rightId = patentRights.get(i).getId();
|
|
|
//对需要拆解的权要进行拆解
|
|
|
- Integer a=splitBy;
|
|
|
- if (partRightIds.contains(patentRights.get(i).getId())) {
|
|
|
|
|
|
if (featureFromDb != null && featureFromDb.size() != 0) {
|
|
|
- featuresList = featureFromDb.stream().filter(item -> item.getRightId() .equals(rightId) && item.getSplitBy().equals(a) &&item.getPartnerId().equals(personnelVO.getId())).collect(Collectors.toList());
|
|
|
+ featuresList = featureFromDb.stream().filter(item -> item.getRightId() .equals(rightId) &&item.getSplitBy().equals(a) &&item.getPartnerId().equals(personnelVO.getId())&&item.getSplitType().equals(b)).collect(Collectors.toList());
|
|
|
}
|
|
|
//如果数据库里无拆解记录则手动插入一条
|
|
|
if (featuresList == null || featuresList.size() == 0 || flag == 1) {
|
|
|
featuresList = new ArrayList<>();
|
|
|
- //获得权要的译文并且拆解
|
|
|
- List<String> contentOuts = this.splitStringByFlags(patentRights.get(i).getContentOut(), flags);
|
|
|
- //获得权要的原文并且拆解
|
|
|
- List<String> contents = this.splitStringByFlags(patentRights.get(i).getContent(), flags);
|
|
|
+ List<String> contentOuts = Arrays.asList(patentRights.get(i).getContentOut());
|
|
|
+ List<String> contents =Arrays.asList(patentRights.get(i).getContent());
|
|
|
+ //如果是需要拆解的权要
|
|
|
+ if (partRightIds.contains(patentRights.get(i).getId())) {
|
|
|
+ //获得权要的译文并且拆解
|
|
|
+ contentOuts = this.splitStringByFlags(patentRights.get(i).getContentOut(), flags);
|
|
|
+ //获得权要的原文并且拆解
|
|
|
+ contents = this.splitStringByFlags(patentRights.get(i).getContent(), flags);
|
|
|
+ }
|
|
|
//遍历拆解出来的内容并装载到features最后存入列表
|
|
|
for (int t = 0; t < contents.size(); t++) {
|
|
|
Features features = new Features();
|
|
@@ -184,31 +192,12 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
features.setRightName(name);
|
|
|
features.setFeaturesOrder(order);
|
|
|
features.setRightType(patentRights.get(i).getType());
|
|
|
+ features.setSplitType(splitType);
|
|
|
featuresList.add(features);
|
|
|
order+=1;
|
|
|
}
|
|
|
this.saveBatch(featuresList);
|
|
|
}
|
|
|
- }
|
|
|
- else{
|
|
|
- featuresList = featureFromDb.stream().filter(item -> item.getRightId() == rightId && item.getSplitBy() == -1 &&item.getPartnerId()==personnelVO.getId()).collect(Collectors.toList());
|
|
|
- if (featuresList == null || featuresList.size() == 0 || flag == 1) {
|
|
|
- Features features = new Features();
|
|
|
- features.setRightId(patentRights.get(i).getId());
|
|
|
- features.setIsFinal(0);
|
|
|
- features.setSignPatentNo(patentNo);
|
|
|
- features.setReportId(reportId);
|
|
|
- features.setContentOut(patentRights.get(i).getContentOut());
|
|
|
- features.setContent(patentRights.get(i).getContent());
|
|
|
- features.setSplitBy(-1);
|
|
|
- features.setPartnerId(personnelVO.getId());
|
|
|
- features.setRightName(name);
|
|
|
- features.setFeaturesOrder(1);
|
|
|
- features.insert();
|
|
|
- featuresList.add(features);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
//装载到对象PatentRightVo
|
|
|
PatentRightVo patentRightVo = new PatentRightVo();
|
|
|
patentRightVo.setPatentId(patentRights.get(i).getPatentId());
|
|
@@ -227,7 +216,6 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
map.put("splitBy", report.getSplitBy());
|
|
|
map.put("splitType", report.getSplitType());
|
|
|
return Response.success(map);
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -239,6 +227,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
*/
|
|
|
|
|
|
public String getFeatures(String patentNos, Integer reportId) throws IOException {
|
|
|
+
|
|
|
LambdaQueryWrapper<Report> queryWrapper = new LambdaQueryWrapper();
|
|
|
queryWrapper.eq(Report::getId, reportId);
|
|
|
if(reportService.list(queryWrapper).size()==0){
|
|
@@ -261,6 +250,9 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
Features featureTO = new Features();
|
|
|
featureTO.setReportId(reportId);
|
|
|
featureTO.setSignPatentNo(patentNo);
|
|
|
+ featureTO.setReportId(reportId);
|
|
|
+ featureTO.setSignPatentNo(patentNo);
|
|
|
+ featureTO.setPartnerId(loginUtils.getId());
|
|
|
//查询数据库里是否有查询记录
|
|
|
List<Features> featureFromDb = this.queryFeatures(featureTO);
|
|
|
//将拆解的权要和特征装载到对象PatentRightVo
|
|
@@ -270,12 +262,11 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
//对需要拆解的权要进行拆解
|
|
|
if (featureFromDb != null && featureFromDb.size() != 0) {
|
|
|
int rightId = patentRights.get(i).getId();
|
|
|
- featuresList = featureFromDb.stream().filter(item -> item.getRightId() == rightId &&item.getPartnerId()==report.getPersonId()).collect(Collectors.toList());
|
|
|
+ featuresList = featureFromDb.stream().filter(item -> item.getRightId().equals(rightId) &&item.getPartnerId().equals(report.getPersonId())).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
//装载到对象PatentRightVo
|
|
|
PatentRightVo patentRightVo = new PatentRightVo();
|
|
|
-
|
|
|
String name = "权要" + (i + 1);
|
|
|
patentRightVo.setPatentId(patentRights.get(i).getPatentId());
|
|
|
patentRightVo.setFeatures(featuresList);
|
|
@@ -339,45 +330,49 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
if (features.getReportId() != null) {
|
|
|
lambdaQueryWrapper.eq(Features::getReportId, features.getReportId());
|
|
|
}
|
|
|
+ if (features.getSplitType() != null) {
|
|
|
+ lambdaQueryWrapper.eq(Features::getSplitType, features.getSplitType());
|
|
|
+ }
|
|
|
featureList = this.list(lambdaQueryWrapper);
|
|
|
return featureList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * @author 沈永艺
|
|
|
+ * @author 李仁杰
|
|
|
* @deprecated 保存特征
|
|
|
*/
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public String addFeatures(List<PatentRightVo> patentRightVos) {
|
|
|
+ // 获取登录人信息
|
|
|
PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
|
|
|
+ List<Features> features = new ArrayList<>();
|
|
|
+ //根据登录人Id,报告Id,标的专利号查询特征
|
|
|
LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
|
|
|
- Features feature = this.list(wrapper).get(0);
|
|
|
-
|
|
|
if (patentRightVos.get(0).getReportId() != null && patentRightVos.get(0).getSignPatentNo() != null) {
|
|
|
wrapper.eq(Features::getReportId, patentRightVos.get(0).getReportId())
|
|
|
.eq(Features::getSignPatentNo, patentRightVos.get(0).getSignPatentNo())
|
|
|
.eq(Features::getPartnerId, personnelVO.getId());
|
|
|
+ Features feature = this.list(wrapper).get(0);
|
|
|
+ //根据登录人Id,报告Id,标的专利号删除原有特征
|
|
|
this.remove(wrapper);
|
|
|
- }
|
|
|
- List<Features> features = new ArrayList<>();
|
|
|
- for (int i = 0; i < patentRightVos.size(); i++) {
|
|
|
- int order=1;
|
|
|
- PatentRightVo patentRightVo = patentRightVos.get(i);
|
|
|
- if (patentRightVo.getFeatures() != null && patentRightVo.getFeatures().size() != 0) {
|
|
|
- List<Features> tem =patentRightVo.getFeatures();
|
|
|
- for (int t = 0; t < tem.size(); t++) {
|
|
|
- tem.get(t).setPartnerId(personnelVO.getId());
|
|
|
- tem.get(t).setFeaturesOrder(order);
|
|
|
- tem.get(t).setPartnerId(feature.getPartnerId());
|
|
|
- tem.get(t).setRightName(feature.getRightName());
|
|
|
- tem.get(t).setRightType(feature.getRightType());
|
|
|
- order+=1;
|
|
|
- features.add(tem.get(t));
|
|
|
+ for (int i = 0; i < patentRightVos.size(); i++) {
|
|
|
+ int order=1;
|
|
|
+ PatentRightVo patentRightVo = patentRightVos.get(i);
|
|
|
+ if (patentRightVo.getFeatures() != null && patentRightVo.getFeatures().size() != 0) {
|
|
|
+ List<Features> tem =patentRightVo.getFeatures();
|
|
|
+ for (int t = 0; t < tem.size(); t++) {
|
|
|
+ tem.get(t).setFeaturesOrder(order);
|
|
|
+ tem.get(t).setPartnerId(personnelVO.getId());
|
|
|
+ tem.get(t).setSplitBy(feature.getSplitBy());
|
|
|
+ tem.get(t).setSplitType(feature.getSplitType());
|
|
|
+ tem.get(t).setId(null);
|
|
|
+ order+=1;
|
|
|
+ features.add(tem.get(t));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- this.saveBatch(features);
|
|
|
+ this.saveOrUpdateBatch(features);
|
|
|
return Response.success();
|
|
|
}
|
|
|
|
|
@@ -399,12 +394,10 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
|
|
|
patentNos.removeAll(signPatentNos);
|
|
|
if(patentNos.size()==0)
|
|
|
{return Response.success();}
|
|
|
-
|
|
|
patentVO.setPatentNos(patentNos);
|
|
|
String res= outInterfaceService.getPatentFromPAS(patentVO,1);
|
|
|
- return res;
|
|
|
-
|
|
|
|
|
|
+ return res;
|
|
|
}
|
|
|
public Features select(int id){
|
|
|
LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
|