**工单相关接口**


# 获取工单列表
### URL
/api/v1.0/tickets
### method
GET
### 请求参数

参数名 | 类型 | 必填 | 说明
---|---|---|---
sn | varchar | 否 | 流水号，支持根据sn的前几位模糊查询
title | varchar | 否 | 工单标题，模糊查询
create_start | varchar | 否 | 创建时间起
create_end | varchar | 否 | 创建时间止
workflow_ids | varchar | 否 | 工作流ids，逗号隔开多个工作流id, 如"1,2,3"
state_ids | varchar | 否 | 状态ids,逗号隔开多个状态id,如"1,2,3"
ticket_ids | varchar | 否 | 工单ids, 逗号隔开多个id，如"1,2,3"
reverse | varchar | 否 | 是否按照创建时间倒序，0或者1
page| int | 否 | 页码，默认1
per_page| int | 否 | 每页个数，默认10
is_end | int | 否 | 是否已经结束的工单,0(未结束),1(已结束)或者不提供(不过滤是否已经结束)
is_rejected | int | 否 | 是否已被拒绝的工单，0(未被拒绝),1(被拒绝）或者不提供(不过滤是否已被拒绝)
category | varchar | 是 | 类型('all':所有工单, 'owner':我创建的工单, 'duty':我的待处理工单, 'relation':我的关联工单[包括我新建的、我处理过的、曾经需要我处理过的工单。注意这里只考虑历史状态，工单将来状态的处理人不考虑])

### 返回数据

```
{
	"msg": "",
	"code": 0,
	"data": {
		"value": [{
			"participant_info": {
				"participant_type_id": 1,
				"participant": "1",
				"participant_name": "zhangsan",
				"participant_type_name": "个人",
        "participant_alias": "张三"
			},
			"gmt_created": "2018-05-15 07:16:38",
			"parent_ticket_state_id": 0,
			"state": {
				"state_name": "发起人-确认中",
				"state_id": 10
			},
			"creator": "lilei",
			"parent_ticket_id": 0,
			"title": "vpn申请",
			"gmt_modified": "2018-05-22 07:26:54",
			"workflow": {
				"workflow_name": "vpn申请",
				"workflow_id": 2
			},
			"sn": "loonflow_201805150001",
			"id": 17
		}],
		"total": 1,
		"page": 1,
		"per_page": 10
	}
}
```

# 新建工单
### URL
/api/v1.0/tickets
### method
POST
### 请求参数

参数名 | 类型 | 必填 | 说明
---|---|---|---
workflow_id | int | 是 | 工作流id(工单关联的工作流的id)
transition_id | int | 是 | 新建工单时候的流转id（通过workflow/{id}/init_state接口可以获取新建工单时允许的transition）
parent_ticket_id| int | 否 | 父工单的id(用于子工单的逻辑，如果新建的工单是某个工单的子工单需要填写父工单的id)
parent_ticket_state_id | varchar | 否 | 父工单的状态（子工单是和父工单的某个状态关联的）
suggestion | varchar | 否 | 处理意见（与处理工单类型，用户在处理工单的时候点击了按钮操作 可以填写附加的一些意见如:麻烦尽快处理）
其他必填字段 | NULL | 否 | 其他必填字段或可选字段（在配置工作流过程中,会配置工作流初始状态必填和可选的字段。在新建工单时候必须提供必填字段。如请假申请工单，配置了自定义字段请假天数days，工单初始状态也设置了days为必填，那么新建此类工单时候就必选提供days)
### 返回数据
```
{
  code: 0,
  msg: "",
  data: {
      ticket_id : 1  # 新建的工单的工单id
    }
}
```

# 获取工单详情
### URL
/api/v1.0/tickets/{ticket_id}

### method
GET

### 请求参数
无

