甘特图父子任务级联关系

来源:互联网 发布:js给select标签赋值 编辑:程序博客网 时间:2024/06/11 05:12

由于甘特图的任务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; // 是否里程碑

}

原创粉丝点击