From 8693009bd98f704cb22ae25c62818b08c0e052e1 Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Mon, 16 Mar 2026 08:40:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E9=80=9A=E7=9F=A5=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/appeal/domain/dto/AppealDTO.java | 1 + .../Impl/CheckAppealDomainServiceImpl.java | 4 +-- .../Impl/SaveAppealDomainServiceImpl.java | 1 + .../java/com/project/ding/utils/DingUtil.java | 33 +++++-------------- 4 files changed, 13 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/project/appeal/domain/dto/AppealDTO.java b/src/main/java/com/project/appeal/domain/dto/AppealDTO.java index bd06f35..caa627d 100644 --- a/src/main/java/com/project/appeal/domain/dto/AppealDTO.java +++ b/src/main/java/com/project/appeal/domain/dto/AppealDTO.java @@ -28,6 +28,7 @@ public class AppealDTO extends BaseDTO { private String subLineName;//关联子产品线 private Long questionId; private String questionContent; //题干 + private Integer questionSort; //题号 private String kpContentsStr; //知识点文本 private List kpIdList; private String rightAnswer;//正确答案 diff --git a/src/main/java/com/project/appeal/domain/service/Impl/CheckAppealDomainServiceImpl.java b/src/main/java/com/project/appeal/domain/service/Impl/CheckAppealDomainServiceImpl.java index 7bb029e..1d532b1 100644 --- a/src/main/java/com/project/appeal/domain/service/Impl/CheckAppealDomainServiceImpl.java +++ b/src/main/java/com/project/appeal/domain/service/Impl/CheckAppealDomainServiceImpl.java @@ -37,7 +37,7 @@ public class CheckAppealDomainServiceImpl implements CheckAppealDomainService { if (ObjectUtil.isEmpty(appealDTO.getId()) && StringUtils.isBlank(appealDTO.getRemark())){ throw new MissingParameterException("缺少申诉理由"); } - if (appealDTO.getRemark().length() > 500){ + if (ObjectUtil.isEmpty(appealDTO.getId()) && appealDTO.getRemark().length() > 500){ throw new MissingParameterException("申诉理由不能超过500字符"); } @@ -50,7 +50,7 @@ public class CheckAppealDomainServiceImpl implements CheckAppealDomainService { if (!appealDTO.getStatus().equals(AppealStatusEnum.PENDING_REVIEW.getValue()) && StringUtils.isBlank(appealDTO.getReason())){ throw new BusinessErrorException("缺少审批意见"); } - if (appealDTO.getReason().length() > 500){ + if (!appealDTO.getStatus().equals(AppealStatusEnum.PENDING_REVIEW.getValue()) && appealDTO.getReason().length() > 500){ throw new MissingParameterException("审批意见不能超过500字符"); } //校验题目是否以申诉过 diff --git a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java index fb6e63b..e0e2cd4 100644 --- a/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java +++ b/src/main/java/com/project/appeal/domain/service/Impl/SaveAppealDomainServiceImpl.java @@ -90,6 +90,7 @@ public class SaveAppealDomainServiceImpl implements SaveAppealDomainService { } appealDTO.setQuestionContent(questionSnapshotDTO.getQuestionContent()); + appealDTO.setQuestionSort(index + 1); if (appealDTO.getStatus().equals(AppealStatusEnum.PENDING_REVIEW.getValue())) { //更新申诉状态 diff --git a/src/main/java/com/project/ding/utils/DingUtil.java b/src/main/java/com/project/ding/utils/DingUtil.java index b15f14d..1b260bf 100644 --- a/src/main/java/com/project/ding/utils/DingUtil.java +++ b/src/main/java/com/project/ding/utils/DingUtil.java @@ -269,35 +269,20 @@ public class DingUtil { String nowTime = LocalDateTime.now().format(formatter); boolean approved = appealDTO.getStatus() != null && appealDTO.getStatus() == 2; - String resultLine = approved - ? "- ✅ **审核通过**" - : "- ❌ **审核不通过**"; - String markdownText = String.format( - "### AI考核-申诉审批完成\n\n" + - "#### 任务信息\n" + - "- 题目名称:%s\n" + - "- 申诉理由:%s\n\n" + - "#### 审批结果\n" + - "%s\n\n" + - "---\n" + - "- 📅 审批时间:%s\n" + - "- 👤 审批人:%s\n" + - "- 💬 审批意见:%s", - appealDTO.getQuestionContent(), - appealDTO.getRemark(), - resultLine, - nowTime, - appealDTO.getAppealUsername(), - appealDTO.getReason() - ); + StringBuilder markdown = new StringBuilder(); + markdown.append(String.format("### 【%s】中第%d题的申诉结果如下:\n\n" , "教育云平台知识考试",appealDTO.getQuestionSort())) + .append(String.format("处理结果:%s\n\n" ,approved ? "同意" : "不同意")) + .append(String.format("处理理由:%s" , appealDTO.getReason())); //发送工作通知 DtCorpConversationMessage corpConversationMessage = DtCorpConversationMessage.builder() .agentId(dtService.getDtConfigStorage().getAgentId()) .userIds(Lists.newArrayList(appealDTO.getUserId())) - .msg(DtMessage.MARKDOWN() - .content("AI考核-审批申诉结果") - .text(markdownText) + .msg(DtMessage.ACTIONCARD() + .title("产品知识考核") + .markdown(markdown.toString()) + .singleTitle("查看详情") + .singleUrl("https://www.baidu.com/") .build()) .build();