代码调整

This commit is contained in:
2025-08-29 16:07:05 +08:00
parent 43e7688d9a
commit 59aad2c89c
6 changed files with 109 additions and 7 deletions

View File

@@ -36,6 +36,12 @@ public class GeneralInfo {
@Value("${business.tempPath}")
private String businessTempPath;
/**
* 本地存储目录
*/
@Value("${business.localStoragePath:f:\\localStoragePath}")
private String localStorePath;
/***
* 文件存储方式
* 1本地磁盘

View File

@@ -156,4 +156,15 @@ public interface OssPath {
*/
String DATA_CLEAN="dataClean/";
/***
* 组态Json文件oss路径
*/
String CONFIGURATIONPATH = "configuration/";
/***
* 组态Json文件oss文件名
*/
String CONFIGURATIONNAME = "configuration.json";
}

View File

@@ -1,6 +1,7 @@
package com.njcn.oss.utils;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.lang.UUID;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.huawei.obs.util.OBSUtil;
@@ -24,6 +25,11 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -72,7 +78,7 @@ public class FileStorageUtil {
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
filePath = dir + minIoUtils.minFileName(multipartFile.getOriginalFilename());
obsUtil.uploadMultipart(multipartFile, filePath);
} else {
} else if(generalInfo.getBusinessFileStorage() == GeneralConstant.MINIO_OSS){
try {
//把名称存入数据
MinIoUploadResDTO minIoUploadResDTO = minIoUtils.upload(multipartFile, minIossProperties.getBucket(), dir);
@@ -80,6 +86,30 @@ public class FileStorageUtil {
} catch (Exception e) {
throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR);
}
}else {
try {
// 确保目录存在
Path uploadPath = Paths.get(generalInfo.getLocalStorePath());
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
}
// 生成本地文件名可以添加时间戳或UUID防止重名
String originalFilename = multipartFile.getOriginalFilename();
String fileExtension = originalFilename.substring(originalFilename.lastIndexOf("."));
String newFilename = UUID.randomUUID().toString() + fileExtension;
// 构建完整路径
Path filePathPath = uploadPath.resolve(newFilename);
// 保存文件
multipartFile.transferTo(filePathPath.toFile());
// 返回相对路径或完整路径,根据需求调整
filePath = dir + File.separator + newFilename;
} catch (IOException e) {
throw new BusinessException("本地文件上传失败: " + e.getMessage());
}
}
return filePath;
}
@@ -122,7 +152,7 @@ public class FileStorageUtil {
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
filePath = dir + minIoUtils.minFileName(fileName);
obsUtil.uploadStream(inputStream, filePath);
} else {
} else if (generalInfo.getBusinessFileStorage() == GeneralConstant.MINIO_OSS){
try {
//把名称存入数据
MinIoUploadResDTO minIoUploadResDTO = minIoUtils.uploadStream(inputStream, minIossProperties.getBucket(), dir, minIoUtils.minFileName(fileName));
@@ -130,6 +160,33 @@ public class FileStorageUtil {
} catch (Exception e) {
throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR);
}
}else {
// 本地存储逻辑
try {
// 1. 获取本地存储路径
String localStoragePath = generalInfo.getLocalStorePath();
// 2. 确保目录存在(如果不存在则创建)
File targetDir = new File(localStoragePath +File.separator+ dir);
if (!targetDir.exists()) {
boolean created = targetDir.mkdirs();
if (!created) {
throw new IOException("本地文档目录创建失败: " + targetDir.getAbsolutePath());
}
}
// 3. 生成最终文件路径
String finalFileName = minIoUtils.minFileName(fileName); // 可选:是否重命名文件
File targetFile = new File(targetDir, finalFileName);
// 4. 写入文件(使用 try-with-resources 确保流关闭)
Files.copy(inputStream, targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
// 5. 返回相对路径
filePath = dir + finalFileName;
} catch (IOException e) {
throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR,e.getMessage());
}
}
return filePath;
}
@@ -185,8 +242,11 @@ public class FileStorageUtil {
try {
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
inputStream = obsUtil.downloadStream(filePath);
} else {
} else if(generalInfo.getBusinessFileStorage() == GeneralConstant.MINIO_OSS) {
inputStream = minIoUtils.downloadStream(minIossProperties.getBucket(), filePath);
}else {
Path path = Paths.get(generalInfo.getLocalStorePath()+File.separator+filePath);
inputStream = Files.newInputStream(path);
}
} catch (Exception exception) {
throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR);
@@ -206,8 +266,18 @@ public class FileStorageUtil {
try {
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
inputStream = obsUtil.downloadStream(filePath);
} else {
} else if(generalInfo.getBusinessFileStorage() == GeneralConstant.MINIO_OSS){
inputStream = minIoUtils.downloadStream(minIossProperties.getBucket(), filePath);
}else {
// 本地存储处理
Path path = Paths.get(generalInfo.getLocalStorePath()+File.separator+filePath);
System.out.println("下载文件路径:"+generalInfo.getLocalStorePath()+File.separator+filePath);
inputStream = Files.newInputStream(path);
// 设置下载文件名(从路径中提取)
String fileName = path.getFileName().toString();
response.setHeader("Content-Disposition",
"attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
}
} catch (Exception exception) {
throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR);

View File

@@ -16,7 +16,19 @@ public enum RunFlagEnum {
CHECK(1, "检修"),
STOP(2, "停运"),
TEST(3, "调试"),
QUIT(4, "退运");
QUIT(4, "退运"),
GW_FLAG(0,"主网"),
PW_FLAG(1,"配网"),
;
/**
* 状态

View File

@@ -1,10 +1,13 @@
package com.njcn.device.biz.utils;
import com.njcn.device.biz.enums.RunFlagEnum;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.system.enums.DicDataEnum;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Objects;
/**
* pqs
@@ -50,7 +53,7 @@ public class COverlimitUtil {
threeVoltageUnbalance(overlimit);
interharmonicCurrent(overlimit,voltageLevel);
if(lineType == 1) {
if(Objects.equals(lineType, RunFlagEnum.PW_FLAG.getStatus())) {
//配网
Float[] iHarmTem = new Float[49];
for (int i = 0; i <= 48; i++) {

View File

@@ -2947,7 +2947,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(terminalBaseExcel.getSubvScale(), DicDataTypeEnum.DEV_VOLTAGE_STAND.getName()).getData();
lineDetailMapper.insert(lineDetail);
Overlimit overlimit = new Overlimit(temp.getId(), dictData.getValue(), terminalBaseExcel.getShortCapacity(), terminalBaseExcel.getStandardCapacity(), terminalBaseExcel.getDealCapacity(), terminalBaseExcel.getDevCapacity());
Overlimit overlimit = COverlimitUtil.globalAssemble(Float.parseFloat(dictData.getValue()),terminalBaseExcel.getDealCapacity(),terminalBaseExcel.getDevCapacity(),terminalBaseExcel.getShortCapacity(),null,null);
overlimit.setId(temp.getId());
overlimitMapper.insert(overlimit);
}