gongchunyi
5 天以前 da6b322fb0b3e80ad8bb3e0f5bdbf9e5113dbb5e
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -1,6 +1,11 @@
package com.ruoyi.device.service.impl;
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.mapper.MaintenanceTaskItemMapper;
import com.ruoyi.device.mapper.DeviceMaintenanceItemMapper;
import com.ruoyi.device.pojo.MaintenanceTaskItem;
import com.ruoyi.device.pojo.DeviceMaintenanceItem;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.device.pojo.MaintenanceTask;
import lombok.RequiredArgsConstructor;
import org.quartz.*;
@@ -29,6 +34,12 @@
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private MaintenanceTaskItemMapper maintenanceTaskItemMapper;
    @Autowired
    private DeviceMaintenanceItemMapper deviceMaintenanceItemMapper;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
@@ -49,9 +60,26 @@
                throw new JobExecutionException("MaintenanceTaskJob找不到定时任务: " + taskId);
            }
            // 2. 创建并保存巡检任务记录 - 这就是您提供的代码应该放的位置
            List<MaintenanceTaskItem> taskItems = maintenanceTaskItemMapper.selectByTaskId(timingTask.getId());
            if (taskItems.isEmpty()) {
                throw new JobExecutionException("保养任务未配置保养项目: " + taskId);
            }
            // 按任务项目快照生成本次保养记录及项目清单。
            DeviceMaintenance deviceMaintenance = createInspectionTask(timingTask);
            deviceMaintenanceService.save(deviceMaintenance);
            for (MaintenanceTaskItem taskItem : taskItems) {
                DeviceMaintenanceItem recordItem = new DeviceMaintenanceItem();
                recordItem.setDeviceMaintenanceId(deviceMaintenance.getId());
                recordItem.setMaintenanceTaskItemId(taskItem.getId());
                recordItem.setMaintenanceItemId(taskItem.getMaintenanceItemId());
                recordItem.setItemProject(taskItem.getItemProject());
                recordItem.setItemName(taskItem.getItemName());
                recordItem.setItemStatus(0);
                recordItem.setSortNum(taskItem.getSortNum());
                recordItem.setTenantId(deviceMaintenance.getTenantId());
                recordItem.setDeptId(timingTask.getDeptId());
                deviceMaintenanceItemMapper.insert(recordItem);
            }
            // 3. 更新定时任务的执行时间
            if (!tasks.isEmpty()) {
@@ -230,14 +258,29 @@
        for (String dayStr : dayStrs) {
            switch (dayStr) {
                case "MON": days.add(DayOfWeek.MONDAY); break;
                case "TUE": days.add(DayOfWeek.TUESDAY); break;
                case "WED": days.add(DayOfWeek.WEDNESDAY); break;
                case "THU": days.add(DayOfWeek.THURSDAY); break;
                case "FRI": days.add(DayOfWeek.FRIDAY); break;
                case "SAT": days.add(DayOfWeek.SATURDAY); break;
                case "SUN": days.add(DayOfWeek.SUNDAY); break;
                default: throw new IllegalArgumentException("无效的星期几: " + dayStr);
                case "MON":
                    days.add(DayOfWeek.MONDAY);
                    break;
                case "TUE":
                    days.add(DayOfWeek.TUESDAY);
                    break;
                case "WED":
                    days.add(DayOfWeek.WEDNESDAY);
                    break;
                case "THU":
                    days.add(DayOfWeek.THURSDAY);
                    break;
                case "FRI":
                    days.add(DayOfWeek.FRIDAY);
                    break;
                case "SAT":
                    days.add(DayOfWeek.SATURDAY);
                    break;
                case "SUN":
                    days.add(DayOfWeek.SUNDAY);
                    break;
                default:
                    throw new IllegalArgumentException("无效的星期几: " + dayStr);
            }
        }