|
|
|
@ -23,6 +23,7 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Arrays;
|
|
|
|
@ -98,6 +99,11 @@ public class GenerateWorkOrderTask implements Task {
|
|
|
|
if (taskManagementDO == null){
|
|
|
|
if (taskManagementDO == null){
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!isWithinTaskDateRange(taskManagementDO)) {
|
|
|
|
|
|
|
|
logger.info("设备工单任务不在执行日期范围内,任务ID: {}, startDate: {}, endDate: {}",
|
|
|
|
|
|
|
|
taskManagementDO.getId(), taskManagementDO.getStartDate(), taskManagementDO.getEndDate());
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 将逗号分隔的字符串转换为Long类型的List
|
|
|
|
// 将逗号分隔的字符串转换为Long类型的List
|
|
|
|
List<Long> idList = Arrays.stream(taskManagementDO.getDeviceList().split(","))
|
|
|
|
List<Long> idList = Arrays.stream(taskManagementDO.getDeviceList().split(","))
|
|
|
|
@ -141,18 +147,38 @@ public class GenerateWorkOrderTask implements Task {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean isWithinTaskDateRange(TaskManagementDO taskManagementDO) {
|
|
|
|
|
|
|
|
LocalDate today = LocalDate.now();
|
|
|
|
|
|
|
|
if (taskManagementDO.getStartDate() != null && today.isBefore(taskManagementDO.getStartDate())) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (taskManagementDO.getEndDate() != null && today.isAfter(taskManagementDO.getEndDate())) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void sendTicketCreateNotifyMessage(TaskManagementDO taskManagementDO, TicketManagementDO ticketManagementDO) {
|
|
|
|
private void sendTicketCreateNotifyMessage(TaskManagementDO taskManagementDO, TicketManagementDO ticketManagementDO) {
|
|
|
|
Map<String, Object> templateParams = new HashMap<>();
|
|
|
|
Map<String, Object> templateParams = new HashMap<>();
|
|
|
|
templateParams.put("ticketId", ticketManagementDO.getId());
|
|
|
|
templateParams.put("ticketId", ticketManagementDO.getId());
|
|
|
|
templateParams.put("planNo", Objects.toString(ticketManagementDO.getPlanNo(), ""));
|
|
|
|
templateParams.put("planNo", Objects.toString(ticketManagementDO.getPlanNo(), ""));
|
|
|
|
templateParams.put("configName", Objects.toString(ticketManagementDO.getConfigName(), ""));
|
|
|
|
templateParams.put("configName", Objects.toString(ticketManagementDO.getConfigName(), ""));
|
|
|
|
templateParams.put("deviceName", Objects.toString(ticketManagementDO.getDeviceName(), ""));
|
|
|
|
templateParams.put("deviceName", Objects.toString(ticketManagementDO.getDeviceName(), ""));
|
|
|
|
templateParams.put("taskEndTime", formatNotifyDateTime(ticketManagementDO.getTaskEndTime()));
|
|
|
|
templateParams.put("businessType", getDeviceBusinessType(ticketManagementDO.getPlanType()));
|
|
|
|
|
|
|
|
templateParams.put("createTime", formatNotifyDateTime(
|
|
|
|
|
|
|
|
ticketManagementDO.getCreateTime() != null ? ticketManagementDO.getCreateTime() : LocalDateTime.now()));
|
|
|
|
|
|
|
|
|
|
|
|
mesNotifyMessageService.sendToAdmins(taskManagementDO.getOperableUsers(), TASK_TICKET_CREATE_NOTIFY_TEMPLATE_CODE,
|
|
|
|
mesNotifyMessageService.sendToAdmins(taskManagementDO.getOperableUsers(), TASK_TICKET_CREATE_NOTIFY_TEMPLATE_CODE,
|
|
|
|
templateParams, "设备工单", ticketManagementDO.getId());
|
|
|
|
templateParams, "设备工单", ticketManagementDO.getId());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private String getDeviceBusinessType(Integer taskType) {
|
|
|
|
|
|
|
|
if (Integer.valueOf(2).equals(taskType)) {
|
|
|
|
|
|
|
|
return "设备保养";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return "设备点检";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private String formatNotifyDateTime(LocalDateTime dateTime) {
|
|
|
|
private String formatNotifyDateTime(LocalDateTime dateTime) {
|
|
|
|
return dateTime == null ? "" : dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
return dateTime == null ? "" : dateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|