工单
这篇解决什么
工单池、处理组、SLA、回复和审批单怎么拼在一起。读完能对上 oa_ticket_bill 和 oa_ticket_bill 流程 key,不要只改一张列表冒充整个客服台。
先开模块,见 OA 功能设计。工单是业务表单,代码 120。顶栏菜单是 工单管理 /ticket,实现仍在 yudao-module-oa。
示意图:提单走审批。分配进池 / 处理组。SLA 写截止时间。沟通落回复表。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 工单 | /oa/ticket-bill | ruoyi-office/yudao-module-oa/.../TicketBillController.java |
| 工单池 | /oa/ticket-pool | TicketPoolController.java |
| 处理组 | /oa/ticket-handler-group | TicketHandlerGroupController.java |
| SLA | /oa/ticket-sla-rule | TicketSlaRuleController.java |
| 回复 | /oa/ticket-reply | TicketReplyController.java |
| 前端 | 提单 list/info、池、组、SLA | ruoyi-office-vben/apps/web-antd/src/views/oa/ticket/ |
| 移动 | oa:ticket-bill:query 就能进详情 | bpm-menu-config.ts |
TicketBillServiceImpl 实现 FlowBillService。分配通知场景码 OA_TICKET_ASSIGN。
ticketStatus 是业务处理态,和 processStatus(草稿 / 审批中)分开。不要用流程状态冒充已受理。
SLA 规则按优先级等算出 responseDeadline / resolveDeadline,超时打 responseTimeout / resolveTimeout。改截止不要只改前端展示。
回复条数冗余在 replyCount。列表点进 info 再拉 /oa/ticket-reply。
创建页在 ticketbill/info。模型路径必须对 list / info。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
title / content / priority | 标题、正文、优先级 | TicketBillDO |
handlerGroupId / handlerId | 处理组与处理人 | 同上 |
responseDeadline | 响应截止 | 同上 |
ticketStatus | 业务状态 | 同上 |
池和单不是一张表
工单池页面看的是待分配视图,接口 /oa/ticket-pool。不要只查 oa_ticket_bill 的分页冒充池。
先配组和 SLA 再提单
没有处理组,分配通知没人收。没有 SLA 规则,超时常年是空,不是 Job 没跑。
@RequestMapping("/oa/ticket-bill")
public class TicketBillController { }
@TableName("oa_ticket_bill")
public class TicketBillDO extends BaseDO { }配置与操作
先配 处理组 和 SLA 规则,再在 /ticket 提单。ticketStatus 是业务处理态,和流程 processStatus 分开。工单池是 /oa/ticket-pool,不是再查一张分页冒充待分配。
创建页 ticketbill/info。分配通知场景码 OA_TICKET_ASSIGN。

本系统截图:工单管理 → 工单列表。顶栏入口是 /ticket。

本系统截图:工单 info。回复走 /oa/ticket-reply。
