|
@@ -39,6 +39,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -297,14 +298,13 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
* @param taskId
|
|
|
* @return
|
|
|
*/
|
|
|
public List<AllCustomFieldVO> getAllTaskCustomField(Integer taskId) {
|
|
|
Integer order = 0;
|
|
|
List<AllCustomFieldVO> allCustomFieldVOS = cacheUtils.getTaskCustomField(taskId);
|
|
|
- if(allCustomFieldVOS==null||allCustomFieldVOS.size()==0) {
|
|
|
+ if (allCustomFieldVOS == null || allCustomFieldVOS.size() == 0) {
|
|
|
allCustomFieldVOS = new ArrayList<>();
|
|
|
|
|
|
//根据任务id查询
|
|
@@ -384,16 +384,17 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
|
|
|
}
|
|
|
cacheUtils.addTaskCustomField(taskId, allCustomFieldVOS);
|
|
|
}
|
|
|
- allCustomFieldVOS = allCustomFieldVOS.stream().sorted(Comparator.comparing(AllCustomFieldVO::getSysOrder)).collect(Collectors.toList());
|
|
|
+ allCustomFieldVOS = allCustomFieldVOS.stream().sorted(Comparator.comparing(AllCustomFieldVO::getSysOrder)).collect(Collectors.toList());
|
|
|
return allCustomFieldVOS;
|
|
|
}
|
|
|
|
|
|
|
|
|
public Records getCustomFieldValues(QueryEsCustomFieldDTO queryEsCustomFieldDTO) throws Exception {
|
|
|
+
|
|
|
List<FieldValueVO> fieldValueVOS = new ArrayList<>();
|
|
|
Integer type = queryEsCustomFieldDTO.getFieldType();
|
|
|
|
|
|
- EsCustomFieldDTO esCustomFieldDTO =new EsCustomFieldDTO();
|
|
|
+ EsCustomFieldDTO esCustomFieldDTO = new EsCustomFieldDTO();
|
|
|
esCustomFieldDTO.setFieldId(queryEsCustomFieldDTO.getFieldId());
|
|
|
esCustomFieldDTO.setProjectId((queryEsCustomFieldDTO.getProjectId()));
|
|
|
esCustomFieldDTO.setTaskId(queryEsCustomFieldDTO.getTaskId());
|
|
@@ -401,7 +402,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
|
|
|
esCustomFieldDTO.setFieldType(queryEsCustomFieldDTO.getFieldType());
|
|
|
|
|
|
PatentWithIdVO patentVO = esCustomFieldService.getEsCustomField(esCustomFieldDTO);
|
|
|
- if (patentVO != null){
|
|
|
+ if (patentVO != null) {
|
|
|
List<String> value = patentVO.getPatent().getESCustomField().getFieldValue();
|
|
|
switch (type) {
|
|
|
case 0:
|
|
@@ -420,7 +421,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
|
|
|
case 4:
|
|
|
|
|
|
case 5:
|
|
|
- if (value!=null&&value.size() > 0) {
|
|
|
+ if (value != null && value.size() > 0) {
|
|
|
List<Integer> ids = FormatUtil.StringTOIntegerList(value);
|
|
|
LambdaQueryWrapper<CustomOption> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.in(CustomOption::getId, ids);
|
|
@@ -438,7 +439,7 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
|
|
|
case 8:
|
|
|
|
|
|
case 9:
|
|
|
- if (value!=null&&value.size() > 0) {
|
|
|
+ if (value != null && value.size() > 0) {
|
|
|
List<Integer> ids = FormatUtil.StringTOIntegerList(value);
|
|
|
LambdaQueryWrapper<TreeNode> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.in(TreeNode::getId, ids);
|
|
@@ -464,10 +465,9 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
|
|
|
public Records addAllPatentCustomFieldOrder(AllFieldOrderDTO allFieldOrderDTO) {
|
|
|
Integer projectId = allFieldOrderDTO.getProjectId();
|
|
|
List<AllCustomFieldVO> allCustomFieldVOS = allFieldOrderDTO.getAllCustomFieldVOs();
|
|
|
- if(allFieldOrderDTO.getTaskId()!=null){
|
|
|
- cacheUtils.addTaskCustomField(allFieldOrderDTO.getTaskId(),allCustomFieldVOS);
|
|
|
- }
|
|
|
- else {
|
|
|
+ if (allFieldOrderDTO.getTaskId() != null) {
|
|
|
+ cacheUtils.addTaskCustomField(allFieldOrderDTO.getTaskId(), allCustomFieldVOS);
|
|
|
+ } else {
|
|
|
cacheUtils.addPatentCustomField(projectId, allCustomFieldVOS);
|
|
|
}
|
|
|
Records records = new Records();
|
|
@@ -475,4 +475,69 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
|
|
|
return records;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据名称获得标引栏位以及标引值
|
|
|
+ *
|
|
|
+ * @param name
|
|
|
+ * @param projectId
|
|
|
+ */
|
|
|
+ public List<EsCustomFieldDTO> getCustomFieldByValueName(String name, Integer projectId) {
|
|
|
+ List<EsCustomFieldDTO> esCustomFieldDTOS = new ArrayList<>();
|
|
|
+ //根据名称获得标引栏位以及标引值
|
|
|
+ LambdaQueryWrapper<CustomField> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.in(CustomField::getType, Arrays.asList(4, 5, 6))
|
|
|
+ .eq(CustomField::getProjectId, projectId);
|
|
|
+ List<CustomField> customFields = this.list(queryWrapper);
|
|
|
+ List<Integer> ids = customFields.stream().map(CustomField::getId).collect(Collectors.toList());
|
|
|
+ if (ids.size() == 0) {
|
|
|
+ return esCustomFieldDTOS;
|
|
|
+ }
|
|
|
+ //从option 查询名称相同的选项
|
|
|
+ LambdaQueryWrapper<CustomOption> optionWrapper = new LambdaQueryWrapper<>();
|
|
|
+ optionWrapper.eq(CustomOption::getName, name)
|
|
|
+ .in(CustomOption::getCustomFieldId, ids);
|
|
|
+ List<CustomOption> options = customOptionService.list(optionWrapper);
|
|
|
+ // 从 treeNode 查询名称相同的节点
|
|
|
+ LambdaQueryWrapper<TreeNode> treeNodeWrapper = new LambdaQueryWrapper<>();
|
|
|
+ treeNodeWrapper.eq(TreeNode::getName, name)
|
|
|
+ .eq(TreeNode::getType, 4)
|
|
|
+ .in(TreeNode::getTypeId,ids);
|
|
|
+ List<TreeNode> treeNodes = treeNodeService.list(treeNodeWrapper);
|
|
|
+
|
|
|
+ if (options != null && options.size() != 0) {
|
|
|
+ options.forEach(item -> {
|
|
|
+ EsCustomFieldDTO esCustomFieldDTO = esCustomFieldDTOS.stream()
|
|
|
+ .filter(i -> i.getFieldId()
|
|
|
+ .equals(item.getCustomFieldId()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (esCustomFieldDTO == null) {
|
|
|
+ esCustomFieldDTO.setFieldId(item.getCustomFieldId().toString());
|
|
|
+ List<String> values = new ArrayList<>();
|
|
|
+ values.add(item.getId().toString());
|
|
|
+ esCustomFieldDTO.setFieldValue(values);
|
|
|
+ } else {
|
|
|
+ esCustomFieldDTO.getFieldValue().add(item.getId().toString());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (treeNodes != null && treeNodes.size() != 0) {
|
|
|
+ treeNodes.forEach(item -> {
|
|
|
+ EsCustomFieldDTO esCustomFieldDTO = esCustomFieldDTOS.stream()
|
|
|
+ .filter(i -> i.getFieldId()
|
|
|
+ .equals(item.getTypeId()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (esCustomFieldDTO == null) {
|
|
|
+ esCustomFieldDTO.setFieldId(item.getTypeId().toString());
|
|
|
+ List<String> values = new ArrayList<>();
|
|
|
+ values.add(item.getId().toString());
|
|
|
+ esCustomFieldDTO.setFieldValue(values);
|
|
|
+ } else {
|
|
|
+ esCustomFieldDTO.getFieldValue().add(item.getId().toString());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return esCustomFieldDTOS;
|
|
|
+ }
|
|
|
}
|