@startuml
@startuml
skinparam classAttributeIconSize 0


title  Task_Base 任务单基类




enum Task_type
{
//任务类型
	UNKNOW_TASK             =0,				//未知任务单//初始化,默认值
	LASER_TASK              =1,             //雷达扫描任务,
    LOCATE_TASK             =2,             //测量任务
    PLC_TASK                =3,             //上传PLC任务
}


enum Task_statu
{
//任务状态，如果任务故障，任务状态改为TASK_OVER，然后在m_task_error_manager 补充错误码。
    TASK_CREATED            =0,             //创建状态，默认值
    TASK_SIGNED             =1,             //已签收
    TASK_WORKING            =2,             //处理中
    TASK_OVER               =3,             //已结束
}




class Task_Base
{
//任务单基类
==public:==
    ~Task_Base();
..
    //初始化任务单,初始任务单类型为 UNKONW_TASK
    virtual Error_manager init();
..
    //更新任务单
    //task_statu: 任务状态
    //statu_information:状态说明
    Error_manager update_statu(Task_statu task_statu,std::string statu_information="");
..
    //获取任务类型
    Task_type   get_task_type();
..
    //获取任务单状态
    Task_statu  get_statu();
..
    //获取状态说明
    std::string get_statu_information();
..
	//获取 错误码
	Error_manager& get_task_error_manager();
..
	//设置 错误码
	void set_task_error_manager(Error_manager & error_manager);
==protected:==
    Task_Base();
==protected:==
    Task_type                   m_task_type;                    //任务类型
    Task_statu                  m_task_statu;                   //任务状态
    std::string                 m_task_statu_information;       //任务状态说明
	//错误码，任务故障信息，任务输出
	Error_manager               m_task_error_manager;
}

class Error_manager
{
//错误码管理
}
Task_Base <-- Error_manager : include


Task_Base <-- Task_type : include
Task_Base <-- Task_statu : include
@enduml