hsy
2026-08-31 1704e30de33833817a5fce4c4ab0b94ac8ce1cc6
src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
@@ -13,6 +13,12 @@
import com.ruoyi.device.mapper.DeviceMaintenanceMapper;
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.IDeviceMaintenanceService;
import com.ruoyi.project.system.service.ISysNoticeService;
import com.ruoyi.project.system.service.impl.UnipushService;
import com.ruoyi.project.system.domain.SysNotice;
import java.util.Collections;
import com.ruoyi.common.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import com.ruoyi.device.vo.DeviceMaintenanceVo;
import com.ruoyi.device.vo.DeviceRepairVo;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -37,6 +43,7 @@
@Service
@RequiredArgsConstructor
@Slf4j
public class DeviceMaintenanceServiceImpl extends ServiceImpl<DeviceMaintenanceMapper, DeviceMaintenance> implements IDeviceMaintenanceService {
    private final DeviceMaintenanceMapper deviceMaintenanceMapper;
@@ -44,6 +51,8 @@
    private final SparePartsRequisitionRecordService sparePartsRequisitionRecordService;
    private final IDeviceRepairSparePartService deviceRepairSparePartService;
    private final FileUtil fileUtil;
    private final ISysNoticeService sysNoticeService;
    private final UnipushService unipushService;
    @Override
    public IPage<DeviceMaintenanceDto> queryPage(Page page, DeviceMaintenanceDto deviceMaintenanceDto) {
@@ -58,6 +67,34 @@
        if (save){
            // 处理图片上传
            fileUtil.saveStorageAttachmentByRecordTypeAndRecordId("file", RecordTypeEnum.DEVICE_MAINTENANCE, deviceMaintenance.getId(), deviceMaintenance.getStorageBlobDTOs());
            // 推送系统消息给执行人
            if (deviceMaintenance.getExecutorId() != null) {
                SysNotice notice = new SysNotice();
                notice.setNoticeTitle("新保养计划提醒");
                notice.setNoticeType("1"); // 1 通知
                String dateStr = deviceMaintenance.getMaintenancePlanTime() != null ?
                        deviceMaintenance.getMaintenancePlanTime().toLocalDate().toString() :
                        java.time.LocalDate.now().toString();
                notice.setNoticeContent("你有一个新的设备保养计划 ," + dateStr + " " + deviceMaintenance.getDeviceName());
                notice.setStatus("0"); // 正常
                notice.setConsigneeId(deviceMaintenance.getExecutorId());
                try {
                    Long currentUserId = SecurityUtils.getLoginUser().getUserId();
                    notice.setSenderId(currentUserId);
                } catch (Exception e) {
                    notice.setSenderId(0L); // 兜底
                }
                notice.setTenantId(deviceMaintenance.getTenantId());
                sysNoticeService.insertNotice(notice);
                try {
                    unipushService.sendClientMessage(Collections.singletonList(notice));
                } catch (Exception e) {
                    log.error("推送新保养计划系统消息失败", e);
                }
            }
            return AjaxResult.success();
        }
        return AjaxResult.error();