/**
* 按照指定属性对财务数据进行分组
* @param billingList
* @param billingList
* @return
* @throws Exception
*/
private Map<String, List<TmExcpNewVo>> groupBillingDataByExcpBatchCode(List<TmExcpNewVo> billingList,String key) throws Exception{
Map<String, List<TmExcpNewVo>> resultMap = new HashMap<String, List<TmExcpNewVo>>();
try{
for(TmExcpNewVo tmExcpNew : billingList){
String keyValue=getGetMethod(tmExcpNew,key);
if(resultMap.containsKey(keyValue)){//map中异常批次已存在,将该数据存放到同一个key(key存放的是异常批次)的map中
resultMap.get(keyValue).add(tmExcpNew);
}else{//map中不存在,新建key,用来存放数据
List<TmExcpNewVo> tmpList = new ArrayList<TmExcpNewVo>();
tmpList.add(tmExcpNew);
resultMap.put(keyValue, tmpList);
}
}
}catch(Exception e){
throw new Exception("按照指定属性对财务数据进行分组时出现异常", e);
}
return resultMap;
}
/**
* 根据属性,获取get方法
* @param ob 对象
* @param name 属性名
* @return
* @throws Exception
*/
public static Object getGetMethod(Object ob , String name)throws Exception{
Method[] m = ob.getClass().getMethods();
for(int i = 0;i < m.length;i++){
if(("get"+name).toLowerCase().equals(m[i].getName().toLowerCase())){
return m[i].invoke(ob);
}
}
return null;
}