forked from I3-YF/i3plus-mes-yfai
新增 枚举
parent
79502bd1d3
commit
a680d658ef
@ -1,64 +0,0 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.controller.base;
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.api.base.IMesEnumExtService;
|
||||
import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant;
|
||||
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
|
||||
import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil;
|
||||
import cn.estsh.impp.framework.base.controller.BaseCommonController;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppBusiException;
|
||||
import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder;
|
||||
import cn.estsh.impp.framework.boot.util.ResultBean;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 广东麦格纳-通用功能服务
|
||||
* @CreateDate: 2021/6/28 下午2:54
|
||||
* @Author: simon.song
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@Api(description = "通用功能服务")
|
||||
@RequestMapping(MesCommonConstant.MES_YANFEN + "/common")
|
||||
public class MesExtCommonController extends BaseCommonController {
|
||||
@Autowired
|
||||
private IMesEnumExtService enumService;
|
||||
|
||||
|
||||
@GetMapping(value = "/enumlist")
|
||||
@ApiOperation(value = "获取MES系统所有枚举")
|
||||
public ResultBean enumlist(@RequestParam(name = "enumName", required = false) String enumName) {
|
||||
List<Map<String, Object>> mapList;
|
||||
Map<String, Object> map;
|
||||
try {
|
||||
if (StringUtils.isEmpty(enumName)) {
|
||||
mapList = enumService.getAllMesEnums();
|
||||
return ResultBean.success("查询成功")
|
||||
.setResultList(mapList)
|
||||
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
||||
} else {
|
||||
map = enumService.doGetMesEnumByEnumName(enumName);
|
||||
return ResultBean.success("查询成功")
|
||||
.setResultObject(map)
|
||||
.setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
|
||||
}
|
||||
|
||||
} catch (ImppBusiException busExcep) {
|
||||
return ResultBean.fail(busExcep);
|
||||
} catch (Exception e) {
|
||||
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,201 +0,0 @@
|
||||
package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base;
|
||||
|
||||
|
||||
import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil;
|
||||
import cn.estsh.i3plus.mes.api.iservice.base.IEnumService;
|
||||
import cn.estsh.i3plus.mes.apiservice.util.EnumUtil;
|
||||
import cn.estsh.i3plus.platform.common.convert.ConvertBean;
|
||||
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
|
||||
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
|
||||
import cn.estsh.i3plus.pojo.mes.bean.MesEnum;
|
||||
import cn.estsh.i3plus.pojo.mes.repository.MesEnumRepository;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: Wynne.Lu
|
||||
* @CreateDate: 2019/8/30 1:39 PM
|
||||
* @Description:
|
||||
**/
|
||||
@Slf4j
|
||||
@Service
|
||||
@ApiOperation(value = "获取MesEnumUtil")
|
||||
public class EnumExtService implements IEnumService {
|
||||
|
||||
@Autowired
|
||||
private MesEnumRepository enumRepository;
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getAllMesEnums() {
|
||||
Class innerClazz[] = MesExtEnumUtil.class.getDeclaredClasses();// 获取常量类中的所有内部类
|
||||
|
||||
List<Map<String, Object>> enumList = new ArrayList<>();// 所有枚举
|
||||
Map<String, Object> enumMap;// 枚举类
|
||||
|
||||
for (Class clazz : innerClazz) {
|
||||
enumMap = getEnumByClazzEnum(clazz.getSimpleName(), MesExtEnumUtil.class);
|
||||
enumList.add(enumMap);
|
||||
}
|
||||
return enumList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> doGetMesEnumByEnumName(String enumName) {
|
||||
return getEnumByClazzEnum(enumName, MesExtEnumUtil.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getEnumByClazzEnum(String enumName, Class clz) {
|
||||
return EnumUtil.getEnumByName(clz, enumName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getEnumValuesByClazzEnum(String enumName, Class clazz) {
|
||||
return (List<Map<String, Object>>) getEnumByClazzEnum(enumName, clazz).get("valuesList");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, String> getEnumLangeuageKeyByClazzEnum(Class clazz) {
|
||||
|
||||
try {
|
||||
Map<String, String> value = null;
|
||||
Method getValue;
|
||||
getValue = clazz.getMethod("getValue");
|
||||
|
||||
// 获取所有枚举实例
|
||||
Enum[] enumConstants = (Enum[]) clazz.getEnumConstants();
|
||||
value = new HashMap<>();
|
||||
for (Enum enum1 : enumConstants) {
|
||||
String key = clazz.getSimpleName() + ":" + enum1.name();
|
||||
value.put(getValue.invoke(enum1).toString(), key);
|
||||
}
|
||||
return value;
|
||||
} catch (Exception e) {
|
||||
log.error("获取枚举的资源键失败。。");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveEnums(String organizeCode, String userName) {
|
||||
List<Map<String, Object>> enumList = getAllMesEnums();
|
||||
enumList.forEach(e -> {
|
||||
String enumName = e.get("enumName").toString();
|
||||
List<Map<String, Object>> values = (List<Map<String, Object>>) e.get("valuesList");
|
||||
|
||||
List<MesEnum> enums = getEnumsByEnumName(organizeCode, enumName);
|
||||
if (CollectionUtils.isEmpty(enums)) {
|
||||
values.forEach(v -> {
|
||||
MesEnum mesEnum = new MesEnum();
|
||||
mesEnum.setEnumName(enumName);
|
||||
if (v.containsKey("value")) {
|
||||
mesEnum.setEnumValue(v.get("value").toString());
|
||||
}
|
||||
if (v.containsKey("code")) {
|
||||
mesEnum.setEnumCode(v.get("code").toString());
|
||||
}
|
||||
if (v.containsKey("description")) {
|
||||
mesEnum.setEnumValueDesc(v.get("description").toString());
|
||||
}
|
||||
mesEnum.setOrganizeCode(organizeCode);
|
||||
ConvertBean.serviceModelInitialize(mesEnum, userName);
|
||||
enumRepository.save(mesEnum);
|
||||
});
|
||||
} else {
|
||||
Map<String, List<MesEnum>> enumCodeMap = enums.stream().filter(mesEnum -> !StringUtils.isEmpty(mesEnum.getEnumCode()))
|
||||
.collect(Collectors.groupingBy(MesEnum::getEnumCode));
|
||||
Map<String, MesEnum> enumValueMap = enums.stream().filter(mesEnum -> !StringUtils.isEmpty(mesEnum.getEnumValue()))
|
||||
.collect(Collectors.toMap(MesEnum::getEnumValue, o -> o));
|
||||
values.forEach(v -> {
|
||||
MesEnum mesEnum = new MesEnum();
|
||||
String value = null;
|
||||
String code = null;
|
||||
boolean hasValue = false;
|
||||
if (v.containsKey("value")) {
|
||||
value = v.get("value").toString();
|
||||
if (enumValueMap.containsKey(value)) {
|
||||
mesEnum = enumValueMap.get(value);
|
||||
hasValue = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (v.containsKey("code")) {
|
||||
code = v.get("code").toString();
|
||||
}
|
||||
if (hasValue == false) {
|
||||
if (enumCodeMap.containsKey(code)) {
|
||||
mesEnum = enumCodeMap.get(code).get(0);
|
||||
hasValue = true;
|
||||
}
|
||||
}
|
||||
mesEnum.setEnumName(enumName);
|
||||
mesEnum.setEnumCode(code);
|
||||
mesEnum.setEnumValue(value);
|
||||
if (v.containsKey("description")) {
|
||||
mesEnum.setEnumValueDesc(v.get("description").toString());
|
||||
}
|
||||
if (hasValue) {
|
||||
ConvertBean.serviceModelUpdate(mesEnum, userName);
|
||||
} else {
|
||||
mesEnum.setOrganizeCode(organizeCode);
|
||||
ConvertBean.serviceModelInitialize(mesEnum, userName);
|
||||
}
|
||||
enumRepository.save(mesEnum);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private List<MesEnum> getEnumsByEnumName(String organizeCode, String enumName) {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
DdlPreparedPack.getStringEqualPack(enumName, "enumName", packBean);
|
||||
return enumRepository.findByHqlWhere(packBean);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getAllEnums(String organizeCode) {
|
||||
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
|
||||
List<MesEnum> enums = enumRepository.findByHqlWhere(packBean);
|
||||
Map<String, List<MesEnum>> enumMaps = enums.stream().collect(Collectors.groupingBy(MesEnum::getEnumName));
|
||||
|
||||
List<Map<String, Object>> maps = new ArrayList<>();
|
||||
enumMaps.forEach((k, v) -> {
|
||||
maps.add(getEnumMap(v, k));
|
||||
});
|
||||
return maps;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getEnumByEnumName(String organizeCode, String enumName) {
|
||||
return getEnumMap(getEnumsByEnumName(organizeCode, enumName), enumName);
|
||||
}
|
||||
|
||||
private Map<String, Object> getEnumMap(List<MesEnum> enums, String enumName) {
|
||||
Map<String, Object> enumMap = new HashMap<>();
|
||||
List<Map<String, Object>> values = new ArrayList<>();
|
||||
enums.forEach(e -> {
|
||||
Map<String, Object> value = new HashMap<>();
|
||||
value.put("value", e.getEnumValue());
|
||||
if (!StringUtils.isEmpty(e.getEnumCode())) {
|
||||
value.put("code", e.getEnumCode());
|
||||
}
|
||||
value.put("description", e.getEnumValueDesc());
|
||||
values.add(value);
|
||||
});
|
||||
enumMap.put("enumName", enumName);
|
||||
enumMap.put("valuesList", values);
|
||||
return enumMap;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue