package com.base.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import apx.com.amarsoft.als.base.cache.instance.AppAweDoCache; import apx.com.amarsoft.als.base.cache.instance.AppCodeCache; import com.amarsoft.are.jbo.BizObject; import com.amarsoft.are.lang.DataElement; public class BizObjectUtil { /** * BizObject 转 MAP display/ value/ name 分别指定 DataElement的getLabel/ getValue/ * getName source:字典表 * * @param bo * BizObject * @param doNo * AweDOCatalog:dono 通过doNo查询字段source来源 从而获取字典表显示值 如果doNo为null * 返回格式为{name, {display:'', value:''}} * @return Map MAP格式:{name, {display:'', value:'', * source:''}} name/ */ public List> bizObject2Map(BizObject bo, String doNo) { List> list = new ArrayList>(); DataElement[] aDataElements = bo.getAttributes(); for (DataElement oDataElement : aDataElements) { Map data = new HashMap(); data.put("col", oDataElement); list.add(data); // data.put("display", oDataElement.getLabel()); // data.put("value", oDataElement.getValue()); // if (null != doNo) // data.put( // "source", // getAweDoLibrarySource(doNo, oDataElement.getLabel(), // oDataElement.getName(), // oDataElement.getValue() == null ? "" // : oDataElement.getValue().toString())); // map.put(oDataElement.getName().toLowerCase(), data); } return list; } /** * BizObject 转 MAP value/ name 分别指定 DataElement的 getValue/ getName * * @param bo * BizObject * @return Map MAP格式:{name:'', value:''} */ public Map bizObject2MapValue(BizObject bo) { if (null == bo) return new HashMap(); Map map = new HashMap(); DataElement[] aDataElements = bo.getAttributes(); for (DataElement oDataElement : aDataElements) { map.put(oDataElement.getName().toLowerCase(), oDataElement.getValue()); map.put(oDataElement.getName().toUpperCase(), oDataElement.getValue()); } return map; } public Map bizObject2MapValue3(BizObject bo) { if (null == bo) return new HashMap(); Map map = new HashMap(); DataElement[] aDataElements = bo.getAttributes(); for (DataElement oDataElement : aDataElements) { map.put(oDataElement.getName().toLowerCase(), oDataElement.getValue()); } return map; } /** * BizObject 转 MAP value/ name 分别指定 DataElement的 getValue/ getName * * @param bo * BizObject * @return Map MAP格式:{name:'', value:''} */ public Map bizObject2MapValue2(BizObject bo) { if (null == bo) return new HashMap(); Map map = new HashMap(); DataElement[] aDataElements = bo.getAttributes(); List> list = new ArrayList>(); for (DataElement oDataElement : aDataElements) { Map oDataElementMap = new HashMap(); oDataElementMap.put("value", oDataElement.getValue()); oDataElementMap.put("code", oDataElement.getName()); oDataElementMap.put("display", oDataElement.getLabel()); list.add(oDataElementMap); } map.put("dataElements", list); return map; } public Map bizObject2MapValue4(BizObject bo) { if (null == bo) return new HashMap(); Map map = new HashMap(); DataElement[] aDataElements = bo.getAttributes(); List> list = new ArrayList>(); for (DataElement oDataElement : aDataElements) { if (null == oDataElement.getValue()) continue; Map oDataElementMap = new HashMap(); oDataElementMap.put("value", oDataElement.getValue()); oDataElementMap.put("code", oDataElement.getName()); oDataElementMap.put("display", oDataElement.getLabel()); list.add(oDataElementMap); } map.put("dataElements", list); return map; } @SuppressWarnings("unchecked") private String getAweDoLibrarySource(String doNo, String label, String name, String value) { Map catalog = (Map) AppAweDoCache .getAppAweDoCachePool().get(doNo); List> library = (List>) catalog .get("library"); for (int i = 0; i < library.size(); i++) { Map dataElement = library.get(i); String sColName = dataElement.get("COLNAME".toLowerCase()) == null ? "" : dataElement.get("COLNAME".toLowerCase()).toString(); if (/* label.equals(sColHeader) && */name.toLowerCase().equals( sColName.toLowerCase())) { String sSourceType = dataElement.get("COLEDITSOURCETYPE" .toLowerCase()) == null ? "" : dataElement.get( "COLEDITSOURCETYPE".toLowerCase()).toString(); if ("code".equalsIgnoreCase(sSourceType)) { String sSource = dataElement.get("COLEDITSOURCE" .toLowerCase()) == null ? "" : dataElement.get( "COLEDITSOURCE".toLowerCase()).toString(); return getCodeLibrayItemName(sSource, value); } break; } } return value; } @SuppressWarnings("unchecked") private String getCodeLibrayItemName(String codeNo, String itemNo) { if (itemNo.length() == 0) return ""; Map catalog = (Map) AppCodeCache .getAppCodeCachePool().get(codeNo); List> library = (List>) catalog .get("library"); int iRecodeNum = -1; String sItemName = ""; for (int i = 0; i < library.size(); i++) { Map elementSource = library.get(i); if (itemNo.equals(elementSource.get("ITEMNO".toLowerCase()))) { iRecodeNum = i; sItemName = elementSource.get("ITEMNAME".toLowerCase()) == null ? "" : elementSource.get("ITEMNAME".toLowerCase()) .toString(); } } if (iRecodeNum == -1) { return "no source"; } return sItemName; } }