private static void getChartData(Double head ,List<Double> SHOW,Double end){
//========================模拟数据初始化开始======================
SHOW=new ArrayList<Double>();//中间各项费率显示
head=10.00;//同期费率
SHOW.add(10.00);
SHOW.add(-30.00);
SHOW.add(20.00);
SHOW.add(10.00);
SHOW.add(-10.00);
SHOW.add(20.00);
SHOW.add(10.00);
SHOW.add(-50.00);
SHOW.add(-10.00);
SHOW.add(-10.00);
SHOW.add(10.00);
SHOW.add(20.00);
SHOW.add(60.00);
end=20.00;//当期费率
//========================模拟数据初始化结束======================
//===========这些集合按照索引进行处理数据,每一个指针指向一个字段,头尾代表同期年费率,中间指向各项类目费率
List<Double> JC_Up = new ArrayList<Double>();//正向透明
JC_Up.add(0.00);//正向透明
List<Double> JC_Down= new ArrayList<Double>();//负向透明
JC_Down.add(0.00);
List<Double> QS_Up= new ArrayList<Double>();//正向起始head
List<Double> QS_Down= new ArrayList<Double>();//负向起始head
List<Double> END_Up= new ArrayList<Double>();//正向起始end
List<Double> END_Down= new ArrayList<Double>();//负向起始end
List<Double> JS_Up= new ArrayList<Double>();//正向减少
List<Double> JS_Down= new ArrayList<Double>();//负向减少
List<Double> ZJ_Up= new ArrayList<Double>();//正向增加
List<Double> ZJ_Down= new ArrayList<Double>();//负向增加
//===========
//===========首项数据初始化==================
if (head>=0) {
QS_Up.add(head);
QS_Down.add(0.00);
}else {
QS_Down.add(head);
QS_Up.add(0.00);
}
JS_Up.add(0.00);
JS_Down.add(0.00);
ZJ_Up.add(0.00);
ZJ_Down.add(0.00);
END_Up.add(0.00);
END_Down.add(0.00);
//===========首项数据初始化==================
//===========获得各项依次累积的基础数据(空白+各色柱状图高度)==========
List<Double> JC= new ArrayList<Double>();
for (int i = 0; i < SHOW.size(); i++) {
if (i==0) {
JC.add(end);
}else {
JC.add(SHOW.get(i-1)+JC.get(i-1));
}
}
//===========获得各项依次累积的基础数据(空白+各色柱状图高度)==========
//===========处理各项柱状图高度的数据 透明色,增加,减少三项================开始===========================
for (int i = 0; i < JC.size(); i++) {
Double current = JC.get(i);
//===========当前高度为正数,下次累积项目为正数==========开始
if (current>=0&&SHOW.get(i)>=0) {
ZJ_Up.add(Math.abs(SHOW.get(i)));
JS_Up.add(0.00);
JC_Up.add(current);
JC_Down.add(0.00);
ZJ_Down.add(0.00);
JS_Down.add(0.00);
}
//===========当前高度为正数,下次累积项目为正数==========结束
//===========当前高度为正数,下次累积项目为负数==========开始
else if (current>=0&&SHOW.get(i)<0) {
if (current+SHOW.get(i)>=0) {
JS_Up.add(Math.abs(SHOW.get(i)));
JS_Down.add(0.00);
ZJ_Up.add(0.00);
JC_Up.add(current+SHOW.get(i));
JC_Down.add(0.00);
ZJ_Down.add(0.00);
}else {
JS_Up.add(current);
JS_Down.add(current+SHOW.get(i));
ZJ_Up.add(0.00);
JC_Up.add(0.00);
JC_Down.add(0.00);
ZJ_Down.add(0.00);
}
}
//===========当前高度为正数,下次累积项目为负数==========结束
//===========当前高度为负数,下次累积项目为正数==========开始
else if (current<0&&SHOW.get(i)>=0) {
if (current+SHOW.get(i)>=0) {
JS_Up.add(0.00);
ZJ_Up.add(current+SHOW.get(i));
JC_Up.add(0.00);
JC_Down.add(0.00);
ZJ_Down.add(current);
JS_Down.add(0.00);
}else {
JS_Up.add(0.00);
ZJ_Up.add(0.00);
JC_Up.add(0.00);
JC_Down.add(current+SHOW.get(i));
ZJ_Down.add(-SHOW.get(i));
JS_Down.add(0.00);
}
}
//===========当前高度为负数,下次累积项目为正数==========结束
//===========当前高度为负数,下次累积项目为负数==========开始
else if (current<0&&SHOW.get(i)<0) {
JC_Up.add(0.00);
ZJ_Up.add(0.00);
JC_Down.add(current);
JS_Up.add(0.00);
JS_Down.add(SHOW.get(i));
ZJ_Down.add(0.00);
}
//===========当前高度为负数,下次累积项目为负数==========结束
//===========填充控制开头结尾的数据的集合==========结束
END_Up.add(0.00);
END_Down.add(0.00);
QS_Up.add(0.00);
QS_Down.add(0.00);
//===========填充控制开头结尾的数据的集合==========结束
}
//===========处理各项柱状图高度的数据 透明色,增加,减少三项===============结束============================
//===========处理尾部指针数据==========
if (end>=0) {
END_Up.add(end);
END_Down.add(0.00);
}else {
END_Down.add(end);
END_Up.add(0.00);
}
JS_Up.add(0.00);
JS_Down.add(0.00);
ZJ_Up.add(0.00);
ZJ_Down.add(0.00);
QS_Up.add(0.00);
QS_Down.add(0.00);
//===========处理尾部指针数据==========
List<Double>newShow =new ArrayList<Double>();
for (int j = 0; j < SHOW.size()+2; j++) {
Double filed=0.00;
if (j==0) {
filed=head;
}else if(j==SHOW.size()+1){
filed=end;
}else{
filed=SHOW.get(j-1);
}
newShow.add(filed);
}
List<List<Double>> list=new ArrayList<List<Double>>();
List<String> sqls=new ArrayList<>();
list.add(newShow);
list.add(JC_Up);
list.add(JC_Down);
list.add(JS_Down);
list.add(JS_Up);
list.add(QS_Up);
list.add(QS_Down);
list.add(ZJ_Up);
list.add(ZJ_Down);
//
}
//========================模拟数据初始化开始======================
SHOW=new ArrayList<Double>();//中间各项费率显示
head=10.00;//同期费率
SHOW.add(10.00);
SHOW.add(-30.00);
SHOW.add(20.00);
SHOW.add(10.00);
SHOW.add(-10.00);
SHOW.add(20.00);
SHOW.add(10.00);
SHOW.add(-50.00);
SHOW.add(-10.00);
SHOW.add(-10.00);
SHOW.add(10.00);
SHOW.add(20.00);
SHOW.add(60.00);
end=20.00;//当期费率
//========================模拟数据初始化结束======================
//===========这些集合按照索引进行处理数据,每一个指针指向一个字段,头尾代表同期年费率,中间指向各项类目费率
List<Double> JC_Up = new ArrayList<Double>();//正向透明
JC_Up.add(0.00);//正向透明
List<Double> JC_Down= new ArrayList<Double>();//负向透明
JC_Down.add(0.00);
List<Double> QS_Up= new ArrayList<Double>();//正向起始head
List<Double> QS_Down= new ArrayList<Double>();//负向起始head
List<Double> END_Up= new ArrayList<Double>();//正向起始end
List<Double> END_Down= new ArrayList<Double>();//负向起始end
List<Double> JS_Up= new ArrayList<Double>();//正向减少
List<Double> JS_Down= new ArrayList<Double>();//负向减少
List<Double> ZJ_Up= new ArrayList<Double>();//正向增加
List<Double> ZJ_Down= new ArrayList<Double>();//负向增加
//===========
//===========首项数据初始化==================
if (head>=0) {
QS_Up.add(head);
QS_Down.add(0.00);
}else {
QS_Down.add(head);
QS_Up.add(0.00);
}
JS_Up.add(0.00);
JS_Down.add(0.00);
ZJ_Up.add(0.00);
ZJ_Down.add(0.00);
END_Up.add(0.00);
END_Down.add(0.00);
//===========首项数据初始化==================
//===========获得各项依次累积的基础数据(空白+各色柱状图高度)==========
List<Double> JC= new ArrayList<Double>();
for (int i = 0; i < SHOW.size(); i++) {
if (i==0) {
JC.add(end);
}else {
JC.add(SHOW.get(i-1)+JC.get(i-1));
}
}
//===========获得各项依次累积的基础数据(空白+各色柱状图高度)==========
//===========处理各项柱状图高度的数据 透明色,增加,减少三项================开始===========================
for (int i = 0; i < JC.size(); i++) {
Double current = JC.get(i);
//===========当前高度为正数,下次累积项目为正数==========开始
if (current>=0&&SHOW.get(i)>=0) {
ZJ_Up.add(Math.abs(SHOW.get(i)));
JS_Up.add(0.00);
JC_Up.add(current);
JC_Down.add(0.00);
ZJ_Down.add(0.00);
JS_Down.add(0.00);
}
//===========当前高度为正数,下次累积项目为正数==========结束
//===========当前高度为正数,下次累积项目为负数==========开始
else if (current>=0&&SHOW.get(i)<0) {
if (current+SHOW.get(i)>=0) {
JS_Up.add(Math.abs(SHOW.get(i)));
JS_Down.add(0.00);
ZJ_Up.add(0.00);
JC_Up.add(current+SHOW.get(i));
JC_Down.add(0.00);
ZJ_Down.add(0.00);
}else {
JS_Up.add(current);
JS_Down.add(current+SHOW.get(i));
ZJ_Up.add(0.00);
JC_Up.add(0.00);
JC_Down.add(0.00);
ZJ_Down.add(0.00);
}
}
//===========当前高度为正数,下次累积项目为负数==========结束
//===========当前高度为负数,下次累积项目为正数==========开始
else if (current<0&&SHOW.get(i)>=0) {
if (current+SHOW.get(i)>=0) {
JS_Up.add(0.00);
ZJ_Up.add(current+SHOW.get(i));
JC_Up.add(0.00);
JC_Down.add(0.00);
ZJ_Down.add(current);
JS_Down.add(0.00);
}else {
JS_Up.add(0.00);
ZJ_Up.add(0.00);
JC_Up.add(0.00);
JC_Down.add(current+SHOW.get(i));
ZJ_Down.add(-SHOW.get(i));
JS_Down.add(0.00);
}
}
//===========当前高度为负数,下次累积项目为正数==========结束
//===========当前高度为负数,下次累积项目为负数==========开始
else if (current<0&&SHOW.get(i)<0) {
JC_Up.add(0.00);
ZJ_Up.add(0.00);
JC_Down.add(current);
JS_Up.add(0.00);
JS_Down.add(SHOW.get(i));
ZJ_Down.add(0.00);
}
//===========当前高度为负数,下次累积项目为负数==========结束
//===========填充控制开头结尾的数据的集合==========结束
END_Up.add(0.00);
END_Down.add(0.00);
QS_Up.add(0.00);
QS_Down.add(0.00);
//===========填充控制开头结尾的数据的集合==========结束
}
//===========处理各项柱状图高度的数据 透明色,增加,减少三项===============结束============================
//===========处理尾部指针数据==========
if (end>=0) {
END_Up.add(end);
END_Down.add(0.00);
}else {
END_Down.add(end);
END_Up.add(0.00);
}
JS_Up.add(0.00);
JS_Down.add(0.00);
ZJ_Up.add(0.00);
ZJ_Down.add(0.00);
QS_Up.add(0.00);
QS_Down.add(0.00);
//===========处理尾部指针数据==========
List<Double>newShow =new ArrayList<Double>();
for (int j = 0; j < SHOW.size()+2; j++) {
Double filed=0.00;
if (j==0) {
filed=head;
}else if(j==SHOW.size()+1){
filed=end;
}else{
filed=SHOW.get(j-1);
}
newShow.add(filed);
}
List<List<Double>> list=new ArrayList<List<Double>>();
List<String> sqls=new ArrayList<>();
list.add(newShow);
list.add(JC_Up);
list.add(JC_Down);
list.add(JS_Down);
list.add(JS_Up);
list.add(QS_Up);
list.add(QS_Down);
list.add(ZJ_Up);
list.add(ZJ_Down);
//
}