From e772b3d8cf395e9d441419373d883601350fbf0b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 17 六月 2026 16:19:09 +0800
Subject: [PATCH] 设备保养内容字段增加
---
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java | 109 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 94 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
index 0c00da7..8aa02aa 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
@@ -1,9 +1,14 @@
package com.ruoyi.device.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.device.mapper.DeviceAreaMapper;
+import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.mapper.MaintenanceTaskMapper;
+import com.ruoyi.device.pojo.DeviceArea;
+import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.device.pojo.MaintenanceTask;
import com.ruoyi.device.service.MaintenanceTaskService;
import com.ruoyi.framework.web.domain.AjaxResult;
@@ -11,8 +16,8 @@
import com.ruoyi.inspectiontask.service.impl.TimingTaskServiceImpl;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@@ -24,23 +29,23 @@
*/
@Service
@Slf4j
+@RequiredArgsConstructor
public class MaintenanceTaskServiceImpl extends ServiceImpl<MaintenanceTaskMapper, MaintenanceTask> implements MaintenanceTaskService {
- @Autowired
- private MaintenanceTaskMapper maintenanceTaskMapper;
-
- @Autowired
- private SysUserMapper sysUserMapper;
-
- @Autowired
- private TimingTaskServiceImpl timingTaskService;
-
- @Autowired
- private MaintenanceTaskScheduler maintenanceTaskScheduler;
+ private final MaintenanceTaskMapper maintenanceTaskMapper;
+ private final SysUserMapper sysUserMapper;
+ private final TimingTaskServiceImpl timingTaskService;
+ private final MaintenanceTaskScheduler maintenanceTaskScheduler;
+ private final DeviceLedgerMapper deviceLedgerMapper;
+ private final DeviceAreaMapper deviceAreaMapper;
@Override
public AjaxResult listPage(Page page, MaintenanceTask maintenanceTask) {
- Page<MaintenanceTask> taskPage = maintenanceTaskMapper.selectPage(page, null);
+ QueryWrapper<MaintenanceTask> queryWrapper = new QueryWrapper<MaintenanceTask>().orderByDesc("create_time");
+ if (maintenanceTask.getAreaId() != null) {
+ queryWrapper.eq("area_id", maintenanceTask.getAreaId());
+ }
+ Page<MaintenanceTask> taskPage = maintenanceTaskMapper.selectPage(page, queryWrapper);
// 2. 濡傛灉娌℃湁鏁版嵁锛岀洿鎺ヨ繑鍥炵┖鍒嗛〉
if (taskPage.getRecords().isEmpty()) {
return AjaxResult.success(taskPage);
@@ -62,10 +67,33 @@
List<SysUser> users = sysUserMapper.selectUserByIds((new ArrayList<>(userIds)));
users.forEach(user -> userNickNameMap.put(user.getUserId(), user.getNickName()));
}
+ Map<Long, DeviceLedger> ledgerMap = new HashMap<>();
+ Set<Long> areaIds = new HashSet<>();
taskPage.getRecords().forEach(task -> {
- // 璁剧疆鐧昏浜烘樀绉�
+ if (task.getTaskId() != null) {
+ DeviceLedger deviceLedger = deviceLedgerMapper.selectById(task.getTaskId());
+ if (deviceLedger != null) {
+ ledgerMap.put(task.getTaskId(), deviceLedger);
+ if (deviceLedger.getAreaId() != null) {
+ areaIds.add(deviceLedger.getAreaId());
+ }
+ }
+ }
+ });
+ Map<Long, String> areaNameMap = new HashMap<>();
+ if (!areaIds.isEmpty()) {
+ List<DeviceArea> areas = deviceAreaMapper.selectBatchIds(new ArrayList<>(areaIds));
+ areas.forEach(area -> areaNameMap.put(area.getId(), area.getAreaName()));
+ }
+ taskPage.getRecords().forEach(task -> {
+ // 鐠佸墽鐤嗛惂鏄忣唶娴滅儤妯�缁�?
if (task.getRegistrantId() != null) {
- task.setRegistrant(userNickNameMap.getOrDefault(task.getRegistrantId(), "鏈煡鐢ㄦ埛"));
+ task.setRegistrant(userNickNameMap.getOrDefault(task.getRegistrantId(), "閺堫亞鐓¢悽銊﹀煕"));
+ }
+ DeviceLedger deviceLedger = ledgerMap.get(task.getTaskId());
+ if (deviceLedger != null) {
+ task.setAreaId(deviceLedger.getAreaId());
+ task.setAreaName(areaNameMap.getOrDefault(deviceLedger.getAreaId(), ""));
}
});
return AjaxResult.success(taskPage);
@@ -73,6 +101,10 @@
@Override
public AjaxResult add(MaintenanceTask maintenanceTask) {
+ DeviceLedger deviceLedger = deviceLedgerMapper.selectById(maintenanceTask.getTaskId());
+ if (deviceLedger != null) {
+ maintenanceTask.setAreaId(deviceLedger.getAreaId());
+ }
maintenanceTask.setActive(true);
// 璁$畻棣栨鎵ц鏃堕棿
TimingTask task = new TimingTask();
@@ -90,6 +122,10 @@
@Override
public AjaxResult updateByMaintenanceTaskId(MaintenanceTask maintenanceTask) {
MaintenanceTask maintenanceTask1 = maintenanceTaskMapper.selectById(maintenanceTask.getId());
+ DeviceLedger deviceLedger = deviceLedgerMapper.selectById(maintenanceTask.getTaskId());
+ if (deviceLedger != null) {
+ maintenanceTask.setAreaId(deviceLedger.getAreaId());
+ }
if (maintenanceTask1 == null) {
return AjaxResult.warn("娌℃湁姝ゆ暟鎹�");
}
@@ -111,4 +147,47 @@
}
return AjaxResult.success("鍒犻櫎鎴愬姛");
}
+
+ @Override
+ public AjaxResult changeEnable(Long id, Integer isEnabled) {
+ MaintenanceTask oldTask = maintenanceTaskMapper.selectById(id);
+ if (oldTask == null) {
+ return AjaxResult.error("淇濆吇浠诲姟涓嶅瓨鍦�");
+ }
+
+ MaintenanceTask update = new MaintenanceTask();
+ update.setId(id);
+ update.setIsEnabled(isEnabled);
+ update.setActive(isEnabled != null && isEnabled == 1);
+
+ int result = maintenanceTaskMapper.updateById(update);
+ if (result > 0) {
+ try {
+ if (isEnabled != null && isEnabled == 1) {
+ // 鍚敤锛氭仮澶嶆垨閲嶆柊璋冨害
+ if (oldTask.getIsEnabled() != null && oldTask.getIsEnabled() == 0) {
+ // 浠庣鐢ㄦ敼涓哄惎鐢紝閲嶆柊璁$畻涓嬫鎵ц鏃堕棿锛堝鏋滄病鏈夛級
+ if (oldTask.getNextExecutionTime() == null || oldTask.getNextExecutionTime().isBefore(LocalDateTime.now())) {
+ TimingTask tempTask = new TimingTask();
+ tempTask.setFrequencyType(oldTask.getFrequencyType());
+ tempTask.setFrequencyDetail(oldTask.getFrequencyDetail());
+ LocalDateTime nextTime = timingTaskService.calculateFirstExecutionTime(tempTask);
+ update.setNextExecutionTime(nextTime);
+ maintenanceTaskMapper.updateById(update);
+ }
+ maintenanceTaskScheduler.scheduleMaintenanceTask(oldTask);
+ } else {
+ maintenanceTaskScheduler.resumeMaintenanceTask(id);
+ }
+ } else {
+ // 绂佺敤锛氭殏鍋滆皟搴�
+ maintenanceTaskScheduler.pauseMaintenanceTask(id);
+ }
+ } catch (Exception e) {
+ log.error("璋冩暣淇濆吇浠诲姟璋冨害鐘舵�佸け璐�", e);
+ }
+ return AjaxResult.success("鏇存柊鎴愬姛");
+ }
+ return AjaxResult.error("鏇存柊澶辫触");
+ }
}
--
Gitblit v1.9.3