|
@@ -9,6 +9,7 @@ import cn.cslg.pas.domain.*;
|
|
|
import cn.cslg.pas.mapper.ProjectFieldMapper;
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
import cn.hutool.core.lang.tree.Tree;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
@@ -18,6 +19,7 @@ import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
@@ -33,7 +35,6 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
@RequiredArgsConstructor(onConstructor_ = {@Lazy})
|
|
|
public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, ProjectField> {
|
|
|
-
|
|
|
private final ProjectFieldOptionService projectFieldOptionService;
|
|
|
private final ProjectFieldTreeService projectFieldTreeService;
|
|
|
private final ProjectFolderService projectFolderService;
|
|
@@ -42,6 +43,7 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
|
|
|
private final PatentService patentService;
|
|
|
private final FileUtils fileUtils;
|
|
|
private final LoginUtils loginUtils;
|
|
|
+ private final OutInterfaceService outInterfaceService;
|
|
|
|
|
|
public List<PatentDTO.Field> getPatentFieldByPatentIdAndProjectId(Integer projectId, Integer patentId) {
|
|
|
List<PatentDTO.Field> dataList = new ArrayList<>();
|
|
@@ -80,11 +82,12 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
|
|
|
});
|
|
|
return dataList;
|
|
|
}
|
|
|
- public Map<Integer,List<PatentDTO.Field>> getPatentFieldByPatentIdAndProjectId2(Integer projectId, List<Integer> patentIds) {
|
|
|
- Map<Integer,List<PatentDTO.Field>> map =new HashMap<>();
|
|
|
- List<ProjectFieldPatentLink> linkList =new ArrayList<>();
|
|
|
+
|
|
|
+ public Map<Integer, List<PatentDTO.Field>> getPatentFieldByPatentIdAndProjectId2(Integer projectId, List<Integer> patentIds) {
|
|
|
+ Map<Integer, List<PatentDTO.Field>> map = new HashMap<>();
|
|
|
+ List<ProjectFieldPatentLink> linkList = new ArrayList<>();
|
|
|
//根据专利号和专题库id获得所有自定义字段关联数据
|
|
|
- if(patentIds.size()>0) {
|
|
|
+ if (patentIds.size() > 0) {
|
|
|
LambdaQueryWrapper<ProjectFieldPatentLink> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.in(ProjectFieldPatentLink::getPatentId, patentIds);
|
|
|
queryWrapper.eq(ProjectFieldPatentLink::getProjectId, projectId);
|
|
@@ -96,15 +99,15 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
|
|
|
List<ProjectFieldOption> optionList = projectFieldOptionService.getFieldOptionList(fieldIds);
|
|
|
List<ProjectFieldTree> treeList = projectFieldTreeService.getProjectFieldTreeOptionByFieldIds(fieldIds);
|
|
|
//遍历专利
|
|
|
- for(Integer patentId :patentIds){
|
|
|
+ for (Integer patentId : patentIds) {
|
|
|
List<PatentDTO.Field> dataList = new ArrayList<>();
|
|
|
//获得当前专利的关联信息
|
|
|
- List<ProjectFieldPatentLink> temLinkList =linkList.stream().filter(item->item.getPatentId().equals(patentId)).collect(Collectors.toList());
|
|
|
+ List<ProjectFieldPatentLink> temLinkList = linkList.stream().filter(item -> item.getPatentId().equals(patentId)).collect(Collectors.toList());
|
|
|
//过滤出当前专利的自定义栏位
|
|
|
- List<Integer> temFieldIds =linkList.stream().filter(item->item.getPatentId().equals(patentId)).map(ProjectFieldPatentLink::getFieldId).distinct().collect(Collectors.toList());
|
|
|
- List<ProjectField> temFieldList =fieldList.stream().filter(item->temFieldIds.contains(item.getId())).collect(Collectors.toList());
|
|
|
+ List<Integer> temFieldIds = linkList.stream().filter(item -> item.getPatentId().equals(patentId)).map(ProjectFieldPatentLink::getFieldId).distinct().collect(Collectors.toList());
|
|
|
+ List<ProjectField> temFieldList = fieldList.stream().filter(item -> temFieldIds.contains(item.getId())).collect(Collectors.toList());
|
|
|
temFieldList.forEach(field -> {
|
|
|
- List<Integer> valueIds =temLinkList.stream().filter(item->item.getFieldId().equals(field.getId())).map(ProjectFieldPatentLink::getOptionId).collect(Collectors.toList());
|
|
|
+ List<Integer> valueIds = temLinkList.stream().filter(item -> item.getFieldId().equals(field.getId())).map(ProjectFieldPatentLink::getOptionId).collect(Collectors.toList());
|
|
|
PatentDTO.Field data = new PatentDTO.Field();
|
|
|
data.setId(field.getId());
|
|
|
data.setName(field.getName());
|
|
@@ -130,10 +133,11 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
|
|
|
}
|
|
|
dataList.add(data);
|
|
|
});
|
|
|
- map.put(patentId,dataList);
|
|
|
+ map.put(patentId, dataList);
|
|
|
}
|
|
|
return map;
|
|
|
}
|
|
|
+
|
|
|
public List<ProjectField> getProjectFieldByProjectId(Integer projectId) {
|
|
|
LambdaQueryWrapper<ProjectField> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(ProjectField::getProjectId, projectId);
|
|
@@ -310,8 +314,29 @@ public class ProjectFieldService extends ServiceImpl<ProjectFieldMapper, Project
|
|
|
return projectField;
|
|
|
}
|
|
|
|
|
|
- public IPage<ProjectField> getPageList(ProjectFieldVO params) {
|
|
|
+ public IPage<ProjectField> getPageList(ProjectFieldVO params) throws IOException {
|
|
|
+ //分页查询列表
|
|
|
IPage<ProjectField> pageList = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
|
|
|
+ //从分页信息中获取列表
|
|
|
+ List<ProjectField> projectFields = pageList.getRecords();
|
|
|
+ ArrayList<Integer> personnelIds = new ArrayList<>();
|
|
|
+ for (ProjectField projectField : projectFields) {
|
|
|
+ personnelIds.add(projectField.getCreateBy());
|
|
|
+ }
|
|
|
+ //调用权限系统根据人员ids获得人员列表的接口
|
|
|
+ String res = outInterfaceService.getPersonnelByIdsFromPCS(personnelIds);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
+ List<Personnel> personnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
|
|
|
+
|
|
|
+ //遍历人员列表和列表,给列表装载人员名称
|
|
|
+ for (ProjectField projectField : projectFields) {
|
|
|
+ for (Personnel personnel : personnels) {
|
|
|
+ if (personnel.getId().equals(projectField.getCreateBy())) {
|
|
|
+ projectField.setCreateName(personnel.getPersonnelName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pageList.setRecords(projectFields);
|
|
|
|
|
|
return pageList;
|
|
|
}
|