From 3826df02eeac549877118bd80ea4dda19df70445 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Thu, 18 Jul 2024 15:48:35 +0800 Subject: [PATCH] =?UTF-8?q?mes=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesEnumExtService.java | 20 +-- .../controller/base/BaseExtDataController.java | 54 +++++-- .../serviceimpl/base/MesEnumExtService.java | 171 ++++----------------- .../i3plus/ext/mes/pojo/util/MesExtConstWords.java | 2 + 4 files changed, 67 insertions(+), 180 deletions(-) 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 a30cebf..3d231aa 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 @@ -3,32 +3,14 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesEnum; import io.swagger.annotations.ApiOperation; -import java.util.List; import java.util.Map; public interface IMesEnumExtService extends IBaseMesService{ - @ApiOperation("获取所有mes枚举") - List> getAllMesEnums(); - @ApiOperation("根据枚举名获取枚举") - Map doGetMesEnumByEnumName(String enumName); + Map doGetMesEnumByEnumName(String organizeCode, String enumName); @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 c347cb1..ac45590 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 @@ -3,20 +3,20 @@ 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.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.base.controller.MesBaseController; +import cn.estsh.impp.framework.boot.auth.AuthUtil; 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 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; /** @@ -37,27 +37,49 @@ public class BaseExtDataController extends MesBaseController { @GetMapping(value = "/enumlist") @ApiOperation(value = "获取MES系统所有枚举") - public ResultBean enumlist(@RequestParam(name = "enumName", required = false) String enumName) { - List> mapList; - Map map; + public ResultBean enumlist(@RequestParam(name = "enumName") String enumName) { 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()); - } + Map map = enumService.doGetMesEnumByEnumName(AuthUtil.getOrganize().getOrganizeCode(), 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); + } + } + + @GetMapping(value = "/enumlist-clazz") + @ApiOperation(value = "获取MES系统所有枚举") + public ResultBean enumlist(@RequestParam(name = "enumName") String enumName, @RequestParam(name = "className") String className) { + try { + Class clazz = Class.forName(className); + Map map = enumService.getEnumByClazzEnum(enumName, clazz); + 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); + } + } + @GetMapping(value = "/enumlist-default") + @ApiOperation(value = "获取MES系统所有枚举") + public ResultBean defaultEnumlist(@RequestParam(name = "enumName") String enumName) { + try { + Map map = enumService.getEnumByClazzEnum(enumName, MesExtEnumUtil.class); + 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/MesEnumExtService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEnumExtService.java index 1698afd..4b40bc3 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 @@ -2,15 +2,18 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesEnumExtService; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.mes.apiservice.util.EnumUtil; -import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.MesEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesEnum; +import cn.estsh.i3plus.pojo.mes.bean.MesEnumDetail; +import cn.estsh.i3plus.pojo.mes.repository.MesEnumDetailRepository; import cn.estsh.i3plus.pojo.mes.repository.MesEnumRepository; +import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.ApiOperation; @@ -20,12 +23,10 @@ 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 @@ -40,6 +41,8 @@ public class MesEnumExtService extends BaseMesService implements IMesEn @Autowired private MesEnumRepository enumRepository; + @Autowired + private MesEnumDetailRepository enumDetailRepository; @Override protected void setPackQueryBean(MesEnum bean, DdlPackBean packBean) { @@ -66,23 +69,13 @@ public class MesEnumExtService extends BaseMesService implements IMesEn .build(); } } - @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); + public Map doGetMesEnumByEnumName(String organizeCode, String enumName) { + Map enumMap = getEnumMap(organizeCode, enumName); + if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesExtEnumUtil.class); + if (CollectionUtils.isEmpty(enumMap)) enumMap = getEnumByClazzEnum(enumName, MesEnumUtil.class); + return enumMap; } @Override @@ -90,138 +83,26 @@ public class MesEnumExtService extends BaseMesService implements IMesEn 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) { + private Map getEnumMap(String organizeCode, String enumName) { 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); + DdlPreparedPack.getStringEqualPack(enumName, MesExtConstWords.ENUM_CODE, packBean); + MesEnum enumDb = enumRepository.getByProperty(packBean); + if (null == enumDb) return null; + List enumDetailList = enumDetailRepository.findByHqlWhere(packBean); + if (CollectionUtils.isEmpty(enumDetailList)) return null; + return getEnumMap(enumDetailList, enumName); } - private Map getEnumMap(List enums, String enumName) { + private Map getEnumMap(List enumDetailList, String enumName) { Map enumMap = new HashMap<>(); List> values = new ArrayList<>(); - enums.forEach(e -> { + enumDetailList.forEach(e -> { Map value = new HashMap<>(); - value.put("value", e.getEnumValue()); + value.put("value", e.getDetailValue()); if (!StringUtils.isEmpty(e.getEnumCode())) { - value.put("code", e.getEnumCode()); + value.put("code", e.getDetailCode()); } - value.put("description", e.getEnumValueDesc()); + value.put("description", e.getDetailName()); values.add(value); }); enumMap.put("enumName", enumName); diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java index 675073c..3d25b9f 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtConstWords.java @@ -127,6 +127,8 @@ public class MesExtConstWords { public static final String LOG_TYPE = "logType"; //信息类型 public static final String MESSAGE_TYPE = "messageType"; + //枚举代码 + public static final String ENUM_CODE = "enumCode"; //时间[开始/结束]条件 public static final String START_TIME_START = "startTimeStart";