71 Commits

Author SHA1 Message Date
Your Name
47f028513f fix: 子任务完成时立即发放积分到接单部门
问题:子任务完成后用户反馈没有结算积分
原因:submitCompletion方法中积分发放代码被注释掉了
修复:
- TaskItemService注入DeptMonthlyScoreService
- 子任务完成时调用addEarnedScore发放积分
- 同时判断是否延误并记录
2026-02-02 14:14:28 +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
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
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
2d08524f41 fix: 修复预先指定的任务无法更新进度的问题
问题描述:
- 预先指定设计师的任务(receiver_id已设置)但状态仍为pending
- 设计师尝试更新进度时报错"只能更新进行中的子任务"
- 因为设计师没有点击"接单"按钮将状态变为in_progress

解决方案:
- 在updateProgress方法中检测到这种情况时
- 自动将子任务状态从pending变为in_progress
- 同时计算deadline并更新主任务状态
- 让设计师可以直接更新进度,无需单独接单
2026-01-26 19:15:30 +08:00
Your Name
7d9ef13125 修复:添加ArrayList全限定名 2026-01-24 11:46:31 +08:00
Your Name
93c1d58f7c 修复:流水线任务第二节点预先指定的设计师现在会收到解锁通知
问题:当流水线任务(如建模+美工)的第一个节点完成后,如果第二个节点已预先指定了设计师,
该设计师不会收到通知,导致不知道任务已解锁。

修复:在子任务解锁逻辑中,区分处理已预先指定设计师和未指定设计师的子任务:
1. 已预先指定设计师的子任务:直接设为待接单状态(pending),并立即通知该设计师
2. 未指定设计师的子任务:设为待审核状态(pending_approval),通知接单部门负责人审核分配
2026-01-24 11:45:24 +08:00
Your Name
d20b5fc989 修复:子任务组审核通过后钉钉通知显示完整任务明细
问题:当子任务组逐个审核通过时,钉钉通知只显示当前审核通过的这一组子任务的积分(如46分),
而任务卡片显示的是所有子任务组的汇总积分(如59.30分),导致数据不一致。

修复:在 TaskItemService.approveTaskItemGroup 发送通知时,
获取该任务的所有子任务组明细,而不是只显示当前审核的这一组,
确保通知中的积分与任务卡片保持一致。
2026-01-24 11:38:17 +08:00
Your Name
a41553fe88 一级需求任务:补充各节点对一级发起人的通知
补充以下节点的一级发起人通知:
1. 子任务被接单 - 同时通知一级发起人
2. 子任务进度更新 - 同时通知一级发起人
3. 流水线任务全部完成 - 同时通知一级发起人
4. 子任务组审核通过并指派 - 通知一级发起人
5. 需求部门审批通过 - 通知一级发起人审核进度
6. 需求部门审批驳回 - 同时通知一级发起人
7. 接单部门审批通过 - 通知一级发起人任务已发布
8. 接单部门审批驳回 - 同时通知一级发起人

确保一级需求发起人能够全程跟踪任务状态变化
2026-01-24 11:34:19 +08:00
Your Name
dc2cb78b26 修复:子任务组审核时自动识别预先指定的接收人
问题:在明细完善阶段预先指定了设计师的子任务,审核通过后没有自动指派给该设计师,
而是变成 pending 状态等待抢单,导致设计师没有收到钉钉个人通知。

