Files
scrq-hd/.svn/pristine/91/9171f8f34770d7a89743fb5050da8b79a8d6ee43.svn-base
2025-07-03 10:34:04 +08:00

73 lines
2.1 KiB
Plaintext

package com.cmeim.basic.service;
import com.cmeim.basic.enums.EnableEnum;
import com.cmeim.basic.po.BaPhenomenon;
import com.cmeim.basic.repository.BaPhenomenonRepository;
import com.cmeim.basic.vo.PhenomenonVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
/**
* 作者:李俊辉
* date: 2021/9/10
*/
@Service
public class PhenomenonService {
@Autowired
BaPhenomenonRepository baPhenomenonRepository;
public PhenomenonVo getPhenomenonTree(){
BaPhenomenon treeNode = new BaPhenomenon();
treeNode.setPhenomenonEnabled(EnableEnum.ACTIVATION.getCode());
Example<BaPhenomenon> example = Example.of(treeNode);
List<BaPhenomenon> list = baPhenomenonRepository.findAll(example);
List<PhenomenonVo> voList = new ArrayList<>();
for (BaPhenomenon org:list){
PhenomenonVo vo = new PhenomenonVo();
vo.setValue(org.getId());
vo.setTitle(org.getPhenomenonText());
vo.setCode(org.getPhenomenonCode());
vo.setType(org.getDictType());
vo.setParentCode(org.getParentCode());
voList.add(vo);
}
setTreeStructure(voList);
PhenomenonVo ret = null;
Optional<PhenomenonVo> optional = voList.stream().
filter(n-> StringUtils.isBlank(n.getParentCode())).
findFirst();
if (optional.isPresent()) ret = optional.get();
return ret;
}
public void setTreeStructure(List<PhenomenonVo> nodeList){
for (PhenomenonVo node: nodeList){
setChildrenList(node, nodeList);
}
}
private void setChildrenList(PhenomenonVo vo, List<PhenomenonVo> nodeList){
for(PhenomenonVo node: nodeList){
if(vo!=node&&vo.getCode().equals(node.getParentCode())){
vo.getChildren().add(node);
}
}
}
}