项目集成华为obs查看波形文件

This commit is contained in:
2023-03-06 19:05:09 +08:00
parent c2c3fd9fd6
commit 280dfbad29
6 changed files with 191 additions and 95 deletions

View File

@@ -22,5 +22,15 @@ public interface OssPath {
*/ */
String HARMONIC_EXCEL_TEMPLATE="harmonic/excel/template"; String HARMONIC_EXCEL_TEMPLATE="harmonic/excel/template";
/***
* 算法模块的上传路径
*/
String ALGORITHM="algorithm/";
/***
* process模块中干扰源入网报告的上传路径
*/
String LOAD_TYPE_USER="loadTypeUser/";
} }

View File

@@ -536,7 +536,7 @@ public class MinIoUtils {
* @author exe.wangtaotao * @author exe.wangtaotao
* @date 2020/10/21 15:07 * @date 2020/10/21 15:07
*/ */
private String minFileName(String originalFileName) { public String minFileName(String originalFileName) {
String suffix = originalFileName; String suffix = originalFileName;
if (originalFileName.contains(SEPARATOR_DOT)) { if (originalFileName.contains(SEPARATOR_DOT)) {
suffix = originalFileName.substring(originalFileName.lastIndexOf(SEPARATOR_DOT)); suffix = originalFileName.substring(originalFileName.lastIndexOf(SEPARATOR_DOT));

View File

@@ -1,7 +1,10 @@
package com.njcn.harmonic.controller.algorithm; package com.njcn.harmonic.controller.algorithm;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.GeneralConstant;
import com.njcn.common.pojo.constant.OssPath;
import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
@@ -13,6 +16,7 @@ import com.njcn.harmonic.pojo.param.RStatFileVO;
import com.njcn.harmonic.pojo.po.RStatFile; import com.njcn.harmonic.pojo.po.RStatFile;
import com.njcn.harmonic.pojo.vo.PwRStatOrgVO; import com.njcn.harmonic.pojo.vo.PwRStatOrgVO;
import com.njcn.harmonic.service.algorithm.RStatFileService; import com.njcn.harmonic.service.algorithm.RStatFileService;
import com.njcn.huawei.obs.util.OBSUtil;
import com.njcn.minio.bo.MinIoUploadResDTO; import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.minio.config.MinIoProperties; import com.njcn.minio.config.MinIoProperties;
import com.njcn.minio.utils.MinIoUtils; import com.njcn.minio.utils.MinIoUtils;
@@ -42,6 +46,12 @@ public class AlgorithmController extends BaseController {
@Resource @Resource
private MinIoProperties minIoProperties; private MinIoProperties minIoProperties;
@Resource
private GeneralInfo generalInfo;
@Resource
private OBSUtil obsUtil;
/** /**
* 算法保存 * 算法保存
* *
@@ -56,10 +66,10 @@ public class AlgorithmController extends BaseController {
String methodDescribe = getMethodDescribe("getAlgorithmSave"); String methodDescribe = getMethodDescribe("getAlgorithmSave");
RStatFile rStatFile = BeanUtil.copyProperties(param, RStatFile.class); RStatFile rStatFile = BeanUtil.copyProperties(param, RStatFile.class);
boolean b = rStatFileService.updateById(rStatFile); boolean b = rStatFileService.updateById(rStatFile);
if(b){ if (b) {
// minIoUtils.removeObjects( minIoProperties.getBucket(),param.getAddress()); // minIoUtils.removeObjects( minIoProperties.getBucket(),param.getAddress());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}else{ } else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
} }
} }
@@ -79,16 +89,19 @@ public class AlgorithmController extends BaseController {
*/ */
@PostMapping("/common/upload") @PostMapping("/common/upload")
@ResponseBody @ResponseBody
public HttpResult<MinIoUploadResDTO> uploadFile(MultipartFile file) public HttpResult<String> uploadFile(MultipartFile file) {
{ try {
try //为2则为华为OBS
{ if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
String fileName = file.getOriginalFilename();
fileName = OssPath.ALGORITHM + minIoUtils.minFileName(fileName);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, obsUtil.multiFileUpload(file, fileName), null);
} else {
//把名称存入数据 //把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "algorithm/"); MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), OssPath.ALGORITHM);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, upload, null); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, upload.getMinFileUrl(), null);
} }
catch (Exception e) } catch (Exception e) {
{
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, null); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, null);
} }
} }

View File

@@ -8,6 +8,8 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.config.GeneralInfo; import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.constant.GeneralConstant;
import com.njcn.common.pojo.constant.OssPath;
import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.harmonic.enums.HarmonicResponseEnum; import com.njcn.harmonic.enums.HarmonicResponseEnum;
@@ -26,6 +28,7 @@ import com.njcn.harmonic.pojo.vo.ReportTemplateVO;
import com.njcn.harmonic.pojo.vo.ReportTreeVO; import com.njcn.harmonic.pojo.vo.ReportTreeVO;
import com.njcn.harmonic.pojo.vo.SysDeptTempVO; import com.njcn.harmonic.pojo.vo.SysDeptTempVO;
import com.njcn.harmonic.service.CustomReportService; import com.njcn.harmonic.service.CustomReportService;
import com.njcn.huawei.obs.util.OBSUtil;
import com.njcn.influxdb.config.InfluxDbConfig; import com.njcn.influxdb.config.InfluxDbConfig;
import com.njcn.influxdb.param.InfluxDBSqlConstant; import com.njcn.influxdb.param.InfluxDBSqlConstant;
import com.njcn.influxdb.param.InfluxDBTableConstant; import com.njcn.influxdb.param.InfluxDBTableConstant;
@@ -98,21 +101,35 @@ public class CustomReportServiceImpl implements CustomReportService {
@Resource @Resource
private InfluxDbConfig influxDbConfig; private InfluxDbConfig influxDbConfig;
@Resource
private OBSUtil obsUtil;
@Override @Override
public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) { public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) {
checkName(reportTemplateParam, false); checkName(reportTemplateParam, false);
MultipartFile fileContent = reportTemplateParam.getFileContent();
String fileName = fileContent.getName();
//检验模板json数据规范 //检验模板json数据规范
try { try {
String content = MultipartFileToString(reportTemplateParam.getFileContent()); String content = MultipartFileToString(fileContent);
new JSONArray(content); new JSONArray(content);
} catch (Exception e) { } catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
} }
//为2则为华为OBS
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
fileName = OssPath.HARMONIC_EXCEL_TEMPLATE + minIoUtils.minFileName(fileName);
obsUtil.multiFileUpload(fileContent,fileName);
reportTemplateParam.setContent(fileName);
} else {
//否则认为是minioss
//文件上传到Minio服务器存入文件名 //文件上传到Minio服务器存入文件名
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent()); MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent(), OssPath.HARMONIC_EXCEL_TEMPLATE);
reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName()); reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName());
}
//新增模板表 //新增模板表
ExcelRptTemp excelRptTemp = new ExcelRptTemp(); ExcelRptTemp excelRptTemp = new ExcelRptTemp();
@@ -137,10 +154,11 @@ public class CustomReportServiceImpl implements CustomReportService {
@Override @Override
public boolean updateCustomReportTemplate(ReportTemplateParam.UpdateReportTemplateParam reportTemplateParam) { public boolean updateCustomReportTemplate(ReportTemplateParam.UpdateReportTemplateParam reportTemplateParam) {
checkName(reportTemplateParam, true); checkName(reportTemplateParam, true);
MultipartFile fileContent = reportTemplateParam.getFileContent();
String fileName = fileContent.getName();
//检验模板json数据规范 //检验模板json数据规范
try { try {
String content = MultipartFileToString(reportTemplateParam.getFileContent()); String content = MultipartFileToString(fileContent);
new JSONArray(content); new JSONArray(content);
} catch (Exception e) { } catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
@@ -148,12 +166,18 @@ public class CustomReportServiceImpl implements CustomReportService {
//删除之前的文件 //删除之前的文件
ExcelRptTemp excelRptTempOld = excelRptTempMapper.selectById(reportTemplateParam.getId()); ExcelRptTemp excelRptTempOld = excelRptTempMapper.selectById(reportTemplateParam.getId());
//为2则为华为OBS
if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
obsUtil.delete(excelRptTempOld.getContent());
fileName = OssPath.HARMONIC_EXCEL_TEMPLATE + minIoUtils.minFileName(fileName);
obsUtil.multiFileUpload(fileContent,fileName);
reportTemplateParam.setContent(fileName);
}else{
minIoUtils.removeObject(minIoProperties.getBucket(), excelRptTempOld.getContent()); minIoUtils.removeObject(minIoProperties.getBucket(), excelRptTempOld.getContent());
//文件上传到Minio服务器存入文件名 //文件上传到Minio服务器存入文件名
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent()); MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent(), OssPath.HARMONIC_EXCEL_TEMPLATE);
reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName()); reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName());
}
//修改模板数据 //修改模板数据
ExcelRptTemp excelRptTemp = new ExcelRptTemp(); ExcelRptTemp excelRptTemp = new ExcelRptTemp();
BeanUtils.copyProperties(reportTemplateParam, excelRptTemp); BeanUtils.copyProperties(reportTemplateParam, excelRptTemp);
@@ -240,10 +264,10 @@ public class CustomReportServiceImpl implements CustomReportService {
lambdaQuery.eq(ExcelRpt::getLineId, reportSearchParam.getLineId()).eq(ExcelRpt::getTempId, reportSearchParam.getTempId()); lambdaQuery.eq(ExcelRpt::getLineId, reportSearchParam.getLineId()).eq(ExcelRpt::getTempId, reportSearchParam.getTempId());
List<ExcelRpt> excelRpts = excelRptMapper.selectList(lambdaQuery); List<ExcelRpt> excelRpts = excelRptMapper.selectList(lambdaQuery);
String content; String content;
if (excelRpts.size() > 0){ if (excelRpts.size() > 0) {
content = minIoUtils.getObjectUrl(minIoProperties.getBucket(), excelRpts.get(0).getContent(), 7 * 24 * 60 * 60); content = minIoUtils.getObjectUrl(minIoProperties.getBucket(), excelRpts.get(0).getContent(), 7 * 24 * 60 * 60);
}else{ } else {
content = minIoUtils.getObjectUrl(minIoProperties.getBucket(), analyzeReport(reportSearchParam,excelRptTemp), 7 * 24 * 60 * 60); content = minIoUtils.getObjectUrl(minIoProperties.getBucket(), analyzeReport(reportSearchParam, excelRptTemp), 7 * 24 * 60 * 60);
} }
//拼接数据 //拼接数据
@@ -364,7 +388,7 @@ public class CustomReportServiceImpl implements CustomReportService {
/** /**
* 解析报表数据 * 解析报表数据
*/ */
private String analyzeReport(ReportSearchParam reportSearchParam,ExcelRptTemp excelRptTemp){ private String analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp) {
//根据content获取v值并进行处理 //根据content获取v值并进行处理
List<ReportTemplateDTO> reportTemplateDTOList = new ArrayList<>(); List<ReportTemplateDTO> reportTemplateDTOList = new ArrayList<>();
JSONArray jsonArray = null; JSONArray jsonArray = null;
@@ -394,7 +418,7 @@ public class CustomReportServiceImpl implements CustomReportService {
if (vItem.length == 4) { if (vItem.length == 4) {
//$HA[_25]#B#max#classId$ //$HA[_25]#B#max#classId$
reportTemplateDTO.setTemplateName(vItem[0]); reportTemplateDTO.setTemplateName(vItem[0]);
reportTemplateDTO.setPhase(vItem[1].substring(0,1)); reportTemplateDTO.setPhase(vItem[1].substring(0, 1));
reportTemplateDTO.setStatMethod(vItem[2].toUpperCase()); reportTemplateDTO.setStatMethod(vItem[2].toUpperCase());
reportTemplateDTO.setClassId(vItem[3]); reportTemplateDTO.setClassId(vItem[3]);
} else if (vItem.length == 3) { } else if (vItem.length == 3) {
@@ -462,11 +486,22 @@ public class CustomReportServiceImpl implements CustomReportService {
}); });
} }
//文件上传到Minio服务器存入文件名 String newContent;
File newFile = stringToFile(jsonArray.toString()); File newFile = stringToFile(jsonArray.toString());
MultipartFile newMultipartFile = getMultipartFile(newFile); MultipartFile newMultipartFile = getMultipartFile(newFile);
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(newMultipartFile); //为2则为华为OBS
String newContent = minIoUploadResDTO.getMinFileName(); if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
newContent = newMultipartFile.getName();
newContent = OssPath.HARMONIC_EXCEL_REPORT + minIoUtils.minFileName(newContent);
obsUtil.multiFileUpload(newMultipartFile,newContent);
}else{
//否则认为是minioss
//文件上传到Minio服务器存入文件名
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(newMultipartFile,OssPath.HARMONIC_EXCEL_REPORT);
newContent = minIoUploadResDTO.getMinFileName();
}
//存入报表库 //存入报表库
ExcelRpt excelRpt = new ExcelRpt(); ExcelRpt excelRpt = new ExcelRpt();
@@ -479,7 +514,7 @@ public class CustomReportServiceImpl implements CustomReportService {
//根据模板激活状态判断是否进库修改State字段0未进库 1已进库 //根据模板激活状态判断是否进库修改State字段0未进库 1已进库
if (DataStateEnum.ENABLE.getCode().equals(reportSearchParam.getActivation())) { if (DataStateEnum.ENABLE.getCode().equals(reportSearchParam.getActivation())) {
excelRpt.setState(DataStateEnum.ENABLE.getCode()); excelRpt.setState(DataStateEnum.ENABLE.getCode());
}else{ } else {
excelRpt.setState(DataStateEnum.DELETED.getCode()); excelRpt.setState(DataStateEnum.DELETED.getCode());
} }
excelRptMapper.insert(excelRpt); excelRptMapper.insert(excelRpt);
@@ -496,9 +531,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') //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) //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); 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(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); 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 +543,7 @@ public class CustomReportServiceImpl implements CustomReportService {
} }
//data_flicker、data_fluc、data_plt 无 value_type //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.AND).append(InfluxDBTableConstant.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getStatMethod()).append(InfluxDBSqlConstant.QM);
} }
sql.append(InfluxDBSqlConstant.TZ); sql.append(InfluxDBSqlConstant.TZ);
@@ -520,7 +555,7 @@ public class CustomReportServiceImpl implements CustomReportService {
List<QueryResult.Result> results = queryResult.getResults(); List<QueryResult.Result> results = queryResult.getResults();
if (results.size() != 0) { if (results.size() != 0) {
QueryResult.Result result = results.get(0); QueryResult.Result result = results.get(0);
if (result.getSeries() != null){ if (result.getSeries() != null) {
List<QueryResult.Series> seriess = result.getSeries(); List<QueryResult.Series> seriess = result.getSeries();
if (seriess.size() != 0) { if (seriess.size() != 0) {
QueryResult.Series series = seriess.get(0); QueryResult.Series series = seriess.get(0);
@@ -545,10 +580,10 @@ public class CustomReportServiceImpl implements CustomReportService {
* @param file 文件 * @param file 文件
* @return 成功标记 * @return 成功标记
*/ */
private MinIoUploadResDTO contentToMinio(MultipartFile file) { private MinIoUploadResDTO contentToMinio(MultipartFile file, String dir) {
try { try {
//把名称存入数据 //把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "report/"); MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), dir);
return upload; return upload;
} catch (Exception e) { } catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_FILE); throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_FILE);
@@ -566,7 +601,7 @@ public class CustomReportServiceImpl implements CustomReportService {
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer(); StringBuffer buffer = new StringBuffer();
String line = " "; String line = " ";
while ((line = in.readLine()) != null){ while ((line = in.readLine()) != null) {
buffer.append(line); buffer.append(line);
} }
return buffer.toString(); return buffer.toString();
@@ -584,7 +619,9 @@ public class CustomReportServiceImpl implements CustomReportService {
String businessTempPath = generalInfo.getBusinessTempPath(); String businessTempPath = generalInfo.getBusinessTempPath();
File distFile = new File(businessTempPath + File.separator + "temp.json"); File distFile = new File(businessTempPath + File.separator + "temp.json");
try { try {
if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs(); if (!distFile.getParentFile().exists()){
distFile.getParentFile().mkdirs();
}
bufferedReader = new BufferedReader(new StringReader(res)); bufferedReader = new BufferedReader(new StringReader(res));
bufferedWriter = new BufferedWriter(new FileWriter(distFile)); bufferedWriter = new BufferedWriter(new FileWriter(distFile));
bufferedWriter.write(""); bufferedWriter.write("");

View File

@@ -114,6 +114,12 @@
<version>1.0.0</version> <version>1.0.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!--华为obs工具包-->
<dependency>
<groupId>com.njcn</groupId>
<artifactId>huawei-obs-springboot-starter</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@@ -4,8 +4,12 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.constant.GeneralConstant;
import com.njcn.common.pojo.constant.OssPath;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pms.api.DistributionMonitorClient; import com.njcn.device.pms.api.DistributionMonitorClient;
import com.njcn.huawei.obs.util.OBSUtil;
import com.njcn.minio.bo.MinIoUploadResDTO; import com.njcn.minio.bo.MinIoUploadResDTO;
import com.njcn.minio.config.MinIoProperties; import com.njcn.minio.config.MinIoProperties;
import com.njcn.minio.utils.MinIoUtils; import com.njcn.minio.utils.MinIoUtils;
@@ -60,16 +64,22 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
@Resource @Resource
private MinIoUtils minIoUtils; private MinIoUtils minIoUtils;
@Resource
private GeneralInfo generalInfo;
@Resource
private OBSUtil obsUtil;
@Resource @Resource
private MinIoProperties minIoProperties; private MinIoProperties minIoProperties;
/** /**
* 干扰源用户分页查询 * 干扰源用户分页查询
*
* @param loadTypeUserSearchParam * @param loadTypeUserSearchParam
* @return * @return
*/ */
@Override @Override
public Page<RLoadTypeUserManageVO> getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam){ public Page<RLoadTypeUserManageVO> getLoadTypeUserList(LoadTypeUserSearchParam loadTypeUserSearchParam) {
Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize()); Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeUserPage(page, loadTypeUserSearchParam); Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeUserPage(page, loadTypeUserSearchParam);
@@ -90,6 +100,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 根据id查询干扰源用户 * 根据id查询干扰源用户
*
* @param id * @param id
* @return * @return
*/ */
@@ -99,11 +110,11 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO(); RLoadTypeUserManageVO rLoadTypeUserManageVO = new RLoadTypeUserManageVO();
BeanUtils.copyProperties(rLoadTypeUserManage, rLoadTypeUserManageVO); BeanUtils.copyProperties(rLoadTypeUserManage, rLoadTypeUserManageVO);
//文件 //文件
if (rLoadTypeUserManageVO.getIFilePath() != null){ if (rLoadTypeUserManageVO.getIFilePath() != null) {
String iFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getIFilePath(), 7 * 24 * 60 * 60); String iFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getIFilePath(), 7 * 24 * 60 * 60);
rLoadTypeUserManageVO.setIFile(iFile); rLoadTypeUserManageVO.setIFile(iFile);
} }
if (rLoadTypeUserManageVO.getAFilePath() != null){ if (rLoadTypeUserManageVO.getAFilePath() != null) {
String aFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getAFilePath(), 7 * 24 * 60 * 60); String aFile = minIoUtils.getObjectUrl(minIoProperties.getBucket(), rLoadTypeUserManageVO.getAFilePath(), 7 * 24 * 60 * 60);
rLoadTypeUserManageVO.setIFile(aFile); rLoadTypeUserManageVO.setIFile(aFile);
} }
@@ -112,6 +123,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 新增干扰源用户 * 新增干扰源用户
*
* @param loadTypeUserParam * @param loadTypeUserParam
* @return * @return
*/ */
@@ -130,6 +142,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 上传干扰源用户入网报告 * 上传干扰源用户入网报告
*
* @param loadTypeUserIUploadParam * @param loadTypeUserIUploadParam
* @return * @return
*/ */
@@ -138,19 +151,25 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage(); RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserIUploadParam, rLoadTypeUserManage); BeanUtils.copyProperties(loadTypeUserIUploadParam, rLoadTypeUserManage);
MultipartFile multipartFile = loadTypeUserIUploadParam.getFile();
//文件上传到Minio服务器存入文件名 //文件上传到Minio服务器存入文件名
if(loadTypeUserIUploadParam.getFile() != null){ if (Objects.nonNull(multipartFile)) {
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserIUploadParam.getFile()); if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
String fileName = OssPath.LOAD_TYPE_USER + minIoUtils.minFileName(multipartFile.getOriginalFilename());
obsUtil.multiFileUpload(multipartFile, fileName);
rLoadTypeUserManage.setIFilePath(fileName);
} else {
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserIUploadParam.getFile(), OssPath.LOAD_TYPE_USER);
rLoadTypeUserManage.setIFilePath(minIoUploadResDTO.getMinFileName()); rLoadTypeUserManage.setIFilePath(minIoUploadResDTO.getMinFileName());
}
rLoadTypeUserManage.setIUploadTime(new Date()); rLoadTypeUserManage.setIUploadTime(new Date());
} }
//提交:待审核/保存:新建 //提交:待审核/保存:新建
DictData dictData; 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(); dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
}else{ } else {
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData(); dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
} }
rLoadTypeUserManage.setIStatus(dictData.getId()); rLoadTypeUserManage.setIStatus(dictData.getId());
@@ -162,6 +181,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 关联营销用户 * 关联营销用户
*
* @param * @param
* @return * @return
*/ */
@@ -176,13 +196,14 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 查询所有干扰源用户(与营销系统关联) * 查询所有干扰源用户(与营销系统关联)
*
* @param loadTypeUserSearchParam * @param loadTypeUserSearchParam
* @return * @return
*/ */
@Override @Override
public Page<RLoadTypeUserManageVO> getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam) { public Page<RLoadTypeUserManageVO> getLoadTypeRelationList(LoadTypeUserSearchParam loadTypeUserSearchParam) {
Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize()); Page<RLoadTypeUserManageVO> page = new Page<>(loadTypeUserSearchParam.getPageNum(), loadTypeUserSearchParam.getPageSize());
Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page,loadTypeUserSearchParam); Page<RLoadTypeUserManageVO> loadTypeUserPage = loadTypeUserManageMapper.getLoadTypeRelationPage(page, loadTypeUserSearchParam);
//部门处理根据部门code取名称 //部门处理根据部门code取名称
List<RLoadTypeUserManageVO> list = loadTypeUserPage.getRecords(); List<RLoadTypeUserManageVO> list = loadTypeUserPage.getRecords();
@@ -205,10 +226,10 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
* @param file 文件 * @param file 文件
* @return 成功标记 * @return 成功标记
*/ */
private MinIoUploadResDTO fileToMinio(MultipartFile file) { private MinIoUploadResDTO fileToMinio(MultipartFile file, String dir) {
try { try {
//把名称存入数据 //把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "loadTypeUser/"); MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), dir);
return upload; return upload;
} catch (Exception e) { } catch (Exception e) {
throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR); throw new BusinessException(ProcessResponseEnum.UPLOAD_FILE_ERROR);
@@ -217,6 +238,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 上传干扰源用户入网报告 * 上传干扰源用户入网报告
*
* @param loadTypeUserAUploadParam * @param loadTypeUserAUploadParam
* @return * @return
*/ */
@@ -225,19 +247,25 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage(); RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
BeanUtils.copyProperties(loadTypeUserAUploadParam, rLoadTypeUserManage); BeanUtils.copyProperties(loadTypeUserAUploadParam, rLoadTypeUserManage);
MultipartFile multipartFile = loadTypeUserAUploadParam.getFile();
//文件上传到Minio服务器,存入文件名 //文件上传到文件服务器,存入文件名
if(loadTypeUserAUploadParam.getFile() != null){ if (Objects.nonNull(multipartFile)) {
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserAUploadParam.getFile()); if (generalInfo.getBusinessFileStorage() == GeneralConstant.HUAWEI_OBS) {
String fileName = OssPath.LOAD_TYPE_USER + minIoUtils.minFileName(multipartFile.getOriginalFilename());
obsUtil.multiFileUpload(multipartFile, fileName);
rLoadTypeUserManage.setIFilePath(fileName);
} else {
MinIoUploadResDTO minIoUploadResDTO = fileToMinio(loadTypeUserAUploadParam.getFile(), OssPath.LOAD_TYPE_USER);
rLoadTypeUserManage.setAFilePath(minIoUploadResDTO.getMinFileName()); rLoadTypeUserManage.setAFilePath(minIoUploadResDTO.getMinFileName());
}
rLoadTypeUserManage.setAUploadTime(new Date()); rLoadTypeUserManage.setAUploadTime(new Date());
} }
//提交:待审核/保存:新建 //提交:待审核/保存:新建
DictData dictData; 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(); dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.AUDIT.getCode()).getData();
}else{ } else {
dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData(); dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.NEWLY.getCode()).getData();
} }
rLoadTypeUserManage.setAStatus(dictData.getId()); rLoadTypeUserManage.setAStatus(dictData.getId());
@@ -248,13 +276,14 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 导出未建档干扰源用户管理信息 * 导出未建档干扰源用户管理信息
*
* @param list * @param list
* @return * @return
*/ */
@Override @Override
public List<LoadTypeUserExcel> exportLoadTypeUserList(List<String> list) { public List<LoadTypeUserExcel> exportLoadTypeUserList(List<String> list) {
//数据处理 //数据处理
LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<> (); LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(RLoadTypeUserManage::getId, list); queryWrapper.in(RLoadTypeUserManage::getId, list);
List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper); List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据 //1、部门数据
@@ -271,25 +300,25 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
List<LoadTypeUserExcel> resultList = rLoadTypeUserManages.stream().map(item -> { List<LoadTypeUserExcel> resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeUserExcel loadTypeUserExcel = new LoadTypeUserExcel(); LoadTypeUserExcel loadTypeUserExcel = new LoadTypeUserExcel();
if (item.getUserName() != null){ if (item.getUserName() != null) {
loadTypeUserExcel.setUserName(item.getUserName()); loadTypeUserExcel.setUserName(item.getUserName());
} }
if (item.getRecordTime() != null){ if (item.getRecordTime() != null) {
loadTypeUserExcel.setRecordTime(item.getRecordTime()); loadTypeUserExcel.setRecordTime(item.getRecordTime());
} }
if (item.getAIsFileUpload() != null){ if (item.getAIsFileUpload() != null) {
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传 loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传
} }
if (item.getOrgNo() != null){ if (item.getOrgNo() != null) {
loadTypeUserExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位 loadTypeUserExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); //单位
} }
if (item.getLoadType() != null){ if (item.getLoadType() != null) {
loadTypeUserExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName()); //入网报告状态 loadTypeUserExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName()); //入网报告状态
} }
if (item.getIStatus() != null){ if (item.getIStatus() != null) {
loadTypeUserExcel.setIStatusName(iStatusMap.get(item.getIStatus()).getName()); //入网报告状态 loadTypeUserExcel.setIStatusName(iStatusMap.get(item.getIStatus()).getName()); //入网报告状态
} }
if (item.getAIsFileUpload() != null){ if (item.getAIsFileUpload() != null) {
loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传 loadTypeUserExcel.setIIsFileUpload(item.getIIsFileUpload() == 0 ? "" : ""); //实测报告是否上传
} }
return loadTypeUserExcel; return loadTypeUserExcel;
@@ -300,13 +329,14 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
/** /**
* 导出干扰源用户常态化管理信息 * 导出干扰源用户常态化管理信息
*
* @param list * @param list
* @return * @return
*/ */
@Override @Override
public List<LoadTypeRelationExcel> exportLoadTypeRelationList(List<String> list) { public List<LoadTypeRelationExcel> exportLoadTypeRelationList(List<String> list) {
//数据处理 //数据处理
LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<> (); LambdaQueryWrapper<RLoadTypeUserManage> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(RLoadTypeUserManage::getId, list); queryWrapper.in(RLoadTypeUserManage::getId, list);
List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper); List<RLoadTypeUserManage> rLoadTypeUserManages = loadTypeUserManageMapper.selectList(queryWrapper);
//1、部门数据 //1、部门数据
@@ -323,19 +353,19 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
List<LoadTypeRelationExcel> resultList = rLoadTypeUserManages.stream().map(item -> { List<LoadTypeRelationExcel> resultList = rLoadTypeUserManages.stream().map(item -> {
LoadTypeRelationExcel loadTypeRelationExcel = new LoadTypeRelationExcel(); LoadTypeRelationExcel loadTypeRelationExcel = new LoadTypeRelationExcel();
if (item.getOrgNo() != null){ if (item.getOrgNo() != null) {
loadTypeRelationExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName()); loadTypeRelationExcel.setOrgName(pvTerminalTreeVOMap.get(item.getOrgNo()).getName());
} }
if (item.getLoadType() != null){ if (item.getLoadType() != null) {
loadTypeRelationExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName()); loadTypeRelationExcel.setLoadTypeName(loadTypeMap.get(item.getLoadType()).getName());
} }
if (item.getUserName() != null){ if (item.getUserName() != null) {
loadTypeRelationExcel.setUserName(item.getUserName()); loadTypeRelationExcel.setUserName(item.getUserName());
} }
if (item.getRelationUserName() != null){ if (item.getRelationUserName() != null) {
loadTypeRelationExcel.setRelationUserName(item.getRelationUserName()); loadTypeRelationExcel.setRelationUserName(item.getRelationUserName());
} }
if (item.getAStatus() != null){ if (item.getAStatus() != null) {
loadTypeRelationExcel.setAStatusName(aStatusMap.get(item.getIStatus()).getName()); loadTypeRelationExcel.setAStatusName(aStatusMap.get(item.getIStatus()).getName());
} }
return loadTypeRelationExcel; return loadTypeRelationExcel;
@@ -355,17 +385,17 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
@Override @Override
public Boolean checkLoadTypeUserI(LoadTypeUserCheckParam loadTypeUserCheckParam) { public Boolean checkLoadTypeUserI(LoadTypeUserCheckParam loadTypeUserCheckParam) {
boolean result = true; boolean result = true;
UpdateWrapper<RLoadTypeUserManage> updateWrapper = new UpdateWrapper (); UpdateWrapper<RLoadTypeUserManage> updateWrapper = new UpdateWrapper();
updateWrapper.eq ("id", loadTypeUserCheckParam.getId ()); updateWrapper.eq("id", loadTypeUserCheckParam.getId());
updateWrapper.set ("i_check_comment", loadTypeUserCheckParam.getCheckComment ()); updateWrapper.set("i_check_comment", loadTypeUserCheckParam.getCheckComment());
updateWrapper.set ("i_check_person",loadTypeUserCheckParam.getCheckPerson ()); updateWrapper.set("i_check_person", loadTypeUserCheckParam.getCheckPerson());
DictData fail = dicDataFeignClient.getDicDataByCode (DicDataEnum.FAIL.getCode ( )).getData ( ); DictData fail = dicDataFeignClient.getDicDataByCode(DicDataEnum.FAIL.getCode()).getData();
DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData(); DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData();
updateWrapper.set ("i_status", Objects.equals ("1", loadTypeUserCheckParam.getCheckResult ())?finish.getId ():fail.getId ()); updateWrapper.set("i_status", Objects.equals("1", loadTypeUserCheckParam.getCheckResult()) ? finish.getId() : fail.getId());
int i= loadTypeUserManageMapper.update (null,updateWrapper); int i = loadTypeUserManageMapper.update(null, updateWrapper);
result = i==1; result = i == 1;
return result; return result;
} }
@@ -380,17 +410,17 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
@Override @Override
public Boolean checkLoadTypeUserA(LoadTypeUserCheckParam loadTypeUserCheckParam) { public Boolean checkLoadTypeUserA(LoadTypeUserCheckParam loadTypeUserCheckParam) {
boolean result = true; boolean result = true;
UpdateWrapper<RLoadTypeUserManage> updateWrapper = new UpdateWrapper (); UpdateWrapper<RLoadTypeUserManage> updateWrapper = new UpdateWrapper();
updateWrapper.eq ("id", loadTypeUserCheckParam.getId ()); updateWrapper.eq("id", loadTypeUserCheckParam.getId());
updateWrapper.set ("a_check_comment", loadTypeUserCheckParam.getCheckComment ()); updateWrapper.set("a_check_comment", loadTypeUserCheckParam.getCheckComment());
updateWrapper.set ("a_check_person",loadTypeUserCheckParam.getCheckPerson ()); updateWrapper.set("a_check_person", loadTypeUserCheckParam.getCheckPerson());
DictData fail = dicDataFeignClient.getDicDataByCode (DicDataEnum.FAIL.getCode ( )).getData ( ); DictData fail = dicDataFeignClient.getDicDataByCode(DicDataEnum.FAIL.getCode()).getData();
DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData(); DictData finish = dicDataFeignClient.getDicDataByCode(DicDataEnum.SUCCESS.getCode()).getData();
updateWrapper.set ("a_status", Objects.equals ("1", loadTypeUserCheckParam.getCheckResult ())?finish.getId ():fail.getId ()); updateWrapper.set("a_status", Objects.equals("1", loadTypeUserCheckParam.getCheckResult()) ? finish.getId() : fail.getId());
int i= loadTypeUserManageMapper.update (null,updateWrapper); int i = loadTypeUserManageMapper.update(null, updateWrapper);
result = i==1; result = i == 1;
return result; return result;
} }
} }