Your Name
96da6c6673
feat: 任务完结状态优化 + 商品ID确认功能 + 子任务交付路径汇总
...
1. 需求方完结任务显示待填写ID状态,填完商品ID后显示已完结
2. 添加确认商品ID填写完成功能
3. 母卡片展示所有子任务的交付路径汇总
4. 流水线任务:子任务按顺序完成,自动发起下一个子任务审核
5. 母任务编号作为子任务编号前缀
6. 所有子任务完成后母任务才能完结
2026-01-05 14:21:03 +08:00
Your Name
344d26589c
feat: 任务发布类型配置控制 + 标题输入框只读
2026-01-05 14:01:24 +08:00
Your Name
41255e62b8
fix: 修复编译错误
...
- 添加 DemandTypeMapper 依赖注入
- 修复 User.getDeptId() 方法名
2026-01-05 12:00:18 +08:00
Your Name
2c713febc6
feat: 新增三个功能
...
1. 任务标题自动生成
- 根据SPU信息+平台+品牌+任务子类型+需求类型自动组合生成标题
- 添加watch监听相关字段变化自动更新标题
2. 预览图上传功能
- 添加S3预览图上传API(自动压缩到200px宽度)
- Task实体增加previewImage字段
- 前端添加预览图上传组件
- 任务卡片显示65x65像素预览图
3. 接单大厅按部门显示
- 根据用户所属部门筛选可接单的任务类型
- 只显示用户部门对应的任务类型的任务
2026-01-05 11:57:59 +08:00
Your Name
571388f414
fix: 修复多个问题
...
1. 修复部门负责人看不到任务关联信息(品牌、类目、平台)
- TaskService.getTaskById增加fillTaskRelatedInfo方法填充所有关联信息
2. 修复调整任务类型数量时积分同步显示
- 审核弹窗添加预估积分实时计算和显示
3. 修复流水线任务拆分后母任务不再显示在任务大厅
- TaskMapper添加is_pipeline=0条件
4. 修复驳回任务显示'草稿'问题
- 驳回时保存rejectReason到数据库
- 前端正确判断并显示'已驳回'状态
5. 修复重新编辑被驳回任务时数据丢失问题
- loadTaskForEdit完善所有字段加载
- 显示驳回原因提示用户修改
- 添加remark字段到formData
6. 修复进行中任务卡片缺少'指定'标签显示
2026-01-05 11:21:16 +08:00
Your Name
3ba4a5f7f7
fix: 修复8个bug + 确保任务必须审核通过后才能发布到大厅
...
Bug修复:
1. 驳回任务卡片显示'草稿'改为'驳回',显示驳回时间
2. 重新编辑被驳回任务时加载原有信息
3. 任务详情页关联信息显示不全
4. 任务卡片发布时间显示到时分
5. 被指定任务卡片增加'指定'标识
6. 设计师在已完成任务中看不到完成的任务
7. 设计师更新进度后需求方看到的进度还是0%
8. 完结任务卡片无法查看交付路径和填写商品ID
审核流程修复:
- TaskMapper: 任务大厅查询添加 approval_status='approved' 条件
- TaskItemMapper: 子任务查询添加 t.approval_status='approved' 条件
- 确保只有审核通过的任务才能发布到任务大厅
2026-01-05 10:41:44 +08:00
Your Name
80241a394d
fix: 完善所有通知场景的钉钉推送
...
- NotificationService: sendScoreNotification/sendSystemNotification/batchSendNotification 添加钉钉推送
- TaskService: 补充任务提交/审核通过/审核驳回/任务取消的通知
- 确保所有个人通知都能推送到钉钉工作通知
2026-01-05 00:23:45 +08:00
Your Name
1d33d453d3
feat: 添加钉钉个人消息测试功能
...
- 后端新增 /api/dingtalk/test-message-personal 接口
- 支持根据用户名/真实姓名查找用户并发送工作通知
- 前端Settings页面新增个人工作通知测试区域
- 支持多种消息类型:简单测试、新任务发布、任务指派、任务完成、积分变动
2026-01-05 00:03:34 +08:00
Your Name
5a40bfe078
fix: 添加RewardRule新增字段
2026-01-04 11:49:06 +08:00
Your Name
91e3dc3eaa
feat: 奖励系统升级 - 添加奖励记录、徽章、称号功能
2026-01-04 11:43:57 +08:00
Your Name
43d13d1a95
feat: 优化钉钉测试消息,支持多种消息类型预览
2026-01-04 11:21:41 +08:00
Your Name
3e7ce16782
fix: 修复JwtUtil方法调用
2026-01-04 11:07:14 +08:00
Your Name
4421ad0ed3
fix: 修复BusinessException导入路径
2026-01-04 11:04:29 +08:00
Your Name
709cea104b
feat: 添加任务商品ID管理功能
2026-01-04 11:02:45 +08:00
Your Name
f7bb31433d
fix: 管理员跳过积分检查,所有部门开放积分池配置
2026-01-04 10:32:32 +08:00
Your Name
3161ebfd59
fix: 添加isAdmin字段到UserInfoVO,修复管理员抢单权限
2026-01-04 10:03:40 +08:00
Your Name
30f9a3e735
feat: 优化数据分析页面
...
- 支持月份选择器,可查看指定月份数据
- 新增4个Tab:需求分析、设计师绩效、流程效率、预警监控
- 核心指标卡片:总任务数、待处理、进行中、已完成、完成率、准时率
- 设计师绩效:接单量、完成量、准时率、好评率、工作负载排行
- 流程效率:各环节耗时分析、瓶颈识别、环比对比
- 预警监控:超时预警、即将超时、长期未接单、审批滞后
- 后端新增3个API:设计师绩效、流程效率、预警任务
2026-01-04 08:57:45 +08:00
Your Name
d6c81f1fdc
feat: 管理员可以抢单,拥有完整权限
...
- 管理员可以抢单主任务(绕过部门类型、部门负责人限制)
- 管理员可以抢单子任务(绕过所有限制)
- 管理员拥有:发起任务、审核任务、指定任务、抢单、交付等完整权限
2026-01-04 08:39:52 +08:00
Your Name
07ce2e5613
feat: 管理员享受所有角色权限
...
- 管理员可以代审核所有任务(主任务和子任务组)
- 管理员可以发起任务(不受部门类型限制)
- isAdminUser同时检查isAdmin字段和角色
2026-01-04 08:36:33 +08:00
Your Name
79c0d92410
fix: 修复TaskItemService中userMapper改用userService
2026-01-04 08:31:22 +08:00
Your Name
d0cb8e800f
feat: 群通知增加处理人信息和@功能
...
- 任务指派时发送群通知并@被指定的设计师
- 子任务组指派时发送群通知并@被指定的设计师
- 任务驳回时如果有处理人发送群通知并@处理人
- 子任务组驳回时发送群通知并@所有处理人
- 钉钉机器人支持通过手机号@群成员
2026-01-04 08:30:03 +08:00
Your Name
3733713e5c
feat: 确保管理员可以看到所有任务
...
- 待审核任务:管理员可看到所有待审核任务
- 待审核子任务组:管理员可看到所有待审核子任务组
- 进行中子任务:管理员可看到所有进行中子任务
- 已完成子任务:管理员可看到所有已完成子任务
2026-01-04 08:19:29 +08:00
Your Name
cd9bb2bde1
fix: 修复DemandType字段名getName
2026-01-04 08:13:41 +08:00
Your Name
259fdcbe3f
feat: 群通知标签增加任务需求类型
2026-01-04 08:12:13 +08:00
Your Name
7f6bef38cb
fix: 群通知使用简洁纯文本样式
...
- 移除所有emoji图标
- 使用简单横线分隔
- 类似星巴克标签的简洁风格
2026-01-03 19:03:59 +08:00
Your Name
88532d1857
fix: 修复钉钉群通知格式
...
- 修复换行问题(两个空格+换行符)
- 移除所有星号和Markdown语法
- 使用纯文本格式
2026-01-03 19:01:34 +08:00
Your Name
92e30a9b23
fix: 优化群通知模板
...
- 移除截止时间(任务从接单开始计时)
- 预估工时添加说明'接单后开始计时'
- 添加访问地址 qd.yydd.ai
2026-01-03 18:56:06 +08:00
Your Name
6dcc725b48
feat: 优化群通知模板,显示完整任务信息
...
- 添加任务数量、品牌、类目、平台、SPU、子类型
- 添加预估工时、截止时间
- 添加发起人、发起部门信息
- 子任务组通知也添加完整信息
- 使用emoji图标和分隔线美化排版
2026-01-03 18:49:37 +08:00
Your Name
17d3799870
feat: 完善抢单权限控制、草稿状态编辑、群通知新模板等功能
...
- 后端: 子任务抢单权限校验(部门类型、任务类型限制)
- 后端: 子任务组驳回联动主任务逻辑
- 后端: 群通知新模板样式
- 后端: 个人钉钉通知自动绑定
- 前端: 抢单按钮状态判断优化
- 前端: 草稿状态显示及编辑功能
- 前端: 驳回状态样式
- 前端: 指定设计师功能增强
2026-01-03 18:31:49 +08:00
Your Name
64f3e25714
fix: 设计师列表支持递归查询子部门成员
...
问题:
- 部门负责人指定设计师时,只能看到直属部门成员
- 如果设计师在2级或3级部门,无法被上级部门负责人看到
修改:
- UserService.getDesignersWithWorkload:
- 增加 getAllSubDepartmentIds 递归查询方法
- 使用 IN 查询获取该部门及其所有子部门下的成员
2026-01-03 13:57:38 +08:00
Your Name
d08f0a3d47
fix: 添加UserService.isAdminUser方法以修复编译错误
2026-01-03 13:45:53 +08:00
Your Name
2bd4163328
fix: 修复任务审核弹窗UI对齐和设计师列表权限问题,排查详情信息缺失
...
1. 前端 TaskHall.vue:
- 修复接单方式单选框的对齐问题,改为 Flex 布局并排显示且等高
- 调整样式使其更整齐
2. 后端 UserController.java:
- getDesignersWithWorkload 方法增加权限控制
- 如果未传 deptId,非管理员用户强制使用自己的 deptId
- 修复了其他部门负责人可以看到全公司设计师的问题
3. 后端 TaskApprovalService.java:
- 在 getPendingApprovalTasks 中添加日志
- 记录品牌、类目、平台信息填充失败的情况,便于排查数据问题
2026-01-03 13:44:23 +08:00
Your Name
c3454123db
feat: 优化指派设计师功能,改用Select下拉框并显示工作量和预计完成时间
...
问题修复:
✅ 修复指派设计师按钮点击无效的问题
✅ 将Radio组改为Select下拉框,体验更好
功能优化:
1. 后端增强 (UserService.java)
✅ 新增返回设计师最早预计完成时间 (earliestDeadline)
✅ 查询该设计师进行中任务的最早deadline
✅ 便于负责人评估设计师工作量
2. 前端界面优化 (TaskHall.vue)
✅ 将RadioGroup改为Select下拉框
✅ 下拉框尺寸改为large,更易操作
✅ 显示设计师姓名
✅ 显示进行中任务数量
✅ 显示预计最早完成时间(相对时间)
✅ 根据工作量显示不同颜色:
- 0个任务:绿色 "空闲"
- 1-3个:绿色 "进行中: X个"
- 4-5个:橙色 "进行中: X个"
- 6+个:红色 "进行中: X个"
3. 时间显示格式
✅ 相对时间显示(例如:2天8小时后)
✅ 24小时内显示小时数
✅ 已逾期显示为"已逾期"
4. 下拉框选项样式
✅ 双栏布局:左侧姓名,右侧工作信息
✅ 工作量和完成时间用 | 分隔
✅ 信息一目了然
使用示例:
- 选择"指定设计师接单"
- 点击下拉框
- 看到:张三 | 进行中: 2个 | 最早完成: 1天5小时后
- 方便评估后选择最合适的设计师
2026-01-03 12:27:52 +08:00
Your Name
fac68333a7
feat: 优化任务时效计算逻辑 - 从接单时开始计算
...
问题:
- 任务时效(deadline)应该从设计师接单时开始计算
- 而不是从任务创建或审核通过时计算
修改内容:
1. TaskService.grabTask()
- 无论任务之前是否有deadline
- 抢单时都重新计算deadline
- 从接单时间(now)开始 + estimatedHours
- 添加详细日志记录
2. TaskApprovalService.approveReceivingLevel()
- 接单部门负责人指定设计师时
- 重新计算deadline
- 从指定时间(now)开始 + estimatedHours
- 添加详细日志记录
3. TaskApprovalService.approveDemandLevel()
- assigned模式下已有正确逻辑
- 从分配时间开始计算deadline
- 保持不变
计算逻辑:
- deadline = 接单时间 + estimatedHours(小时)
- 如果estimatedHours为空或0,不设置deadline
- 记录详细日志便于排查
影响范围:
- 设计师抢单:✅ 重新计算
- 负责人指派:✅ 重新计算
- 需求部门指定:✅ 已有逻辑
- 发布到大厅:❌ 不设置(等待接单后计算)
示例:
- 任务预估8小时
- 设计师12:00接单
- deadline = 12:00 + 8小时 = 20:00
2026-01-03 11:54:59 +08:00
Your Name
193810628a
fix: 修复三个问题
...
问题1:接单部门负责人审核缺少指派选项
- 已在之前修复handleApproveTask函数,接单部门负责人审核时会调用handleApproveTwoLevelTask
- 提供完整的审核选项(指派设计师/发布到大厅)
问题2:被驳回任务状态显示和编辑功能
- 修复状态显示:rejected显示"已驳回"(之前显示"已取消")
- 添加"重新编辑提交"按钮到被驳回的任务卡片
- 点击跳转到任务创建页面进行编辑
- 用户可以修改任务信息后重新提交审核
问题3:钉钉群通知调试改进
- 添加更详细的日志记录
- 在发送前后都记录日志
- 记录sendRobotMessage的返回值
- 方便排查通知发送失败的问题
改进内容:
1. 任务状态映射优化
- rejected -> "已驳回"
- cancelled -> "已取消"
- 不再混淆这两种状态
2. 被驳回任务编辑流程
- 任务卡片显示"重新编辑提交"按钮
- 跳转到创建页面(带editId和mode参数)
- 保留原有任务信息,允许修改后重新提交
3. 钉钉通知日志增强
- "准备发送钉钉群通知"
- "准备调用钉钉机器人发送消息"
- "钉钉群通知发送成功/失败"
- 详细的异常堆栈信息
2026-01-03 11:48:28 +08:00
Your Name
fdda2e5878
feat: 添加任务发布到大厅时的钉钉群机器人通知
...
问题:
- 任务审核通过并发布到大厅时,没有触发钉钉群机器人通知
- 设计师无法第一时间知道有新任务可接单
修复内容:
1. TaskApprovalService.approveReceivingLevel()
- 接单部门负责人审核通过时
- 如果未指定设计师(发布到大厅)
- 自动发送钉钉群机器人消息
- 包含任务标题、编号、积分、品牌等信息
2. TaskItemService.approveTaskGroup()
- 子任务组审核通过时
- 如果未指定设计师(发布到大厅)
- 自动发送钉钉群机器人消息
- 包含主任务标题、子任务组信息、任务列表
3. 通知内容:
- 标题:🎯 新任务发布 / 🎯 新子任务组发布
- 详细信息:任务编号、积分、品牌、类目、平台等
- 行动提示:💡 赶快去任务大厅抢单吧!
4. 错误处理:
- 通知发送失败不影响主流程
- 记录错误日志便于排查
影响范围:
- 每次任务发布到大厅时,接单部门群会收到通知
- 提高设计师接单效率
- 通知发送失败不会影响任务正常流转
2026-01-03 11:35:36 +08:00
Your Name
371cfd5b2a
feat: 为任务卡片添加子任务进度统计功能
...
新增功能:
1. Task实体新增字段:
- subTaskTotal: 子任务总数
- subTaskCompleted: 已完成子任务数
- subTaskInProgress: 进行中子任务数
- subTaskPending: 待接单子任务数
- subTasks: 子任务列表(包含处理人信息)
2. TaskService新增方法:
- fillSubTaskStats(): 填充流水线任务的子任务统计信息
- 自动在getMyPublishedTasks和getMyReceivedTasks中调用
- 统计各状态子任务数量
- 自动填充处理人信息
3. 同时修复流水线任务主任务状态同步问题:
- 设计师接单第一个子任务时,主任务状态更新为in_progress
- 确保需求方能正确看到任务进度
影响范围:
- 需求方查看"我发起的"任务时,可以看到子任务进度
- 设计师查看接收的任务时,可以看到子任务详情
- 为后续前端显示提供数据支持
2026-01-03 11:32:16 +08:00
Your Name
6c50652df8
fix: 为所有通知添加钉钉推送功能
...
问题:
1. 需求部门负责人收不到审核通知
2. 任务完结时发起者收不到通知
3. 所有通知都没有钉钉个人消息推送
修复内容:
1. TaskItemService - 添加5个通知的钉钉推送
- 子任务被接单通知
- 子任务组待审核通知
- 流水线任务完成通知
- 子任务被驳回通知
- 子任务已指派通知
2. TaskService - 已完成(之前修复)
- 任务待审核通知
- 任务提交审核通知
- 任务审核通过通知
- 任务被驳回通知
- 抢单成功通知
3. NotificationService便捷方法
- sendNotification(receiverId, title, content, type, id)
- 默认启用钉钉推送
现在所有通知都会:
✅ 发送站内通知
✅ 发送钉钉个人工作消息(如果用户绑定了钉钉ID)
2026-01-03 11:17:07 +08:00
Your Name
038659bd41
fix: 修复用户管理和任务抢单权限控制
...
1. 修复设置管理员报错
- 修正BusinessException构造函数调用
2. 完善抢单权限控制
- 需求部门成员不能抢单
- 所有部门负责人不能抢单(包括需求和接单部门)
- 只有指定接单部门的普通成员可以抢单
- 验证部门是否允许接该需求类型
- 抢单成功后发送通知给任务发起人
3. 前端抢单按钮状态控制
- 添加canGrabTask方法判断抢单权限
- 可接单:绿色按钮
- 不可接单:灰色按钮并禁用
- 鼠标悬停显示不能抢单的原因
- 支持任务列表和详情页面
4. 优化用户体验
- 点击不可抢单按钮时提示具体原因
- 按钮文案动态显示状态
2026-01-03 11:07:42 +08:00
Your Name
c62fe7853f
fix: 修复钉钉个人通知未发送的问题
...
- TaskService中所有关键通知添加setPushDingtalk(1)
- 任务待审核通知
- 任务提交审核通知
- 任务审核通过通知
- 任务被驳回通知(高优先级)
- NotificationService便捷方法默认启用钉钉推送
- 确保所有重要通知都能触发个人工作消息推送
2026-01-03 10:42:59 +08:00
Your Name
1fd4d245a1
feat: 实现钉钉个人通知功能
...
- NotificationService添加DingTalkService和UserMapper依赖
- 实现asyncPushToDingtalk方法,支持发送个人工作通知
- 自动检查用户是否绑定钉钉ID
- 构建Markdown格式的通知内容
- 异步发送,不影响主流程性能
2026-01-03 10:29:55 +08:00
Your Name
e0a9402efd
feat: 添加用户管理员身份设置功能
...
- 数据库添加is_admin字段和索引
- User实体类添加isAdmin字段
- 后端添加setAdmin API(UserController和UserService)
- 前端用户管理界面添加管理员标识列
- 添加设置/取消管理员按钮及功能
- 用户管理表格显示管理员标识(红色标签)
2026-01-03 10:13:29 +08:00
Your Name
8e0ecdb3ce
fix: 移除TaskItem不存在的setStartTime调用
2026-01-02 20:05:09 +08:00
Your Name
2a7f9f7cd7
feat: 隐藏招募任务和指定任务发布类型,只保留默认模式
2026-01-02 19:54:25 +08:00
Your Name
e86b5a45f3
feat: 接单部门审核时添加指定设计师接单功能,显示设计师工作量
2026-01-02 19:32:53 +08:00
Your Name
ea4b6a8dc5
修复流水线任务审核通过后主任务状态未更新的问题
...
问题:流水线任务在审核通过后,主任务status仍为draft,导致子任务无法在可接任务列表中显示
原因:splitIntoPipelineSubTasks方法中只处理了recruitment和assigned模式,default模式下没有设置主任务状态
解决:为default模式及其他模式添加status=pending的设置,确保子任务可以被设计师看到并接单
2026-01-02 19:18:51 +08:00
Your Name
7d881ab617
修复Notification实体类updateTime字段导致的SQL错误
...
问题:审核通过时发送通知失败,提示'Unknown column update_time in field list'
原因:Notification实体类定义了updateTime字段并标记为自动填充,但数据库表sys_notification中没有此字段
解决:将updateTime字段标记为exist=false,表示此字段不存在于数据库表中
2026-01-02 18:52:42 +08:00
Your Name
cf33f38274
添加TeamScorePoolService的@Slf4j注解以支持日志功能
2026-01-02 18:10:15 +08:00
Your Name
6df38c4f89
修复部门设置负责人失败的问题
...
- 前端:允许选择所有用户作为部门负责人,不限于该部门成员
- 前端:修复leaderId和parentId的类型兼容性问题
- 后端:添加leaderId有效性验证,防止设置不存在的用户
2026-01-02 18:00:20 +08:00
Your Name
ec6a0d1838
修复保存部门失败问题:添加详细错误处理和日志记录
2026-01-02 16:45:30 +08:00