From ad45ebdf25cae54a3950bba33aa767fc7a8a43d8 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 22 五月 2026 21:26:13 +0800
Subject: [PATCH] feat: 设备台账新增附件图片上传
---
src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java | 29 +++++++-------
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java | 50 ++++++++++++++++++++++---
src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java | 17 ++++++++
src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java | 6 ++-
4 files changed, 79 insertions(+), 23 deletions(-)
diff --git a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
index f4b807d..298980e 100644
--- a/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
+++ b/src/main/java/com/ruoyi/device/controller/DeviceLedgerController.java
@@ -35,30 +35,29 @@
private DeviceMaintenanceMapper deviceMaintenanceMapper;
-
@Operation(summary = "璁惧鍙拌处鍒楄〃")
@GetMapping("/page")
- public AjaxResult page(Page page , DeviceLedgerDto deviceLedger) {
- return AjaxResult.success(deviceLedgerService.queryPage(page,deviceLedger));
+ public AjaxResult page(Page page, DeviceLedgerDto deviceLedger) {
+ return AjaxResult.success(deviceLedgerService.queryPage(page, deviceLedger));
}
@PostMapping()
@Operation(summary = "娣诲姞璁惧鍙拌处")
- public AjaxResult add(@RequestBody DeviceLedger deviceLedger) {
-
- return deviceLedgerService.saveDeviceLedger(deviceLedger);
+ public AjaxResult add(@RequestBody DeviceLedgerDto deviceLedgerDto) {
+ return deviceLedgerService.saveDeviceLedger(deviceLedgerDto);
}
@Operation(summary = "鏍规嵁id鏌ヨ璁惧鍙拌处")
@GetMapping("/{id}")
public AjaxResult detail(@PathVariable Long id) {
- return AjaxResult.success(deviceLedgerService.getById(id));
+ DeviceLedgerDto deviceLedgerDto = deviceLedgerService.getDeviceLedgerDetail(id);
+ return AjaxResult.success(deviceLedgerDto);
}
- @PutMapping ()
+ @PutMapping()
@Operation(summary = "淇敼璁惧鍙拌处")
- public AjaxResult update(@RequestBody DeviceLedger deviceLedger) {
- return deviceLedgerService.updateDeviceLedger(deviceLedger);
+ public AjaxResult update(@RequestBody DeviceLedgerDto deviceLedgerDto) {
+ return deviceLedgerService.updateDeviceLedger(deviceLedgerDto);
}
@DeleteMapping("/{ids}")
@@ -74,7 +73,7 @@
@PostMapping("export")
@Operation(summary = "瀵煎嚭璁惧鍙拌处")
public void export(HttpServletResponse response, Long[] ids) {
- deviceLedgerService.export(response, ids);
+ deviceLedgerService.export(response, ids);
}
@Operation(summary = "涓嬭浇妯℃澘")
@@ -97,9 +96,9 @@
@GetMapping("getDeviceLedger")
@Operation(summary = "鑾峰彇璁惧鍙拌处")
- public AjaxResult getDeviceLedger( ) {
+ public AjaxResult getDeviceLedger() {
return AjaxResult.success(deviceLedgerService.list(new QueryWrapper<DeviceLedger>().lambda()
- .select(DeviceLedger::getId, DeviceLedger::getDeviceName,DeviceLedger::getDeviceModel)));
+ .select(DeviceLedger::getId, DeviceLedger::getDeviceName, DeviceLedger::getDeviceModel)));
}
@GetMapping("scanDevice")
@@ -108,8 +107,8 @@
public AjaxResult scanDevice(Long id) {
List<DeviceMaintenance> list = deviceMaintenanceMapper.list1(id);
DeviceLedger deviceLedger = deviceLedgerMapper.selectById1(id);
- if (list.size()>0){
- deviceLedger.setUpdateTime(list.get(0).getMaintenanceActuallyTime());//鏈�鍚庣淮鎶ゆ椂闂�
+ if (!list.isEmpty()) {
+ deviceLedger.setUpdateTime(list.getFirst().getMaintenanceActuallyTime());//鏈�鍚庣淮鎶ゆ椂闂�
}
deviceLedger.setCreateTime(deviceLedger.getUpdateTime().plusMonths(1));//涓嬫缁存姢鏃堕棿
return AjaxResult.success(deviceLedger);
diff --git a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
index 79e0aff..8ceb915 100644
--- a/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
+++ b/src/main/java/com/ruoyi/device/dto/DeviceLedgerDto.java
@@ -12,6 +12,9 @@
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.util.List;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
/**
* 璁惧鍙拌处瀹炰綋绫�
@@ -55,6 +58,20 @@
private String supplierName;
/**
+ * 璁惧闄勪欢(鐢ㄤ簬鎺ユ敹)
+ */
+ @TableField(exist = false)
+ @Schema(description = "璁惧闄勪欢鎺ユ敹鍒楄〃")
+ private List<StorageBlobDTO> storageBlobDTOs;
+
+ /**
+ * 璁惧闄勪欢(鐢ㄤ簬杩斿洖)
+ */
+ @TableField(exist = false)
+ @Schema(description = "璁惧闄勪欢灞曠ず鍒楄〃")
+ private List<StorageBlobVO> storageBlobVOs;
+
+ /**
* 鍗曚綅
*/
private String unit;
diff --git a/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
index d34ea65..78dfcac 100644
--- a/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
+++ b/src/main/java/com/ruoyi/device/service/IDeviceLedgerService.java
@@ -14,9 +14,11 @@
public interface IDeviceLedgerService extends IService<DeviceLedger> {
IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger);
- AjaxResult saveDeviceLedger(DeviceLedger deviceLedger);
+ AjaxResult saveDeviceLedger(DeviceLedgerDto deviceLedgerDto);
- AjaxResult updateDeviceLedger(DeviceLedger deviceLedger);
+ AjaxResult updateDeviceLedger(DeviceLedgerDto deviceLedgerDto);
+
+ DeviceLedgerDto getDeviceLedgerDetail(Long id);
void export(HttpServletResponse response, Long[] ids);
diff --git a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
index 4f6ebd6..154923d 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -12,6 +12,9 @@
import com.ruoyi.device.execl.DeviceLedgerExeclDto;
import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.pojo.DeviceLedger;
+import com.ruoyi.basic.dto.StorageAttachmentDTO;
+import com.ruoyi.basic.enums.RecordTypeEnum;
+import com.ruoyi.basic.service.StorageAttachmentService;
import com.ruoyi.device.service.IDeviceLedgerService;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysUser;
@@ -36,6 +39,7 @@
private final DeviceLedgerMapper deviceLedgerMapper;
private final SysUserMapper sysUserMapper;
+ private final StorageAttachmentService storageAttachmentService;
@Override
public IPage<DeviceLedgerDto> queryPage(Page page, DeviceLedgerDto deviceLedger) {
@@ -44,25 +48,61 @@
}
@Override
- public AjaxResult saveDeviceLedger(DeviceLedger deviceLedger) {
+ public AjaxResult saveDeviceLedger(DeviceLedgerDto deviceLedgerDto) {
LambdaQueryWrapper<DeviceLedger> deviceLedgerLambdaQueryWrapper = new LambdaQueryWrapper<>();
- deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedger.getDeviceName());
+ deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedgerDto.getDeviceName());
if (this.count(deviceLedgerLambdaQueryWrapper) > 0) {
return AjaxResult.error("璁惧鍚嶇О宸插瓨鍦�");
}
+ DeviceLedger deviceLedger = new DeviceLedger();
+ BeanUtils.copyProperties(deviceLedgerDto, deviceLedger);
boolean save = this.save(deviceLedger);
if (save){
+ if (deviceLedgerDto.getStorageBlobDTOs() != null) {
+ StorageAttachmentDTO attachmentDTO = new StorageAttachmentDTO();
+ attachmentDTO.setApplication("image");
+ attachmentDTO.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+ attachmentDTO.setRecordId(deviceLedger.getId());
+ attachmentDTO.setStorageBlobDTOs(deviceLedgerDto.getStorageBlobDTOs());
+ storageAttachmentService.saveStorageAttachment(attachmentDTO);
+ }
return AjaxResult.success();
}
return AjaxResult.error();
}
@Override
- public AjaxResult updateDeviceLedger(DeviceLedger deviceLedger) {
+ public AjaxResult updateDeviceLedger(DeviceLedgerDto deviceLedgerDto) {
+ DeviceLedger deviceLedger = new DeviceLedger();
+ BeanUtils.copyProperties(deviceLedgerDto, deviceLedger);
if (this.updateById(deviceLedger)) {
+ if (deviceLedgerDto.getStorageBlobDTOs() != null) {
+ StorageAttachmentDTO attachmentDTO = new StorageAttachmentDTO();
+ attachmentDTO.setApplication("image");
+ attachmentDTO.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+ attachmentDTO.setRecordId(deviceLedger.getId());
+ attachmentDTO.setStorageBlobDTOs(deviceLedgerDto.getStorageBlobDTOs());
+ storageAttachmentService.saveStorageAttachment(attachmentDTO);
+ }
return AjaxResult.success();
}
return AjaxResult.error();
+ }
+
+ @Override
+ public DeviceLedgerDto getDeviceLedgerDetail(Long id) {
+ DeviceLedger deviceLedger = this.getById(id);
+ if (deviceLedger != null) {
+ DeviceLedgerDto deviceLedgerDto = new DeviceLedgerDto();
+ BeanUtils.copyProperties(deviceLedger, deviceLedgerDto);
+ StorageAttachmentDTO dto = new StorageAttachmentDTO();
+ dto.setRecordType(RecordTypeEnum.DEVICE_LEDGER.getType());
+ dto.setRecordId(id);
+ dto.setApplication("image");
+ deviceLedgerDto.setStorageBlobVOs(storageAttachmentService.list(dto));
+ return deviceLedgerDto;
+ }
+ return null;
}
@Override
@@ -82,9 +122,7 @@
util.exportExcel(response, deviceLedgerExeclDtos, "璁惧鍙拌处瀵煎嚭");
}else {
ArrayList<Long> arrayList = new ArrayList<>();
- Arrays.stream(ids).map(id -> {
- return arrayList.add( id);
- });
+ Arrays.stream(ids).map(arrayList::add);
List<DeviceLedger> supplierManageList = deviceLedgerMapper.selectBatchIds(arrayList);
ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
supplierManageList.stream().forEach(deviceLedger -> {
--
Gitblit v1.9.3