|
@@ -50,6 +50,11 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
|
|
|
private final AssoTaskPersonelService assoTaskPersonelService;
|
|
|
private final ReportFieldService reportFieldService;
|
|
|
private final CompareFilesService compareFilesService;
|
|
|
+ public List<ReportField> getProjectFieldByProjectId(Integer projectId) {
|
|
|
+ LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(ReportField::getReportId, projectId);
|
|
|
+ return this.list(queryWrapper);
|
|
|
+ }
|
|
|
|
|
|
//增加自定义字段
|
|
|
public String add(ReportField reportField) {
|
|
@@ -70,6 +75,7 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
|
|
|
return Response.error("字段名称已存在");
|
|
|
}
|
|
|
reportField.setPtype(reportField.getType() == 6 ? 2 : 1);
|
|
|
+
|
|
|
reportField.updateById();
|
|
|
return Response.success(true);
|
|
|
}
|
|
@@ -458,76 +464,207 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
|
|
|
*
|
|
|
* @return 返回自定义字段
|
|
|
*/
|
|
|
+
|
|
|
public String getReportField(PatentQueryFieldSourceVO params) {
|
|
|
+ if (params.getName() != null&¶ms.getName()!="") {
|
|
|
+ List<PatentQueryFieldSourceVO> list = new ArrayList<>();
|
|
|
+ LambdaQueryWrapper<ReportField> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(ReportField::getId, params.getFieldId());
|
|
|
+ ReportField reportField = this.list(wrapper).get(0);
|
|
|
+ int type1 = reportField.getType();
|
|
|
+ if (type1 == 1 || type1 == 2 || type1 == 3) {
|
|
|
+ LambdaQueryWrapper<ReportFieldText> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(ReportFieldText::getFieldId, params.getFieldId());
|
|
|
|
|
|
- List<PatentQueryFieldSourceVO> list=new ArrayList<>();
|
|
|
- LambdaQueryWrapper<ReportField> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(ReportField::getId, params.getFieldId());
|
|
|
- if(this.list(wrapper).size()==0){
|
|
|
- return Response.success(new ArrayList<>());
|
|
|
- }
|
|
|
- ReportField reportField = this.list(wrapper).get(0);
|
|
|
+ queryWrapper.like(ReportFieldText::getText, params.getName());
|
|
|
+ List<ReportFieldText> list1 = reportFieldTextService.list(queryWrapper);
|
|
|
+ for (ReportFieldText a : list1) {
|
|
|
+ PatentQueryFieldSourceVO param = new PatentQueryFieldSourceVO();
|
|
|
+ LambdaQueryWrapper<ReportFieldPatentLink> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ wrapper1.eq(ReportFieldPatentLink::getFieldId, a.getFieldId()).eq(ReportFieldPatentLink::getOptionId, a.getId());
|
|
|
+ param.setName(a.getText());
|
|
|
+ param.setCount(reportFieldPatentLinkService.list(wrapper1).size());
|
|
|
+ param.setFieldId(a.getFieldId());
|
|
|
+ param.setKey(a.getId());
|
|
|
+ param.setType(type1);
|
|
|
+ list.add(param);
|
|
|
+ }
|
|
|
|
|
|
- //获得类型
|
|
|
- int type1 = reportField.getType();
|
|
|
- if (type1 == 1||type1 ==2||type1 ==3) {
|
|
|
- LambdaQueryWrapper<ReportFieldText> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(ReportFieldText::getFieldId, params.getFieldId());
|
|
|
- if(params.getName()!=null) {
|
|
|
- queryWrapper.like(ReportFieldText::getText, params.getName());
|
|
|
- }
|
|
|
- List<ReportFieldText> list1 = reportFieldTextService.list(queryWrapper);
|
|
|
- for(ReportFieldText a :list1){
|
|
|
- PatentQueryFieldSourceVO param=new PatentQueryFieldSourceVO();
|
|
|
+ }
|
|
|
+
|
|
|
+ else if (type1 == 5 || type1 == 4) {
|
|
|
+ LambdaQueryWrapper<ReportFieldOption> queryWrapper5 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper5.eq(ReportFieldOption::getFieldId, params.getFieldId());
|
|
|
+
|
|
|
+ queryWrapper5.like(ReportFieldOption::getName, params.getName());
|
|
|
+
|
|
|
+ List<ReportFieldOption> list1 = reportFieldOptionService.list(queryWrapper5);
|
|
|
+ for (ReportFieldOption a : list1) {
|
|
|
+ PatentQueryFieldSourceVO param = new PatentQueryFieldSourceVO();
|
|
|
+ LambdaQueryWrapper<ReportFieldPatentLink> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
+ wrapper1.eq(ReportFieldPatentLink::getFieldId, a.getFieldId()).eq(ReportFieldPatentLink::getOptionId, a.getId());
|
|
|
+ param.setName(a.getName());
|
|
|
+ param.setCount(reportFieldPatentLinkService.list(wrapper1).size());
|
|
|
+ param.setType(type1);
|
|
|
+ param.setFieldId(a.getFieldId());
|
|
|
+ param.setKey(a.getId());
|
|
|
+
|
|
|
+ list.add(param);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (type1 == 6) {
|
|
|
+ LambdaQueryWrapper<ReportFieldTree> queryWrapper6 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper6.eq(ReportFieldTree::getFieldId, params.getFieldId());
|
|
|
+ queryWrapper6.like(ReportFieldTree::getName, params.getName());
|
|
|
+ List<ReportFieldTree> list1 = reportFieldTreeService.list(queryWrapper6);
|
|
|
+ for (ReportFieldTree a : list1) {
|
|
|
+ PatentQueryFieldSourceVO param = new PatentQueryFieldSourceVO();
|
|
|
LambdaQueryWrapper<ReportFieldPatentLink> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
- wrapper1.eq(ReportFieldPatentLink::getFieldId,a.getFieldId()).eq(ReportFieldPatentLink::getOptionId,a.getId());
|
|
|
- param.setName(a.getText());
|
|
|
- param.setCount( reportFieldPatentLinkService.list(wrapper1).size());
|
|
|
+ wrapper1.eq(ReportFieldPatentLink::getFieldId, a.getFieldId()).eq(ReportFieldPatentLink::getOptionId, a.getId());
|
|
|
+ param.setName(a.getName());
|
|
|
+ param.setType(type1);
|
|
|
+ param.setFieldId(a.getFieldId());
|
|
|
+ param.setKey(a.getId());
|
|
|
+ param.setCount(reportFieldPatentLinkService.list(wrapper1).size());
|
|
|
list.add(param);
|
|
|
}
|
|
|
|
|
|
+ }
|
|
|
return Response.success(list);
|
|
|
- } else if (type1 == 5||type1 == 4) {
|
|
|
- LambdaQueryWrapper<ReportFieldOption> queryWrapper5 = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper5.eq(ReportFieldOption::getFieldId, params.getFieldId());
|
|
|
-// .like(ReportFieldOption::getName, name);
|
|
|
- if(params.getName()!=null){
|
|
|
- queryWrapper5.like(ReportFieldOption::getName,params.getName());
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ List<PatentQueryFieldSourceVO> list = new ArrayList<>();
|
|
|
+ //根据fieldId 从patent_field中获得 自定义字段对象
|
|
|
+ LambdaQueryWrapper<ReportField> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(ReportField::getId, params.getFieldId());
|
|
|
+ if (this.list(wrapper).size() == 0) {
|
|
|
+ return Response.success(list);
|
|
|
+ }
|
|
|
+ ReportField reportField = this.list(wrapper).get(0);
|
|
|
+ //获得所有专利号
|
|
|
+ List<String> allNos = new ArrayList<>();
|
|
|
+ // 如果是任务清单
|
|
|
+ if (params.getTaskId() != null) {
|
|
|
+ LambdaQueryWrapper<AssoTaskPersonel> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(AssoTaskPersonel::getTaskId, params.getTaskId());
|
|
|
+ List<AssoTaskPersonel> assoTaskPersonels = assoTaskPersonelService.list(queryWrapper);
|
|
|
+ allNos = assoTaskPersonels.stream().map(AssoTaskPersonel::getPatentNo).collect(Collectors.toList());
|
|
|
}
|
|
|
- List<ReportFieldOption> list1 = reportFieldOptionService.list(queryWrapper5);
|
|
|
- for(ReportFieldOption a :list1){
|
|
|
- PatentQueryFieldSourceVO param=new PatentQueryFieldSourceVO();
|
|
|
- LambdaQueryWrapper<ReportFieldPatentLink> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
- wrapper1.eq(ReportFieldPatentLink::getFieldId,a.getFieldId()).eq(ReportFieldPatentLink::getOptionId,a.getId());
|
|
|
- param.setName(a.getName());
|
|
|
- param.setCurrent(reportFieldPatentLinkService.list(wrapper1).size());
|
|
|
- list.add(param);
|
|
|
+ //所有对比文件
|
|
|
+ else {
|
|
|
+ LambdaQueryWrapper<CompareFiles> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(CompareFiles::getReportId, reportField.getReportId());
|
|
|
+ List<CompareFiles> compareFiles = compareFilesService.list(queryWrapper);
|
|
|
+ allNos = compareFiles.stream().map(CompareFiles::getPatentNo).collect(Collectors.toList());
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- return Response.success(list);
|
|
|
- } else if (type1 == 6) {
|
|
|
- LambdaQueryWrapper<ReportFieldTree> queryWrapper6 = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper6.eq(ReportFieldTree::getFieldId, params.getFieldId());
|
|
|
- if(params.getName()!=null){
|
|
|
- queryWrapper6 .like(ReportFieldTree::getName, params.getName());
|
|
|
- }
|
|
|
- List<ReportFieldTree> list1 = reportFieldTreeService.list(queryWrapper6);
|
|
|
- for(ReportFieldTree a:list1) {
|
|
|
- PatentQueryFieldSourceVO param=new PatentQueryFieldSourceVO();
|
|
|
- LambdaQueryWrapper<ReportFieldPatentLink> wrapper1 = new LambdaQueryWrapper<>();
|
|
|
- wrapper1.eq(ReportFieldPatentLink::getFieldId,a.getFieldId()).eq(ReportFieldPatentLink::getOptionId,a.getId());
|
|
|
- param.setName(a.getName());
|
|
|
- param.setCurrent(reportFieldPatentLinkService.list(wrapper1).size());
|
|
|
- list.add(param);
|
|
|
-
|
|
|
- }
|
|
|
+ //根据自定义字段的类型,从三张值表中查询该自定义字段所有值的id
|
|
|
+ int type1 = reportField.getType();
|
|
|
+ switch (type1) {
|
|
|
+ //数字
|
|
|
+ case 0:
|
|
|
+ //日期
|
|
|
+ case 1:
|
|
|
+ //文本
|
|
|
+ case 2:
|
|
|
+ LambdaQueryWrapper<ReportFieldText> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(ReportFieldText::getFieldId, params.getFieldId());
|
|
|
+ List<ReportFieldText> reportFieldTexts = reportFieldTextService.list(queryWrapper);
|
|
|
+ reportFieldTexts.forEach(item -> {
|
|
|
+ PatentQueryFieldSourceVO patentQueryFieldSourceVO = new PatentQueryFieldSourceVO();
|
|
|
+ patentQueryFieldSourceVO.setFieldId(params.getFieldId());
|
|
|
+ patentQueryFieldSourceVO.setKey(item.getId());
|
|
|
+ patentQueryFieldSourceVO.setName(item.getText());
|
|
|
+ patentQueryFieldSourceVO.setType(type1);
|
|
|
+ list.add(patentQueryFieldSourceVO);
|
|
|
+ });
|
|
|
+ break;
|
|
|
+
|
|
|
+ //单选
|
|
|
+ case 4:
|
|
|
+
|
|
|
+ //多选
|
|
|
+ case 5:
|
|
|
+ LambdaQueryWrapper<ReportFieldOption> queryWrapper5 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper5.eq(ReportFieldOption::getFieldId, params.getFieldId());
|
|
|
+
|
|
|
+ List<ReportFieldOption> reportFieldOption = reportFieldOptionService.list(queryWrapper5);
|
|
|
+ reportFieldOption.forEach(item -> {
|
|
|
+ PatentQueryFieldSourceVO patentQueryFieldSourceVO = new PatentQueryFieldSourceVO();
|
|
|
+ patentQueryFieldSourceVO.setFieldId(params.getFieldId());
|
|
|
+ patentQueryFieldSourceVO.setKey(item.getId());
|
|
|
+ patentQueryFieldSourceVO.setName(item.getName());
|
|
|
+ list.add(patentQueryFieldSourceVO);
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ //树
|
|
|
+ case 6:
|
|
|
+ LambdaQueryWrapper<ReportFieldTree> queryWrapper6 = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper6.eq(ReportFieldTree::getFieldId, params.getFieldId());
|
|
|
+ List<ReportFieldTree> reportFieldTrees = reportFieldTreeService.list(queryWrapper6);
|
|
|
+ reportFieldTrees.forEach(item -> {
|
|
|
+ PatentQueryFieldSourceVO patentQueryFieldSourceVO = new PatentQueryFieldSourceVO();
|
|
|
+ patentQueryFieldSourceVO.setFieldId(params.getFieldId());
|
|
|
+ patentQueryFieldSourceVO.setKey(item.getId());
|
|
|
+ patentQueryFieldSourceVO.setName(item.getName());
|
|
|
+ patentQueryFieldSourceVO.setType(type1);
|
|
|
+ list.add(patentQueryFieldSourceVO);
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<Integer> valueIds = list.stream().map(PatentQueryFieldSourceVO::getKey).collect(Collectors.toList());
|
|
|
+ LambdaQueryWrapper<ReportFieldPatentLink> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(ReportFieldPatentLink::getFieldId, params.getFieldId());
|
|
|
+ if (valueIds != null && valueIds.size() > 0) {
|
|
|
+ lambdaQueryWrapper.in(ReportFieldPatentLink::getOptionId, valueIds);
|
|
|
+ }
|
|
|
+ List<ReportFieldPatentLink> reportFieldPatentLinks = reportFieldPatentLinkService.list(lambdaQueryWrapper);
|
|
|
+ if (reportFieldPatentLinks.size() == 0) {
|
|
|
+ list.forEach(item -> item.setCount(0));
|
|
|
+ //未选择选项
|
|
|
+ PatentQueryFieldSourceVO patentQueryFieldSourceVO = new PatentQueryFieldSourceVO();
|
|
|
+ patentQueryFieldSourceVO.setFieldId(params.getFieldId());
|
|
|
+ patentQueryFieldSourceVO.setKey(null);
|
|
|
+ patentQueryFieldSourceVO.setLabel("未选择");
|
|
|
+ patentQueryFieldSourceVO.setCount(allNos.size());
|
|
|
+ patentQueryFieldSourceVO.setType(type1);
|
|
|
+ list.add(patentQueryFieldSourceVO);
|
|
|
+ return Response.success(list);
|
|
|
+ }
|
|
|
+ //记录已被选择的数量
|
|
|
+ Integer choosed = 0;
|
|
|
+ for (PatentQueryFieldSourceVO tem : list) {
|
|
|
+ List<ReportFieldPatentLink> part = reportFieldPatentLinks.stream().filter(tm -> tm.getFieldId().equals(params.getFieldId()) && tm.getOptionId().equals(tem.getKey()
|
|
|
+ )).collect(Collectors.toList());
|
|
|
+ //如果是任务清单列表
|
|
|
+ if (params.getTaskId() != null) {
|
|
|
+ List<String> partPatentNos = part.stream().map(ReportFieldPatentLink::getPatentNo).collect(Collectors.toList());
|
|
|
+ List<String> jiaoList = new ArrayList<>(allNos);
|
|
|
+ jiaoList.retainAll(partPatentNos);
|
|
|
+ tem.setCount(jiaoList.size());
|
|
|
+ choosed += jiaoList.size();
|
|
|
+ } else {
|
|
|
+ tem.setCount(part.size());
|
|
|
+ choosed += part.size();
|
|
|
+ }
|
|
|
+ tem.setType(type1);
|
|
|
+ }
|
|
|
+ //未选择选项
|
|
|
+ PatentQueryFieldSourceVO patentQueryFieldSourceVO = new PatentQueryFieldSourceVO();
|
|
|
+ patentQueryFieldSourceVO.setFieldId(params.getFieldId());
|
|
|
+ patentQueryFieldSourceVO.setKey(null);
|
|
|
+ patentQueryFieldSourceVO.setName("未选择");
|
|
|
+ patentQueryFieldSourceVO.setCount(allNos.size() - choosed);
|
|
|
+ patentQueryFieldSourceVO.setType(type1);
|
|
|
+ list.add(patentQueryFieldSourceVO);
|
|
|
+ //获得所有未选择的数量
|
|
|
+ //根据值id从ReportFieldPatentLink表中获得信息
|
|
|
return Response.success(list);
|
|
|
|
|
|
- } else {
|
|
|
- return Response.success(new ArrayList<>());
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
/**
|
|
|
* 自定义字段的id查询专利号
|
|
|
* 并集:当自定义字段的id相同的时候取并集
|