package com.qianwen.smartman.modules.notify.business; import com.baomidou.mybatisplus.core.toolkit.BeanUtils; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import com.qianwen.smartman.common.constant.NotifyConstant; import com.qianwen.smartman.modules.notify.dto.MaintainDTO; import com.qianwen.smartman.modules.notify.dto.MaintainOverdueDTO; import com.qianwen.smartman.modules.notify.dto.NotifyBusinessSendDTO; import com.qianwen.smartman.modules.notify.dto.NotifySendDTO; import com.qianwen.smartman.modules.notify.service.IBusinessNotifyService; import com.qianwen.smartman.modules.notify.service.IBusinessNotifyStateService; import com.qianwen.smartman.modules.tpm.entity.MaintainPlan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.thymeleaf.TemplateEngine; import org.thymeleaf.context.Context; @Component /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/notify/business/MaintainOverdueBusinessSend.class */ public class MaintainOverdueBusinessSend implements BusinessSend { @Autowired private IBusinessNotifyService businessNotifyService; @Autowired private TemplateEngine templateEngine; @Autowired private IBusinessNotifyStateService businessNotifyStateService; @Override // org.springblade.modules.notify.business.BusinessSend public void sendMessage(MaintainPlan maintainPlan, NotifyBusinessSendDTO notifyBusinessSend) { List empIds = notifyBusinessSend.getEmpIds(); List orgIds = notifyBusinessSend.getOrgIds(); LocalDateTime maintainDate = maintainPlan.getMaintainDate(); String code = maintainPlan.getCode() != null ? maintainPlan.getCode() : "-"; String deviceCode = maintainPlan.getDeviceCode() != null ? maintainPlan.getDeviceCode() : "-"; String deviceName = maintainPlan.getDeviceName() != null ? maintainPlan.getDeviceName() : "-"; MaintainDTO maintainDTO = new MaintainDTO(); maintainDTO.setName(deviceName); maintainDTO.setCode(deviceCode); List maintains = new ArrayList<>(); maintains.add(maintainDTO); Context context = new Context(); context.setVariable("machineList", maintains); String machinesHtml = this.templateEngine.process("machines", context); if (machinesHtml == null) { machinesHtml = ""; } MaintainOverdueDTO overdueDTO = new MaintainOverdueDTO(); overdueDTO.setCode(code); if (maintainDate != null) { long day = LocalDateTime.now().toLocalDate().toEpochDay() - maintainDate.toLocalDate().toEpochDay(); if (day < 0) { day = 0; } overdueDTO.setDay(String.valueOf(day)); } DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分"); overdueDTO.setNow(LocalDateTime.now().format(df)); overdueDTO.setMaintains(machinesHtml); NotifySendDTO notifySendDTO = new NotifySendDTO(); notifySendDTO.setData(BeanUtils.beanToMap(overdueDTO)); notifySendDTO.setEmpIds(empIds); notifySendDTO.setOrgIds(orgIds); notifySendDTO.setBusinessKey(NotifyConstant.MAINTAIN_OVERDUE); this.businessNotifyService.sendMessage(notifySendDTO); } @Override // org.springblade.modules.notify.business.BusinessSend @Async public void saveState(MaintainPlan maintainPlan, NotifyBusinessSendDTO notifyBusinessSend) { List empIds = notifyBusinessSend.getEmpIds(); List orgIds = notifyBusinessSend.getOrgIds(); Long businessId = maintainPlan.getId(); this.businessNotifyStateService.saveBatchByIds(NotifyConstant.MAINTAIN_OVERDUE, businessId, empIds, orgIds); } }