fix:修改添加设备台账-维修单推送站内消息

main
HuangHuiKang 2 days ago
parent 3db591c9e8
commit dc29890b5a

@ -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<String, Object> 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) {

Loading…
Cancel
Save