diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEnumExtService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEnumExtService.java index 5d96a7c..c346f98 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEnumExtService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEnumExtService.java @@ -15,4 +15,19 @@ public interface IMesEnumExtService { @ApiOperation("通过class获取枚举") Map getEnumByClazzEnum(String enumName, Class clazz); + + @ApiOperation("通过class获取枚举的values") + List> getEnumValuesByClazzEnum(String var1, Class var2); + + @ApiOperation("根据枚举key获取枚举对应的value 获取缓存中的语言") + Map getEnumLangeuageKeyByClazzEnum(Class var1); + + @ApiOperation("新增或更新枚举") + void saveEnums(String var1, String var2); + + @ApiOperation("获取所有枚举") + List> getAllEnums(String var1); + + @ApiOperation("根据枚举名获取枚举") + Map getEnumByEnumName(String var1, String var2); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java index 4c315a0..5d96351 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/BaseExtDataController.java @@ -1,5 +1,6 @@ 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.icloud.core.sdk.ICoreLocaleResourceCloud; import cn.estsh.i3plus.icloud.core.sdk.ICorePersonnelCloud; @@ -100,7 +101,7 @@ public class BaseExtDataController extends MesBaseController { @Autowired private IActionMethodService actionMethodService; @Autowired - private IEnumService enumService; + private IMesEnumExtService enumService; @Autowired private IButtonStatusService buttonStatusService; @Autowired diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesExtCommonController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesExtCommonController.java deleted file mode 100644 index 3bfd8e5..0000000 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesExtCommonController.java +++ /dev/null @@ -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> mapList; - Map 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); - } - } - -} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/EnumExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/EnumExtService.java deleted file mode 100644 index 3c78850..0000000 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/EnumExtService.java +++ /dev/null @@ -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> getAllMesEnums() { - Class innerClazz[] = MesExtEnumUtil.class.getDeclaredClasses();// 获取常量类中的所有内部类 - - List> enumList = new ArrayList<>();// 所有枚举 - Map enumMap;// 枚举类 - - for (Class clazz : innerClazz) { - enumMap = getEnumByClazzEnum(clazz.getSimpleName(), MesExtEnumUtil.class); - enumList.add(enumMap); - } - return enumList; - } - - @Override - public Map doGetMesEnumByEnumName(String enumName) { - return getEnumByClazzEnum(enumName, MesExtEnumUtil.class); - } - - @Override - public Map getEnumByClazzEnum(String enumName, Class clz) { - return EnumUtil.getEnumByName(clz, enumName); - } - - @Override - public List> getEnumValuesByClazzEnum(String enumName, Class clazz) { - return (List>) getEnumByClazzEnum(enumName, clazz).get("valuesList"); - } - - - @Override - public Map getEnumLangeuageKeyByClazzEnum(Class clazz) { - - try { - Map 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> enumList = getAllMesEnums(); - enumList.forEach(e -> { - String enumName = e.get("enumName").toString(); - List> values = (List>) e.get("valuesList"); - - List 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> enumCodeMap = enums.stream().filter(mesEnum -> !StringUtils.isEmpty(mesEnum.getEnumCode())) - .collect(Collectors.groupingBy(MesEnum::getEnumCode)); - Map 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 getEnumsByEnumName(String organizeCode, String enumName) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - DdlPreparedPack.getStringEqualPack(enumName, "enumName", packBean); - return enumRepository.findByHqlWhere(packBean); - } - - @Override - public List> getAllEnums(String organizeCode) { - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - List enums = enumRepository.findByHqlWhere(packBean); - Map> enumMaps = enums.stream().collect(Collectors.groupingBy(MesEnum::getEnumName)); - - List> maps = new ArrayList<>(); - enumMaps.forEach((k, v) -> { - maps.add(getEnumMap(v, k)); - }); - return maps; - } - - @Override - public Map getEnumByEnumName(String organizeCode, String enumName) { - return getEnumMap(getEnumsByEnumName(organizeCode, enumName), enumName); - } - - private Map getEnumMap(List enums, String enumName) { - Map enumMap = new HashMap<>(); - List> values = new ArrayList<>(); - enums.forEach(e -> { - Map 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; - } -} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEnumExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEnumExtService.java index 603f1b3..83b9f1a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEnumExtService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEnumExtService.java @@ -1,23 +1,43 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; + import cn.estsh.i3plus.ext.mes.api.base.IMesEnumExtService; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtEnumUtil; +import cn.estsh.i3plus.mes.api.iservice.base.IEnumService; +import cn.estsh.i3plus.mes.apiservice.serviceimpl.base.EnumService; 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: - * @CreateDate: 2021/7/6 下午7:09 - * @Author: simon.song - */ -@Service + **/ @Slf4j +@Service +@ApiOperation(value = "获取MesEnumUtil") public class MesEnumExtService implements IMesEnumExtService { + + @Autowired + private MesEnumRepository enumRepository; + @Override public List> getAllMesEnums() { Class innerClazz[] = MesExtEnumUtil.class.getDeclaredClasses();// 获取常量类中的所有内部类 @@ -41,4 +61,143 @@ public class MesEnumExtService implements IMesEnumExtService { public Map getEnumByClazzEnum(String enumName, Class clz) { return EnumUtil.getEnumByName(clz, enumName); } + + @Override + public List> getEnumValuesByClazzEnum(String enumName, Class clazz) { + return (List>) getEnumByClazzEnum(enumName, clazz).get("valuesList"); + } + + + @Override + public Map getEnumLangeuageKeyByClazzEnum(Class clazz) { + + try { + Map 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> enumList = getAllMesEnums(); + enumList.forEach(e -> { + String enumName = e.get("enumName").toString(); + List> values = (List>) e.get("valuesList"); + + List 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> enumCodeMap = enums.stream().filter(mesEnum -> !StringUtils.isEmpty(mesEnum.getEnumCode())) + .collect(Collectors.groupingBy(MesEnum::getEnumCode)); + Map 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 getEnumsByEnumName(String organizeCode, String enumName) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(enumName, "enumName", packBean); + return enumRepository.findByHqlWhere(packBean); + } + + @Override + public List> getAllEnums(String organizeCode) { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + List enums = enumRepository.findByHqlWhere(packBean); + Map> enumMaps = enums.stream().collect(Collectors.groupingBy(MesEnum::getEnumName)); + + List> maps = new ArrayList<>(); + enumMaps.forEach((k, v) -> { + maps.add(getEnumMap(v, k)); + }); + return maps; + } + + @Override + public Map getEnumByEnumName(String organizeCode, String enumName) { + return getEnumMap(getEnumsByEnumName(organizeCode, enumName), enumName); + } + + private Map getEnumMap(List enums, String enumName) { + Map enumMap = new HashMap<>(); + List> values = new ArrayList<>(); + enums.forEach(e -> { + Map 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; + } }