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
}
}