package com.seeyon.utils.form; import com.seeyon.cap4.form.api.FormApi4Cap4; import com.seeyon.cap4.form.bean.FormBean; import com.seeyon.cap4.form.bean.FormFieldBean; import com.seeyon.cap4.form.bean.FormTableBean; import com.seeyon.ctp.common.AppContext; import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager; import com.seeyon.ctp.common.exceptions.BusinessException; import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumBean; import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem; import com.seeyon.ctp.util.JDBCAgent; import org.apache.commons.lang3.StringUtils; import java.util.Arrays; import java.util.List; import java.util.Map; public class EnumMapUtils { public static String getMasterTableEnumItemValue(String formNo,String fieldDisplay, String targetValue) { if(targetValue == null || "null".equals(targetValue) || "".equals(targetValue)){ return ""; } try { FormApi4Cap4 formApi4Cap4 = (FormApi4Cap4) AppContext.getBean("formApi4Cap4"); FormBean cap4FormBean = formApi4Cap4.getFormByFormCode(formNo); FormTableBean masterTableBean = cap4FormBean.getMasterTableBean(); FormFieldBean beanByDisplay = masterTableBean.getFieldBeanByDisplay(fieldDisplay); if(beanByDisplay == null || beanByDisplay.getEnumId() == 0l) { return ""; } return getEnumItemValueByEnumId(targetValue, beanByDisplay.getEnumId()); } catch (Exception e) { return ""; } } 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)){ return ""; } Long enumId = null; JDBCAgent agent = new JDBCAgent(); try { agent.execute(sql, Arrays.asList(enumGroupName,targetValue)); List> list = (List>) agent.resultSetToList(); if(list == null || list.size() == 0) { return ""; } Map map = list.get(0); enumId = (Long)map.get("ID"); return enumId == null ? "" : enumId + ""; } catch (Exception e) { }finally { agent.close(); } return ""; } public static String getEnumItemValue(String rootPCode, String groupValue, String targetValue) { if(targetValue == null || "null".equals(targetValue) || "".equals(targetValue)){ return ""; } 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> list = (List>) agent.resultSetToList(); if(list == null || list.size() == 0) { return ""; } Map map = list.get(0); enumId = (Long)map.get("ID"); } catch (Exception e) { return ""; }finally { agent.close(); } EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew"); CtpEnumBean ctpEnumBean = enumManagerNew.getEnum(enumId); if(ctpEnumBean == null) { return ""; } List ctpEnumItems = ctpEnumBean.getItems(); if(ctpEnumBean.getItems() == null) { return ""; } for (CtpEnumItem enumItem : ctpEnumItems) { if(enumItem.getShowvalue().equals(targetValue)) { return enumItem.getId() + ""; } } return ""; } public static String getEnumItemValueByEnumId(String showValue,long enumId) { EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew"); CtpEnumBean ctpEnumBean = enumManagerNew.getEnum(enumId); if(ctpEnumBean == null) { return ""; } List ctpEnumItems = ctpEnumBean.getItems(); if(ctpEnumBean.getItems() == null) { return ""; } for (CtpEnumItem enumItem : ctpEnumItems) { if(enumItem.getShowvalue().equals(showValue)) { return enumItem.getId() + ""; } } return ""; } public static String getEnumShowValue(Object enumItemId) throws BusinessException { if(enumItemId == null) { return ""; } Long temp = enumItemId instanceof Long ? (Long)enumItemId : (enumItemId instanceof String ? Long.parseLong((String)enumItemId) : null); if(temp == null) { return ""; } EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew"); CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(temp); if(ctpEnumItem == null) { return ""; } return ctpEnumItem.getShowvalue(); } }