From dc29890b5a3c262d3829755ecdfcfeb38ed80b87 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Wed, 8 Jul 2026 17:20:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=8F=B0=E8=B4=A6-=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E5=8D=95=E6=8E=A8=E9=80=81=E7=AB=99=E5=86=85=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/dvrepair/DvRepairServiceImpl.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java index 8a38f101c..bbd8b1431 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/dvrepair/DvRepairServiceImpl.java @@ -16,6 +16,8 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.dvrepair.DvRepairLineDO; import cn.iocoder.yudao.module.mes.dal.mysql.deviceledger.DeviceLedgerMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairLineMapper; import cn.iocoder.yudao.module.mes.dal.mysql.dvrepair.DvRepairMapper; +import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi; +import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; import com.alibaba.excel.util.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -45,12 +47,16 @@ import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; @Slf4j public class DvRepairServiceImpl implements DvRepairService { + private static final String DV_REPAIR_CREATE_NOTIFY_TEMPLATE_CODE = "mes_dv_repair_create"; + @Resource private DvRepairMapper dvRepairMapper; @Resource private DeviceLedgerMapper deviceLedgerMapper; @Resource private DvRepairLineMapper dvRepairLineMapper; + @Resource + private NotifyMessageSendApi notifyMessageSendApi; @Resource @@ -75,6 +81,7 @@ public class DvRepairServiceImpl implements DvRepairService { // 插入 DvRepairDO dvRepair = BeanUtils.toBean(createReqVO, DvRepairDO.class); dvRepairMapper.insert(dvRepair); + sendCreateNotifyMessage(dvRepair); // 插入子表 // createDvRepairLineList(dvRepair.getId(), createReqVO.getDvRepairLines()); @@ -82,6 +89,43 @@ public class DvRepairServiceImpl implements DvRepairService { return dvRepair.getId(); } + private void sendCreateNotifyMessage(DvRepairDO dvRepair) { + if (StringUtils.isBlank(dvRepair.getAcceptedBy())) { + return; + } + Long acceptedUserId; + try { + acceptedUserId = Long.valueOf(dvRepair.getAcceptedBy().trim()); + } catch (NumberFormatException ex) { + log.warn("[sendCreateNotifyMessage][维修人员({})不是有效用户编号,跳过站内信发送]", dvRepair.getAcceptedBy()); + return; + } + + Map templateParams = new HashMap<>(); + templateParams.put("repairId", dvRepair.getId()); + templateParams.put("repairCode", Objects.toString(dvRepair.getRepairCode(), "")); + templateParams.put("repairName", Objects.toString(dvRepair.getRepairName(), "")); + templateParams.put("machineryCode", Objects.toString(dvRepair.getMachineryCode(), "")); + templateParams.put("machineryName", Objects.toString(dvRepair.getMachineryName(), "")); + templateParams.put("faultPhenomenon", Objects.toString(dvRepair.getFaultPhenomenon(), "")); + templateParams.put("faultDescription", Objects.toString(dvRepair.getFaultDescription(), "")); + templateParams.put("requireDate", formatNotifyDateTime(dvRepair.getRequireDate())); + + NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO(); + reqDTO.setUserId(acceptedUserId); + reqDTO.setTemplateCode(DV_REPAIR_CREATE_NOTIFY_TEMPLATE_CODE); + reqDTO.setTemplateParams(templateParams); + try { + notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO); + } catch (Exception ex) { + log.warn("[sendCreateNotifyMessage][维修单({})站内信发送失败,跳过通知]", dvRepair.getId(), ex); + } + } + + private String formatNotifyDateTime(LocalDateTime dateTime) { + return dateTime == null ? "" : dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } + @Override @Transactional(rollbackFor = Exception.class) public void updateDvRepair(DvRepairSaveReqVO updateReqVO) {