diff --git a/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java b/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java index 308a93bb..8c5e62a8 100644 --- a/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java +++ b/src/main/java/com/xujie/sys/modules/pms/listener/RedisExpirationListener.java @@ -75,17 +75,23 @@ public class RedisExpirationListener extends KeyExpirationEventMessageListener { log.info("未查到单据信息:{}", messageKey); return; } - if ("未开工".equals(workOrderList.get(0).getStatus())) { + // 判断是否需要发送邮件:状态为未开工,且03-RFID需额外判断维修组类型 + boolean shouldSendMail = "未开工".equals(workOrderList.getFirst().getStatus()); + if (shouldSendMail && "03-RFID".equals(WorkOrderData.getBuNo())) { + shouldSendMail = "设备维修组".equals(workOrderList.getFirst().getRepairType()); + } + + if (shouldSendMail) { EamDefectFeedBackInData feedData = new EamDefectFeedBackInData(); feedData.setSite(WorkOrderData.getSite()); feedData.setBuNo(WorkOrderData.getBuNo()); - feedData.setFeedBackID(workOrderList.get(0).getPlanID()); // 反馈单号 + feedData.setFeedBackID(workOrderList.getFirst().getPlanID()); // 反馈单号 feedData.setOrderNo(WorkOrderData.getOrderNo()); // 工单号 - feedData.setObjectID(workOrderList.get(0).getObjectID()); // 设备编码 - feedData.setObjectDesc(workOrderList.get(0).getObjectDesc()); // 设备名称 - feedData.setCreatedDate(workOrderList.get(0).getCreatedDate()); // 报修时间 - feedData.setFeedBackDesc(workOrderList.get(0).getFeedBackDesc()); // 反馈描述 - feedData.setFeedbackBy(workOrderList.get(0).getCreatedBy()); // 报修人员 + feedData.setObjectID(workOrderList.getFirst().getObjectID()); // 设备编码 + feedData.setObjectDesc(workOrderList.getFirst().getObjectDesc()); // 设备名称 + feedData.setCreatedDate(workOrderList.getFirst().getCreatedDate()); // 报修时间 + feedData.setFeedBackDesc(workOrderList.getFirst().getFeedBackDesc()); // 反馈描述 + feedData.setFeedbackBy(workOrderList.getFirst().getCreatedBy()); // 报修人员 feedData.setCreatedBy(""); eamService.sendMail(feedData, durationType); } @@ -100,8 +106,14 @@ public class RedisExpirationListener extends KeyExpirationEventMessageListener { log.info("未查到单据信息:{}", messageKey); return; } - if (!"维修完成".equals(feedBackList.get(0).getStatus())) { - eamService.sendMail(feedBackList.get(0), durationType); + // 判断是否需要发送邮件:状态不是维修完成,且03-RFID需额外判断维修组类型 + boolean shouldSendMail = !"维修完成".equals(feedBackList.getFirst().getStatus()); + if (shouldSendMail && "03-RFID".equals(feedBackData.getBuNo())) { + shouldSendMail = "设备维修组".equals(feedBackList.getFirst().getRepairType()); + } + + if (shouldSendMail) { + eamService.sendMail(feedBackList.getFirst(), durationType); } } } diff --git a/src/main/resources/mapper/pms/EamMapper.xml b/src/main/resources/mapper/pms/EamMapper.xml index 977fa872..2ca5861b 100644 --- a/src/main/resources/mapper/pms/EamMapper.xml +++ b/src/main/resources/mapper/pms/EamMapper.xml @@ -3733,7 +3733,8 @@ dbo.eam_Get_eamObjectDesc(a.Site, a.bu_no, a.ObjectID) as objectDesc, b.reach_date as createdDate, b.reach_operator_name as createdBy, - '' as feedbackBy + '' as feedbackBy, + b.repair_type from eam_defect_feedBack as a left join eam_workOrder as b on a.site = b.site and a.bu_no = b.bu_no and b.PlanID = a.feedBackID @@ -3789,7 +3790,8 @@ a.confirm_assessment, a.confirm_remark, b.CreatedDate, - dbo.getOperatorDesc(b.site, b.CreatedBy) as createdBy + dbo.getOperatorDesc(b.site, b.CreatedBy) as createdBy, + a.repair_type FROM eam_workOrder as a left join eam_defect_feedBack as b on a.site = b.site and a.bu_no = b.bu_no and a.PlanID = b.feedBackID where a.Site = #{site} and a.bu_no = #{buNo} and a.OrderNo = #{orderNo} and a.FunctionType = #{functionType}