From 1db111fdf6c65fa1debadf648e4c22bd466744f8 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 18 六月 2026 16:59:29 +0800
Subject: [PATCH] feat: 设备台账上传图片
---
src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 92 insertions(+), 11 deletions(-)
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 e781672..97e9c0f 100644
--- a/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/DeviceLedgerServiceImpl.java
@@ -4,6 +4,8 @@
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.common.enums.FileNameType;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -12,27 +14,34 @@
import com.ruoyi.device.mapper.DeviceLedgerMapper;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.device.service.IDeviceLedgerService;
+import com.ruoyi.other.service.TempFileService;
import com.ruoyi.production.mapper.ProductProcessMapper;
import com.ruoyi.production.pojo.ProductProcess;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.sales.mapper.CommonFileMapper;
+import com.ruoyi.sales.pojo.CommonFile;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
@Service
@AllArgsConstructor
@Slf4j
-public class DeviceLedgerServiceImpl extends ServiceImpl<DeviceLedgerMapper, DeviceLedger> implements IDeviceLedgerService {
+public class DeviceLedgerServiceImpl extends ServiceImpl<DeviceLedgerMapper, DeviceLedger> implements IDeviceLedgerService {
@Autowired
private DeviceLedgerMapper deviceLedgerMapper;
@@ -54,13 +63,13 @@
return processCheckResult;
}
LambdaQueryWrapper<DeviceLedger> deviceLedgerLambdaQueryWrapper = new LambdaQueryWrapper<>();
- deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName,deviceLedger.getDeviceName());
+ deviceLedgerLambdaQueryWrapper.eq(DeviceLedger::getDeviceName, deviceLedger.getDeviceName());
if (this.count(deviceLedgerLambdaQueryWrapper) > 0) {
return AjaxResult.error("璁惧鍚嶇О宸插瓨鍦�");
}
boolean save = this.save(deviceLedger);
- if (save){
- return AjaxResult.success();
+ if (save) {
+ return AjaxResult.success("娣诲姞鎴愬姛", deviceLedger.getId());
}
return AjaxResult.error();
}
@@ -102,22 +111,22 @@
ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
supplierManageList.stream().forEach(deviceLedger -> {
DeviceLedgerExeclDto deviceLedgerExeclDto = new DeviceLedgerExeclDto();
- BeanUtils.copyProperties(deviceLedger,deviceLedgerExeclDto);
+ BeanUtils.copyProperties(deviceLedger, deviceLedgerExeclDto);
deviceLedgerExeclDto.setCreateUser(sysUserMapper.selectUserById(Long.valueOf(deviceLedger.getCreateUser().toString())).getUserName());
deviceLedgerExeclDtos.add(deviceLedgerExeclDto);
});
ExcelUtil<DeviceLedgerExeclDto> util = new ExcelUtil<DeviceLedgerExeclDto>(DeviceLedgerExeclDto.class);
util.exportExcel(response, deviceLedgerExeclDtos, "璁惧鍙拌处瀵煎嚭");
- }else {
+ } else {
ArrayList<Long> arrayList = new ArrayList<>();
Arrays.stream(ids).map(id -> {
- return arrayList.add( id);
+ return arrayList.add(id);
});
List<DeviceLedger> supplierManageList = deviceLedgerMapper.selectBatchIds(arrayList);
ArrayList<DeviceLedgerExeclDto> deviceLedgerExeclDtos = new ArrayList<>();
supplierManageList.stream().forEach(deviceLedger -> {
DeviceLedgerExeclDto deviceLedgerExeclDto = new DeviceLedgerExeclDto();
- BeanUtils.copyProperties(deviceLedger,deviceLedgerExeclDto);
+ BeanUtils.copyProperties(deviceLedger, deviceLedgerExeclDto);
deviceLedgerExeclDto.setCreateUser(sysUserMapper.selectUserById(Long.valueOf(deviceLedger.getCreateUser().toString())).getUserName());
deviceLedgerExeclDtos.add(deviceLedgerExeclDto);
});
@@ -134,15 +143,87 @@
userList.forEach(c -> {
DeviceLedger deviceLedger = new DeviceLedger();
SysUser sysUser = sysUserMapper.selectUserByUserName(c.getCreateUser());
- if (sysUser!=null) {
+ if (sysUser != null) {
deviceLedger.setCreateUser(sysUser.getUserId().intValue());
- }else {
+ } else {
deviceLedger.setCreateUser(SecurityUtils.getUserId().intValue());
}
- BeanUtils.copyProperties(c,deviceLedger);
+ BeanUtils.copyProperties(c, deviceLedger);
deviceLedgerMapper.insert(deviceLedger);
});
return true;
}
+
+ @Autowired
+ private CommonFileMapper commonFileMapper;
+
+ @Autowired
+ private TempFileService tempFileService;
+
+ @Override
+ public void uploadFile(MultipartFile file, Long deviceLedgerId, Integer fileType) {
+ if (file == null || file.isEmpty()) {
+ throw new ServiceException("涓婁紶澶辫触,鏂囦欢涓嶈兘涓虹┖");
+ }
+ if (deviceLedgerId == null || deviceLedgerId <= 0) {
+ throw new ServiceException("涓婁紶澶辫触,璁惧鍙拌处ID涓嶈兘涓虹┖");
+ }
+ int resolvedType = (fileType == null) ? FileNameType.EQUIPMENT_LEDGER.getValue() : fileType;
+
+ try {
+ tempFileService.uploadByCommon(file, resolvedType, deviceLedgerId);
+ } catch (Exception e) {
+ throw new ServiceException("涓婁紶澶辫触," + e.getMessage());
+ }
+ }
+
+ @Override
+ public List<CommonFile> getFiles(Long deviceLedgerId) {
+ if (deviceLedgerId == null || deviceLedgerId <= 0) {
+ return Collections.emptyList();
+ }
+
+ return commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .eq(CommonFile::getCommonId, deviceLedgerId)
+ .eq(CommonFile::getType, FileNameType.EQUIPMENT_LEDGER.getValue())
+ .orderByAsc(CommonFile::getId));
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteFile(Long fileId) {
+ if (fileId == null || fileId <= 0) {
+ throw new ServiceException("鍒犻櫎澶辫触,浼犲叆鏁版嵁寮傚父");
+ }
+ CommonFile commonFile = commonFileMapper.selectById(fileId);
+ if (commonFile == null) {
+ throw new ServiceException("鍒犻櫎澶辫触,鏂囦欢涓嶅瓨鍦�");
+ }
+ try {
+ if (commonFile.getUrl() != null && !commonFile.getUrl().isEmpty()) {
+ Files.deleteIfExists(Paths.get(commonFile.getUrl()));
+ }
+ } catch (Exception e) {
+ log.error("璁惧鍙拌处鏂囦欢鍒犻櫎澶辫触: {}", e.getMessage());
+ throw new ServiceException("鍒犻櫎澶辫触," + e.getMessage());
+ }
+ commonFileMapper.deleteById(fileId);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean deleteLedgerAndFiles(java.util.Collection<Long> ids) {
+ if (ids == null || ids.isEmpty()) {
+ throw new ServiceException("鍒犻櫎澶辫触,璇蜂紶鍏ヨ鍒犻櫎鐨勬暟鎹�");
+ }
+
+ java.util.List<CommonFile> fileList = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
+ .in(CommonFile::getCommonId, ids)
+ .eq(CommonFile::getType, FileNameType.EQUIPMENT_LEDGER.getValue()));
+ for (CommonFile commonFile : fileList) {
+ deleteFile(commonFile.getId());
+ }
+ return this.removeBatchByIds(ids);
+ }
}
--
Gitblit v1.9.3