package com.vci.web.service.impl;
|
|
import com.vci.corba.common.PLException;
|
import com.vci.corba.omd.data.BusinessObject;
|
import com.vci.corba.omd.etm.EnumItem;
|
import com.vci.corba.omd.etm.EnumType;
|
import com.vci.dto.OsEnumDTO;
|
import com.vci.dto.OsEnumItemDTO;
|
import com.vci.omd.utils.ObjectTool;
|
import com.vci.starter.web.annotation.log.VciUnLog;
|
import com.vci.starter.web.enumpck.UserSecretEnum;
|
import com.vci.starter.web.exception.VciBaseException;
|
import com.vci.starter.web.pagemodel.DataGrid;
|
import com.vci.starter.web.pagemodel.PageHelper;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.starter.web.util.VciDateUtil;
|
import com.vci.constant.EnumIdConstant;
|
import com.vci.pagemodel.KeyValue;
|
import com.vci.pagemodel.OsEnumItemVO;
|
import com.vci.pagemodel.OsEnumVO;
|
import com.vci.pagemodel.OsStatusVO;
|
import com.vci.starter.web.util.WebThreadLocalUtil;
|
import com.vci.web.service.OsEnumServiceI;
|
import com.vci.web.service.OsLifeCycleServiceI;
|
import com.vci.web.service.WebBoServiceI;
|
import com.vci.web.util.Func;
|
import com.vci.web.util.PlatformClientUtil;
|
import com.vci.web.util.WebUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.util.HtmlUtils;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import static com.vci.constant.EnumIdConstant.LC_STATUS_SUBFIX;
|
|
/**
|
* 枚举服务--已经调用平台底层了,不再提供dao层
|
* @author weidy@2018-03-06
|
*
|
*/
|
@Service
|
public class OsEnumServiceImpl implements OsEnumServiceI {
|
|
/**
|
* 平台调用客户端
|
*/
|
@Autowired
|
private PlatformClientUtil platformClientUtil;
|
|
/**
|
* 生命周期
|
*/
|
@Autowired
|
private OsLifeCycleServiceI lifeCycleService;
|
|
/**
|
* 用户新增数据的时候可以查看的密级
|
*/
|
public static final String MY_DATA_SECRET = "myDataSecret";
|
|
/**
|
* 业务数据
|
*/
|
@Autowired
|
private WebBoServiceI boService;
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 加载自身
|
*/
|
@Autowired(required = false)
|
@Lazy
|
private OsEnumServiceI self;
|
|
/**
|
* 使用编号获取枚举明细
|
* @param enumCode 编号
|
* @return 明细
|
* @throws VciBaseException 调用服务端出错的时候会抛出异常
|
*/
|
private List<OsEnumItemVO> getEnumItemById(String enumCode) throws VciBaseException{
|
if(StringUtils.isBlank(enumCode)){
|
return null;
|
}
|
Map<String, OsEnumVO> enumVOMap = self.selectAllEnumMap();
|
if(MY_DATA_SECRET.equalsIgnoreCase(enumCode)){
|
//当前用户
|
OsEnumVO enumVO = enumVOMap.getOrDefault(EnumIdConstant.DATASECRET_ENUMNAME, null);
|
int userSecret = WebUtil.getInt(WebUtil.getCurrentUserSessionInfoNotException().getUserSecret());
|
List<OsEnumItemVO> itemVOS = new ArrayList<>();
|
if(enumVO!=null && !CollectionUtils.isEmpty(enumVO.getItems())){
|
itemVOS = enumVO.getItems().stream().filter(item->WebUtil.getInt(item.getValue()) <= userSecret).collect(Collectors.toList());
|
}
|
return itemVOS;
|
}else{
|
return enumVOMap.getOrDefault(enumCode.toLowerCase(),new OsEnumVO()).getItems();
|
}
|
}
|
|
/**
|
* 获取枚举的内容
|
* @param enumCode 枚举的编号(英文名称)
|
* @return key是英文值,value是中文文本
|
*/
|
@Override
|
public List<KeyValue> getEnum(String enumCode) throws VciBaseException {
|
if(StringUtils.isEmpty(enumCode)){
|
return null;
|
}
|
enumCode = HtmlUtils.htmlUnescape(enumCode);
|
if(enumCode.endsWith(LC_STATUS_SUBFIX)){
|
List<OsStatusVO> statusVOS = lifeCycleService.listStatusById(enumCode.replace(LC_STATUS_SUBFIX, ""));
|
if(CollectionUtils.isEmpty(statusVOS)){
|
return new ArrayList<>();
|
}
|
List<KeyValue> keyValueList = new ArrayList<>();
|
statusVOS.stream().forEach(statusVO->{
|
KeyValue kv = new KeyValue();
|
kv.setKey(statusVO.getId());
|
kv.setValue(statusVO.getName());
|
kv.setAttributes(VciBaseUtil.objectToMap(statusVO));
|
keyValueList.add(kv);
|
});
|
return keyValueList;
|
}
|
return enumItem2KV(getEnumItemById(enumCode));
|
}
|
|
/**
|
* 获取枚举的中文文本
|
* @param enumCode 枚举的编号(英文名称)
|
* @param enumKey 枚举的英文值,区分大小写
|
*/
|
@Override
|
public String getValue(String enumCode, String enumKey) throws VciBaseException {
|
List<KeyValue> allKV = getEnum(enumCode);
|
if(allKV.size()>0){
|
for(KeyValue kv : allKV){
|
if(kv.getKey().equalsIgnoreCase(enumKey)){
|
return kv.getValue();
|
}
|
}
|
}
|
return "";
|
}
|
|
/**
|
* 获取枚举的英文值
|
* @param enumCode 枚举的编号(英文名称)
|
* @param enumValue 枚举的中文文本,区分大小写
|
*/
|
@Override
|
public String getKey(String enumCode, String enumValue) throws VciBaseException {
|
List<KeyValue> allKV = getEnum(enumCode);
|
if(allKV.size()>0){
|
for(KeyValue kv : allKV){
|
if(kv.getValue().equalsIgnoreCase(enumValue)){
|
return kv.getKey();
|
}
|
}
|
}
|
return "";
|
}
|
|
/**
|
* 获取枚举的映射
|
*
|
* @param enumCode 枚举的=编号
|
* @return 枚举的值映射
|
*/
|
@Override
|
public Map<String, String> getEnumValueMap(String enumCode) throws VciBaseException {
|
if(StringUtils.isBlank(enumCode)){
|
return null;
|
}
|
Map<String, OsEnumVO> enumVOMap = self.selectAllEnumMap();
|
if(MY_DATA_SECRET.equalsIgnoreCase(enumCode)){
|
//当前用户
|
OsEnumVO enumVO = enumVOMap.getOrDefault(EnumIdConstant.DATASECRET_ENUMNAME, null);
|
int userSecret = WebUtil.getInt(WebUtil.getCurrentUserSessionInfoNotException().getUserSecret());
|
Map<String,String> itemVOMap = new HashMap<>();
|
if(enumVO!=null && !CollectionUtils.isEmpty(enumVO.getItemMaps())){
|
enumVO.getItemMaps().forEach((key,value)->{
|
if(WebUtil.getInt(key) <= userSecret){
|
itemVOMap.put(key,value);
|
}
|
});
|
}
|
return itemVOMap;
|
}else{
|
return enumVOMap.getOrDefault(enumCode.toLowerCase(),new OsEnumVO()).getItemMaps();
|
}
|
}
|
|
/**
|
* 查询所有的枚举
|
*
|
* @return 枚举的显示对象
|
*/
|
@Override
|
@VciUnLog
|
public List<OsEnumVO> selectAllEnum() {
|
//后面两个参数居然完全没有作用
|
try {
|
return enumDO2VOs(Arrays.stream(platformClientUtil.getEnumService().getEnumTypes("",1,1)).collect(Collectors.toList()));
|
} catch (PLException vciError) {
|
throw WebUtil.getVciBaseException(vciError);
|
}
|
}
|
|
/**
|
* 枚举定义列表查询(缓存里面找且带name查询条件)
|
* @param enumName
|
* @return 枚举的显示对象
|
*/
|
@Override
|
public List<OsEnumVO> getEnumTypeList(String enumName) throws PLException {
|
return enumDO2VOs(Arrays.stream(platformClientUtil.getEnumService().getEnumTypes(enumName,1,1)).collect(Collectors.toList()));
|
}
|
|
/**
|
* 查看枚举的使用范围
|
* @param enumName
|
* @return
|
* @throws PLException
|
*/
|
@Override
|
public List<OsEnumVO> getUsedEnumList(String enumName) throws PLException {
|
return null;
|
}
|
|
/**
|
* 根据枚举英文名称获取枚举类型
|
* @param id
|
* @return
|
*/
|
@Override
|
public OsEnumVO getEnumTypeById(String id) throws PLException {
|
if (Func.isBlank(id)) {
|
return null;
|
}
|
EnumType enumType = platformClientUtil.getEnumService().getEnumTypeByName(id);
|
return enumDO2VO(enumType);
|
}
|
|
/**
|
* 新增枚举类型
|
* @param osEnumDTO
|
* @return
|
*/
|
@Override
|
public boolean addEnumType(OsEnumDTO osEnumDTO) throws PLException {
|
//1、枚举值判空
|
VciBaseUtil.alertNotNull(
|
osEnumDTO,"枚举类型对象",
|
osEnumDTO.getId(),"枚举名称",
|
osEnumDTO.getEnumValueDataType(),"枚举的类型",
|
osEnumDTO.getLength(),"枚举长度"
|
);
|
//2、枚举类型名称正则校验和查重
|
if(!osEnumDTO.getId().matches("^[A-Za-z]+$")){
|
throw new PLException("500", new String[] { "枚举名称只能为英文字母!"});
|
}
|
OsEnumVO osEnumVO = this.getEnumTypeById(osEnumDTO.getId());
|
if(Func.isNotEmpty(osEnumVO) && Func.isNotBlank(osEnumVO.getOid())){
|
throw new PLException("500", new String[] { "枚举名称已存在,请修改枚举名称!"});
|
}
|
//枚举项名称判重等操作
|
checkOsEnumItem(osEnumDTO);
|
//默认值处理
|
String userId = "developer";//WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
|
osEnumDTO.setCreator(userId);
|
osEnumDTO.setLastModifier(userId);
|
return platformClientUtil.getEnumService().addEnumType(this.osEnumDTO2EnumType(osEnumDTO));
|
}
|
|
/**
|
* 修改枚举类型
|
* @param osEnumDTO
|
* @return
|
*/
|
@Override
|
public boolean updateEnumType(OsEnumDTO osEnumDTO) throws PLException {
|
//1、枚举值判空
|
VciBaseUtil.alertNotNull(
|
osEnumDTO,"枚举类型对象",
|
osEnumDTO.getOid(),"枚举的主键",
|
osEnumDTO.getId(),"枚举名称",
|
osEnumDTO.getEnumValueDataType(),"枚举的类型",
|
osEnumDTO.getLength(),"枚举长度"
|
);
|
//2、枚举类型名称(名称不允许修改)所以可以用名称查询是否存在
|
OsEnumVO osEnumVO = this.getEnumTypeById(osEnumDTO.getId());
|
if(Func.isEmpty(osEnumVO) || Func.isBlank(osEnumVO.getOid())){
|
throw new PLException("500", new String[] { "当前修改枚举对象不存在,请刷新后重试!"});
|
}
|
//3、枚举项判重,和长度等校验
|
checkOsEnumItem(osEnumDTO);
|
//将osEnumVO中的默认值赋值给osEnumDTO对象
|
String userId = "developer";//WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId();
|
osEnumDTO.setLastModifier(userId);
|
osEnumDTO.setCreator(osEnumVO.getCreator());
|
osEnumDTO.setCreateTime(osEnumVO.getCreateTime());
|
//修改和删除时ts参数为前端必传参数
|
return platformClientUtil.getEnumService().modifyEnumType(osEnumDTO2EnumType(osEnumDTO));
|
}
|
|
/**
|
* 删除枚举类型(包含删除枚举项功能)
|
* @param osEnumDTOS
|
* @return
|
*/
|
@Override
|
public boolean deleteEnumTypes(List<OsEnumDTO> osEnumDTOS) throws PLException {
|
VciBaseUtil.alertNotNull(osEnumDTOS,"待删除的枚举列表");
|
//平台的deleteEnumTypes方法必传三个参数,oid、name和ts
|
List<EnumType> enumTypes = new ArrayList<>();
|
for(OsEnumDTO osEnumDTO : osEnumDTOS){
|
//oid和ts判空
|
String oid = osEnumDTO.getOid();
|
//name主要用来对缓存数据删除
|
String name = osEnumDTO.getName();
|
Date ts = osEnumDTO.getTs();
|
if(Func.isBlank(oid) || Func.isBlank(name) || Func.isEmpty(ts)){
|
throw new PLException("500",new String[]{"待删除的枚举列表中主键【oid】和调整时间【ts】不能为空!"});
|
}
|
EnumType enumType = new EnumType();
|
enumType.oid = oid;
|
enumType.name = name;
|
enumType.ts = Func.format(ts,VciDateUtil.DateTimeMillFormat);
|
enumTypes.add(enumType);
|
}
|
if(Func.isEmpty(enumTypes)){
|
return false;
|
}
|
return platformClientUtil.getEnumService().deleteEnumTypes(enumTypes.toArray(new EnumType[enumTypes.size()]));
|
}
|
|
/**
|
* 枚举项校验
|
* @param osEnumDTO
|
* @return 校验失败直接抛出异常,否则不会做任何返回
|
*/
|
private void checkOsEnumItem(OsEnumDTO osEnumDTO) throws PLException {
|
List<OsEnumItemDTO> items = osEnumDTO.getItems();
|
if (Func.isNotEmpty(items)) {
|
//获取正则,主要是针对Integer类型的时候
|
String regular = "Integer".equals(osEnumDTO.getEnumValueDataType()) ? "^[0-9]+$" : "";
|
//利用set的add返回值进行name判重
|
Set<String> uniqueNames = new HashSet<>();
|
for (OsEnumItemDTO item : items) {
|
// 判断name属性是否有重复的值
|
if (!uniqueNames.add(item.getName())) {
|
throw new PLException("500", new String[] {"以下枚举项名称: 【" + item.getName()+ "】重复,请修改枚举项名后重试!"});
|
}
|
//判断枚举值是否超过设定长度
|
if (item.getValue().length() > osEnumDTO.getLength()) {
|
throw new PLException("500", new String[] {"枚举项名称为:【" + item.getName() + "】的枚举值长度,超过限定长度【" + osEnumDTO.getLength() + "】"});
|
}
|
//枚举类型正则校验
|
if(Func.isNotBlank(regular) && !item.getValue().matches(regular)){
|
throw new PLException("500", new String[] { "枚举值只能为【" +
|
("String".equals(osEnumDTO.getEnumValueDataType()) ? "字符串":"整型") + "】类型!"});
|
}
|
}
|
}
|
}
|
|
/**
|
* 新平台枚举DTO对象转平台EnumType对象
|
* @param osEnumDTO
|
* @return
|
*/
|
private EnumType osEnumDTO2EnumType(OsEnumDTO osEnumDTO){
|
EnumType enumType = new EnumType();
|
enumType.oid = osEnumDTO.getOid();
|
enumType.name = osEnumDTO.getId();
|
enumType.label = osEnumDTO.getName();
|
enumType.length = osEnumDTO.getLength();
|
enumType.creator = osEnumDTO.getCreator();
|
enumType.ts = Func.format((Func.isNotEmpty(osEnumDTO.getTs()) ? osEnumDTO.getTs():new Date()),VciDateUtil.DateTimeMillFormat);
|
enumType.createTime = Func.isNotEmpty(osEnumDTO.getCreateTime()) ? osEnumDTO.getCreateTime().getTime():System.currentTimeMillis();
|
enumType.modifier = osEnumDTO.getLastModifier();
|
enumType.modifyTime = System.currentTimeMillis();
|
enumType.type = osEnumDTO.getEnumValueDataType();
|
//处理枚举项
|
List<EnumItem> enumItems = new ArrayList<>();
|
List<OsEnumItemDTO> items = osEnumDTO.getItems();
|
if(Func.isNotEmpty(items)){
|
items.stream().forEach(item->{
|
EnumItem enumItem = new EnumItem();
|
enumItem.name = item.getName();
|
enumItem.value = item.getValue();
|
enumItem.description = item.getDescription();
|
enumItems.add(enumItem);
|
});
|
}
|
enumType.items = enumItems.toArray(new EnumItem[enumItems.size()]);
|
return enumType;
|
}
|
|
/**
|
* 查询所有的枚举映射
|
*
|
* @return key是枚举的英文名称
|
*/
|
@Override
|
@VciUnLog
|
public Map<String, OsEnumVO> selectAllEnumMap() {
|
return Optional.ofNullable(self.selectAllEnum()).orElseGet(()->new ArrayList<>()).stream().collect(Collectors.toMap(s->s.getId().toLowerCase(),t->t,(o1,o2)->o1));
|
}
|
|
/**
|
* 枚举的数据对象转换为显示对象
|
*
|
* @param enumItems 枚举的对象
|
* @return 显示对象
|
*/
|
@Override
|
public List<OsEnumVO> enumDO2VOs(Collection<EnumType> enumItems) {
|
List<OsEnumVO> enumVOS = new ArrayList<>();
|
Optional.ofNullable(enumItems).orElseGet(()->new ArrayList<>()).stream().forEach(enumItem -> {
|
OsEnumVO enumVO = enumDO2VO(enumItem);
|
enumVOS.add(enumVO);
|
});
|
return enumVOS;
|
}
|
|
/**
|
* 枚举的数据对象转换为显示对象
|
*
|
* @param enumType 数据对象
|
* @return 显示对象
|
*/
|
@Override
|
public OsEnumVO enumDO2VO(EnumType enumType) {
|
OsEnumVO enumVO = new OsEnumVO();
|
if(enumType!=null){
|
enumVO.setOid(enumType.oid);
|
enumVO.setCreator(enumType.creator);
|
enumVO.setLastModifier(enumType.modifier);
|
enumVO.setId(enumType.name);
|
enumVO.setName(enumType.label);
|
enumVO.setEnumValueDataType(enumType.type);
|
enumVO.setEnumValueDataTypeText("String".equalsIgnoreCase(enumType.type) ? "字符串":"整型");
|
enumVO.setLength((int) enumType.length);
|
|
try {
|
enumVO.setLastModifyTime(new Date(enumType.createTime));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
try {
|
enumVO.setCreateTime(new Date(enumType.createTime));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
try {
|
enumVO.setTs(VciDateUtil.str2Date(enumType.ts,VciDateUtil.DateTimeMillFormat));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
//枚举项处理
|
List<OsEnumItemVO> itemVOS = new ArrayList<>();
|
Map<String,String> itemVOMap = new HashMap<>();
|
if(enumType.items!=null && enumType.items.length > 0){
|
for(int i = 0 ; i < enumType.items.length ; i ++){
|
OsEnumItemVO enumItemVO = new OsEnumItemVO();
|
EnumItem enumChild = enumType.items[i];
|
enumItemVO.setValue(enumChild.value);
|
enumItemVO.setName(enumChild.name);
|
enumItemVO.setDescription(enumChild.description);
|
itemVOS.add(enumItemVO);
|
itemVOMap.put(enumChild.value,enumChild.name);
|
}
|
}
|
enumVO.setItems(itemVOS);
|
enumVO.setItemMaps(itemVOMap);
|
}
|
return enumVO;
|
}
|
|
/**
|
* 枚举明细转换为KV
|
*
|
* @param enumItemVO 枚举明细显示对象
|
* @return KV
|
*/
|
@Override
|
public List<KeyValue> enumItem2KV(Collection<OsEnumItemVO> enumItemVO) {
|
List<KeyValue> keyValueList = new ArrayList<>();
|
if(!CollectionUtils.isEmpty(enumItemVO)){
|
enumItemVO.forEach(itemVO->{
|
KeyValue keyValue = new KeyValue();
|
keyValue.setKey(itemVO.getValue());
|
keyValue.setValue(itemVO.getName());
|
keyValueList.add(keyValue);
|
});
|
}
|
return keyValueList;
|
}
|
|
/**
|
* 获取数据的密级,并且会用当前用户的密级再校验一下
|
*
|
* @param oid 主键
|
* @param btmname 业务类型
|
* @return 数据的密级
|
*/
|
@Override
|
public List<KeyValue> getDataEnum(String oid, String btmname) {
|
VciBaseUtil.alertNotNull(oid,"业务数据的主键",btmname,"业务类型");
|
BusinessObject cbo = boService.selectCBOByOid(oid, btmname);
|
String secret = ObjectTool.getBOAttributeValue(cbo,"secretGrade");
|
if(StringUtils.isBlank(secret)){
|
return new ArrayList<>();
|
}else{
|
int dataSecret = VciBaseUtil.getInt(secret);
|
List<KeyValue> values = getEnum(EnumIdConstant.DATASECRET_ENUMNAME);
|
Integer userSecret = VciBaseUtil.getCurrentUserSecret();
|
if(userSecret == null || userSecret < UserSecretEnum.NONE.getValue()){
|
userSecret = UserSecretEnum.NONE.getValue();
|
}
|
if(CollectionUtils.isEmpty(values)){
|
return new ArrayList<>();
|
}
|
Integer finalUserSecret = userSecret;
|
return values.stream().filter(s-> {
|
int thisDataSecret = VciBaseUtil.getInt(s.getKey());
|
if(dataSecret >= thisDataSecret && finalUserSecret >=thisDataSecret){
|
return true;
|
}
|
return false;
|
}).collect(Collectors.toList());
|
}
|
}
|
|
/**
|
* 批量添加内容
|
*
|
* @param enumItemList 枚举的内容
|
*/
|
@Override
|
public void batchAddEnum(List<EnumType> enumItemList) {
|
if(!CollectionUtils.isEmpty(enumItemList)){
|
enumItemList.stream().forEach(enumItem -> {
|
try {
|
platformClientUtil.getEnumService().addEnumType(enumItem);
|
} catch (PLException e) {
|
throw WebUtil.getVciBaseException(e);
|
}
|
});
|
}
|
}
|
|
/**
|
* 批量修改内容
|
*
|
* @param enumItemList 枚举的内容
|
*/
|
@Override
|
public void batchEditEnum(List<EnumType> enumItemList) {
|
if(!CollectionUtils.isEmpty(enumItemList)){
|
enumItemList.stream().forEach(enumItem -> {
|
try {
|
platformClientUtil.getEnumService().modifyEnumType(enumItem);
|
} catch (PLException e) {
|
throw WebUtil.getVciBaseException(e);
|
}
|
});
|
}
|
}
|
|
/**
|
* 使用编号获取枚举的名称
|
*
|
* @param id 编号
|
* @return 枚举的中文名称
|
*/
|
@Override
|
public String getNameById(String id) {
|
VciBaseUtil.alertNotNull(id,"枚举的英文编号");
|
Map<String, OsEnumVO> enumVOMap = self.selectAllEnumMap();
|
if(!enumVOMap.containsKey(id.toLowerCase())){
|
throw new VciBaseException("枚举[{0}]在系统中不存在",new String[]{id});
|
}
|
return enumVOMap.get(id.toLowerCase()).getName();
|
}
|
|
/**
|
* 使用枚举的英文名称集合获取对象
|
*
|
* @param enumIdCollection 英文名称集合,不区分大小写
|
* @return 枚举的对象
|
*/
|
@Override
|
public List<OsEnumVO> listEnumByIdCollection(Collection<String> enumIdCollection) {
|
Map<String, OsEnumVO> enumVOMap = self.selectAllEnumMap();
|
List<OsEnumVO> enumVOList = new ArrayList<>();
|
enumIdCollection.stream().forEach(enumId->{
|
if(enumVOMap.containsKey(enumId.toLowerCase())){
|
enumVOList.add(enumVOMap.get(enumId.toLowerCase()));
|
}
|
});
|
return enumVOList;
|
}
|
|
/**
|
* 参照枚举的信息 不建议使用这个方法,因为是sql拼接做的查询
|
*
|
* @param conditionMap 查询条件
|
* @param pageHelper 分页
|
* @return 枚举的信息
|
*/
|
@Override
|
public DataGrid<OsEnumVO> referDataGrid(Map<String, String> conditionMap, PageHelper pageHelper) {
|
DataGrid<OsEnumVO> dataGrid = queryObjectServiceInfoBySql(conditionMap, pageHelper, "plenumtype",OsEnumVO.class,null);
|
return dataGrid;
|
}
|
|
/**
|
* 枚举选项列表
|
*
|
* @param pkEnum 枚举的主键
|
* @return 枚举选项
|
*/
|
@Override
|
public DataGrid<OsEnumItemVO> gridEnumItemByOid(String pkEnum) {
|
if(StringUtils.isBlank(pkEnum)){
|
return new DataGrid<>("没有选择枚举");
|
}
|
//先查询出来
|
OsEnumVO enumVO = self.selectAllEnumMap().values().stream().filter(s -> s.getOid().equalsIgnoreCase(pkEnum)).findFirst().orElseGet(() -> new OsEnumVO());
|
DataGrid<OsEnumItemVO> dataGrid = new DataGrid<>();
|
if(enumVO!=null && enumVO.getItems()!=null){
|
dataGrid.setData(enumVO.getItems());
|
dataGrid.setTotal(enumVO.getItems().size());
|
}
|
return dataGrid;
|
}
|
|
/**
|
* 清除缓存
|
*/
|
@Override
|
public void clearCache() {
|
|
}
|
|
}
|