package com.yaochen.boss.model;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
import com.yaochen.boss.commons.CProdCycleDtoComparator;
/**
* 计算产品到期日的数据bean
* 能使用某个公用的所有产品集合
*/
public class CProdUpdate {
List<CProdCycleDto> cprods;//一个客户的能使用某个公用账目的所有产品,按Invaliddatetonum从小到大的顺序
Integer blanace;//公用账目余额
Boolean cycle_sign;//是否包含周期性产品
//排序比较器
private static CProdCycleDtoComparator comparator=new CProdCycleDtoComparator();
public Boolean getCycle_sign() {
return cycle_sign;
}
public void setCycle_sign(Boolean cycle_sign) {
this.cycle_sign = cycle_sign;
}
public CProdUpdate(){}
/**
* 使用二叉树对应cprods按到期日数值排序
* @param cprods
* @return
*/
public List<CProdCycleDto> orderByInvalidNum(List<CProdCycleDto> cprods){
TreeSet<CProdCycleDto> treeset=new TreeSet<CProdCycleDto>(comparator);
for(CProdCycleDto cprod:cprods)
treeset.add(cprod);
cprods.clear();
Iterator<CProdCycleDto> it= treeset.iterator();
while(it.hasNext())
cprods.add(it.next());
return cprods;
}
/**
* 初始化
* cprods 一个客户的所有能使用公用产品列表
* cprods 已经按到期日大小排序,不需要使用二叉树排序
*/
public CProdUpdate(List<CProdCycleDto> cprods){
for(CProdCycleDto cprod:cprods){
if(blanace==null) blanace=cprod.getPublic_balance();
if(cprod.getTariff_billing_cycle()!=null&&cprod.getTariff_billing_cycle()!=1){
if(this.cycle_sign==null) this.cycle_sign=true;
cprod.setBackup_invlaid_num(cprod.getInvalid_date_num());
cprod.setInvalid_cycle_num(cprod.getTariff_billing_cycle()*(365.0/12));
cprod.setTariff_cycle_rent_365(cprod.getTariff_rent_365()*cprod.getInvalid_cycle_num());
}
}
//orderByInvalidNum(cprods);//cprods已经按到期日大小排序,不需要使用二叉树排序
this.cprods=cprods;
}
public List<CProdCycleDto> getCprods() {
return cprods;
}
public void setCprods(List<CProdCycleDto> cprods) {
this.cprods = cprods;
}
public Integer getBlanace() {
return blanace;
}
public void setBlanace(Integer blanace) {
this.blanace = blanace;
}
}