265 lines
7.7 KiB
Java
265 lines
7.7 KiB
Java
package com.zcloud.service.system.impl;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
import java.util.stream.Collectors;
|
||
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Service;
|
||
import org.springframework.transaction.annotation.Transactional;
|
||
|
||
import com.zcloud.entity.Page;
|
||
import com.zcloud.entity.PageData;
|
||
import com.zcloud.entity.system.Department;
|
||
import com.zcloud.entity.system.Dictionaries;
|
||
import com.zcloud.mapper.datasource.system.DictionariesMapper;
|
||
import com.zcloud.service.system.DictionariesService;
|
||
|
||
/**
|
||
* 说明:按钮权限服务接口实现类
|
||
* 作者:luoxiaobao
|
||
* 官网:www.qdkjchina.com
|
||
*/
|
||
@Service
|
||
@Transactional //开启事物
|
||
public class DictionariesServiceImpl implements DictionariesService {
|
||
|
||
@Autowired
|
||
private DictionariesMapper dictionariesMapper;
|
||
|
||
/**
|
||
* 获取所有数据并填充每条数据的子级列表(递归处理)
|
||
* @param MENU_ID
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public List<Dictionaries> listAllDict(String parentId) throws Exception {
|
||
List<Dictionaries> dictList = this.listSubDictByParentId(parentId);
|
||
for(Dictionaries dict : dictList){
|
||
dict.setTreeurl("dictionaries_list.html?DICTIONARIES_ID="+dict.getDICTIONARIES_ID());
|
||
dict.setSubDict(this.listAllDict(dict.getDICTIONARIES_ID()));
|
||
dict.setTarget("treeFrame");
|
||
}
|
||
return dictList;
|
||
}
|
||
|
||
/**
|
||
* 通过ID获取其子级列表
|
||
* @param parentId
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public List<Dictionaries> listSubDictByParentId(String parentId) throws Exception {
|
||
return dictionariesMapper.listSubDictByParentId(parentId);
|
||
}
|
||
|
||
/**
|
||
* 通过ID获取其子级列表
|
||
* @param parentId
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public List<Dictionaries> listSubDictByParentIdAndCourseware(PageData pd) throws Exception {
|
||
return dictionariesMapper.listSubDictByParentIdAndCourseware(pd);
|
||
}
|
||
|
||
@Override
|
||
public List<PageData> getTreeById(String id) throws Exception {
|
||
List<Dictionaries> _list = this.listSubDictByParentId(id); //用传过来的ID获取此ID下的子列表数据
|
||
return _list.stream().map(n -> {
|
||
PageData entity = new PageData();
|
||
entity.put("DICTIONARIES_ID", n.getDICTIONARIES_ID());
|
||
entity.put("BIANMA", n.getBIANMA());
|
||
entity.put("NAME", n.getNAME());
|
||
return entity;
|
||
}).collect(Collectors.toList());
|
||
}
|
||
|
||
/**
|
||
* 获取所有数据并填充每条数据的子级列表(递归处理)用于代码生成器引用数据字典
|
||
* @param MENU_ID
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public List<Dictionaries> listAllDictToCreateCode(String parentId) throws Exception {
|
||
List<Dictionaries> dictList = this.listSubDictByParentId(parentId);
|
||
for(Dictionaries dict : dictList){
|
||
dict.setTreeurl("setDID('"+dict.getDICTIONARIES_ID()+"');");
|
||
dict.setSubDict(this.listAllDictToCreateCode(dict.getDICTIONARIES_ID()));
|
||
dict.setTarget("treeFrame");
|
||
}
|
||
return dictList;
|
||
}
|
||
/**
|
||
* 获取所有数据并填充每条数据的子级列表(递归处理)下拉ztree用
|
||
* @param MENU_ID
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public List<PageData> listAllDictToSelect(String parentId,List<PageData> zdicPdList) throws Exception {
|
||
List<PageData>[] arrayDep = this.listAllbyPd(parentId,zdicPdList);
|
||
List<PageData> dicPdList = arrayDep[1];
|
||
for(PageData pd : dicPdList){
|
||
this.listAllDictToSelect(pd.getString("id"),arrayDep[0]);
|
||
}
|
||
return arrayDep[0];
|
||
}
|
||
/**下拉ztree用
|
||
* @param parentId
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
@SuppressWarnings("unchecked")
|
||
public List<PageData>[] listAllbyPd(String parentId,List<PageData> zdicPdList) throws Exception {
|
||
List<Dictionaries> dicList = this.listSubDictByParentId(parentId);
|
||
List<PageData> dicPdList = new ArrayList<PageData>();
|
||
for(Dictionaries dic : dicList){
|
||
PageData pd = new PageData();
|
||
pd.put("id", dic.getDICTIONARIES_ID());
|
||
pd.put("parentId", dic.getPARENT_ID());
|
||
pd.put("name", dic.getNAME());
|
||
pd.put("icon", "../../../assets/images/user.gif");
|
||
dicPdList.add(pd);
|
||
zdicPdList.add(pd);
|
||
}
|
||
List<PageData>[] arrayDep = new List[2];
|
||
arrayDep[0] = zdicPdList;
|
||
arrayDep[1] = dicPdList;
|
||
return arrayDep;
|
||
}
|
||
/**列表
|
||
* @param page
|
||
* @throws Exception
|
||
*/
|
||
public List<PageData> list(Page page)throws Exception{
|
||
return dictionariesMapper.datalistPage(page);
|
||
}
|
||
|
||
/**通过id获取数据
|
||
* @param pd
|
||
* @throws Exception
|
||
*/
|
||
public PageData findById(PageData pd)throws Exception{
|
||
return dictionariesMapper.findById(pd);
|
||
}
|
||
/**通过名称获取数据
|
||
* @param pd
|
||
* @throws Exception
|
||
*/
|
||
public PageData findByName(PageData pd)throws Exception{
|
||
return dictionariesMapper.findByName(pd);
|
||
}
|
||
|
||
/**通过编码获取数据
|
||
* @param pd
|
||
* @throws Exception
|
||
*/
|
||
public PageData findByBianma(PageData pd)throws Exception{
|
||
return dictionariesMapper.findByBianma(pd);
|
||
}
|
||
|
||
/**新增
|
||
* @param pd
|
||
* @throws Exception
|
||
*/
|
||
public void save(PageData pd)throws Exception{
|
||
dictionariesMapper.save(pd);
|
||
}
|
||
|
||
/**修改
|
||
* @param pd
|
||
* @throws Exception
|
||
*/
|
||
public void edit(PageData pd)throws Exception{
|
||
dictionariesMapper.edit(pd);
|
||
}
|
||
|
||
/**排查表检查是否被占用
|
||
* @param pd
|
||
* @throws Exception
|
||
*/
|
||
public PageData findFromTbs(PageData pd)throws Exception{
|
||
return dictionariesMapper.findFromTbs(pd);
|
||
}
|
||
|
||
/**删除
|
||
* @param pd
|
||
* @throws Exception
|
||
*/
|
||
public void delete(PageData pd)throws Exception{
|
||
dictionariesMapper.delete(pd);
|
||
}
|
||
|
||
/**
|
||
* 通过IDS获取列表
|
||
* @param dictionariesIds
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public List<Dictionaries> listSubDictByIds(String[] dictionariesIds) throws Exception {
|
||
return dictionariesMapper.listSubDictByIdS(dictionariesIds);
|
||
}
|
||
|
||
@Override
|
||
public List<Dictionaries> listSecondLevelDictByParentId(String parentId) throws Exception {
|
||
return dictionariesMapper.listSecondLevelDictByParentId(parentId);
|
||
}
|
||
public List<PageData> listSubDictByParentIdAndSunCount(String parentId) throws Exception {
|
||
return dictionariesMapper.listSubDictByParentIdAndSunCount(parentId);
|
||
}
|
||
/**
|
||
* 从下而上查询树(无分支)
|
||
* @param dic
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public List<PageData> getTreeFromBelow(List<PageData> nextList, PageData dic) throws Exception{
|
||
List<PageData> dicList = dictionariesMapper.listBySameParent(dic.get("PARENT_ID").toString());
|
||
if(nextList != null && dicList != null && nextList.size() > 0 && dicList.size() > 0) {
|
||
for(PageData d : dicList) {
|
||
if(dic.getString("DICTIONARIES_ID").equals(d.getString("id"))) {
|
||
d.put("children", nextList);
|
||
}
|
||
}
|
||
}
|
||
PageData parDic = new PageData();
|
||
parDic.put("DICTIONARIES_ID", dic.get("PARENT_ID"));
|
||
parDic.put("NOROOT", "1");
|
||
parDic = dictionariesMapper.findById(parDic);
|
||
if(parDic != null && parDic.get("DICTIONARIES_ID") != null && !"0".equals(parDic.get("PARENT_ID").toString())) {
|
||
dicList = getTreeFromBelow(dicList,parDic);
|
||
}
|
||
return dicList;
|
||
}
|
||
public List<PageData> getIdsByRecuByParentId(String parentId) throws Exception {
|
||
return dictionariesMapper.getIdsByRecuByParentId(parentId);
|
||
}
|
||
|
||
/**
|
||
* 更具parentID获取数据字典信息,并且转换能map
|
||
* @param parentId
|
||
* @return
|
||
* @throws Exception
|
||
*/
|
||
public Map<String,Dictionaries> getMapByParId (String parentId) throws Exception{
|
||
List<Dictionaries> dictList = this.listSubDictByParentId(parentId);
|
||
Map<String,Dictionaries> dicMap = new HashMap<>();
|
||
for (Dictionaries dictionaries :dictList){
|
||
dicMap.put(dictionaries.getNAME(),dictionaries);
|
||
}
|
||
return dicMap;
|
||
}
|
||
|
||
public List<PageData> getIdsByParentIds(List<String> parentIds) throws Exception {
|
||
return dictionariesMapper.getIdsByParentIds(parentIds);
|
||
}
|
||
|
||
@Override
|
||
public List<PageData> findByCondition(PageData condition) throws Exception {
|
||
return dictionariesMapper.findByCondition(condition);
|
||
}
|
||
|
||
}
|