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