15 KiB
系统更新通知
更新日期: 2026年1月22日
📋 更新概览
本次更新主要包含以下内容:
- ✨ 扩展任务搜索功能,支持搜索任务卡片的所有信息
- 🔒 一级需求部门发起任务必须上传预览图
- 🎨 任务卡片增加一级需求人显示,优化长名字显示
- 🐛 修复流水线任务异常扣分问题
- 🐛 修复需求部门看不到一级需求任务的问题
- 🐛 修复需求部门负责人无法驳回任务的问题
- 🐛 修复筛选功能搜索报错问题
- 🐛 修复 SQL 查询错误
✨ 新增功能
1. 扩展任务搜索功能
功能描述: 任务搜索功能现在支持搜索任务卡片的所有信息,不再仅限于任务标题和编号。
搜索范围包括:
- ✅ 任务标题 (
title) - ✅ 任务编号 (
task_no) - ✅ SPU信息 (
spu_info) - ✅ 备注信息 (
remark) - ✅ 产品条码 (
product_barcodes) - ✅ 发布人姓名 (
publisher_name) - ✅ 发布人部门名称 (
publisher_dept_name) - ✅ 品牌名称 (
brand_name) - ✅ 类目名称 (
category_name) - ✅ 平台名称 (
platform_name) - ✅ 任务类型名称 (
task_type_name) - ✅ 一级需求人姓名 (
primary_publisher_name) - ✅ 一级需求部门名称 (
primary_publisher_dept_name) - ✅ 需求部门发起人姓名 (
detail_completer_name) - ✅ 接收人姓名 (
receiver_name)
适用场景:
- 任务大厅搜索
- 进行中任务搜索
- 已完成任务搜索
- 子任务搜索
使用示例:
- 搜索品牌名称(如"卓禾")可以找到该品牌的所有任务
- 搜索发布人姓名可以找到该用户发布的所有任务
- 搜索一级需求人姓名可以找到该用户发起的一级需求任务
2. 一级需求部门必须上传预览图
功能描述: 一级需求部门用户发起任务时,系统强制要求上传预览图。
实现方式:
- 前端验证:表单验证规则中添加预览图必填验证
- 后端验证:创建任务时检查预览图是否上传
- 用户提示:预览图上传区域显示明确的必填提示
影响范围:
- 一级需求部门用户创建普通任务
- 一级需求部门用户创建流水线任务
用户体验:
- 如果未上传预览图,提交时会显示错误提示:"一级需求部门发起任务必须上传预览图"
- 预览图上传区域会显示红色警告图标和提示文字
3. 任务卡片增加一级需求人显示
功能描述: 对于一级需求部门发起的任务,任务卡片现在会显示一级需求人和需求部门发起人的信息,让任务来源更加清晰。
显示内容:
- ✅ 一级需求人:显示一级需求部门发起人的姓名和部门名称(橙色标识)
- ✅ 需求部门发起人:显示补充任务明细的需求部门成员姓名(绿色标识)
- ✅ 发布人:显示任务的发布人姓名(默认绿色标识)
显示逻辑:
- 如果是一级需求任务(
isPrimaryTask=1):- 显示"一级需求人"(如果存在)
- 显示"需求部门发起人"(如果存在,即已补充明细)
- 否则显示"发布人"
- 如果是普通任务:
- 显示"发布人"
优化内容:
- 一级需求人名字超过 8 个字符时显示省略号
- 需求部门发起人名字超过 8 个字符时显示省略号
- 发布人名字超过 8 个字符时显示省略号
- 鼠标悬停时通过 Tooltip 显示完整信息(包含部门名称)
显示效果:
- 一级需求任务示例:
一级需求人: 张三... (运营中心...)(橙色)需求部门发起人: 李四...(绿色)
- 悬停提示:
一级需求人: 张三丰 (运营中心A-事业二部)
适用位置:
- 任务大厅任务卡片
- 进行中任务卡片
- 已完成任务卡片
- 我发起的任务卡片
- 待审核任务卡片
- 草稿箱任务卡片
- 子任务卡片
🐛 问题修复
1. 修复流水线任务异常扣分问题
问题描述:
- 流水线任务的子任务按时完成后,主任务仍然被系统检查进度更新情况
- 导致已完成子任务的用户被错误扣分
- 影响范围:所有流水线任务的接收人
问题原因:
- 进度检查服务 (
ProgressCheckService) 在检查任务进度时,没有区分流水线任务的主任务和子任务 - 流水线任务的主任务 (
is_pipeline=1) 在子任务完成后,主任务状态仍为in_progress,但主任务本身不需要更新进度 - 系统错误地对主任务进行了进度检查,导致已完成子任务的用户被扣分
解决方案:
- 修改
ProgressCheckService.checkDailyProgressUpdate()方法 - 在进度检查时排除流水线任务的主任务(
is_pipeline=1) - 只对流水线任务的子任务进行进度检查
- 清理了历史错误扣分记录(共 21 条)
修复效果:
- ✅ 流水线任务的主任务不再被检查进度
- ✅ 已完成子任务的用户不会再被错误扣分
- ✅ 历史错误扣分记录已清理
影响用户:
- 所有流水线任务的接收人
- 特别是已完成子任务但主任务仍在进行中的用户
2. 修复需求部门看不到一级需求任务的问题
问题描述:
- 需求部门负责人审核通过一级需求部门的任务后,在"进行中任务"中看不到该任务
- 需求部门成员补充完任务明细并发布后,在"进行中任务"中也看不到该任务
- 影响范围:所有需求部门负责人和成员
问题原因:
- 一级需求部门的任务在需求部门负责人审核通过后,状态变为
pending_detail_completion(待明细完善) - 此时任务的
publisher_dept_id是一级需求部门的 ID,不是需求部门的 ID - 需求部门负责人的"进行中任务"查询只按
publisherDeptIds过滤,无法找到这些任务 - 需求部门成员的"进行中任务"查询只查询
role='publisher'的任务,无法找到作为detail_completer的任务
解决方案:
- 后端修改:
- 在
TaskController.getTaskList中添加includeDetailCompleterDeptIds参数 - 在
TaskService.getTaskList中添加按明细完善人部门查询的逻辑 - 在
TaskController.getMyTasks中添加role='detail_completer'支持 - 新增
TaskService.getMyDetailCompleterTasks方法,查询用户作为明细完善人的任务
- 在
- 前端修改:
- 需求部门负责人查看"进行中任务"时,传递
includeDetailCompleterDeptIds参数 - 需求部门成员查看"进行中任务"时,同时查询
publisher和detail_completer角色的任务并合并结果
- 需求部门负责人查看"进行中任务"时,传递
修复效果:
- ✅ 需求部门负责人可以在"进行中任务"中看到已审核通过的一级需求任务
- ✅ 需求部门成员可以在"进行中任务"中看到自己作为明细完善人的任务
- ✅ 任务状态流转更加清晰,用户能正确跟踪任务进度
影响用户:
- 所有需求部门负责人
- 所有需求部门成员
3. 修复需求部门负责人无法驳回任务的问题
问题描述:
- 需求部门负责人在驳回一级需求部门的任务时,系统报错:"需求部门负责人不存在"
- 导致需求部门负责人无法正常驳回任务
- 影响范围:所有需求部门负责人
问题原因:
- 一级需求部门的任务被驳回时,系统尝试将任务返回给需求部门的负责人
- 但某些一级需求部门(
dept_type='primary_demand')可能没有设置leader_id - 当
TaskApprovalService.rejectByReceivingLeader方法检查demandDept.getLeaderId()时,如果为null,会抛出异常
解决方案:
- 修改
TaskApprovalService.rejectByReceivingLeader方法 - 当需求部门的
leader_id为null时,不再抛出异常 - 改为将任务的
currentApproverId设置为任务的publisherId,将任务返回给原始发起人 - 这样即使需求部门没有负责人,任务也能正常被驳回并返回给发起人
修复效果:
- ✅ 需求部门负责人可以正常驳回一级需求部门的任务
- ✅ 即使需求部门没有负责人,任务也能正常被驳回
- ✅ 任务会正确返回给原始发起人
影响用户:
- 所有需求部门负责人
- 特别是需要驳回一级需求部门任务的负责人
4. 修复筛选功能搜索报错
问题描述:
- 错误信息:
TypeError: Assignment to constant variable - 触发场景:在任务大厅、进行中任务、已完成任务等页面使用筛选功能时
问题原因:
- 使用
v-model绑定reactive对象时,Vue 尝试重新赋值整个对象 reactive对象不能直接重新赋值,导致报错
解决方案:
- 将所有
TaskFilters组件的v-model改为:model-value和@update:model-value - 在事件处理函数中使用
Object.assign更新对象属性,而不是重新赋值整个对象
修复的筛选器:
- ✅ 可接任务筛选 (
filters) - ✅ 待审核任务筛选 (
reviewFilters) - ✅ 进行中任务筛选 (
inProgressFilters) - ✅ 已完成任务筛选 (
completedFilters) - ✅ 我发起的任务筛选 (
publishedFilters) - ✅ 草稿箱筛选 (
draftsFilters)
4. 修复 SQL 查询错误
问题描述:
- 错误信息:
Unknown column 't.description' in 'where clause' - 触发场景:使用搜索功能时
问题原因:
- 在扩展搜索功能时,SQL 查询中引用了
task表中不存在的description字段
解决方案:
- 从所有 SQL 查询中移除了对
t.description字段的引用 - 修复了以下文件中的查询:
TaskMapper.java-selectTaskHall和selectTaskHallByDept方法TaskItemMapper.java- 所有子任务查询方法TaskService.java-getCompletedTasks方法
📝 技术细节
前端修改
文件: frontend/src/views/TaskHall.vue
- 导入
Tooltip组件 - 添加
truncateText辅助函数 - 修改所有显示需求人名字的地方,添加 Tooltip 和截断显示
- 修复
v-model绑定问题,改用:model-value和@update:model-value - 修复需求部门看不到一级需求任务:
- 需求部门负责人查看"进行中任务"时,添加
includeDetailCompleterDeptIds参数 - 需求部门成员查看"进行中任务"时,同时查询
publisher和detail_completer角色的任务并合并结果 - 更新
loadDashboardStats统计逻辑,包含detail_completer角色的任务
- 需求部门负责人查看"进行中任务"时,添加
文件: frontend/src/views/CreateTask.vue
- 添加预览图必填验证规则
- 在提交时添加额外的预览图验证
- 更新预览图上传区域的提示信息
文件: frontend/src/api/task.ts
- 在
MyTasksParams接口中添加detail_completer作为有效的role值 - 在
getTasks函数中添加includeDetailCompleterDeptIds参数
后端修改
文件: backend/src/main/java/com/designhub/mapper/TaskMapper.java
- 扩展
selectTaskHall和selectTaskHallByDept的搜索条件 - 添加明细完善人、接收人、任务类型的关联查询
- 移除不存在的
description字段引用
文件: backend/src/main/java/com/designhub/mapper/TaskItemMapper.java
- 扩展所有子任务查询方法的搜索条件
- 移除不存在的
description字段引用
文件: backend/src/main/java/com/designhub/service/TaskService.java
- 扩展
getCompletedTasks方法的搜索条件 - 在
createTask和createPipelineTask方法中添加预览图必填验证 - 移除不存在的
description字段引用 - 修复需求部门看不到一级需求任务:
- 在
getTaskList方法中添加includeDetailCompleterDeptIds参数支持 - 添加按明细完善人部门查询的逻辑(支持一级需求任务)
- 在
getMyTasks方法中添加role='detail_completer'支持 - 新增
getMyDetailCompleterTasks方法,查询用户作为明细完善人的任务 - 在
fillTaskRelatedInfo方法中添加detailCompleterName的填充逻辑
- 在
文件: backend/src/main/java/com/designhub/controller/TaskController.java
- 修复需求部门看不到一级需求任务:
- 在
getTaskList接口中添加includeDetailCompleterDeptIds参数(逗号分隔的部门ID列表) - 在
getMyTasks接口中添加role='detail_completer'支持
- 在
文件: backend/src/main/java/com/designhub/service/ProgressCheckService.java
- 修复流水线任务异常扣分:
- 修改
checkDailyProgressUpdate方法,排除流水线任务的主任务(is_pipeline=1) - 只对流水线任务的子任务进行进度检查
- 修改
🎯 影响范围
用户影响
- ✅ 一级需求部门用户:发起任务时必须上传预览图
- ✅ 所有用户:搜索功能更强大,可以搜索更多字段
- ✅ 所有用户:任务卡片显示更美观,长名字不再影响布局
- ✅ 流水线任务接收人:不再被错误扣分,已完成子任务后不会被检查主任务进度
- ✅ 需求部门负责人:可以在"进行中任务"中看到已审核通过的一级需求任务
- ✅ 需求部门成员:可以在"进行中任务"中看到自己作为明细完善人的任务
功能影响
- ✅ 搜索功能:支持搜索任务卡片的所有信息
- ✅ 筛选功能:修复了搜索时的报错问题
- ✅ 任务创建:一级需求部门用户必须上传预览图
- ✅ 进度检查:流水线任务的主任务不再被检查进度,避免错误扣分
- ✅ 任务可见性:需求部门可以正确查看一级需求任务的进度
⚠️ 注意事项
-
一级需求部门用户:从本次更新开始,发起任务时必须上传预览图,否则无法提交任务。
-
搜索功能:搜索功能已扩展,现在可以搜索更多字段,但不再支持搜索
description字段(该字段在数据库中不存在)。 -
名字显示:任务卡片中的需求人名字如果超过 8 个字符会自动截断,鼠标悬停可查看完整信息。
-
流水线任务进度检查:流水线任务的主任务不再进行进度检查,只有子任务会被检查进度。已完成子任务的用户不会再被错误扣分。
-
一级需求任务可见性:
- 需求部门负责人审核通过一级需求任务后,可以在"进行中任务"中看到该任务
- 需求部门成员补充完任务明细并发布后,可以在"进行中任务"中看到该任务
- 任务状态为
pending_detail_completion(待明细完善)时,会显示在需求部门的"进行中任务"中
📞 问题反馈
如果在使用过程中遇到任何问题,请及时反馈:
- 系统异常
- 功能异常
- 用户体验问题
更新完成时间: 2026年1月22日 15:40
部署状态: ✅ 已部署到生产环境