1.数据单位管理
2.谐波模块-excel和word报告数据单位调整 3.监测点权重管理
This commit is contained in:
@@ -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
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user