From c63c4a1e854f62e9479ff25b63ce187c3dd4a28d Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 8 Jan 2026 14:49:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/designhub/service/AnalyticsService.java | 6 +++--- .../designhub/service/ProgressCheckService.java | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/backend/src/main/java/com/designhub/service/AnalyticsService.java b/backend/src/main/java/com/designhub/service/AnalyticsService.java index be0b22d..2d9c27f 100644 --- a/backend/src/main/java/com/designhub/service/AnalyticsService.java +++ b/backend/src/main/java/com/designhub/service/AnalyticsService.java @@ -756,9 +756,9 @@ public class AnalyticsService { // 解析月份 String[] monthParts = currentMonth.split("-"); if (monthParts.length == 2) { - int year = Integer.parseInt(monthParts[0]); - int month = Integer.parseInt(monthParts[1]); - BigDecimal progressDeduction = progressDeductionLogMapper.sumMonthlyDeduction(designer.getId(), year, month); + int yearNum = Integer.parseInt(monthParts[0]); + int monthNum = Integer.parseInt(monthParts[1]); + BigDecimal progressDeduction = progressDeductionLogMapper.sumMonthlyDeduction(designer.getId(), yearNum, monthNum); if (progressDeduction != null && progressDeduction.compareTo(BigDecimal.ZERO) > 0) { deductionScore = deductionScore.add(progressDeduction); log.debug("设计师 {} 本月进度未更新扣分: {}", designer.getRealName(), progressDeduction); diff --git a/backend/src/main/java/com/designhub/service/ProgressCheckService.java b/backend/src/main/java/com/designhub/service/ProgressCheckService.java index 1b78125..dc1e3e9 100644 --- a/backend/src/main/java/com/designhub/service/ProgressCheckService.java +++ b/backend/src/main/java/com/designhub/service/ProgressCheckService.java @@ -176,13 +176,15 @@ public class ProgressCheckService { try { User user = userMapper.selectById(userId); - if (user == null || user.getDingtalkUserId() == null) { + if (user == null || user.getPhone() == null) { + // 如果没有手机号,无法发送钉钉通知 + log.warn("用户 {} 没有绑定手机号,跳过钉钉通知", userId); continue; } StringBuilder content = new StringBuilder(); - content.append("⚠️ 进度更新提醒\n\n"); - content.append("您有 ").append(tasks.size()).append(" 个进行中的任务今日未更新进度:\n"); + content.append("⚠️ **进度更新提醒**\n\n"); + content.append("您有 **").append(tasks.size()).append("** 个进行中的任务今日未更新进度:\n\n"); for (int i = 0; i < Math.min(tasks.size(), 5); i++) { content.append("• ").append(tasks.get(i)).append("\n"); @@ -191,10 +193,15 @@ public class ProgressCheckService { content.append("• ...等共 ").append(tasks.size()).append(" 个任务\n"); } - content.append("\n已扣除积分:").append(deductionScore.multiply(BigDecimal.valueOf(tasks.size()))).append(" 分"); + content.append("\n**已扣除积分:").append(deductionScore.multiply(BigDecimal.valueOf(tasks.size()))).append(" 分**"); content.append("\n\n💡 温馨提示:请每日下班前更新任务进度,以便跟进项目状态。"); - dingTalkService.sendPersonalMessage(user.getDingtalkUserId(), content.toString()); + // 使用手机号作为钉钉用户标识发送通知 + dingTalkService.sendWorkNotification( + java.util.Collections.singletonList(user.getPhone()), + "进度更新提醒", + content.toString() + ); log.info("已向用户 {} 发送进度提醒通知", user.getRealName()); } catch (Exception e) {