fix: 一级需求部门任务流程修复 - 设置正确的任务状态和审核状态,添加通知发送

This commit is contained in:
Your Name 2026-01-19 23:09:52 +08:00
parent d412a7ad42
commit e50a659dd2
3 changed files with 44 additions and 5 deletions

View File

@ -720,7 +720,8 @@ public class TaskApprovalService {
boolean isAdmin = user != null && Integer.valueOf(1).equals(user.getIsAdmin());
LambdaQueryWrapper<Task> wrapper = new LambdaQueryWrapper<>();
wrapper.in(Task::getApprovalStatus, "pending_demand_approval", "pending_receiving_approval");
// 包括一级需求审核和明细完善状态
wrapper.in(Task::getApprovalStatus, "pending_primary_approval", "pending_detail_completion", "pending_demand_approval", "pending_receiving_approval");
// 非管理员只能看到分配给自己的待审核任务
if (!isAdmin) {

View File

@ -819,15 +819,15 @@ public class TaskService {
/**
* 获取所有待审核任务(处于审批流程中的任务)
* 包括:pending_demand_approval 和 pending_receiving_approval 状态的任务
* 包括:pending_primary_approval、pending_detail_completion、pending_demand_approval、pending_receiving_approval 状态的任务
* 非管理员只能看到分配给自己的待审核任务
*/
public IPage<Task> getAllPendingApprovalTasks(Long userId, Integer page, Integer pageSize, Long taskTypeId) {
Page<Task> pageParam = new Page<>(page, pageSize);
LambdaQueryWrapper<Task> wrapper = new LambdaQueryWrapper<>();
// 查询处于审批流程中的任务
wrapper.in(Task::getApprovalStatus, "pending_demand_approval", "pending_receiving_approval");
// 查询处于审批流程中的任务(包括一级需求审核和明细完善状态)
wrapper.in(Task::getApprovalStatus, "pending_primary_approval", "pending_detail_completion", "pending_demand_approval", "pending_receiving_approval");
// 检查用户是否是管理员
User user = userService.getUserById(userId);
@ -3395,6 +3395,8 @@ public class TaskService {
throw new BusinessException(ResultCode.PARAM_ERROR, "需求部门 [" + demandDept.getDeptName() + "] 未配置负责人,请联系管理员");
}
// 设置任务状态为待审核(pending_audit),区别于草稿状态
task.setStatus("pending_audit");
// 设置审核状态为待一级审核(由需求部门负责人审核)
task.setApprovalStatus("pending_primary_approval");
task.setCurrentApproverId(demandDept.getLeaderId());
@ -3402,6 +3404,29 @@ public class TaskService {
log.info("一级需求任务已设置待审核状态,品牌={}, 路由到需求部门={}, 负责人={}",
brandId, demandDept.getDeptName(), demandDept.getLeaderId());
// 发送通知给需求部门负责人
try {
User primaryPublisher = userService.getUserById(task.getPrimaryPublisherId());
Department primaryDept = departmentService.getDepartmentById(task.getPrimaryPublisherDeptId());
Notification notification = new Notification();
notification.setReceiverId(demandDept.getLeaderId());
notification.setTitle("新的一级需求任务待审核");
notification.setContent(String.format("[%s-%s] 发起了新的一级需求任务 [%s],请审核并指定完善人",
primaryDept != null ? primaryDept.getDeptName() : "未知部门",
primaryPublisher != null ? primaryPublisher.getRealName() : "未知用户",
task.getTitle()));
notification.setNotificationType("PRIMARY_TASK_APPROVAL");
notification.setRelatedType("task");
notification.setRelatedId(task.getId());
notification.setPriority(2); // 高优先级
notification.setPushDingtalk(1); // 推送到钉钉
notificationService.sendNotification(notification);
log.info("已发送一级需求审核通知给需求部门负责人: {}", demandDept.getLeaderId());
} catch (Exception e) {
log.error("发送一级需求审核通知失败", e);
}
}
/**

View File

@ -2722,8 +2722,10 @@ const reviewSortOptions = [
// 待审核任务 - 状态选项
const reviewStatusOptions = [
{ value: '', label: '全部待审核' },
{ value: 'pending_primary_approval', label: '待一级审核' },
{ value: 'pending_demand_approval', label: '待需求审核' },
{ value: 'pending_receiving_approval', label: '待接单审核' }
{ value: 'pending_receiving_approval', label: '待接单审核' },
{ value: 'pending_detail_completion', label: '待完善明细' }
]
// 进行中任务 - 排序选项
@ -3497,6 +3499,8 @@ const loadPendingApprovalTasks = async () => {
// 获取审核状态颜色
const getApprovalStatusColor = (status: string) => {
const colorMap: Record<string, string> = {
'pending_primary_approval': 'purple',
'pending_detail_completion': 'cyan',
'pending_demand_approval': 'orange',
'pending_receiving_approval': 'blue',
'approved': 'green',
@ -3509,6 +3513,8 @@ const getApprovalStatusColor = (status: string) => {
// 获取审核状态文本
const getApprovalStatusText = (status: string) => {
const textMap: Record<string, string> = {
'pending_primary_approval': '一级需求待审核',
'pending_detail_completion': '待完善明细',
'pending_demand_approval': '需求部门待审核',
'pending_receiving_approval': '接单部门待审核',
'approved': '已通过',
@ -5608,6 +5614,12 @@ const getTaskStatusText = (status: string, task?: any) => {
}
// 3. 检查是否正在审核中
if (task.approvalStatus === 'pending_primary_approval') {
return '待一级审核'
}
if (task.approvalStatus === 'pending_detail_completion') {
return '待完善明细'
}
if (task.approvalStatus === 'pending_demand_approval') {
return '待部门审核'
}
@ -5636,6 +5648,7 @@ const getTaskStatusText = (status: string, task?: any) => {
const statusMap: Record<string, string> = {
'pending': '待接单',
'pending_audit': '待审核',
'in_progress': '进行中',
'review': '待审核',
'completed': '已完成',