|
|
|
|
@ -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) {
|
|
|
|
|
|