修复:在 approveTaskItemGroup 方法中,优先检查子任务是否已预先指定了接收人,
如果有且审核人没有重新指定其他人,则自动使用预先指定的接收人。
2026-01-24 11:29:10 +08:00
Your Name
4a6813a7fe 修复:接单部门审核通过后更新主任务状态为approved/pending 2026-01-23 14:06:29 +08:00
Your Name
f7596ae7cb 修复:一级需求任务的发起人显示为明细完善人,而不是一级需求部门发起人 2026-01-23 11:55:58 +08:00
Your Name
f4d5aab530 修复:子任务组卡片显示一级需求部门发起人信息 2026-01-23 11:50:34 +08:00
Your Name
9163424020 fix: 修复指定任务模式下被指定的设计师无法抢单的问题 2026-01-19 15:20:59 +08:00
Your Name
172d1b1cde fix: 修复接单部门筛选支持部门层级
当用户选择父部门筛选时,同时匹配该部门及其所有子部门
- TaskService.getTaskHall 支持部门层级筛选
- TaskItemService.getAvailableItems 支持部门层级筛选
2026-01-16 17:10:54 +08:00
Your Name
ff371a6665 fix: 修复可接任务筛选接单部门时子任务未正确过滤的问题
1. TaskItemController 增加 filterDeptId 参数
2. TaskItemService 增加按接单部门筛选逻辑
3. TaskItemMapper 增加 selectAvailableItemsByTaskTypes 方法
2026-01-16 16:58:16 +08:00
Your Name
369456a6c6 fix: 修复指派任务和子任务组审核时未设置deadline的问题 2026-01-15 18:44:32 +08:00
Your Name
3922d3653b feat: 所有页面积分显示支持小数点后两位
- Analytics.vue: 设计师绩效、用户需求、扣分明细、CSV导出
- DesignerHall.vue: 设计师卡片累计积分
- TaskHall.vue: 任务卡片积分、typeDetails积分
- LeaderWorkbench.vue: 任务积分
- MyTasks.vue: 任务积分
- CreateTask.vue: 预估积分、任务类型积分
- RewardRecords.vue: 累计积分、奖励积分
- Goals.vue: 奖励积分
- IncentiveCenter.vue: 用户积分、奖励积分
- Contests.vue: 竞赛得分、奖励积分
- CheckIn.vue: 历史奖励积分
- ScorePoolManagement.vue: 积分变动
- Achievements.vue: 奖励积分
2026-01-15 15:39:32 +08:00
Your Name
9599cf74a8 修复顺序流水线同部门内子任务并行逻辑
1. 修改TaskService创建子任务时的状态设置:
   - 第一个部门的所有子任务都设为pending(可接单)
   - 其他部门的子任务设为locked(锁定)

2. 修改TaskItemService子任务完成后的解锁逻辑:
   - 基于部门序号(从itemNo解析)而不是groupNo
   - 当前部门的所有子任务完成后,才解锁下一个部门的所有子任务
   - 同一部门内的子任务并行执行

3. 新增parseDeptIndexFromItemNo辅助方法:
   - 从子任务编号解析部门序号
   - 支持新格式(TASK...-01-02)和旧格式兼容
2026-01-14 18:18:52 +08:00
Your Name
7390289f1a feat: 实现子任务deadline后端计算和存储功能
- 添加task_item表的deadline字段(数据库迁移V13)
- 在TaskItem实体类中添加deadline字段
- 更新TaskItemMapper.grabItem()方法支持deadline参数
- 在TaskItemService.grabItem()中使用WorkHoursCalculator计算deadline
- 更新前端TaskItem接口添加deadline字段
- 修改前端getSubTaskDeadline函数直接使用后端返回的deadline
2026-01-14 12:02:50 +08:00
Your Name
124e18ab78 feat: 实施工作时间配置系统
- 添加工作时间配置数据库迁移(V12__add_work_hours_config.sql)
- 创建WorkHoursCalculator工具类用于工作时间计算
- 添加工作时间配置API接口(SystemConfigController)
- 修改后端服务使用动态工作时间(TaskService、TaskItemService、TaskApprovalService、AnalyticsService)
- 在Settings.vue中添加工作时间配置UI
- 修改前端时效格式化函数使用动态工作时长(TaskHall.vue、CreateTask.vue)
- 所有时间计算(截止时间、延误扣分、时效格式化)现在使用配置的工作时间,替换硬编码的8小时
2026-01-14 11:40:43 +08:00
Your Name
4ee87abe73 fix: 统一钉钉通知工时格式化标准为8小时=1天 2026-01-13 18:04:27 +08:00
Your Name
a88d077dda fix: 修复接单部门负责人驳回任务时,任务未指定接单部门的权限验证问题 2026-01-12 15:14:05 +08:00
Your Name
ac7a114deb fix: 子任务进度变化时同步更新主任务进度 2026-01-08 10:19:34 +08:00
Your Name
69815945a1 fix: 设计师可看到直接分配的普通任务 + 审核卡片显示加急图标 2026-01-08 09:36:08 +08:00
Your Name
70bf51d9fd fix: 子部门继承父部门的接单权限 2026-01-08 09:13:11 +08:00
Your Name
dfa8ae63cb fix: 第二轮子任务组钉钉通知模板与第一轮完全一致 2026-01-07 20:50:34 +08:00
Your Name
b42a0f51fa fix: 统一第二轮子任务组发布的钉钉通知模板与第一轮格式一致 2026-01-07 20:47:09 +08:00
Your Name
a56f504871 fix: 使用taskSubType显示一级分类(新品/优化/改图等) 2026-01-07 20:13:42 +08:00
Your Name
5c1579fa3f fix: 子任务组显示主任务的一级分类(新品/优化)而不是子任务的具体类型 2026-01-07 20:06:49 +08:00
Your Name
6290a35dff fix: 子任务组使用子任务自己的typeDetails而不是主任务的 2026-01-07 20:04:21 +08:00
Your Name
0dd78c3bf8 fix: 让子任务组审核卡片显示与主任务相同的流程阶段标签
1. 后端添加审核人信息(设计负责人名称)到子任务组数据
2. 前端添加getProcessStageForReview函数支持子任务组
3. 子任务组现在显示'设计负责人:xxx审核'标签
2026-01-07 19:45:04 +08:00
Your Name
681e1dcc9a fix: 修复编译错误 - 添加UserMapper注入,修复字段名getTotalScore 2026-01-07 19:37:09 +08:00
Your Name
d94395e07e fix: 完善子任务组审核卡片,显示与主任务相同的完整信息
1. 后端增强getPendingApprovalGroups返回完整数据:
   - 品牌、类目、平台、SPU信息
   - 发起人姓名和部门
   - 任务类型明细
   - 预览图和附件
   - 计算子任务组总积分
   - 前置任务的素材下载链接(流水线继承)

