1.数据单位管理

2.谐波模块-excel和word报告数据单位调整
3.监测点权重管理
This commit is contained in:
wr
2023-08-24 15:07:12 +08:00
parent 5d288a6720
commit df51123872
26 changed files with 1477 additions and 44 deletions

View File

@@ -9,12 +9,13 @@ import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.utils.FileUtil;
import com.njcn.device.pq.api.DeptLineFeignClient;
import com.njcn.device.pq.api.DeviceUnitClient;
import com.njcn.device.pq.pojo.po.PqsDeviceUnit;
import com.njcn.harmonic.enums.HarmonicResponseEnum;
import com.njcn.harmonic.pojo.dto.ReportTemplateDTO;
import com.njcn.harmonic.pojo.po.ExcelRpt;
@@ -29,17 +30,15 @@ import com.njcn.prepare.harmonic.mapper.mysql.line.ExcelRptMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.ExcelRptTempMapper;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.ReportService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.influxdb.dto.QueryResult;
import org.springframework.http.MediaType;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.*;
import java.util.*;
@@ -65,6 +64,9 @@ public class ReportServiceImpl implements ReportService {
private final ExcelRptMapper excelRptMapper;
private final FileStorageUtil fileStorageUtil;
private final DeviceUnitClient deviceUnitClient;
private final DicDataFeignClient dicDataFeignClient;
@Override
@@ -131,7 +133,7 @@ public class ReportServiceImpl implements ReportService {
//根据数据填充content
if (CollUtil.isNotEmpty(endList)) {
contentChange(jsonArray, endList);
contentChange(jsonArray, endList,lineId);
}
//存入报表库
@@ -196,7 +198,9 @@ public class ReportServiceImpl implements ReportService {
* @param jsonArray 参数
* @return 结果
*/
private void contentChange(JSONArray jsonArray, List<ReportTemplateDTO> endList) {
private void contentChange(JSONArray jsonArray, List<ReportTemplateDTO> endList,String lineID) {
//数据单位信息
Map<String, String> unit = unitMap(lineID);
//进行反向赋值到模板
//1、根据itemName分组
Map<String, List<ReportTemplateDTO>> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName));
@@ -220,6 +224,16 @@ public class ReportServiceImpl implements ReportService {
}
son.set("v", str);
}
//解决数据单位问题 @指标#类型@
if (v.charAt(0) == '@' && v.contains("#")) {
String replace = v.replace("@", "");
if(unit.containsKey(replace)){
son.set("v", unit.get(replace));
}else{
son.set("v", "/");
}
}
}
}
});
@@ -276,6 +290,61 @@ public class ReportServiceImpl implements ReportService {
return reportTemplateDTOList;
}
/**
* 数据单位信息
* @param lineID
* @return
*/
private Map<String,String> unitMap(String lineID){
PqsDeviceUnit deviceUnit = deviceUnitClient.lineUnitDetail(lineID).getData();
Map<String,String> unit=new HashMap<>();
List<DictData> dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEVICE_UNIT.getCode()).getData();
List<String> list = dictData.stream().map(DictData::getCode).collect(Collectors.toList());
for (String s : list) {
//有效值
if(s.equals(DicDataEnum.EFFECTIVE.getCode())){
unit.put(s+"#i",deviceUnit.getIeffective());
unit.put(s+"#v",deviceUnit.getLineVoltage());
}
//功率
if(s.equals(DicDataEnum.POWER.getCode())){
unit.put(s+"#p",deviceUnit.getTotalActiveP());
unit.put(s+"#q",deviceUnit.getTotalNoP());
unit.put(s+"#s",deviceUnit.getTotalViewP());
}
//畸变率
if(s.equals(DicDataEnum.DISTORTION.getCode())){
unit.put(s+"#v",deviceUnit.getVdistortion());
}
//电压偏差
if(s.equals(DicDataEnum.VOLTAGE.getCode())){
unit.put(s+"#v",deviceUnit.getVoltageDev());
}
//频率
if(s.equals(DicDataEnum.UNIT_FREQUENCY.getCode())){
unit.put(s+"#freq",deviceUnit.getUnitFrequency());
unit.put(s+"#freqDev",deviceUnit.getUnitFrequencyDev());
}
//三项不平衡度
if(s.equals(DicDataEnum.UNBALANCE.getCode())){
unit.put(s+"#v","%");
unit.put(s+"#vPos",deviceUnit.getPositiveV());
unit.put(s+"#vNeg",deviceUnit.getNoPositiveV());
unit.put(s+"#vZero",deviceUnit.getNoPositiveV());
unit.put(s+"#i","%");
unit.put(s+"#iPos","A");
unit.put(s+"#iNeg","A");
unit.put(s+"#iZero","A");
}
//基波
if(s.equals(DicDataEnum.FUND.getCode())){
unit.put(s+"#i",deviceUnit.getIfund());
unit.put(s+"#v",deviceUnit.getVfundEffective());
}
}
return unit;
}
/**
* 组装influxDB查询sql查询value并封装endlist
*