1.稳态监测点报告bug修改
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package com.njcn.harmonic.controller;
|
||||
package com.njcn.harmonic.controller.report;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
@@ -6,7 +6,7 @@ import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.njcn.common.pojo.constant.PatternRegex;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
@@ -22,7 +22,6 @@ import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
|
||||
import com.njcn.event.enums.EventResponseEnum;
|
||||
import com.njcn.harmonic.pojo.param.ReportQueryParam;
|
||||
import com.njcn.harmonic.pojo.po.report.EnumPass;
|
||||
import com.njcn.harmonic.pojo.po.report.OverLimitInfo;
|
||||
import com.njcn.harmonic.pojo.po.report.Pass;
|
||||
import com.njcn.harmonic.pojo.po.report.ReportTarget;
|
||||
import com.njcn.harmonic.pojo.vo.ReportValue;
|
||||
@@ -34,7 +33,6 @@ import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import com.njcn.system.pojo.po.Theme;
|
||||
import com.njcn.web.constant.ValidMessage;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -45,12 +43,13 @@ import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import sun.misc.BASE64Encoder;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@@ -242,7 +241,7 @@ public class ExportModelController extends BaseController {
|
||||
reportmap.put("$btype$", btype);
|
||||
reportmap.put("$ctype$", ctype);
|
||||
|
||||
Map<String, Object> header = new HashMap<>(16);
|
||||
/* Map<String, Object> header = new HashMap<>(16);
|
||||
if (ObjectUtil.isNotEmpty(file)) {
|
||||
byte[] bytes = file.getBytes();
|
||||
if(bytes.length>0){
|
||||
@@ -289,8 +288,12 @@ public class ExportModelController extends BaseController {
|
||||
header.put("height", 250);
|
||||
header.put("type", contentType);
|
||||
header.put("content", data);
|
||||
}
|
||||
|
||||
|
||||
}*/
|
||||
// ======== 修复后的图片处理核心逻辑 ========
|
||||
Map<String, Object> header = handleImageData(file, picPathResource);
|
||||
reportmap.put("$image$", header);
|
||||
reportmap.put("$image$", header);
|
||||
|
||||
getVirtualData(param);
|
||||
@@ -454,31 +457,31 @@ public class ExportModelController extends BaseController {
|
||||
|
||||
if (!(vmaxValue >= vminValue && vmaxValue >= vaveValue && vmaxValue >= vcp95Value)) {
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
break;
|
||||
} else if (vaveValue < vminValue) {
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
break;
|
||||
} else if (vcp95Value < vminValue) {
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
break;
|
||||
} else if (!(imaxValue >= iminValue && imaxValue >= iaveValue && imaxValue >= icp95Value)) {
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
break;
|
||||
} else if (iaveValue < iminValue) {
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
break;
|
||||
} else if (icp95Value < iminValue) {
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "基波电压/电流数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + "基波电压/电流数据存在异常(不是数值类型)。";
|
||||
strBaseVIResult += "注意:从上表中可以看出" + strLineBaseName + "基波电压/电流数据存在异常(不是数值类型)。\r\n";
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -502,7 +505,12 @@ public class ExportModelController extends BaseController {
|
||||
new String[]{DateUtil.format(startDate, "yyyy年MM月dd日 HH时mm分ss秒"),
|
||||
DateUtil.format(endDate, "yyyy年MM月dd日 HH时mm分ss秒")});
|
||||
// 报告编号
|
||||
reportmap.put("$number$", reportNumber);
|
||||
if(StrUtil.isNotBlank(reportNumber)){
|
||||
reportmap.put("$number$", reportNumber);
|
||||
}else {
|
||||
reportmap.put("$number$", "");
|
||||
}
|
||||
|
||||
// 客户名称
|
||||
reportmap.put("$titlePoint$", crmName);
|
||||
// 报告生成时间
|
||||
@@ -637,7 +645,6 @@ public class ExportModelController extends BaseController {
|
||||
// 值错误判断
|
||||
try {
|
||||
for (int i = 0; i < 3; i++) {
|
||||
tmpstrMap = "A";
|
||||
switch (i) {
|
||||
case 0:
|
||||
tmpstrMap = "A";
|
||||
@@ -673,13 +680,13 @@ public class ExportModelController extends BaseController {
|
||||
if("".equals(strResultVdeviationdataValue)){
|
||||
if (!(vmaxValue >= vminValue && vmaxValue >= vaveValue && vmaxValue >= vcp95Value)) {
|
||||
strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "电压偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "电压偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
} else if (vaveValue < vminValue) {
|
||||
strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "电压偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "电压偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
} else if (vcp95Value < vminValue) {
|
||||
strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "电压偏差数据数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "电压偏差数据数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -726,7 +733,7 @@ public class ExportModelController extends BaseController {
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName + "电压偏差数据存在异常(不是数值类型)。";
|
||||
strResultVdeviationdataValue += "注意:从上表中可以看出" + strLineBaseName + "电压偏差数据存在异常(不是数值类型)。\r\n";
|
||||
}
|
||||
|
||||
//
|
||||
@@ -782,7 +789,7 @@ public class ExportModelController extends BaseController {
|
||||
cp95Value = Double.parseDouble(valueOfFreValue.getCp95Value().toString());
|
||||
limit = Math.abs(Double.parseDouble(valueOfFreLimit));
|
||||
} catch (Exception e) {
|
||||
strResultFreValue += "注意:从上表中可以看出" + strLineBaseName + "频率偏差数据存在异常(不是数值类型)。";
|
||||
strResultFreValue += "注意:从上表中可以看出" + strLineBaseName + "频率偏差数据存在异常(不是数值类型)。\r\n";
|
||||
}
|
||||
|
||||
if (Math.abs(maxValue) > limit) {
|
||||
@@ -800,13 +807,13 @@ public class ExportModelController extends BaseController {
|
||||
|
||||
if (!(maxValue >= minValue && maxValue >= aveValue && maxValue >= cp95Value)) {
|
||||
strResultFreValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
} else if (aveValue < minValue) {
|
||||
strResultFreValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
} else if (cp95Value < minValue) {
|
||||
strResultFreValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "频率偏差数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
}
|
||||
|
||||
if ("".equals(tmpstrResultFre)) {
|
||||
@@ -816,9 +823,9 @@ public class ExportModelController extends BaseController {
|
||||
} else {
|
||||
// 三张大表取值
|
||||
reportmap.put("$FV0R$", "不合格");
|
||||
strAnalysis += tmpstrResultFre + ",均不满足国标限值(±" + valueOfFreLimit + deviceUnit.getUnitFrequencyDev() + ")的要求。";
|
||||
strAnalysis += tmpstrResultFre + ",均不满足国标限值(±" + valueOfFreLimit + deviceUnit.getUnitFrequencyDev() + ")的要求。\r\n";
|
||||
strResultFre += "从上表中可以看出" + strLineBaseName + "频率偏差" + tmpstrResultFre + ",均不满足国标限值(±" + valueOfFreLimit
|
||||
+ deviceUnit.getUnitFrequencyDev() + ")的要求。";
|
||||
+ deviceUnit.getUnitFrequencyDev() + ")的要求。\r\n";
|
||||
}
|
||||
|
||||
reportmap.put("$ResultFre$", strResultFre);
|
||||
@@ -856,7 +863,7 @@ public class ExportModelController extends BaseController {
|
||||
cp95Value = Double.parseDouble(valueOfThree.getCp95Value().toString());
|
||||
limit = Double.parseDouble(valueOfThreeLimit);
|
||||
} catch (Exception e) {
|
||||
strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName + "三相电压不平衡度数据存在异常(不是数值类型)。";
|
||||
strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName + "三相电压不平衡度数据存在异常(不是数值类型)。\r\n";
|
||||
}
|
||||
if (cp95Value > limit) {
|
||||
// 三张大表取值
|
||||
@@ -869,13 +876,13 @@ public class ExportModelController extends BaseController {
|
||||
|
||||
if (!(maxValue >= minValue && maxValue >= aveValue && maxValue >= cp95Value)) {
|
||||
strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
} else if (aveValue < minValue) {
|
||||
strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
} else if (cp95Value < minValue) {
|
||||
strResultThreeValue += "注意:从上表中可以看出" + strLineBaseName
|
||||
+ "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。";
|
||||
+ "三相电压不平衡度数据存在异常( 1、最大值>=最小值、平均值、95%概率值;2、平均值>=最小值;3、95%概率值>=最小值)。\r\n";
|
||||
}
|
||||
|
||||
if ("".equals(tmpstrResultThree)) {
|
||||
@@ -910,7 +917,7 @@ public class ExportModelController extends BaseController {
|
||||
fmaxValue3 = Double.parseDouble(plt3.getFmaxValue().toString());
|
||||
flickerLimit = Double.parseDouble(valueOfFlickerLimit);
|
||||
} catch (Exception e) {
|
||||
strResultFlickerValue += "注意:从上表中可以看出" + strLineBaseName + "长时闪变数据存在异常(不是数值类型)。";
|
||||
strResultFlickerValue += "注意:从上表中可以看出" + strLineBaseName + "长时闪变数据存在异常(不是数值类型)。\r\n";
|
||||
}
|
||||
if (fmaxValue1 > flickerLimit) {
|
||||
if (!"".equals(tmpstrResultFlicker))
|
||||
@@ -1093,7 +1100,7 @@ public class ExportModelController extends BaseController {
|
||||
aveValue = Double.parseDouble(strCurrentC);
|
||||
limit = Double.parseDouble(strLimit);
|
||||
} catch (Exception e) {
|
||||
strResultVoltageRateValue += "注意:从上表中可以看出" + strLineBaseName + "谐波电压含有率95%概率值数据存在异常(不是数值类型)。";
|
||||
strResultVoltageRateValue += "注意:从上表中可以看出" + strLineBaseName + (i+1)+"次谐波电压含有率95%概率值数据存在异常(不是数值类型)。\r\n";
|
||||
}
|
||||
|
||||
String tmpstrResult = "";
|
||||
@@ -1132,16 +1139,16 @@ public class ExportModelController extends BaseController {
|
||||
}
|
||||
// 判断单个结论是否存在
|
||||
if (!"".equals(tmpstrResult)) {
|
||||
tmpstrResultVoltageRate += (i + 1) + "次谐波电压含有率95%概率值" + tmpstrResult + ";";
|
||||
tmpstrResultVoltageRate += (i + 1) + "次谐波电压含有率95%概率值" + tmpstrResult + ";\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
// 假如为空则所有的都满足
|
||||
if ("".equals(tmpstrResultVoltageRate)) {
|
||||
strResultVoltageRate += "从上表中可以看出" + strLineBaseName + "2-25次谐波电压含有率95%概率值均满足国标限值要求。";
|
||||
strResultVoltageRate += "从上表中可以看出" + strLineBaseName + "2-25次谐波电压含有率95%概率值均满足国标限值要求。\r\n";
|
||||
} else {
|
||||
strAnalysis += tmpstrResultVoltageRate + "2-25次谐波电压含有率95%概率值均不满足国标限值要求。";
|
||||
strResultVoltageRate += "从上表中可以看出" + strLineBaseName + tmpstrResultVoltageRate + "均不满足国标限值要求。";
|
||||
strAnalysis += tmpstrResultVoltageRate + "2-25次谐波电压含有率95%概率值均不满足国标限值要求。\r\n";
|
||||
strResultVoltageRate += "从上表中可以看出" + strLineBaseName + "\r\n"+tmpstrResultVoltageRate + "均不满足国标限值要求。\r\n";
|
||||
}
|
||||
|
||||
/**************************************************************
|
||||
@@ -1187,7 +1194,7 @@ public class ExportModelController extends BaseController {
|
||||
cp95ValueC = Math.abs(Double.parseDouble(distortion3.getCp95Value().toString()));
|
||||
limit = Math.abs(Double.parseDouble(distortionLimit));
|
||||
} catch (Exception e) {
|
||||
strResultDistortionValue += "注意:从上表中可以看出" + strLineBaseName + "电压总谐波畸变率(THD)数据存在异常(不是数值类型)。";
|
||||
strResultDistortionValue += "注意:从上表中可以看出" + strLineBaseName + "电压总谐波畸变率(THD)数据存在异常(不是数值类型)。\r\n";
|
||||
}
|
||||
// 限值判断
|
||||
if (cp95ValueA > limit) {
|
||||
@@ -1223,17 +1230,20 @@ public class ExportModelController extends BaseController {
|
||||
// 三张大表取值
|
||||
reportmap.put("$TV0R_C$", "合格");
|
||||
}
|
||||
|
||||
strError += strResultVoltageRateValue + strResultDistortionValue;
|
||||
// 假如为空则所有的都满足
|
||||
if ("".equals(tmpstrResultDistortion)) {
|
||||
strResultDistortion += "电压总谐波畸变率(THD)95%概率值均满足国标限值要求。";
|
||||
if ("".equals(tmpstrResultDistortion) && "".equals(strResultDistortionValue)) {
|
||||
strResultDistortion += "电压总谐波畸变率(THD)95%概率值均满足国标限值要求。\r\n";
|
||||
reportmap.put("$ResultVoltageRateValue$", "");
|
||||
} else {
|
||||
strAnalysis += "电压总谐波畸变率(THD)95%概率值" + tmpstrResultDistortion + "均不满足国标限值要求。";
|
||||
strResultDistortion += "电压总谐波畸变率(THD)95%概率值" + tmpstrResultDistortion + "均不满足国标限值要求。";
|
||||
strAnalysis += "电压总谐波畸变率(THD)95%概率值" + tmpstrResultDistortion + "均不满足国标限值要求。\r\n";
|
||||
strResultDistortion += "电压总谐波畸变率(THD)95%概率值" + tmpstrResultDistortion + "均不满足国标限值要求。\r\n";
|
||||
reportmap.put("$ResultVoltageRateValue$", strError);
|
||||
}
|
||||
reportmap.put("$ResultVoltageRate$", strResultVoltageRate + strResultDistortion);
|
||||
reportmap.put("$ResultVoltageRateValue$", strResultVoltageRateValue + strResultDistortionValue);
|
||||
strError += strResultVoltageRateValue + strResultDistortionValue;
|
||||
|
||||
|
||||
|
||||
|
||||
/**************************************************************
|
||||
**** 谐波电流幅值
|
||||
@@ -1283,7 +1293,7 @@ public class ExportModelController extends BaseController {
|
||||
aveValue = Double.parseDouble(strCurrentC);
|
||||
limit = Double.parseDouble(strLimit);
|
||||
} catch (Exception e) {
|
||||
strResultCurrentValue += "注意:从上表中可以看出" + strLineBaseName + "谐波电流幅值95%概率值数据存在异常(不是数值类型)。";
|
||||
strResultCurrentValue += "注意:从上表中可以看出" + strLineBaseName +(i + 1)+ "次谐波电流幅值95%概率值数据存在异常(不是数值类型)。\r\n";
|
||||
}
|
||||
|
||||
String tmpstrResult = "";
|
||||
@@ -1322,21 +1332,22 @@ public class ExportModelController extends BaseController {
|
||||
}
|
||||
// 判断单个结论是否存在
|
||||
if (!"".equals(tmpstrResult)) {
|
||||
tmpstrResultCurrent += (i + 1) + "次谐波电流幅值95%概率值" + tmpstrResult + ";";
|
||||
tmpstrResultCurrent += (i + 1) + "次谐波电流幅值95%概率值" + tmpstrResult + ";\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
strError += strResultCurrentValue;
|
||||
// 假如为空则所有的都满足
|
||||
if ("".equals(tmpstrResultCurrent)) {
|
||||
strResultCurrent += "从上表中可以看出" + strLineBaseName + "2-25次谐波电流幅值95%概率值均满足国标限值要求。";
|
||||
if ("".equals(tmpstrResultCurrent) && "".equals(strResultCurrentValue)) {
|
||||
strResultCurrent += "从上表中可以看出" + strLineBaseName + "\r\n2-25次谐波电流幅值95%概率值均满足国标限值要求。\r\n";
|
||||
reportmap.put("$ResultCurrentValue$", "");
|
||||
} else {
|
||||
strAnalysis += tmpstrResultCurrent + "均不满足国标限值要求。";
|
||||
strResultCurrent += "从上表中可以看出" + strLineBaseName + tmpstrResultCurrent + "均不满足国标限值要求。";
|
||||
strResultCurrent += "从上表中可以看出" + strLineBaseName + tmpstrResultCurrent + "均不满足国标限值要求。\r\n";
|
||||
reportmap.put("$ResultCurrentValue$", strError);
|
||||
|
||||
}
|
||||
|
||||
reportmap.put("$ResultCurrent$", strResultCurrent);
|
||||
reportmap.put("$ResultCurrentValue$", strResultCurrentValue);
|
||||
strError += strResultCurrentValue;
|
||||
|
||||
// 测试结果填写
|
||||
reportmap.put("$ResultTitle$", String.format("通过对(%s——%s)时间段内%s电能质量统计数据分析后得出以下结论:",
|
||||
@@ -1816,4 +1827,64 @@ public class ExportModelController extends BaseController {
|
||||
list.add(overLimit.getUharm25());
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修复:处理图片字节流+获取自适应宽高(按原图比例,适配Word的EMU单位,防止截断)
|
||||
* @param multipartFile 上传的图片文件(可为null)
|
||||
* @param defaultPicResource 默认图片资源(ClassPathResource)
|
||||
* @return Map<String,Object> 包含content/width/height/type,直接给header用
|
||||
*/
|
||||
private Map<String, Object> handleImageData(MultipartFile multipartFile, ClassPathResource defaultPicResource) {
|
||||
Map<String, Object> imgMap = new HashMap<>(4);
|
||||
byte[] imgBytes = null;
|
||||
String contentType = null;
|
||||
try {
|
||||
if (ObjectUtil.isNotEmpty(multipartFile) && multipartFile.getSize() > 0) {
|
||||
// 处理上传的图片
|
||||
imgBytes = multipartFile.getBytes();
|
||||
contentType = multipartFile.getContentType();
|
||||
} else {
|
||||
// 处理默认图片,【修复流读取不完整问题】
|
||||
if (defaultPicResource != null && defaultPicResource.exists()) {
|
||||
try (InputStream in = defaultPicResource.getInputStream()) {
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
byte[] buffer = new byte[1024];
|
||||
int len;
|
||||
while ((len = in.read(buffer)) != -1) {
|
||||
baos.write(buffer, 0, len);
|
||||
}
|
||||
imgBytes = baos.toByteArray();
|
||||
contentType = "image/jpeg"; // 默认图片是jpg
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 核心修复:获取图片真实宽高 + 按比例自适应缩放(关键!解决只显示一半)
|
||||
if (imgBytes != null && imgBytes.length > 0) {
|
||||
ByteArrayInputStream bais = new ByteArrayInputStream(imgBytes);
|
||||
BufferedImage bufferedImage = ImageIO.read(bais);
|
||||
int realWidth = bufferedImage.getWidth();
|
||||
int realHeight = bufferedImage.getHeight();
|
||||
|
||||
// 【核心配置】设置Word中图片的最大显示宽度,高度按比例自动计算,永不截断
|
||||
int maxWordImgWidth = 550; // 建议值,适配Word页面宽度,可微调
|
||||
double scale = 1.0;
|
||||
if (realWidth > maxWordImgWidth) {
|
||||
scale = (double) maxWordImgWidth / realWidth;
|
||||
}
|
||||
int adaptWidth = (int) (realWidth * scale);
|
||||
int adaptHeight = (int) (realHeight * scale);
|
||||
|
||||
// 赋值到map,直接给原逻辑的header用
|
||||
imgMap.put("content", imgBytes);
|
||||
imgMap.put("width", adaptWidth);
|
||||
imgMap.put("height", adaptHeight);
|
||||
imgMap.put("type", ObjectUtil.isNotEmpty(contentType) ? contentType : "image/jpeg");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("处理图片数据异常", e);
|
||||
}
|
||||
return imgMap;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.harmonic.controller;
|
||||
package com.njcn.harmonic.controller.report;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
@@ -401,7 +401,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
||||
private void assStatMethod(EleEpdPqd item, List<ReportTreeVO> statTree, String oneKey, String twoKey) {
|
||||
//存在向别为M但是Stat_Method不为空
|
||||
if (StrUtil.isNotBlank(item.getStatMethod())) {
|
||||
String[] arr = item.getStatMethod().split(",");
|
||||
String[] arr = item.getStatMethod().split(StrUtil.COMMA);
|
||||
List<String> stat = Stream.of(arr).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(stat)) {
|
||||
stat.forEach(statItem -> {
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user