基于jeecg-boot的任务甘特图显示

更多功能看演示系统

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888

基于项目的任务显示,最直观的就是甘特图显示,所以今天就说甘特图的显示

经过选择,最终选择dhtmlx-gantt组件,使用最新的8.0.3版本,当然这个组件就是一些高级功能需要付费。

1、后端代码

获取项目任务相关信息如下:

@Override
	public Result taskGantt(Map mmap) {
		String projectId = MapUtils.getString(mmap, "projectId");
		List listStagesGantt = taskStagesMapper.selectTaskStagesGanttByProjectId(projectId);
		List listTasksGantt = baseMapper.selectTaskGanttByProjectId(projectId);
		if (!CollectionUtils.isEmpty(listStagesGantt)) {
			if (!CollectionUtils.isEmpty(listTasksGantt)) {
				for (Map stagesmap : listStagesGantt) {
					for (Map tasksmap : listTasksGantt) {
						if (ObjectUtils.isEmpty(tasksmap.get("parent"))) {
							tasksmap.replace("parent", stagesmap.get("id"));
						}
					}
				}
				Map tasksmap = new HashMap();
				listStagesGantt.addAll(listTasksGantt);
				tasksmap.put("data", listStagesGantt);
				return Result.OK(tasksmap);
			} else {
				Map tasksmap = new HashMap();
				tasksmap.put("data", listStagesGantt);
				return Result.OK(tasksmap);
			}

		} else {
			return Result.error("获取不到数据");
		}
	}

其中用到的两个sql如下,注意下面对日期做了格式转换:

 @Select("select id,name as text,null assign_to,null as start_date,null as end_date,sort,null parent from tw_task_stages where project_id = #{projectId} order by sort" )
    List selectTaskStagesGanttByProjectId(@Param("projectId") String  projectId);

@Select("select id,name as text,assign_to,DATE_FORMAT(begin_time,'%d-%m-%Y') as start_date,DATE_FORMAT(end_time,'%d-%m-%Y') as end_date, id_num as sort, pid as parent from tw_task where project_id = #{projectId} order by sort")
    List selectTaskGanttByProjectId(@Param("projectId") String  projectId);

2、前端代码





2、效果如下:

基于jeecg-boot的任务甘特图显示_第1张图片

你可能感兴趣的:(jeecg-boot,java开发,前端vue,甘特图,vue.js,java)