171 lines
6.2 KiB
Java
171 lines
6.2 KiB
Java
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<String, Object> MAP格式:{name, {display:'', value:'',
|
||
* source:''}} name/
|
||
*/
|
||
public List<Map<String, Object>> bizObject2Map(BizObject bo, String doNo) {
|
||
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
|
||
DataElement[] aDataElements = bo.getAttributes();
|
||
for (DataElement oDataElement : aDataElements) {
|
||
Map<String, Object> data = new HashMap<String, Object>();
|
||
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<String, Object> MAP格式:{name:'', value:''}
|
||
*/
|
||
public Map<String, Object> bizObject2MapValue(BizObject bo) {
|
||
if (null == bo) return new HashMap<String, Object>();
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
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<String, Object> bizObject2MapValue3(BizObject bo) {
|
||
if (null == bo) return new HashMap<String, Object>();
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
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<String, Object> MAP格式:{name:'', value:''}
|
||
*/
|
||
public Map<String, Object> bizObject2MapValue2(BizObject bo) {
|
||
if (null == bo) return new HashMap<String, Object>();
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
DataElement[] aDataElements = bo.getAttributes();
|
||
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
|
||
for (DataElement oDataElement : aDataElements) {
|
||
Map<String, Object> oDataElementMap = new HashMap<String, Object>();
|
||
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<String, Object> bizObject2MapValue4(BizObject bo) {
|
||
if (null == bo) return new HashMap<String, Object>();
|
||
Map<String, Object> map = new HashMap<String, Object>();
|
||
DataElement[] aDataElements = bo.getAttributes();
|
||
List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
|
||
for (DataElement oDataElement : aDataElements) {
|
||
if (null == oDataElement.getValue()) continue;
|
||
Map<String, Object> oDataElementMap = new HashMap<String, Object>();
|
||
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<String, Object> catalog = (Map<String, Object>) AppAweDoCache
|
||
.getAppAweDoCachePool().get(doNo);
|
||
List<Map<String, Object>> library = (List<Map<String, Object>>) catalog
|
||
.get("library");
|
||
for (int i = 0; i < library.size(); i++) {
|
||
Map<String, Object> 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<String, Object> catalog = (Map<String, Object>) AppCodeCache
|
||
.getAppCodeCachePool().get(codeNo);
|
||
List<Map<String, Object>> library = (List<Map<String, Object>>) catalog
|
||
.get("library");
|
||
int iRecodeNum = -1;
|
||
String sItemName = "";
|
||
for (int i = 0; i < library.size(); i++) {
|
||
Map<String, Object> 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;
|
||
}
|
||
}
|