forked from gzzfw/backEnd/gz-dyh

liyj
2024-09-09 b30aa8fad2e48d8b7afa16d89517094bf102603a
dyh-service/dyh-sys/src/main/java/cn/huge/module/kind/service/SyCauseService.java
@@ -4,19 +4,23 @@
import cn.huge.base.common.utils.DateUtils;
import cn.huge.base.common.utils.IdUtils;
import cn.huge.module.client.api.impl.UtilsClientImpl;
import cn.huge.module.constant.BaseConsts;
import cn.huge.module.kind.dao.mapper.SyCauseMapper;
import cn.huge.module.kind.domain.dto.CauseSelectJSDTO;
import cn.huge.module.kind.domain.po.SyCause;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Maps;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -26,7 +30,7 @@
 * @Description 纠纷类型表业务逻辑处理
 * @company hugeinfo
 * @author liyj
 * @Time 2024-08-28 20:06:20
 * @Time 2024-09-09 14:31:21
 * @version 1.0.0
 */
@Slf4j
@@ -130,4 +134,66 @@
        }
    }
    /**
     * 查询js树形结构
     * @return
     */
    public List<CauseSelectJSDTO> listSelectJS(){
        try{
            List<CauseSelectJSDTO> causeSelectJSDTOList = mapper.listSelectJS();
            return this.createTree(causeSelectJSDTOList, null);
        }catch (Exception e){
            log.error("[SyCauseService.listSelectJS]调用失败,异常信息:"+e, e);
            throw new ServiceException("SyCauseService.listSelectJS", e);
        }
    }
    /**
     * 创建某一级树形结构
     * @param allList 所有集合
     * @param firstId 某一级编号
     * @return List
     */
    public List<CauseSelectJSDTO> createTree(List<CauseSelectJSDTO> allList, String firstId) {
        List<CauseSelectJSDTO> firstMapList = new ArrayList<>();
        for (CauseSelectJSDTO causeSelectJSDTO : allList) {
            for (CauseSelectJSDTO currentParam : allList) {
                if (currentParam.getValue().equals(causeSelectJSDTO.getParentId())) {
                    addToMBean(currentParam, causeSelectJSDTO);
                    break;
                }
            }
        }
        //取第一级节点
        for (CauseSelectJSDTO causeSelectJSDTO : allList) {
            if (StringUtils.isNotEmpty(firstId)) {
                if (firstId.equals(causeSelectJSDTO.getValue())) {
                    firstMapList.add(causeSelectJSDTO);
                }
            } else {
                if (BaseConsts.ROOT.equals(causeSelectJSDTO.getParentId()) || StringUtils.isEmpty(causeSelectJSDTO.getParentId())) {
                    firstMapList.add(causeSelectJSDTO);
                }
            }
        }
        return firstMapList;
    }
    /**
     * 获取子级数组
     * @param target  目标
     * @param child 子级
     */
    public void addToMBean(CauseSelectJSDTO target, CauseSelectJSDTO child) {
        List<CauseSelectJSDTO> childListObj = target.getChildren();
        List<CauseSelectJSDTO> childList = null;
        if (CollectionUtils.isEmpty(childListObj)) {
            childList = new ArrayList();
            target.setChildren(childList);
        } else {
            childList = childListObj;
        }
        childList.add(child);
    }
}