package com.vci.client.portal.custom; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import com.vci.client.common.FreeMarkerCommon; import com.vci.client.common.FreemarkerParamObject; import com.vci.client.portal.utility.PRMItem; import com.vci.corba.common.VCIError; public class CustomChangeDataByExprission implements ICustomDefine{ @Override public void getCustomValue(String columnName, Map prmMap, List> cols) throws VCIError { Iterator prmit = prmMap.keySet().iterator(); HashMap expMap = new HashMap(); while(prmit.hasNext()){ String name = prmit.next(); String pression = prmMap.get(name).getItemShowExpression(); if(pression!=null&&pression.length()!=0){ expMap.put(name, pression); } } if(expMap.size()==0){ return; } for (Map map : cols) { Map rootMap = new HashMap(); Iterator its = map.keySet().iterator(); while(its.hasNext()){ String name = its.next(); String value = map.get(name); if(value==null|value.length()==0){ continue; } rootMap.put(name, new FreemarkerParamObject(name, value)); } Iterator expValMap = expMap.keySet().iterator(); while(expValMap.hasNext()){ String next = expValMap.next();//属性名 String valueByTempRule = FreeMarkerCommon.getValueByTempRule(rootMap, expMap.get(next));//修改后的属性值 map.put(next, valueByTempRule);//修改数据 } } } }