diff --git a/pom.xml b/pom.xml
index fb613a012..6727d4e15 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,6 +25,7 @@
pqs-process
pqs-algorithm
+
pom
灿能微服务生态系统
@@ -42,20 +43,21 @@
-
- 192.168.1.31
+
+ 192.168.1.13
-
+
192.168.1.111
192.168.1.13
${middle.server.url}:18848
-
-
-
-
+
+ fd74182b-1fce-4dba-afa7-2623b0376205
+
+
+
${middle.server.url}:8080
@@ -86,7 +88,6 @@
2.1.3
1.2.5
8.0.19
- 2.4.0
21.6.0.0
21.1.0.0
3.4.2
@@ -111,10 +112,8 @@
2.3.0
1.2.7
4.4.0
- 0.5.3
- 4.8.1
- 8.2.1
1.7.0-Hoxton
+ 4.8.1
@@ -341,29 +340,11 @@
easypoi-spring-boot-starter
${easypoi.version}
-
-
-
- me.tongfei
- progressbar
- ${progressbar.version}
-
com.squareup.okhttp3
okhttp
${okhttp.version}
-
- io.minio
- minio
- ${minio.version}
-
-
- com.squareup.okhttp3
- okhttp
-
-
-
com.baomidou
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/config/GeneralInfo.java b/pqs-common/common-core/src/main/java/com/njcn/common/config/GeneralInfo.java
index b962b65a5..56f6bea43 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/config/GeneralInfo.java
+++ b/pqs-common/common-core/src/main/java/com/njcn/common/config/GeneralInfo.java
@@ -36,4 +36,13 @@ public class GeneralInfo {
@Value("${business.tempPath}")
private String businessTempPath;
+ /***
+ * 文件存储方式
+ * 1:本地磁盘
+ * 2:华为obs
+ * 3: minioss
+ */
+ @Value("${business.file.storage}")
+ private int businessFileStorage;
+
}
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java
index 65e744d85..c76a2c16c 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java
+++ b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/response/CommonResponseEnum.java
@@ -91,6 +91,7 @@ public enum CommonResponseEnum {
ID_NOT_EXIST("A0100", "id不存在"),
TIME_ERROR("A0101","时间格式有误"),
+ CLOSE_RESOURCE_ERROR("A0102","关闭资源有误"),
;
diff --git a/pqs-common/common-minio/pom.xml b/pqs-common/common-minio/pom.xml
deleted file mode 100644
index 17fba24b2..000000000
--- a/pqs-common/common-minio/pom.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
- pqs-common
- com.njcn
- 1.0.0
-
- 4.0.0
- common-minio
- minioss的公共信息
-
- 8
- 8
- UTF-8
-
-
-
-
- com.njcn
- common-core
- ${project.version}
-
-
- com.njcn
- common-web
- ${project.version}
-
-
- me.tongfei
- progressbar
-
-
- com.squareup.okhttp3
- okhttp
-
-
- io.minio
- minio
-
-
- com.squareup.okhttp3
- okhttp
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pqs-common/common-minio/src/main/java/com/njcn/minio/bo/MinIoUploadResDTO.java b/pqs-common/common-minio/src/main/java/com/njcn/minio/bo/MinIoUploadResDTO.java
deleted file mode 100644
index 6447b79a5..000000000
--- a/pqs-common/common-minio/src/main/java/com/njcn/minio/bo/MinIoUploadResDTO.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.njcn.minio.bo;
-
-import lombok.Data;
-
-import java.io.Serializable;
-
-/**
- * @author hongawen
- * @version 1.0.0
- * @date 2022年10月16日 18:40
- */
-@Data
-public class MinIoUploadResDTO implements Serializable {
-
- private static final long serialVersionUID = 475040120689218785L;
- private String minFileName;
- private String minFileUrl;
-
- public MinIoUploadResDTO(String minFileName, String minFileUrl) {
- this.minFileName = minFileName;
- this.minFileUrl = minFileUrl;
- }
-
-}
diff --git a/pqs-common/common-minio/src/main/java/com/njcn/minio/bo/Result.java b/pqs-common/common-minio/src/main/java/com/njcn/minio/bo/Result.java
deleted file mode 100644
index 4e466f4d0..000000000
--- a/pqs-common/common-minio/src/main/java/com/njcn/minio/bo/Result.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.njcn.minio.bo;
-
-import java.io.Serializable;
-
-/**
- * @author hongawen
- * @version 1.0.0
- * @date 2022年10月16日 18:41
- */
-public class Result implements Serializable {
-
- private static final long serialVersionUID = 6273326371984994386L;
- private Integer code;
- private String msg;
- private T data;
-
- private Result() {
- this.code = 200;
- this.msg = "OK";
- }
-
- private Result(T data) {
- this.code = 200;
- this.msg = "OK";
- this.setData(data);
- }
-
- private Result(Integer code, String msg) {
- this.code = code;
- this.msg = msg;
- }
-
- private Result(Integer code, String msg, T data) {
- this.code = code;
- this.msg = msg;
- this.data = data;
- }
-
- public Result setError(Integer code, String msg) {
- this.setCode(code);
- this.setMsg(msg);
- return this;
- }
-
- public boolean isSuccess() {
- return this.getCode().equals(200);
- }
-
- public static Result ok() {
- return new Result();
- }
-
- public static Result ok(T data) {
- return new Result(data);
- }
-
- public static Result ok(Integer code, String msg) {
- return new Result(code, msg);
- }
-
- public static Result ok(Integer code, String msg, T data) {
- return new Result(code, msg, data);
- }
-
- public static Result error() {
- return new Result(500, "failed");
- }
-
- public static Result error(String msg) {
- return new Result(500, msg);
- }
-
- public static Result error(Integer code, String msg) {
- return new Result(code, msg);
- }
-
- public static Result error(Integer code, String msg, T data) {
- return new Result(code, msg, data);
- }
-
- public Integer getCode() {
- return this.code;
- }
-
- public void setCode(Integer code) {
- this.code = code;
- }
-
- public String getMsg() {
- return this.msg;
- }
-
- public void setMsg(String msg) {
- this.msg = msg;
- }
-
- public T getData() {
- return this.data;
- }
-
- public void setData(T data) {
- this.data = data;
- }
-}
diff --git a/pqs-common/common-minio/src/main/java/com/njcn/minio/config/MinIoProperties.java b/pqs-common/common-minio/src/main/java/com/njcn/minio/config/MinIoProperties.java
deleted file mode 100644
index 08b22ed43..000000000
--- a/pqs-common/common-minio/src/main/java/com/njcn/minio/config/MinIoProperties.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.njcn.minio.config;
-
-import io.minio.MinioClient;
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.stereotype.Component;
-
-/**
- * @author hongawen
- * @version 1.0.0
- * @date 2022年10月16日 18:37
- */
-@Data
-@Component
-@ConfigurationProperties(prefix = "min.io")
-public class MinIoProperties {
-
- /**
- * Minio 服务端ip
- */
- private String endpoint;
-
- private String accessKey;
-
- private String secretKey;
-
- private String bucket;
-
- @Bean
- public MinioClient getMinioClient() {
- return MinioClient.builder()
- .endpoint(endpoint).credentials(accessKey, secretKey).build();
- }
-}
diff --git a/pqs-common/common-minio/src/main/java/com/njcn/minio/utils/MinIoUtils.java b/pqs-common/common-minio/src/main/java/com/njcn/minio/utils/MinIoUtils.java
deleted file mode 100644
index 04237d254..000000000
--- a/pqs-common/common-minio/src/main/java/com/njcn/minio/utils/MinIoUtils.java
+++ /dev/null
@@ -1,595 +0,0 @@
-package com.njcn.minio.utils;
-
-import com.njcn.minio.bo.MinIoUploadResDTO;
-import com.njcn.minio.config.MinIoProperties;
-import io.minio.*;
-import io.minio.Result;
-import io.minio.http.Method;
-import io.minio.messages.Bucket;
-import io.minio.messages.DeleteError;
-import io.minio.messages.DeleteObject;
-import io.minio.messages.Item;
-import lombok.SneakyThrows;
-import org.apache.tomcat.util.http.fileupload.IOUtils;
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.*;
-
-
-@Configuration
-@EnableConfigurationProperties({MinIoProperties.class})
-public class MinIoUtils {
-
- @Resource
- private MinioClient instance;
-
- private static final String SEPARATOR_DOT = ".";
-
- private static final String SEPARATOR_ACROSS = "-";
-
- private static final String SEPARATOR_STR = "";
-
- // 存储桶名称
- private static final String chunkBucKet = "miniobucket";
-
- /**
- * 不排序
- */
- public final static boolean NOT_SORT = false;
-
- /**
- * 排序
- */
- public final static boolean SORT = true;
-
- /**
- * 默认过期时间(分钟)
- */
- private final static Integer DEFAULT_EXPIRY = 60;
-
- /**
- * 删除分片
- */
- public final static boolean DELETE_CHUNK_OBJECT = true;
- /**
- * 不删除分片
- */
- public final static boolean NOT_DELETE_CHUNK_OBJECT = false;
-
- /**
- * 判断桶是否存在
- * @param bucketName 桶名
- * @return boolean
- * @author exe.wangtaotao
- * @date 2020/10/21 16:33
- */
- public boolean bucketExists(String bucketName) {
- try {
- return instance.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- }
-
-
- /**
- * 创建存储桶
- * 创建 bucket
- *
- * @param bucketName 桶名
- */
- public void makeBucket(String bucketName) {
- try {
- boolean isExist = bucketExists(bucketName);
- if (!isExist) {
- instance.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * @return java.util.List
- * @Description 获取文件存储服务的所有存储桶名称
- * @author exe.wangtaotao
- * @date 2020/10/21 16:35
- */
- public List listBucketNames() {
- List bucketList = listBuckets();
- List bucketListName = new ArrayList<>();
- for (Bucket bucket : bucketList) {
- bucketListName.add(bucket.name());
- }
- return bucketListName;
- }
-
- /**
- * @return java.util.List
- * @Description 列出所有存储桶
- */
- @SneakyThrows
- private List listBuckets() {
- return instance.listBuckets();
- }
-
-
- /**
- * 获取对象文件名称列表
- *
- * @param bucketName 存储桶名称
- * @param prefix 对象名称前缀(文件夹 /xx/xx/xxx.jpg 中的 /xx/xx/)
- * @return objectNames
- */
- public List listObjectNames(String bucketName, String prefix) {
- return listObjectNames(bucketName, prefix, NOT_SORT);
- }
-
-
- /**
- * 获取对象文件名称列表
- *
- * @param bucketName 存储桶名称
- * @param prefix 对象名称前缀(文件夹 /xx/xx/xxx.jpg 中的 /xx/xx/)
- * @param sort 是否排序(升序)
- * @return objectNames
- */
- @SneakyThrows
- public List listObjectNames(String bucketName, String prefix, Boolean sort) {
- boolean flag = bucketExists(bucketName);
- if (flag) {
- ListObjectsArgs listObjectsArgs;
- if (null == prefix) {
- listObjectsArgs = ListObjectsArgs.builder()
- .bucket(bucketName)
- .recursive(true)
- .build();
- } else {
- listObjectsArgs = ListObjectsArgs.builder()
- .bucket(bucketName)
- .prefix(prefix)
- .recursive(true)
- .build();
- }
- Iterable> chunks = instance.listObjects(listObjectsArgs);
- List chunkPaths = new ArrayList<>();
- for (Result- item : chunks) {
- chunkPaths.add(item.get().objectName());
- }
- if (sort) {
- chunkPaths.sort(new Str2IntComparator(false));
- }
- return chunkPaths;
- }
- return new ArrayList<>();
- }
-
- /**
- * 在桶下创建文件夹,文件夹层级结构根据参数决定
- *
- * @param bucket 桶名称
- * @param WotDir 格式为 xxx/xxx/xxx/
- */
- @SneakyThrows
- public String createDirectory(String bucket, String WotDir) {
- if (!this.bucketExists(bucket)) {
- return null;
- }
- instance.putObject(PutObjectArgs.builder().bucket(bucket).object(WotDir).stream(
- new ByteArrayInputStream(new byte[]{}), 0, -1)
- .build());
- return WotDir;
- }
-
-
- /**
- * 删除一个文件
- *
- * @param bucketName 桶名称
- * @param objectName /xx/xx/xxx.jpg
- */
- @SneakyThrows
- public boolean removeObject(String bucketName, String objectName) {
-
- if (!bucketExists(bucketName)) {
- return false;
- }
- instance.removeObject(
- RemoveObjectArgs.builder()
- .bucket(bucketName)
- .object(objectName)
- .build());
- return true;
- }
-
- /**
- * @param bucketName 桶名称
- * @param objectNames /xx/xx/xxx.jpg
- * @return java.util.List
- * @Description 删除指定桶的多个文件对象, 返回删除错误的对象列表,全部删除成功,返回空列表
- * @author exe.wangtaotao
- * @date 2020/10/21 16:43
- */
- @SneakyThrows
- public List removeObjects(String bucketName, List objectNames) {
- if (!bucketExists(bucketName)) {
- return new ArrayList<>();
- }
- List deleteObjects = new ArrayList<>(objectNames.size());
- for (String objectName : objectNames) {
- deleteObjects.add(new DeleteObject(objectName));
- }
- List deleteErrorNames = new ArrayList<>();
- Iterable> results = instance.removeObjects(
- RemoveObjectsArgs.builder()
- .bucket(bucketName)
- .objects(deleteObjects)
- .build());
- for (Result result : results) {
- DeleteError error = result.get();
- deleteErrorNames.add(error.objectName());
- }
- return deleteErrorNames;
- }
-
-
- /**
- * 获取访问对象的外链地址
- * 获取文件的下载url
- *
- * @param bucketName 存储桶名称
- * @param objectName 对象名称
- * @param expiry 过期时间(分钟) 最大为7天 超过7天则默认最大值
- * @return viewUrl
- */
- @SneakyThrows
- public String getObjectUrl(String bucketName, String objectName, Integer expiry) {
- expiry = expiryHandle(expiry);
- return instance.getPresignedObjectUrl(
- GetPresignedObjectUrlArgs.builder()
- .method(Method.GET)
- .bucket(bucketName)
- .object(objectName)
- .expiry(expiry)
- .build()
- );
- }
-
-
- /**
- * 创建上传文件对象的外链
- *
- * @param bucketName 存储桶名称
- * @param objectName 欲上传文件对象的名称
- * @return uploadUrl
- */
- public String createUploadUrl(String bucketName, String objectName) {
- return createUploadUrl(bucketName, objectName, DEFAULT_EXPIRY);
- }
-
- /**
- * 创建上传文件对象的外链
- *
- * @param bucketName 存储桶名称
- * @param objectName 欲上传文件对象的名称
- * @param expiry 过期时间(分钟) 最大为7天 超过7天则默认最大值
- * @return uploadUrl
- */
- @SneakyThrows
- public String createUploadUrl(String bucketName, String objectName, Integer expiry) {
- expiry = expiryHandle(expiry);
- return instance.getPresignedObjectUrl(
- GetPresignedObjectUrlArgs.builder()
- .method(Method.PUT)
- .bucket(bucketName)
- .object(objectName)
- .expiry(expiry)
- .build()
- );
- }
-
-
-// /**
-// * 批量下载
-// *
-// * @param directory
-// * @return
-// */
-// @SneakyThrows
-// public List downLoadMore(String bucket, String directory) {
-// Iterable> objs = instance.listObjects(ListObjectsArgs.builder().bucket(bucket).prefix(directory).useUrlEncodingType(false).build());
-// List list = new ArrayList<>();
-// for (io.minio.Result
- result : objs) {
-// String objectName = null;
-// objectName = result.get().objectName();
-// ObjectStat statObject = instance.statObject(StatObjectArgs.builder().bucket(bucket).object(objectName).build());
-// if (statObject != null && statObject.length() > 0) {
-// String fileurl = instance.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().bucket(bucket).object(statObject.name()).method(Method.GET).build());
-// list.add(fileurl);
-// }
-// }
-// return list;
-// }
-//
-
- /**
- * @param multipartFile 文件
- * @param bucketName 桶名
- * @param directory image/
- * @return java.lang.String
- * @Description 文件上传
- * @author exe.wangtaotao
- * @date 2020/10/21 13:45
- */
- public MinIoUploadResDTO upload(MultipartFile multipartFile, String bucketName, String directory) throws Exception {
- if (!this.bucketExists(bucketName)) {
- this.makeBucket(bucketName);
- }
- InputStream inputStream = multipartFile.getInputStream();
- directory = Optional.ofNullable(directory).orElse("");
- String minFileName = directory + minFileName(multipartFile.getOriginalFilename());
- //上传文件到指定目录
- instance.putObject(PutObjectArgs.builder()
- .bucket(bucketName)
- .object(minFileName)
- .contentType(multipartFile.getContentType())
- .stream(inputStream, inputStream.available(), -1)
- .build());
- inputStream.close();
- // 返回生成文件名、访问路径
- return new MinIoUploadResDTO(minFileName, getObjectUrl(bucketName, minFileName, DEFAULT_EXPIRY));
- }
-
- /**
- * @param response
- * @return java.lang.String
- * @Description 下载文件
- * @author exe.wangtaotao
- * @date 2020/10/21 15:18
- */
- public void download(HttpServletResponse response, String bucketName, String minFileName) throws Exception {
- InputStream fileInputStream = instance.getObject(GetObjectArgs.builder()
- .bucket(bucketName)
- .object(minFileName).build());
- response.setHeader("Content-Disposition", "attachment;filename=" + minFileName);
- response.setContentType("application/force-download");
- response.setCharacterEncoding("UTF-8");
- IOUtils.copy(fileInputStream, response.getOutputStream());
- }
-
-
- /**
- * 批量创建分片上传外链
- *
- * @param bucketName 存储桶名称
- * @param objectMD5 欲上传分片文件主文件的MD5
- * @param chunkCount 分片数量
- * @return uploadChunkUrls
- */
- public List createUploadChunkUrlList(String bucketName, String objectMD5, Integer chunkCount) {
- if (null == bucketName) {
- bucketName = chunkBucKet;
- }
- if (null == objectMD5) {
- return null;
- }
- objectMD5 += "/";
- if (null == chunkCount || 0 == chunkCount) {
- return null;
- }
- List urlList = new ArrayList<>(chunkCount);
- for (int i = 1; i <= chunkCount; i++) {
- String objectName = objectMD5 + i + ".chunk";
- urlList.add(createUploadUrl(bucketName, objectName, DEFAULT_EXPIRY));
- }
- return urlList;
- }
-
- /**
- * 创建指定序号的分片文件上传外链
- *
- * @param bucketName 存储桶名称
- * @param objectMD5 欲上传分片文件主文件的MD5
- * @param partNumber 分片序号
- * @return uploadChunkUrl
- */
- public String createUploadChunkUrl(String bucketName, String objectMD5, Integer partNumber) {
- if (null == bucketName) {
- bucketName = chunkBucKet;
- }
- if (null == objectMD5) {
- return null;
- }
- objectMD5 += "/" + partNumber + ".chunk";
- return createUploadUrl(bucketName, objectMD5, DEFAULT_EXPIRY);
- }
-
-
- /**
- * 获取分片文件名称列表
- *
- * @param bucketName 存储桶名称
- * @param ObjectMd5 对象Md5
- * @return objectChunkNames
- */
- public List listChunkObjectNames(String bucketName, String ObjectMd5) {
- if (null == bucketName) {
- bucketName = chunkBucKet;
- }
- if (null == ObjectMd5) {
- return null;
- }
- return listObjectNames(bucketName, ObjectMd5, SORT);
- }
-
- /**
- * 获取分片名称地址HashMap key=分片序号 value=分片文件地址
- *
- * @param bucketName 存储桶名称
- * @param ObjectMd5 对象Md5
- * @return objectChunkNameMap
- */
- public Map mapChunkObjectNames(String bucketName, String ObjectMd5) {
- if (null == bucketName) {
- bucketName = chunkBucKet;
- }
- if (null == ObjectMd5) {
- return null;
- }
- List chunkPaths = listObjectNames(bucketName, ObjectMd5);
- if (null == chunkPaths || chunkPaths.size() == 0) {
- return null;
- }
- Map chunkMap = new HashMap<>(chunkPaths.size());
- for (String chunkName : chunkPaths) {
- Integer partNumber = Integer.parseInt(chunkName.substring(chunkName.indexOf("/") + 1, chunkName.lastIndexOf(".")));
- chunkMap.put(partNumber, chunkName);
- }
- return chunkMap;
- }
-
-
- /**
- * 合并分片文件成对象文件
- *
- * @param chunkBucKetName 分片文件所在存储桶名称
- * @param composeBucketName 合并后的对象文件存储的存储桶名称
- * @param chunkNames 分片文件名称集合
- * @param objectName 合并后的对象文件名称
- * @return true/false
- */
- @SneakyThrows
- public boolean composeObject(String chunkBucKetName, String composeBucketName, List chunkNames, String objectName, boolean isDeleteChunkObject) {
- if (null == chunkBucKetName) {
- chunkBucKetName = chunkBucKet;
- }
- List sourceObjectList = new ArrayList<>(chunkNames.size());
- for (String chunk : chunkNames) {
- sourceObjectList.add(
- ComposeSource.builder()
- .bucket(chunkBucKetName)
- .object(chunk)
- .build()
- );
- }
- instance.composeObject(
- ComposeObjectArgs.builder()
- .bucket(composeBucketName)
- .object(objectName)
- .sources(sourceObjectList)
- .build()
- );
- if (isDeleteChunkObject) {
- removeObjects(chunkBucKetName, chunkNames);
- }
- return true;
- }
-
- /**
- * 合并分片文件成对象文件
- *
- * @param bucketName 存储桶名称
- * @param chunkNames 分片文件名称集合
- * @param objectName 合并后的对象文件名称
- * @return true/false
- */
- public boolean composeObject(String bucketName, List chunkNames, String objectName) {
- return composeObject(chunkBucKet, bucketName, chunkNames, objectName, NOT_DELETE_CHUNK_OBJECT);
- }
-
- /**
- * 合并分片文件成对象文件
- *
- * @param bucketName 存储桶名称
- * @param chunkNames 分片文件名称集合
- * @param objectName 合并后的对象文件名称
- * @return true/false
- */
- public boolean composeObject(String bucketName, List chunkNames, String objectName, boolean isDeleteChunkObject) {
- return composeObject(chunkBucKet, bucketName, chunkNames, objectName, isDeleteChunkObject);
- }
-
- /**
- * 合并分片文件,合并成功后删除分片文件
- *
- * @param bucketName 存储桶名称
- * @param chunkNames 分片文件名称集合
- * @param objectName 合并后的对象文件名称
- * @return true/false
- */
- public boolean composeObjectAndRemoveChunk(String bucketName, List chunkNames, String objectName) {
- return composeObject(chunkBucKet, bucketName, chunkNames, objectName, DELETE_CHUNK_OBJECT);
- }
-
-
- /**
- * @param originalFileName 原始名称
- * @return java.lang.String
- * @Description 生成上传文件名
- * @author exe.wangtaotao
- * @date 2020/10/21 15:07
- */
- private String minFileName(String originalFileName) {
- String suffix = originalFileName;
- if (originalFileName.contains(SEPARATOR_DOT)) {
- suffix = originalFileName.substring(originalFileName.lastIndexOf(SEPARATOR_DOT));
- }
- return UUID.randomUUID().toString().replace(SEPARATOR_ACROSS, SEPARATOR_STR).toUpperCase() + suffix;
- }
-
-
- /**
- * 将分钟数转换为秒数
- *
- * @param expiry 过期时间(分钟数)
- * @return expiry
- */
- private static int expiryHandle(Integer expiry) {
- expiry = expiry * 60;
- if (expiry > 604800) {
- return 604800;
- }
- return expiry;
- }
-
- static class Str2IntComparator implements Comparator {
- private final boolean reverseOrder; // 是否倒序
-
- public Str2IntComparator(boolean reverseOrder) {
- this.reverseOrder = reverseOrder;
- }
-
- @Override
- public int compare(String arg0, String arg1) {
- Integer intArg0 = Integer.parseInt(arg0.substring(arg0.indexOf("/") + 1, arg0.lastIndexOf(".")));
- Integer intArg1 = Integer.parseInt(arg1.substring(arg1.indexOf("/") + 1, arg1.lastIndexOf(".")));
- if (reverseOrder) {
- return intArg1 - intArg0;
- } else {
- return intArg0 - intArg1;
- }
- }
- }
-
- /***
- * 根据url地址获取对象名称
- * @author hongawen
- * @date 2022/10/17 20:05
- * @param objectUrl 对象地址
- * @return String 对象名称
- */
- public static String getObjectNameByUrl(String objectUrl) {
- if(objectUrl.indexOf("?") < 0){
- return "unknownFile";
- }
- String objectName = objectUrl.substring(0, objectUrl.indexOf("?"));
- return objectName.substring(objectName.lastIndexOf("/") + 1);
- }
-}
diff --git a/pqs-common/common-oss/pom.xml b/pqs-common/common-oss/pom.xml
new file mode 100644
index 000000000..128a2d112
--- /dev/null
+++ b/pqs-common/common-oss/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+
+ pqs-common
+ com.njcn
+ 1.0.0
+
+
+ common-oss
+
+
+ 8
+ 8
+ UTF-8
+
+
+ 文件服务器处理模块
+
+
+
+
+ com.njcn
+ huawei-obs-springboot-starter
+ 1.0.0
+
+
+
+ com.njcn
+ minioss-springboot-starter
+ 1.0.0
+
+
+
+
\ No newline at end of file
diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/GeneralConstant.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/GeneralConstant.java
new file mode 100644
index 000000000..3f9dc5458
--- /dev/null
+++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/GeneralConstant.java
@@ -0,0 +1,24 @@
+package com.njcn.oss.constant;
+
+/**
+ * @author hongawen
+ * @version 1.0.0
+ * @date 2023年03月06日 11:07
+ */
+public interface GeneralConstant {
+
+ /***
+ * 文件存储的3种方式
+ */
+ Integer LOCAL_DISK = 1;
+ Integer HUAWEI_OBS = 2;
+ Integer MINIO_OSS = 3;
+
+ /***
+ * 波形文件的3种后缀
+ */
+ String CFG =".CFG";
+ String DAT =".DAT";
+ String HDR =".HDR";
+
+}
diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java
new file mode 100644
index 000000000..7a99c2356
--- /dev/null
+++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java
@@ -0,0 +1,46 @@
+package com.njcn.oss.constant;
+
+/**
+ * @author hongawen
+ * @version 1.0.0
+ * @date 2023年03月03日 16:29
+ */
+public interface OssPath {
+
+ /***
+ * 波形文件
+ */
+ String WAVE_DIR="comtrade/";
+
+ /***
+ * 稳态报表
+ */
+ String HARMONIC_EXCEL_REPORT="harmonic/excel/report";
+
+ /***
+ * 稳态报表模板
+ */
+ String HARMONIC_EXCEL_TEMPLATE="harmonic/excel/template";
+
+ /***
+ * 算法模块的上传路径
+ */
+ String ALGORITHM="algorithm/";
+
+ /***
+ * process模块中干扰源入网报告的上传路径
+ */
+ String LOAD_TYPE_USER="loadTypeUser/";
+
+ /***
+ * 技术监督管理 进度文件
+ */
+ String ELECTRICITY_QUALITY = "electricityQuality/";
+
+
+ /***
+ * 技术监督管理 普测结果报告
+ */
+ String SURVEY_RESULT = "surveyresult/";
+
+}
diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/enums/OssResponseEnum.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/enums/OssResponseEnum.java
new file mode 100644
index 000000000..c26740e26
--- /dev/null
+++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/enums/OssResponseEnum.java
@@ -0,0 +1,29 @@
+package com.njcn.oss.enums;
+
+import lombok.Getter;
+
+/**
+ * @author hongawen
+ * @version 1.0.0
+ * @date 2023年03月07日 22:58
+ */
+@Getter
+public enum OssResponseEnum {
+ /**
+ * 文件服务器异常响应码的范围:
+ * A00550 ~ A00649
+ */
+ UPLOAD_FILE_ERROR("A00551","上传文件服务器错误,请检查数据"),
+ DOWNLOAD_FILE_ERROR("A00554","下载文件URL不存在,请检查数据")
+
+ ;
+
+ private final String code;
+
+ private final String message;
+
+ OssResponseEnum(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+}
diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java
new file mode 100644
index 000000000..600c61a69
--- /dev/null
+++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/utils/FileStorageUtil.java
@@ -0,0 +1,102 @@
+package com.njcn.oss.utils;
+
+import com.njcn.common.config.GeneralInfo;
+import com.njcn.common.pojo.exception.BusinessException;
+import com.njcn.huawei.obs.util.OBSUtil;
+import com.njcn.minioss.bo.MinIoUploadResDTO;
+import com.njcn.minioss.config.MinIoProperties;
+import com.njcn.minioss.util.MinIoUtils;
+import com.njcn.oss.constant.GeneralConstant;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.enums.OssResponseEnum;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @author hongawen
+ * @version 1.0.0
+ * @date 2023年03月07日 22:24
+ */
+@Slf4j
+@Component
+@RequiredArgsConstructor
+public class FileStorageUtil {
+
+ private final GeneralInfo generalInfo;
+
+ /***
+ * 华为文件服务器工具类
+ * 若有方法需求或方法不满足,去私有仓库下载huawei-obs-springboot-starter模块进行二次开发
+ * 开发完毕后需deploy到maven私有仓库
+ */
+ private final OBSUtil obsUtil;
+
+ /***
+ * 免费开源Minioss文件服务器工具类
+ * 若有方法需求或方法不满足,去私有仓库下载minioss-springboot-starter模块进行二次开发
+ * 开发完毕后需deploy到maven私有仓库
+ */
+ private final MinIoUtils minIoUtils;
+
+ private final MinIoProperties minIoProperties;
+
+
+ /***
+ * 上传MultipartFile文件,
+ * @author hongawen
+ * @date 2023/3/7 22:48
+ * @param multipartFile 文件源
+ * @param dir 服务器文件存放路径
+ */
+ public String uploadMultipart(MultipartFile multipartFile, String dir) {
+ String filePath;
+ if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
+ filePath = dir + minIoUtils.minFileName(multipartFile.getOriginalFilename());
+ obsUtil.multiFileUpload(multipartFile, filePath);
+ } else {
+ try {
+ //把名称存入数据
+ MinIoUploadResDTO minIoUploadResDTO = minIoUtils.upload(multipartFile, minIoProperties.getBucket(), dir);
+ filePath = minIoUploadResDTO.getMinFileName();
+ } catch (Exception e) {
+ throw new BusinessException(OssResponseEnum.UPLOAD_FILE_ERROR);
+ }
+ }
+ return filePath;
+ }
+
+
+ /***
+ * 根据文件路径获取文件短期的一个url
+ * @author hongawen
+ * @date 2023/3/7 23:04
+ * @param filePath 文件在服务器的路径
+ */
+ public String getFileUrl(String filePath){
+ String url;
+ if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
+ url = obsUtil.getFileUrl(filePath);
+ } else {
+ url = minIoUtils.getObjectUrl(minIoProperties.getBucket(), filePath, 7 * 24 * 60 * 60);
+ }
+ return url;
+ }
+
+
+ /***
+ * 根据文件路径删除指定文件对象
+ * @author hongawen
+ * @date 2023/3/8 9:25
+ * @param fileName 文件路径名
+ */
+ public void deleteFile(String fileName){
+ if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
+ obsUtil.delete(fileName);
+ }else{
+ minIoUtils.removeObject(minIoProperties.getBucket(), fileName);
+ }
+ }
+
+}
diff --git a/pqs-common/pom.xml b/pqs-common/pom.xml
index a92424a53..d59a856b1 100644
--- a/pqs-common/pom.xml
+++ b/pqs-common/pom.xml
@@ -22,8 +22,8 @@
common-influxdb
common-poi
common-echarts
- common-minio
common-huawei
+ common-oss
diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/majornetwork/TransientStasticDataController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/majornetwork/TransientStasticDataController.java
deleted file mode 100644
index c4bc3f45e..000000000
--- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/majornetwork/TransientStasticDataController.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.njcn.device.pms.controller.majornetwork;
-
-
-import com.njcn.common.pojo.annotation.OperateInfo;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
-import com.njcn.common.pojo.enums.common.LogEnum;
-import com.njcn.common.pojo.enums.response.CommonResponseEnum;
-import com.njcn.common.pojo.response.HttpResult;
-import com.njcn.common.utils.HttpResultUtil;
-import com.njcn.device.pms.service.majornetwork.TransientPmsService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import com.njcn.web.controller.BaseController;
-
-/**
- * 暂态事件列表(PMS暂用)
- * @author hongawen
- * @since 2022-10-14
- */
-@Validated
-@Slf4j
-@RestController
-@RequestMapping("/pms/transientStasticData")
-@Api(tags = "暂态事件列表(PMS暂用)")
-@AllArgsConstructor
-public class TransientStasticDataController extends BaseController {
-
- private final TransientPmsService transientPmsService;
-
- @OperateInfo(info = LogEnum.BUSINESS_COMMON)
- @PostMapping("/getTransientAnalyseWavePms")
- @ApiOperation("暂态事件波形分析")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "timeId", value = "暂态时刻", required = true),
- @ApiImplicitParam(name = "lineId", value = "暂态监测点Id", required = true),
- @ApiImplicitParam(name = "lineType", value = "暂态监测点类型(1主网 2配网)", required = true)
- })
- public HttpResult getTransientAnalyseWavePms(@RequestParam("timeId") String timeId, @RequestParam("lineId") String lineId, @RequestParam("lineType") Integer lineType){
- String methodDescribe = getMethodDescribe("getTransientAnalyseWavePms");
- WaveDataDTO wave = transientPmsService.getTransientAnalyseWavePms(timeId, lineId,lineType);
- return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, wave, methodDescribe);
- }
-}
-
diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/TransientPmsService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/TransientPmsService.java
deleted file mode 100644
index 7dc9ff7d2..000000000
--- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/TransientPmsService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.njcn.device.pms.service.majornetwork;
-
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
-
-/**
- * TransientPmsService
- *
- * @author qijian
- * @version 1.0.0
- * @createTime 2022/12/14 - 15:09
- */
-public interface TransientPmsService {
- /**
- * 功能描述: 暂态事件波形分析
- * @param timeId
- * @param lineId
- * @param lineType
- * @return
- */
- WaveDataDTO getTransientAnalyseWavePms(String timeId, String lineId, Integer lineType);
-}
diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/TransientPmsServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/TransientPmsServiceImpl.java
deleted file mode 100644
index 5482a5786..000000000
--- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/TransientPmsServiceImpl.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.njcn.device.pms.service.majornetwork.impl;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.njcn.common.config.GeneralInfo;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
-import com.njcn.common.pojo.enums.common.ServerEnum;
-import com.njcn.common.pojo.exception.BusinessException;
-import com.njcn.common.pojo.response.HttpResult;
-import com.njcn.common.utils.PubUtils;
-import com.njcn.common.utils.wave.AnalyWave;
-import com.njcn.device.pms.api.DistributionMonitorClient;
-import com.njcn.device.pms.api.MonitorClient;
-import com.njcn.device.pms.mapper.majornetwork.DistributionMonitorMapper;
-import com.njcn.device.pms.mapper.majornetwork.MonitorMapper;
-import com.njcn.device.pms.mapper.majornetwork.TerminalMapper;
-import com.njcn.device.pms.pojo.po.DistributionMonitor;
-import com.njcn.device.pms.pojo.po.Monitor;
-import com.njcn.device.pms.pojo.po.PmsTerminal;
-import com.njcn.device.pms.service.majornetwork.EventDetailPmsService;
-import com.njcn.device.pms.service.majornetwork.IMonitorService;
-import com.njcn.device.pms.service.majornetwork.TransientPmsService;
-import com.njcn.device.pq.api.GeneralDeviceInfoClient;
-import com.njcn.device.pq.api.LineFeignClient;
-import com.njcn.device.pq.enums.DeviceResponseEnum;
-import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
-import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
-import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
-import com.njcn.event.enums.EventResponseEnum;
-import com.njcn.event.pojo.param.TransientParam;
-import com.njcn.event.pojo.param.WaveFileParam;
-import com.njcn.event.pojo.po.EventDetail;
-import com.njcn.event.pojo.po.EventDetailNew;
-import com.njcn.event.pojo.vo.TransientVO;
-import com.njcn.influxdb.mapper.InfluxDBResultMapperCn;
-import com.njcn.influxdb.param.InfluxDBPublicParam;
-import com.njcn.influxdb.utils.InfluxDBCommUtils;
-import com.njcn.influxdb.utils.InfluxDbUtils;
-import com.njcn.system.api.DicDataFeignClient;
-import com.njcn.system.enums.DicDataTypeEnum;
-import com.njcn.system.pojo.po.DictData;
-import lombok.AllArgsConstructor;
-import org.influxdb.dto.QueryResult;
-import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
-import javax.servlet.http.HttpServletResponse;
-import java.io.*;
-import java.math.BigDecimal;
-import java.text.DecimalFormat;
-import java.time.Instant;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipOutputStream;
-
-/**
- * @author: chenchao
- * @date: 2022/03/29 14:37
- * @Description: <描述>
- */
-@Service
-@AllArgsConstructor
-public class TransientPmsServiceImpl implements TransientPmsService {
-
- private final GeneralDeviceInfoClient generalDeviceInfoClient;
-
- private final DicDataFeignClient dicDataFeignClient;
-
- private final EventDetailPmsService eventDetailPmsService;
-
- private final GeneralInfo generalInfo;
-
- private final DistributionMonitorMapper distributionMonitorMapper;
-
- private final MonitorMapper monitorMapper;
-
- private final TerminalMapper terminalMapper;
-
- @Override
- public WaveDataDTO getTransientAnalyseWavePms(String timeId, String lineId,Integer lineType) {
- //初始化
- WaveDataDTO waveDataDTO;
- PmsTerminal pmsTerminal;
- DictData dictData;
- String ip = null;
- String ptTypeName = null;
- Float pt1 = null;
- Float pt2 = null;
- Float ct1 = null;
- Float ct2 = null;
-
- //根据监测点id获取信息(1主网 2配网)
- if (lineType == 1){
- Monitor monitor = monitorMapper.selectById(lineId);
- //获取ip
- pmsTerminal = terminalMapper.selectById(monitor.getTerminalId());
- ip = pmsTerminal.getIp();
- //获取接线方式
- dictData = dicDataFeignClient.getDicDataById(monitor.getTerminalWiringMethod()).getData();
- ptTypeName = dictData.getName();
- //获取pt、ct
- pt1 = monitor.getPt1();
- pt2 = monitor.getPt1();
- ct1 = monitor.getCt1();
- ct2 = monitor.getCt2();
- }else{
- DistributionMonitor distributionMonitor = distributionMonitorMapper.selectById(lineId);
- //获取ip
- pmsTerminal = terminalMapper.selectById(distributionMonitor.getTerminalId());
- ip = pmsTerminal.getIp();
- //获取接线方式
- dictData = dicDataFeignClient.getDicDataById(distributionMonitor.getTerminalWiringMethod()).getData();
- ptTypeName = dictData.getName();
- //获取pt、ct
- pt1 = distributionMonitor.getPt1();
- pt2 = distributionMonitor.getPt1();
- ct1 = distributionMonitor.getCt1();
- ct2 = distributionMonitor.getCt2();
- }
-
- EventDetail eventDetailByTime = eventDetailPmsService.getEventDetailByTime(lineId, timeId);
- String waveName = eventDetailByTime.getWaveName();
-
- AnalyWave analyWave = new AnalyWave();
- WaveDataDTO comtrade = analyWave.getComtrade(generalInfo.getBusinessWavePath() + File.separator + ip + File.separator + waveName + ".CFG", 1);
- if (Objects.isNull(comtrade.getComtradeCfgDTO())) {
- throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
- }
- waveDataDTO = analyWave.getValidData(comtrade);
- waveDataDTO.setPtType(PubUtils.ptTypeName(ptTypeName));
- waveDataDTO.setPt((double) (pt1 / pt2));
- waveDataDTO.setCt((double) (ct1 / ct2));
- return waveDataDTO;
- }
-
-}
diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/enums/EventResponseEnum.java b/pqs-event/event-api/src/main/java/com/njcn/event/enums/EventResponseEnum.java
index a4e1dda2e..a8577149a 100644
--- a/pqs-event/event-api/src/main/java/com/njcn/event/enums/EventResponseEnum.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/enums/EventResponseEnum.java
@@ -17,6 +17,9 @@ public enum EventResponseEnum {
EVENT_COMMON_ERROR("A00650","暂降模块异常"),
EVENT_NOT_FOUND("A00651","暂降事件或监测点不存在"),
ANALYSEWAVE_NOT_FOUND("A00652","波形文件找不到"),
+ WAVE_DATA_INVALID("A00654","波形文件数据缺失"),
+ DAT_DATA_ERROR("A00653","dat文件数据读取失败"),
+ RMS_DATA_ERROR("A00653","rms数据读取失败"),
/**
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/AnalogDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/AnalogDTO.java
similarity index 96%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/AnalogDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/AnalogDTO.java
index 07ea390f7..e135eb0ae 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/AnalogDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/AnalogDTO.java
@@ -1,4 +1,4 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/ComtradeCfgDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/ComtradeCfgDTO.java
similarity index 88%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/ComtradeCfgDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/ComtradeCfgDTO.java
index 1d9a21f5a..d583823b5 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/ComtradeCfgDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/ComtradeCfgDTO.java
@@ -1,6 +1,5 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
-import cn.hutool.core.date.DateTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -41,6 +40,11 @@ public class ComtradeCfgDTO implements Serializable {
// 最终采样率,计算的时候只用一个采样率
private Long finalSampleRate;
// 整个波形大小
- private Long nAllWaveNum = 0l;
+ private Long nAllWaveNum = 0L;
+
+ /***
+ * 赋值编码格式(二进制)
+ */
+ private String strBinType;
}
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/DigitalDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/DigitalDTO.java
similarity index 93%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/DigitalDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/DigitalDTO.java
index 77ab65333..32c6d4c95 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/DigitalDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/DigitalDTO.java
@@ -1,4 +1,4 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/EigenvalueDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/EigenvalueDTO.java
similarity index 90%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/EigenvalueDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/EigenvalueDTO.java
index fdcb25227..e4faf5d4f 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/EigenvalueDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/EigenvalueDTO.java
@@ -1,11 +1,10 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
-import java.util.List;
/**
* @author yxb
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/MutationDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/MutationDTO.java
similarity index 94%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/MutationDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/MutationDTO.java
index dde936d01..10c24f928 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/MutationDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/MutationDTO.java
@@ -1,4 +1,4 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/RateDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/RateDTO.java
similarity index 91%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/RateDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/RateDTO.java
index cd67cd677..6fdbce05a 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/RateDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/RateDTO.java
@@ -1,4 +1,4 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/SamplingDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/SamplingDTO.java
similarity index 95%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/SamplingDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/SamplingDTO.java
index 36c4a5e6c..d04250d24 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/SamplingDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/SamplingDTO.java
@@ -1,4 +1,4 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/SamplingsDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/SamplingsDTO.java
similarity index 92%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/SamplingsDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/SamplingsDTO.java
index 65f86d90f..1d5393af9 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/SamplingsDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/SamplingsDTO.java
@@ -1,4 +1,4 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
import lombok.Data;
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/WaveDataDTO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/WaveDataDTO.java
similarity index 95%
rename from pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/WaveDataDTO.java
rename to pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/WaveDataDTO.java
index 3fc199e3f..ada34ad7b 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/dto/wave/WaveDataDTO.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/wave/WaveDataDTO.java
@@ -1,4 +1,4 @@
-package com.njcn.common.pojo.dto.wave;
+package com.njcn.event.pojo.dto.wave;
import lombok.AllArgsConstructor;
diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/po/WavePath.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/po/WavePath.java
deleted file mode 100644
index e350848ab..000000000
--- a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/po/WavePath.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.njcn.event.pojo.po;
-
-import lombok.Data;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-/**
- * @version 1.0.0
- * @author: chenchao
- * @date: 2022/06/28 19:41
- */
-@Data
-@Component
-public class WavePath {
-
-
- @Value("${business.wavePath}")
- private String wavePath;
-
-
-}
diff --git a/pqs-event/event-boot/pom.xml b/pqs-event/event-boot/pom.xml
index 3ba8bf31b..9d26a9187 100644
--- a/pqs-event/event-boot/pom.xml
+++ b/pqs-event/event-boot/pom.xml
@@ -72,6 +72,18 @@
pq-device-api
${project.version}
+
+
+ com.njcn
+ common-oss
+ ${project.version}
+
+
+ com.squareup.okio
+ okio
+ 2.8.0
+
+
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java
index 128bea687..fe1bae09d 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/MonitorPointController.java
@@ -3,7 +3,6 @@ package com.njcn.event.controller.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
@@ -202,24 +201,6 @@ public class MonitorPointController extends BaseController {
- /**
- *监测点事件波形分析
- * @author zbj
- * @date 2022/7/27
- */
- @OperateInfo(info = LogEnum.BUSINESS_COMMON)
- @PostMapping("/getMonitorEventAnalyseWave")
- @ApiOperation("监测点事件波形分析")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "timeId", value = "时间Id", required = true),
- @ApiImplicitParam(name = "lineId", value = "监测点Id", required = true)
- })
- public HttpResult getMonitorEventAnalyseWave(@RequestParam("timeId") String timeId, @RequestParam("lineId") String lineId){
- String methodDescribe = getMethodDescribe("getMonitorEventAnalyseWave");
- WaveDataDTO wave = eventAnalysisService.getMonitorEventAnalyseWave(timeId, lineId);
- return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, wave, methodDescribe);
- }
-
/**
*监测点事件波形下载
* @author zbj
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/TransientController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/TransientController.java
index da7446b5f..c28777e3b 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/TransientController.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/TransientController.java
@@ -3,11 +3,11 @@ package com.njcn.event.controller.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
+import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import com.njcn.event.pojo.param.TransientParam;
import com.njcn.event.pojo.param.WaveFileParam;
import com.njcn.event.pojo.po.EventDetailNew;
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventAnalysisService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventAnalysisService.java
index fda135de2..3dc61a3ba 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventAnalysisService.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/EventAnalysisService.java
@@ -1,7 +1,7 @@
package com.njcn.event.service.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
+import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import com.njcn.event.pojo.param.*;
import com.njcn.event.pojo.po.EventDetail;
import com.njcn.event.pojo.vo.*;
@@ -82,12 +82,7 @@ public interface EventAnalysisService {
*/
Page getMonitorEventAnalyseQuery(EventBaseParam eventBaseParam);
- /**
- *监测点事件波形分析
- * @author zbj
- * @date 2022/7/27
- */
- WaveDataDTO getMonitorEventAnalyseWave(String timeId, String lineId);
+
/**
*监测点事件波形下载
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventAnalysisServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventAnalysisServiceImpl.java
index 69f4a4f51..66307b25b 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventAnalysisServiceImpl.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventAnalysisServiceImpl.java
@@ -4,16 +4,15 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.config.GeneralInfo;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.PubUtils;
-import com.njcn.common.utils.wave.AnalyWave;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.event.enums.EventResponseEnum;
import com.njcn.event.pojo.constant.Param;
+import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import com.njcn.event.pojo.param.*;
import com.njcn.event.pojo.po.EventDetail;
import com.njcn.event.pojo.po.EventDetailNew;
@@ -1627,55 +1626,6 @@ public class EventAnalysisServiceImpl implements EventAnalysisService {
}
- /**
- * 监测点事件波形分析
- *
- * @author zbj
- * @date 2022/7/27
- */
- @Override
- public WaveDataDTO getMonitorEventAnalyseWave(String timeId, String lineId) {
- WaveDataDTO waveDataDTO = new WaveDataDTO();
- //根据监测点id获取监测点详情
- LineDetailDataVO lineDetailData = lineFeignClient.getLineDetailData(lineId).getData();
- EventDetail eventDetailByTime = eventDetailService.getEventDetailByTime(lineId, timeId);
-
- //暂时没有进行拼接
- String ip = lineDetailData.getIp();
- String waveName = eventDetailByTime.getWaveName();
- /* if(StrUtil.isBlank(waveName)){
- throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
- }*/
-
-
- AnalyWave analyWave = new AnalyWave();
-
-
- /*WaveDataDTO comtrade = analyWave.getComtrade(generalInfo.getBusinessWavePath() + File.separator + ip + File.separator + waveName + ".CFG", 1);
- if (Objects.isNull(comtrade.getComtradeCfgDTO())) {
- throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
- }*/
-
-
- //测试用的本地路径
- WaveDataDTO comtrade = analyWave.getComtrade("C:\\Users\\CDF\\Desktop\\00-B7-8D-00-E7-15\\1_20220204_125513_383.cfg", 1);
-
-
- waveDataDTO = analyWave.getValidData(comtrade);
-
-
- waveDataDTO.setPtType(PubUtils.ptTypeName(lineDetailData.getPtType()));
- double pt1 = Double.parseDouble(lineDetailData.getPt().split("/")[0]);
- double pt2 = Double.parseDouble(lineDetailData.getPt().split("/")[1]);
- double ct1 = Double.parseDouble(lineDetailData.getCt().split("/")[0]);
- double ct2 = Double.parseDouble(lineDetailData.getCt().split("/")[1]);
-
- waveDataDTO.setPt(pt1 / pt2);
- waveDataDTO.setCt(ct1 / ct2);
-
-
- return waveDataDTO;
- }
/**
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java
index 55440b8c7..6d418ac47 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java
@@ -118,7 +118,7 @@ public class EventDetailServiceImpl implements EventDetailService {
}
stringBuilder.append(") order by time desc");
int i = (pageNum - 1)*pageSize;
- stringBuilder.append("LIMIT ").append(pageSize).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
+ stringBuilder.append(" LIMIT ").append(pageSize).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
//sql语句
String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder;
System.out.println(sql);
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java
index f1c7a8ef2..c257403bc 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java
@@ -5,11 +5,11 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.config.GeneralInfo;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
import com.njcn.common.pojo.enums.common.ServerEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.utils.PubUtils;
-import com.njcn.common.utils.wave.AnalyWave;
+import com.njcn.oss.constant.GeneralConstant;
+import com.njcn.oss.constant.OssPath;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
@@ -17,6 +17,7 @@ import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.event.enums.EventResponseEnum;
import com.njcn.event.mapper.majornetwork.TransientMapper;
+import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import com.njcn.event.pojo.param.TransientParam;
import com.njcn.event.pojo.param.WaveFileParam;
import com.njcn.event.pojo.po.EventDetail;
@@ -24,6 +25,8 @@ import com.njcn.event.pojo.po.EventDetailNew;
import com.njcn.event.pojo.vo.TransientVO;
import com.njcn.event.service.majornetwork.EventDetailService;
import com.njcn.event.service.majornetwork.TransientService;
+import com.njcn.event.utils.WaveUtil;
+import com.njcn.huawei.obs.util.OBSUtil;
import com.njcn.influxdb.mapper.InfluxDBResultMapperCn;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.utils.InfluxDBCommUtils;
@@ -45,7 +48,6 @@ import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -75,6 +77,11 @@ public class TransientServiceImpl implements TransientService {
private final InfluxDbUtils influxDbUtils;
+ private final OBSUtil obsUtil;
+
+ private final WaveUtil waveUtil;
+
+
@Override
public Page getTransientData(TransientParam transientParam) {
Page page = new Page<>();
@@ -86,7 +93,7 @@ public class TransientServiceImpl implements TransientService {
List deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(transientParam).getData();
if (!CollectionUtils.isEmpty(deviceList)) {
//获取按终端分类的监测点索引集合
- List LineIndexes = deviceList.stream().flatMap(list->list.getLineIndexes().stream()).collect(Collectors.toList());
+ List LineIndexes = deviceList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(LineIndexes)) {
//influxDB查询待分页数据总量
@@ -96,7 +103,7 @@ public class TransientServiceImpl implements TransientService {
int pages = (int) Math.ceil(data.size() * 1.0 / transientParam.getPageSize());
page.setPages(pages);*/
//influxDB分页查询
- List eventDetailData = eventDetailService.getEventDetailLimit(LineIndexes, transientParam.getSearchBeginTime(), transientParam.getSearchEndTime(), transientParam.getPageSize(), transientParam.getPageNum(),transientParam.getWaveType());
+ List eventDetailData = eventDetailService.getEventDetailLimit(LineIndexes, transientParam.getSearchBeginTime(), transientParam.getSearchEndTime(), transientParam.getPageSize(), transientParam.getPageNum(), transientParam.getWaveType());
if (!CollectionUtils.isEmpty(eventDetailData)) {
List lineIds = eventDetailData.stream().map(EventDetail::getLineId).collect(Collectors.toList());
@@ -168,32 +175,45 @@ public class TransientServiceImpl implements TransientService {
@Override
public WaveDataDTO getTransientAnalyseWave(String timeId, String lineId) {
WaveDataDTO waveDataDTO;
+ //原始数据
+ WaveDataDTO originalData;
//根据监测点id获取监测点详情
LineDetailDataVO lineDetailData = lineFeignClient.getLineDetailData(lineId).getData();
EventDetail eventDetailByTime = eventDetailService.getEventDetailByTime(lineId, timeId);
String ip = lineDetailData.getIp();
String waveName = eventDetailByTime.getWaveName();
- // TransientVO transientVO = transientMapper.getTransientDataById(lineId);
- // String name = transientVO.getName();
- // String substation = transientVO.getSubstation();
- // Double eventValue = new BigDecimal(eventDetailByTime.getEventValue()).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
- // Double v = new BigDecimal(eventValue*100).setScale(0,BigDecimal.ROUND_HALF_UP).doubleValue();
- // Double persistTime = eventDetailByTime.getPersistTime()/1000;
-
- // waveDataVO.setName("变电站名称: "+ substation +" 监测点名称: "+ name +" 发生时刻: "+ timeId +" 暂降幅值: "+ v +"% 持续时间: "+ persistTime +"s");
- // waveDataVO.setTargetName("相电压有效值");
- AnalyWave analyWave = new AnalyWave();
- // 从本地读取该事件的波形
- WaveDataDTO comtrade = analyWave.getComtrade(generalInfo.getBusinessWavePath() + File.separator + ip + File.separator + waveName + ".CFG", 1);
- if (Objects.isNull(comtrade.getComtradeCfgDTO())) {
- throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
+ String cfgPath, datPath;
+ if (generalInfo.getBusinessFileStorage() == GeneralConstant.LOCAL_DISK) {
+ cfgPath = generalInfo.getBusinessWavePath() + File.separator + ip + File.separator + waveName + GeneralConstant.CFG;
+ datPath = generalInfo.getBusinessWavePath() + File.separator + ip + File.separator + waveName + GeneralConstant.DAT;
+ InputStream cfgStream = waveUtil.getFileInputStreamByFilePath(cfgPath);
+ InputStream datStream = waveUtil.getFileInputStreamByFilePath(datPath);
+ if (Objects.isNull(cfgStream) || Objects.isNull(datStream)) {
+ throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
+ }
+ originalData = waveUtil.getComtrade(cfgStream, datStream, 1);
+// } else if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
+ } else {
+ cfgPath = OssPath.WAVE_DIR + ip + StrUtil.SLASH + waveName + GeneralConstant.CFG;
+ datPath = OssPath.WAVE_DIR + ip + StrUtil.SLASH + waveName + GeneralConstant.DAT;
+ try (
+ InputStream cfgStream = obsUtil.fileDownload(cfgPath);
+ InputStream datStream = obsUtil.fileDownload(datPath)
+ ) {
+ if (Objects.isNull(cfgStream) || Objects.isNull(datStream)) {
+ throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
+ }
+ originalData = waveUtil.getComtrade(cfgStream, datStream, 1);
+ } catch (IOException e) {
+ throw new BusinessException(EventResponseEnum.WAVE_DATA_INVALID);
+ }
}
- waveDataDTO = analyWave.getValidData(comtrade);
+ waveDataDTO = waveUtil.getValidData(originalData);
waveDataDTO.setPtType(PubUtils.ptTypeName(lineDetailData.getPtType()));
- double pt1 = Double.parseDouble(lineDetailData.getPt().split("/")[0]);
- double pt2 = Double.parseDouble(lineDetailData.getPt().split("/")[1]);
- double ct1 = Double.parseDouble(lineDetailData.getCt().split("/")[0]);
- double ct2 = Double.parseDouble(lineDetailData.getCt().split("/")[1]);
+ double pt1 = Double.parseDouble(lineDetailData.getPt().split(StrUtil.SLASH)[0]);
+ double pt2 = Double.parseDouble(lineDetailData.getPt().split(StrUtil.SLASH)[1]);
+ double ct1 = Double.parseDouble(lineDetailData.getCt().split(StrUtil.SLASH)[0]);
+ double ct2 = Double.parseDouble(lineDetailData.getCt().split(StrUtil.SLASH)[1]);
waveDataDTO.setPt(pt1 / pt2);
waveDataDTO.setCt(ct1 / ct2);
return waveDataDTO;
@@ -236,7 +256,7 @@ public class TransientServiceImpl implements TransientService {
}
@Override
- public Page getTransientValue(TransientParam transientParam){
+ public Page getTransientValue(TransientParam transientParam) {
Page page = new Page<>();
page.setSize(transientParam.getPageSize());
page.setCurrent(transientParam.getPageNum());
@@ -250,7 +270,7 @@ public class TransientServiceImpl implements TransientService {
if (!CollectionUtils.isEmpty(lineList)) {
StringBuilder stringBuilder = InfluxDBCommUtils.assToInfluxParam(lineList);
//influxDB查询待分页数据总量
- Long total = getTransientDetail(stringBuilder,transientParam);
+ Long total = getTransientDetail(stringBuilder, transientParam);
page.setTotal(total);
//分页总页数
int pages = (int) Math.ceil(transientParam.getPageNum() * 1.0 / transientParam.getPageSize());
@@ -268,8 +288,8 @@ public class TransientServiceImpl implements TransientService {
for (EventDetailNew eventDetail : eventDetailData) {
- for(AreaLineInfoVO areaLineInfoVO : r){
- if(eventDetail.getLineId().equals(areaLineInfoVO.getLineId())){
+ for (AreaLineInfoVO areaLineInfoVO : r) {
+ if (eventDetail.getLineId().equals(areaLineInfoVO.getLineId())) {
eventDetail.setLineId(areaLineInfoVO.getLineId());
eventDetail.setLineName(areaLineInfoVO.getLineName());
eventDetail.setGdName(areaLineInfoVO.getGdName());
@@ -310,22 +330,22 @@ public class TransientServiceImpl implements TransientService {
/**
* 查询数据库
*/
- private Long getTransientDetail(StringBuilder stringBuilder,TransientParam transientParam) {
+ private Long getTransientDetail(StringBuilder stringBuilder, TransientParam transientParam) {
Long total = 0L;
//组装sql语句
stringBuilder.append(" and time >= '").append(DateUtil.beginOfDay(DateUtil.parse(transientParam.getSearchBeginTime()))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse(transientParam.getSearchEndTime()))).append("'").append(InfluxDBPublicParam.TIME_ZONE);
//sql语句
String sql = "SELECT count(wave_type) FROM pqs_eventdetail WHERE " + stringBuilder;
- System.out.println("sql------------->>>"+sql);
+ System.out.println("sql------------->>>" + sql);
//结果集
QueryResult result = influxDbUtils.query(sql);
//结果集映射到对象中
List series = result.getResults().get(0).getSeries();
- if(CollUtil.isNotEmpty(series)){
- Double tem =(Double)series.get(0).getValues().get(0).get(1);
+ if (CollUtil.isNotEmpty(series)) {
+ Double tem = (Double) series.get(0).getValues().get(0).get(1);
total = tem.longValue();
}
- return total;
+ return total;
}
/**
@@ -334,31 +354,31 @@ public class TransientServiceImpl implements TransientService {
private List getTransientDetailLimit(List lineIndexes, TransientParam transientParam) {
//查询数据是否为空,不为空拼接sql语句
StringBuilder querySql = new StringBuilder();
- if(Objects.nonNull(transientParam.getEventValueMin())){
+ if (Objects.nonNull(transientParam.getEventValueMin())) {
querySql.append(" and event_value >=").append(transientParam.getEventValueMin());
}
- if(Objects.nonNull(transientParam.getEventValueMax())){
+ if (Objects.nonNull(transientParam.getEventValueMax())) {
querySql.append(" and event_value <=").append(transientParam.getEventValueMax());
}
- if(Objects.nonNull(transientParam.getPersistMin())){
+ if (Objects.nonNull(transientParam.getPersistMin())) {
querySql.append(" and persist_time >=").append(transientParam.getPersistMin());
}
- if(Objects.nonNull(transientParam.getEventValueMax())){
+ if (Objects.nonNull(transientParam.getEventValueMax())) {
querySql.append(" and persist_time <=").append(transientParam.getPersistMax());
}
- if(Objects.nonNull(transientParam.getSeverityMin())){
+ if (Objects.nonNull(transientParam.getSeverityMin())) {
querySql.append(" and severity >=").append(transientParam.getSeverityMin());
}
- if(Objects.nonNull(transientParam.getSeverityMax())){
+ if (Objects.nonNull(transientParam.getSeverityMax())) {
querySql.append(" and severity <=").append(transientParam.getSeverityMax());
}
- if(Objects.nonNull(transientParam.getFileFlag())){
+ if (Objects.nonNull(transientParam.getFileFlag())) {
querySql.append(" and file_flag = ").append(transientParam.getFileFlag());
}
- if(CollUtil.isNotEmpty(transientParam.getWaveType())) {
+ if (CollUtil.isNotEmpty(transientParam.getWaveType())) {
querySql.append(" and ( ");
for (int i = 0; i < transientParam.getWaveType().size(); i++) {
if (transientParam.getWaveType().size() - i != 1) {
@@ -368,7 +388,7 @@ public class TransientServiceImpl implements TransientService {
}
}
}
- if(CollUtil.isNotEmpty(transientParam.getEventReason())) {
+ if (CollUtil.isNotEmpty(transientParam.getEventReason())) {
querySql.append(" and ( ");
for (int i = 0; i < transientParam.getEventReason().size(); i++) {
if (transientParam.getWaveType().size() - i != 1) {
@@ -378,7 +398,7 @@ public class TransientServiceImpl implements TransientService {
}
}
}
- if(CollUtil.isNotEmpty(transientParam.getEventType())) {
+ if (CollUtil.isNotEmpty(transientParam.getEventType())) {
querySql.append(" and ( ");
for (int i = 0; i < transientParam.getEventType().size(); i++) {
if (transientParam.getEventType().size() - i != 1) {
@@ -402,8 +422,8 @@ public class TransientServiceImpl implements TransientService {
stringBuilder.append("line_id ='").append(lineIndexes.get(i)).append("') ");
}
}
- int i = (transientParam.getPageNum() - 1)*transientParam.getPageSize();
- stringBuilder.append("LIMIT ").append(transientParam.getPageSize()).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
+ int i = (transientParam.getPageNum() - 1) * transientParam.getPageSize();
+ stringBuilder.append(" LIMIT ").append(transientParam.getPageSize()).append(" OFFSET ").append(i).append(" tz('Asia/Shanghai')");
//sql语句
String sql = "SELECT * FROM pqs_eventdetail WHERE " + stringBuilder;
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/TransientService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/TransientService.java
index 3fffdad32..3fc5c4d9c 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/TransientService.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/TransientService.java
@@ -1,7 +1,7 @@
package com.njcn.event.service.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.njcn.common.pojo.dto.wave.WaveDataDTO;
+import com.njcn.event.pojo.dto.wave.WaveDataDTO;
import com.njcn.event.pojo.param.TransientParam;
import com.njcn.event.pojo.param.WaveFileParam;
import com.njcn.event.pojo.po.EventDetail;
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/utils/BitConverter.java b/pqs-event/event-boot/src/main/java/com/njcn/event/utils/BitConverter.java
new file mode 100644
index 000000000..3c44d08c9
--- /dev/null
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/utils/BitConverter.java
@@ -0,0 +1,81 @@
+package com.njcn.event.utils;
+
+public class BitConverter {
+
+ /**
+ * byte数组转换为无符号short整数
+ * @param bytes byte数组
+ * @param off 开始位置
+ * @return short整数
+ */
+ public static short byte2ToUnsignedShort(byte[] bytes, int off) {
+ int low = bytes[off]& 0xFF;
+ int high = bytes[off + 1]& 0xFF;
+ return (short)(((high & 0x00FF) << 8) | (0x00FF & low));
+ }
+
+ /**
+ * 字节转换为浮点
+ *
+ * @param b 字节(至少4个字节)
+ * @param index 开始位置
+ * @return
+ */
+ public static float byte4float(byte[] b, int index) {
+ /* b=new byte[4];
+ b[0]=-16;
+ b[1]=-1;
+ b[2]=117;
+ b[3]=66;*/
+
+ int l;
+ l = b[index + 0];
+ l &= 0xff;
+ l |= ((long) b[index + 1] << 8);
+ l &= 0xffff;
+ l |= ((long) b[index + 2] << 16);
+ l &= 0xffffff;
+ l |= ((long) b[index + 3] << 24);
+ return Float.intBitsToFloat(l);
+ }
+ /**
+ * byte数组转换为int32整数
+ * @param bytes byte数组
+ * @param off 开始位置
+ * @return int整数
+ */
+ public static int byte4ToInt(byte[] bytes, int off) {
+ int b0 = bytes[off] & 0xFF;
+ int b1 = bytes[off + 1] & 0xFF;
+ int b2 = bytes[off + 2] & 0xFF;
+ int b3 = bytes[off + 3] & 0xFF;
+ return (b3 << 24) | (b2 << 16) | (b1 << 8) | b0;
+ }
+
+ /**
+ * byte数组转换为int16整数
+ * @param bytes byte数组
+ * @param off 开始位置
+ * @return int整数
+ */
+ public static int byte2ToInt(byte[] bytes, int off) {
+ int b0 = bytes[off] & 0xFF;
+ int b1 = bytes[off + 1] & 0xFF;
+ return (b1 << 8) | b0;
+ }
+
+ /**
+ * byte数组转换为int16整数
+ * @param bytes byte数组
+ * @param off 开始位置
+ * @return int整数
+ */
+ public static long byte4ToLong(byte[] bytes, int off) {
+ long b0 = bytes[off] & 0xFF;
+ long b1 = bytes[off + 1] & 0xFF;
+ long b2 = bytes[off + 2] & 0xFF;
+ long b3 = bytes[off + 3] & 0xFF;
+
+ return (b3 << 24) | (b2 << 16) | (b1 << 8) | b0;
+ }
+}
diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/utils/wave/AnalyWave.java b/pqs-event/event-boot/src/main/java/com/njcn/event/utils/WaveUtil.java
similarity index 57%
rename from pqs-common/common-core/src/main/java/com/njcn/common/utils/wave/AnalyWave.java
rename to pqs-event/event-boot/src/main/java/com/njcn/event/utils/WaveUtil.java
index ef41e7958..080390d09 100644
--- a/pqs-common/common-core/src/main/java/com/njcn/common/utils/wave/AnalyWave.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/utils/WaveUtil.java
@@ -1,25 +1,35 @@
-package com.njcn.common.utils.wave;
+package com.njcn.event.utils;
+import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
-import com.njcn.common.pojo.dto.wave.*;
+import com.njcn.common.pojo.enums.response.CommonResponseEnum;
+import com.njcn.common.pojo.exception.BusinessException;
+import com.njcn.common.utils.wave.BitConverter;
+import com.njcn.event.enums.EventResponseEnum;
+import com.njcn.event.pojo.dto.wave.*;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
import java.io.*;
+import java.nio.file.Files;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
/**
- * @author yxb
+ * @author hongawen
* @version 1.0.0
- * @date 2022年06月02日 20:03
- * 解析comtrate文件工具类
+ * @date 2023年03月03日 10:01
*/
@Slf4j
-public class AnalyWave {
+@Component
+@RequiredArgsConstructor
+public class WaveUtil {
+
+
/******************************************
* 调用读取comtrate文件方法
* param strFilePath 波形.cfg文件路径
@@ -28,46 +38,36 @@ public class AnalyWave {
* iType == 2 App抽点要求,采样率抽点成32
* iType == 3 高级算法原始波形(大于32)
******************************************/
- private String strBinType;//结束读取cfg标志
- public WaveDataDTO getComtrade(String strFilePath, int iType) {
+ public WaveDataDTO getComtrade(InputStream cfgStream, InputStream datStream, int iType) {
WaveDataDTO waveDataDTO = new WaveDataDTO();
// 首先判断文件路径是否为空
- if(StrUtil.isNotEmpty(strFilePath)){
- File file = new File(strFilePath);
- // 判断文件是否存在
- if (file.isFile() && file.exists()) {
- // 读取cfg文件
- ComtradeCfgDTO comtradeCfgDTO = getComtradeCfg(file);
- // 为空或者未找到结束符号
- if (comtradeCfgDTO == null && !strBinType.equals("BINARY"))
- return waveDataDTO;
- /*****根据通道号计算相别** add by yexb -----Start****
- * 1、判断是否是3的倍数,是3的倍数则是3相
- * 2、假如不是3的倍数 ,是1的倍数则是单相
- ********************************************************/
- if(comtradeCfgDTO.getNAnalogNum() % 3 == 0) {
- comtradeCfgDTO.setNPhasic(3);
- }else if(comtradeCfgDTO.getNAnalogNum() % 1 == 0) {
- comtradeCfgDTO.setNPhasic(1);
- }else{
- comtradeCfgDTO.setNPhasic(3);
- }
- // 给相别幅值
- waveDataDTO.setIPhasic(comtradeCfgDTO.getNPhasic());
- // 组装解析抬头
- List lstWaveTitle = getWaveTitle(comtradeCfgDTO);
- // 解析.dat文件
- List> listWaveData = getComtradeDat(comtradeCfgDTO,strFilePath, iType);
- waveDataDTO.setComtradeCfgDTO(comtradeCfgDTO);
- waveDataDTO.setWaveTitle(lstWaveTitle);
- waveDataDTO.setListWaveData(listWaveData);
-
- /*****根据通道号计算相别** add by yexb -----end****/
- }else{
- // .cfg文件不存在
- log.info("{},CFG文件不存在!",strFilePath);
- }
+ // 读取cfg文件
+ ComtradeCfgDTO comtradeCfgDTO = getComtradeCfg(cfgStream);
+ // 为空或者未找到结束符号
+ if (comtradeCfgDTO == null || !"BINARY".equalsIgnoreCase(comtradeCfgDTO.getStrBinType())) {
+ return waveDataDTO;
}
+ /*****根据通道号计算相别** add by yexb -----Start****
+ * 1、判断是否是3的倍数,是3的倍数则是3相
+ * 2、假如不是3的倍数 ,是1的倍数则是单相
+ ********************************************************/
+ if (comtradeCfgDTO.getNAnalogNum() % 3 == 0) {
+ comtradeCfgDTO.setNPhasic(3);
+ } else {
+ comtradeCfgDTO.setNPhasic(1);
+ }
+ // 给相别幅值
+ waveDataDTO.setIPhasic(comtradeCfgDTO.getNPhasic());
+ // 组装解析抬头
+ List lstWaveTitle = getWaveTitle(comtradeCfgDTO);
+ // 解析.dat文件
+ List> listWaveData = getComtradeDat(comtradeCfgDTO, datStream, iType);
+ waveDataDTO.setComtradeCfgDTO(comtradeCfgDTO);
+ waveDataDTO.setWaveTitle(lstWaveTitle);
+ waveDataDTO.setListWaveData(listWaveData);
+
+ /*****根据通道号计算相别** add by yexb -----end****/
+
return waveDataDTO;
}
@@ -78,72 +78,76 @@ public class AnalyWave {
**********************************/
@SuppressWarnings("unused")
public WaveDataDTO getValidData(WaveDataDTO waveDataDTO) {
- ComtradeCfgDTO comtradeCfgDTO = waveDataDTO.getComtradeCfgDTO();//CFG 配置文件
- List> lstWave = waveDataDTO.getListWaveData();//瞬时波形值
- List> listRms = new ArrayList<>();//返回rms的值
+ //CFG 配置文件
+ ComtradeCfgDTO comtradeCfgDTO = waveDataDTO.getComtradeCfgDTO();
+ //瞬时波形值
+ List> lstWave = waveDataDTO.getListWaveData();
+ //返回rms的值
+ List> listRms = new ArrayList<>();
/*float fs = nOneWaveNum;
int nWaveNum = (int) nAllWaveNum;*/
- int HalfTs = comtradeCfgDTO.getFinalSampleRate().intValue();// 全波有效值 (int)fs / 2;//半波有效值
+ // 全波有效值 (int)fs / 2;//半波有效值
+ int halfTs = comtradeCfgDTO.getFinalSampleRate().intValue();
// 计算有效值算法
/*********************************
* modify by yexibao 2020-10-29
* 增加多波形算法 ---------start
********************************/
- double iWave = 0 ;
- int nPhasic = 0;// 相别
- List> listRmsMin =new ArrayList<>();//存放RMS值的最小值
- if(lstWave.size() > 0){
+ double iWave;
+ // 相别
+ int nPhasic;
+ //存放RMS值的最小值
+ List> listRmsMin = new ArrayList<>();
+ if (lstWave.size() > 0) {
nPhasic = comtradeCfgDTO.getNPhasic();
//ComtradeCfg.nAnalogNum为值的个数(-1的原因是一个存的是时间)
- iWave = Math.floor((lstWave.get(0).size() -1) / nPhasic);
+ iWave = Math.floor((lstWave.get(0).size() - 1) / (double) nPhasic);
List tmpListRms;
List tmpListRmsMin;
//增加RMS的最小值
- double fMinTime = 0.0 , fMinValue = 0.0;
-
+ double fMinTime = 0.0, fMinValue = 0.0;
//每一项一项计算
- for(int j = 0; j < iWave; j ++){
+ for (int j = 0; j < iWave; j++) {
// 实例化
tmpListRmsMin = new ArrayList<>();
-
- double fSumA = 0.0, fSumB= 0.0, fSumC = 0.0;
- double fValidA = 0.0, fValidB = 0.0, fValidC = 0.0;
+ double fSumA = 0.0, fSumB = 0.0, fSumC = 0.0;
+ double fValidA, fValidB, fValidC;
//循环原始数据
for (int i = 0; i < lstWave.size(); i++) {
- // 当第一次循环的时候实例化,其余的获取已有的List
- List tmpListValue = lstWave.get(i); //获取每一项的值
+ // 当第一次循环的时候实例化,其余的获取已有的List//获取每一项的值
+ List tmpListValue = lstWave.get(i);
if (j == 0) {
tmpListRms = new ArrayList<>();
- tmpListRms.add(tmpListValue.get(0));//获取时间
+ //获取时间
+ tmpListRms.add(tmpListValue.get(0));
listRms.add(tmpListRms);
- } else
+ } else {
tmpListRms = listRms.get(i);
+ }
//包含了时间、电压(A、B、C)三相、电流(A、B、C)三相
if (tmpListValue.size() >= 2) {
//电压有效值算法,根据相别进行处理
- switch(comtradeCfgDTO.getNPhasic()) {
+ switch (comtradeCfgDTO.getNPhasic()) {
case 1:
fSumA += Math.pow(tmpListValue.get(1 + nPhasic * j), 2);
- if (i >= HalfTs)// 计算有效值
- {
- List forwardListValue = lstWave.get(i - HalfTs);//获取前推周波的值
+ // 计算有效值
+ if (i >= halfTs) {
+ //获取前推周波的值
+ List forwardListValue = lstWave.get(i - halfTs);
fSumA -= Math.pow(forwardListValue.get(1 + nPhasic * j), 2);
}
- fValidA = Math.sqrt(fSumA / HalfTs);
-
+ fValidA = Math.sqrt(fSumA / halfTs);
tmpListRms.add((float) (Math.round(fValidA * 100)) / 100);
- listRms.set(i,tmpListRms);
-
+ listRms.set(i, tmpListRms);
// 最小值判断
- if (i >= HalfTs){
- if(i == HalfTs){
+ if (i >= halfTs) {
+ if (i == halfTs) {
fMinValue = fValidA;
fMinTime = tmpListValue.get(0);
- }
- else{
- if(fValidA < fMinValue){
+ } else {
+ if (fValidA < fMinValue) {
fMinValue = fValidA;
fMinTime = tmpListValue.get(0);
}
@@ -153,31 +157,31 @@ public class AnalyWave {
case 2:
fSumA += Math.pow(tmpListValue.get(1 + nPhasic * j), 2);
fSumB += Math.pow(tmpListValue.get(2 + nPhasic * j), 2);
- if (i >= HalfTs)// 计算有效值
- {
- List forwardListValue = lstWave.get(i - HalfTs);//获取前推周波的值
+ // 计算有效值
+ if (i >= halfTs) {
+ //获取前推周波的值
+ List forwardListValue = lstWave.get(i - halfTs);
fSumA -= Math.pow(forwardListValue.get(1 + nPhasic * j), 2);
fSumB -= Math.pow(forwardListValue.get(2 + nPhasic * j), 2);
}
- fValidA = Math.sqrt(fSumA / HalfTs);
- fValidB = Math.sqrt(fSumB / HalfTs);
+ fValidA = Math.sqrt(fSumA / halfTs);
+ fValidB = Math.sqrt(fSumB / halfTs);
tmpListRms.add((float) (Math.round(fValidA * 100)) / 100);
tmpListRms.add((float) (Math.round(fValidB * 100)) / 100);
- listRms.set(i,tmpListRms);
+ listRms.set(i, tmpListRms);
// 最小值判断
- if (i >= HalfTs){
- if(i == HalfTs){
+ if (i >= halfTs) {
+ if (i == halfTs) {
fMinValue = fValidA;
fMinTime = tmpListValue.get(0);
- }
- else{
- if(fValidA < fMinValue){
+ } else {
+ if (fValidA < fMinValue) {
fMinValue = fValidA;
fMinTime = tmpListValue.get(0);
}
- if(fValidB < fMinValue){
+ if (fValidB < fMinValue) {
fMinValue = fValidB;
fMinTime = tmpListValue.get(0);
}
@@ -188,87 +192,94 @@ public class AnalyWave {
fSumA += Math.pow(tmpListValue.get(1 + nPhasic * j), 2);
fSumB += Math.pow(tmpListValue.get(2 + nPhasic * j), 2);
fSumC += Math.pow(tmpListValue.get(3 + nPhasic * j), 2);
- if (i >= HalfTs)// 计算有效值
- {
- List forwardListValue = lstWave.get(i - HalfTs);//获取前推周波的值
+ // 计算有效值
+ if (i >= halfTs) {
+ //获取前推周波的值
+ List forwardListValue = lstWave.get(i - halfTs);
fSumA -= Math.pow(forwardListValue.get(1 + nPhasic * j), 2);
fSumB -= Math.pow(forwardListValue.get(2 + nPhasic * j), 2);
fSumC -= Math.pow(forwardListValue.get(3 + nPhasic * j), 2);
}
- fValidA = Math.sqrt(fSumA / HalfTs);
- fValidB = Math.sqrt(fSumB / HalfTs);
- fValidC = Math.sqrt(fSumC / HalfTs);
+ fValidA = Math.sqrt(fSumA / halfTs);
+ fValidB = Math.sqrt(fSumB / halfTs);
+ fValidC = Math.sqrt(fSumC / halfTs);
tmpListRms.add((float) (Math.round(fValidA * 100)) / 100);
tmpListRms.add((float) (Math.round(fValidB * 100)) / 100);
tmpListRms.add((float) (Math.round(fValidC * 100)) / 100);
- listRms.set(i,tmpListRms);
+ listRms.set(i, tmpListRms);
// 最小值判断
- if (i >= HalfTs){
- if(i == HalfTs){
+ if (i >= halfTs) {
+ if (i == halfTs) {
fMinValue = fValidA;
fMinTime = tmpListValue.get(0);
- }
- else{
- if(fValidA < fMinValue){
+ } else {
+ if (fValidA < fMinValue) {
fMinValue = fValidA;
fMinTime = tmpListValue.get(0);
}
- if(fValidB < fMinValue){
+ if (fValidB < fMinValue) {
fMinValue = fValidB;
fMinTime = tmpListValue.get(0);
}
- if(fValidC < fMinValue){
+ if (fValidC < fMinValue) {
fMinValue = fValidC;
fMinTime = tmpListValue.get(0);
}
}
}
break;
+ default:
+ break;
}
}
}
-
- //增加最小值时间,最小值
- tmpListRmsMin.add((float)fMinTime);//获取时间
- tmpListRmsMin.add((float)(Math.round(fMinValue * 100)) / 100);//获取时间
+ //增加最小值时间,最小值//获取时间
+ tmpListRmsMin.add((float) fMinTime);
+ //获取时间
+ tmpListRmsMin.add((float) (Math.round(fMinValue * 100)) / 100);
listRmsMin.add(tmpListRmsMin);
}
//过滤前一个周波
//HalfTs表示一个周波
try {
- for (int i = 0; i < HalfTs; i++) {
- //电压有效值算法
- List tmpNewListRms = new ArrayList<>();//没相具体的值
- for(int j = 0; j < iWave; j ++) {
- if (j == 0)
- tmpNewListRms.add(listRms.get(i).get(0));//获取时间
-
- switch(nPhasic) {
+ for (int i = 0; i < halfTs; i++) {
+ //电压有效值算法 //没相具体的值
+ List tmpNewListRms = new ArrayList<>();
+ for (int j = 0; j < iWave; j++) {
+ if (j == 0) {
+ //获取时间
+ tmpNewListRms.add(listRms.get(i).get(0));
+ }
+ switch (nPhasic) {
case 1:
- tmpNewListRms.add(listRms.get(i + HalfTs).get(1 + nPhasic * j));
+ tmpNewListRms.add(listRms.get(i + halfTs).get(1 + nPhasic * j));
break;
case 2:
- tmpNewListRms.add(listRms.get(i + HalfTs).get(1 + nPhasic * j));
- tmpNewListRms.add(listRms.get(i + HalfTs).get(2 + nPhasic * j));
+ tmpNewListRms.add(listRms.get(i + halfTs).get(1 + nPhasic * j));
+ tmpNewListRms.add(listRms.get(i + halfTs).get(2 + nPhasic * j));
break;
case 3:
- tmpNewListRms.add(listRms.get(i + HalfTs).get(1 + nPhasic * j));
- tmpNewListRms.add(listRms.get(i + HalfTs).get(2 + nPhasic * j));
- tmpNewListRms.add(listRms.get(i + HalfTs).get(3 + nPhasic * j));
+ tmpNewListRms.add(listRms.get(i + halfTs).get(1 + nPhasic * j));
+ tmpNewListRms.add(listRms.get(i + halfTs).get(2 + nPhasic * j));
+ tmpNewListRms.add(listRms.get(i + halfTs).get(3 + nPhasic * j));
+ break;
+ default:
break;
}
}
- listRms.set(i, tmpNewListRms);//重新赋值
+ //重新赋值
+ listRms.set(i, tmpNewListRms);
}
} catch (Exception e) {
- // TODO 更改收个周波值出错
+ throw new BusinessException(EventResponseEnum.RMS_DATA_ERROR);
}
}
waveDataDTO.setListRmsData(listRms);
- waveDataDTO.setListRmsMinData(listRmsMin);//RMS最小值
+ //RMS最小值
+ waveDataDTO.setListRmsMinData(listRmsMin);
return waveDataDTO;
}
@@ -279,196 +290,221 @@ public class AnalyWave {
* param blType 计算方式 true:浮动门槛 false:固定门槛
*****************************/
public List getEigenvalue(WaveDataDTO waveDataDTO, boolean blType) {
- ComtradeCfgDTO comtradeCfgDTO = waveDataDTO.getComtradeCfgDTO();//CFG 配置文件
- List> lstWave = waveDataDTO.getListWaveData();// 瞬时波形值
- Long finalSampleRate = comtradeCfgDTO.getFinalSampleRate();//获取最终采样率
- List lstEigenvalueDTO =new ArrayList<>();// 返回值
+ //CFG 配置文件
+ ComtradeCfgDTO comtradeCfgDTO = waveDataDTO.getComtradeCfgDTO();
+ // 瞬时波形值
+ List> lstWave = waveDataDTO.getListWaveData();
+ //获取最终采样率
+ Long finalSampleRate = comtradeCfgDTO.getFinalSampleRate();
+ // 返回值
+ List lstEigenvalueDTO = new ArrayList<>();
// 必须包含了瞬时波形
if (lstWave.size() > 0) {
- MutationDTO mutationDTO = getMutationValue(lstWave,finalSampleRate);
+ MutationDTO mutationDTO = getMutationValue(lstWave, finalSampleRate);
//获取突变量和RMS值
- if(mutationDTO != null){
- if (mutationDTO.getListRms_Offline().size() > 0 && mutationDTO.getListTBL_Offline().size() > 0) {
- lstEigenvalueDTO = getEventValue(lstWave,mutationDTO,comtradeCfgDTO,blType);
- }
+ if (mutationDTO.getListRms_Offline().size() > 0 && mutationDTO.getListTBL_Offline().size() > 0) {
+ lstEigenvalueDTO = getEventValue(lstWave, mutationDTO, comtradeCfgDTO, blType);
}
- }
- else{
+ } else {
lstEigenvalueDTO = null;
}
return lstEigenvalueDTO;
}
+ /***
+ * 获取波形文件流,存在则返回inputStream,不存在则返回null
+ * 为null时,这抛出波形文件不存在异常
+ * @author hongawen
+ * @date 2023/3/3 14:03
+ */
+ public InputStream getFileInputStreamByFilePath(String filePath) {
+ File file = new File(filePath);
+ if (file.isFile() && file.exists()) {
+ InputStream inputStream;
+ try {
+ inputStream = Files.newInputStream(file.toPath());
+ if (inputStream.available() < 1) {
+ throw new BusinessException(EventResponseEnum.WAVE_DATA_INVALID);
+ }
+ return inputStream;
+ } catch (IOException e) {
+ throw new BusinessException(EventResponseEnum.WAVE_DATA_INVALID);
+ }
+ } else {
+ throw new BusinessException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND);
+ }
+ }
+
/*********************************
* 读取cfg方法
* param strFilePath 文件路径
* return 返回bool为是否解析出错
**********************************/
- private String encoding = "GBK";
- private float nFreq;//comtrade频率 WW 2019-11-14
- private BufferedReader bufferedReader;
- private InputStreamReader read;
- private String strFileLine;// 每行读取内容
- private String[] strTempArray;// 每行读取内容按“,”分割
- //private ComtradeCfgDTO comtradeCfgDTO;//波形文件cfg总类
- private ComtradeCfgDTO getComtradeCfg(File file) {
+ private ComtradeCfgDTO getComtradeCfg(InputStream cfgStream) {
ComtradeCfgDTO comtradeCfgDTO = new ComtradeCfgDTO();
+ InputStreamReader read = null;
+ BufferedReader bufferedReader = null;
try {
// 将.cfg文件转换为管道流
- // Stream lines = Files.lines(Paths.get(strFilePath));
- read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式
+ read = new InputStreamReader(cfgStream, CharsetUtil.CHARSET_GBK);
bufferedReader = new BufferedReader(read);
-
- if (bufferedReader != null) {
- nFreq = 0f;//WW 2019-11-14
- // 第一行不关心仅仅是一些描述类的信息
- strFileLine = bufferedReader.readLine();
- // 第二行需要关心第二个(模拟量的个数)和第三个参数(开关量的个数)
- strFileLine = bufferedReader.readLine();
- // 按“,”进行分割
- strTempArray = strFileLine.split(",");
- // 按“,”进行分割
- for (int i = 0; i < strTempArray.length; i++) {
- switch (i) {
- case 0:// 总个数
- comtradeCfgDTO.setNChannelNum(Integer.parseInt(strTempArray[i]));
- break;
- case 1:// 模拟量的个数
- {
- String str = strTempArray[i].substring(0, strTempArray[i].length() - 1);
- comtradeCfgDTO.setNAnalogNum(Integer.parseInt(str));
- }
+ //WW 2019-11-14
+ float nFreq;
+ // 第一行不关心仅仅是一些描述类的信息
+ String strFileLine = bufferedReader.readLine();
+ // 第二行需要关心第二个(模拟量的个数)和第三个参数(开关量的个数)
+ strFileLine = bufferedReader.readLine();
+ // 按“,”进行分割
+ String[] strTempArray = strFileLine.split(StrUtil.COMMA);
+ // 按“,”进行分割
+ for (int i = 0; i < strTempArray.length; i++) {
+ switch (i) {
+ // 总个数
+ case 0:
+ comtradeCfgDTO.setNChannelNum(Integer.parseInt(strTempArray[i]));
break;
- case 2:// 开关量的个数
- {
- String str = strTempArray[i].substring(0, strTempArray[i].length() - 1);
- comtradeCfgDTO.setNDigitalNum(Integer.parseInt(str));
- }
+ // 模拟量的个数
+ case 1:
+ comtradeCfgDTO.setNAnalogNum(Integer.parseInt(strTempArray[i].substring(0, strTempArray[i].length() - 1)));
+ break;
+ // 开关量的个数
+ case 2:
+ comtradeCfgDTO.setNDigitalNum(Integer.parseInt(strTempArray[i].substring(0, strTempArray[i].length() - 1)));
+ break;
+ default:
break;
- }
}
-
- // 从第三行到第ComtradeCfg.nChannelNum + 3行是模拟量通道和数字量通道
- List lstAnalogDTO =new ArrayList<>();
- comtradeCfgDTO.setLstAnalogDTO(lstAnalogDTO);
- for (int i = 0; i < comtradeCfgDTO.getNChannelNum(); i++) {
- AnalogDTO analogDTO = new AnalogDTO();
- lstAnalogDTO.add(analogDTO);
-
- strFileLine = bufferedReader.readLine();
- strTempArray = strFileLine.split(",");
- // 配置总共13项
- for (int j = 0; j < strTempArray.length; j++) {
- switch (j) {
- case 0:// 通道序号
- analogDTO.setNIndex(Integer.parseInt(strTempArray[j]));
- break;
- case 1:// 通道名称
- analogDTO.setSzChannleName(strTempArray[j]);
- break;
- case 2:// 相位名称
- analogDTO.setSzPhasicName(strTempArray[j]);
- break;
- case 3:// 监视的通道名称
- analogDTO.setSzMonitoredChannleName(strTempArray[j]);
- break;
- case 4:// 通道的单位
- analogDTO.setSzUnitName(strTempArray[j]);
- break;
- case 5:// 通道的系数
- analogDTO.setFCoefficent(Float.parseFloat(strTempArray[j]));
- break;
- case 6:// 通道的偏移量
- analogDTO.setFOffset(Float.parseFloat(strTempArray[j]));
- break;
- case 7:// 起始采样时间的偏移量
- analogDTO.setFTimeOffset(Float.parseFloat(strTempArray[j]));
- break;
- case 8:// 采样值的最小值
- analogDTO.setNMin(Integer.parseInt(strTempArray[j]));
- break;
- case 9:// 采样值的最大值
- analogDTO.setNMax(Integer.parseInt(strTempArray[j]));
- break;
- case 10:// 一次变比
- analogDTO.setFPrimary(Float.parseFloat(strTempArray[j]));
- break;
- case 11:// 二次变比
- analogDTO.setFSecondary(Float.parseFloat(strTempArray[j]));
- break;
- case 12:// 一次值还是二次值标志
- analogDTO.setSzValueType(strTempArray[j]);
- break;
- }
- }
- }
- // 采样频率
- strFileLine = bufferedReader.readLine();
- float fFreq = Float.parseFloat(strFileLine);
- nFreq = (Float) fFreq;//WW 2019-11-14
- // 获取采样段数
- strFileLine = bufferedReader.readLine();
- int nRates = Integer.parseInt(strFileLine);
- comtradeCfgDTO.setNRates(nRates);
- // 获得每段的采样率
- List lstRate =new ArrayList<>();//采样率
- long nOffset = 0;
- for (int i = 0; i < nRates; i++) {
- strFileLine = bufferedReader.readLine();
- strTempArray = strFileLine.split(",");
- RateDTO rateDTO = new RateDTO();
- lstRate.add(rateDTO);
- for (int j = 0; j < strTempArray.length; j++) {
- switch (j) {
- case 0:// 单周波采样点数
- rateDTO.setNOneSample((long) (Float.parseFloat(strTempArray[j]) / nFreq));//WW 2019-11-14
- break;
- case 1:// 总点数 //这里的strTemp是一个偏移量
- nOffset = (long) (Float.parseFloat(strTempArray[j]) - nOffset);
- rateDTO.setNSampleNum(nOffset);
- break;
- }
- }
- }
- comtradeCfgDTO.setLstRate(lstRate);
-
- // 增加读取波形起始时间个结束时间
- SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS");
- // 波形起始时间
- strFileLine = bufferedReader.readLine();
- strFileLine = strFileLine.substring(0, strFileLine.length() - 3).replace(",", " ");
- comtradeCfgDTO.setTimeStart(sdf.parse(strFileLine));
- // 暂态触发时间
- strFileLine = bufferedReader.readLine();
- strFileLine = strFileLine.substring(0, strFileLine.length() - 3).replace(",", " ");
- comtradeCfgDTO.setTimeTrige(sdf.parse(strFileLine));
- // 获取触发时间的时间 + 毫秒
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(comtradeCfgDTO.getTimeTrige());
- comtradeCfgDTO.setFirstMs(calendar.get(Calendar.MILLISECOND));
- comtradeCfgDTO.setFirstTime(calendar.getTime());
-
- long a = comtradeCfgDTO.getTimeStart().getTime();
- long b = comtradeCfgDTO.getTimeTrige().getTime();
- int c = (int) (b - a);
- if (c >= 90 && c <= 110) {
- comtradeCfgDTO.setNPush(100);
- } else if (c >= 190 && c <= 210) {
- comtradeCfgDTO.setNPush(200);
- }
- // 赋值编码格式(二进制)
- strBinType = bufferedReader.readLine().toUpperCase();
- read.close();
- } else {
- //未读取到.cfg内容
- log.info("{},未读取到CFG文件内容!",file.getPath());
- comtradeCfgDTO = null;
}
+
+ // 从第三行到第ComtradeCfg.nChannelNum + 3行是模拟量通道和数字量通道
+ List lstAnalogDTO = new ArrayList<>();
+ comtradeCfgDTO.setLstAnalogDTO(lstAnalogDTO);
+ for (int i = 0; i < comtradeCfgDTO.getNChannelNum(); i++) {
+ AnalogDTO analogDTO = new AnalogDTO();
+ lstAnalogDTO.add(analogDTO);
+ strFileLine = bufferedReader.readLine();
+ strTempArray = strFileLine.split(StrUtil.COMMA);
+ // 配置总共13项
+ for (int j = 0; j < strTempArray.length; j++) {
+ switch (j) {
+ // 通道序号
+ case 0:
+ analogDTO.setNIndex(Integer.parseInt(strTempArray[j]));
+ break;
+ // 通道名称
+ case 1:
+ analogDTO.setSzChannleName(strTempArray[j]);
+ break;
+ // 相位名称
+ case 2:
+ analogDTO.setSzPhasicName(strTempArray[j]);
+ break;
+ // 监视的通道名称
+ case 3:
+ analogDTO.setSzMonitoredChannleName(strTempArray[j]);
+ break;
+ // 通道的单位
+ case 4:
+ analogDTO.setSzUnitName(strTempArray[j]);
+ break;
+ // 通道的系数
+ case 5:
+ analogDTO.setFCoefficent(Float.parseFloat(strTempArray[j]));
+ break;
+ // 通道的偏移量
+ case 6:
+ analogDTO.setFOffset(Float.parseFloat(strTempArray[j]));
+ break;
+ // 起始采样时间的偏移量
+ case 7:
+ analogDTO.setFTimeOffset(Float.parseFloat(strTempArray[j]));
+ break;
+ // 采样值的最小值
+ case 8:
+ analogDTO.setNMin(Integer.parseInt(strTempArray[j]));
+ break;
+ // 采样值的最大值
+ case 9:
+ analogDTO.setNMax(Integer.parseInt(strTempArray[j]));
+ break;
+ // 一次变比
+ case 10:
+ analogDTO.setFPrimary(Float.parseFloat(strTempArray[j]));
+ break;
+ // 二次变比
+ case 11:
+ analogDTO.setFSecondary(Float.parseFloat(strTempArray[j]));
+ break;
+ // 一次值还是二次值标志
+ case 12:
+ analogDTO.setSzValueType(strTempArray[j]);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ //WW 2019-11-14 // 采样频率
+ nFreq = Float.parseFloat(bufferedReader.readLine());
+ // 获取采样段数
+ strFileLine = bufferedReader.readLine();
+ int nRates = Integer.parseInt(strFileLine);
+ comtradeCfgDTO.setNRates(nRates);
+ // 获得每段的采样率 //采样率
+ List lstRate = new ArrayList<>();
+ long nOffset = 0;
+ for (int i = 0; i < nRates; i++) {
+ strFileLine = bufferedReader.readLine();
+ strTempArray = strFileLine.split(StrUtil.COMMA);
+ RateDTO rateDTO = new RateDTO();
+ // 单周波采样点数 //WW 2019-11-14
+ rateDTO.setNOneSample((long) (Float.parseFloat(strTempArray[0]) / nFreq));
+ // 总点数 //这里的strTemp是一个偏移量
+ rateDTO.setNSampleNum((long) (Float.parseFloat(strTempArray[1]) - nOffset));
+ lstRate.add(rateDTO);
+ }
+ comtradeCfgDTO.setLstRate(lstRate);
+ // 增加读取波形起始时间个结束时间
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS");
+ // 波形起始时间
+ strFileLine = bufferedReader.readLine();
+ strFileLine = strFileLine.substring(0, strFileLine.length() - 3).replace(StrUtil.COMMA, StrUtil.SPACE);
+ comtradeCfgDTO.setTimeStart(sdf.parse(strFileLine));
+ // 暂态触发时间
+ strFileLine = bufferedReader.readLine();
+ strFileLine = strFileLine.substring(0, strFileLine.length() - 3).replace(StrUtil.COMMA, StrUtil.SPACE);
+ comtradeCfgDTO.setTimeTrige(sdf.parse(strFileLine));
+ // 获取触发时间的时间 + 毫秒
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(comtradeCfgDTO.getTimeTrige());
+ comtradeCfgDTO.setFirstMs(calendar.get(Calendar.MILLISECOND));
+ comtradeCfgDTO.setFirstTime(calendar.getTime());
+
+ long a = comtradeCfgDTO.getTimeStart().getTime();
+ long b = comtradeCfgDTO.getTimeTrige().getTime();
+ int c = (int) (b - a);
+ if (c >= 90 && c <= 110) {
+ comtradeCfgDTO.setNPush(100);
+ } else if (c >= 190 && c <= 210) {
+ comtradeCfgDTO.setNPush(200);
+ }
+ // 赋值编码格式(二进制)
+ comtradeCfgDTO.setStrBinType(bufferedReader.readLine().toUpperCase());
} catch (Exception e) {
// 解析.cfg文件出错
- log.info("{},解析CFG文件出错!",file.getPath());
comtradeCfgDTO = null;
+ } finally {
+ try {
+ bufferedReader.close();
+ } catch (IOException e) {
+ throw new BusinessException(CommonResponseEnum.CLOSE_RESOURCE_ERROR);
+ }
+ try {
+ read.close();
+ } catch (IOException e) {
+ throw new BusinessException(CommonResponseEnum.CLOSE_RESOURCE_ERROR);
+ }
}
return comtradeCfgDTO;
}
@@ -480,60 +516,50 @@ public class AnalyWave {
* param iType 访问波形类型
* List> 返回波形瞬时值
**********************************/
- private List> getComtradeDat(ComtradeCfgDTO comtradeCfgDTO,String strFilePath, int iType) {
- List> listWaveData = new ArrayList<>();//返回数据
+ private List> getComtradeDat(ComtradeCfgDTO comtradeCfgDTO, InputStream datStream, int iType) {
+ //返回数据
+ List> listWaveData = new ArrayList<>();
// 波形文件路径由 .cfg 换成 .dat
- String strDatFilePath = getDatFilePath(strFilePath);
- float xValueAll = 0;//初始化xValue的值
- boolean blxValue = false;//判断是否首次登陆
- byte[] Array;
+ //初始化xValue的值
+ float xValueAll = 0;
+ //判断是否首次登陆
+ boolean blxValue = false;
+ byte[] datArray;
try {
- //读取本地文件
- File file = new File(strDatFilePath);
- // 判断文件是否存在
- if (file.isFile() && file.exists()) {
- Array = new byte[(int) file.length()];
- FileInputStream readFile = null;
- try {
- readFile = new FileInputStream(file);
- readFile.read(Array, 0, Array.length);
- } catch (IOException e) {
- // TODO 读取DAT文件失败
- }
- finally {
- if (readFile != null) {
- //PubUtils.safeClose(readFile,"安全关闭读取CFG文件失败,异常为:");
- }
- }
- } else {
- // TODO 找不到DAT文件
+ datArray = IoUtil.readBytes(datStream);
+ if (ArrayUtil.isEmpty(datArray)) {
return listWaveData;
}
-
- // 计算每个单独的数据块的大小 4字节的序号 4字节的时间 2字节的值
- // 示例中的排布是 4字节的序号 4字节的时间 UA(2字节) UB(2字节) UC(2字节) IA(2字节) IB(2字节) IC(2字节)
- int nDigSize = (comtradeCfgDTO.getNDigitalNum() % 16) > 0 ? (comtradeCfgDTO.getNDigitalNum() / 16 + 1) * 2: comtradeCfgDTO.getNDigitalNum() / 16 * 2;
+ // 计算每个单独的数据块的大小 4个字节的序号 4个字节的时间 2个字节的值
+ // 示例中的排布是 4个字节的序号 4个字节的时间 UA(2字节) UB(2字节) UC(2字节) IA(2字节) IB(2字节) IC(2字节)
+ int nDigSize = (comtradeCfgDTO.getNDigitalNum() % 16) > 0 ? (comtradeCfgDTO.getNDigitalNum() / 16 + 1) * 2 : comtradeCfgDTO.getNDigitalNum() / 16 * 2;
int nBlockSize = 2 * Integer.SIZE / 8 + comtradeCfgDTO.getNAnalogNum() * 2 + nDigSize;
- int nBlockNum = Array.length / nBlockSize;// 总长度除以每个快的大小
- long finalSampleRate = getFinalWaveSample(comtradeCfgDTO.getLstRate(),iType);// 获取采样率
- if (finalSampleRate != -1){
- comtradeCfgDTO.setFinalSampleRate(finalSampleRate);//设置最终采样率
-
- int nnInd = 0;// 计算转换后的采样率
- long nWaveNum = 0;// 抽点后总共多少点数据
- List newLstRate = new ArrayList<>();//抽点后新的的采样率
+ // 总长度除以每个快的大小
+ int nBlockNum = datArray.length / nBlockSize;
+ // 获取采样率
+ long finalSampleRate = getFinalWaveSample(comtradeCfgDTO.getLstRate(), iType);
+ if (finalSampleRate != -1) {
+ //设置最终采样率
+ comtradeCfgDTO.setFinalSampleRate(finalSampleRate);
+ // 计算转换后的采样率
+ int nnInd = 0;
+ // 抽点后总共多少点数据
+ long nWaveNum;
+ //抽点后新的的采样率
+ List newLstRate = new ArrayList<>();
for (int iRate = 0; iRate < comtradeCfgDTO.getNRates(); iRate++) {
if (comtradeCfgDTO.getLstRate().get(iRate).getNOneSample() >= 32) {
// 计算本段录波总共有多少波形
nWaveNum = comtradeCfgDTO.getLstRate().get(iRate).getNSampleNum() / comtradeCfgDTO.getLstRate().get(iRate).getNOneSample();
- comtradeCfgDTO.setNAllWaveNum(comtradeCfgDTO.getNAllWaveNum() + nWaveNum);//设置总波形大小
+ //设置总波形大小
+ comtradeCfgDTO.setNAllWaveNum(comtradeCfgDTO.getNAllWaveNum() + nWaveNum);
// 将最低采样率替换到本段录波内
RateDTO tmpRateDTO = new RateDTO();
newLstRate.add(tmpRateDTO);
//iFlag =3 一定不进行抽点算法
- if(iType !=3) {
+ if (iType != 3) {
//true 抽点算法(当前采样率跟统一采样率不一样则是抽点,否则是未抽点)
- if (comtradeCfgDTO.getLstRate().get(iRate).getNOneSample() != comtradeCfgDTO.getFinalSampleRate()) {
+ if (!Objects.equals(comtradeCfgDTO.getLstRate().get(iRate).getNOneSample(), comtradeCfgDTO.getFinalSampleRate())) {
newLstRate.get(nnInd).setNOneSample(comtradeCfgDTO.getFinalSampleRate());
// 计算本段录波按照最低采样点应该有多少录波
newLstRate.get(nnInd).setNSampleNum(comtradeCfgDTO.getFinalSampleRate() * nWaveNum);
@@ -542,7 +568,7 @@ public class AnalyWave {
// 计算本段录波按照最低采样点应该有多少录波
newLstRate.get(nnInd).setNSampleNum(comtradeCfgDTO.getLstRate().get(iRate).getNOneSample() * nWaveNum);
}
- } else{
+ } else {
newLstRate.get(nnInd).setNOneSample(comtradeCfgDTO.getLstRate().get(iRate).getNOneSample());
// 计算本段录波按照最低采样点应该有多少录波
newLstRate.get(nnInd).setNSampleNum(comtradeCfgDTO.getLstRate().get(iRate).getNOneSample() * nWaveNum);
@@ -554,13 +580,15 @@ public class AnalyWave {
nnInd++;
}
}
-
- long nOffSet = 0,nWaveSpan = 0;// 偏移量,采样间隔
- float fValue = 0f,dfValue = 0f;//两个点之间的时间差
- int nIndex = 0;// 计算不同块的采样率
+ // 偏移量,采样间隔
+ long nOffSet = 0, nWaveSpan;
+ //两个点之间的时间差
+ float fValue, dfValue;
+ // 计算不同块的采样率
+ int nIndex = 0;
// 将最低采样率替换到本段录波内
- RateDTO tmpRateDTO = new RateDTO();// .CFG中采样率
-
+ // .CFG中采样率
+ RateDTO tmpRateDTO;
// nBlockNum 总循环次数
for (int i = 0; i < nBlockNum; i++) {
tmpRateDTO = comtradeCfgDTO.getLstRate().get(nIndex);
@@ -570,55 +598,56 @@ public class AnalyWave {
if (i == tmpRateDTO.getNSampleNum() + nOffSet) {
nOffSet += tmpRateDTO.getNSampleNum();
nIndex++;
- if (nIndex == nnInd)
+ if (nIndex == nnInd) {
break;
+ }
}
dfValue = (float) 20 / tmpRateDTO.getNOneSample();
// 判断是否到了需要抽的采样点
if (i % nWaveSpan == 0) {
// 计算每个通道的值
- List tmpWaveData = new ArrayList();//存储局部数据集合,包含了时间,A,B,C三相
- AnalogDTO tmpAnalogDTO =new AnalogDTO();
+ //存储局部数据集合,包含了时间,A,B,C三相
+ List tmpWaveData = new ArrayList<>();
+ AnalogDTO tmpAnalogDTO;
for (int j = 0; j < comtradeCfgDTO.getNAnalogNum(); j++) {
tmpAnalogDTO = comtradeCfgDTO.getLstAnalogDTO().get(j);
-
//数据只有电压ABC三相数据,不展示U0、I0等数据 YXB2020-10-09 去除相别为N相的数据
- if (tmpAnalogDTO.getSzPhasicName().toUpperCase().equals("N"))
+ if ("N".equalsIgnoreCase(tmpAnalogDTO.getSzPhasicName())) {
break;
-
- float fCoef = tmpAnalogDTO.getFCoefficent();
- fValue = BitConverter.byte2ToUnsignedShort(Array, i * nBlockSize + 2 * 4 + j * 2) * fCoef;
-
- //WW 2019-11-14
- if (tmpAnalogDTO.getSzValueType().toUpperCase().equals("S"))//P是一次值 S是二次值
- {
- if (tmpAnalogDTO.getSzUnitName().toUpperCase().equals("KV"))//判断单位是V还是kV
- fValue = fValue*1000.0f;
- else
- fValue = fValue;
}
- else if (tmpAnalogDTO.getSzValueType().toUpperCase().equals("P"))//P是一次值 S是二次值
- {
- if (tmpAnalogDTO.getSzUnitName().toUpperCase().equals("V"))//判断单位是V还是kV
- {
- if (tmpAnalogDTO.getFPrimary() != 0.0f)//根据cfg内的变比,将一次值转换成二次值
+ float fCoef = tmpAnalogDTO.getFCoefficent();
+ fValue = BitConverter.byte2ToUnsignedShort(datArray, i * nBlockSize + 2 * 4 + j * 2) * fCoef;
+
+ //WW 2019-11-14//P是一次值 S是二次值
+ if ("S".equalsIgnoreCase(tmpAnalogDTO.getSzValueType())) {
+ //判断单位是V还是kV
+ if ("KV".equalsIgnoreCase(tmpAnalogDTO.getSzUnitName())) {
+ fValue = fValue * 1000.0f;
+ }
+ }
+ //P是一次值 S是二次值
+ else if ("P".equalsIgnoreCase(tmpAnalogDTO.getSzValueType())) {
+ //判断单位是V还是kV
+ if ("V".equalsIgnoreCase(tmpAnalogDTO.getSzUnitName())) {
+ //根据cfg内的变比,将一次值转换成二次值
+ if (tmpAnalogDTO.getFPrimary() != 0.0f) {
fValue = fValue * tmpAnalogDTO.getFSecondary() / tmpAnalogDTO.getFPrimary();
- else
- fValue = fValue;
+ }
+
}
- else if(tmpAnalogDTO.getSzUnitName().toUpperCase().equals("KV"))//判断单位是V还是kV
- {
- if (tmpAnalogDTO.getFPrimary() != 0.0f)//根据cfg内的变比,将一次值转换成二次值
+ //判断单位是V还是kV
+ else if ("KV".equalsIgnoreCase(tmpAnalogDTO.getSzUnitName())) {
+ //根据cfg内的变比,将一次值转换成二次值
+ if (tmpAnalogDTO.getFPrimary() != 0.0f) {
fValue = fValue * 1000.0f * tmpAnalogDTO.getFSecondary() / tmpAnalogDTO.getFPrimary();
- else
- fValue = fValue;
+ }
}
- else //还有可能是电流,单位是A
- {
- if (tmpAnalogDTO.getFPrimary() != 0.0f)//根据cfg内的变比,将一次值转换成二次值
+ //还有可能是电流,单位是A
+ else {
+ //根据cfg内的变比,将一次值转换成二次值
+ if (tmpAnalogDTO.getFPrimary() != 0.0f) {
fValue = tmpAnalogDTO.getFSecondary() / tmpAnalogDTO.getFPrimary();
- else
- fValue= fValue;
+ }
}
}
@@ -628,124 +657,49 @@ public class AnalyWave {
if (!blxValue && j == 0) {
xValueAll = (float) (i * 20) / tmpRateDTO.getNOneSample() - comtradeCfgDTO.getNPush();
blxValue = true;
- //只增加一个xValue的值
- tmpWaveData.add((float) (Math.round(xValueAll * 100)) / 100);//增加时间值
+ //只增加一个xValue的值 //增加时间值
+ tmpWaveData.add((float) (Math.round(xValueAll * 100)) / 100);
} else if (j == 0) {
xValueAll += (float) nWaveSpan * dfValue;
- //只增加一个xValue的值
- tmpWaveData.add((float) (Math.round(xValueAll * 100)) / 100);//增加时间值
+ //只增加一个xValue的值 //增加时间值
+ tmpWaveData.add((float) (Math.round(xValueAll * 100)) / 100);
}
- //不同通道yValue的值都需要增加,最终成ABC三相
- tmpWaveData.add((float) (Math.round(fValue * 100)) / 100);//每个通道的值
+ //不同通道yValue的值都需要增加,最终成ABC三相 //每个通道的值
+ tmpWaveData.add((float) (Math.round(fValue * 100)) / 100);
}
- listWaveData.add(tmpWaveData);//把每个单独的值赋予到整体里面去
+ //把每个单独的值赋予到整体里面去
+ listWaveData.add(tmpWaveData);
}
}
}
} catch (Exception e) {
- // TODO 读取文件出错
- return listWaveData;
+ throw new BusinessException(EventResponseEnum.DAT_DATA_ERROR);
}
return listWaveData;
}
- /*********************************
- * 获取波形标题的方法
- * param tmpComtradeCfgDTO 文件路径
- * return 返回List返回数据格式说明
- **********************************/
- private List getWaveTitle(ComtradeCfgDTO comtradeCfgDTO){
- //编辑数据标题 YXB2020-10-09 去除相别为N相的数据//存储数据标题
- List tmpWaveTitle = new ArrayList<>();
- // 模拟量通道记录类
- AnalogDTO analogDTO = new AnalogDTO();
- tmpWaveTitle.add("Time");
- String strUnit = "U";
- for (int j = 0; j lstRate,int iType) {
- long nFinalOneSample = -1;// 最终返回采样率
- long nMinOneSample = -1;// 最小采样率
- if(lstRate.size() > 0){
- nMinOneSample = lstRate.get(0).getNOneSample();
- long tmpOneSample = 0;
- for (int i = 0; i < lstRate.size(); i++) {
- tmpOneSample = lstRate.get(i).getNOneSample();
+ private long getFinalWaveSample(List lstRate, int iType) {
+ // 最终返回采样率
+ long nFinalOneSample = -1;
+ // 最小采样率
+ long nMinOneSample = -1;
+ if (lstRate.size() > 0) {
+ nMinOneSample = lstRate.get(0).getNOneSample();
+ long tmpOneSample;
+ for (RateDTO rateDTO : lstRate) {
+ tmpOneSample = rateDTO.getNOneSample();
if (tmpOneSample >= 32) {
- if (nMinOneSample > tmpOneSample)
+ if (nMinOneSample > tmpOneSample) {
nMinOneSample = tmpOneSample;
+ }
}
}
}
@@ -755,7 +709,7 @@ public class AnalyWave {
* iFlag == 2 App抽点要求,采样率抽点成32
* iFlag == 3 高级算法原始波形(大于32)
********************************************************/
- switch (iType){
+ switch (iType) {
case 0:
if (nMinOneSample < 32) {
nFinalOneSample = 32;
@@ -763,15 +717,10 @@ public class AnalyWave {
nFinalOneSample = 128;
}
break;
- case 1:
- nFinalOneSample = nMinOneSample;
- break;
case 2:
nFinalOneSample = 32;
break;
- case 3:
- nFinalOneSample = nMinOneSample;
- break;
+
default:
nFinalOneSample = nMinOneSample;
break;
@@ -780,20 +729,22 @@ public class AnalyWave {
return nFinalOneSample;
}
+
/*********************************
* 离线波形导入时获取突变量算法
* param tmpListWave 波形原始数据
* param finalSampleRate 最终采样率
**********************************/
- private MutationDTO getMutationValue(List> lstWave,float finalSampleRate) {
- MutationDTO mutationDTO =new MutationDTO();
+ private MutationDTO getMutationValue(List> lstWave, float finalSampleRate) {
+ MutationDTO mutationDTO = new MutationDTO();
// 计算有效值
double fSumA = 0.0, fSumB = 0.0, fSumC = 0.0;
- double fValidA = 0.0, fValidB = 0.0, fValidC = 0.0;
+ double fValidA, fValidB, fValidC;
double fValue = 0.0;
- int HalfTs = (int) finalSampleRate;// 全波有效值 ; (int)fs / 2;//半波有效值
+ // 全波有效值 ; (int)fs / 2;//半波有效值
+ int HalfTs = (int) finalSampleRate;
//瞬时波形数据_瞬时---前推周波的值_瞬时----周波的值_突变量----前推周波的值_突变量
- List tmpRealValue,forwardRealValue,tblValue,forwardTblValue;
+ List tmpRealValue, forwardRealValue, tblValue, forwardTblValue;
// 计算有效值算法
for (int i = 0; i < lstWave.size(); i++) {
//获取每一项的值
@@ -813,10 +764,13 @@ public class AnalyWave {
}
// 计算突变量值
List tmpTblValue = new ArrayList<>();
- tmpTblValue.add(tmpRealValue.get(0));//获取时间
+ //获取时间
+ tmpTblValue.add(tmpRealValue.get(0));
if (i >= HalfTs) {
- tblValue = lstWave.get(i);//获取前推周波的值
- forwardTblValue = lstWave.get(i - HalfTs);//获取前推周波的值
+ //获取前推周波的值
+ tblValue = lstWave.get(i);
+ //获取前推周波的值
+ forwardTblValue = lstWave.get(i - HalfTs);
tmpTblValue.add(tblValue.get(1) - forwardTblValue.get(1));
tmpTblValue.add(tblValue.get(2) - forwardTblValue.get(2));
tmpTblValue.add(tblValue.get(3) - forwardTblValue.get(3));
@@ -830,15 +784,18 @@ public class AnalyWave {
fValidC = Math.sqrt(fSumC / HalfTs);
if (i >= finalSampleRate) {
- if (fValidA < mutationDTO.getFMinMagA())
+ if (fValidA < mutationDTO.getFMinMagA()) {
mutationDTO.setFMinMagA(fValidA);
- if (fValidB < mutationDTO.getFMinMagB())
+ }
+ if (fValidB < mutationDTO.getFMinMagB()) {
mutationDTO.setFMinMagB(fValidB);
- if (fValidC < mutationDTO.getFMinMagC())
+ }
+ if (fValidC < mutationDTO.getFMinMagC()) {
mutationDTO.setFMinMagC(fValidC);
+ }
}
- //RMS获取
- tmpRmsValue.add(tmpRealValue.get(0));//获取时间
+ //RMS获取//获取时间
+ tmpRmsValue.add(tmpRealValue.get(0));
tmpRmsValue.add((float) fValidA);
tmpRmsValue.add((float) fValidB);
tmpRmsValue.add((float) fValidC);
@@ -860,13 +817,13 @@ public class AnalyWave {
* param blType 计算方式
* List> 返回暂降数据
**********************************/
- private List getEventValue(List> lstWave,MutationDTO mutationDTO,ComtradeCfgDTO comtradeCfgDTO, boolean blType) {
+ private List getEventValue(List> lstWave, MutationDTO mutationDTO, ComtradeCfgDTO comtradeCfgDTO, boolean blType) {
List> tblWave = mutationDTO.getListTBL_Offline();
List> rmstWave = mutationDTO.getListRms_Offline();
//额定电压
float fBase = 57.74f;
- //假如所选的是380V,那么PT变比是1:1,因此额定电压要选220
- List lstAnalogDTO = comtradeCfgDTO.getLstAnalogDTO();//模拟量通道记录
+ //假如所选的是380V,那么PT变比是1:1,因此额定电压要选220 //模拟量通道记录
+ List lstAnalogDTO = comtradeCfgDTO.getLstAnalogDTO();
if (lstAnalogDTO.size() > 0) {
if (lstAnalogDTO.get(0).getFPrimary() / lstAnalogDTO.get(0).getFSecondary() <= 1) {
fBase = 220f;
@@ -880,10 +837,13 @@ public class AnalyWave {
* 2额定定压(动态电压)
* 3是持续时间
**********************************/
- List lstEigenvalueDTO = new ArrayList<>();//ABC三相分析结果
+ //ABC三相分析结果
+ List lstEigenvalueDTO = new ArrayList<>();
for (int i = 0; i < 3; i++) {
- int iDDY = 0, iGDY = 0;//低电压和郭电压标识值
- EigenvalueDTO eigenvalueDTO = new EigenvalueDTO();//某一项分析结果
+ //低电压和郭电压标识值
+ int iDDY = 0, iGDY;
+ //某一项分析结果
+ EigenvalueDTO eigenvalueDTO = new EigenvalueDTO();
iDDY = App_Disturb_DDY1(lstWave, tblWave, rmstWave, nSJ, i, blType);
if (Disturb_Val == 0 && Disturb_SJ == 0) {
//判断A相的暂态事件类型是否为短时中断或电压暂降
@@ -891,19 +851,27 @@ public class AnalyWave {
if (iGDY != 0) {
if (Disturb_Val != 0) {
if (blType) {
- eigenvalueDTO.setAmplitude(Disturb_Val / rmstWave.get(nSJ + 2).get(i + 1));//征幅值(残余电压百分比)
- eigenvalueDTO.setResidualVoltage(Disturb_Val);//特征幅值(残余电压)
- eigenvalueDTO.setRatedVoltage(rmstWave.get(nSJ + 2).get(i + 1));//额定定压(动态电压)
+ //征幅值(残余电压百分比)
+ eigenvalueDTO.setAmplitude(Disturb_Val / rmstWave.get(nSJ + 2).get(i + 1));
+ //特征幅值(残余电压)
+ eigenvalueDTO.setResidualVoltage(Disturb_Val);
+ //额定定压(动态电压)
+ eigenvalueDTO.setRatedVoltage(rmstWave.get(nSJ + 2).get(i + 1));
} else {
- eigenvalueDTO.setAmplitude(Disturb_Val / 57.74f);//征幅值(残余电压百分比)
- eigenvalueDTO.setResidualVoltage(Disturb_Val);//特征幅值(残余电压)
- eigenvalueDTO.setRatedVoltage(57.74f);//额定定压(动态电压)
+ //征幅值(残余电压百分比)
+ eigenvalueDTO.setAmplitude(Disturb_Val / 57.74f);
+ //特征幅值(残余电压)
+ eigenvalueDTO.setResidualVoltage(Disturb_Val);
+ //额定定压(动态电压)
+ eigenvalueDTO.setRatedVoltage(57.74f);
}
}
- } else//如果都没有找到,那么需要从曲线里面找出比较小的值来计算
- {
+ }
+ //如果都没有找到,那么需要从曲线里面找出比较小的值来计算
+ else {
double rate = 0f;
- double residualVoltage = 0.f;//残余电压
+ //残余电压
+ double residualVoltage = 0.f;
switch (i) {
case 0:
residualVoltage = mutationDTO.getFMinMagA();
@@ -914,43 +882,71 @@ public class AnalyWave {
case 2:
residualVoltage = mutationDTO.getFMinMagC();
break;
+ default:
+ break;
}
if (residualVoltage != -1) {
rate = residualVoltage / fBase > 1 ? 1.0f : residualVoltage / fBase;
}
- eigenvalueDTO.setAmplitude((float) rate);//征幅值(残余电压百分比)
- eigenvalueDTO.setResidualVoltage((float) residualVoltage);//特征幅值(残余电压)
- eigenvalueDTO.setRatedVoltage(fBase);//额定定压(动态电压)
+ //征幅值(残余电压百分比)
+ eigenvalueDTO.setAmplitude((float) rate);
+ //特征幅值(残余电压)
+ eigenvalueDTO.setResidualVoltage((float) residualVoltage);
+ //额定定压(动态电压)
+ eigenvalueDTO.setRatedVoltage(fBase);
}
} else {
if (Disturb_Val != 0) {
- if (Disturb_Val != 0) {
- if (blType) {
- eigenvalueDTO.setAmplitude(Disturb_Val / rmstWave.get(nSJ + 2).get(i + 1));//征幅值(残余电压百分比)
- eigenvalueDTO.setResidualVoltage(Disturb_Val);//特征幅值(残余电压)
- eigenvalueDTO.setRatedVoltage(rmstWave.get(nSJ + 2).get(i + 1));//额定定压(动态电压)
- } else {
- eigenvalueDTO.setAmplitude(Disturb_Val / 57.74f);//征幅值(残余电压百分比)
- eigenvalueDTO.setResidualVoltage(Disturb_Val);//特征幅值(残余电压)
- eigenvalueDTO.setRatedVoltage(57.74f);//额定定压(动态电压)
- }
+ if (blType) {
+ //征幅值(残余电压百分比)
+ eigenvalueDTO.setAmplitude(Disturb_Val / rmstWave.get(nSJ + 2).get(i + 1));
+ //特征幅值(残余电压)
+ eigenvalueDTO.setResidualVoltage(Disturb_Val);
+ //额定定压(动态电压)
+ eigenvalueDTO.setRatedVoltage(rmstWave.get(nSJ + 2).get(i + 1));
+ } else {
+ //征幅值(残余电压百分比)
+ eigenvalueDTO.setAmplitude(Disturb_Val / 57.74f);
+ //特征幅值(残余电压)
+ eigenvalueDTO.setResidualVoltage(Disturb_Val);
+ //额定定压(动态电压)
+ eigenvalueDTO.setRatedVoltage(57.74f);
}
}
}
- eigenvalueDTO.setDurationTime(Disturb_SJ / nSJ * 20.0f);//持续时间
+ //持续时间
+ eigenvalueDTO.setDurationTime(Disturb_SJ / nSJ * 20.0f);
lstEigenvalueDTO.add(eigenvalueDTO);
}
return lstEigenvalueDTO;
}
- private float Disturb_Val = 0;//暂降幅值
- private double Disturb_Time = 0;//持续时间
- private float Disturb_SJ = 0;//暂态启动点号
+ /***
+ * 暂降幅值
+ */
+ private float Disturb_Val = 0;
+ /***
+ * 持续时间
+ */
+ private double Disturb_Time = 0;
+ /***
+ * 暂态启动点号
+ */
+ private float Disturb_SJ = 0;
- private float Un09 = (0.90f * 57.74f);//暂降幅值90%
- private float Un002 = (0.02f * 57.74f);//暂降幅值2%
- private float Un110 = (1.10f * 57.74f);//暂降幅值110%
+ /***
+ * 暂降幅值90%
+ */
+ private float Un09 = (0.90f * 57.74f);
+ /***
+ * 暂降幅值2%
+ */
+ private float Un002 = (0.02f * 57.74f);
+ /***
+ * 暂降幅值110%
+ */
+ private float Un110 = (1.10f * 57.74f);
/************************************
*低电压的判据 包含了暂降和中断
@@ -1007,13 +1003,13 @@ public class AnalyWave {
for (int j = 0; j < nHalfSJ; j++) {
//临时的突变量
ADC = tblWave.get(i - nHalfSJ + j).get(nType + 1);
- //临时的突变量小于0时候取绝对值
+ //临时的突变量小于0的时候取绝对值
if (ADC < 0) {
ADC = 0 - ADC;
}
if (ADC > fUN002) {
Disturb_SJ += (nHalfSJ - j);
- iTbl = (int) (i - nHalfSJ + j);
+ iTbl = (i - nHalfSJ + j);
break;
}
}
@@ -1035,12 +1031,13 @@ public class AnalyWave {
iFlag = j;
//临时的突变量
ADC = tblWave.get(i - nHalfSJ + j).get(nType + 1);
- //临时的突变量小于0时候取绝对值
+ //临时的突变量小于0的时候取绝对值
if (ADC < 0) {
ADC = 0 - ADC;
}
- if (ADC > fUN002)
+ if (ADC > fUN002) {
break;
+ }
}
Disturb_SJ -= (nHalfSJ - iFlag);
Disturb_Time = ((double) Disturb_SJ) * 20 / nSJ;
@@ -1048,9 +1045,13 @@ public class AnalyWave {
} else {
Disturb_SJ++;
ADC = realWave.get(i).get(nType + 1);
- if (ADC < 0) ADC = 0 - ADC;
+ if (ADC < 0) {
+ ADC = 0 - ADC;
+ }
temp = rmsValue - Disturb_JS_Val;
- if (temp < 0) temp = 0 - temp;
+ if (temp < 0) {
+ temp = 0 - temp;
+ }
if ((ADC > 100) && (temp < 0.1)) {
Disturb_SJ -= (nHalfSJ + 1);
Disturb_Time = ((double) Disturb_SJ) * 20 / nSJ + 1;
@@ -1064,6 +1065,7 @@ public class AnalyWave {
return iTbl;
}
+
/************************************
*过电压的判据
* @param realWave 原始波形数据
@@ -1134,8 +1136,9 @@ public class AnalyWave {
else {
if (rmsValue > (fUN110 - fUN002)) {
Disturb_SJ++;
- if (Disturb_Val < rmsValue)
+ if (Disturb_Val < rmsValue) {
Disturb_Val = rmsValue;
+ }
Disturb_JS_Val = rmsValue;
} else {
if (Disturb_SJ >= (nSJ + nHalfSJ)) {
@@ -1143,9 +1146,12 @@ public class AnalyWave {
for (int j = 0; j < nHalfSJ; j++) {
iFlag = j;
ADC = tblWave.get(i - nHalfSJ + j).get(nType + 1);
- if (ADC < 0) ADC = 0 - ADC;
- if (ADC > fUN002)
+ if (ADC < 0) {
+ ADC = 0 - ADC;
+ }
+ if (ADC > fUN002) {
break;
+ }
}
Disturb_SJ -= (nHalfSJ - iFlag);
Disturb_Time = (double) Disturb_SJ * 20 / nSJ;
@@ -1153,9 +1159,13 @@ public class AnalyWave {
} else {
Disturb_SJ++;
ADC = realWave.get(i).get(nType + 1);
- if (ADC < 0) ADC = 0 - ADC;
+ if (ADC < 0) {
+ ADC = 0 - ADC;
+ }
temp = rmsValue - Disturb_JS_Val;
- if (temp < 0) temp = 0 - temp;
+ if (temp < 0) {
+ temp = 0 - temp;
+ }
if ((ADC > 100) && (temp < 0.1)) {
Disturb_SJ -= (nHalfSJ + 1);
Disturb_Time = Disturb_SJ * 20 / nSJ + 1;
@@ -1170,6 +1180,79 @@ public class AnalyWave {
}
+ /*********************************
+ * 获取波形标题的方法
+ * param tmpComtradeCfgDTO 文件路径
+ * return 返回List返回数据格式说明
+ **********************************/
+ private List getWaveTitle(ComtradeCfgDTO comtradeCfgDTO) {
+ //编辑数据标题 YXB2020-10-09 去除相别为N相的数据//存储数据标题
+ List tmpWaveTitle = new ArrayList<>();
+ // 模拟量通道记录类
+ AnalogDTO analogDTO;
+ tmpWaveTitle.add("Time");
+ String strUnit;
+ for (int j = 0; j < comtradeCfgDTO.getNAnalogNum(); j++) {
+ analogDTO = comtradeCfgDTO.getLstAnalogDTO().get(j);
+ // 假如为N相则跳过
+ if (!StrUtil.equals(analogDTO.getSzPhasicName().toUpperCase(), "N")) {
+ if ("A".equalsIgnoreCase(analogDTO.getSzUnitName())) {
+ strUnit = "I";
+ } else {
+ strUnit = "U";
+ }
+ tmpWaveTitle.add(strUnit + analogDTO.getSzPhasicName().toUpperCase() + "相");
+ }
+ }
+ return tmpWaveTitle;
+ }
+
+ /*********************************
+ * 由.cfg 路径更换成 .dat
+ * param strFilePath 文件路径
+ * return String返回.dat文件的路径
+ **********************************/
+ private String getDatFilePath(String strFilePath) {
+ String strDatFilePath;
+ //替换前的
+ String strOriginally = ".cfg";
+ //替换后的
+ String strReplace = ".dat";
+ //截取.之后字符串
+ String strIntercept = strFilePath.substring(strFilePath.lastIndexOf(".") + 1);
+ switch (strIntercept) {
+ case "cfg":
+ strOriginally = ".cfg";
+ strReplace = ".dat";
+ break;
+ case "CFG":
+ strOriginally = ".CFG";
+ strReplace = ".DAT";
+ break;
+ case "Cfg":
+ strOriginally = ".Cfg";
+ strReplace = ".Dat";
+ break;
+ case "CFg":
+ strOriginally = ".CFg";
+ strReplace = ".DAt";
+ break;
+ case "cFg":
+ strOriginally = ".cFg";
+ strReplace = ".dAt";
+ break;
+ case "cFG":
+ strOriginally = ".cFG";
+ strReplace = ".dAT";
+ break;
+ default:
+ break;
+ }
+ //把.cfg换成.dat
+ strDatFilePath = strFilePath.replace(strOriginally, strReplace);
+ return strDatFilePath;
+ }
+
public static void main(String[] args) {
/********************************************************
* iFlag == 0 高级算法的要求,采样率只能是32-128
@@ -1179,24 +1262,25 @@ public class AnalyWave {
********************************************************/
/** 输出格式: 2014-5-05 00:00:00 大写H为24小时制 */
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String s = null;
+ String s;
Date d = new Date();
s = sdf.format(d);
System.out.println(s);
-
- AnalyWave analyWave = new AnalyWave();
- // 获取瞬时波形
- WaveDataDTO waveDataDTO = analyWave.getComtrade("D:\\Comtrade\\00-B7-8D-00-EA-4A\\PQMonitor_PQM1_001341_20220627_063159_104_WAV.CFG", 1);//获取原始波形值
+ WaveUtil waveUtil = new WaveUtil();
+ InputStream cfgStream = waveUtil.getFileInputStreamByFilePath("D:\\comtrade\\00-B7-8D-00-B7-25\\1_20200629_164016_234.CFG");
+ InputStream datStream = waveUtil.getFileInputStreamByFilePath("D:\\comtrade\\00-B7-8D-00-B7-25\\1_20200629_164016_234.DAT");
+ // 获取瞬时波形 //获取原始波形值
+ WaveDataDTO waveDataDTO = waveUtil.getComtrade(cfgStream,datStream, 1);
d = new Date();
s = sdf.format(d);
System.out.println(s);
// 获取RMS波形
- WaveDataDTO waveDataDTO1 = analyWave.getValidData(waveDataDTO);
+ WaveDataDTO waveDataDTO1 = waveUtil.getValidData(waveDataDTO);
d = new Date();
s = sdf.format(d);
System.out.println(s);
// 获取特征值
- List lstEigenvalueDTO = analyWave.getEigenvalue(waveDataDTO,true);
- String str = "";
+ List lstEigenvalueDTO = waveUtil.getEigenvalue(waveDataDTO, true);
}
+
}
diff --git a/pqs-event/event-boot/src/main/resources/bootstrap.yml b/pqs-event/event-boot/src/main/resources/bootstrap.yml
index 3ebf023df..185a07259 100644
--- a/pqs-event/event-boot/src/main/resources/bootstrap.yml
+++ b/pqs-event/event-boot/src/main/resources/bootstrap.yml
@@ -44,3 +44,4 @@ mybatis-plus:
type-aliases-package: com.njcn.event.pojo
mqtt:
client-id: @artifactId@${random.value}
+
diff --git a/pqs-event/event-boot/src/test/java/com/njcn/event/EventBootApplicationTest.java b/pqs-event/event-boot/src/test/java/com/njcn/event/EventBootApplicationTest.java
index 44ba22767..aa4e69c66 100644
--- a/pqs-event/event-boot/src/test/java/com/njcn/event/EventBootApplicationTest.java
+++ b/pqs-event/event-boot/src/test/java/com/njcn/event/EventBootApplicationTest.java
@@ -1,10 +1,16 @@
package com.njcn.event;
+import com.njcn.event.enums.EventResponseEnum;
import com.njcn.event.pojo.PqsEventDetail;
import com.njcn.event.pojo.PqsOnlinerateAggregate;
import com.njcn.event.pojo.PqsEventDetailCount;
+import com.njcn.event.pojo.dto.wave.EigenvalueDTO;
+import com.njcn.event.pojo.dto.wave.WaveDataDTO;
+import com.njcn.event.utils.WaveUtil;
+import com.njcn.huawei.obs.util.OBSUtil;
import com.njcn.influxdb.config.InfluxDbConfig;
import com.njcn.influxdb.utils.InfluxDbUtils;
+import com.njcn.oss.constant.OssPath;
import org.influxdb.dto.QueryResult;
import org.influxdb.impl.InfluxDBResultMapper;
import org.influxdb.querybuilder.SelectQueryImpl;
@@ -20,8 +26,11 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
+import java.util.Objects;
import static com.njcn.influxdb.param.InfluxDBPublicParam.PQS_EVENT_DETAIL;
@@ -39,79 +48,85 @@ public class EventBootApplicationTest {
@Autowired
private InfluxDbUtils influxDbUtils;
-
+
+ @Autowired
+ private WaveUtil waveUtil;
+
+ @Autowired
+ private OBSUtil obsUtil;
+
// TODO https://github.com/influxdata/influxdb-java/blob/master/QUERY_BUILDER.md
-
+
@Test
public void queryList() {
// or 条件数据
List clauses = getClauses();
-
+
SelectQueryImpl selectQuery = select().column("line_id").column("eventass_index").from(influxDbConfig.getDatabase(), PQS_EVENT_DETAIL);
WhereQueryImpl where = selectQuery.where();
-
+
// WHERE (line_id = '1' OR line_id = '2' OR line_id = '3') 加上前后()
whereAndNested(clauses, where);
-
+
// AND time >= '2022-05-01T00:00:00Z' AND time <= '2022-09-01T00:00:00Z' tz('Asia/Shanghai');
where.and(gte("time", "2022-05-01T00:00:00Z")).and(lte("time", "2022-09-01T00:00:00Z"));
where.tz("Asia/Shanghai");
-
+
QueryResult result = influxDbUtils.query(selectQuery.getCommand());
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List re = influxDBResultMapper.toPOJO(result, PqsEventDetail.class);
Assert.assertTrue(re.size() > 0);
}
-
+
@Test
public void queryCount() {
// or 条件数据
List clauses = getClauses();
-
+
SelectQueryImpl selectQuery = select().count("eventass_index").from(influxDbConfig.getDatabase(), PQS_EVENT_DETAIL);
WhereQueryImpl where = selectQuery.where();
-
+
// WHERE (line_id = '1' OR line_id = '2' OR line_id = '3') 加上前后()
whereAndNested(clauses, where);
-
+
// AND time >= '2022-05-01T00:00:00Z' AND time <= '2022-09-01T00:00:00Z' tz('Asia/Shanghai');
where.and(gte("time", "2022-05-01T00:00:00Z")).and(lte("time", "2022-09-01T00:00:00Z"));
where.tz("Asia/Shanghai");
-
+
QueryResult result = influxDbUtils.query(selectQuery.getCommand());
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List re = influxDBResultMapper.toPOJO(result, PqsEventDetailCount.class);
Assert.assertTrue(re.size() > 0);
}
-
+
@Test
public void queryAggregate() {
-
+
// SELECT (SUM(onlinemin) / (SUM(onlinemin) + SUM(offlinemin))) * 100 FROM pqs_onlinerate
SelectionQueryImpl select = select();
SelectionQueryImpl sum = select.op(op(sum("onlinemin"), "/", op(sum("onlinemin"), "+", sum("offlinemin"))), "*", 100)
.as("value");
SelectQueryImpl selectQuery = sum.from(influxDbConfig.getDatabase(), "pqs_onlinerate");
WhereQueryImpl where = selectQuery.where();
-
+
// AND time >= '2022-05-01T00:00:00Z' AND time <= '2022-09-01T00:00:00Z' tz('Asia/Shanghai');
where.and(gte("time", "2022-05-01T00:00:00Z")).and(lte("time", "2022-09-01T00:00:00Z"));
where.tz("Asia/Shanghai");
-
+
QueryResult result = influxDbUtils.query(selectQuery.getCommand());
InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper();
List re = influxDBResultMapper.toPOJO(result, PqsOnlinerateAggregate.class);
Assert.assertTrue(re.size() > 0);
}
-
+
private List getClauses() {
Clause c1 = eq("line_id", "5e467a40023b299070682eb21f2ec9a1");
Clause c2 = eq("line_id", "183245996f303ebfd80eeb3377cecdc2");
Clause c3 = eq("line_id", "0d46f54420246e999d5c68b3133f668c");
-
+
return Arrays.asList(c1, c2, c3);
}
-
+
private void whereAndNested(List clauses, WhereQueryImpl whereQuery) {
WhereNested> andNested = whereQuery.andNested();
for (Clause clause : clauses) {
@@ -119,5 +134,29 @@ public class EventBootApplicationTest {
}
andNested.close();
}
-
+
+ @Test
+ public void testHuaweiOBS() throws FileNotFoundException {
+
+ String cfgPath = OssPath.WAVE_DIR+"192.168.1.190/PQMonitor_PQM1_002438_20210508_092859_938.CFG";
+ String datPath = OssPath.WAVE_DIR+"192.168.1.190/PQMonitor_PQM1_002438_20210508_092859_938.DAT";
+
+ InputStream cfgStream =obsUtil.fileDownload(cfgPath);
+ InputStream datStream =obsUtil.fileDownload(datPath);
+
+ if(Objects.isNull(cfgStream) || Objects.isNull(datStream)){
+ throw new FileNotFoundException(EventResponseEnum.ANALYSEWAVE_NOT_FOUND.getMessage());
+ }
+
+ // 获取瞬时波形 //获取原始波形值
+ WaveDataDTO waveDataDTO = waveUtil.getComtrade(cfgStream,datStream, 1);
+
+ // 获取RMS波形
+ WaveDataDTO waveDataDTO1 = waveUtil.getValidData(waveDataDTO);
+
+ // 获取特征值
+ List lstEigenvalueDTO = waveUtil.getEigenvalue(waveDataDTO, true);
+ System.out.println(1);
+ }
+
}
diff --git a/pqs-harmonic/harmonic-boot/pom.xml b/pqs-harmonic/harmonic-boot/pom.xml
index 1b768d0f9..1158f0fe1 100644
--- a/pqs-harmonic/harmonic-boot/pom.xml
+++ b/pqs-harmonic/harmonic-boot/pom.xml
@@ -60,18 +60,9 @@
event-api
${project.version}
-
- com.njcn
- common-minio
- ${project.version}
-
-
-
- me.tongfei
- progressbar
- 0.5.3
-
+
+
com.squareup.okhttp3
@@ -97,6 +88,13 @@
spring-boot-configuration-processor
true
+
+
+
+ com.njcn
+ common-oss
+ ${project.version}
+
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/algorithm/AlgorithmController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/algorithm/AlgorithmController.java
index 9d207035d..c62a72e1c 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/algorithm/AlgorithmController.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/algorithm/AlgorithmController.java
@@ -1,21 +1,18 @@
package com.njcn.harmonic.controller.algorithm;
import cn.hutool.core.bean.BeanUtil;
+import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
-import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
-import com.njcn.harmonic.enums.HarmonicResponseEnum;
import com.njcn.harmonic.pojo.param.RStatFileVO;
import com.njcn.harmonic.pojo.po.RStatFile;
-import com.njcn.harmonic.pojo.vo.PwRStatOrgVO;
import com.njcn.harmonic.service.algorithm.RStatFileService;
-import com.njcn.minio.bo.MinIoUploadResDTO;
-import com.njcn.minio.config.MinIoProperties;
-import com.njcn.minio.utils.MinIoUtils;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -25,7 +22,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-import javax.annotation.Resource;
import java.util.*;
@@ -37,10 +33,10 @@ public class AlgorithmController extends BaseController {
private final RStatFileService rStatFileService;
- @Resource
- private MinIoUtils minIoUtils;
- @Resource
- private MinIoProperties minIoProperties;
+ private final FileStorageUtil fileStorageUtil;
+
+
+
/**
* 算法保存
@@ -56,10 +52,10 @@ public class AlgorithmController extends BaseController {
String methodDescribe = getMethodDescribe("getAlgorithmSave");
RStatFile rStatFile = BeanUtil.copyProperties(param, RStatFile.class);
boolean b = rStatFileService.updateById(rStatFile);
- if(b){
+ if (b) {
// minIoUtils.removeObjects( minIoProperties.getBucket(),param.getAddress());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
- }else{
+ } else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
}
@@ -79,16 +75,10 @@ public class AlgorithmController extends BaseController {
*/
@PostMapping("/common/upload")
@ResponseBody
- public HttpResult uploadFile(MultipartFile file)
- {
- try
- {
- //把名称存入数据
- MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "algorithm/");
- return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, upload, null);
- }
- catch (Exception e)
- {
+ public HttpResult uploadFile(MultipartFile file) {
+ try {
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, fileStorageUtil.uploadMultipart(file,OssPath.ALGORITHM), null);
+ } catch (Exception e) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, null);
}
}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java
index 0281d5fac..144a4dd2d 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java
@@ -1,5 +1,6 @@
package com.njcn.harmonic.service.impl;
+import ch.qos.logback.core.rolling.helper.FileStoreUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
@@ -26,13 +27,11 @@ import com.njcn.harmonic.pojo.vo.ReportTemplateVO;
import com.njcn.harmonic.pojo.vo.ReportTreeVO;
import com.njcn.harmonic.pojo.vo.SysDeptTempVO;
import com.njcn.harmonic.service.CustomReportService;
-import com.njcn.influxdb.config.InfluxDbConfig;
import com.njcn.influxdb.param.InfluxDBSqlConstant;
import com.njcn.influxdb.param.InfluxDBTableConstant;
import com.njcn.influxdb.utils.InfluxDbUtils;
-import com.njcn.minio.bo.MinIoUploadResDTO;
-import com.njcn.minio.config.MinIoProperties;
-import com.njcn.minio.utils.MinIoUtils;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
@@ -89,31 +88,22 @@ public class CustomReportServiceImpl implements CustomReportService {
private final GeneralInfo generalInfo;
- @Resource
- private MinIoUtils minIoUtils;
+ private final FileStorageUtil fileStorageUtil;
- @Resource
- private MinIoProperties minIoProperties;
-
- @Resource
- private InfluxDbConfig influxDbConfig;
@Override
public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) {
checkName(reportTemplateParam, false);
-
+ MultipartFile fileContent = reportTemplateParam.getFileContent();
+ String fileName = fileContent.getName();
//检验模板json数据规范
try {
- String content = MultipartFileToString(reportTemplateParam.getFileContent());
+ String content = MultipartFileToString(fileContent);
new JSONArray(content);
} catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
}
-
- //文件上传到Minio服务器,存入文件名
- MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent());
- reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName());
-
+ reportTemplateParam.setContent(fileStorageUtil.uploadMultipart(fileContent, OssPath.HARMONIC_EXCEL_TEMPLATE));
//新增模板表
ExcelRptTemp excelRptTemp = new ExcelRptTemp();
BeanUtils.copyProperties(reportTemplateParam, excelRptTemp);
@@ -137,10 +127,10 @@ public class CustomReportServiceImpl implements CustomReportService {
@Override
public boolean updateCustomReportTemplate(ReportTemplateParam.UpdateReportTemplateParam reportTemplateParam) {
checkName(reportTemplateParam, true);
-
+ MultipartFile fileContent = reportTemplateParam.getFileContent();
//检验模板json数据规范
try {
- String content = MultipartFileToString(reportTemplateParam.getFileContent());
+ String content = MultipartFileToString(fileContent);
new JSONArray(content);
} catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
@@ -148,12 +138,8 @@ public class CustomReportServiceImpl implements CustomReportService {
//删除之前的文件
ExcelRptTemp excelRptTempOld = excelRptTempMapper.selectById(reportTemplateParam.getId());
- minIoUtils.removeObject(minIoProperties.getBucket(), excelRptTempOld.getContent());
-
- //文件上传到Minio服务器,存入文件名
- MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent());
- reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName());
-
+ fileStorageUtil.deleteFile(excelRptTempOld.getContent());
+ reportTemplateParam.setContent(fileStorageUtil.uploadMultipart(fileContent, OssPath.HARMONIC_EXCEL_TEMPLATE));
//修改模板数据
ExcelRptTemp excelRptTemp = new ExcelRptTemp();
BeanUtils.copyProperties(reportTemplateParam, excelRptTemp);
@@ -194,7 +180,7 @@ public class CustomReportServiceImpl implements CustomReportService {
@Override
public ExcelRptTemp getCustomReportTemplateById(String id) {
ExcelRptTemp excelRptTemp = excelRptTempMapper.selectById(id);
- String contentUrl = minIoUtils.getObjectUrl(minIoProperties.getBucket(), excelRptTemp.getContent(), 7 * 24 * 60 * 60);
+ String contentUrl = fileStorageUtil.getFileUrl(excelRptTemp.getContent());
excelRptTemp.setContent(contentUrl);
return excelRptTemp;
}
@@ -240,10 +226,10 @@ public class CustomReportServiceImpl implements CustomReportService {
lambdaQuery.eq(ExcelRpt::getLineId, reportSearchParam.getLineId()).eq(ExcelRpt::getTempId, reportSearchParam.getTempId());
List excelRpts = excelRptMapper.selectList(lambdaQuery);
String content;
- if (excelRpts.size() > 0){
- content = minIoUtils.getObjectUrl(minIoProperties.getBucket(), excelRpts.get(0).getContent(), 7 * 24 * 60 * 60);
- }else{
- content = minIoUtils.getObjectUrl(minIoProperties.getBucket(), analyzeReport(reportSearchParam,excelRptTemp), 7 * 24 * 60 * 60);
+ if (excelRpts.size() > 0) {
+ content = fileStorageUtil.getFileUrl(excelRpts.get(0).getContent());
+ } else {
+ content = fileStorageUtil.getFileUrl(analyzeReport(reportSearchParam, excelRptTemp));
}
//拼接数据
@@ -364,13 +350,13 @@ public class CustomReportServiceImpl implements CustomReportService {
/**
* 解析报表数据
*/
- private String analyzeReport(ReportSearchParam reportSearchParam,ExcelRptTemp excelRptTemp){
+ private String analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp) {
//根据content,获取v值并进行处理
List reportTemplateDTOList = new ArrayList<>();
JSONArray jsonArray = null;
try {
//通过文件服务器获取
- String objectUrl = minIoUtils.getObjectUrl(minIoProperties.getBucket(), excelRptTemp.getContent(), 7 * 24 * 60 * 60);
+ String objectUrl = fileStorageUtil.getFileUrl(excelRptTemp.getContent());
jsonArray = JSONUtil.parseArray(urlToString(objectUrl));
jsonArray.forEach(item -> {
JSONObject jsonObject = (JSONObject) item;
@@ -394,7 +380,7 @@ public class CustomReportServiceImpl implements CustomReportService {
if (vItem.length == 4) {
//$HA[_25]#B#max#classId$
reportTemplateDTO.setTemplateName(vItem[0]);
- reportTemplateDTO.setPhase(vItem[1].substring(0,1));
+ reportTemplateDTO.setPhase(vItem[1].substring(0, 1));
reportTemplateDTO.setStatMethod(vItem[2].toUpperCase());
reportTemplateDTO.setClassId(vItem[3]);
} else if (vItem.length == 3) {
@@ -462,11 +448,9 @@ public class CustomReportServiceImpl implements CustomReportService {
});
}
- //文件上传到Minio服务器,存入文件名
File newFile = stringToFile(jsonArray.toString());
MultipartFile newMultipartFile = getMultipartFile(newFile);
- MinIoUploadResDTO minIoUploadResDTO = contentToMinio(newMultipartFile);
- String newContent = minIoUploadResDTO.getMinFileName();
+ String newContent = fileStorageUtil.uploadMultipart(newMultipartFile, OssPath.HARMONIC_EXCEL_REPORT);
//存入报表库
ExcelRpt excelRpt = new ExcelRpt();
@@ -479,7 +463,7 @@ public class CustomReportServiceImpl implements CustomReportService {
//根据模板激活状态,判断是否进库(修改State字段:0未进库 1已进库)
if (DataStateEnum.ENABLE.getCode().equals(reportSearchParam.getActivation())) {
excelRpt.setState(DataStateEnum.ENABLE.getCode());
- }else{
+ } else {
excelRpt.setState(DataStateEnum.DELETED.getCode());
}
excelRptMapper.insert(excelRpt);
@@ -496,9 +480,9 @@ public class CustomReportServiceImpl implements CustomReportService {
//sql拼接示例:select MAX(IHA2) as IHA2 from power_quality_data where Phase = 'A' and LineId='1324564568' and Stat_Method='max' tz('Asia/Shanghai')
//cp95函数特殊处理 PERCENTILE(field_key, N)
- if (InfluxDBSqlConstant.CP95.equals(method)){
+ if (InfluxDBSqlConstant.CP95.equals(method)) {
sql.append(method).append(InfluxDBSqlConstant.LBK).append(data.getTemplateName()).append(InfluxDBSqlConstant.NUM_95).append(InfluxDBSqlConstant.RBK).append(InfluxDBSqlConstant.AS_VALUE);
- }else{
+ } else {
sql.append(method).append(InfluxDBSqlConstant.LBK).append(data.getTemplateName()).append(InfluxDBSqlConstant.RBK).append(InfluxDBSqlConstant.AS_VALUE);
}
sql.append(InfluxDBSqlConstant.FROM).append(data.getClassId()).append(InfluxDBSqlConstant.WHERE).append(InfluxDBTableConstant.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(reportSearchParam.getLineId()).append(InfluxDBSqlConstant.QM);
@@ -508,7 +492,7 @@ public class CustomReportServiceImpl implements CustomReportService {
}
//data_flicker、data_fluc、data_plt 无 value_type
- if (!InfluxDBTableConstant.DATA_FLICKER.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_FLUC.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_PLT.equals(data.getClassId())){
+ if (!InfluxDBTableConstant.DATA_FLICKER.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_FLUC.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_PLT.equals(data.getClassId())) {
sql.append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getStatMethod()).append(InfluxDBSqlConstant.QM);
}
sql.append(InfluxDBSqlConstant.TZ);
@@ -520,7 +504,7 @@ public class CustomReportServiceImpl implements CustomReportService {
List results = queryResult.getResults();
if (results.size() != 0) {
QueryResult.Result result = results.get(0);
- if (result.getSeries() != null){
+ if (result.getSeries() != null) {
List seriess = result.getSeries();
if (seriess.size() != 0) {
QueryResult.Series series = seriess.get(0);
@@ -539,21 +523,6 @@ public class CustomReportServiceImpl implements CustomReportService {
endList.add(data);
}
- /**
- * 上传文件到Minio
- *
- * @param file 文件
- * @return 成功标记
- */
- private MinIoUploadResDTO contentToMinio(MultipartFile file) {
- try {
- //把名称存入数据
- MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "report/");
- return upload;
- } catch (Exception e) {
- throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_FILE);
- }
- }
/**
* 文件Url 转 String
@@ -566,7 +535,7 @@ public class CustomReportServiceImpl implements CustomReportService {
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
String line = " ";
- while ((line = in.readLine()) != null){
+ while ((line = in.readLine()) != null) {
buffer.append(line);
}
return buffer.toString();
@@ -575,7 +544,7 @@ public class CustomReportServiceImpl implements CustomReportService {
/**
* 字符串写入指定文件
*
- * @param res 原字符串
+ * @param res 原字符串
* @return 成功标记
*/
public File stringToFile(String res) {
@@ -584,7 +553,9 @@ public class CustomReportServiceImpl implements CustomReportService {
String businessTempPath = generalInfo.getBusinessTempPath();
File distFile = new File(businessTempPath + File.separator + "temp.json");
try {
- if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs();
+ if (!distFile.getParentFile().exists()) {
+ distFile.getParentFile().mkdirs();
+ }
bufferedReader = new BufferedReader(new StringReader(res));
bufferedWriter = new BufferedWriter(new FileWriter(distFile));
bufferedWriter.write("");
diff --git a/pqs-job/job-executor/src/test/java/Test1.java b/pqs-job/job-executor/src/test/java/Test1.java
index 4ad8689ad..c56d3c2de 100644
--- a/pqs-job/job-executor/src/test/java/Test1.java
+++ b/pqs-job/job-executor/src/test/java/Test1.java
@@ -33,7 +33,7 @@ public class Test1 extends BaseJunitTest{
@Test
public void testMethod(){
- InfluxDbUtils influxDBUtil = new InfluxDbUtils(influxDbConfig.getUserName(), influxDbConfig.getPassword(), influxDbConfig.getInfluxDBUrl(), influxDbConfig.getDatabase(), "");
+ InfluxDbUtils influxDBUtil = new InfluxDbUtils(influxDbConfig.getUser(), influxDbConfig.getPassword(), influxDbConfig.getUrl(), influxDbConfig.getDatabase(), "");
SelectQueryImpl selectQuery = select().from(influxDbConfig.getDatabase(),"data_flicker").where(eq("fluc",0)).limit(1).tz("Asia/Shanghai");
WhereQueryImpl where = selectQuery.where();
QueryResult queryResult = influxDBUtil.query(selectQuery.getCommand());
diff --git a/pqs-prepare/harmonic-prepare/pom.xml b/pqs-prepare/harmonic-prepare/pom.xml
index dc1f818f3..079750ceb 100644
--- a/pqs-prepare/harmonic-prepare/pom.xml
+++ b/pqs-prepare/harmonic-prepare/pom.xml
@@ -112,16 +112,11 @@
com.njcn
- common-minio
+ common-oss
${project.version}
-
-
- me.tongfei
- progressbar
- 0.5.3
-
+
com.squareup.okhttp3
@@ -129,17 +124,6 @@
4.8.1
-
- io.minio
- minio
- 8.2.1
-
-
- com.squareup.okhttp3
- okhttp
-
-
-
com.njcn
diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java
index 8de56fda1..76167cec2 100644
--- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java
+++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java
@@ -19,9 +19,9 @@ import com.njcn.harmonic.pojo.po.ExcelRptTemp;
import com.njcn.influxdb.param.InfluxDBSqlConstant;
import com.njcn.influxdb.param.InfluxDBTableConstant;
import com.njcn.influxdb.utils.InfluxDbUtils;
-import com.njcn.minio.bo.MinIoUploadResDTO;
-import com.njcn.minio.config.MinIoProperties;
-import com.njcn.minio.utils.MinIoUtils;
+import com.njcn.minioss.bo.MinIoUploadResDTO;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.prepare.harmonic.constant.AlgorithmParam;
import com.njcn.prepare.harmonic.mapper.mysql.line.ExcelRptMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.ExcelRptTempMapper;
@@ -65,11 +65,7 @@ public class ReportServiceImpl implements ReportService {
private final GeneralInfo generalInfo;
- @Resource
- private MinIoUtils minIoUtils;
-
- @Resource
- private MinIoProperties minIoProperties;
+ private final FileStorageUtil fileStorageUtil;
@Override
@@ -100,7 +96,7 @@ public class ReportServiceImpl implements ReportService {
for (ExcelRptTemp excelRptTemp : reportTemplateList) {
try {
//获取content解析数据
- String objectUrl = minIoUtils.getObjectUrl(minIoProperties.getBucket(), excelRptTemp.getContent(), 7 * 24 * 60 * 60);
+ String objectUrl = fileStorageUtil.getFileUrl(excelRptTemp.getContent());
jsonArray = JSONUtil.parseArray(urlToString(objectUrl));
dataList = getDataList(jsonArray);
} catch (Exception e) {
@@ -144,13 +140,11 @@ public class ReportServiceImpl implements ReportService {
//月:例如2022十月份,传入2022-10-01进行匹配,有则更新无则插入
//周:例如2022年第五周,传入2022-01-23(周一)进行匹配,有则更新无则插入
//日:直接插入,无需配对
- //文件上传到Minio服务器,存入文件名
- MinIoUploadResDTO minIoUploadResDTO = contentToMinio(jsonArray.toString());
- String afterContent = minIoUploadResDTO.getMinFileName();
+ //文件上传到文件服务器,存入文件名
if (BizParamConstant.STAT_BIZ_DAY.equals(reportParam.getType().toString())){
- rptInsert(reportParam, lineId, excelRptTemp, afterContent);
+ rptInsert(reportParam, lineId, excelRptTemp, contentToOss(jsonArray.toString()));
}else{
- rptBiz(reportParam, lineId, excelRptTemp, afterContent);
+ rptBiz(reportParam, lineId, excelRptTemp, contentToOss(jsonArray.toString()));
}
}
}
@@ -331,23 +325,17 @@ public class ReportServiceImpl implements ReportService {
/**
- * 上传文件到Minio
+ * 上传文件到Oss
*
* @param content 文件
* @return 成功标记
*/
- private MinIoUploadResDTO contentToMinio(String content) {
+ private String contentToOss(String content) {
//上传到minio
String businessTempPath = generalInfo.getBusinessTempPath();
- File file = stringToFile(content, businessTempPath + File.separator + "a.json");
+ File file = stringToFile(content, businessTempPath + File.separator + "temp.json");
MultipartFile multiFile = getMultipartFile(file);
- try {
- //把名称存入数据
- MinIoUploadResDTO upload = minIoUtils.upload(multiFile, minIoProperties.getBucket(), "report/");
- return upload;
- } catch (Exception e) {
- throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_FILE);
- }
+ return fileStorageUtil.uploadMultipart(multiFile, OssPath.HARMONIC_EXCEL_REPORT);
}
/**
diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java b/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java
index c9c6d818f..bb2c414db 100644
--- a/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java
+++ b/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java
@@ -16,10 +16,8 @@ public enum ProcessResponseEnum {
* A00550 ~ A00649
*/
PROCESS_COMMON_ERROR("A00550","监督管理模块异常"),
- UPLOAD_FILE_ERROR("A00551","上传文件服务器错误,请检查数据"),
ARCHIVE_ERROR("A00552","不满足归档调节,操作失败!"),
PROCESS_ERROR("A00553","当前流程未审核通过,操作失败!"),
- DOWNLOAD_FILE_ERROR("A00554","下载文件URL不存在,请检查数据"),
;
diff --git a/pqs-process/process-boot/pom.xml b/pqs-process/process-boot/pom.xml
index fbd19f790..a7ed2024d 100644
--- a/pqs-process/process-boot/pom.xml
+++ b/pqs-process/process-boot/pom.xml
@@ -67,18 +67,9 @@
${project.version}
-
-
- com.njcn
- common-minio
- ${project.version}
-
-
- me.tongfei
- progressbar
- 0.5.3
-
+
+
com.squareup.okhttp3
@@ -114,6 +105,12 @@
1.0.0
compile
+
+
+ com.njcn
+ common-oss
+ ${project.version}
+
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ElectricityQualityIssuesController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ElectricityQualityIssuesController.java
index 7913d9cab..54646664c 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ElectricityQualityIssuesController.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ElectricityQualityIssuesController.java
@@ -8,7 +8,6 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
-import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.*;
import com.njcn.process.service.IssuesService;
@@ -185,11 +184,11 @@ public class ElectricityQualityIssuesController extends BaseController {
@PostMapping("/uploadFile")
@ApiOperation("上传文件")
@ApiImplicitParam(name = "file", value = "填报进度文件", required = true)
- public HttpResult uploadFile(@RequestParam("file") MultipartFile issuesFile){
+ public HttpResult uploadFile(@RequestParam("file") MultipartFile issuesFile){
String methodDescribe = getMethodDescribe("uploadFile");
- MinIoUploadResDTO out = issuesService.uploadFile(issuesFile);
- out.setMinFileName(issuesFile.getOriginalFilename());
- return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, out, methodDescribe);
+ String filePath = issuesService.uploadFile(issuesFile);
+// out.setMinFileName(issuesFile.getOriginalFilename());
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, filePath, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DOWNLOAD)
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java
index e99de112b..91b57fb45 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/RGeneralSurveyPlanController.java
@@ -9,7 +9,7 @@ import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
-import com.njcn.minio.bo.MinIoUploadResDTO;
+import com.njcn.minioss.bo.MinIoUploadResDTO;
import com.njcn.poi.util.PoiUtil;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/IssuesService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/IssuesService.java
index 255a1cc9a..da33dd585 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/IssuesService.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/IssuesService.java
@@ -1,7 +1,6 @@
package com.njcn.process.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.vo.*;
import org.springframework.web.multipart.MultipartFile;
@@ -79,7 +78,7 @@ public interface IssuesService {
/**
* 上传文件
*/
- MinIoUploadResDTO uploadFile(MultipartFile issuesFile);
+ String uploadFile(MultipartFile issuesFile);
/**
* 下载文件
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/RGeneralSurveyPlanPOService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/RGeneralSurveyPlanPOService.java
index eeb407748..cb8c2b461 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/RGeneralSurveyPlanPOService.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/RGeneralSurveyPlanPOService.java
@@ -2,7 +2,7 @@ package com.njcn.process.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.jeffreyning.mybatisplus.service.IMppService;
-import com.njcn.minio.bo.MinIoUploadResDTO;
+import com.njcn.minioss.bo.MinIoUploadResDTO;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.RGeneralSurveyPlanPO;
import com.njcn.process.pojo.vo.SurveyPlanExcel;
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java
index f2e3d0ad7..8e212ee5b 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/IssuesServiceImpl.java
@@ -13,9 +13,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.exception.BusinessException;
-import com.njcn.minio.bo.MinIoUploadResDTO;
-import com.njcn.minio.config.MinIoProperties;
-import com.njcn.minio.utils.MinIoUtils;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.mapper.*;
import com.njcn.process.pojo.param.*;
@@ -45,6 +44,7 @@ import java.util.stream.Collectors;
/**
* 电能质量问题实现类
+ *
* @author xiaoyao
* @version 1.0.0
* @createTime 2022/11/14 11:03
@@ -72,19 +72,15 @@ public class IssuesServiceImpl implements IssuesService {
private final RStatElectricQualityProblemLogMapper rStatElectricQualityProblemLogMapper;
- @Resource
- private MinIoUtils minIoUtils;
-
- @Resource
- private MinIoProperties minIoProperties;
+ private final FileStorageUtil fileStorageUtil;
/**
* 新增电能质量问题流程表信息
*/
- private LocalDateTime addIssues(IssuesParam issuesParam,String powerQualityProblemNo){
+ private LocalDateTime addIssues(IssuesParam issuesParam, String powerQualityProblemNo) {
RStatElectricQualityProblemFlow issues = new RStatElectricQualityProblemFlow();
LocalDateTime local = LocalDateTimeUtil.now();
- BeanUtil.copyProperties(issuesParam,issues);
+ BeanUtil.copyProperties(issuesParam, issues);
issues.setPowerQualityProblemNo(powerQualityProblemNo);
issues.setDataDate(local);
issues.setStartTime(null);
@@ -98,16 +94,16 @@ public class IssuesServiceImpl implements IssuesService {
/**
* 生成问题编号
*/
- private String getPowerQualityProblemNo(IssuesParam issuesParam){
+ private String getPowerQualityProblemNo(IssuesParam issuesParam) {
StringBuilder powerQualityProblemNo = new StringBuilder();
- powerQualityProblemNo.append(PinyinUtil.getFirstLetter(issuesParam.getOrgName(),"").toUpperCase()).append("-");
- if (DicDataEnum.ONLINE.getCode().equals(issuesParam.getProblemSources())){
+ powerQualityProblemNo.append(PinyinUtil.getFirstLetter(issuesParam.getOrgName(), "").toUpperCase()).append("-");
+ if (DicDataEnum.ONLINE.getCode().equals(issuesParam.getProblemSources())) {
powerQualityProblemNo.append("ZXJC");
- }else if (DicDataEnum.GENERAL.getCode().equals(issuesParam.getProblemSources())){
+ } else if (DicDataEnum.GENERAL.getCode().equals(issuesParam.getProblemSources())) {
powerQualityProblemNo.append("PCCB");
- }else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesParam.getProblemSources())){
+ } else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesParam.getProblemSources())) {
powerQualityProblemNo.append("YHTS");
- }else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesParam.getProblemSources())){
+ } else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesParam.getProblemSources())) {
powerQualityProblemNo.append("YWYC");
}
String nowDate = DateUtil.format(new Date(), "yyyyMMdd");
@@ -116,9 +112,9 @@ public class IssuesServiceImpl implements IssuesService {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
LocalDateTime local = LocalDateTimeUtil.parse(processDate + "T00:00:00");
LocalDateTime localEnd = LocalDateTimeUtil.parse(processDate + "T23:59:59");
- issuesQuery.ge(RStatElectricQualityProblemFlow::getDataDate, local).le(RStatElectricQualityProblemFlow::getDataDate,localEnd);
+ issuesQuery.ge(RStatElectricQualityProblemFlow::getDataDate, local).le(RStatElectricQualityProblemFlow::getDataDate, localEnd);
Integer count = issuesMapper.selectCount(issuesQuery);
- powerQualityProblemNo.append(StrUtil.padPre(String.valueOf(count + 1),5, '0'));
+ powerQualityProblemNo.append(StrUtil.padPre(String.valueOf(count + 1), 5, '0'));
return powerQualityProblemNo.toString();
}
@@ -128,11 +124,11 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public void addExcessiveIssues(ExcessiveParam excessiveParam) {
IssuesParam issuesParam = new IssuesParam();
- BeanUtil.copyProperties(excessiveParam,issuesParam);
+ BeanUtil.copyProperties(excessiveParam, issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
+ LocalDateTime localDateTime = addIssues(issuesParam, powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessive = new RMpOnlineMonitorOverproofProblem();
- BeanUtil.copyProperties(excessiveParam,excessive);
+ BeanUtil.copyProperties(excessiveParam, excessive);
excessive.setPowerQualityProblemNo(powerQualityProblemNo);
excessive.setDataDate(localDateTime);
excessiveMapper.insert(excessive);
@@ -144,12 +140,12 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public void addGeneralSurveyIssues(GeneralSurveyParam generalSurveyParam) {
IssuesParam issuesParam = new IssuesParam();
- BeanUtil.copyProperties(generalSurveyParam,issuesParam);
+ BeanUtil.copyProperties(generalSurveyParam, issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
+ LocalDateTime localDateTime = addIssues(issuesParam, powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurvey = new RMpGeneralSurveyOverproofProblem();
- BeanUtil.copyProperties(generalSurveyParam,generalSurvey);
- generalSurvey.setOverLimitTarget(ArrayUtil.toString(generalSurveyParam.getSteadyState())+ArrayUtil.toString(generalSurveyParam.getTransientIndicators()));
+ BeanUtil.copyProperties(generalSurveyParam, generalSurvey);
+ generalSurvey.setOverLimitTarget(ArrayUtil.toString(generalSurveyParam.getSteadyState()) + ArrayUtil.toString(generalSurveyParam.getTransientIndicators()));
generalSurvey.setPowerQualityProblemNo(powerQualityProblemNo);
generalSurvey.setDataDate(localDateTime);
generalSurveyMapper.insert(generalSurvey);
@@ -161,12 +157,12 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public void addComplaintIssues(ComplaintParam complaintParam) {
IssuesParam issuesParam = new IssuesParam();
- BeanUtil.copyProperties(complaintParam,issuesParam);
+ BeanUtil.copyProperties(complaintParam, issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
+ LocalDateTime localDateTime = addIssues(issuesParam, powerQualityProblemNo);
RMpUserComplaint complaint = new RMpUserComplaint();
- BeanUtil.copyProperties(complaintParam,complaint);
- complaint.setAbnormalTarget(ArrayUtil.toString(complaintParam.getSteadyState())+ArrayUtil.toString(complaintParam.getTransientIndicators()));
+ BeanUtil.copyProperties(complaintParam, complaint);
+ complaint.setAbnormalTarget(ArrayUtil.toString(complaintParam.getSteadyState()) + ArrayUtil.toString(complaintParam.getTransientIndicators()));
complaint.setPowerQualityProblemNo(powerQualityProblemNo);
complaint.setDataDate(localDateTime);
complaintMapper.insert(complaint);
@@ -178,12 +174,12 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public void addAbnormalIssues(AbnormalParam abnormalParam) {
IssuesParam issuesParam = new IssuesParam();
- BeanUtil.copyProperties(abnormalParam,issuesParam);
+ BeanUtil.copyProperties(abnormalParam, issuesParam);
String powerQualityProblemNo = getPowerQualityProblemNo(issuesParam);
- LocalDateTime localDateTime = addIssues(issuesParam,powerQualityProblemNo);
+ LocalDateTime localDateTime = addIssues(issuesParam, powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormal = new RMpOperationMonitorAbnormal();
- BeanUtil.copyProperties(abnormalParam,abnormal);
- abnormal.setAbnormalTarget(ArrayUtil.toString(abnormalParam.getSteadyState())+ArrayUtil.toString(abnormalParam.getTransientIndicators()));
+ BeanUtil.copyProperties(abnormalParam, abnormal);
+ abnormal.setAbnormalTarget(ArrayUtil.toString(abnormalParam.getSteadyState()) + ArrayUtil.toString(abnormalParam.getTransientIndicators()));
abnormal.setPowerQualityProblemNo(powerQualityProblemNo);
abnormal.setDataDate(localDateTime);
abnormalMapper.insert(abnormal);
@@ -198,26 +194,26 @@ public class IssuesServiceImpl implements IssuesService {
Date dateOut = DateUtil.parse(param.getDataDate());
Date dateBegin = new Date();
Date dateEnd = new Date();
- if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(param.getDataType())){
+ if (Integer.valueOf(BizParamConstant.STAT_BIZ_YEAR).equals(param.getDataType())) {
dateBegin = DateUtil.beginOfYear(dateOut);
dateEnd = DateUtil.endOfYear(dateOut);
- }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(param.getDataType())){
+ } else if (Integer.valueOf(BizParamConstant.STAT_BIZ_QUARTER).equals(param.getDataType())) {
dateBegin = DateUtil.beginOfQuarter(dateOut);
dateEnd = DateUtil.endOfQuarter(dateOut);
- }else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(param.getDataType())){
+ } else if (Integer.valueOf(BizParamConstant.STAT_BIZ_MONTH).equals(param.getDataType())) {
dateBegin = DateUtil.beginOfMonth(dateOut);
dateEnd = DateUtil.endOfMonth(dateOut);
}
- List deptIds = deptFeignClient.getDepSonIdtByDeptId(param.getOrgNo ()).getData();
+ List deptIds = deptFeignClient.getDepSonIdtByDeptId(param.getOrgNo()).getData();
- List out = issuesMapper.getIssues(deptIds,param,DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd));
+ List out = issuesMapper.getIssues(deptIds, param, DateUtil.formatDateTime(dateBegin), DateUtil.formatDateTime(dateEnd));
if (!CollectionUtils.isEmpty(out)) {
out.forEach(data -> data.setOrgName((deptFeignClient.getDeptById(data.getOrgNo()).getData().getName())));
/*问题来源*/
List problemSourcesDictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PROBLEM_SOURCES.getCode()).getData();
problemSourcesDictData.forEach(dict -> out.stream().filter(data -> dict.getCode().equals(data.getProblemSources())).forEach(data -> data.setProblemSources(dict.getName())));
page.setTotal(out.size());
- int pages = (int)Math.ceil(out.size()*1.0/param.getPageSize());
+ int pages = (int) Math.ceil(out.size() * 1.0 / param.getPageSize());
page.setPages(pages);
List> partition = Lists.partition(out, param.getPageSize());
List issuesVOS = partition.get(param.getPageNum() - 1);
@@ -229,49 +225,49 @@ public class IssuesServiceImpl implements IssuesService {
/**
* 问题基本信息查询
*/
- private RStatElectricQualityProblemFlow issuesSelectOne(String powerQualityProblemNo){
+ private RStatElectricQualityProblemFlow issuesSelectOne(String powerQualityProblemNo) {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
+ issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo, powerQualityProblemNo);
return issuesMapper.selectOne(issuesQuery);
}
/**
* 填报流程详情查询
*/
- private RMpElectricQualityProblemFlowDetails flowDetailSelectOne(String powerQualityProblemNo){
+ private RMpElectricQualityProblemFlowDetails flowDetailSelectOne(String powerQualityProblemNo) {
LambdaQueryWrapper flowQuery = new LambdaQueryWrapper<>();
- flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
+ flowQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo, powerQualityProblemNo);
return flowDetailsMapper.selectOne(flowQuery);
}
/**
* 处理填报信息
*/
- private FlowDetailVO processFlowDetail(RMpElectricQualityProblemFlowDetails details){
+ private FlowDetailVO processFlowDetail(RMpElectricQualityProblemFlowDetails details) {
FlowDetailVO process = new FlowDetailVO();
- BeanUtil.copyProperties(details,process);
- if (!StrUtil.isEmpty(details.getReportProcessContentYyfx())){
- process.setReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentYyfx(),"["),"]").split(","));
+ BeanUtil.copyProperties(details, process);
+ if (!StrUtil.isEmpty(details.getReportProcessContentYyfx())) {
+ process.setReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentYyfx(), "["), "]").split(","));
StrUtil.trim(process.getReportProcessContentYyfx());
}
- if (!StrUtil.isEmpty(details.getUserReportProcessContentYyfx())){
- process.setUserReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentYyfx(),"["),"]").split(","));
+ if (!StrUtil.isEmpty(details.getUserReportProcessContentYyfx())) {
+ process.setUserReportProcessContentYyfx(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentYyfx(), "["), "]").split(","));
StrUtil.trim(process.getUserReportProcessContentYyfx());
}
- if (!StrUtil.isEmpty(details.getReportProcessContentJhzg())){
- process.setReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentJhzg(),"["),"]").split(","));
+ if (!StrUtil.isEmpty(details.getReportProcessContentJhzg())) {
+ process.setReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentJhzg(), "["), "]").split(","));
StrUtil.trim(process.getReportProcessContentJhzg());
}
- if (!StrUtil.isEmpty(details.getUserReportProcessContentJhzg())){
- process.setUserReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentJhzg(),"["),"]").split(","));
+ if (!StrUtil.isEmpty(details.getUserReportProcessContentJhzg())) {
+ process.setUserReportProcessContentJhzg(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentJhzg(), "["), "]").split(","));
StrUtil.trim(process.getUserReportProcessContentJhzg());
}
- if (!StrUtil.isEmpty(details.getReportProcessContentSjcq())){
- process.setReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentSjcq(),"["),"]").split(","));
+ if (!StrUtil.isEmpty(details.getReportProcessContentSjcq())) {
+ process.setReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getReportProcessContentSjcq(), "["), "]").split(","));
StrUtil.trim(process.getReportProcessContentSjcq());
}
- if (!StrUtil.isEmpty(details.getUserReportProcessContentSjcq())){
- process.setUserReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentSjcq(),"["),"]").split(","));
+ if (!StrUtil.isEmpty(details.getUserReportProcessContentSjcq())) {
+ process.setUserReportProcessContentSjcq(StrUtil.removeSuffix(StrUtil.removePrefix(details.getUserReportProcessContentSjcq(), "["), "]").split(","));
StrUtil.trim(process.getUserReportProcessContentSjcq());
}
return process;
@@ -283,14 +279,14 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public ExcessiveDetailVO getExcessiveDetail(String powerQualityProblemNo) {
ExcessiveDetailVO detail = new ExcessiveDetailVO();
- BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
+ BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo), detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper excessiveQuery = new LambdaQueryWrapper<>();
- excessiveQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
+ excessiveQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo, powerQualityProblemNo);
RMpOnlineMonitorOverproofProblem excessiveOut = excessiveMapper.selectOne(excessiveQuery);
- BeanUtil.copyProperties(excessiveOut,detail);
+ BeanUtil.copyProperties(excessiveOut, detail);
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
- BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
+ BeanUtil.copyProperties(processFlowDetail(flowDetails), detail);
return detail;
}
@@ -300,16 +296,16 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public GeneralSurveyVO getGeneralSurveyDetail(String powerQualityProblemNo) {
GeneralSurveyVO detail = new GeneralSurveyVO();
- BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
+ BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo), detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper generalSurveyQuery = new LambdaQueryWrapper<>();
- generalSurveyQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
+ generalSurveyQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo, powerQualityProblemNo);
RMpGeneralSurveyOverproofProblem generalSurveyOut = generalSurveyMapper.selectOne(generalSurveyQuery);
- BeanUtil.copyProperties(generalSurveyOut,detail);
+ BeanUtil.copyProperties(generalSurveyOut, detail);
detail.setSteadyIndicator(steadyIndicator(generalSurveyOut.getOverLimitTarget()));
detail.setTransientIndicators(transientIndicators(generalSurveyOut.getOverLimitTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
- BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
+ BeanUtil.copyProperties(processFlowDetail(flowDetails), detail);
return detail;
}
@@ -319,22 +315,22 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public ComplaintVO getComplaintDetail(String powerQualityProblemNo) {
ComplaintVO detail = new ComplaintVO();
- BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
+ BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo), detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper complaintQuery = new LambdaQueryWrapper<>();
- complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
+ complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo, powerQualityProblemNo);
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
- BeanUtil.copyProperties(complaintOut,detail);
+ BeanUtil.copyProperties(complaintOut, detail);
detail.setSteadyIndicator(steadyIndicator(complaintOut.getAbnormalTarget()));
detail.setTransientIndicators(transientIndicators(complaintOut.getAbnormalTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
- BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
- if (!StrUtil.isEmpty(complaintOut.getPowerGridAffectDev())){
- detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getPowerGridAffectDev(),"["),"]").split(","));
+ BeanUtil.copyProperties(processFlowDetail(flowDetails), detail);
+ if (!StrUtil.isEmpty(complaintOut.getPowerGridAffectDev())) {
+ detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getPowerGridAffectDev(), "["), "]").split(","));
StrUtil.trim(detail.getPowerGridAffectDev());
}
- if (!StrUtil.isEmpty(complaintOut.getUserAffectDev())){
- detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getUserAffectDev(),"["),"]").split(","));
+ if (!StrUtil.isEmpty(complaintOut.getUserAffectDev())) {
+ detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(complaintOut.getUserAffectDev(), "["), "]").split(","));
StrUtil.trim(detail.getUserAffectDev());
}
return detail;
@@ -346,22 +342,22 @@ public class IssuesServiceImpl implements IssuesService {
@Override
public AbnormalVO getAbnormalDetail(String powerQualityProblemNo) {
AbnormalVO detail = new AbnormalVO();
- BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo),detail);
+ BeanUtil.copyProperties(issuesSelectOne(powerQualityProblemNo), detail);
detail.setOrgName(deptFeignClient.getDeptById(detail.getOrgNo()).getData().getName());
LambdaQueryWrapper abnormalQuery = new LambdaQueryWrapper<>();
- abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
+ abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo, powerQualityProblemNo);
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
- BeanUtil.copyProperties(abnormalOut,detail);
+ BeanUtil.copyProperties(abnormalOut, detail);
detail.setSteadyIndicator(steadyIndicator(abnormalOut.getAbnormalTarget()));
detail.setTransientIndicators(transientIndicators(abnormalOut.getAbnormalTarget()));
RMpElectricQualityProblemFlowDetails flowDetails = flowDetailSelectOne(powerQualityProblemNo);
- BeanUtil.copyProperties(processFlowDetail(flowDetails),detail);
- if (!StrUtil.isEmpty(abnormalOut.getPowerGridAffectDev())){
- detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getPowerGridAffectDev(),"["),"]").split(","));
+ BeanUtil.copyProperties(processFlowDetail(flowDetails), detail);
+ if (!StrUtil.isEmpty(abnormalOut.getPowerGridAffectDev())) {
+ detail.setPowerGridAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getPowerGridAffectDev(), "["), "]").split(","));
StrUtil.trim(detail.getPowerGridAffectDev());
}
- if (!StrUtil.isEmpty(abnormalOut.getUserAffectDev())){
- detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getUserAffectDev(),"["),"]").split(","));
+ if (!StrUtil.isEmpty(abnormalOut.getUserAffectDev())) {
+ detail.setUserAffectDev(StrUtil.removeSuffix(StrUtil.removePrefix(abnormalOut.getUserAffectDev(), "["), "]").split(","));
StrUtil.trim(detail.getUserAffectDev());
}
return detail;
@@ -370,8 +366,8 @@ public class IssuesServiceImpl implements IssuesService {
/**
* 稳态指标处理
*/
- private String[] steadyIndicator(String target){
- String[] process = StrUtil.removePrefix(target.split("]\\[")[0],"\\[").split(",");
+ private String[] steadyIndicator(String target) {
+ String[] process = StrUtil.removePrefix(target.split("]\\[")[0], "\\[").split(",");
StrUtil.trim(process);
return process;
}
@@ -379,8 +375,8 @@ public class IssuesServiceImpl implements IssuesService {
/**
* 暂态指标处理
*/
- private String[] transientIndicators(String target){
- String[] process = StrUtil.removeSuffix(target.split("]\\[")[1],"]").split(",");
+ private String[] transientIndicators(String target) {
+ String[] process = StrUtil.removeSuffix(target.split("]\\[")[1], "]").split(",");
StrUtil.trim(process);
return process;
}
@@ -393,31 +389,31 @@ public class IssuesServiceImpl implements IssuesService {
public void reasonAnalysis(ProcessParam processParam) {
LocalDateTime local = LocalDateTimeUtil.now();
RMpElectricQualityProblemFlowDetails details = new RMpElectricQualityProblemFlowDetails();
- BeanUtil.copyProperties(processParam,details);
+ BeanUtil.copyProperties(processParam, details);
details.setDataDateYyfx(local);
details.setReportProcessContentYyfx(ArrayUtil.toString(processParam.getReportProcessContentYyfx()));
details.setUserReportProcessContentYyfx(ArrayUtil.toString(processParam.getUserReportProcessContentYyfx()));
flowDetailsMapper.insert(details);
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
+ issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo, processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
issuesOut.setReportProcess(DicDataEnum.CAUSE_ANALYSIS.getCode());
- issuesOut.setReportProcessStatus (DicDataEnum.AUDITT.getCode());
- issuesMapper.update(issuesOut,issuesQuery);
- if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())){
+ issuesOut.setReportProcessStatus(DicDataEnum.AUDITT.getCode());
+ issuesMapper.update(issuesOut, issuesQuery);
+ if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())) {
LambdaQueryWrapper complaintQuery = new LambdaQueryWrapper<>();
- complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
+ complaintQuery.eq(RMpUserComplaint::getPowerQualityProblemNo, processParam.getPowerQualityProblemNo());
RMpUserComplaint complaintOut = complaintMapper.selectOne(complaintQuery);
complaintOut.setPowerGridAffectDev(ArrayUtil.toString(processParam.getPowerGridAffectDev()));
complaintOut.setUserAffectDev(ArrayUtil.toString(processParam.getUserAffectDev()));
- complaintMapper.update(complaintOut,complaintQuery);
- }else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())){
+ complaintMapper.update(complaintOut, complaintQuery);
+ } else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())) {
LambdaQueryWrapper abnormalQuery = new LambdaQueryWrapper<>();
- abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
+ abnormalQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo, processParam.getPowerQualityProblemNo());
RMpOperationMonitorAbnormal abnormalOut = abnormalMapper.selectOne(abnormalQuery);
abnormalOut.setPowerGridAffectDev(ArrayUtil.toString(processParam.getPowerGridAffectDev()));
abnormalOut.setUserAffectDev(ArrayUtil.toString(processParam.getUserAffectDev()));
- abnormalMapper.update(abnormalOut,abnormalQuery);
+ abnormalMapper.update(abnormalOut, abnormalQuery);
}
}
@@ -428,26 +424,26 @@ public class IssuesServiceImpl implements IssuesService {
@Transactional(rollbackFor = {Exception.class})
public void process(ProcessParam processParam, String code) {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
+ issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo, processParam.getPowerQualityProblemNo());
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(issuesQuery);
- if (DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())){
+ if (DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())) {
LambdaQueryWrapper query = new LambdaQueryWrapper<>();
- query.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
+ query.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo, processParam.getPowerQualityProblemNo());
RMpElectricQualityProblemFlowDetails details = flowDetailsMapper.selectOne(query);
LocalDateTime local = LocalDateTimeUtil.now();
- if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)){
+ if (DicDataEnum.PLAN_MEASURES.getCode().equals(code)) {
details.setDataDateJhzg(local);
details.setReportProcessContentJhzg(ArrayUtil.toString(processParam.getReportProcessContentJhzg()));
details.setUserReportProcessContentJhzg(ArrayUtil.toString(processParam.getUserReportProcessContentJhzg()));
details.setFileNameJhzg(processParam.getFileNameJhzg());
details.setFilePathJhzg(processParam.getFilePathJhzg());
- }else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(code)){
+ } else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(code)) {
details.setDataDateSjcq(local);
details.setReportProcessContentSjcq(ArrayUtil.toString(processParam.getReportProcessContentSjcq()));
details.setUserReportProcessContentSjcq(ArrayUtil.toString(processParam.getUserReportProcessContentSjcq()));
details.setFileNameSjcq(processParam.getFileNameSjcq());
details.setFilePathSjcq(processParam.getFilePathSjcq());
- }else if (DicDataEnum.INSIGHTS.getCode().equals(code)){
+ } else if (DicDataEnum.INSIGHTS.getCode().equals(code)) {
details.setDataDateZlxg(local);
details.setDescriptionZlxg(processParam.getDescriptionZlxg());
details.setFileNameZlxg(processParam.getFileNameZlxg());
@@ -456,8 +452,8 @@ public class IssuesServiceImpl implements IssuesService {
flowDetailsMapper.update(details, query);
issuesOut.setReportProcess(code);
issuesOut.setReportProcessStatus(DicDataEnum.AUDITT.getCode());
- issuesMapper.update(issuesOut,issuesQuery);
- }else {
+ issuesMapper.update(issuesOut, issuesQuery);
+ } else {
throw new BusinessException(ProcessResponseEnum.PROCESS_ERROR);
}
}
@@ -469,13 +465,13 @@ public class IssuesServiceImpl implements IssuesService {
@Transactional(rollbackFor = {Exception.class})
public void archive(String powerQualityProblemNo) {
LambdaQueryWrapper query = new LambdaQueryWrapper<>();
- query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
+ query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo, powerQualityProblemNo);
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(query);
if (DicDataEnum.INSIGHTS.getCode().equals(issuesOut.getReportProcess())
- && DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())){
+ && DicDataEnum.SUCCESS.getCode().equals(issuesOut.getReportProcessStatus())) {
issuesOut.setReportProcess(DicDataEnum.ARCHIVED.getCode());
- issuesMapper.update(issuesOut,query);
- }else {
+ issuesMapper.update(issuesOut, query);
+ } else {
throw new BusinessException(ProcessResponseEnum.ARCHIVE_ERROR);
}
}
@@ -484,30 +480,26 @@ public class IssuesServiceImpl implements IssuesService {
* 上传文件
*/
@Override
- public MinIoUploadResDTO uploadFile(MultipartFile issuesFile) {
- try {
- return minIoUtils.upload(issuesFile, minIoProperties.getBucket(), "electricityQuality/");
- } catch (Exception e) {
- throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR);
- }
+ public String uploadFile(MultipartFile issuesFile) {
+ return fileStorageUtil.uploadMultipart(issuesFile, OssPath.ELECTRICITY_QUALITY);
}
/**
* 下载文件
*/
@Override
- public String downloadFile(String powerQualityProblemNo,String reportProcess) {
+ public String downloadFile(String powerQualityProblemNo, String reportProcess) {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
+ issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo, powerQualityProblemNo);
RMpElectricQualityProblemFlowDetails details = flowDetailsMapper.selectOne(issuesQuery);
String filePath = null;
- if (DicDataEnum.CAUSE_ANALYSIS.getName().equals(reportProcess)){
+ if (DicDataEnum.CAUSE_ANALYSIS.getName().equals(reportProcess)) {
filePath = details.getFilePathYyfx();
- }else if (DicDataEnum.PLAN_MEASURES.getName().equals(reportProcess)){
+ } else if (DicDataEnum.PLAN_MEASURES.getName().equals(reportProcess)) {
filePath = details.getFilePathJhzg();
- }else if (DicDataEnum.ACTUAL_MEASURES.getName().equals(reportProcess)){
+ } else if (DicDataEnum.ACTUAL_MEASURES.getName().equals(reportProcess)) {
filePath = details.getFilePathSjcq();
- }else if (DicDataEnum.INSIGHTS.getName().equals(reportProcess)){
+ } else if (DicDataEnum.INSIGHTS.getName().equals(reportProcess)) {
filePath = details.getFilePathZlxg();
}
return filePath;
@@ -520,27 +512,27 @@ public class IssuesServiceImpl implements IssuesService {
@Transactional(rollbackFor = {Exception.class})
public void deleteIssues(String powerQualityProblemNo) {
LambdaQueryWrapper query = new LambdaQueryWrapper<>();
- query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
+ query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo, powerQualityProblemNo);
RStatElectricQualityProblemFlow issuesOut = issuesMapper.selectOne(query);
- if (DicDataEnum.ONLINE.getCode().equals(issuesOut.getProblemSources())){
+ if (DicDataEnum.ONLINE.getCode().equals(issuesOut.getProblemSources())) {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
+ issuesQuery.eq(RMpOnlineMonitorOverproofProblem::getPowerQualityProblemNo, powerQualityProblemNo);
excessiveMapper.delete(issuesQuery);
- }else if (DicDataEnum.GENERAL.getCode().equals(issuesOut.getProblemSources())){
+ } else if (DicDataEnum.GENERAL.getCode().equals(issuesOut.getProblemSources())) {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo,powerQualityProblemNo);
+ issuesQuery.eq(RMpGeneralSurveyOverproofProblem::getPowerQualityProblemNo, powerQualityProblemNo);
generalSurveyMapper.delete(issuesQuery);
- }else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())){
+ } else if (DicDataEnum.USER_COMPLAINTS.getCode().equals(issuesOut.getProblemSources())) {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RMpUserComplaint::getPowerQualityProblemNo,powerQualityProblemNo);
+ issuesQuery.eq(RMpUserComplaint::getPowerQualityProblemNo, powerQualityProblemNo);
complaintMapper.delete(issuesQuery);
- }else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())){
+ } else if (DicDataEnum.DEV_EXCEPTION.getCode().equals(issuesOut.getProblemSources())) {
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo,powerQualityProblemNo);
+ issuesQuery.eq(RMpOperationMonitorAbnormal::getPowerQualityProblemNo, powerQualityProblemNo);
abnormalMapper.delete(issuesQuery);
}
LambdaQueryWrapper issuesQuery = new LambdaQueryWrapper<>();
- issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo,powerQualityProblemNo);
+ issuesQuery.eq(RMpElectricQualityProblemFlowDetails::getPowerQualityProblemNo, powerQualityProblemNo);
flowDetailsMapper.delete(issuesQuery);
issuesMapper.delete(query);
}
@@ -559,17 +551,15 @@ public class IssuesServiceImpl implements IssuesService {
List deptIds = deptFeignClient.getDepSonIdtByDeptId(orgNo).getData();
/*问题个数*/
- QueryWrapper qualityProblemFlowQueryWrapper = new QueryWrapper<> ();
- qualityProblemFlowQueryWrapper.select ("1").
- in ("orgNo",deptIds);
- Integer integer = issuesMapper.selectCount (qualityProblemFlowQueryWrapper);
- issueesAndOrderVO.setId (orgNo);
- issueesAndOrderVO.setIssueesCount (integer);
+ QueryWrapper qualityProblemFlowQueryWrapper = new QueryWrapper<>();
+ qualityProblemFlowQueryWrapper.select("1").
+ in("orgNo", deptIds);
+ Integer integer = issuesMapper.selectCount(qualityProblemFlowQueryWrapper);
+ issueesAndOrderVO.setId(orgNo);
+ issueesAndOrderVO.setIssueesCount(integer);
/*已关联工单数量*/
-
-
return issueesAndOrderVO;
}
@@ -586,62 +576,62 @@ public class IssuesServiceImpl implements IssuesService {
public Boolean checkPowerQuality(ElectricityQualityCheckParam electricityQualityCheckParam) {
boolean result = true;
RStatElectricQualityProblemLogPO rStatElectricQualityProblemLogPO = new RStatElectricQualityProblemLogPO();
- rStatElectricQualityProblemLogPO.setPowerQualityProblemNo (electricityQualityCheckParam.getPowerQualityProblemNo ());
- rStatElectricQualityProblemLogPO.setChecker (electricityQualityCheckParam.getCheckPerson ());
- rStatElectricQualityProblemLogPO.setDataDate ( new Date ());
- rStatElectricQualityProblemLogPO.setDescription (electricityQualityCheckParam.getCheckComment ());
- rStatElectricQualityProblemLogPO.setReportProcess (electricityQualityCheckParam.getReportProcess ());
- rStatElectricQualityProblemLogPO.setReportProcessContent (electricityQualityCheckParam.getCheckComment ());
+ rStatElectricQualityProblemLogPO.setPowerQualityProblemNo(electricityQualityCheckParam.getPowerQualityProblemNo());
+ rStatElectricQualityProblemLogPO.setChecker(electricityQualityCheckParam.getCheckPerson());
+ rStatElectricQualityProblemLogPO.setDataDate(new Date());
+ rStatElectricQualityProblemLogPO.setDescription(electricityQualityCheckParam.getCheckComment());
+ rStatElectricQualityProblemLogPO.setReportProcess(electricityQualityCheckParam.getReportProcess());
+ rStatElectricQualityProblemLogPO.setReportProcessContent(electricityQualityCheckParam.getCheckComment());
- rStatElectricQualityProblemLogPO.setType (Objects.equals ("1", electricityQualityCheckParam.getCheckResult ())?DicDataEnum.SUCCESS.getCode ( ):DicDataEnum.FAIL.getCode ( ));
+ rStatElectricQualityProblemLogPO.setType(Objects.equals("1", electricityQualityCheckParam.getCheckResult()) ? DicDataEnum.SUCCESS.getCode() : DicDataEnum.FAIL.getCode());
/*插入审核日志表*/
- int insert = rStatElectricQualityProblemLogMapper.insert (rStatElectricQualityProblemLogPO);
- String report_process ="";
- String report_process_status ="";
- String reportProcess =electricityQualityCheckParam.getReportProcess ();
- String checkResult = electricityQualityCheckParam.getCheckResult ( );
- if (DicDataEnum.CAUSE_ANALYSIS.getCode ().equals(reportProcess)){
- if(Objects.equals ("1", checkResult)){
- report_process_status = DicDataEnum.AUDITT.getCode ();
- report_process = DicDataEnum.PLAN_MEASURES.getCode ();
- }else{
- report_process_status = DicDataEnum.FAIL.getCode ();
- report_process = DicDataEnum.CAUSE_ANALYSIS.getCode ();
+ int insert = rStatElectricQualityProblemLogMapper.insert(rStatElectricQualityProblemLogPO);
+ String report_process = "";
+ String report_process_status = "";
+ String reportProcess = electricityQualityCheckParam.getReportProcess();
+ String checkResult = electricityQualityCheckParam.getCheckResult();
+ if (DicDataEnum.CAUSE_ANALYSIS.getCode().equals(reportProcess)) {
+ if (Objects.equals("1", checkResult)) {
+ report_process_status = DicDataEnum.AUDITT.getCode();
+ report_process = DicDataEnum.PLAN_MEASURES.getCode();
+ } else {
+ report_process_status = DicDataEnum.FAIL.getCode();
+ report_process = DicDataEnum.CAUSE_ANALYSIS.getCode();
}
- }else if (DicDataEnum.PLAN_MEASURES.getCode().equals(reportProcess)){
- if(Objects.equals ("1", checkResult)){
- report_process_status = DicDataEnum.AUDITT.getCode ();
- report_process = DicDataEnum.ACTUAL_MEASURES.getCode ();
- }else{
- report_process_status = DicDataEnum.FAIL.getCode ();
- report_process = DicDataEnum.PLAN_MEASURES.getCode ();
+ } else if (DicDataEnum.PLAN_MEASURES.getCode().equals(reportProcess)) {
+ if (Objects.equals("1", checkResult)) {
+ report_process_status = DicDataEnum.AUDITT.getCode();
+ report_process = DicDataEnum.ACTUAL_MEASURES.getCode();
+ } else {
+ report_process_status = DicDataEnum.FAIL.getCode();
+ report_process = DicDataEnum.PLAN_MEASURES.getCode();
}
- }else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(reportProcess)){
- if(Objects.equals ("1", checkResult)){
- report_process_status = DicDataEnum.AUDITT.getCode ();
- report_process = DicDataEnum.INSIGHTS.getCode ();
- }else{
- report_process_status = DicDataEnum.FAIL.getCode ();
- report_process = DicDataEnum.ACTUAL_MEASURES.getCode ();
+ } else if (DicDataEnum.ACTUAL_MEASURES.getCode().equals(reportProcess)) {
+ if (Objects.equals("1", checkResult)) {
+ report_process_status = DicDataEnum.AUDITT.getCode();
+ report_process = DicDataEnum.INSIGHTS.getCode();
+ } else {
+ report_process_status = DicDataEnum.FAIL.getCode();
+ report_process = DicDataEnum.ACTUAL_MEASURES.getCode();
}
- }else if (DicDataEnum.INSIGHTS.getCode().equals(reportProcess)){
+ } else if (DicDataEnum.INSIGHTS.getCode().equals(reportProcess)) {
- if(Objects.equals ("1", checkResult)){
- report_process_status = DicDataEnum.AUDITT.getCode ();
- report_process = DicDataEnum.ARCHIVED.getCode ();
- }else{
- report_process_status = DicDataEnum.FAIL.getCode ();
- report_process = DicDataEnum.INSIGHTS.getCode ();
+ if (Objects.equals("1", checkResult)) {
+ report_process_status = DicDataEnum.AUDITT.getCode();
+ report_process = DicDataEnum.ARCHIVED.getCode();
+ } else {
+ report_process_status = DicDataEnum.FAIL.getCode();
+ report_process = DicDataEnum.INSIGHTS.getCode();
}
}
- UpdateWrapper updateWrapper = new UpdateWrapper ();
- updateWrapper.eq ("power_quality_problem_no", electricityQualityCheckParam.getPowerQualityProblemNo ());
- updateWrapper.set ("report_process", report_process);
- updateWrapper.set ("report_process_status",report_process_status);
- int i= issuesMapper.update (null,updateWrapper);
- result = insert==1&&i==1;
+ UpdateWrapper updateWrapper = new UpdateWrapper();
+ updateWrapper.eq("power_quality_problem_no", electricityQualityCheckParam.getPowerQualityProblemNo());
+ updateWrapper.set("report_process", report_process);
+ updateWrapper.set("report_process_status", report_process_status);
+ int i = issuesMapper.update(null, updateWrapper);
+ result = insert == 1 && i == 1;
return result;
}
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java
index dfa362ebb..38a3bea23 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/LoadTypeUserManageServiceImpl.java
@@ -4,13 +4,11 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.njcn.common.pojo.exception.BusinessException;
+import com.njcn.common.config.GeneralInfo;
+import com.njcn.oss.constant.OssPath;
import com.njcn.device.pms.api.DistributionMonitorClient;
-import com.njcn.minio.bo.MinIoUploadResDTO;
-import com.njcn.minio.config.MinIoProperties;
-import com.njcn.minio.utils.MinIoUtils;
+import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.process.constant.Param;
-import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.mapper.LoadTypeUserManageMapper;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.RLoadTypeUserManage;
@@ -59,18 +57,20 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
private final DeptFeignClient deptFeignClient;
@Resource
- private MinIoUtils minIoUtils;
+ private GeneralInfo generalInfo;
+
+ private final FileStorageUtil fileStorageUtil;
+
- @Resource
- private MinIoProperties minIoProperties;
/**
* 干扰源用户分页查询
+ *
* @param loadTypeUserSearchParam
* @return
*/
@Override
- public Page getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam){
+ public Page getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam) {
Page page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
Page loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeUserPage(page, loadTypeUserSearchParam);
@@ -91,6 +91,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/**
* 根据id查询干扰源用户
+ *
* @param id
* @return
*/
@@ -100,12 +101,12 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(rLoadTypeUserManage, rLoadTypeUserManageVO);
//文件
- if (rLoadTypeUserManageVO.getIFilePath() != null){
- String iFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getIFilePath(), 7 * 24 * 60 * 60);
+ if (rLoadTypeUserManageVO.getIFilePath() != null) {
+ String iFile = fileStorageUtil.getFileUrl(rLoadTypeUserManageVO.getIFilePath());
rLoadTypeUserManageVO.setIFile(iFile);
}
- if (rLoadTypeUserManageVO.getAFilePath() != null){
- String aFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getAFilePath(), 7 * 24 * 60 * 60);
+ if (rLoadTypeUserManageVO.getAFilePath() != null) {
+ String aFile = fileStorageUtil.getFileUrl(rLoadTypeUserManageVO.getAFilePath());
rLoadTypeUserManageVO.setIFile(aFile);
}
return rLoadTypeUserManageVO;
@@ -113,6 +114,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/**
* 新增干扰源用户
+ *
* @param loadTypeUserParam
* @return
*/
@@ -131,6 +133,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/**
* 上传干扰源用户入网报告
+ *
* @param loadTypeUserIUploadParam
* @return
*/
@@ -140,19 +143,18 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserIUploadParam, rLoadTypeUserManage);
-
+ MultipartFile multipartFile = loadTypeUserIUploadParam.getFile();
//文件上传到Minio服务器,存入文件名
- if(loadTypeUserIUploadParam.getFile() != null){
- MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserIUploadParam.getFile());
- rLoadTypeUserManage.setIFilePath(minIoUploadResDTO.getMinFileName());
+ if (Objects.nonNull(multipartFile)) {
+ rLoadTypeUserManage.setIFilePath(fileStorageUtil.uploadMultipart(multipartFile,OssPath.LOAD_TYPE_USER));
rLoadTypeUserManage.setIUploadTime(new Date());
}
//提交:待审核/保存:新建
DictData dictData;
- if(Objects.equals(Param.LOAD_TYPE_USER_SUBMIT,loadTypeUserIUploadParam.getStatus())){
+ if (Objects.equals(Param.LOAD_TYPE_USER_SUBMIT, loadTypeUserIUploadParam.getStatus())) {
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
- }else{
+ } else {
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
}
rLoadTypeUserManage.setIStatus(dictData.getId());
@@ -164,6 +166,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/**
* 关联营销用户
+ *
* @param
* @return
*/
@@ -179,13 +182,14 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/**
* 查询所有干扰源用户(与营销系统关联)
+ *
* @param loadTypeUserSearchParam
* @return
*/
@Override
public Page getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam) {
Page page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
- Page loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page,loadTypeUserSearchParam);
+ Page loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page, loadTypeUserSearchParam);
//部门处理:根据部门code取名称
List list = loadTypeUserPage.getRecords();
@@ -202,24 +206,11 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
return loadTypeUserPage.setRecords(resultList);
}
- /**
- * 上传文件到Minio
- *
- * @param file 文件
- * @return 成功标记
- */
- private MinIoUploadResDTO fileToMinio(MultipartFile file) {
- try {
- //把名称存入数据
- MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "loadTypeUser/");
- return upload;
- } catch (Exception e) {
- throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR);
- }
- }
+
/**
* 上传干扰源用户入网报告
+ *
* @param loadTypeUserAUploadParam
* @return
*/
@@ -229,19 +220,18 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserAUploadParam, rLoadTypeUserManage);
-
- //文件上传到Minio服务器,存入文件名
- if(loadTypeUserAUploadParam.getFile() != null){
- MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserAUploadParam.getFile());
- rLoadTypeUserManage.setAFilePath(minIoUploadResDTO.getMinFileName());
+ MultipartFile multipartFile = loadTypeUserAUploadParam.getFile();
+ //文件上传到文件服务器,存入文件名
+ if (Objects.nonNull(multipartFile)) {
+ rLoadTypeUserManage.setAFilePath(fileStorageUtil.uploadMultipart(multipartFile,OssPath.LOAD_TYPE_USER));
rLoadTypeUserManage.setAUploadTime(new Date());
}
//提交:待审核/保存:新建
DictData dictData;
- if(Objects.equals(Param.LOAD_TYPE_USER_SUBMIT,loadTypeUserAUploadParam.getStatus())){
+ if (Objects.equals(Param.LOAD_TYPE_USER_SUBMIT, loadTypeUserAUploadParam.getStatus())) {
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
- }else{
+ } else {
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
}
rLoadTypeUserManage.setAStatus(dictData.getId());
@@ -252,13 +242,14 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/**
* 导出未建档干扰源用户管理信息
+ *
* @param list
* @return
*/
@Override
public List exportLoadTypeUserList(List list) {
//数据处理
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<> ();
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(RLoadTypeUserManage::getId, list);
List rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据
@@ -275,25 +266,25 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
List resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeUserExcel loadTypeUserExcel = new LoadTypeUserExcel();
- if (item.getUserName() != null){
+ if (item.getUserName() != null) {
loadTypeUserExcel.setUserName(item.getUserName());
}
- if (item.getRecordTime() != null){
+ if (item.getRecordTime() != null) {
loadTypeUserExcel.setRecordTime(item.getRecordTime());
}
- if (item.getAIsFileUpload() != null){
+ if (item.getAIsFileUpload() != null) {
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "否" : "是"); //实测报告是否上传
}
- if (item.getOrgNo() != null){
+ if (item.getOrgNo() != null) {
loadTypeUserExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位
}
- if (item.getLoadType() != null){
+ if (item.getLoadType() != null) {
loadTypeUserExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName()); //入网报告状态
}
- if (item.getIStatus() != null){
+ if (item.getIStatus() != null) {
loadTypeUserExcel.setIStatusName(iStatusMap.get(item.getIStatus()).getName()); //入网报告状态
}
- if (item.getAIsFileUpload() != null){
+ if (item.getAIsFileUpload() != null) {
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "否" : "是"); //实测报告是否上传
}
return loadTypeUserExcel;
@@ -304,13 +295,14 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/**
* 导出干扰源用户常态化管理信息
+ *
* @param list
* @return
*/
@Override
public List exportLoadTypeRelationList(List list) {
//数据处理
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<> ();
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(RLoadTypeUserManage::getId, list);
List rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据
@@ -327,19 +319,19 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
List resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeRelationExcel loadTypeRelationExcel = new LoadTypeRelationExcel();
- if (item.getOrgNo() != null){
+ if (item.getOrgNo() != null) {
loadTypeRelationExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName());
}
- if (item.getLoadType() != null){
+ if (item.getLoadType() != null) {
loadTypeRelationExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName());
}
- if (item.getUserName() != null){
+ if (item.getUserName() != null) {
loadTypeRelationExcel.setUserName(item.getUserName());
}
- if (item.getRelationUserName() != null){
+ if (item.getRelationUserName() != null) {
loadTypeRelationExcel.setRelationUserName(item.getRelationUserName());
}
- if (item.getAStatus() != null){
+ if (item.getAStatus() != null) {
loadTypeRelationExcel.setAStatusName(aStatusMap.get(item.getIStatus()).getName());
}
return loadTypeRelationExcel;
@@ -360,17 +352,17 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
@Transactional(rollbackFor = {Exception.class})
public Boolean checkLoadTypeUserI(LoadTypeUserCheckParam loadTypeUserCheckParam) {
boolean result = true;
- UpdateWrapper updateWrapper = new UpdateWrapper ();
- updateWrapper.eq ("id", loadTypeUserCheckParam.getId ());
- updateWrapper.set ("i_check_comment", loadTypeUserCheckParam.getCheckComment ());
- updateWrapper.set ("i_check_person",loadTypeUserCheckParam.getCheckPerson ());
+ UpdateWrapper updateWrapper = new UpdateWrapper();
+ updateWrapper.eq("id", loadTypeUserCheckParam.getId());
+ updateWrapper.set("i_check_comment", loadTypeUserCheckParam.getCheckComment());
+ updateWrapper.set("i_check_person", loadTypeUserCheckParam.getCheckPerson());
- DictData fail = dicDataFeignClient.getDicDataByCode (DicDataEnum.FAIL.getCode ( )).getData ( );
- DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData();
+ DictData fail = dicDataFeignClient.getDicDataByCode(DicDataEnum.FAIL.getCode()).getData();
+ DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData();
- updateWrapper.set ("i_status", Objects.equals ("1", loadTypeUserCheckParam.getCheckResult ())?finish.getId ():fail.getId ());
- int i= loadTypeUserManageMapper.update (null,updateWrapper);
- result = i==1;
+ updateWrapper.set("i_status", Objects.equals("1", loadTypeUserCheckParam.getCheckResult()) ? finish.getId() : fail.getId());
+ int i = loadTypeUserManageMapper.update(null, updateWrapper);
+ result = i == 1;
return result;
}
@@ -386,17 +378,17 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
@Transactional(rollbackFor = {Exception.class})
public Boolean checkLoadTypeUserA(LoadTypeUserCheckParam loadTypeUserCheckParam) {
boolean result = true;
- UpdateWrapper updateWrapper = new UpdateWrapper ();
- updateWrapper.eq ("id", loadTypeUserCheckParam.getId ());
- updateWrapper.set ("a_check_comment", loadTypeUserCheckParam.getCheckComment ());
- updateWrapper.set ("a_check_person",loadTypeUserCheckParam.getCheckPerson ());
+ UpdateWrapper updateWrapper = new UpdateWrapper();
+ updateWrapper.eq("id", loadTypeUserCheckParam.getId());
+ updateWrapper.set("a_check_comment", loadTypeUserCheckParam.getCheckComment());
+ updateWrapper.set("a_check_person", loadTypeUserCheckParam.getCheckPerson());
- DictData fail = dicDataFeignClient.getDicDataByCode (DicDataEnum.FAIL.getCode ( )).getData ( );
- DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData();
+ DictData fail = dicDataFeignClient.getDicDataByCode(DicDataEnum.FAIL.getCode()).getData();
+ DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData();
- updateWrapper.set ("a_status", Objects.equals ("1", loadTypeUserCheckParam.getCheckResult ())?finish.getId ():fail.getId ());
- int i= loadTypeUserManageMapper.update (null,updateWrapper);
- result = i==1;
+ updateWrapper.set("a_status", Objects.equals("1", loadTypeUserCheckParam.getCheckResult()) ? finish.getId() : fail.getId());
+ int i = loadTypeUserManageMapper.update(null, updateWrapper);
+ result = i == 1;
return result;
}
}
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java
index 1318a9c6e..8d4e09779 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/RGeneralSurveyPlanPOServiceImpl.java
@@ -7,10 +7,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
-import com.njcn.minio.bo.MinIoUploadResDTO;
-import com.njcn.minio.config.MinIoProperties;
-import com.njcn.minio.utils.MinIoUtils;
-import com.njcn.process.enums.ProcessResponseEnum;
+import com.njcn.minioss.bo.MinIoUploadResDTO;
+import com.njcn.oss.constant.OssPath;
+import com.njcn.oss.enums.OssResponseEnum;
+import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.process.mapper.RGeneralSurveyPlanDetailMapper;
import com.njcn.process.mapper.RGeneralSurveyPlanPOMapper;
import com.njcn.process.pojo.param.*;
@@ -38,7 +38,6 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
- *
* Description:
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 11:24【需求编号】
@@ -47,27 +46,24 @@ import java.util.stream.Stream;
* @version V1.0.0
*/
@Service
-public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl implements RGeneralSurveyPlanPOService{
+public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl implements RGeneralSurveyPlanPOService {
-
- private @Autowired
- RGeneralSurveyPlanDetailService rGeneralSurveyPlanDetailService;
-
- private @Autowired
- RGeneralSurveyPlanPOMapper rGeneralSurveyPlanPOMapper;
-
- private @Autowired
- RGeneralSurveyPlanDetailMapper rGeneralSurveyPlanDetailMapper;
+ @Autowired
+ private RGeneralSurveyPlanDetailService rGeneralSurveyPlanDetailService;
@Resource
- private MinIoUtils minIoUtils;
-
- private @Autowired
- DeptFeignClient deptFeignClient;
-
+ private RGeneralSurveyPlanPOMapper rGeneralSurveyPlanPOMapper;
@Resource
- private MinIoProperties minIoProperties;
+ private RGeneralSurveyPlanDetailMapper rGeneralSurveyPlanDetailMapper;
+
+ @Autowired
+ private DeptFeignClient deptFeignClient;
+
+ @Resource
+ private FileStorageUtil fileStorageUtil;
+
+
/**
* @param rGeneralSurveyPlanAddParm
* @Description: addPlan
@@ -80,31 +76,31 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl rGeneralSurveyPlanDetailAddParm = rGeneralSurveyPlanAddParm.getRGeneralSurveyPlanDetailAddParm ( );
- QueryWrapper queryWrapper = new QueryWrapper ();
- queryWrapper.lambda ().eq (RGeneralSurveyPlanDetail::getPlanNo, rGeneralSurveyPlanAddParm.getPlanNo ());
- rGeneralSurveyPlanDetailService.remove (queryWrapper);
- List rGeneralSurveyPlanDetailList = new ArrayList<> ();
- rGeneralSurveyPlanDetailAddParm.forEach (temp->{
+ List rGeneralSurveyPlanDetailAddParm = rGeneralSurveyPlanAddParm.getRGeneralSurveyPlanDetailAddParm();
+ QueryWrapper queryWrapper = new QueryWrapper();
+ queryWrapper.lambda().eq(RGeneralSurveyPlanDetail::getPlanNo, rGeneralSurveyPlanAddParm.getPlanNo());
+ rGeneralSurveyPlanDetailService.remove(queryWrapper);
+ List rGeneralSurveyPlanDetailList = new ArrayList<>();
+ rGeneralSurveyPlanDetailAddParm.forEach(temp -> {
RGeneralSurveyPlanDetail rGeneralSurveyPlanDetail = new RGeneralSurveyPlanDetail();
- BeanUtils.copyProperties (temp, rGeneralSurveyPlanDetail);
+ BeanUtils.copyProperties(temp, rGeneralSurveyPlanDetail);
/*目前时间与计划开始时间,结束时间一致*/
- rGeneralSurveyPlanDetail.setGeneralSurveyStartTime (rGeneralSurveyPlanAddParm.getPlanStartTime ());
- rGeneralSurveyPlanDetail.setGeneralSurveyTime (rGeneralSurveyPlanAddParm.getPlanStartTime ());
- rGeneralSurveyPlanDetail.setGeneralSurveyEndTime (rGeneralSurveyPlanAddParm.getPlanEndTime ());
- rGeneralSurveyPlanDetail.setPlanNo (rGeneralSurveyPlanAddParm.getPlanNo ());
- rGeneralSurveyPlanDetail.setGeneralSurveyLeader(rGeneralSurveyPlanAddParm.getLeader ());
- rGeneralSurveyPlanDetailList.add (rGeneralSurveyPlanDetail);
+ rGeneralSurveyPlanDetail.setGeneralSurveyStartTime(rGeneralSurveyPlanAddParm.getPlanStartTime());
+ rGeneralSurveyPlanDetail.setGeneralSurveyTime(rGeneralSurveyPlanAddParm.getPlanStartTime());
+ rGeneralSurveyPlanDetail.setGeneralSurveyEndTime(rGeneralSurveyPlanAddParm.getPlanEndTime());
+ rGeneralSurveyPlanDetail.setPlanNo(rGeneralSurveyPlanAddParm.getPlanNo());
+ rGeneralSurveyPlanDetail.setGeneralSurveyLeader(rGeneralSurveyPlanAddParm.getLeader());
+ rGeneralSurveyPlanDetailList.add(rGeneralSurveyPlanDetail);
});
- boolean b1 = rGeneralSurveyPlanDetailService.saveOrUpdateBatchByMultiId (rGeneralSurveyPlanDetailList, 5);
+ boolean b1 = rGeneralSurveyPlanDetailService.saveOrUpdateBatchByMultiId(rGeneralSurveyPlanDetailList, 5);
- return b&&b1;
+ return b && b1;
}
/**
@@ -116,34 +112,34 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl query(RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm,List statusList ) {
- IPage page = new Page<> (rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
- IPage returnpage = new Page<> (rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
+ public IPage query(RGeneralSurveyPlanQueryParm rGeneralSurveyPlanQueryParm, List statusList) {
+ IPage page = new Page<>(rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
+ IPage returnpage = new Page<>(rGeneralSurveyPlanQueryParm.getCurrentPage(), rGeneralSurveyPlanQueryParm.getPageSize());
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<> ();
- if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm.getOrgNo ())) {
- List data = deptFeignClient.getDepSonIdtByDeptId (rGeneralSurveyPlanQueryParm.getOrgNo ()).getData ( );
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ if (!StringUtils.isEmpty(rGeneralSurveyPlanQueryParm.getOrgNo())) {
+ List data = deptFeignClient.getDepSonIdtByDeptId(rGeneralSurveyPlanQueryParm.getOrgNo()).getData();
- queryWrapper.in (RGeneralSurveyPlanPO::getOrgNo, data);
+ queryWrapper.in(RGeneralSurveyPlanPO::getOrgNo, data);
}
- if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm. getStatus ())) {
- queryWrapper.eq (RGeneralSurveyPlanPO::getStatus, rGeneralSurveyPlanQueryParm.getStatus ());
+ if (!StringUtils.isEmpty(rGeneralSurveyPlanQueryParm.getStatus())) {
+ queryWrapper.eq(RGeneralSurveyPlanPO::getStatus, rGeneralSurveyPlanQueryParm.getStatus());
}
- if (!StringUtils.isEmpty (rGeneralSurveyPlanQueryParm.getIsFileUpload ())) {
- queryWrapper.eq (RGeneralSurveyPlanPO::getIsFileUpload, rGeneralSurveyPlanQueryParm.getIsFileUpload ());
+ if (!StringUtils.isEmpty(rGeneralSurveyPlanQueryParm.getIsFileUpload())) {
+ queryWrapper.eq(RGeneralSurveyPlanPO::getIsFileUpload, rGeneralSurveyPlanQueryParm.getIsFileUpload());
}
- if (!Objects.isNull (rGeneralSurveyPlanQueryParm.getPlanStartTime ())) {
- queryWrapper.ge (RGeneralSurveyPlanPO::getPlanStartTime, rGeneralSurveyPlanQueryParm.getPlanStartTime ());
+ if (!Objects.isNull(rGeneralSurveyPlanQueryParm.getPlanStartTime())) {
+ queryWrapper.ge(RGeneralSurveyPlanPO::getPlanStartTime, rGeneralSurveyPlanQueryParm.getPlanStartTime());
}
- if (!Objects.isNull (rGeneralSurveyPlanQueryParm.getPlanEndTime ())) {
- queryWrapper.le (RGeneralSurveyPlanPO::getPlanEndTime, rGeneralSurveyPlanQueryParm.getPlanEndTime ());
+ if (!Objects.isNull(rGeneralSurveyPlanQueryParm.getPlanEndTime())) {
+ queryWrapper.le(RGeneralSurveyPlanPO::getPlanEndTime, rGeneralSurveyPlanQueryParm.getPlanEndTime());
}
- queryWrapper.in (RGeneralSurveyPlanPO::getStatus, statusList);
- queryWrapper.orderByAsc (RGeneralSurveyPlanPO::getStatus).orderByDesc (RGeneralSurveyPlanPO::getPlanCreateTime);
+ queryWrapper.in(RGeneralSurveyPlanPO::getStatus, statusList);
+ queryWrapper.orderByAsc(RGeneralSurveyPlanPO::getStatus).orderByDesc(RGeneralSurveyPlanPO::getPlanCreateTime);
- List rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectPage (page,queryWrapper).getRecords ();
- if(CollectionUtils.isEmpty (rGeneralSurveyPlanPOS)){
- return returnpage;
+ List rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectPage(page, queryWrapper).getRecords();
+ if (CollectionUtils.isEmpty(rGeneralSurveyPlanPOS)) {
+ return returnpage;
}
//部门处理:根据部门code取名称
@@ -154,36 +150,36 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl collect = rGeneralSurveyPlanPOS.stream ( ).map (RGeneralSurveyPlanPO::getPlanNo).collect (Collectors.toList ( ));
- LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<> ();
- lambdaQueryWrapper.in (RGeneralSurveyPlanDetail::getPlanNo, collect);
- List rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList (lambdaQueryWrapper);
- List rGeneralSurveyPlanVOList = new ArrayList<> ();
- rGeneralSurveyPlanPOS.forEach (temp ->{
- RGeneralSurveyPlanVO rGeneralSurveyPlanVO = new RGeneralSurveyPlanVO();
- BeanUtils.copyProperties (temp, rGeneralSurveyPlanVO);
- long Busbarcount = rGeneralSurveyPlanDetails.stream ( ).
- filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
- map (RGeneralSurveyPlanDetail::getBusbarId).distinct ( ).count ( );
+ List collect = rGeneralSurveyPlanPOS.stream().map(RGeneralSurveyPlanPO::getPlanNo).collect(Collectors.toList());
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.in(RGeneralSurveyPlanDetail::getPlanNo, collect);
+ List rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList(lambdaQueryWrapper);
+ List rGeneralSurveyPlanVOList = new ArrayList<>();
+ rGeneralSurveyPlanPOS.forEach(temp -> {
+ RGeneralSurveyPlanVO rGeneralSurveyPlanVO = new RGeneralSurveyPlanVO();
+ BeanUtils.copyProperties(temp, rGeneralSurveyPlanVO);
+ long Busbarcount = rGeneralSurveyPlanDetails.stream().
+ filter(surveyPlanDetail -> Objects.equals(surveyPlanDetail.getPlanNo(), temp.getPlanNo())).
+ map(RGeneralSurveyPlanDetail::getBusbarId).distinct().count();
- long Subcount = rGeneralSurveyPlanDetails.stream ( ).
- filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
- map (RGeneralSurveyPlanDetail::getSubId).distinct ( ).count ( );
- rGeneralSurveyPlanVO.setBusCount (Busbarcount);
- rGeneralSurveyPlanVO.setSubCount (Subcount);
- List collect1 = rGeneralSurveyPlanDetails.stream ( ).
- filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
- map (surveyPlanDetail -> {
- RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO rGeneralSurveyPlanDetailVO = new RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO ( );
- BeanUtils.copyProperties (surveyPlanDetail, rGeneralSurveyPlanDetailVO);
- return rGeneralSurveyPlanDetailVO;
- }).collect (Collectors.toList ( ));
+ long Subcount = rGeneralSurveyPlanDetails.stream().
+ filter(surveyPlanDetail -> Objects.equals(surveyPlanDetail.getPlanNo(), temp.getPlanNo())).
+ map(RGeneralSurveyPlanDetail::getSubId).distinct().count();
+ rGeneralSurveyPlanVO.setBusCount(Busbarcount);
+ rGeneralSurveyPlanVO.setSubCount(Subcount);
+ List collect1 = rGeneralSurveyPlanDetails.stream().
+ filter(surveyPlanDetail -> Objects.equals(surveyPlanDetail.getPlanNo(), temp.getPlanNo())).
+ map(surveyPlanDetail -> {
+ RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO rGeneralSurveyPlanDetailVO = new RGeneralSurveyPlanVO.RGeneralSurveyPlanDetailVO();
+ BeanUtils.copyProperties(surveyPlanDetail, rGeneralSurveyPlanDetailVO);
+ return rGeneralSurveyPlanDetailVO;
+ }).collect(Collectors.toList());
rGeneralSurveyPlanVO.setOrgName(pvTerminalTreeVOMap.get(temp.getOrgNo())); //单位名称
- rGeneralSurveyPlanVO.setRGeneralSurveyPlanDetailVOList (collect1);
- rGeneralSurveyPlanVOList.add (rGeneralSurveyPlanVO);
+ rGeneralSurveyPlanVO.setRGeneralSurveyPlanDetailVOList(collect1);
+ rGeneralSurveyPlanVOList.add(rGeneralSurveyPlanVO);
});
- returnpage.setRecords (rGeneralSurveyPlanVOList);
+ returnpage.setRecords(rGeneralSurveyPlanVOList);
return returnpage;
}
@@ -200,25 +196,25 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl surveyResultDownload(String planNo) {
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO();
- rGeneralSurveyPlanPO.setPlanNo (planNo);
- rGeneralSurveyPlanPO = this.selectByMultiId (rGeneralSurveyPlanPO);
- String filePath = rGeneralSurveyPlanPO.getFilePath ( );
- if(StringUtils.isEmpty (filePath)){
- throw new BusinessException(ProcessResponseEnum.DOWNLOAD_FILE_ERROR);
+ rGeneralSurveyPlanPO.setPlanNo(planNo);
+ rGeneralSurveyPlanPO = this.selectByMultiId(rGeneralSurveyPlanPO);
+ String filePath = rGeneralSurveyPlanPO.getFilePath();
+ if (StringUtils.isEmpty(filePath)) {
+ throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_ERROR);
}
- String[] split = filePath.substring (0, filePath.length ( ) - 1).split (";");
- List collect = Stream.of (split).map (temp -> {
- String[] split1 = temp.split ("##");
+ String[] split = filePath.substring(0, filePath.length() - 1).split(";");
+ List collect = Stream.of(split).map(temp -> {
+ String[] split1 = temp.split("##");
String OriginalFilename = split1[1];
String minoFileName = split1[0];
- MinIoUploadResDTO dto = new MinIoUploadResDTO(OriginalFilename,minIoUtils.getObjectUrl (minIoProperties.getBucket ( ), minoFileName, 7 * 24 * 60 * 60));
- return dto ;
- }).collect (Collectors.toList ( ));
+ MinIoUploadResDTO dto = new MinIoUploadResDTO(OriginalFilename, fileStorageUtil.getFileUrl(minoFileName));
+ return dto;
+ }).collect(Collectors.toList());
return collect;
}
@@ -259,13 +255,13 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl exportSurveyPlan(List planIdList) {
- List surveyPlanExcels = new ArrayList<> ();
- LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<> ();
- queryWrapper.in (RGeneralSurveyPlanPO::getPlanNo,planIdList);
- List rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectList (queryWrapper);
- LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<> ();
- lambdaQueryWrapper.in (RGeneralSurveyPlanDetail::getPlanNo, planIdList);
- List rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList (lambdaQueryWrapper);
+ List surveyPlanExcels = new ArrayList<>();
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(RGeneralSurveyPlanPO::getPlanNo, planIdList);
+ List rGeneralSurveyPlanPOS = rGeneralSurveyPlanPOMapper.selectList(queryWrapper);
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.in(RGeneralSurveyPlanDetail::getPlanNo, planIdList);
+ List rGeneralSurveyPlanDetails = rGeneralSurveyPlanDetailMapper.selectList(lambdaQueryWrapper);
//部门处理:根据部门code取名称
List dept = deptFeignClient.allDeptList().getData();
@@ -273,21 +269,21 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl{
+ rGeneralSurveyPlanPOS.forEach(temp -> {
SurveyPlanExcel surveyPlanExcel = new SurveyPlanExcel();
- BeanUtils.copyProperties (temp, surveyPlanExcel);
+ BeanUtils.copyProperties(temp, surveyPlanExcel);
- long Busbarcount = rGeneralSurveyPlanDetails.stream ( ).
- filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
- map (RGeneralSurveyPlanDetail::getBusbarId).distinct ( ).count ( );
+ long Busbarcount = rGeneralSurveyPlanDetails.stream().
+ filter(surveyPlanDetail -> Objects.equals(surveyPlanDetail.getPlanNo(), temp.getPlanNo())).
+ map(RGeneralSurveyPlanDetail::getBusbarId).distinct().count();
- long Subcount = rGeneralSurveyPlanDetails.stream ( ).
- filter (surveyPlanDetail -> Objects.equals (surveyPlanDetail.getPlanNo ( ), temp.getPlanNo ( ))).
- map (RGeneralSurveyPlanDetail::getSubId).distinct ( ).count ( );
- surveyPlanExcel.setBusCount (Busbarcount);
- surveyPlanExcel.setSubCount (Subcount);
- surveyPlanExcel.setOrgNo (pvTerminalTreeVOMap.get (surveyPlanExcel.getOrgNo ()));
- surveyPlanExcels.add (surveyPlanExcel);
+ long Subcount = rGeneralSurveyPlanDetails.stream().
+ filter(surveyPlanDetail -> Objects.equals(surveyPlanDetail.getPlanNo(), temp.getPlanNo())).
+ map(RGeneralSurveyPlanDetail::getSubId).distinct().count();
+ surveyPlanExcel.setBusCount(Busbarcount);
+ surveyPlanExcel.setSubCount(Subcount);
+ surveyPlanExcel.setOrgNo(pvTerminalTreeVOMap.get(surveyPlanExcel.getOrgNo()));
+ surveyPlanExcels.add(surveyPlanExcel);
});
return surveyPlanExcels;
@@ -303,8 +299,8 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl querySurveyPlanOnQuestion(SurveyPlanQuestionQueryParm questionQueryParm) {
- List rGeneralSurveyPlanDetailOnQuestionVOS = new ArrayList<> ();
- rGeneralSurveyPlanDetailOnQuestionVOS =rGeneralSurveyPlanDetailMapper.querySurveyPlanOnQuestion(questionQueryParm);
+ List rGeneralSurveyPlanDetailOnQuestionVOS = new ArrayList<>();
+ rGeneralSurveyPlanDetailOnQuestionVOS = rGeneralSurveyPlanDetailMapper.querySurveyPlanOnQuestion(questionQueryParm);
return rGeneralSurveyPlanDetailOnQuestionVOS;
}
@@ -320,14 +316,14 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl querySurveyPlanName(SurveyPlanQuestionQueryParm questionQueryParm) {
- List data = deptFeignClient.getDepSonIdtByDeptId (questionQueryParm.getOrgNo ()).getData ( );
+ List data = deptFeignClient.getDepSonIdtByDeptId(questionQueryParm.getOrgNo()).getData();
- QueryWrapper queryWrapper = new QueryWrapper<> ();
- queryWrapper.select ("plan_name").
- in ("org_no", data).
- eq ("DATE_FORMAT(upload_time, '%Y-%m')", new SimpleDateFormat ("yyyy-MM").
- format (questionQueryParm.getPlanStartTime ()));
- List list = this.list (queryWrapper);
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("plan_name").
+ in("org_no", data).
+ eq("DATE_FORMAT(upload_time, '%Y-%m')", new SimpleDateFormat("yyyy-MM").
+ format(questionQueryParm.getPlanStartTime()));
+ List list = this.list(queryWrapper);
return list;
}
@@ -345,26 +341,12 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl updateWrapper = new UpdateWrapper();
- updateWrapper.eq ("plan_no", rGeneralSurveyPlanChcekParm.getPlanNo ());
- updateWrapper.set ("check_comment", rGeneralSurveyPlanChcekParm.getCheckComment ());
- updateWrapper.set ("check_person",rGeneralSurveyPlanChcekParm.getCheckPerson ());
- updateWrapper.set ("status", Objects.equals ("1", rGeneralSurveyPlanChcekParm.getCheckResult ())?3:2);
- result = this.update (updateWrapper);
+ updateWrapper.eq("plan_no", rGeneralSurveyPlanChcekParm.getPlanNo());
+ updateWrapper.set("check_comment", rGeneralSurveyPlanChcekParm.getCheckComment());
+ updateWrapper.set("check_person", rGeneralSurveyPlanChcekParm.getCheckPerson());
+ updateWrapper.set("status", Objects.equals("1", rGeneralSurveyPlanChcekParm.getCheckResult()) ? 3 : 2);
+ result = this.update(updateWrapper);
return result;
}
- /**
- * 上传文件到Minio
- *
- * @param file 文件
- * @return 成功标记
- */
- private MinIoUploadResDTO fileToMinio(MultipartFile file) {
- try {
- MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "surveyresult/");
- return upload;
- } catch (Exception e) {
- throw new BusinessException (ProcessResponseEnum.UPLOAD_FILE_ERROR);
- }
- }
}
diff --git a/pqs-user/user-boot/pom.xml b/pqs-user/user-boot/pom.xml
index 90e79a5d8..9c3f01c77 100644
--- a/pqs-user/user-boot/pom.xml
+++ b/pqs-user/user-boot/pom.xml
@@ -44,11 +44,7 @@
common-swagger
${project.version}
-
- com.njcn
- common-minio
- ${project.version}
-
+
diff --git a/pqs-user/user-boot/src/test/java/com/njcn/MinioTest.java b/pqs-user/user-boot/src/test/java/com/njcn/MinioTest.java
deleted file mode 100644
index 9baa77ed6..000000000
--- a/pqs-user/user-boot/src/test/java/com/njcn/MinioTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.njcn;
-
-import com.njcn.minio.config.MinIoProperties;
-import com.njcn.minio.utils.MinIoUtils;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.io.IOUtils;
-import org.junit.Test;
-import org.springframework.http.MediaType;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
-
-import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * @author hongawen
- * @version 1.0.0
- * @date 2022年11月02日 19:49
- */
-public class MinioTest extends BaseJunitTest {
-
- @Resource
- private MinIoUtils minIoUtils;
-
- @Resource
- private MinIoProperties minIoProperties;
-
- /***
- * 上传
- */
- @Test
- public void upload() throws Exception {
- String strUrl = "C:\\Users\\DELL\\Desktop\\功能测试文件\\text.json";
- File file = new File(strUrl);
- MultipartFile cMultiFile = getMultipartFile(file);
- System.out.println(minIoUtils.upload(cMultiFile, minIoProperties.getBucket(), "day/"));
- }
-
-
- /***
- * 删除
- */
- @Test
- public void removeObject(){
- String name = "day/8D113DD5CE4B4AB2ABB5E531373E3D88.txt";
- minIoUtils.removeObject(minIoProperties.getBucket(), name);
- }
-
-
- /***
- * 根据对象名获取查看的url
- */
- @Test
- public void getObjectUrl(){
- String name = "day/8D113DD5CE4B4AB2ABB5E531373E3D88.txt";
- System.out.println(minIoUtils.getObjectUrl(minIoProperties.getBucket(), name, 7 * 24 * 60 * 60));
- }
-
-
-
- public static MultipartFile getMultipartFile(File file) {
- FileItem item = new DiskFileItemFactory().createItem("file"
- , MediaType.MULTIPART_FORM_DATA_VALUE
- , true
- , file.getName());
- try (InputStream input = new FileInputStream(file);
- OutputStream os = item.getOutputStream()) {
- // 流转移
- IOUtils.copy(input, os);
- } catch (Exception e) {
- throw new IllegalArgumentException("Invalid file: " + e, e);
- }
-
- return new CommonsMultipartFile(item);
- }
-
-
-
-
-}