计算总和举例
//这是获取盘点单的金额的总值
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;
}
测试重复
checkDuplicate(SalesShipmentOrder.class, “serialNumber”, null, arg3)
获取serialNumber
salesQuotationService.getNum(“serialNumber”, SalesQuotation.class, 0, OrderType.XSBJD.toString(), null, null, null, null)