附属属性相关接口修改
This commit is contained in:
parent
8d20d95bde
commit
15edf77a8e
@ -197,8 +197,8 @@ public class EquipmentController {
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/file/upload", method = RequestMethod.POST)
|
||||
public R<List<SysEquipmentDocs>> addFile(Long deviceId, String component,String folderName, List<MultipartFile> fileList) throws Exception {
|
||||
List<SysEquipmentDocs> upload = sysEquipmentService.upload(deviceId, component,folderName, fileList);
|
||||
public R<List<SysEquipmentDocs>> addFile(String folderName, List<MultipartFile> fileList){
|
||||
List<SysEquipmentDocs> upload = sysEquipmentService.upload(folderName, fileList);
|
||||
return R.success(upload);
|
||||
}
|
||||
|
||||
@ -215,16 +215,6 @@ public class EquipmentController {
|
||||
}
|
||||
response.setContentType("application/octet-stream");
|
||||
sysEquipmentService.readFileToSteam(path, response.getOutputStream());
|
||||
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/file/delete", method = RequestMethod.GET)
|
||||
public void deleteFile(String path, HttpServletResponse response) throws IOException {
|
||||
if (StringUtils.isBlank(path)){
|
||||
throw new ServiceException("请输入浏览的文件路径");
|
||||
}
|
||||
response.setContentType("application/octet-stream");
|
||||
sysEquipmentService.readFileToSteam(path, response.getOutputStream());
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -4,12 +4,15 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.das.modules.equipment.entity.SysEquipmentDocs;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ -67,4 +70,6 @@ public class SysGenExtPropsDto {
|
||||
private String mainControlSystemManufacturer;
|
||||
|
||||
private String mainControlSystemSoftwareVersion;
|
||||
|
||||
private List<SysEquipmentDocs> sysEquipmentDocsList;
|
||||
}
|
||||
|
@ -0,0 +1,71 @@
|
||||
package com.das.modules.equipment.domain.vo;
|
||||
|
||||
import com.das.modules.equipment.entity.SysEquipmentDocs;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class SysGenExtPropsVo {
|
||||
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
private String pitchSystemModel;
|
||||
|
||||
private String pitchSystemManufacturer;
|
||||
|
||||
private String blade1Model;
|
||||
|
||||
private String blade1Manufacturer;
|
||||
|
||||
private String blade1BearingModel;
|
||||
|
||||
private String blade1BearingManufacturer;
|
||||
|
||||
private String blade2Model;
|
||||
|
||||
private String blade2Manufacturer;
|
||||
|
||||
private String blade2BearingModel;
|
||||
|
||||
private String blade2BearingManufacturer;
|
||||
|
||||
private String blade3Model;
|
||||
|
||||
private String blade3Manufacturer;
|
||||
|
||||
private String blade3BearingModel;
|
||||
|
||||
private String blade3BearingManufacturer;
|
||||
|
||||
private String mainBearingModel;
|
||||
|
||||
private String mainBearingManufacturer;
|
||||
|
||||
private String gearboxModel;
|
||||
|
||||
private String gearboxManufacturer;
|
||||
|
||||
private String generatorModel;
|
||||
|
||||
private String generatorManufacturer;
|
||||
|
||||
private String converterModel;
|
||||
|
||||
private String converterManufacturer;
|
||||
|
||||
private String mainControlSystemModel;
|
||||
|
||||
private String mainControlSystemManufacturer;
|
||||
|
||||
private String mainControlSystemSoftwareVersion;
|
||||
|
||||
private List<SysEquipmentDocs> sysEquipmentDocsList;
|
||||
}
|
@ -40,11 +40,9 @@ public interface SysEquipmentService {
|
||||
|
||||
SysGenExtProps querySysEquipmentExtProps(Long id);
|
||||
|
||||
List<SysEquipmentDocs> upload(Long deviceId, String component,String folderName, List<MultipartFile> fileList) throws Exception;
|
||||
List<SysEquipmentDocs> upload(String folderName, List<MultipartFile> fileList);
|
||||
|
||||
List<SysEquipmentDocs> getFileList(Long deviceId, String component);
|
||||
|
||||
void readFileToSteam(String path, OutputStream stream);
|
||||
|
||||
void deleteFile(String path);
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.das.common.config.SessionUtil;
|
||||
import com.das.common.constant.EquipmentTypeIds;
|
||||
import com.das.common.constant.FileConstants;
|
||||
@ -65,6 +66,7 @@ import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Service
|
||||
@ -403,6 +405,14 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
|
||||
SysGenExtProps sysEquipmentExtProps = new SysGenExtProps();
|
||||
BeanCopyUtils.copy(sysGenExtPropsDto, sysEquipmentExtProps);
|
||||
sysGenExtPropsMapper.insert(sysEquipmentExtProps);
|
||||
List<SysEquipmentDocs> sysEquipmentDocsList = sysGenExtPropsDto.getSysEquipmentDocsList();
|
||||
if (CollectionUtils.isNotEmpty(sysEquipmentDocsList)){
|
||||
for (SysEquipmentDocs item : sysEquipmentDocsList){
|
||||
item.setUpdateTime(new Date());
|
||||
item.setDeviceId(sysGenExtPropsDto.getId());
|
||||
sysEquipmentDocsMapper.insert(item);
|
||||
}
|
||||
}
|
||||
return sysEquipmentExtProps;
|
||||
}
|
||||
|
||||
@ -414,6 +424,28 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
|
||||
SysGenExtProps sysEquipmentExtProps = new SysGenExtProps();
|
||||
BeanCopyUtils.copy(sysGenExtPropsDto, sysEquipmentExtProps);
|
||||
sysGenExtPropsMapper.updateById(sysEquipmentExtProps);
|
||||
List<SysEquipmentDocs> sysEquipmentDocsList = sysGenExtPropsDto.getSysEquipmentDocsList();
|
||||
if (CollectionUtils.isNotEmpty(sysEquipmentDocsList)){
|
||||
List<SysEquipmentDocs> insertList = sysEquipmentDocsList.stream().filter(item -> item.getId() == null).collect(Collectors.toList());
|
||||
sysEquipmentDocsList.removeAll(insertList);
|
||||
if (CollectionUtils.isNotEmpty(sysEquipmentDocsList)){
|
||||
List<Long> collect = sysEquipmentDocsList.stream().map(SysEquipmentDocs::getId).collect(Collectors.toList());
|
||||
QueryWrapper<SysEquipmentDocs> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("deviceid",sysGenExtPropsDto.getId());
|
||||
List<SysEquipmentDocs> sysEquipmentDocs = sysEquipmentDocsMapper.selectList(queryWrapper);
|
||||
List<SysEquipmentDocs> collectDelete = sysEquipmentDocs.stream().filter(item -> !collect.contains(item.getId())).collect(Collectors.toList());
|
||||
//删除minio文件和数据库记录
|
||||
for (SysEquipmentDocs item : collectDelete){
|
||||
deleteFile(item);
|
||||
}
|
||||
|
||||
}
|
||||
for (SysEquipmentDocs item : insertList){
|
||||
item.setUpdateTime(new Date());
|
||||
item.setDeviceId(sysGenExtPropsDto.getId());
|
||||
sysEquipmentDocsMapper.insert(item);
|
||||
}
|
||||
}
|
||||
return sysEquipmentExtProps;
|
||||
}
|
||||
|
||||
@ -426,7 +458,13 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
|
||||
List<SysEquipmentDocs> sysEquipmentDocsList = sysEquipmentDocsMapper.selectList(queryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(sysEquipmentDocsList)){
|
||||
for (SysEquipmentDocs item : sysEquipmentDocsList){
|
||||
deleteFile(item.getUrl());
|
||||
try {
|
||||
minioViewsServcie.removeFile(minioAutoProperties.getPublicBucket(),item.getUrl(),false);
|
||||
}
|
||||
catch (Exception e){
|
||||
log.error("删除文件失败{}",e);
|
||||
}
|
||||
deleteFile(item);
|
||||
sysEquipmentDocsMapper.deleteById(item.getId());
|
||||
}
|
||||
|
||||
@ -439,22 +477,27 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysEquipmentDocs> upload(Long deviceId, String component, String folderName, List<MultipartFile> fileList) throws Exception {
|
||||
public List<SysEquipmentDocs> upload(String folderName, List<MultipartFile> fileList){
|
||||
List<SysEquipmentDocs> result = new ArrayList<>();
|
||||
for (MultipartFile file : fileList) {
|
||||
DeviceInfoCache deviceInfoCache = equipmentCache.getDeviceInfoCacheById(deviceId);
|
||||
String parent = FileConstants.FILE_SEPARATOR + "WindTurbine" + FileConstants.FILE_SEPARATOR + deviceInfoCache.getDeviceCode() + FileConstants.FILE_SEPARATOR + "pic";
|
||||
Long picId = IdWorker.getId();
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
if (StringUtils.isEmpty(originalFilename)){
|
||||
throw new ServiceException("文件名不存在,请检查");
|
||||
}
|
||||
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
|
||||
String fileName = picId+suffix;
|
||||
String parent = FileConstants.FILE_SEPARATOR + "WindTurbine" + FileConstants.FILE_SEPARATOR + "pic" + FileConstants.FILE_SEPARATOR + fileName;
|
||||
File scale = null;
|
||||
try {
|
||||
String url = minioViewsServcie.upload(minioAutoProperties.getPublicBucket(), parent, folderName, file);
|
||||
minioViewsServcie.uploadFile(minioAutoProperties.getPublicBucket(), file,parent,"application/octet-stream");
|
||||
scale = scale(file);
|
||||
String scaleFileName = scale.getName();
|
||||
String scaleName = scaleFileName.substring(scaleFileName.lastIndexOf("_") + 1);
|
||||
String scaleParent = FileConstants.FILE_SEPARATOR + "WindTurbine" + FileConstants.FILE_SEPARATOR + deviceInfoCache.getDeviceCode() + FileConstants.FILE_SEPARATOR + "thumbnailPic" + FileConstants.FILE_SEPARATOR + scaleName;
|
||||
String scaleParent = FileConstants.FILE_SEPARATOR + "WindTurbine" + FileConstants.FILE_SEPARATOR + "thumbnailPic" + FileConstants.FILE_SEPARATOR + fileName;
|
||||
minioViewsServcie.uploadTemFile(minioAutoProperties.getPublicBucket(), scale, scaleParent);
|
||||
String fileName = url.substring(url.lastIndexOf("/") + 1);
|
||||
SysEquipmentDocs sysEquipmentDocs = saveDocs(deviceId, component, fileName, url);
|
||||
SysEquipmentDocs sysEquipmentDocsScale = saveDocs(deviceId, component, scaleName, scaleParent);
|
||||
SysEquipmentDocs sysEquipmentDocs = new SysEquipmentDocs();
|
||||
sysEquipmentDocs.setUrl(parent);
|
||||
SysEquipmentDocs sysEquipmentDocsScale = new SysEquipmentDocs();
|
||||
sysEquipmentDocsScale.setUrl(scaleParent);
|
||||
result.add(sysEquipmentDocs);
|
||||
result.add(sysEquipmentDocsScale);
|
||||
} catch (Exception e) {
|
||||
@ -482,13 +525,10 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
|
||||
minioViewsServcie.readFileToStream(path, stream);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteFile(String path) {
|
||||
public void deleteFile(SysEquipmentDocs sysEquipmentDocs) {
|
||||
try {
|
||||
minioViewsServcie.removeFile(minioAutoProperties.getPublicBucket(), path,false);
|
||||
//删除缩略图
|
||||
String thumbnailPath = path.replace("pic", "thumbnailPic");
|
||||
minioViewsServcie.removeFile(minioAutoProperties.getPublicBucket(), thumbnailPath,false);
|
||||
sysEquipmentDocsMapper.deleteById(sysEquipmentDocs.getId());
|
||||
minioViewsServcie.removeFile(minioAutoProperties.getPublicBucket(), sysEquipmentDocs.getUrl(),false);
|
||||
}catch (Exception e){
|
||||
log.error("文件删除失败");
|
||||
}
|
||||
@ -510,20 +550,24 @@ public class SysEquipmentServiceImpl implements SysEquipmentService {
|
||||
// 创建临时文件,名称基于原始文件名
|
||||
File tempFile = File.createTempFile("thumbnail_", "_" + originalFileName);
|
||||
InputStream inputStream = file.getInputStream();
|
||||
File mulFile = null;
|
||||
try {
|
||||
File mulFile = new File(System.getProperty("java.io.tmpdir") + "/" + file.getOriginalFilename());
|
||||
mulFile = new File(System.getProperty("java.io.tmpdir") + "/" + file.getOriginalFilename());
|
||||
// 将MultipartFile写入临时文件
|
||||
file.transferTo(mulFile);
|
||||
// 生成缩略图
|
||||
ImgUtil.scale(mulFile, tempFile, 700, 700, null);
|
||||
} finally {
|
||||
IoUtil.close(inputStream);
|
||||
if (mulFile != null && mulFile.exists()){
|
||||
mulFile.delete();
|
||||
}
|
||||
|
||||
}
|
||||
return tempFile;
|
||||
}
|
||||
|
||||
public SysEquipmentDocs saveDocs(Long deviceId, String component,String fileName,String url){
|
||||
public SysEquipmentDocs deleteDocs(Long deviceId, String component,String fileName,String url){
|
||||
SysEquipmentDocs sysEquipmentDocs = new SysEquipmentDocs();
|
||||
sysEquipmentDocs.setDeviceId(deviceId);
|
||||
sysEquipmentDocs.setName(fileName);
|
||||
|
Loading…
Reference in New Issue
Block a user