Files
ChenyonUtils/src/main/java/com/seeyon/utils/form/EnumMapUtils.java

157 lines
6.0 KiB
Java
Raw Normal View History

2025-12-25 16:59:12 +08:00
package com.seeyon.utils.form;
2026-01-15 16:29:30 +08:00
import com.seeyon.cap4.form.bean.FormBean;
import com.seeyon.cap4.form.bean.FormFieldBean;
import com.seeyon.cap4.form.bean.FormTableBean;
2025-12-25 16:59:12 +08:00
import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager;
2026-01-15 16:29:30 +08:00
import com.seeyon.ctp.common.exceptions.BusinessException;
2025-12-25 16:59:12 +08:00
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumBean;
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
import com.seeyon.ctp.util.JDBCAgent;
2026-01-15 16:29:30 +08:00
import org.apache.commons.lang3.StringUtils;
2025-12-25 16:59:12 +08:00
2026-01-22 16:49:36 +08:00
import java.util.*;
2025-12-25 16:59:12 +08:00
public class EnumMapUtils {
2026-01-15 16:29:30 +08:00
2026-01-22 16:49:36 +08:00
public static String getEnumItemValueByDisplayValue(FormBean cap4FormBean,String fieldDisplay, String targetValue) {
2026-01-15 16:29:30 +08:00
if(targetValue == null || "null".equals(targetValue) || "".equals(targetValue)){
2026-01-22 16:49:36 +08:00
return null;
2026-01-15 16:29:30 +08:00
}
try {
FormTableBean masterTableBean = cap4FormBean.getMasterTableBean();
FormFieldBean beanByDisplay = masterTableBean.getFieldBeanByDisplay(fieldDisplay);
if(beanByDisplay == null || beanByDisplay.getEnumId() == 0l) {
2026-01-22 16:49:36 +08:00
return null;
2026-01-15 16:29:30 +08:00
}
return getEnumItemValueByEnumId(targetValue, beanByDisplay.getEnumId());
} catch (Exception e) {
2026-01-22 16:49:36 +08:00
return null;
2026-01-15 16:29:30 +08:00
}
}
public static String getEnumItemIdByGroupNameAndItemShowValue(String enumGroupName, String targetValue) {
String sql = "SELECT * FROM ctp_enum ce let join ctp_enum_item cei on ce.`ID` = cei.REF_ENUMID where ce.`ENUMNAME` = ? and CEI.`SHOWVALUE` = ?";
if(StringUtils.isAnyBlank(enumGroupName, targetValue)){
2026-01-22 16:49:36 +08:00
return null;
2026-01-15 16:29:30 +08:00
}
Long enumId = null;
JDBCAgent agent = new JDBCAgent();
try {
agent.execute(sql, Arrays.asList(enumGroupName,targetValue));
List<Map<String, Object>> list = (List<Map<String, Object>>) agent.resultSetToList();
if(list == null || list.size() == 0) {
2026-01-22 16:49:36 +08:00
return null;
2026-01-15 16:29:30 +08:00
}
Map map = list.get(0);
enumId = (Long)map.get("ID");
return enumId == null ? "" : enumId + "";
} catch (Exception e) {
}finally {
agent.close();
}
2026-01-22 16:49:36 +08:00
return null;
2026-01-15 16:29:30 +08:00
}
2026-01-22 16:49:36 +08:00
public static String getEnumItemValueByRootPCode(String rootPCode, String groupValue, String targetValue) {
2025-12-25 16:59:12 +08:00
if(targetValue == null || "null".equals(targetValue) || "".equals(targetValue)){
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
String queryIdSql = "SELECT ce.ID FROM ctp_enum ce inner join ctp_enum cei on ce.`PARENT_ID` = cei.ID where CEI.`PROGRAM_CODE` = ? and ce.`ENUMNAME` = ?";
Long enumId = null;
JDBCAgent agent = new JDBCAgent();
try {
agent.execute(queryIdSql, Arrays.asList(rootPCode,groupValue));
List<Map<String, Object>> list = (List<Map<String, Object>>) agent.resultSetToList();
if(list == null || list.size() == 0) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
Map map = list.get(0);
enumId = (Long)map.get("ID");
} catch (Exception e) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}finally {
agent.close();
}
EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");
CtpEnumBean ctpEnumBean = enumManagerNew.getEnum(enumId);
if(ctpEnumBean == null) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
List<CtpEnumItem> ctpEnumItems = ctpEnumBean.getItems();
if(ctpEnumBean.getItems() == null) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
for (CtpEnumItem enumItem : ctpEnumItems) {
if(enumItem.getShowvalue().equals(targetValue)) {
return enumItem.getId() + "";
}
}
2026-01-22 16:49:36 +08:00
return null;
}
public static Set<String> getEnumItemValues(FormBean cap4FormBean, String fieldDisplay) {
Set<String> set = new HashSet<>();
try {
FormTableBean masterTableBean = cap4FormBean.getMasterTableBean();
FormFieldBean beanByDisplay = masterTableBean.getFieldBeanByDisplay(fieldDisplay);
if(beanByDisplay == null || beanByDisplay.getEnumId() == 0l) {
return set;
}
EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");
CtpEnumBean ctpEnumBean = enumManagerNew.getEnum(beanByDisplay.getEnumId());
if(ctpEnumBean == null) {
return set;
}
List<CtpEnumItem> ctpEnumItems = ctpEnumBean.getItems();
if(ctpEnumBean.getItems() == null) {
return set;
}
for (CtpEnumItem enumItem : ctpEnumItems) {
set.add(enumItem.getShowvalue());
}
} catch (Exception e) {
}
return set;
2025-12-25 16:59:12 +08:00
}
public static String getEnumItemValueByEnumId(String showValue,long enumId) {
EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");
CtpEnumBean ctpEnumBean = enumManagerNew.getEnum(enumId);
if(ctpEnumBean == null) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
List<CtpEnumItem> ctpEnumItems = ctpEnumBean.getItems();
if(ctpEnumBean.getItems() == null) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
for (CtpEnumItem enumItem : ctpEnumItems) {
if(enumItem.getShowvalue().equals(showValue)) {
return enumItem.getId() + "";
}
}
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
2026-01-15 16:29:30 +08:00
public static String getEnumShowValue(Object enumItemId) throws BusinessException {
if(enumItemId == null) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
2026-01-15 16:29:30 +08:00
Long temp = enumItemId instanceof Long ? (Long)enumItemId : (enumItemId instanceof String ? Long.parseLong((String)enumItemId) : null);
if(temp == null) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
2026-01-15 16:29:30 +08:00
EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");
CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(temp);
if(ctpEnumItem == null) {
2026-01-22 16:49:36 +08:00
return null;
2025-12-25 16:59:12 +08:00
}
2026-01-15 16:29:30 +08:00
return ctpEnumItem.getShowvalue();
2025-12-25 16:59:12 +08:00
}
}