fix: 修复三个问题

问题1:接单部门负责人审核缺少指派选项
- 已在之前修复handleApproveTask函数,接单部门负责人审核时会调用handleApproveTwoLevelTask
- 提供完整的审核选项(指派设计师/发布到大厅)

问题2:被驳回任务状态显示和编辑功能
- 修复状态显示:rejected显示"已驳回"(之前显示"已取消")
- 添加"重新编辑提交"按钮到被驳回的任务卡片
- 点击跳转到任务创建页面进行编辑
- 用户可以修改任务信息后重新提交审核

问题3:钉钉群通知调试改进
- 添加更详细的日志记录
- 在发送前后都记录日志
- 记录sendRobotMessage的返回值
- 方便排查通知发送失败的问题

改进内容:
1. 任务状态映射优化
   - rejected -> "已驳回"
   - cancelled -> "已取消"
   - 不再混淆这两种状态

2. 被驳回任务编辑流程
   - 任务卡片显示"重新编辑提交"按钮
   - 跳转到创建页面(带editId和mode参数)
   - 保留原有任务信息,允许修改后重新提交

3. 钉钉通知日志增强
   - "准备发送钉钉群通知"
   - "准备调用钉钉机器人发送消息"
   - "钉钉群通知发送成功/失败"
   - 详细的异常堆栈信息
This commit is contained in:
Your Name 2026-01-03 11:48:28 +08:00
parent fdda2e5878
commit 193810628a
2 changed files with 38 additions and 4 deletions

View File

@ -261,6 +261,7 @@ public class TaskApprovalService {
if (assignedReceiverId != null) {
log.info("任务【{}】已指定给设计师", task.getTitle());
} else {
log.info("任务【{}】已发布到任务大厅,准备发送钉钉群通知", task.getTitle());
// 任务发布到大厅,发送钉钉群机器人通知
try {
String title = "🎯 新任务发布";
@ -283,10 +284,15 @@ public class TaskApprovalService {
content.append("---\n\n");
content.append("💡 赶快去任务大厅抢单吧!");
dingTalkService.sendRobotMessage(title, content.toString());
log.info("任务【{}】已发布到任务大厅,已发送钉钉群通知", task.getTitle());
log.info("准备调用钉钉机器人发送消息,title={}", title);
boolean success = dingTalkService.sendRobotMessage(title, content.toString());
if (success) {
log.info("任务【{}】钉钉群通知发送成功", task.getTitle());
} else {
log.warn("任务【{}】钉钉群通知发送失败(返回false)", task.getTitle());
}
} catch (Exception e) {
log.error("发送钉钉群通知失败:taskId={}", taskId, e);
log.error("发送钉钉群通知异常:taskId={}, error={}", taskId, e.getMessage(), e);
// 通知发送失败不影响主流程
}
}

View File

@ -1567,6 +1567,18 @@
<span style="color: #ffffff;">截止: {{ formatDate(task.deadline) }}</span>
</div>
</div>
<!-- 被驳回任务的操作按钮 -->
<div v-if="task.status === 'rejected'" class="task-actions" style="margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(49, 240, 139, 0.2);">
<a-button
type="primary"
size="small"
@click.stop="handleEditRejectedTask(task)"
style="width: 100%;">
<Icon name="edit" size="sm" style="margin-right: 4px;" />
重新编辑提交
</a-button>
</div>
</div>
</div>
@ -2200,7 +2212,11 @@ const getProcessStage = (task: TaskOrSubTask): string => {
return '已完成'
}
if (task.status === 'rejected' || task.status === 'cancelled') {
if (task.status === 'rejected') {
return '已驳回'
}
if (task.status === 'cancelled') {
return '已取消'
}
@ -3270,6 +3286,18 @@ const handleUpdateProgress = (task: TaskOrSubTask) => {
}
// 完结任务(支持普通任务和子任务)
// 编辑被驳回的任务
const handleEditRejectedTask = (task: Task) => {
// 跳转到创建任务页面,并传入任务ID作为编辑标识
router.push({
path: '/tasks/create',
query: {
editId: task.id,
mode: 'edit'
}
})
}
const handleCompleteTask = (task: TaskOrSubTask) => {
let deliveryPath = ''
const isSubTask = task.isSubTask