不灭的焱

革命尚未成功,同志仍须努力 Trae下载

作者:AlbertWen  添加时间:2026-08-16 00:32:44  修改时间:2026-08-23 04:45:38  分类:04.运维体系  编辑

目录

可以,osTicket 原生就支持这么配置,而且不需要改数据库或代码

官方文档明确说明:Ticket Status 的名称可以任意定义,但底层 State 设置为 OpenClosed。配置入口是:

Admin Panel → Manage → Lists → Ticket Statuses。(docs.osticket.com)

具体操作:

  1. 登录 osTicket 管理后台,切换到 Admin Panel(管理面板)

  2. 进入 Manage → Lists

  3. 找到系统内置列表 Ticket Statuses(工单状态)

  4. 编辑“已解决(Resolved)”:

    • 打开该状态;
    • 进入 Properties(属性)
    • State 设置为 Closed
    • 根据需要配置“用户回复时是否允许重新打开”以及“重新打开后变成哪个 Open 状态”。当 State 选择 Closed 后,这些额外配置项才会出现。(docs.osticket.com)
  5. 再编辑“已关闭(Closed)”,同样把 State 设置为 Closed。(docs.osticket.com)

最终可以这样设计:

显示状态 State 建议含义
新建 Open 尚未处理
处理中 Open 运维正在处理
等待用户 Open 等待用户反馈
已解决 Closed 技术问题已经解决
已关闭 Closed 工单最终归档关闭

也就是:

新建            state = Open
   ↓
处理中          state = Open
   ↓
已解决          state = Closed
   ↓
已关闭          state = Closed

官方文档也明确说明,自定义 Ticket Status 可以叫任何名字,但底层状态就是 Open/Closed;Closed 状态还可以配置用户回复是否重新打开工单。 (docs.osticket.com)

不过这里有一个很重要的业务设计问题:如果你把“已解决”和“已关闭”都设成 Closed,那么从 osTicket 的核心逻辑来看:

已解决
   │
   ├── 对 osTicket:已经是关闭类工单
   │
   ▼
已关闭
   │
   └── 对 osTicket:还是关闭类工单

因此它们主要是业务状态上的区别,而不是 Open/Closed 生命周期上的区别。这两个状态都会被视为关闭状态,Closed 状态也只有具备“关闭工单”权限的 Agent 才能使用。(docs.osticket.com)

我更推荐你这样配置

如果你的业务流程是:

运维处理完 → 标记已解决 → 用户确认 → 最终关闭

那么建议:

新建          Open
处理中        Open
等待用户      Open

已解决        Closed
已关闭        Closed

其中再做细分:

已解决

State:Closed
允许用户回复重新打开:是
重新打开状态:处理中 / Open

适合这种场景:

运维:问题已经处理好了
↓
状态:已解决

用户:还是不行
↓
自动重新打开
↓
状态:处理中

已关闭

State:Closed
允许用户回复重新打开:否

适合:

问题已解决
↓
用户确认 / 超过确认期限
↓
已关闭
↓
流程彻底结束

这样“已解决”和“已关闭”虽然底层都是 Closed,但业务含义非常清晰。

但如果你准备做“解决时间”统计,要特别注意

你前面问的处理工时恰好会受到这个设计影响。

你真正想要的可能是:

2026-08-15 09:00  创建
        ↓
2026-08-15 09:10  处理中
        ↓
2026-08-15 11:00  已解决
        ↓
2026-08-16 09:00  已关闭

管理报表应该分别得到:

首次响应时间:10 分钟

解决时长:
09:00 → 11:00
= 2 小时

解决后等待确认:
11:00 → 次日09:00
= 22 小时

完整工单生命周期:
09:00 → 次日09:00
= 24 小时

osTicket 原生 ost_ticket 并没有同时给你 resolved_timefinal_closed_time 两个独立字段

所以如果你下一步准备基于 osTicket 做报表,我建议你的最终状态模型直接设计成:

新建       Open
处理中     Open
待处理     Open
等待用户   Open
已解决     Closed
已关闭     Closed

然后额外记录:

resolved_time
closed_time

或者更推荐做一张工单状态变更历史表,这样以后“解决时长、关闭时长、各状态停留时长、人员处理效率、SLA”等统计都会非常好做。这个设计比单独依赖 ost_ticket.closed 更稳。