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 | 68 ++++++++++++++++++++++++++++++++--
1 files changed, 64 insertions(+), 4 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 b5bb664..29b9c3a 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
@@ -4,6 +4,9 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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;
@@ -11,6 +14,8 @@
import com.ruoyi.device.mapper.DeviceMaintenanceMapper;
import com.ruoyi.device.pojo.DeviceMaintenance;
import com.ruoyi.device.service.IDeviceMaintenanceService;
+import com.ruoyi.device.vo.DeviceMaintenanceVo;
+import com.ruoyi.device.vo.DeviceRepairVo;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.measuringinstrumentledger.mapper.SparePartsMapper;
import com.ruoyi.measuringinstrumentledger.pojo.SpareParts;
@@ -23,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;
@@ -34,6 +42,7 @@
private final DeviceMaintenanceMapper deviceMaintenanceMapper;
private final SparePartsMapper sparePartsMapper;
private final SparePartsRequisitionRecordService sparePartsRequisitionRecordService;
+ private final FileUtil fileUtil;
@Override
public IPage<DeviceMaintenanceDto> queryPage(Page page, DeviceMaintenanceDto deviceMaintenanceDto) {
@@ -42,9 +51,12 @@
}
@Override
- public AjaxResult saveDeviceRepair(DeviceMaintenance deviceMaintenance) {
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult saveDeviceRepair(DeviceMaintenanceDto deviceMaintenance) {
boolean save = this.save(deviceMaintenance);
if (save){
+ // 澶勭悊鍥剧墖涓婁紶
+ fileUtil.saveStorageAttachmentByRecordTypeAndRecordId("file", RecordTypeEnum.DEVICE_MAINTENANCE, deviceMaintenance.getId(), deviceMaintenance.getStorageBlobDTOs());
return AjaxResult.success();
}
return AjaxResult.error();
@@ -52,7 +64,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
- public AjaxResult updateDeviceDeviceMaintenance(DeviceMaintenance deviceMaintenance) {
+ public AjaxResult updateDeviceDeviceMaintenance(DeviceMaintenanceDto deviceMaintenance) {
DeviceMaintenance oldDeviceMaintenance = this.getById(deviceMaintenance.getId());
// 澶勭悊澶囦欢浣跨敤鎯呭喌
if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(deviceMaintenance.getSparePartsUseList())) {
@@ -88,6 +100,8 @@
}
if (this.updateById(deviceMaintenance)) {
+ // 澶勭悊鍥剧墖涓婁紶
+ fileUtil.saveStorageAttachmentByRecordTypeAndRecordId("file", RecordTypeEnum.DEVICE_MAINTENANCE, deviceMaintenance.getId(), deviceMaintenance.getStorageBlobDTOs());
return AjaxResult.success();
}
return AjaxResult.error();
@@ -109,8 +123,54 @@
}
@Override
- public DeviceMaintenanceDto detailById(Long id) {
+ public DeviceMaintenanceVo detailById(Long id) {
+ DeviceMaintenanceVo vo = deviceMaintenanceMapper.detailById(id);
+ vo.setStorageBlobVOs(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.DEVICE_MAINTENANCE, id));
+ return vo;
+ }
- return deviceMaintenanceMapper.detailById(id);
+ @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