This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/java/com/nis/util/DictUtils.java

220 lines
6.8 KiB
Java
Raw Normal View History

2017-12-29 16:18:40 +08:00
package com.nis.util;
import java.util.ArrayList;
2017-12-29 16:18:40 +08:00
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
2017-12-29 16:18:40 +08:00
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.SysDataDictionaryName;
import com.nis.domain.basics.SysDictInfo;
import com.nis.web.dao.FunctionRegionDictDao;
import com.nis.web.dao.FunctionServiceDictDao;
2017-12-29 16:18:40 +08:00
import com.nis.web.dao.SysDictDao;
import com.nis.web.dao.basics.SysDictInfoDao;
2017-12-29 16:18:40 +08:00
import com.nis.web.service.SpringContextHolder;
/**
* 系统数据字典工具类
* @author Administrator
*
*/
public class DictUtils {
private final static SysDictDao dictDao = SpringContextHolder.getBean(SysDictDao.class);
private final static SysDictInfoDao sysDictInfoDao = SpringContextHolder.getBean(SysDictInfoDao.class);
private final static FunctionRegionDictDao functionRegionDictDao = SpringContextHolder.getBean(FunctionRegionDictDao.class);
private final static FunctionServiceDictDao functionServiceDictDao = SpringContextHolder.getBean(FunctionServiceDictDao.class);
2017-12-29 16:18:40 +08:00
public static Map<String, List<SysDataDictionaryItem>> getDictData() {
Map<String, List<SysDataDictionaryItem>> dictMap = (Map<String, List<SysDataDictionaryItem>>)CacheUtils.get(Constants.CACHE_DICT_MAP);
if (StringUtil.isEmpty(dictMap)) {
dictMap = Maps.newHashMap();
List<SysDataDictionaryName> dicList = dictDao.findAllList(new SysDataDictionaryName());
for (SysDataDictionaryName dict : dicList) {
dictMap.put(dict.getMark(), dict.getDictItemList());
}
CacheUtils.put(Constants.CACHE_DICT_MAP, dictMap);
}
return dictMap;
}
/**
* 获取词典对应key的所有词条code:value
* @param key
* @return
*/
public static Map<String,String> getDictOption(String key) {
List<SysDataDictionaryItem> itemList = getDictData().get(key);
Map<String, String> itemMap = Maps.newHashMap();
for (SysDataDictionaryItem item : itemList) {
itemMap.put(item.getItemCode(), item.getItemValue());
}
return itemMap;
}
/**
* 获取词典对应key的所有词条value:code
* @param key
* @return
*/
public static Map<String,String> getDictOptionInReversion(String key) {
List<SysDataDictionaryItem> itemList = getDictData().get(key);
Map<String, String> itemMap = Maps.newHashMap();
for (SysDataDictionaryItem item : itemList) {
itemMap.put(item.getItemValue(), item.getItemCode());
}
return itemMap;
}
public static List<SysDataDictionaryItem> getDictList(String key){
List<SysDataDictionaryItem> itemList = getDictData().get(key);
if (StringUtil.isEmpty(itemList)) {
itemList = Lists.newArrayList();
}
return itemList;
}
public static String getDictLabels(String dictKey, String itemCodes, String defaultValue){
Map<String, String> itemMap = getDictOption(dictKey);
if (!StringUtil.isEmpty(itemMap)) {
List<String> valueList = Lists.newArrayList();
for (String itemCode : StringUtils.split(itemCodes, ",")){
valueList.add(itemMap.get(itemCode));
}
return StringUtils.join(valueList, ",");
}
return defaultValue;
}
/**
* 获取字典词条标签
* @param value
* @param type
* @param defaultValue
* @return
*/
public static String getDictLabel(String dictKey, String itemCode, String defaultValue){
String itemLabel = getDictOption(dictKey).get(itemCode);
return StringUtil.isBlank(itemLabel) ? defaultValue : itemLabel;
}
public static String getDictLabel(String dictKey, String itemCode){
return getDictLabel(dictKey, itemCode, "默认");
}
public static String getDictCode(String dictKey, String itemValue, String defaultValue){
String itemCode = getDictOptionInReversion(dictKey).get(itemValue);
return StringUtil.isBlank(itemCode) ? defaultValue : itemCode;
}
public static String getDictCode(String dictKey, String itemValue){
return getDictCode(dictKey, itemValue, "默认");
}
/**
* 返回字典列表JSON
* @param type
* @return
*/
public static String getDictListJson(String key){
return JsonMapper.toJsonString(getDictList(key));
}
/**
* 增强字符串配置特征域字典
* @return
*/
public static List<SysDictInfo> getFeaturesDictData(String itemCode) {
Map<String, List<SysDictInfo>> dictMap = (Map<String, List<SysDictInfo>>)CacheUtils.get(Constants.CACHE_FEATURES_DICT_MAP);
if(StringUtil.isEmpty(dictMap)){
dictMap = Maps.newHashMap();
SysDictInfo dict = new SysDictInfo();
dict.setItemType(3);
dict.setItemCode(itemCode);
List<SysDictInfo> dicList = sysDictInfoDao.findAllSysDictInfo(dict,"");
dictMap.put(itemCode, dicList);
CacheUtils.put(Constants.CACHE_FEATURES_DICT_MAP, dictMap);
}else{
if(StringUtil.isEmpty(dictMap.get(itemCode))){
SysDictInfo dict = new SysDictInfo();
dict.setItemType(3);
dict.setItemCode(itemCode);
List<SysDictInfo> dicList = sysDictInfoDao.findAllSysDictInfo(dict,"");
dictMap.put(itemCode, dicList);
CacheUtils.put(Constants.CACHE_FEATURES_DICT_MAP, dictMap);
}
}
return dictMap.get(itemCode);
}
/**
* 功能业务字典获取相应功能菜单对应的业务信息
* @param functionId
* @return
*/
public static List<FunctionServiceDict> getFunctionServiceDictList(Integer functionId){
List<FunctionServiceDict> allDictList = (List<FunctionServiceDict>)CacheUtils.get(Constants.CACHE_FUNCTION_SERVICE_DICT);
List<FunctionServiceDict> dictList = new ArrayList();
if(StringUtil.isEmpty(allDictList)){
FunctionServiceDict entity = new FunctionServiceDict();
allDictList = functionServiceDictDao.getList(entity);
CacheUtils.put(Constants.CACHE_FUNCTION_SERVICE_DICT, dictList);
}
for(FunctionServiceDict entity:allDictList){
if(entity.getFunctionId()==functionId){
dictList.add(entity);
}
}
return dictList;
}
/**
* 功能配置域字典获取相应功能菜单对应的配置域信息
* @param functionId
* @return
*/
public static List<FunctionRegionDict> getFunctionRegionDictList(Integer functionId){
List<FunctionRegionDict> allDictList = (List<FunctionRegionDict>)CacheUtils.get(Constants.CACHE_FUNCTION_REGION_DICT);
List<FunctionRegionDict> dictList = new ArrayList();
if(StringUtil.isEmpty(allDictList)){
FunctionRegionDict entity = new FunctionRegionDict();
allDictList = functionRegionDictDao.getList(entity);
CacheUtils.put(Constants.CACHE_FUNCTION_REGION_DICT, dictList);
}
for(FunctionRegionDict entity:allDictList){
if(entity.getFunctionId()==functionId){
dictList.add(entity);
}
}
return dictList;
}
2017-12-29 16:18:40 +08:00
}