2. 前端修改:
   - 子任务组使用与主任务相同的数据结构
   - 卡片显示完整的任务信息
   - 显示前置素材下载按钮
2026-01-07 19:34:28 +08:00
Your Name
c2938dee89 fix: 合并待审核页面,将子任务组显示在待审核任务标签页中
1. 删除单独的'待我审核'标签页
2. 修改loadReviewTasks同时加载主任务和子任务组
3. 修改卡片模板支持显示子任务组
4. 添加子任务组的审核和驳回方法
5. 更新待审核任务数量统计
2026-01-07 17:37:04 +08:00
Your Name
146f439fd5 fix: 修正 DemandType 字段名 typeName -> name 2026-01-07 17:13:55 +08:00
Your Name
8198f7d497 debug: 添加详细日志调试待审核子任务组获取问题 2026-01-07 17:12:31 +08:00
Your Name
4ceacdf327 fix: 修复流水线子任务组在待审核列表中不显示的问题
1. getPendingApprovalGroups: 使用任务类型配置的allowed_dept_ids判断权限
2. approveReceivingLevel: 支持任务类型配置的部门权限验证
3. 兼容主任务receiver_dept_id的旧逻辑
2026-01-07 16:51:56 +08:00
Your Name
6d00eb4ba1 fix: 添加缺失的Set和HashSet导入 2026-01-07 16:46:50 +08:00
Your Name
855154977a fix: 修复TaskTypeMapper不存在的问题 - 使用DemandTypeMapper 2026-01-07 16:45:51 +08:00
Your Name
bd98e4a3ab fix: 修复流水线子任务完成后未通知下一组部门负责人的问题
1. 使用子任务的任务类型配置(allowed_dept_ids)获取目标部门
2. 递归向上查找父级类型的部门配置
3. 发送通知给所有相关部门负责人
2026-01-07 16:43:59 +08:00
Your Name
9b849ccb40 feat: 优化子任务进度显示为时间线样式 + 修复需求者进行中任务显示
1. 将子任务进度从标签式改为时间线流程图样式,更直观展示任务流转进度
2. 修复需求部门用户在"进行中任务"页面看不到自己发起的任务的问题
3. 添加子任务状态辅助函数(状态类名、标签、状态文本)
4. 在MyTasksParams中添加keyword参数支持搜索
2026-01-07 15:38:59 +08:00
Your Name
552c9900f0 fix: 修复部门负责人看任务卡片逻辑 - 通过leader_id查找负责的部门
1. 通过sys_dept.leader_id查找用户负责的所有部门
2. 支持一个人是多个部门的负责人
3. 支持同时是需求部门和接单部门的负责人
2026-01-07 15:19:09 +08:00
Your Name
0ef762baa4 fix: 修复审核弹窗任务类型显示和部门负责人看任务卡片问题
1. 审核弹窗任务类型显示增加完整路径(父级名称)和单位积分
2. 修复级联选择器弹窗为深色主题
3. 添加task_item.receiver_dept_id字段支持部门负责人查看部门成员任务
4. 更新grabItem和分配任务逻辑设置receiver_dept_id
2026-01-07 15:02:29 +08:00
Your Name
54438a9910 功能:1.指定设计师发送钉钉个人通知 2.部门负责人可查看部门内所有任务 2026-01-07 13:00:19 +08:00
Your Name
a520890284 fix: 完结任务必须先配置并启用第三方素材API 2026-01-07 00:31:32 +08:00
Your Name
724c1b8b8f fix: 修复完结任务时不再强制要求交付路径 2026-01-07 00:28:03 +08:00