JSON数据结构
PlusProject项目数据包含如下信息:项目本身数据、日历、任务列表、部门列表、负责人列表等。
其中,任务会跟部门、负责人有分配关系。
本节使用JSON格式描述项目数据结构,对应到服务端数据,转换类型如下:
.Net:Array => ArrayList; Object => Hashtable
Java:Array => ArrayList; Object => HashMap
//普加项目管理中间件数据结构
{
//项目唯一字段
UID: 100,
//项目名称
Name: 'ProjectName',
//项目开始日期
StartDate: '2007-01-01T08:00:00',
//项目结束日期
FinishDate: '2007-05-14T15:00:00',
//正在使用的日历的UID
CalendarUID: 1,
//日历(数组,包含多个日历,每个日历对应一个对象,可切换)
Calendars: [
{
//日历唯一字段
UID: 1,
//日历名称
Name: 'CalendarName',
//工作周情况,DayType(1~7)周日到周六
WeekDays: [
{
DayType: 1,
DayWorking: 1 //工作日1, 非工作日0 } ,
{DayType: 2 ,DayWorking: 1 },
{DayType: 3 ,DayWorking: 1 },
{DayType: 4 ,DayWorking: 1 },
{DayType: 5 ,DayWorking: 1 },
{DayType: 6 ,DayWorking: 1 },
{DayType: 7 ,DayWorking: 0 }
],
//例外日期,DayType = 0(非工作日),DayType = 1(工作日)
Exceptions: [
{
DayType: 0,
DayWorking: 0,
Name: '',
TimePeriod: { //例外的日期范围
FromDate: '2007-01-01T00:00:00',
ToDate: '2007-01-02T23:59:59'
}
}
]
}
],
//任务集合 Tasks: [
{
UID: 1, //任务UID(唯一性标识符)
Name: '', //任务名称
Start: '2010-01-01T00:00:00',//DateTime。开始日期
Finish: '2010-01-01T23:59:59',//DateTime。完成日期
Duration: 24, //Number。工期
PercentComplete: 100, //Number。进度 Manual: 0, //手动模式。0是自动,1是手动。 ConstraintType: 1, //限制类型:0越早越好;1越晚越好;2必须开始于;3必须完成于;
//4不得早于...开始;5不得晚于...开始;6不得早于...完成;7不得晚于...完成 ConstraintDate: null, //DateTime。限制日期 FixedDate:1, //1或0。是否固定日期(仅限于摘要任务使用)
ID: 1, //Number。序号
OutlineNumber: '1.2.1', //体现树形层次和顺序
OutlineLevel: 1, //层次
Work: 8, //Number。工时
Weight: 100, //Number。权重
Milestone: 1, //1或0。里程碑
Summary: 1, //1或0。摘要任务
Critical: 1, //1或0。关键任务
Priority: 200, //Number。重要级别
Notes: '', //任务备注
PredecessorLink: [ //前置任务
{
PredecessorUID: 2, //对应前置任务UID
Type: 1, //前置关系类型 0(FF)/1(FS)/2(SF)/3(FF)
LinkLag: 0 //延时天数
},
......
],
Assignments: [ //资源分配关系
{ResourceUID: 2, Units: 1},
......
],
Department: '1', //部门
Principal: '1,2' //负责人,
children: [ //下一级子任务, 体现树形结构 ......
]
}
],
//资源集合 Resources: [
{UID: 1, Name: '市场部', Type: 1, MaxUnits: 1},
......
],
//部门集合 Departments: [
{UID: 1, Name: '市场部'},
......
],
//负责人集合 Principals: [
{UID: 1, Name: '张三', Department: 1},
......
]
}