1.自定义报表调整
This commit is contained in:
@@ -33,6 +33,7 @@ public class ReportSearchParam {
|
|||||||
@ApiModelProperty(name = "deptId",value = "部门ID")
|
@ApiModelProperty(name = "deptId",value = "部门ID")
|
||||||
private String deptId;
|
private String deptId;
|
||||||
|
|
||||||
private Integer resourceType = 1;
|
//目前用于区分不同系统资源,null默认 1.无线系统,配合cs-device
|
||||||
|
private Integer resourceType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,6 +106,12 @@
|
|||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.njcn</groupId>
|
||||||
|
<artifactId>cs-device-api</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.toolkit.SqlRunner;
|
|||||||
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.common.utils.FileUtil;
|
import com.njcn.common.utils.FileUtil;
|
||||||
|
import com.njcn.csdevice.api.CsCommTerminalFeignClient;
|
||||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
import com.njcn.device.pq.api.DeptLineFeignClient;
|
import com.njcn.device.pq.api.DeptLineFeignClient;
|
||||||
import com.njcn.device.pq.api.DeviceUnitClient;
|
import com.njcn.device.pq.api.DeviceUnitClient;
|
||||||
@@ -100,6 +101,8 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
|
|
||||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
|
|
||||||
|
private final CsCommTerminalFeignClient csCommTerminalFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) {
|
public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) {
|
||||||
checkName(reportTemplateParam, false);
|
checkName(reportTemplateParam, false);
|
||||||
@@ -238,14 +241,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
if (Objects.isNull(excelRptTemp)) {
|
if (Objects.isNull(excelRptTemp)) {
|
||||||
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE);
|
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE);
|
||||||
}
|
}
|
||||||
try {
|
analyzeReport(reportSearchParam, excelRptTemp, response);
|
||||||
analyzeReport(reportSearchParam, excelRptTemp, response);
|
|
||||||
} catch (Exception exception) {
|
|
||||||
log.error(exception.getMessage());
|
|
||||||
exception.printStackTrace();
|
|
||||||
throw new BusinessException(HarmonicResponseEnum.REPORT_DOWNLOAD_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -306,10 +302,10 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
if (val.get(0).getHarmStart() == 1) {
|
if (val.get(0).getHarmStart() == 1) {
|
||||||
count = i + 0.5;
|
count = i + 0.5;
|
||||||
reportTreeItem.setShowName(count + "次" + val.get(0).getShowName());
|
reportTreeItem.setShowName(count + "次" + val.get(0).getShowName());
|
||||||
reportTreeItem.setName("%"+one + count + "#" + val.get(0).getFormula() + "#" + val.get(0).getLimitTable()+"%");
|
reportTreeItem.setName("%" + one + count + "#" + val.get(0).getFormula() + "#" + val.get(0).getLimitTable() + "%");
|
||||||
} else {
|
} else {
|
||||||
reportTreeItem.setShowName(i + "次" + val.get(0).getShowName());
|
reportTreeItem.setShowName(i + "次" + val.get(0).getShowName());
|
||||||
reportTreeItem.setName("%"+one + i + "#" + val.get(0).getFormula()+ "#" + val.get(0).getLimitTable()+"%");
|
reportTreeItem.setName("%" + one + i + "#" + val.get(0).getFormula() + "#" + val.get(0).getLimitTable() + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
reportTreeItem.setFlag(1);
|
reportTreeItem.setFlag(1);
|
||||||
@@ -317,7 +313,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
reportTreeVO.setChildren(temList);
|
reportTreeVO.setChildren(temList);
|
||||||
} else {
|
} else {
|
||||||
reportTreeVO.setName("%"+val.get(0).getLimitName() + "#" + val.get(0).getLimitTable()+"%"+ val.get(0).getFormula()+"%");
|
reportTreeVO.setName("%" + val.get(0).getLimitName() + "#" + val.get(0).getLimitTable() + "%" + val.get(0).getFormula() + "%");
|
||||||
reportTreeVO.setFlag(1);
|
reportTreeVO.setFlag(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -424,16 +420,19 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据单位信息
|
* 数据单位信息
|
||||||
*
|
*
|
||||||
* @param lineID
|
* @param reportSearchParam
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Map<String, String> unitMap(String lineID) {
|
private Map<String, String> unitMap(ReportSearchParam reportSearchParam) {
|
||||||
PqsDeviceUnit deviceUnit = commTerminalGeneralClient.lineUnitDetail(lineID).getData();
|
PqsDeviceUnit deviceUnit;
|
||||||
|
if(Objects.isNull(reportSearchParam.getResourceType())){
|
||||||
|
deviceUnit = commTerminalGeneralClient.lineUnitDetail(reportSearchParam.getLineId()).getData();
|
||||||
|
}else {
|
||||||
|
deviceUnit = csCommTerminalFeignClient.lineUnitDetail(reportSearchParam.getLineId()).getData();
|
||||||
|
}
|
||||||
List<DictData> dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEVICE_UNIT.getCode()).getData();
|
List<DictData> dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEVICE_UNIT.getCode()).getData();
|
||||||
Map<String, String> unit = new HashMap<>();
|
Map<String, String> unit = new HashMap<>();
|
||||||
List<String> list = dictData.stream().map(DictData::getCode).collect(Collectors.toList());
|
List<String> list = dictData.stream().map(DictData::getCode).collect(Collectors.toList());
|
||||||
@@ -484,7 +483,6 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param data 同类型的cell模板
|
* @param data 同类型的cell模板
|
||||||
* @param sql 单个cell模板
|
* @param sql 单个cell模板
|
||||||
@@ -495,21 +493,17 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
*/
|
*/
|
||||||
private void assSqlNew(List<ReportTemplateDTO> data, StringBuilder sql, List<ReportTemplateDTO> endList, String method, ReportSearchParam reportSearchParam, Map<String, ReportTemplateDTO> limitMap, Map<String, Float> overLimitMap, Map<String, ReportTemplateDTO> assNoPassMap) {
|
private void assSqlNew(List<ReportTemplateDTO> data, StringBuilder sql, List<ReportTemplateDTO> endList, String method, ReportSearchParam reportSearchParam, Map<String, ReportTemplateDTO> limitMap, Map<String, Float> overLimitMap, Map<String, ReportTemplateDTO> assNoPassMap) {
|
||||||
//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')
|
||||||
|
if (InfluxDbSqlConstant.CP95.equals(method)) {
|
||||||
|
|
||||||
//cp95函数特殊处理 PERCENTILE(field_key, N)
|
|
||||||
if (InfluxDbSqlConstant.PERCENTILE.equals(method)) {
|
|
||||||
|
|
||||||
for (int i = 0; i < data.size(); i++) {
|
for (int i = 0; i < data.size(); i++) {
|
||||||
if (i == data.size() - 1) {
|
if (i == data.size() - 1) {
|
||||||
sql.append("MAX")
|
sql.append(InfluxDbSqlConstant.MAX)
|
||||||
.append(InfluxDbSqlConstant.LBK)
|
.append(InfluxDbSqlConstant.LBK)
|
||||||
.append(data.get(i).getTemplateName())
|
.append(data.get(i).getTemplateName())
|
||||||
.append(InfluxDbSqlConstant.RBK)
|
.append(InfluxDbSqlConstant.RBK)
|
||||||
.append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
|
.append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
|
||||||
.append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM);
|
.append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM);
|
||||||
} else {
|
} else {
|
||||||
sql.append("MAX")
|
sql.append(InfluxDbSqlConstant.MAX)
|
||||||
.append(InfluxDbSqlConstant.LBK)
|
.append(InfluxDbSqlConstant.LBK)
|
||||||
.append(data.get(i).getTemplateName())
|
.append(data.get(i).getTemplateName())
|
||||||
.append(InfluxDbSqlConstant.RBK)
|
.append(InfluxDbSqlConstant.RBK)
|
||||||
@@ -517,9 +511,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
.append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM).append(StrUtil.COMMA);
|
.append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM).append(StrUtil.COMMA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
for (int i = 0; i < data.size(); i++) {
|
for (int i = 0; i < data.size(); i++) {
|
||||||
if (i == data.size() - 1) {
|
if (i == data.size() - 1) {
|
||||||
sql.append(method)
|
sql.append(method)
|
||||||
@@ -540,6 +532,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//拼接表名
|
||||||
sql.append(StrPool.C_SPACE)
|
sql.append(StrPool.C_SPACE)
|
||||||
.append(InfluxDbSqlConstant.FROM)
|
.append(InfluxDbSqlConstant.FROM)
|
||||||
.append(data.get(0).getResourceId());
|
.append(data.get(0).getResourceId());
|
||||||
@@ -561,16 +554,12 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
.append(InfluxDbSqlConstant.QM);
|
.append(InfluxDbSqlConstant.QM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sql.append(InfluxDbSqlConstant.AND)
|
||||||
//data_flicker、data_fluc、data_plt 无 value_type
|
.append(InfluxDBTableConstant.VALUE_TYPE)
|
||||||
//if (!"r_stat_data_flicker_d".equals(data.get(0).getResourceId()) && !"r_stat_data_fluc_d".equals(data.get(0).getResourceId()) && !"r_stat_data_plt_d".equals(data.get(0).getResourceId())) {
|
.append(InfluxDbSqlConstant.EQ)
|
||||||
sql.append(InfluxDbSqlConstant.AND)
|
.append(InfluxDbSqlConstant.QM)
|
||||||
.append(InfluxDBTableConstant.VALUE_TYPE)
|
.append(data.get(0).getStatMethod())
|
||||||
.append(InfluxDbSqlConstant.EQ)
|
.append(InfluxDbSqlConstant.QM);
|
||||||
.append(InfluxDbSqlConstant.QM)
|
|
||||||
.append(data.get(0).getStatMethod())
|
|
||||||
.append(InfluxDbSqlConstant.QM);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
//频率和频率偏差仅统计T相
|
//频率和频率偏差仅统计T相
|
||||||
@@ -591,16 +580,14 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
System.out.println(sql);
|
System.out.println(sql);
|
||||||
|
|
||||||
long l = System.currentTimeMillis();
|
long l = System.currentTimeMillis();
|
||||||
List<Map<String,Object>> mapList = SqlRunner.db().selectList(sql.toString());
|
List<Map<String, Object>> mapList = SqlRunner.db().selectList(sql.toString());
|
||||||
|
|
||||||
long la = System.currentTimeMillis();
|
long la = System.currentTimeMillis();
|
||||||
System.out.println("当前sql结束花费时长:"+(la-l)+"ms");
|
System.out.println("当前sql结束花费时长:" + (la - l) + "ms");
|
||||||
if (CollUtil.isEmpty(mapList)) {
|
if (CollUtil.isEmpty(mapList)) {
|
||||||
data = data.stream().peek(item -> item.setValue("/")).collect(Collectors.toList());
|
data = data.stream().peek(item -> item.setValue("/")).collect(Collectors.toList());
|
||||||
} else {
|
} else {
|
||||||
Map<String, Object> map = mapList.get(0);
|
Map<String, Object> map = mapList.get(0);
|
||||||
|
|
||||||
|
|
||||||
for (ReportTemplateDTO item : data) {
|
for (ReportTemplateDTO item : data) {
|
||||||
if (Objects.nonNull(map) && map.containsKey(item.getItemName())) {
|
if (Objects.nonNull(map) && map.containsKey(item.getItemName())) {
|
||||||
double v = Double.parseDouble(map.get(item.getItemName()).toString());
|
double v = Double.parseDouble(map.get(item.getItemName()).toString());
|
||||||
@@ -616,14 +603,13 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//判断是否越限
|
//判断是否越限
|
||||||
if(limitMap.size()!=0) {
|
if (limitMap.size() != 0) {
|
||||||
String key = item.getLimitName() + "#" + item.getStatMethod().toLowerCase() + "#pq_overlimit";
|
String key = item.getLimitName() + "#" + item.getStatMethod().toLowerCase() + "#pq_overlimit";
|
||||||
if (limitMap.containsKey(key)) {
|
if (limitMap.containsKey(key)) {
|
||||||
ReportTemplateDTO tem = limitMap.get(key);
|
ReportTemplateDTO tem = limitMap.get(key);
|
||||||
double limitVal = Double.parseDouble(tem.getValue());
|
double limitVal = Double.parseDouble(tem.getValue());
|
||||||
if (v > limitVal) {
|
if (v > limitVal) {
|
||||||
tem.setOverLimitFlag(1);
|
tem.setOverLimitFlag(1);
|
||||||
|
|
||||||
assNoPassMap.put(key, tem);
|
assNoPassMap.put(key, tem);
|
||||||
} else if (!assNoPassMap.containsKey(key)) {
|
} else if (!assNoPassMap.containsKey(key)) {
|
||||||
tem.setOverLimitFlag(0);
|
tem.setOverLimitFlag(0);
|
||||||
@@ -661,7 +647,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
JSONArray jsonArray;
|
JSONArray jsonArray;
|
||||||
try (InputStream fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent())) {
|
try (InputStream fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent())) {
|
||||||
jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig()));
|
jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig()));
|
||||||
parseTemplate(jsonArray, reportTemplateDTOList, reportLimitList,terminalList);
|
parseTemplate(jsonArray, reportTemplateDTOList, reportLimitList, terminalList);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
||||||
}
|
}
|
||||||
@@ -681,7 +667,6 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
List<ReportTemplateDTO> endList = new ArrayList<>();
|
List<ReportTemplateDTO> endList = new ArrayList<>();
|
||||||
if (CollUtil.isNotEmpty(reportTemplateDTOList)) {
|
if (CollUtil.isNotEmpty(reportTemplateDTOList)) {
|
||||||
|
|
||||||
|
|
||||||
//开始组织sql
|
//开始组织sql
|
||||||
reportTemplateDTOList = reportTemplateDTOList.stream()
|
reportTemplateDTOList = reportTemplateDTOList.stream()
|
||||||
.collect(Collectors.collectingAndThen(Collectors.toCollection(
|
.collect(Collectors.collectingAndThen(Collectors.toCollection(
|
||||||
@@ -707,7 +692,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
} else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) {
|
} else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) {
|
||||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||||
} else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) {
|
} else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) {
|
||||||
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.PERCENTILE, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -717,13 +702,13 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
//处理合格率
|
//处理合格率
|
||||||
assNoPassMap.forEach((key, val) -> {
|
assNoPassMap.forEach((key, val) -> {
|
||||||
limitTargetMapX.remove(key);
|
limitTargetMapX.remove(key);
|
||||||
if("Voltage_Dev".equals(val.getTemplateName())||"Freq_Dev".equals(val.getTemplateName())){
|
if ("Voltage_Dev".equals(val.getTemplateName()) || "Freq_Dev".equals(val.getTemplateName())) {
|
||||||
val.setValue("±"+val.getValue());
|
val.setValue("±" + val.getValue());
|
||||||
}
|
}
|
||||||
if (val.getOverLimitFlag() == 1) {
|
if (val.getOverLimitFlag() == 1) {
|
||||||
val.setValue("不合格 ("+val.getValue()+")");
|
val.setValue("不合格 (" + val.getValue() + ")");
|
||||||
} else {
|
} else {
|
||||||
val.setValue("合格 ("+val.getValue()+")");
|
val.setValue("合格 (" + val.getValue() + ")");
|
||||||
}
|
}
|
||||||
endList.add(val);
|
endList.add(val);
|
||||||
});
|
});
|
||||||
@@ -746,13 +731,13 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
if (CollUtil.isNotEmpty(endList)) {
|
if (CollUtil.isNotEmpty(endList)) {
|
||||||
long jie = System.currentTimeMillis();
|
long jie = System.currentTimeMillis();
|
||||||
//数据单位信息
|
//数据单位信息
|
||||||
//Map<String, String> unit = unitMap(reportSearchParam.getLineId());
|
Map<String, String> unit = unitMap(reportSearchParam);
|
||||||
//进行反向赋值到模板
|
//进行反向赋值到模板
|
||||||
//1、根据itemName分组
|
//1、根据itemName分组
|
||||||
Map<String, List<ReportTemplateDTO>> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName));
|
Map<String, List<ReportTemplateDTO>> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName));
|
||||||
//处理台账信息
|
//处理台账信息
|
||||||
Map<String,String> terminalMap = null;
|
Map<String, String> terminalMap = null;
|
||||||
if(CollUtil.isNotEmpty(terminalList)){
|
if (CollUtil.isNotEmpty(terminalList)) {
|
||||||
terminalMap = commTerminalGeneralClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData();
|
terminalMap = commTerminalGeneralClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData();
|
||||||
}
|
}
|
||||||
Map<String, String> finalTerminalMap = terminalMap;
|
Map<String, String> finalTerminalMap = terminalMap;
|
||||||
@@ -803,10 +788,10 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
} else if (v.charAt(0) == '&') {
|
} else if (v.charAt(0) == '&') {
|
||||||
//结论
|
//结论
|
||||||
String tem = v.replace("&", "");
|
String tem = v.replace("&", "");
|
||||||
if(Objects.nonNull(finalTerminalMap)) {
|
if (Objects.nonNull(finalTerminalMap)) {
|
||||||
if("statis_time".equals(tem)){
|
if ("statis_time".equals(tem)) {
|
||||||
son.set("v", reportSearchParam.getStartTime()+InfluxDbSqlConstant.START_TIME+"_"+reportSearchParam.getEndTime()+InfluxDbSqlConstant.END_TIME);
|
son.set("v", reportSearchParam.getStartTime() + InfluxDbSqlConstant.START_TIME + "_" + reportSearchParam.getEndTime() + InfluxDbSqlConstant.END_TIME);
|
||||||
}else {
|
} else {
|
||||||
//台账信息
|
//台账信息
|
||||||
son.set("v", finalTerminalMap.getOrDefault(tem, "/"));
|
son.set("v", finalTerminalMap.getOrDefault(tem, "/"));
|
||||||
}
|
}
|
||||||
@@ -815,7 +800,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
//解决数据单位问题 @指标#类型@
|
//解决数据单位问题 @指标#类型@
|
||||||
if (v.charAt(0) == '@' && v.contains("#")) {
|
if (v.charAt(0) == '@' && v.contains("#")) {
|
||||||
String replace = v.replace("@", "");
|
String replace = v.replace("@", "");
|
||||||
// son.set("v", unit.getOrDefault(replace, "/"));
|
son.set("v", unit.getOrDefault(replace, "/"));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -830,7 +815,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
|
|
||||||
long daochu = System.currentTimeMillis();
|
long daochu = System.currentTimeMillis();
|
||||||
//导出自定义报表
|
//导出自定义报表
|
||||||
downReport(jsonArray,response);
|
downReport(jsonArray, response);
|
||||||
long daochuEnd = System.currentTimeMillis();
|
long daochuEnd = System.currentTimeMillis();
|
||||||
System.out.println("导出耗时 " + (daochuEnd - daochu) / 1000 + "S");
|
System.out.println("导出耗时 " + (daochuEnd - daochu) / 1000 + "S");
|
||||||
|
|
||||||
@@ -916,13 +901,13 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取测点限值
|
* 获取测点限值
|
||||||
|
*
|
||||||
* @author cdf
|
* @author cdf
|
||||||
* @date 2023/10/23
|
* @date 2023/10/23
|
||||||
*/
|
*/
|
||||||
private Map<String,Float> overLimitDeal(List<ReportTemplateDTO> reportLimitList, ReportSearchParam reportSearchParam) {
|
private Map<String, Float> overLimitDeal(List<ReportTemplateDTO> reportLimitList, ReportSearchParam reportSearchParam) {
|
||||||
Map<String, Float> limitMap = new HashMap<>();
|
Map<String, Float> limitMap = new HashMap<>();
|
||||||
if (CollUtil.isNotEmpty(reportLimitList)) {
|
if (CollUtil.isNotEmpty(reportLimitList)) {
|
||||||
StringBuilder sql = new StringBuilder("select ");
|
StringBuilder sql = new StringBuilder("select ");
|
||||||
@@ -935,6 +920,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
sql.append(" from ").append(reportLimitList.get(0).getResourceId()).append(" where id ='").append(reportSearchParam.getLineId()).append("'");
|
sql.append(" from ").append(reportLimitList.get(0).getResourceId()).append(" where id ='").append(reportSearchParam.getLineId()).append("'");
|
||||||
limitMap = excelRptTempMapper.dynamicSqlMap(sql.toString());
|
limitMap = excelRptTempMapper.dynamicSqlMap(sql.toString());
|
||||||
|
if (Objects.isNull(limitMap)) {
|
||||||
|
throw new BusinessException("当前测点限值缺失!");
|
||||||
|
}
|
||||||
|
|
||||||
for (ReportTemplateDTO item : reportLimitList) {
|
for (ReportTemplateDTO item : reportLimitList) {
|
||||||
if (limitMap.containsKey(item.getTemplateName())) {
|
if (limitMap.containsKey(item.getTemplateName())) {
|
||||||
@@ -948,7 +936,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
/**
|
/**
|
||||||
* 报告下载
|
* 报告下载
|
||||||
*/
|
*/
|
||||||
private void downReport(JSONArray jsonArray,HttpServletResponse response){
|
private void downReport(JSONArray jsonArray, HttpServletResponse response) {
|
||||||
InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8);
|
InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8);
|
||||||
//String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json"));
|
//String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json"));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user