# 十一、任务

# (一)任务集合[TaskSet]

任务集合是相同类型任务要素的集合。

任务集合的常用属性如下:

属性名 值类型 属性描述
name String 任务集合名称
remark String 备注

常用方法如下(get/set方法略): |createTask|void|创建任务| |updateTask|void|更新任务| |deleteTask|void|删除任务|

# 1、获取任务集合

初始化成功后,可直接从Cellsys的organization对象中获取到组织下所有的任务集合。

List<TaskSet> taskSets = Cellsys.organization.getTaskSets();//可能为null
if(taskSets != null && taskSets.size() > 0){
    TaskSet taskSet = taskSets.get(0);
    String name = taskSet.getName();
    String remark = taskSet.getRemark();
}
1
2
3
4
5
6

# 2、新增任务集合

任务集合通过组织[Organization]对象创建。具体操作见代码示例

Cellsys.organization.createTaskSet("集合名称", "备注", new CsCallback<TaskSet>() {
    @Override
    public void onSuccess(TaskSet object) {
        /*成功*/
    }
      
    @Override
    public void onFailure(ErrorMessage errorMessage) {
        /*失败*/
        int code = errorMessage.getCode();//错误码
        String errMsg = errorMessage.getMessage();//错误信息
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13

# 3、修改任务集合

任务集合通过组织[Organization]对象来修改。具体操作见代码示例

taskSet.setName("修改名称");
taskSet.setRemark("修改备注");
Cellsys.organization.updateTaskSet(taskSet, new CsCallback() {
    @Override
    public void onSuccess(Object object) {
        /*成功*/
    }
  
    @Override
    public void onFailure(ErrorMessage errorMessage) {
        /*失败*/
        int code = errorMessage.getCode();//错误码
        String errMsg = errorMessage.getMessage();//错误信息
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 4、删除任务集合

任务集合通过组织[Organization]对象来删除。具体操作见代码示例

Cellsys.organization.deleteTaskSet(taskSet, new CsCallback() {
    @Override
    public void onSuccess(Object object) {
        /*成功*/
    }
 
    @Override
    public void onFailure(ErrorMessage errorMessage) {
        /*失败*/
        int code = errorMessage.getCode();//错误码
        String errMsg = errorMessage.getMessage();//错误信息
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13

# (二)任务要素[TaskFeature]

任务要素的常用属性如下:

属性名 值类型 属性描述
name String 任务要素名称
remark String 备注
startTime DateTime 任务开始时间
endTime DateTime 任务截止时间
finishTime DateTime 任务完成时间
excuteState String 任务执行状态

常用方法如下:(get/set方法略)

方法名 返回类型 方法描述
queryExecutors void 查询执行人信息
queryTaskGraphs void 查询任务图形

# 1、获取任务要素

任务集合[TaskSet]提供了query方法来查询自身集合中的任务要素。具体操作见代码示例

taskSet.queryTask(new CsCallback<QueryResult<TaskFeature>>() {
    @Override
    public void onSuccess(QueryResult<TaskFeature> object) {
        /*分页信息-查询方法特有*/
        PageInfo pageInfo = object.pageInfo;//查询接口特有的分页信息
        int totalCount = pageInfo.totalCount;//数据总数
        int totalPage = pageInfo.totalPage;//总页数
        int pageNo = pageInfo.pageNo;//当前页码(从1开始)
        int pageSize = pageInfo.pageSize;//每页查询数量(注意!不一定和当前查询的数据总量匹配)
  
        /*获取查询结果*/
        List<TaskFeature> taskFeatures = object.data;
        if (taskFeatures != null && taskFeatures.size() > 0) {//查询结果可能为null
            TaskFeature taskFeature = taskFeatures.get(0);
        }
    }
     
    @Override
    public void onFailure(ErrorMessage errorMessage) {
        /*失败*/
        int code = errorMessage.getCode();//错误码
        String errMsg = errorMessage.getMessage();//错误信息
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 2、新增任务

任务要素[TaskFeature]通过任务集合[TaskSet]对象创建。具体操作见代码示例

taskSet.createTask({
        "name": "任务名称",
        "remark": "备注信息"
    })
    .then((taskFeature) => {
        let newTaskFeature = taskFeature; //创建成功后返回新创建的任务要素对象
        let name = newTaskFeature.name; //获取新任务名称
        let remark = newTaskFeature.remark; //获取新任务的备注信息
    })
    .catch(error => {
        console.log(error.code)
        console.log(error.message)
    })
1
2
3
4
5
6
7
8
9
10
11
12
13

# 3、修改任务

任务要素[TaskFeature]通过任务集合[TaskSet]对象修改。具体操作见代码示例

long startTimeStamp = 1656322973126l;
long endTimeStamp = 1656409364954l;
long finishTimeStamp = 1656409361120l;
DateTime startTime = new DateTime(startTimeStamp);
DateTime endTime = new DateTime(endTimeStamp);
DateTime finishTime = new DateTime(finishTimeStamp);
taskFeature.setStartTime(startTime);//修改开始时间
taskFeature.setEndTime(endTime);//修改结束时间
taskFeature.setFinishTime(finishTime);//设置结束时间
taskFeature.setExcuteState(TaskExecuteState.Finish);//将任务状态改为完成
taskSet.updateTask(taskFeature, new CsCallback() {
    @Override
    public void onSuccess(Object object) {
        /*成功*/
    }
  
    @Override
    public void onFailure(ErrorMessage errorMessage) {
        /*失败*/
        int errorCode = errorMessage.getCode();//错误码
        String errorMsg = errorMessage.getMessage();//错误信息
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 4、删除任务

任务要素[TaskFeature]通过任务集合[TaskSet]对象删除。具体操作见代码示例

taskSet.deleteTask(taskFeature, new CsCallback() {
    @Override
    public void onSuccess(Object object) {
        /*成功*/
    }
      
    @Override
    public void onFailure(ErrorMessage errorMessage) {
        /*失败*/
        int errorCode = errorMessage.getCode();//错误码
        String errorMsg = errorMessage.getMessage();//错误信息
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13

# 5、任务基础信息

/*基础信息*/
String name = taskFeature.getName();//名称
String remark = taskFeature.getRemark();//备注/描述
/*任务执行人*/
taskFeature.queryExecutors(new CsCallback<QueryResult<MemberFeature>>() {
    @Override
    public void onSuccess(QueryResult<MemberFeature> object) {
        List<MemberFeature> memberFeatures = object.data;
    }

    @Override
    public void onFailure(ErrorMessage errorMessage) {
        int errorCode = errorMessage.getCode();//错误码
        String errorMsg = errorMessage.getMessage();//错误信息
    }
});
/*任务期限*/
DateTime startTime = taskFeature.getStartTime();//开始时间
DateTime endTime = taskFeature.getEndTime();//结束时间
DateTime finishTime = taskFeature.getFinishTime();//实际完成时间
/*任务状态*/
TaskExecuteState taskExecuteState = taskFeature.getExcuteState();//枚举类:等待、执行中、完成、取消
/*涉及的任务图形(点线面)*/
taskFeature.queryTaskGraph(new CsCallback<QueryResult<TaskGraph>>() {
    @Override
    public void onSuccess(QueryResult<TaskGraph> object) {
        List<TaskGraph> taskGraphs = object.data;
    }

    @Override
    public void onFailure(ErrorMessage errorMessage) {
        int errorCode = errorMessage.getCode();//错误码
        String errorMsg = errorMessage.getMessage();//错误信息
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# (三)任务图形

任务图形与地图要素类似,都是由点线面三种元素构成。门户系统中,任务图形可直接选择地图要素导入,或自定义生成。

String name = taskGraph.getName();//名称
String remark = taskGraph.getRemark();//备注/描述
Icon icon = taskGraph.getIcon();//图标
MapSymbol mapSymbol = taskGraph.symbol;//地图样式
if (mapSymbol instanceof PointSymbol) {
    PointSymbol pointSymbol = (PointSymbol) mapSymbol;
} else if (mapSymbol instanceof PolylineSymbol) {
    PolylineSymbol polylineSymbol = (PolylineSymbol) mapSymbol;
} else if (mapSymbol instanceof PolygonSymbol) {
    PolygonSymbol polygonSymbol = (PolygonSymbol) mapSymbol;
}
Geometry geometry = taskGraph.geometry;//图形坐标
if (geometry instanceof MapPoint) {
    MapPoint mapPoint = (MapPoint) geometry;
} else if (geometry instanceof Polyline) {
    Polyline polyline = (Polyline) geometry;
} else if (geometry instanceof Polygon) {
    Polygon polygon = (Polygon) geometry;
}
FenceInfo fenceInfo = taskGraph.fenceInfo;//围栏信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20