1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package com.bowintek.practice.services.impl;
- import com.bowintek.practice.enums.DataRangeEnum;
- import com.bowintek.practice.mapper.*;
- import com.bowintek.practice.mapper.cquery.SubjectCQuery;
- import com.bowintek.practice.model.*;
- import com.bowintek.practice.services.service.TempService;
- import com.bowintek.practice.services.service.UserService;
- import com.bowintek.practice.util.DateUtils;
- import com.bowintek.practice.vo.user.DataRange;
- import com.bowintek.practice.vo.user.UserInfoModel;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Component;
- import java.util.*;
- import java.util.stream.Collectors;
- @Component
- public class TempServiceImpl implements TempService {
- @Autowired
- SubjectCQuery subjectCQuery;
- @Override
- public List<HashMap<String, Object>> getSubjectTree(String likeName) {
- List<HashMap<String, Object>> subjectTrees = subjectCQuery.getListToHashMap(likeName);
- List<String> subIdList = subjectTrees.stream()
- .map(m->m.get("subId").toString())
- .collect(Collectors.toList());
- List<HashMap<String, Object>> subFields = subjectCQuery.getSubjectFieldToHashMapList(subIdList);
- //生成树标题,key
- subjectTrees.stream().forEach(sub -> {
- String subId = sub.get("subId").toString();
- String subjectName = sub.get("subjectName").toString();
- sub.put("title", sub.get("tabName").toString());
- sub.put("key", subId);
- List<HashMap<String, Object>> groups = new ArrayList<>();
- //生成维度
- HashMap<String, Object> dimension = new HashMap<>();
- dimension.put("title", "维度");
- dimension.put("key", sub.get("subId").toString() + "-维度");
- dimension.put("children", findSubjectFields(subFields, subId, Arrays.asList(new Integer[]{1}),subjectName, "维度"));
- groups.add(dimension);
- //生成度量
- HashMap<String, Object> measure = new HashMap<>();
- measure.put("title", "度量");
- measure.put("key", sub.get("subId").toString() + "-度量");
- measure.put("children", findSubjectFields(subFields, subId, Arrays.asList(new Integer[]{2}),subjectName, "度量"));
- groups.add(measure);
- sub.put("children", groups);
- });
- return subjectTrees;
- }
- public List<HashMap<String, Object>> findSubjectFields(List<HashMap<String, Object>> subFields,
- String subId,
- List<Integer> queryTypeIds,
- String subjectName,
- String groupName){
- List<HashMap<String, Object>> fields = subFields.stream()
- .filter(x -> subId.equals((String) x.get("subId"))
- && queryTypeIds.indexOf(x.get("settingTypeId"))>=0)
- .collect(Collectors.toList());
- //生成树标题,key
- fields.stream().forEach(field -> {
- field.put("title", field.get("fieldName").toString());
- field.put("key", field.get("fieldId").toString());
- field.put("subjectName", subjectName);
- field.put("subId", subId+"-"+groupName);
- });
- return fields;
- }
- }
|