甘特图父子任务级联关系

由于甘特图的任务id必须是0-9的数字,所以这里的任务id为rid,id字段为数据库中的逐渐。

下面两个方法为核心方法。

 

//定义一个空有序集合

List<GanttViewBean> resultList = new ArrayList<GanttViewBean>();

 

//将获取的数据进行级联排序

private List<GanttViewBean> compareList(List<GanttViewBean> dataList) {
  if (!dataList.isEmpty()) {
   for (GanttViewBean gvb : dataList) {
    if (gvb.getParent().equals("0")) {
     resultList.add(gvb);
     for (int i = 0; i < dataList.size(); i++) {
      put2List(dataList, gvb.getRid(), dataList.get(i));
     }
    }
   }

  }
  return resultList;
 }

 

//递归

/**

 *dataList:数据集合

 *rid:父任务id

 *gvb:当前任务对象,用于获取当前任务的父id 

 */

 public void put2List(List<GanttViewBean> dataList, String rid,
   GanttViewBean gvb) {
  if (rid.equals(gvb.getParent())) {
   resultList.add(gvb);
   for (int n = 0; n < dataList.size(); n++) {
    put2List(dataList, gvb.getRid(), dataList.get(n));
   }
  }
 }

 

 

 

//下面是bean类,为了节省空间,构造器就不贴了.

public class GanttViewBean {

 String id = ""; // ID
 String rid = "";// rid
 String name = ""; // 名称
 String start = ""; // 开始日期
 String end = ""; // 结束日期
 String color = ""; // 颜色
 String link = ""; // 链接
 String complete = ""; // 完成度
 String group = ""; // 分组
 String mileStone = ""; // 里程碑
 String resource = ""; // 资源
 String parent = ""; // 上级任务ID
 String open = "0"; // 是否展开
 String dependency = ""; // 依赖任务
 String caption = ""; // 标题
 String isGroup = StringUtil.isBlank(group) ? "0" : group; // 是否分组
 String isMileStone = StringUtil.isBlank(mileStone) ? "0" : mileStone; // 是否里程碑

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值