Your Name
|
c63f08732f
|
feat: 支持接单部门负责人编辑可接任务明细
|
2026-02-27 15:57:21 +08:00 |
|
Your Name
|
4697dec964
|
feat(openapi): 扩展数据分析多维度查询接口
|
2026-02-27 15:32:40 +08:00 |
|
Your Name
|
88803d6211
|
feat(openapi): 新增数据分析对外查询接口
|
2026-02-27 15:22:56 +08:00 |
|
Your Name
|
34ead8be3d
|
fix: align task hall export with selected month and full receiver dept list
|
2026-02-24 16:38:43 +08:00 |
|
Your Name
|
5dbbec8ac9
|
feat: include actual receiver dept list in task hall export
|
2026-02-24 16:27:15 +08:00 |
|
Your Name
|
52062b0d83
|
fix: ensure department score pool uses own record and auto-create
|
2026-02-24 13:39:09 +08:00 |
|
Your Name
|
c902f475c8
|
feat: add signed open API for task deletion
|
2026-02-23 21:35:46 +08:00 |
|
Your Name
|
fae8247132
|
fix: avoid non-persistent sortOrder in role list query
|
2026-02-22 18:48:44 +08:00 |
|
Your Name
|
cca9a4c2eb
|
fix: sync admin flag with role assignments
|
2026-02-22 18:44:28 +08:00 |
|
Your Name
|
e7554c746d
|
fix: align monthly completed metrics to completion time
|
2026-02-22 18:34:24 +08:00 |
|
Your Name
|
65d77a80fe
|
fix: avoid lambda capture issue in analytics month query
|
2026-02-22 18:29:11 +08:00 |
|
Your Name
|
4354d6d736
|
fix: include cross-month completions in designer monthly performance
|
2026-02-22 18:28:01 +08:00 |
|
Your Name
|
cc7435012b
|
fix(flow-query): show final operator for completed tasks
|
2026-02-09 17:46:14 +08:00 |
|
Your Name
|
1f4e312339
|
fix(task): allow dept-redirected item grabbing by target dept
|
2026-02-08 11:47:53 +08:00 |
|
Your Name
|
f484e17e73
|
feat(settings): add admin task-item dept redirect tool
|
2026-02-08 10:00:15 +08:00 |
|
Your Name
|
f041543f02
|
feat(settings): add offboarding record list and trace detail
|
2026-02-07 19:38:46 +08:00 |
|
Your Name
|
eae8cbb8e8
|
feat(settings): add safe user offboarding transfer workflow
|
2026-02-07 19:18:45 +08:00 |
|
Your Name
|
ba733cd47b
|
fix: prevent null ids from breaking task progress snapshot
|
2026-02-07 17:19:41 +08:00 |
|
Your Name
|
6a65a4a68a
|
fix: add json parser overload for task snapshot metrics
|
2026-02-07 10:52:56 +08:00 |
|
Your Name
|
e9e05613f5
|
feat: add task progress command center with snapshot analytics
|
2026-02-07 10:51:45 +08:00 |
|
Your Name
|
67b8cb7991
|
fix: 按完成时间归属月度积分
确保主任务/子任务的月度积分按完成时间入账,并补充修正脚本。
|
2026-02-04 18:55:48 +08:00 |
|
Your Name
|
96e8040af5
|
fix: 修复接单部门负责人驳回子任务组时的权限校验问题
|
2026-02-04 18:15:12 +08:00 |
|
Your Name
|
c592ba2234
|
feat: 添加可接任务页面盲盒模式功能
- 后端:在SystemConfigService添加task.blind_box_mode配置项
- 前端:在Settings.vue任务数据管理中添加盲盒模式开关
- 前端:在TaskHall.vue实现盲盒卡片显示
- 开启后普通部门成员看到的任务卡片变成盲盒样式
- 盲盒显示排队序号,隐藏所有任务信息
- 部门负责人和管理员不受盲盒模式影响
|
2026-02-02 15:25:08 +08:00 |
|
Your Name
|
47f028513f
|
fix: 子任务完成时立即发放积分到接单部门
问题:子任务完成后用户反馈没有结算积分
原因:submitCompletion方法中积分发放代码被注释掉了
修复:
- TaskItemService注入DeptMonthlyScoreService
- 子任务完成时调用addEarnedScore发放积分
- 同时判断是否延误并记录
|
2026-02-02 14:14:28 +08:00 |
|
Your Name
|
22169c73ed
|
fix: 子任务接单人名称始终从用户表实时获取
问题:子任务的receiverName存储了过期值,与实际receiver_id对应的用户名不一致
原因:任务转让时只更新了receiver_id,没有更新receiver_name字段
修复:fillSubTaskStats中始终根据receiver_id查询并刷新receiverName
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-01-31 18:55:58 +08:00 |
|
Your Name
|
59e8f23370
|
fix: 一级需求发起人可以评分和填写商品ID
问题:一级需求部门成员发布任务完结后无法评分和填写商品ID
原因:权限判断只检查publisherId,未考虑primaryPublisherId和detailCompleterId
修复:
- 前端:isTaskPublisher和canManageProducts函数增加对一级需求发起人和明细完善人的判断
- 后端:rateTask方法增加对primaryPublisherId和detailCompleterId的权限验证
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-01-31 18:32:27 +08:00 |
|
Your Name
|
01f0e3e3dc
|
fix: 修复任务大厅导出功能数据不完整的问题
问题:导出功能只导出主任务,但前端任务大厅显示的是子任务
修复:按子任务行导出,与前端显示一致
- 查询可接单的子任务(task_item表status=pending)
- 每个子任务导出一行数据
- 包含子任务的任务编号、积分、数量等信息
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-01-31 15:12:43 +08:00 |
|
Your Name
|
f9a689dc1e
|
fix: 修复createTask方法未设置createTime导致发起时间为空的问题
- 在createTask方法中添加createTime设置逻辑
- 确保所有创建的任务都有正确的创建时间
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-01-31 14:40:21 +08:00 |
|
Your Name
|
24671de157
|
feat: 为一级需求部门发起人开启草稿箱功能
- 前端:showDraftTab 增加 primary_demand 类型判断
- 后端:getMyPublishedTasks 增加 primaryPublisherId 查询条件
|
2026-01-30 16:45:20 +08:00 |
|
Your Name
|
6f03198833
|
feat: 设计师绩效排行榜添加积分明细弹窗功能
- 后端添加 /api/analytics/designer-score-details API
- 前端添加积分列点击事件,显示积分明细弹窗
- 显示子任务和主任务的完成积分列表
|
2026-01-30 15:38:48 +08:00 |
|
Your Name
|
4c28716ab5
|
fix: 子任务列表支持品牌、类目、平台等筛选条件
- 后端TaskItemController添加brandId/categoryId/platformId/taskSubType参数
- 后端TaskItemMapper添加selectAvailableItemsWithFilters方法
- 前端task.ts更新getAvailableTaskItems参数类型
|
2026-01-30 14:56:16 +08:00 |
|
Your Name
|
754b885e29
|
fix: 一级需求部门负责人可查看子部门成员发起的任务
- 后端: 对于primary_demand类型部门负责人,返回managedDepartments时包含子部门
- 前端: 支持primary_demand类型部门的任务查询
|
2026-01-30 14:25:27 +08:00 |
|
Your Name
|
8c590d4099
|
fix: 修复子任务指派时缺少claim_time和receiver_name的bug
问题:
- approveTaskItemGroup方法在审核指派子任务时,没有设置claim_time和receiver_name
- grabAssignedItem方法在指定任务接单时,没有更新receiver_name
修复:
- approveTaskItemGroup中增加item.setClaimTime(now)和item.setReceiverName(receiver.getRealName())
- grabAssignedItem SQL增加receiver_name字段更新
- grabAssignedItem方法签名增加receiverName参数
影响:修复后,通过审核指派或指定任务接单的子任务将有完整的接单记录,
确保后续完结任务等流程能正确执行
|
2026-01-30 11:32:44 +08:00 |
|
Your Name
|
72f23a782a
|
feat: 增强任务节点查询-展示流水线子任务的详细节点进度
- 为流水线任务添加每个节点的执行状态展示
- 显示节点完成情况(如 已完成 1/1 项)
- 显示接单人信息
- 支持待审批、进行中、等待中等状态
|
2026-01-30 11:08:48 +08:00 |
|
Your Name
|
11b94b8438
|
fix: 修复需求趋势图完成数量统计错误
- 完成数量改为按完成时间(complete_time)统计,而非创建时间
- 需求数量保持按创建时间(create_time)统计
|
2026-01-29 20:31:12 +08:00 |
|
Your Name
|
3b6f5f9659
|
fix: 修复文件下载时文件名乱码问题
- 上传时设置 Content-Disposition 头保存原始文件名
- 支持中文文件名的 URL 编码
|
2026-01-29 19:36:01 +08:00 |
|
Your Name
|
2ca9626e50
|
fix: 任务节点查询显示流水线任务当前待处理子任务的接单人
问题:流水线任务完成子任务1后,节点查询仍显示子任务1的接单人
修复:查询当前pending状态的子任务接单人,而不是主任务的receiver_id
|
2026-01-29 13:28:57 +08:00 |
|
Your Name
|
7332e48f0d
|
fix: 修复流水线子任务解锁逻辑
问题:当子任务状态是pending但is_locked=1时,完成前置任务后不会解锁
原因:代码只检查status='locked',没有检查is_locked字段
修复:同时检查is_locked=1且未完成的子任务
|
2026-01-29 13:19:54 +08:00 |
|
Your Name
|
186aef053b
|
feat: 优化排序逻辑 - 可抢单任务默认排前面
|
2026-01-29 12:08:07 +08:00 |
|
Your Name
|
bf2f720fe7
|
fix: 修复排队状态查询逻辑
当任务没有 receiver_dept_id 时,从 task_unlock_status 表中查询对应的部门ID
|
2026-01-29 11:50:12 +08:00 |
|
Your Name
|
7bb3c953ef
|
feat: 实现任务排队解锁机制
- 新增任务排队解锁功能,确保先发布的任务优先被处理
- 添加系统设置中的任务排队配置(启用开关、每日解锁数、补充解锁数)
- 新增 TaskUnlockStatus 实体和 Mapper
- 新增 TaskUnlockService 处理排队解锁逻辑
- 新增 TaskStatusNotificationService 发送钉钉通知
- 更新 TaskItemService 和 TaskItemController 支持排队状态
- 前端新增 TaskStatusBadge 组件显示排队/抢单状态
- 更新 TaskCard 和 TaskHall 支持排队状态展示
- 添加数据库迁移脚本 V15
|
2026-01-29 10:36:38 +08:00 |
|
Your Name
|
a8ecc8a11f
|
fix: 修复旧用户钉钉登录报重复键错误的问题
优化钉钉登录用户查找逻辑:
- 优先通过ding_user_id查找用户(处理旧账户数据)
- 其次通过unionId生成的email查找
- 解决非钉钉创建的用户使用钉钉登录时的重复键约束错误
|
2026-01-28 17:11:07 +08:00 |
|
Your Name
|
3d6c649388
|
fix: 修复需求部门审核备注信息不传递给后续节点的问题
1. TaskApprovalService: 在approvePrimaryTask中将审核备注保存到task.remark字段
2. TaskItem: 添加remark字段用于传递主任务备注信息
3. TaskItemController: 在enrichTaskItemsWithSubTasks中填充remark
4. TaskHall.vue: 在mapTaskItemToTask中映射remark字段
同时将190条历史审核备注从task_approval_log同步到task表
|
2026-01-27 21:32:14 +08:00 |
|
Your Name
|
1d66f0d7f5
|
修复子任务积分计算错误的bug
问题:当子任务包含多个任务类型时,updateTaskItemsQuantityAndScore方法
只用第一个任务类型的单价计算总积分,导致积分显示错误。
解决:
1. 先更新typeDetails JSON,再从更新后的typeDetails中重新计算总积分
2. 新增calculateTotalScoreFromTypeDetails方法从JSON中累加所有类型积分
3. 新增calculateTotalQuantityFromTypeDetails方法计算总数量
4. 同时更新平均单价以保持数据一致性
|
2026-01-27 20:57:28 +08:00 |
|
Your Name
|
2d08524f41
|
fix: 修复预先指定的任务无法更新进度的问题
问题描述:
- 预先指定设计师的任务(receiver_id已设置)但状态仍为pending
- 设计师尝试更新进度时报错"只能更新进行中的子任务"
- 因为设计师没有点击"接单"按钮将状态变为in_progress
解决方案:
- 在updateProgress方法中检测到这种情况时
- 自动将子任务状态从pending变为in_progress
- 同时计算deadline并更新主任务状态
- 让设计师可以直接更新进度,无需单独接单
|
2026-01-26 19:15:30 +08:00 |
|
Your Name
|
b49c9e411a
|
fix: 修复接单部门审核页面重新调整任务明细数量后无法生效的问题
问题描述:
- 接单部门负责人在审核页面调整任务明细数量时
- applyTaskUpdates方法只更新了主任务的taskTypeIds、quantity和score
- 但没有同步更新子任务(task_item)表中的quantity、totalScore和typeDetails字段
- 导致调整后的数量无法生效
解决方案:
- 在applyTaskUpdates方法中添加updateTaskItemsQuantityAndScore调用
- 新增updateTaskItemsQuantityAndScore方法:同步更新子任务的数量和积分
- 新增updateTypeDetailsJson方法:更新typeDetails JSON字段中的数量信息
|
2026-01-26 18:57:36 +08:00 |
|
Your Name
|
20e7ede2d5
|
fix: 修复一级需求任务明细完善后再次编辑导致重新启动一级审批的问题
问题描述:
- 一级需求任务在明细完善后被再次编辑时,如果approval_status为null
- 系统无法识别一级审批已通过,导致任务被重新设为pending_primary_approval
- 需求部门负责人需要再次审批并指定明细完善人
解决方案:
- 在updatePipelineTask方法中增强判断逻辑
- 通过查询审批日志(approve_primary记录)判断一级审批是否已通过
- 如果已通过,直接进入接单部门审核流程,跳过重复的一级审批
新增方法:
- TaskApprovalService.hasPrimaryApprovalPassed() - 检查一级审批是否已通过
|
2026-01-26 18:51:06 +08:00 |
|
Your Name
|
62a6357d1e
|
fix: 修复已完成任务查询SQL语法错误
- 移除子查询中的表别名前缀 t.
- MyBatis-Plus selectPage 不使用表别名
|
2026-01-26 18:35:09 +08:00 |
|
Your Name
|
18d36c8264
|
fix: 修复已提交审核但status仍为draft的任务不显示问题
- 修改 getMyPublishedTasks 查询逻辑
- 如果 approval_status 存在且不是 draft,即使 status 是 draft 也显示
|
2026-01-26 18:15:53 +08:00 |
|
Your Name
|
397f4b4040
|
feat: 为我的任务接口添加多维度筛选功能
- 后端:扩展 getMyPublishedTasks 支持 taskTypeId/brandId/categoryId/platformId/taskSubType/minScore/maxScore/timeRange/keyword 筛选
- 后端:扩展 getMyReceivedTasks 支持 taskTypeId/brandId/categoryId/platformId 筛选
- 后端:扩展 getMyDetailCompleterTasks 支持 taskTypeId/brandId/categoryId/platformId 筛选
- 后端:更新 Controller 接收所有筛选参数
- 前端:更新 MyTasksParams 接口添加筛选参数
- 前端:更新 loadPublishedTasks 传递完整筛选参数
|
2026-01-26 18:10:08 +08:00 |
|