### 返回数据
```
{
  msg: "",
  code: 0,
  data: {
    value: {
      state_id: 1,
      id: 1,
      gmt_created: "2018-04-10 16:43:20",
      gmt_modified: "2018-04-10 16:43:20",
      sn: "loonflow201804010001",  # 工单流水号
      field_list: [{   # 需要显示的字段
        field_choice: [ ], #字段的选项，用于radio\checkbox\select等需要选择的字段，是一个字典的list,如[{1:'中国', 2:'美国', 3:'英国'}]
        field_attribute: 1, #字段的编辑属性，只读、必填、可选，具体定义见文档首页的"常量定义"
        field_name: "型号",
        field_value: null,
        order_id: 0,
        field_type_id: 1,
        field_key: "model"
      },
      {
        field_attribute: 1,
        order_id: 55,
        name: "当前处理人",
        value: "轨迹,王五",
        field_key: "participant_info.participant_alias",
        field_type_id: 5
        }],
      participant_type_id: 0,
      title: "dfdsfsfsdf",
      participant: "zhangsan",
      workflow_id: 1,
      creator: "zhangsan",
      parent_ticket_id: 0
    }
  }
}
```

# 获取工单可以做的操作
### URL
/api/v1.0/tickets/{ticket_id}/transitions
### method
GET
### 请求参数
无

### 返回数据
```
{
  msg: "",
  data: {
    value: [
      {
        transition_name: "提交",
        field_require_check: true,  # 默认为ture,如果此为否时， 不校验表单必填内容
        transition_id: 1,
        is_accept: false, # 不是接单,
        in_add_node: false, # 不处于加签状态下
        enable_alert: false,  # 是否弹窗告警，可用于当用户点击此操作的时确定是否弹窗信息
        alert_text: "" # 弹窗中的消息内容
      },
      {
        transition_name: "保存",
        field_require_check: true,  # 默认为ture,如果此为否时， 不校验表单必填内容
        transition_id: 2,
        is_accept: false, # 不是接单,
        in_add_node: false, # 不处于加签状态下
        enable_alert: false,  # 是否弹窗告警，可用于当用户点击此操作的时确定是否弹窗信息
        alert_text: "" # 弹窗中的消息内容
      }
    ]
    },
  code: 0
}
```
如果当前处理人超过一个人(处理人类型为多人，部门、角色都有可能实际为多个人)，且当前状态的分配方式为主动接单，则会要求先接单,返回数据如下。处理时需要处理人先接单(点击接单按钮时 调用接单接口).
```
{
  msg: "",
  code: 0,
  data: {
    value: [
      {
        transition_id: 0,
        transition_name: "接单",
        is_accept: true,  # 接单,
        in_add_node: false,
        field_require_check: false
      }
    ]
  }
}
```
当工单当前处于加签状态下，返回格式如下。 则用户点击“完成”按钮时，需要调用完成加签操作接口
```
{
  msg: "",
  code: 0,
  data: {
    value: [
      {
        transition_id: 0,
        transition_name: "完成",
        is_accept: false,
        in_add_node: true, # 处于加签状态
        field_require_check: false
      }
    ]
  }
}
```

# 接单
### URL
/api/v1.0/tickets/{ticket_id}/accept
### method
post
### 使用场景
使用接口获取工单当前可以做的的操作后，如果data.value.is_accept==true,则需要用户先接单才能处理，即页面显示接单按钮，用户点击后调用接单接口，将工单的当前处理人设置该用户
### 请求参数
无

### 返回数据
```
{
  "data": true,
  "code": 0,
  "msg": ""
}
```

# 转交
### URL
api/v1.0/tickets/{ticket_id}/deliver
### method
post
### 使用场景
在工单处理界面可以显示一个按钮“转交”，当用户认为当前工单自己处理不了时，可以将工单转交给合适的人处理
### 请求参数
参数名 | 类型 | 必填 | 说明
---|---|---|---
target_username | varchar | 是 | 转交对象的用户名
suggestion | varchar | 否 | 转交意见
### 返回内容
```
{
  "data": true,
  "code": 0,
  "msg": ""
}
```

