From 22c8ff3b2200792895316254653aff9943b04c5f Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Fri, 9 Jan 2026 16:00:57 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=A8=B3=E6=80=81=E7=9B=91=E6=B5=8B=E7=82=B9?= =?UTF-8?q?=E6=8A=A5=E5=91=8Abug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => report}/ExportModelController.java | 175 ++++++++++++------ .../{ => report}/ExportModelJBController.java | 2 +- .../report/impl/CustomReportServiceImpl.java | 2 +- .../resources/file/areaReportTemplate.docx | Bin 50406 -> 50429 bytes 4 files changed, 125 insertions(+), 54 deletions(-) rename pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/{ => report}/ExportModelController.java (93%) rename pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/{ => report}/ExportModelJBController.java (99%) diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java similarity index 93% rename from pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java rename to pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java index 1ed240f28..2742ada8b 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelController.java @@ -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 header = new HashMap<>(16); + /* Map 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 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 包含content/width/height/type,直接给header用 + */ + private Map handleImageData(MultipartFile multipartFile, ClassPathResource defaultPicResource) { + Map 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; + } } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelJBController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelJBController.java similarity index 99% rename from pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelJBController.java rename to pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelJBController.java index fa6dbb8b1..a4758a531 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/ExportModelJBController.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/ExportModelJBController.java @@ -1,4 +1,4 @@ -package com.njcn.harmonic.controller; +package com.njcn.harmonic.controller.report; import cn.hutool.core.collection.CollUtil; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java index 03858032f..4c277aeca 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java @@ -401,7 +401,7 @@ public class CustomReportServiceImpl implements CustomReportService { private void assStatMethod(EleEpdPqd item, List 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 stat = Stream.of(arr).collect(Collectors.toList()); if (CollUtil.isNotEmpty(stat)) { stat.forEach(statItem -> { diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/areaReportTemplate.docx b/pqs-harmonic/harmonic-boot/src/main/resources/file/areaReportTemplate.docx index a174b8bdc900f39608e13b09ea126f6bd382e7e1..84526aac394c4898744c73934dedf12149a2dadd 100644 GIT binary patch delta 28052 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