您的位置:首页 > 其它

条件查询List集合,由查询的结果,算出一行数据,添加到集合中!

2016-08-19 09:31 513 查看
BigDecimal  reshuijin_qichu =new BigDecimal("0");
BigDecimal reshuijin_qimo = new BigDecimal("0");
BigDecimal reshuichu_qichu = new BigDecimal("0");
BigDecimal reshuichu_qimo = new BigDecimal("0");
BigDecimal danjia = new BigDecimal("0");  //热水进单价
String address = "";
boolean reshui_flg = false;

for(int i=0;i<houseListTmp.size();i++){
HouseDataBean housedata=new HouseDataBean();
housedata.setAddress(houseListTmp.get(i).getAddress());

//当地址不同要计算热水使用量
if(!address.equals(houseListTmp.get(i).getAddress())) {
if(i > 0 && reshui_flg){
housedata.setAddress(address);    //金额小计
//计算上一个address对应的用水量
housedata.setQichu_val(reshuijin_qichu.subtract(reshuichu_qichu).toString());  //期初值
housedata.setQimo_val(reshuijin_qimo.subtract(reshuichu_qimo).toString());   //期末值

BigDecimal zongliang=new BigDecimal("0");
zongliang=reshuijin_qimo.subtract(reshuichu_qimo).subtract(reshuijin_qichu.subtract(reshuichu_qichu));
housedata.setZongliang(zongliang.toString());
housedata.setPrice(danjia.toString());   //单价
housedata.setJine(danjia.multiply(zongliang).toString());    //金额小计

housedata.setName("热水量");
housedata.setComid("");
housedata.setQichu_sj("");
housedata.setQimo_sj("");
houseList.add(housedata);

//default
reshuijin_qichu =new BigDecimal("0");
reshuijin_qimo = new BigDecimal("0");
reshuichu_qichu = new BigDecimal("0");
reshuichu_qimo = new BigDecimal("0");
danjia = new BigDecimal("0");
reshui_flg = false;
}
}
address=houseListTmp.get(i).getAddress();

if("1".equals(houseListTmp.get(i).getInout_flg())) {
//热水进期初期末值
if(houseListTmp.get(i).getQichu_val()!=null && houseListTmp.get(i).getQichu_val()!=""){
reshuijin_qichu =new BigDecimal(houseListTmp.get(i).getQichu_val());
}else{
reshuijin_qichu =new BigDecimal("0");
}
if(houseListTmp.get(i).getQimo_val()!=null && houseListTmp.get(i).getQimo_val()!=""){
reshuijin_qimo = new BigDecimal(houseListTmp.get(i).getQimo_val());
}else{
reshuijin_qimo = new BigDecimal("0");
}
if(houseListTmp.get(i).getPrice()!=null & houseListTmp.get(i).getPrice()!=""){
danjia = new BigDecimal(houseListTmp.get(i).getPrice());  //热水进单价
}else{
danjia = new BigDecimal("");  //热水进单价
}
reshui_flg = true;
}
if("2".equals(houseListTmp.get(i).getInout_flg())) {
//热水出期初期末值
if(houseListTmp.get(i).getQichu_val()!=null && houseListTmp.get(i).getQichu_val()!=""){
reshuichu_qichu =new BigDecimal(houseListTmp.get(i).getQichu_val());
}else{
reshuichu_qichu =new BigDecimal(houseListTmp.get(i).getQichu_val());
}
if(houseListTmp.get(i).getQimo_val()!=null && houseListTmp.get(i).getQimo_val()!=""){
reshuichu_qimo = new BigDecimal(houseListTmp.get(i).getQimo_val());
}else{
reshuichu_qimo = new BigDecimal("0");
}
reshui_flg = true;
}
//限制总用量的长度    33.41000000000015   33.41
String zl=houseListTmp.get(i).getZongliang();   //12.1200000000015
int dhindex=-1;
if(zl!=null && zl!=""){
dhindex=zl.indexOf(".");
if(dhindex!=-1){  
//String zlvalue=zl.substring(dhindex);   //.1200000000015
//if(zlvalue.length()>3){
houseListTmp.get(i).setZongliang(zl.substring(0, dhindex+3));
//}
}
}
//限制金额小计的长度  22.260000000015  22.26
String jexj=houseListTmp.get(i).getJine();
if(jexj!=null && jexj!=""){
dhindex=jexj.indexOf(".");
if(dhindex!=-1){
//String jexjvalue=jexj.substring(dhindex);
//if(jexjvalue.length()>3){
houseListTmp.get(i).setJine(jexj.substring(0,dhindex+3));
//}
}
}
//限制期末时间的长度
String qimo_sj=houseListTmp.get(i).getQimo_sj();
if(qimo_sj!=null && qimo_sj!=""){
i
4000
f(qimo_sj.length()>19){
houseListTmp.get(i).setQimo_sj(qimo_sj.substring(0,19));
}
}
//限制期初时间的长度
String qichu_sj=houseListTmp.get(i).getQichu_sj();
if(qichu_sj!=null && qichu_sj!=""){
if(qichu_sj.length()>19){
houseListTmp.get(i).setQichu_sj(qichu_sj.substring(0,19));
}
}
houseList.add(houseListTmp.get(i));
//最后一行
if(i == houseListTmp.size()-1 && reshui_flg){
housedata=new HouseDataBean();
housedata.setAddress(address);    //金额小计
//计算上一个address对应的用水量
housedata.setQichu_val(reshuijin_qichu.subtract(reshuichu_qichu).toString());  //期初值
housedata.setQimo_val(reshuijin_qimo.subtract(reshuichu_qimo).toString());   //期末值

BigDecimal zongliang=new BigDecimal("0");
zongliang=reshuijin_qimo.subtract(reshuichu_qimo).subtract(reshuijin_qichu.subtract(reshuichu_qichu));
housedata.setZongliang(zongliang.toString());
housedata.setPrice(danjia.toString());   //单价
housedata.setJine(danjia.multiply(zongliang).toString());    //金额小计

housedata.setName("热水量");
housedata.setComid("");
housedata.setQichu_sj("");
housedata.setQimo_sj("");
houseList.add(housedata);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Action List