# 加签
### URL
api/v1.0/tickets/{ticket_id}/add_node
### method
post
### 使用场景
当用户A提交了一个权限申请工单，达到运维人员处理人中状态，作为运维人员的B在处理过程中发现需要C先处理或者提供一些必要的信息，B才能处理。 那么B在处理工单界面可以点击”加签“按钮，弹窗中选择C。 系统调用loonflow的加签接口将工单加签给C。C处理完后点击”完成“按钮，系统调用loonflow的加签完成接口， 工单处理人将回到B. 那么B就可以按照之前既定流程正常流转下去
### 请求参数
参数名 | 类型 | 必填 | 说明
---|---|---|---
target_username | varchar | 是 | 加签对象
suggestion | varchar | 否 | 加签意见
### 返回结果
```
{
  "data": true,
  "code": 0,
  "msg": ""
}
```

# 加签完成
### URL
api/v1.0/tickets/{ticket_id}/add_node_end
### method
post
### 使用场景
当A将工单加签给B.B在处理工单时候，界面将只显示“完成“按钮，点击后后端调用此接口，将工单基础表中的is_add_node设置为false
### 请求参数
参数名 | 类型 | 必填 | 说明
---|---|---|---
suggestion | varchar | 否 | 加签完成意见
### 返回结果
```
{
  "data": true,
  "code": 0,
  "msg": ""
}
```

# 处理工单
### URL
api/v1.0/tickets/{ticket_id}
### method
patch
### 请求参数
参数名 | 类型 | 必填 | 说明
---|---|---|---
transition_id | int | 是 | 流转id
suggestion | varchar | 否 | 处理意见（与处理工单类型，用户在处理工单的时候点击了按钮操作 可以填写附加的一些意见如:麻烦尽快处理）
其他必填字段 | NULL | 否 | 其他必填字段或可选字段（在配置工作流过程中,会配置工作流每个状态的必填和可选的字段。在处理工单时候必须提供必填字段。如请假申请工单，配置了自定义字段请假天数days，工单初始状态也设置了days为必填，那么处理此类工单时候就必选提供days)。工单详情接口中有当前处理是时必选的字段

### 返回数据
```
{
  msg: "",
  data: "",
  code: 0
}
```

# 获取工单流转记录
### URL
api/v1.0/tickets/{ticket_id}/flowlogs
### method
get
### 请求参数
无

### 返回数据
```
{
  msg: "",
  data: {
    total: 4,
    value: [
      {
        state: {
          state_name: "发起人-确认中",
          state_id: 5
        },
        transition: {
          transition_name: "确认完成",
          transition_id: 5,
          attribute_type_id: 3
        },
        ticket_id: 1,
        participant_info: {
          participant_email: "lilei@163.com",
          participant_alias: "李磊",
          participant_phone: "13888888888",
          participant: "lilei",
          participant_type_id: 1
        },
        gmt_modified: "2018-04-30 15:57:26",
        gmt_created: "2018-04-30 15:56:02",
        suggestion: "已经生效，感谢"
      },
      {
      state: {
        state_name: "技术人员-处理中",
        state_id: 4
        },
      transition: {
        transition_name: "处理完成",
        transition_id: 4
      },
      ticket_id: 1,
      participant_info: {
          participant_email: "lilei@163.com",
          participant_alias: "李磊",
          participant_phone: "13888888888",
          participant: "lilei",
          participant_type_id: 1
        },
      gmt_modified: "2018-04-30 15:57:14",
      gmt_created: "2018-04-30 15:55:32",
      suggestion: "处理完成"
      },
      {
      state: {
        state_name: "TL审批中",
        state_id: 3
      },
      transition: {
        transition_name: "同意",
        transition_id: 3
      },
      ticket_id: 1,
      participant_info: {
          participant_email: "lilei@163.com",
          participant_alias: "李磊",
          participant_phone: "13888888888",
          participant: "lilei",
          participant_type_id: 1
        },
      gmt_modified: "2018-04-30 15:57:00",
      gmt_created: "2018-04-30 15:53:19",
      suggestion: "同意处理"
      },
      {
      state: {
        state_name: "新建中",
        state_id: 1
      },
      transition: {
        transition_name: "提交",
        transition_id: 1
      },
      ticket_id: 1,
      gmt_modified: "2018-04-30 15:52:35",
      gmt_created: "2018-04-10 17:39:33",
      suggestion: "请尽快处理，谢谢"
      }],
    page: 1,
    per_page: 10
    },
  code: 0
}
```

