From f0efc10af370936b4db47b8428eb1ca4686431f9 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 06 八月 2026 15:11:56 +0800
Subject: [PATCH] feat(home): 添加报表日期范围筛选功能并完善设备维护管理

---
 src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
index fbf03ad..29b9c3a 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.enums.RecordTypeEnum;
 import com.ruoyi.basic.utils.FileUtil;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.device.dto.DeviceMaintenanceDto;
@@ -27,6 +28,9 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -124,4 +128,49 @@
         vo.setStorageBlobVOs(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.DEVICE_MAINTENANCE, id));
         return vo;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult complete(Long id) {
+        DeviceMaintenance record = this.getById(id);
+        if (record == null) {
+            return AjaxResult.error("淇濆吇璁板綍涓嶅瓨鍦�");
+        }
+        if (record.getStatus() != null && record.getStatus() == 1) {
+            return AjaxResult.error("璇ヤ繚鍏昏褰曞凡瀹屾垚");
+        }
+        record.setStatus(1);
+        record.setMaintenanceActuallyName(SecurityUtils.getLoginUser().getNickName());
+        record.setMaintenanceActuallyTime(LocalDateTime.now());
+        this.updateById(record);
+        return AjaxResult.success();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult batchComplete(String dateStr) {
+        if (StringUtils.isBlank(dateStr)) {
+            return AjaxResult.error("鏃ユ湡鍙傛暟涓嶈兘涓虹┖");
+        }
+        LocalDate date = LocalDate.parse(dateStr);
+        LocalDateTime startOfDay = date.atStartOfDay();
+        LocalDateTime endOfDay = date.atTime(LocalTime.MAX);
+        List<DeviceMaintenance> records = this.lambdaQuery()
+                .eq(DeviceMaintenance::getStatus, 0)
+                .ge(DeviceMaintenance::getCreateTime, startOfDay)
+                .le(DeviceMaintenance::getCreateTime, endOfDay)
+                .list();
+        if (records.isEmpty()) {
+            return AjaxResult.error("璇ユ棩鏈熶笅娌℃湁寰呭畬鎴愮殑淇濆吇璁板綍");
+        }
+        String nickName = SecurityUtils.getLoginUser().getNickName();
+        LocalDateTime now = LocalDateTime.now();
+        for (DeviceMaintenance record : records) {
+            record.setStatus(1);
+            record.setMaintenanceActuallyName(nickName);
+            record.setMaintenanceActuallyTime(now);
+        }
+        this.updateBatchById(records);
+        return AjaxResult.success("宸插畬鎴� " + records.size() + " 鏉′繚鍏昏褰�");
+    }
 }

--
Gitblit v1.9.3