文章标题
2015-05-07 11:31
148 查看
计算总和举例
[code]//这是获取盘点单的金额的总值 public HashMap<String, Object> getStockShowFoot(boolean getStock,String totalSql,TakeStockDetailVo vo){ Integer num1 = 0; Integer num2 = 0; Integer num3 = 0; Query query = getCurrentSession().createSQLQuery(totalSql); List<Object[]> list = query.list(); if(getStock){ for (Object[] obj : list) { TakeStockDetailVo tvo = new TakeStockDetailVo(); tvo.setRealNumber(obj[7] == null ? BigDecimal.ZERO : new BigDecimal(obj[7].toString())); String differenceNum = obj[9] == null ? "0" : obj[9].toString().substring(0, obj[9].toString().indexOf(".")); tvo.setDifferenceNum(obj[9] == null ? "0" : differenceNum ); TakeStock takeStock = (TakeStock) findOne(TakeStock.class, vo.getTakeStockId()); if(takeStock.getTakeStockStatus().equals(TakeStockStatus.warehouseOutOrIn)){ tvo.setCheckingNum("0"); }else{ String checkingNum = obj[11] == null ? "0" : obj[11].toString().substring(0, obj[11].toString().indexOf(".")); tvo.setCheckingNum(obj[11] == null ? "0" : checkingNum); } num1 +=tvo.getRealNumber().intValue(); num2 +=Integer.parseInt(tvo.getDifferenceNum()); num3 +=Integer.parseInt(tvo.getCheckingNum()); } }else{ for (Object[] obj: list) { TakeStockDetailVo tvo = new TakeStockDetailVo(); tvo.setRealNumber(obj[7] == null ? BigDecimal.ZERO : new BigDecimal(obj[7].toString())); tvo.setLogicNumber(obj[8] == null ? BigDecimal.ZERO : new BigDecimal(obj[8].toString())); num1 +=tvo.getRealNumber().intValue(); num2 +=Integer.parseInt(tvo.getDifferenceNum()); num3 +=Integer.parseInt(tvo.getCheckingNum()); } } HashMap<String, Object> mapFoot = new HashMap<String, Object>(); mapFoot.put("realNumber",num1); mapFoot.put("differenceNum", num2); mapFoot.put("checkingNum", num3); return mapFoot; }