# 工单处理步骤记录
### URL
api/v1.0/tickets/{ticket_id}/flowsteps
### method
get
### 请求参数
无

### 返回数据
```
{
	"data": {
		"value": [{
			"state_id": 17,
			"state_flow_log_list": [],
			"order_id": 0,
			"state_name": "test11111"
		}, {
			"state_id": 18,
			"state_flow_log_list": [],
			"order_id": 0,
			"state_name": "2233222"
		}, {
			"state_id": 6,
			"state_flow_log_list": [{
				"gmt_created": "2018-05-15 07:16:38",
				"participant_info": {
					"participant_alias": "李磊",
					"participant_type_id": 1,
					"participant": "lilei",
					"participant_phone": "13888888888",
					"participant_email": "lilei@163.com"
				},
				"suggestion": "",
				"participant": "lilei",
				"state_id": 6,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "提交",
					"transition_id": 7
				},
				"id": 32,
				"intervene_type_id": 0
			}],
			"order_id": 1,
			"state_name": "发起人-新建中"
		}, {
			"state_id": 7,
			"state_flow_log_list": [{
				"gmt_created": "2018-05-15 07:20:40",
				"participant_info": {
					"participant_alias": "李磊",
					"participant_type_id": 1,
					"participant": "lilei",
					"participant_phone": "13888888888",
					"participant_email": "lilei@163.com"
				},
				"suggestion": "同意申请",
				"participant": "lilei",
				"state_id": 7,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 8
				},
				"id": 33,
				"intervene_type_id": 0
			}],
			"order_id": 2,
			"state_name": "发起人tl-审批中"
		}, {
			"state_id": 8,
			"state_flow_log_list": [{
				"gmt_created": "2018-05-16 06:42:00",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "接单处理",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "未知操作",
					"transition_id": 0
				},
				"id": 36,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 06:49:55",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 37,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 06:57:31",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "接单处理",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "未知操作",
					"transition_id": 0
				},
				"id": 38,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 06:57:36",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 39,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 06:58:41",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 40,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 07:01:53",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 41,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 07:03:34",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 43,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 07:04:45",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 45,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 07:31:29",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 47,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:21:00",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 49,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:24:03",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 51,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:24:44",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 53,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:33:26",
				"participant_info": {
					"participant_alias": "轨迹",
					"participant_type_id": 1,
					"participant": "guiji",
					"participant_phone": "13888888888",
					"participant_email": "guiji@163.com"
				},
				"suggestion": "同意",
				"participant": "guiji",
				"state_id": 8,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "同意",
					"transition_id": 9
				},
				"id": 55,
				"intervene_type_id": 0
			}],
			"order_id": 3,
			"state_name": "运维人员-审批中"
		}, {
			"state_id": 9,
			"state_flow_log_list": [{
				"gmt_created": "2018-05-16 07:01:54",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "False\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 42,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 07:03:34",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "False\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 44,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 07:04:45",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "False\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 46,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 07:31:29",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "lilei\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 48,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:21:00",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "lilei\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 50,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:24:03",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "lilei\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 52,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:24:44",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "lilei\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 54,
				"intervene_type_id": 0
			}, {
				"gmt_created": "2018-05-16 23:33:26",
				"participant_info": {
					"participant_phone": "",
					"participant_alias": "demo_script.py",
					"participant_email": "",
					"participant_type_id": 6,
					"participant": "demo_script.py"
				},
				"suggestion": "lilei\n",
				"participant": "demo_script.py",
				"state_id": 9,
				"participant_type_id": 6,
				"transition": {
					"transition_name": "脚本执行完成",
					"transition_id": 10
				},
				"id": 56,
				"intervene_type_id": 0
			}],
			"order_id": 4,
			"state_name": "授权脚本-自动执行中"
		}, {
			"state_id": 10,
			"state_flow_log_list": [{
				"gmt_created": "2018-05-17 06:45:58",
				"participant_info": {
					"participant_alias": "李磊",
					"participant_type_id": 1,
					"participant": "lilei",
					"participant_phone": "13888888888",
					"participant_email": "lilei@163.com"
				},
				"suggestion": "请处理",
				"participant": "lilei",
				"state_id": 10,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "转交操作",
					"transition_id": 0
				},
				"id": 57,
				"intervene_type_id": 1
			}, {
				"gmt_created": "2018-05-17 06:47:46",
				"participant_info": {
					"participant_alias": "张三",
					"participant_type_id": 1,
					"participant": "zhangsan",
					"participant_phone": "13888888888",
					"participant_email": "zhangsan@163.com"
				},
				"suggestion": "请协助处理",
				"participant": "zhangsan",
				"state_id": 10,
				"participant_type_id": 1,
				"transition": {
					"transition_name": "加签操作",
					"transition_id": 0
				},
				"id": 58,
				"intervene_type_id": 2
			}],
			"order_id": 6,
			"state_name": "发起人-确认中"
		}, {
			"state_id": 11,
			"state_flow_log_list": [],
			"order_id": 7,
			"state_name": "结束"
		}]
	},
	"msg": "",
	"code": 0
}
```

