码迷,mamicode.com
首页 > 其他好文 > 详细

groupBy

时间:2016-12-28 21:09:46      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:dna   sys   result   对象   put   file   field   value   ring   

public List groupBy(List list,String flag,String... sortName) throws Exception{
Map<String,List<Object>> tMap = new HashMap<String,List<Object>>();
for(Object t : list){
String filedKey ="";
for(String filedName : sortName){
Field field = t.getClass().getDeclaredField(filedName);
filedKey = field.get(t)+","+filedKey;
System.out.println("filedName======"+filedKey);
}

if(tMap.containsKey(filedKey)){
tMap.get(filedKey).add(t);
}else{
List tList1 = new ArrayList();
tList1.add(t);
tMap.put(filedKey,tList1);
}
}

Field fields[]=list.get(0).getClass().getDeclaredFields();//获得对象所有属性
Field field=null;
for (int i = 0; i < fields.length; i++) {
field=fields[i];
field.setAccessible(true);
}
List<CoastClaimResult> claimList = new ArrayList<CoastClaimResult>();
for(Map.Entry<String,List<Object>> entry : tMap.entrySet()){
BigDecimal billedAmt=new BigDecimal(0);
BigDecimal paidAmt = new BigDecimal(0);
List<String> distinctCountList = new ArrayList<String>();
CoastClaimResult result = new CoastClaimResult();
System.out.println("Key = " + entry.getKey());
for(Object t : entry.getValue()){
System.out.println(t.toString());

String bill = (String) t.getClass().getDeclaredField("amount"+flag).get(t);
billedAmt.add(new BigDecimal(bill));

String claimNo = (String) t.getClass().getDeclaredField("claimNo").get(t);
if(!distinctCountList.contains(claimNo)){
distinctCountList.add(claimNo);
}

/*String paid = (String) t.getClass().getDeclaredField("amountpaid").get(t);
paidAmt.add(new BigDecimal(paid));*/
}
for(String filedName : sortName){
Field f = CoastClaimResult.class.getClass().getDeclaredField("filedName");
f.setAccessible(true);
f.set(CoastClaimResult.class, (String) list.get(0).getClass().getDeclaredField("filedName").get(list.get(0)));
}
result.setExt1(new BigDecimal(distinctCountList.size()));
if(flag.equals("billed")){
result.setBilledAmt(billedAmt);
result.setTitleCategory("BILLED");
}else{
result.setPaidAmt(billedAmt);
result.setTitleCategory("PAID");
}

// result.setPaidAmt(paidAmt);
claimList.add(result);


// System.out.println(polNo.toString());
}

return claimList;
}

 

 

DECLARE CATEGORY_CURSOR CURSOR FOR
SELECT DISTINCT
DEPCODE,
DEPNAME
FROM ( SELECT DEPNAME, MAX(DEPCODE) DEPCODE FROM #CLAIMDATA (nolock) GROUP BY DEPNAME) M
ORDER BY DEPCODE,
DEPNAME

OPEN CATEGORY_CURSOR
FETCH NEXT FROM CATEGORY_CURSOR INTO @LS_CATEGORY,@LS_CATEGORY

WHILE @@FETCH_STATUS=0
BEGIN
SELECT @LS_HEADERTITLE=@LS_HEADERTITLE+@LS_CATEGORY+‘,‘

FETCH NEXT FROM CATEGORY_CURSOR INTO @LS_CATEGORY,@LS_CATEGORY
END

groupBy

标签:dna   sys   result   对象   put   file   field   value   ring   

原文地址:http://www.cnblogs.com/jingRegina/p/6230460.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!