# 修改工单状态
### URL
api/v1.0/tickets/{ticket_id}/state
### method
put
### 使用场景
用于干预工单的当前状态,可以直接将工单状态修改为指定状态，系统会根据state_id获取对应的处理人信息
### 请求参数
参数名 | 类型 | 必填 | 说明
---|---|---|---
state_id | int | 是 | 目标状态id
### 返回格式
```
{
  msg: "",
  data: "",
  code: 0
}
```

# 批量获取工单状态
### URL
api/v1.0/tickets/states
### method
get
### 请求参数
参数名 | 类型 | 必填 | 说明
---|---|---|---
ticket_ids | str | 是 | 工单ids,逗号隔开的字符串
### 返回数据
```
{
  code: 0,
  data: {
    1: {
        state_id: 1,
        state_name: "发起人-编辑中"
      },
    2: {
        state_id: 2,
        state_name: "新建中"
      }
  },
  msg: ""
}
```

# 修改工单字段的值
### URL
api/v1.0/tickets/{ticket_id}/fields
### method
patch
### 请求参数
参数名 | 类型 | 必填 | 说明
--- | --- | --- | ---
需要修改值的字段的key1 | varchar | 是 | 如需要修改标题，则就是title
需要修改值的字段的key2 | varchar | 是 | 如需要修改标题，则就是title
### 返回数据
```
{
  msg: "",
  data: "",
  code: 0
}
```

# 重试工单脚本
### 使用场景
当工单的脚本执行失败后，工单详情接口中获取的数据中script_run_last_result为false.这时可以调用此接口重新执行脚本
### URL
api/v1.0/tickets/{ticket_id}/retry_script
### method
post
### 请求参数
无

### 返回数据
```
{
  msg: "Ticket script retry start successful",
  data: "",
  code: 0
}
```


# 新增工单评论/注释
### URL
/api/v1.0/tickets/{ticket_id}/comments
### method
POST
### 请求参数

参数名 | 类型 | 必填 | 说明
---|---|---|---
suggestion | varchar | 否 | 处理意见（与处理工单类型，用户在处理工单的时候点击了按钮操作 可以填写附加的一些意见如:麻烦尽快处理）

### 返回数据
```
{
  code: 0,
  msg: "",
  data: ""
}
```