From 64f72ebad4205d5c68d33eb7121c5065139b29a8 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Thu, 9 Oct 2025 10:05:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=A8=A1=E7=89=88=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devcie/mapper/mapping/PqLineMapper.xml | 1 + .../EasyPoiWordExportController.java | 18 +- .../report/pojo/dto/BjCustomReportDTO.java | 8 + .../event/report/pojo/dto/EventTemplate.java | 26 ++ .../impl/EasyPoiWordExportServiceImpl.java | 317 +++++++++++++++++- .../event/report/utils/WordTemplate.java | 10 +- .../src/main/resources/application.yml | 2 + .../src/main/resources/template/test.docx | Bin 1023599 -> 943394 bytes 8 files changed, 368 insertions(+), 14 deletions(-) create mode 100644 event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/EventTemplate.java diff --git a/event_smart/src/main/java/com/njcn/product/event/devcie/mapper/mapping/PqLineMapper.xml b/event_smart/src/main/java/com/njcn/product/event/devcie/mapper/mapping/PqLineMapper.xml index 6ecb2c3..9949399 100644 --- a/event_smart/src/main/java/com/njcn/product/event/devcie/mapper/mapping/PqLineMapper.xml +++ b/event_smart/src/main/java/com/njcn/product/event/devcie/mapper/mapping/PqLineMapper.xml @@ -41,6 +41,7 @@ pq_line.name lineName, PQ_SUBVOLTAGE.SUBV_INDEX busBarId, PQ_SUBVOLTAGE.name busBarName, + PQ_SUBVOLTAGE.SCALE, pq_device.dev_index devId, pq_device.name devName, pq_device.Status runFlag, diff --git a/event_smart/src/main/java/com/njcn/product/event/report/controller/EasyPoiWordExportController.java b/event_smart/src/main/java/com/njcn/product/event/report/controller/EasyPoiWordExportController.java index 5de4cfa..fc4fdab 100644 --- a/event_smart/src/main/java/com/njcn/product/event/report/controller/EasyPoiWordExportController.java +++ b/event_smart/src/main/java/com/njcn/product/event/report/controller/EasyPoiWordExportController.java @@ -3,20 +3,25 @@ package com.njcn.product.event.report.controller; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; +import com.njcn.product.event.devcie.pojo.po.PqGdCompany; import com.njcn.product.event.report.pojo.param.ReportExportParam; import com.njcn.product.event.report.service.EasyPoiWordExportService; import com.njcn.product.event.report.utils.WordTemplate; import com.njcn.product.event.transientes.pojo.param.LargeScreenCountParam; +import com.njcn.product.event.transientes.pojo.po.PqsDepts; +import com.njcn.product.event.transientes.service.PqsDeptsService; import com.njcn.web.controller.BaseController; import com.njcn.web.utils.HttpResultUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; +import java.util.List; /** * @Author: cdf @@ -32,7 +37,8 @@ public class EasyPoiWordExportController extends BaseController { private final EasyPoiWordExportService easyPoiWordExportService; - + @Autowired + private PqsDeptsService pqsDeptsService; @OperateInfo @PostMapping("/get") @ApiOperation("") @@ -46,4 +52,14 @@ public class EasyPoiWordExportController extends BaseController { // return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + @OperateInfo + @PostMapping("/getDept") + public HttpResult> getDept() { + String methodDescribe = getMethodDescribe("getDept"); + + List list = pqsDeptsService.lambdaQuery().eq(PqsDepts::getState, 1).list(); + + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + } diff --git a/event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/BjCustomReportDTO.java b/event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/BjCustomReportDTO.java index 878b0d7..b7a3bfd 100644 --- a/event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/BjCustomReportDTO.java +++ b/event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/BjCustomReportDTO.java @@ -2,6 +2,9 @@ package com.njcn.product.event.report.pojo.dto; import lombok.Data; +import java.util.List; +import java.util.Map; + /** * @Author: cdf * @CreateTime: 2025-09-24 @@ -43,4 +46,9 @@ public class BjCustomReportDTO { private Integer affectedUserCount; // 暂降区域说明(如“亦庄经济开发区、通州新城、中心城区”) private String areaContent; + + private List> event; + + private List> companyEvent; + } diff --git a/event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/EventTemplate.java b/event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/EventTemplate.java new file mode 100644 index 0000000..7347a52 --- /dev/null +++ b/event_smart/src/main/java/com/njcn/product/event/report/pojo/dto/EventTemplate.java @@ -0,0 +1,26 @@ +package com.njcn.product.event.report.pojo.dto; + +import lombok.Data; + +/** + * Description: + * Date: 2025/09/29 上午 9:40【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class EventTemplate { + private Integer sno; + private String timeId; + private String orgName; + private String subName; + private String busName; + private String scale; + private String duration; + + private String residualVoltage; + + private String userName; + +} diff --git a/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java b/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java index b9dc8ff..dfde839 100644 --- a/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java @@ -14,6 +14,7 @@ import com.njcn.product.event.devcie.mapper.PqLineMapper; import com.njcn.product.event.devcie.pojo.dto.LedgerBaseInfoDTO; import com.njcn.product.event.devcie.pojo.dto.PqsDeptDTO; import com.njcn.product.event.report.pojo.dto.BjCustomReportDTO; +import com.njcn.product.event.report.pojo.dto.EventTemplate; import com.njcn.product.event.report.pojo.param.ReportExportParam; import com.njcn.product.event.report.service.EasyPoiWordExportService; import com.njcn.product.event.report.utils.WordTemplate; @@ -25,7 +26,13 @@ import com.njcn.product.event.transientes.service.CommGeneralService; import com.njcn.product.event.transientes.service.MsgEventConfigService; import lombok.RequiredArgsConstructor; import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFTable; +import org.apache.poi.xwpf.usermodel.XWPFTableCell; +import org.apache.poi.xwpf.usermodel.XWPFTableRow; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; @@ -34,6 +41,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.stream.DoubleStream; +import java.util.stream.Stream; /** * @Author: cdf @@ -60,9 +68,13 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { private final PqUserLineAssMapper pqUserLineAssMapper; private final PqUserLedgerMapper pqUserLedgerMapper; private final PqsDicTreeMapper pqsDicTreeMapper; + private final ObjectMapper mapper = new ObjectMapper(); + @Value("${business.wordTemplatePath}") + private String wordTemplatePath; - + @Override public void test(HttpServletResponse response, ReportExportParam param) { + try { List deptIds = commGeneralService.getLineIdsByRedis(param.getDeptId()); if (CollUtil.isEmpty(deptIds)) { @@ -100,8 +112,32 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { } List pqsEventdetailList = pqsEventdetailMapper.selectList(lambdaQueryWrapper); + List> eventTemplateList = new ArrayList<>(); + for (int i = 0; i < pqsEventdetailList.size(); i++) { + PqsEventdetail pqsEventdetail = pqsEventdetailList.get(i); + EventTemplate eventTemplate = new EventTemplate(); + eventTemplate.setSno(i+1); + eventTemplate.setTimeId(pqsEventdetail.getTimeid().format(DatePattern.NORM_DATETIME_FORMATTER)+"."+pqsEventdetail.getMs()); + List baseLineInfo = pqLineMapper.getBaseLineInfo(Stream.of(pqsEventdetailList.get(i).getLineid()).collect(Collectors.toList())); + eventTemplate.setOrgName(baseLineInfo.get(0).getGdName()); + eventTemplate.setSubName(baseLineInfo.get(0).getStationName()); + eventTemplate.setBusName(baseLineInfo.get(0).getBusBarName()); + eventTemplate.setScale(pqsDicDataMap.get(baseLineInfo.get(0).getScale()).getDicName()); + eventTemplate.setDuration(String.format("%.3f",pqsEventdetail.getPersisttime()/1000)); + eventTemplate.setResidualVoltage(String.format("%.2f",pqsEventdetail.getEventvalue()*100)); + eventTemplate.setUserName(baseLineInfo.get(0).getObjName()); + Map eventMap = mapper.convertValue(eventTemplate,Map.class); + + eventTemplateList.add(eventMap); + } + bjReportDTO.setEvent(eventTemplateList); + bjReportDTO.setBjTotalEvent(pqsEventdetailList.size()); List lineIds = pqsEventdetailList.stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); + if(CollectionUtils.isEmpty(lineIds)){ + //如果lineIds为空添加一个不是监测点的监测点id避免后边查询错误 + lineIds.add(99999999); + } List ledgerBaseInfoDTOList = pqLineMapper.getBaseLedger(lineIds,null); long stationCount = ledgerBaseInfoDTOList.stream().map(LedgerBaseInfoDTO::getStationId).distinct().count(); bjReportDTO.setTotalEventSubstation((int)stationCount); @@ -109,9 +145,9 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { bjReportDTO.setBjTotalBus((int)busCount); String busVoltageStr = busVoltageDeal(ledgerBaseInfoDTOList,pqsDicDataMap); bjReportDTO.setStationVoltage(busVoltageStr); - - double min = pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).min().getAsDouble()*100; - double max = pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).max().getAsDouble()*100; + //double容易精度缺失 + double min =Math.round(pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).min().getAsDouble()*100*100)*0.01d ; + double max = Math.round(pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).max().getAsDouble()*100*100)*0.01d; bjReportDTO.setResidualVoltageRange(min+"%-"+max+"%"); double minPersisTime = pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getPersisttime).min().getAsDouble()/1000; @@ -127,16 +163,161 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { bjReportDTO.setObjTypeList(treeStr); bjReportDTO.setAffectedUserCount(pqUserLedgerPOList.size()); + areaAssemble(bjReportDTO,param,pqsDicDataMap); - ObjectMapper mapper = new ObjectMapper(); Map map = mapper.convertValue(bjReportDTO,Map.class); - WordTemplate.generateWordDownload("template/test.docx", response, "aa.docx", map); + WordTemplate.generateWordDownload(wordTemplatePath+"/test.docx", response, "重要敏感用户电压暂降事件监测情况.docx", map); } catch (Exception e) { e.printStackTrace(); } } + private void areaAssemble(BjCustomReportDTO bjReportDTO, ReportExportParam param, Map pqsDicDataMap) { + List pqsDeptsList = pqsDeptsMapper.getDeptList(param.getDeptList()); + Map deptMap = pqsDeptsList.stream().collect(Collectors.toMap(PqsDeptDTO::getDeptsIndex,PqsDeptDTO::getDeptsname)); + List areaContentList = new ArrayList<>(); + List> eventTemplateList = new ArrayList<>(); + + param.getDeptList().forEach(deptId->{ + String deptName = deptMap.get(deptId); + + String areaContent =""; + String userContext =""; + List deptLineIds = commGeneralService.getLineIdsByRedis(deptId); + if(CollectionUtils.isEmpty(deptLineIds)){ + areaContent = deptName+"共监测到电压暂降事件0条"; + }else { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(PqsEventdetail::getWavetype,msgEventConfigService.getEventType()) + .gt(PqsEventdetail::getPersisttime,msgEventConfigService.getEventDuration()) + .le(PqsEventdetail::getEventvalue,msgEventConfigService.getEventValue()) + .between(PqsEventdetail::getTimeid,DateUtil.parse(param.getSearchBeginTime(),DatePattern.NORM_DATETIME_PATTERN),DateUtil.parse(param.getSearchEndTime(),DatePattern.NORM_DATETIME_PATTERN)); + if (deptLineIds.size() > 1000) { + List> listList = CollUtil.split(deptLineIds, 1000); + lambdaQueryWrapper.and(w->{ + w.or(i->{ + for(List ids : listList){ + i.in(PqsEventdetail::getLineid,ids); + } + }); + }); + } else { + lambdaQueryWrapper.in(PqsEventdetail::getLineid,deptLineIds); + } + List pqsEventdetailList = pqsEventdetailMapper.selectList(lambdaQueryWrapper); + if(CollectionUtils.isEmpty(pqsEventdetailList)){ + areaContent = deptName+"共监测到电压暂降事件0条"; + }else { + Integer eveCount = pqsEventdetailList.size(); + + List lineIds = pqsEventdetailList.stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); + List ledgerBaseInfoDTOList = pqLineMapper.getBaseLedger(lineIds,null); + long stationCount = ledgerBaseInfoDTOList.stream().map(LedgerBaseInfoDTO::getStationId).distinct().count(); + long busCount = ledgerBaseInfoDTOList.stream().map(LedgerBaseInfoDTO::getBusBarId).distinct().count(); + + String stationStr = stationVoltageDeal(ledgerBaseInfoDTOList,pqsDicDataMap); + String areabusVoltageDeal = areabusVoltageDeal(ledgerBaseInfoDTOList,pqsDicDataMap); + + double min =Math.round(pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).min().getAsDouble()*100*100)*0.01d ; + double max = Math.round(pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).max().getAsDouble()*100*100)*0.01d; + String residualVoltage = min+"%-"+max+"%"; + + double minPersisTime = pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getPersisttime).min().getAsDouble()/1000; + double maxPersisTime = pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getPersisttime).max().getAsDouble()/1000; + String duration = minPersisTime+"s-"+maxPersisTime+"s"; + String temp ="%s共监测到电压暂降事件%s条,涉及%s座变电站,%s条母线,其中:%s,造成%s发生电压暂降,残余电压范围为%s,持续时间范围为%s。"; + areaContent =String.format(temp,deptName,eveCount,stationCount,busCount,stationStr,areabusVoltageDeal,residualVoltage,duration); + + if(!CollectionUtils.isEmpty(lineIds)){ + List pqUserLineAssPOS = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getLineIndex,lineIds)); + List userIds = pqUserLineAssPOS.stream().map(PqUserLineAssPO::getUserIndex).distinct().collect(Collectors.toList()); + + LambdaQueryWrapper pqUserLedgerPOLambdaQueryWrapper = new LambdaQueryWrapper(); + pqUserLedgerPOLambdaQueryWrapper.in(PqUserLedgerPO::getId,userIds).eq(PqUserLedgerPO::getIsShow,1); + List pqUserLedgerPOList = pqUserLedgerMapper.selectList(pqUserLedgerPOLambdaQueryWrapper); + if(CollectionUtils.isEmpty(pqUserLedgerPOList)){ + userContext ="不涉及半导体及重点关注用户。"; + }else { + String companyName = pqUserLedgerPOList.stream().map(PqUserLedgerPO::getCustomerName).collect(Collectors.joining("、", "(", ")")); + userContext="涉及"+pqUserLedgerPOList.size()+"家半导体及重点关注用户"+companyName+","; + //逆推监测点,过滤发生暂降事件 + List companyId = pqUserLedgerPOList.stream().map(PqUserLedgerPO::getId).collect(Collectors.toList()); + List pqUserLineAssPOS1 = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getUserIndex, companyId)); + List companyNameList = pqUserLedgerPOList.stream().map(PqUserLedgerPO::getCustomerName).collect(Collectors.toList()); + List companyLineId= pqUserLineAssPOS1.stream().map(PqUserLineAssPO::getLineIndex).collect(Collectors.toList()); + List companyevent = pqsEventdetailList.stream().filter(pqsEventdetail -> companyLineId.contains(pqsEventdetail.getLineid())).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(companyevent)){ + userContext =userContext+"暂未发生暂态事件。"; + }else { + + for (int i = 0; i < pqsEventdetailList.size(); i++) { + PqsEventdetail pqsEventdetail = pqsEventdetailList.get(i); + + List baseLineInfo = pqLineMapper.getBaseLineInfo(Stream.of(pqsEventdetailList.get(i).getLineid()).collect(Collectors.toList())); + String[] split = baseLineInfo.get(0).getObjName().split(";"); + for (int i1 = 0; i1 < split.length; i1++) { + if(companyNameList.contains(split[i1])){ + EventTemplate eventTemplate = new EventTemplate(); + eventTemplate.setTimeId(pqsEventdetail.getTimeid().format(DatePattern.NORM_DATETIME_FORMATTER)+"."+pqsEventdetail.getMs()); + eventTemplate.setOrgName(baseLineInfo.get(0).getGdName()); + eventTemplate.setSubName(baseLineInfo.get(0).getStationName()); + eventTemplate.setBusName(baseLineInfo.get(0).getBusBarName()); + eventTemplate.setScale(pqsDicDataMap.get(baseLineInfo.get(0).getScale()).getDicName()); + eventTemplate.setDuration(String.format("%.3f",pqsEventdetail.getPersisttime()/1000)); + eventTemplate.setResidualVoltage(String.format("%.2f",pqsEventdetail.getEventvalue()*100)); + eventTemplate.setUserName(split[i1]); + Map eventMap = mapper.convertValue(eventTemplate,Map.class); + eventTemplateList.add(eventMap); + } + + } + + + + } + Integer companyEveCount = companyevent.size(); + + List companyLineIds = companyevent.stream().map(PqsEventdetail::getLineid).distinct().collect(Collectors.toList()); + List companyLedgerBaseInfoDTOList = pqLineMapper.getBaseLedger(companyLineIds,null); + long companyStationCount = companyLedgerBaseInfoDTOList.stream().map(LedgerBaseInfoDTO::getStationId).distinct().count(); + long companyBusCount = companyLedgerBaseInfoDTOList.stream().map(LedgerBaseInfoDTO::getBusBarId).distinct().count(); + + String companyStationStr = stationVoltageDeal(companyLedgerBaseInfoDTOList,pqsDicDataMap); + String companyAreabusVoltageDeal = areabusVoltageDeal(companyLedgerBaseInfoDTOList,pqsDicDataMap); + + double companyMin =Math.round(pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).min().getAsDouble()*100*100)*0.01d ; + double companyMax = Math.round(pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getEventvalue).max().getAsDouble()*100*100)*0.01d; + String companyResidualVoltage = companyMin+"%-"+companyMax+"%"; + + double companyMinPersisTime = companyevent.stream().mapToDouble(PqsEventdetail::getPersisttime).min().getAsDouble()/1000; + double companyMaxPersisTime = companyevent.stream().mapToDouble(PqsEventdetail::getPersisttime).max().getAsDouble()/1000; + String companyDuration = companyMinPersisTime+"s-"+companyMaxPersisTime+"s"; + String companyTemp =" 电压暂降事件%s条,变电站%s座,母线%s条,其中:%s,造成%s发生电压暂降,残余电压范围为%s,持续时间范围为%s。"; + userContext = userContext+String.format(companyTemp,companyEveCount,companyStationCount,companyBusCount,companyStationStr,companyAreabusVoltageDeal,companyResidualVoltage,companyDuration); + } + + } + }else { + userContext ="不涉及半导体及重点关注用户。"; + } + + + } + + } + + areaContent =areaContent+userContext; + + areaContentList.add(areaContent); + }); + // 或者直接使用 \n + String result2 = String.join("\n", areaContentList); + bjReportDTO.setAreaContent(result2); + bjReportDTO.setCompanyEvent(eventTemplateList); + + } + private void addUserDataToTable(XWPFDocument document) { // 创建表格 // 填充数据到表格(此处为示例代码框架,实际需完善表格创建和数据填充逻辑) @@ -193,7 +374,7 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { List dtoList = pqLineMapper.getBaseLedger(temIds, null); long innerStation = dtoList.stream().map(LedgerBaseInfoDTO::getStationId).distinct().count(); - long innerBus = dtoList.stream().map(LedgerBaseInfoDTO::getStationId).distinct().count(); + long innerBus = dtoList.stream().map(LedgerBaseInfoDTO::getBusBarId).distinct().count(); strBuilderInner.append(String.valueOf(innerStation)).append("座,母线").append(String.valueOf(innerBus)).append("条,其中:"); Map> scaleInnerMap = dtoList.stream().collect(Collectors.groupingBy(LedgerBaseInfoDTO::getScale)); @@ -210,8 +391,9 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { .collect(Collectors.joining(StrUtil.COMMA)); strBuilderInner.append(resultContent).append(";"); temStr.append(strBuilderInner); + } - bjReportDTO.setAreaInfo(temStr.toString()); + bjReportDTO.setAreaInfo(temStr.toString().substring(0,temStr.length()-1)); bjReportDTO.setDateFormat(DateUtil.format(DateUtil.parse(param.getSearchBeginTime()), DatePattern.NORM_DATE_PATTERN)); bjReportDTO.setTotalDevice((int) devCount); @@ -236,6 +418,37 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { return result; } + private String areabusVoltageDeal(List ledgerList,Map pqsDicDataMap){ + Map> scaleMap = ledgerList.stream().collect(Collectors.groupingBy(LedgerBaseInfoDTO::getScale)); + String result = scaleMap.entrySet().stream() + .map(entry -> { + String scale = entry.getKey(); + long busNum = entry.getValue().stream() + .map(LedgerBaseInfoDTO::getBusBarId) + .distinct() + .count(); + return busNum + "条"+pqsDicDataMap.get(scale).getDicName() + "母线" ; + }) + // 用分号连接 + .collect(Collectors.joining(StrUtil.COMMA)); + return result; + } + private String stationVoltageDeal(List ledgerList,Map pqsDicDataMap){ + Map> scaleMap = ledgerList.stream().collect(Collectors.groupingBy(LedgerBaseInfoDTO::getScale)); + String result = scaleMap.entrySet().stream() + .map(entry -> { + String scale = entry.getKey(); + long stationNum = entry.getValue().stream() + .map(LedgerBaseInfoDTO::getStationId) + .distinct() + .count(); + return pqsDicDataMap.get(scale).getDicName() + "变电站" + stationNum + "座"; + }) + // 用分号连接 + .collect(Collectors.joining(StrUtil.COMMA)); + return result; + } + private String userToStr(Map> stringListMap,Map treePOMap){ String result = stringListMap.entrySet().stream() .map(entry -> { @@ -250,4 +463,92 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { .collect(Collectors.joining(StrUtil.COMMA)); return result; } + + /** + * 手动合并表格单元格 + * 合并规则:相邻行中指定列的值相同时进行合并 + */ + private void mergeTableCells(XWPFDocument doc) { + // 获取文档中的所有表格 + List tables = doc.getTables(); + + for (XWPFTable table : tables) { + int rowCount = table.getNumberOfRows(); + if (rowCount <= 1) continue; + + // 定义需要合并的列索引(根据你的表格结构调整) + int[] mergeColumns = {0, 1}; // 第1列(姓名)和第2列(班级)需要合并 + + for (int colIndex : mergeColumns) { + mergeVerticalCells(table, colIndex); + } + } + } + + /** + * 垂直合并指定列的相同值单元格 + */ + private void mergeVerticalCells(XWPFTable table, int colIndex) { + int rowCount = table.getNumberOfRows(); + int mergeStartRow = -1; + String previousValue = null; + + for (int i = 0; i < rowCount; i++) { + XWPFTableRow row = table.getRow(i); + if (row == null) continue; + + XWPFTableCell cell = row.getCell(colIndex); + if (cell == null) continue; + + String currentValue = cell.getText(); + + if (currentValue.equals(previousValue)) { + // 值相同,继续合并区间 + if (mergeStartRow == -1) { + mergeStartRow = i - 1; + } + // 如果是最后一行,需要执行合并 + if (i == rowCount - 1) { + mergeCells(table, colIndex, mergeStartRow, i); + } + } else { + // 值不同,合并之前的区间 + if (mergeStartRow != -1) { + mergeCells(table, colIndex, mergeStartRow, i - 1); + mergeStartRow = -1; + } + previousValue = currentValue; + } + } + } + + /** + * 执行单元格合并 + */ + private void mergeCells(XWPFTable table, int colIndex, int startRow, int endRow) { + if (startRow >= endRow) return; + + for (int i = startRow; i <= endRow; i++) { + XWPFTableRow row = table.getRow(i); + if (row != null) { + XWPFTableCell cell = row.getCell(colIndex); + if (cell != null) { + if (i == startRow) { + // 起始行设置合并属性 + cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); + } else { + // 后续行设置为继续合并 + cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); + } + } + } + } + } + + public static void main(String[] args) { + String temp ="共监测到电压暂降事件%s条,涉及%s座变电站"; + String format = String.format(temp, 111, 111); + System.out.println(format); + + } } diff --git a/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java b/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java index 0df4936..47642ed 100644 --- a/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java +++ b/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java @@ -55,12 +55,12 @@ public class WordTemplate { response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("UTF-8"), "ISO8859-1")); response.setCharacterEncoding("UTF-8"); // 1. 处理模板路径并获取输入流 - String temPath = getTemplateInputStream(templatePath); - if (temPath == null) { - throw new FileNotFoundException("模板文件不存在: " + templatePath); - } +// String temPath = getTemplateInputStream(templatePath); +// if (temPath == null) { +// throw new FileNotFoundException("模板文件不存在: " + templatePath); +// } // 渲染文档并响应 - XWPFDocument document = WordExportUtil.exportWord07(temPath, data); + XWPFDocument document = WordExportUtil.exportWord07(templatePath, data); try (OutputStream outputStream = response.getOutputStream()) { document.write(outputStream); } catch (Exception e) { diff --git a/event_smart/src/main/resources/application.yml b/event_smart/src/main/resources/application.yml index aebfa05..ffa4f8d 100644 --- a/event_smart/src/main/resources/application.yml +++ b/event_smart/src/main/resources/application.yml @@ -38,6 +38,7 @@ db: business: #处理波形数据位置 wavePath: D://Comtrade + wordTemplatePath: D:/wordTemplatePath #wavePath: /usr/local/comtrade #处理临时数据 tempPath: D://file @@ -70,3 +71,4 @@ threadPool: WAVEPATH: D:/Comtrade + diff --git a/event_smart/src/main/resources/template/test.docx b/event_smart/src/main/resources/template/test.docx index 3c7d4aefb48d1542d684932c7b0b0d1ed8016a43..5ca61eb7ab923722bc11af15805f0db303e7d8d8 100644 GIT binary patch delta 25361 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

~Uo`HtBo(t&A)e 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 delta 106170 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%0D%JAmb3|&@whvv`w?ttJVQ%1?8E6vy7nRc# z@d7mB*^)jzWbU|c@|rq0JPTX+M3!pqhU|+?+OQij^D!JeQU6Gr+3#35O8QttBd8*oWVXK)fx?UQVS)w}~_q(%}@ zBBdCpf{vD!yVg@3k&JkhgH=kwI1a+k9Y-7ePMG($H(Fw4xR8f@1|$EYA95cwDpYaEVP9g zOLZU0ET1?ApUBCoZ)7PDq0l?-J=H(zei zVEb%-PiY$STu%(>CN>sh=x>sMU$B-&WpOL6QF&CvOb?bR0&V6&^;D+t@27v_i9ij~ z@P_UjQA0ChyUBO74c)ty4AlGb$NqbwS4CS5{{!m9Ce~I&3#axccmKvW3PbdbZ&0Iy z;~SvCQczRRpOv3-pPl|XMD&AN4~o7rZg-kKAUh-87Q9+}-5^#1^-?r5iol!^y5 za2r@nZ$iAHA|CE7jv~0O`rJ&jN$HBvA(8_3r7_Rv8%HGs@g@Ld!Fe$#3;=WXyufqM zCetRWxq?&Gz|r$76Gs7Np5vVW?y5k%O4p1V;pY_lh6B3Bl>8k%sT*9_Dk;eO}Cjs1eG&kn-ry(=IXYmuty!kB?ay?w; z>$fRZXjV&ahcfaUwh!Rz#VUal;)8bt>g{4&i~PbT$#zeNfC5jwRnGy^(+$gT#`s*< zymO<6sblD$a9Quc{~=C1NDil%jC!XF^76(t$3$~$j3GGvT>HHVcpxPXsvs1eCL=5dzxoP14|`w z@Y7AFlSG8%`Di+=RJVBachA8t5dm#AYgCMStN}U}r*Dn%hW2eHTzX-bp2Y?gaJNmH zqV8y%Cb6j{JwLFb)@iK$pdYXr-q21_eWm7m)tBW@4r^YKp##{;%2? zSud=?$+s2stA)z~TEM#7bGk`_&Z z^>%#UwwE^BJC)8UwYkOYe`#7;)_?SH+}Lj|*!x%eVR4n%ToJiJuE{m}e*6T9zQ4b$ zY3#O>md#6??9Hv+oh%&!>RuN+ZAp8qH0kGJB__2Pf_E4$T;m!WrVOHb0Cd7KxZ!tNz>aBq`!Bd31`wpWARVr zNxH=Pv!2aNQwI;V4Bx}!?pV!qKu)a8LM86hmnS;@Pv{&tU^LL3R;e|tbi4ypnE8_U z>Z4phjeCau7FXA{)^D1lxoB7M*}F93X=)C)+9hcmSxf#plEl{H{S@%2kXvXvV+~JA zE^*rE=<>;_M%G|l_6ZfXu%v=yQ10PbZC{2oYD(5-{Es54dv7F)U@pfTe7}by^SLfk zq0Q1q!{1AR)NK40wWoLa#T8CwwL7$1eZ=r}r>HZNJ)^&^DW}#|${A8`B{HRiuC;ip z+zH*^e&1dBKyr&9+u+F5b2kkrfDWIrM~#MVn^_Wh$)r6M2>re3acUUc5TUD`qA-JE zR(N41Pro}8HtKJ{6rsANSFpQU7Wzb^Q)(Y)OP^xv~6{A9D7F$H)QOFQwN%^rCk z2Bbv8X@Z2%*7(-Y9ILJPe5c{m;`+VVUhcN4!272Vr+I-Gx<tI(U|A z3z1hyCxJC~(+KR2ItH>6=z5LdS|Bi;SyoY^gH2}gLeoT2*R9b{4Y?&!C?ER16;-(d z*g3v<5H+CO5@bYqN`)d;QDhX{0)F*GzY#j91k0-0V)v&+NgP?mhHC!I#j8&K`A-ycETmkR|H|=|Q zOoYjA>{^*~6hWmMCCG{@4$zeqjX?#M1}m8+=LmuA^yVd&twH;pDSW|A%}9;bUCd-Q zl>iET{sK$oc3$Q7yFEp1?IWhuF}H@b@8U_NkDzk_^8K){CIk;N;~1G*sBm$9!7@}bz{~A`IZUA z7FL_?z>Lkl2o2sv9GPHN@CbwC(Sua+gRpvvD%f5w(XmEn0CcZxd}AfCwrKXfRG&7K zkQ<1865VQC3eVWoqO^u#(^GVt@(8c{Oa8-moH+lST3T;WSX1|*%lykNF!-(rY(;EI)^s-)C*t&L!?eD_LFH9DB#i@fVV zEAL&0-_Kq@U1s1u`!I=ibq%S#bG34^4F;;PXV^{jj9Ydk@fk2y;o^cAI(eIUZN33i zib_<9g(&Ss0{NuB)~V2U%{qlxdh%**22HN{(1gL^$+u8%F(Bz+?Yegq;HfoD7AsuI zD*rF3$8_%hA@w+J@GcXb4A*!vuG{}qE%;8p>OhL#U#-WaUp+U)U#Um&+7)RFfYydY z@@N0EZ~RO)>wSCr;OQ$P%9;iDP4Z$j-W>tjIN~Ud*S`*?@1GtXJ$>b=ldbk&tnGf= zG1mRloQu^!17#S$%Ewf>O1EFCrKh(g2Lokm7TS42?XH>$`dDh$Cy{IOt6U08_ z5CYh%(UD>3I${igFFcQ7+I3;QcuXgvUL}J1Rq`*WQZcoPf zhYYtz86dj7UK#5vm<0fTZo%)O<&m`fy=JHi4^8{GK(MP6v`?29Q^u4_5qB&n6UdD8HP zF{P^%QE61?-?2ex7|z5sXDw+-v=&!^>Ts9+D_2z?UCzl(Vu5_|au3p*0xQ`EQopaH zp|XqzLcYoJJ_#DSZHVK`<-;8y=+sD|zZlKTShT_zr!|GZxQKlIQ()vRqy`#)U4}&! z6LD=HY*-SC09bXjS!J{DCYpBRD1Fd(+_XVKW5EezK^e8;Lg#mlqK<|J)JNP-gQ=7z z^HF4<9oqCvKL2T?!hT@AF8T!zG3z`Q9)3$mKc0g3eJKi;>vQtvW|yh*$4Y)}2J-pg ztkkGt|LD=5hpbbm82Fj@e}lj4_H2spdI0)w(l-X;3@|k*Av&YCC)kS0_6qNm7eIH) zDPb0lRaq}T+qFsFDH+ds%XZs4@iBW+Fgeli^Wh5UF!{LUoDdaLETni?ult*N?+?TX9j3UWF16vHTOnHM8QCrEjqpI= zkFw*DvEP>Sy)Z*;sXUqc8y9CN2Y+&P*f2}2odoGMm_Pw_N~*>yu+ zV4-qjl#%4IVXByx7h#Ox>20H6g8#6$Y`Vo}D|ILcImTng7x)x8S_Hx}O2%2`+rL@i z9UwG?TRWwjCY8I+lZWl60er(uAQa7L9hd-~m`ZZ%nr~hcz6q(XVLzmIPI3vXHVG5W zk^=vmf<-O%AIV!3O~SwG;4=@B9EsI*=UBu_!bd-CrtbeNgzA+%SMn9M#klW-&Z;C8 z_s3oxPXWzUqoC$32{&Eab5JdqplXwrH9waOQAn(IlryynURP78ib{kwHI0|n>HxPP zQ2;&U4BYMz#^>|1p0-{&D8?I47{3Lgc-cferXRr%;fooc)=$2Uk>{-wW07BkpjJdM z%oB_=H*4QV((_>dLF(5e*up2tvM+&oP@aFzH5PC&Mv{m8+U9_gzMX;ngd)X%x-~{w z^bncThxITuR}$P2Ok5HU`FIrl>9VZ_LN!_u7!65YjR|hIyQ1nO+kY7d37SW?J@18~ zZ)u`pzEb=Y=S+X)Ge@}z$Hv6tZB52#lGb9-z{|cHO0V;togNo@I z!=wk`$1u_#jcDm^+0DBdUceCLq25I1FSWM3L@ zTAA(e*~Ttq_V+l=WL6ApLj@lw!9D^k8PcmutQ=7xH09jv#ZT6CL?YpPT)SMizTLsqn-&E>$7$12~y zaf}(~(#2#1?db#E;E}NK1e=>;z4WDeQc`D^YzBa9!6@2dQVYiGf|UejAqmc**_1bN zl^L!lvgn6?U-|ea1w~E{9W7J9^4NBS?x{J{h&s@z(n?R0=(C z_{Z&zavt$Yc%gVgzviY)#hctQcu9d~V87hu!+yT_t}a6cUP`rF$XWZ!mW(dp)|UB~fTQ#krtt3Fem!)9Of6PD-`Cv^Y3+|Ame z!%UOU9wbxO9udVwNd?z@yv^Lx{k@pqzI~80yG~5J2w3?!&3s!Yq=cUDS%E);WB8!A zzr3sDe>pg7$`1x&XH}okso(i>N8ba-FPQIH$m(yM(d0q?n}Eruz1TZPce4)dOMETZ3*=7E7e7IVSAKb{?M)p{Q)X@QH~s#Qe3qZnlX6t#k&jfzvXUy3`iydcS5ME{k3AR?WW zf%7wJoC*n*f+GgN!^>7eT0q@?mJ$GJ)AFwc^GfC|K@kSjgcrDj(q=*s-lZL4K; z#fUi5zuqeeU4MU-4O4)b9{-}$%ldhB(`QeFyJACZr?q4<)jtG%{({l_v7cxAI~;fU z|GF1Um=reP%{creL*d6!VrLpD;tiUNwoWc46=UV6%~eWLDfNU=Q2q%ll_$zS;=b_Y zHmXQ$0QNqtuip*3>OO^UrYUN_EZjF4-bpPWF=pI9x4fmc%kq84Rp#Vi78&r+(XqOj zwV7Brlh6OuM=x9N(Okv6=cNSbUWwUWqaI>DLF|g3t_CpapHXjp^MJT)*V`?=c#A6Y zddsZkyUpR|p6Sz{?O&GAtvm(Nj- zT{r$S!^eD~D(OjrT)L?YPK|BjN+Vy|{BDuPaM9}SpUMoDxZ-z1_>ABF;8@YH?B+6C zVP$8QTIH*|WBGjn^Vn-_mJMH5C};I3AW>&z-_+4^|NPw+T4nUnz59;ves&vcuOOZU zIB-|Bg|(%d7rPR_if_i>E8l7OOIR54fAEzXG;x#+dY2H|y=A+2mpZ6Aw5wkd{0q3; zV3!wTfu%)#zVa?wYqZGl{f)5iABb}7h6kNwx$coR5l|3uvwJ7bo@E1az(cJ$M5yG!=99xNR za!||JIvfqU|6aRYZss2SK4Sjue!3(Da=-mawX**E%yOXK2%LDjiF2QwFUFFeS_b4^ameB*i8eZxLhFyZmHV~rUWX1Bx$WwX=Ieyd@i3sMvCiWJIj z6VjaN3YFSm7-Z@;AS%ddhWHu9YNS1oP-T`l|FmI|l{vls`{C1}M$YGir$<1(;n4#! zOr7%|WFK<^YR@3jON&AbXx2W>V&NQjX-!NzJR!8iX|KzUAJ3e7c6?7@6*A+j?2wiD z9q*a`V0I7U}xvQD;%eV?7~oOo&;AEx{o@#LuW_K_m?<unfJC|5&z!2o@d~OrO&dW<)IlTKZy=LY9d|wyH4#@CmIE*Oi zkf*aAQrnHcJVFGV@P>}Qk9!NL*#4>f`3W>VfqgWqJwqXOZR(r9k6X6R(wbH`RfdG+ zqL~r@r{ZTBeJ-t!Ptx8%PSB&iC7SAnwB=i_4LW;(NEWA@Wy|*3GySK}TE9~9f1EyM z2OvIg`A0Pf+Z_@8X_igEv|k!$+ziHd5bjznh#Iros+NQE^he!I6wej!MBxAOAVW0D z`D9fJdrlR8%y?6rjoa-0wd?Q^5pVVh@nH(q$(TzW@FU;ya$^%xY+1S%S6lMZJbbAC z+ZV4g!E8BC4L^yz{x*ytJH6zMnmhNGB8PmfMLQ!uS{^wG%t8lsI#vrB zuqZCTudMc!)#Y!FflXs8`~5Y)uV`NeBg|{HkGXdsQ@36uIiFhV{*;-0l*pCvakGG} zmCngDOSd-B;0Cb$3upFG4ZVa+A^&KPSt;|I&M!*Lv)z=-xcit$^W z8N#x9662fqpZ=U7&XEo{9?boHba;^qT1n+{E>5jQg7xLQ^aq1_Fi$Sig$ zRlp_bbz0^Vmvj>dV|DLNH5T z9DI)$Kl(QNTX7@NDw;15)B(=cYjtt6H>NwZ-H3}gyiH~a!e~iEgJ!8$LN&Iif4RY>Rvndy%s3kVo7L8cDL#YO zvApSd6^X)*P>B;TZKB!r2DR=sxhWYS#dG{RK5GPOqfoRQec_SjB6#zJiTZ?A#2Z&k;~vz))O7<* zio}~`FYjm(uc_k$%eOL8S9!DMidJq;g0ba^8vwhJq~2!UTmvm_CziJVfbk;7-5Wj4 zC9|Cb>is5^;BC{;AZFZaBLSX`YADgj(KMo2#7WR@fM>`8kV)su$nDZUAUm{{a@uvo zmiaJcx?Rsyl|&S^WSyMsAdyD)f+XZ(4a27Ek$<*Yh?~c=H?BL zQ#aH+CqY!DruTVzclvjC5`@zd2`?N8GZ?>E%letNCDDWmH6Bz6OfTUd`JB5Q{(7kj zW3d4p`x(JIKojLQYE?*BtpAOuECp>tN!_t&gBr0?o#WOaUPjJFdEz|m@j}eQz;uVl z@066y9bY5Q4}}ROPP9`g3Mw4|T|aqO^YpU~t%aBcc1U6`c=Ff#^IQmup`A++y%@d%?Q>RM)Zc3gYS zrjIS#O63DJtj%9f+sO#VuBim9?oTok*}|tu5##NFLRjz9f861^5M5BXmHOI7tDw03 z2Jfe7Mk*E}RfZVxUlNZ5k_8h*fFYgP)STsz(csR=PR(xcWOgNl8QPcjZv_cC-1>b4 z(Avj*Sng|fiKc6n`!HPPyc>5ijCkjwx?77)fg07Q$NyX?tSAM)^!GfmwCm)K8BU2{ zx2@h+#1>f!yU`0h2?LRW^^bKa@6+R$frC-%x(xlBLNQXfgGWQ7_g-Z;wc&c3Hjjr0 zpa)`iqF3J^|5(gM1HoY`iV?IHZU{>B2a@LBQfAx?$om!4NI7Z3TU1@7Viv23oh*oN zc%N`Q(3Q+JVjx!0&=g0E#FYh!>-)DTyia%HL8pqk#TsK~HXs0r#uPm~{zrmb#uc+{ z@|iY4zs*X42Hhrxm$cFQv3h9!u7>nP^?jqwfe%g{0N9#WjV!ez;sIn7R>IF=LKP!% zUr=H!40_~C%SMeE1v{8Ao=yd=i3JKcq=X7C{A{tuY3%BQV>!XURzX=}SnFC`qTWq* z(F}P!Ly*Q_f?{=o<1AXDu5`P-uH)~6YmZed7Z!az51)5%h5!6Ie&To}-7gg8lG$cf zXn|ofT(N!$3C^$pKIDm_gH;)SU9nX*b>vYXo0lF&SNaHLpTI~n;U{c4!VT0z6yHWY ziRbpieHGjpE*WhPHmoax%CSm5oj*mw@4XkDPx9aWgSVU8X@4XHuFX=pw9I|sk!d%6yi8*#G7~zO ze^i_K;=)tU4r+BY_x@kYXh7mf&R&byz!lDv<*;~WCT&E&+07xfQM&TFP@z7Www!EBzWqRw^&%DT`~H-0N3P`sX8+y0-tTbVcR0X&3|$qqm1a-&w*}jW zw`9Lk+&D_Y7lUswRgU~BQxFl8k=v6e>p`L`aH5)fSc7Zv`xBMY#gt@EH7~6vTIDi2 zy!b}B_R5p@5`ihqUzPzcT5*<#m@n>v`j^cdr_%&tJ~RjMVfV3&W%=NmB!;X<884qg zBB0F#kwIzHv&Jz7PAq`^1dqx_i z!+jesEkm=6H%3J%4p~noO(HB= zv0st|j0go@(@DtLh|KIU+-$fVZ`)@iUq&7*uify{mJUJ8I|{+JrHg>Fl(fpK#9^55 z?tulhW!O0{T@}$%3gvtMTKyiYi;BXC7g&+AsL?T;N|SVQW7LQQiP*}Sc~GcOrt_<1S$Mhal9X5Pm-!IW`?Dpt+ZJ@@1V>t z)BR|+J{?C-7gQ%-72qumuPu$cy%2w3ezK8nQ&AjI1#63M7}#rx3vdA^H1J?UJz0Ao znYT-9hG+cwg%tEq6i_iRNhomSQ_9LEo`Z)@f4hV;sg$R#C z&3L*Me4!2-ddAChuc6BUMHJma8Hp+Kz|c#ZN|45 z!`9U-o{EIfU)R~P&iqyj%19_fDV76x=Jn||;Y7kNs8^vKfwUtJRKbq4xw(LED#5Ry zjV`D&N9PW^iSiJ>EkV8KBAz7*mwtL;w8;1VZJZsn_m7!nHJHMO2f`Qul_$f{h@U~3 zZQ^^L4umO&HjyLJYj&Y+-&x0%^1|i6pVER|PV%Uz(w1&h`@yt2wW4-I#ipW+yNqi( zs~*NpG_Wy2a`{5i*H3#!U9iCrsz%!94FWhpOat{SL;G1g__pzqf;d+vBv=r57DgmU z2%Zn>o})rPKkfwBh3RjWOo%wZnJh*C>&Q7IT5aC-f-Z$90&3DUX`>qCW=`4z!4X5D z4UC~;Q4*i0>w!$gKcjh?xL6&j^h$divXzU}iYc$plcQ@x-!at02`>6x*=3Bw{(X-%9=DpbpcXv{V zzW~d}lWFx!c1d^CW7Mu&;O|Lf3rx1qxHbw$eoJOK*1wAKu>ziI@t?&F{l#OW-XQ1) z3JPO>gL!%cn%6--8?Uxxv+19Z4TkULMrAN@1aHQ^X;Cs++U6;^$L`iiYVKblrJ;+N z;wJ3l0=-`a)FfIk>(-=NIQ?&ddK(h{q*u?|hW>`1Haat%AdW2w+QjxbKpH$1si64~ zem(VpiUT9ALxE6bE|P**6oTgksb5p)T%OYpKV`3*2Zv?iKs9`A%v&YPBnam`VZvE7 zD^u4%CV>sqV1P*gM;b?#ewTyuWua;ds$gtP^E%roZ#eye5RQmq3juQG3qtCngL@!h zS0ghxF$*w~3XPEA2$MLl49lla_^0a|g3rOd=wYD?)a%y|ELuk{_Y8P=O9a`6aL-BL zwjrZ9*}3GBTJ?DaL{y9?jYhw%_OYXZ(PxtWZ(jF$5}7Od`E(UO6z3!8qkVvLNV0*f zMzj8TV(cYgFMR6)HIGGBlSg1 zAbH-ljfMI#EPpac6MH1h@qDuJGO-8ZkZqC#u0=2}3vZhZN2V?MPUL%5h>7Ze+$YRQ zi^qlz0c>QkLe>u*KU=!RW2NO&7F=6o;M3z&1rmgw%9my>Ev;y%a%afq$p${*ZBD(mhf)YKE;d@!ktGjm5j=!Pu0#yG_WP8o z@$vo%30~_=kQ(48%sNZT`aT5=mWG!(Np4>v4j#rvfEi9B8;8aCWVeV1iq#l>v+RO5 zy(K`mH&*)n*sR<-Iw$eX8?*iHC6Q;VX%O$_v*Xo5_kgd<+DV{IInS3T?M896m@f{Z znQ<{tn9!D_hXsNem^ThlKplk?KU~HlE5O7RbP@hr4oI>%l7^*OcV5 z_}4Z(=$|cv0i!E}wsFuz37_muwuvWkgTJjf2LJTdjW!G3QzwU;={d`)t|$idS6_{= zybd}bGGbtM(c!Q+9x}#0uUhMPJ<2GeX_Z5*bs8d}l>@lEWQ2pNE6Mj8} zyiS9m=ldnK?jekxK;ik%d^8Hy7(t{V7RJU1M{KBcR4cO ztmqS_SM&(!Br8I=_BPR9aquqQ^}ue=_-7*na{jGu~TIUa{nwvtw?sOz(; zsC=i|qSu)fgH=F17o#9j9(g6V%v5`5w!k_6wzFP(041Frn|5Ys`VZx(1JHGULw4ub z4NK1xO>XnpDmD_PSgLi)d5%{1t>fH4sUKMy;2HUa>$T0|D;FLmY^q(--kQXWXcf=x3}4IANZRhT#um2N$#dJJ z9mVm=6rNRlLNcddhh3Yy{8`5^99zap$B@g)F~O9j5*8_f9pJ6%cT`!kqo~Vs7)yY6d71#l;WmN4xcvw=g{av09ve56gd> z;@&`Oiu)IzSYC4GhdV@%6YG5FN58^fQl}tPZ=j-jIuFu0X9uAu(A!1T@y&`KD^40y zjBIBHjA>WXRID7r*h1KR=CU>>y?)^f7m9o$uNlK&L61iTrx6G-ts>yOT>y@_I_#{E zU6VbAjtHYe6_1rXc~qnDZgKmn)jmilc&lIfR^L$P!Dhlc#*VD?&pPOCa03_N6d!pV zCEhyf8ty(RJp=<$1*SVP(Ry0eTY(EtCys{t=CloCh}Zbz83jFrUchFv53W`vw1pN< zMLWeJ74eOwJ~-kK%pcQ#EbUkZ75$VMCXv7{jVcS788qdRdzc;LZOg0=EGE;SH z)}T-f6Hv__$q1g*`u>z_$CpP*ok|9UGV9OR!$5!l8x4pPMFYzZ1-(Yw>mk*_im~64 zUn>qfqYDDV|Bbl7=v-&j^%Zm);*WiYV01dK804bBWRUCS2;W9kM}%;85Plb-wa+yL zLB5|!11dc|r7vixXOsByO3XBM9z+V%E5Rt(W>LE*PmZn{Cy6Z&v-Yp5rCg;Oc<{gZccSripfM-&zBE{+ zcqY5|a)uva#i$osA5J zU-@1ofUzv#6IxUT*VWe$iG4{UTm%GORVjeDUoFv*fJ%@)aCCsni-~l&RhYy^O zC#dO=Z+!xzGpm&NU7eMwL25;vLTiW;qos(+~z2oX`l7 z4qrJd>HTXsXZ&V5?7{APPc30V(!Ow};BoHTuJrx0sm_!D?j?rA!l63DWS-K375!tQ zt=ftg8sXEkBj5rg>nQ&Tj^&v&%HQ=;hRJ8Z_-Z=Rk>8M=^E}qbba9#$D5SOpu- zpJdJJR4P@fik0gLDRj$QMgQ>bY)xA<#c;Rd7c4e^*?-Zr+nU z;Kj<__m8M0`|@yBmkIcJ_#HS|9n#hPeQ;3P0rETFWxY@5b937dX68!ee187GE_DN* zoL;7hkkxAgU(smivRg$u@4ZV5#9g0L??%%KywRCRRcEK#Y`5d?H*f8w-OYLrCM@{c zlg4&4j8D<-ffl)rxLp_P#mu%W?;#}fn%J)@(QY9IgdZS9OkM-u6(XB6vD~%#OxQi1D15xA2G=HNcK=fqW zsEt(t)-d^ue6GUgV*t(8=cOwNP7IYmFo*iONWHNJ*~sdUn9~LrTyNuT|Jw&pk7rT% zsE2F7#YoZq?xq4)98nWwV%5HdaH+)=!@;^hUt$1|sS3_%ASyV1EbgO4=|1LWjA0)$ z<1qdTa#ttL^z%J}3q8_Jn=rpo0&L&MjJ^l{_A!RxFZ-M&o)(NOZqc5a%F>?F*guT7 znake$6Q%xCo78NIE#M71@PBN7w{E_ld}|)FUbq~83R(RVtg`OD9{+bb5)@JV&(dR1 zv~{~YD5F7LY}~INh32o`m>xdDgqA>{EJQL0(XtFycW6=(5-S%4aOXW;!t<9IkrPp4 zx_r`9U-?+#8A1DS*DzuS@zM1;vvec65Jl)Mkv;TZsOOGB)hN2Ty~fc;eMCtI@(*Q$ zzme5z4e*ir8MQ7r*r$m^G436j(Nse^G1@d*@}bfM_vv@;|AEdyNqm;eJD4>VhDc=; zZQJJrDsg}aiGm_GDG0N}6y=mM7PYJC9c_}Ssuy`-yP;Pmj$#7MxmStPmG8S#2wHYE zEZ!@f4hGqoO}J$|31StyxClTdpn1gkTm?fr-C^mj#d%8s1>XxHLblp+88^$7Z4?KscBtHNn_7%cm&14@n9dBn&n{bO| zG<-V0*c=PMxt%fBbLxx8q58*i55n8_jsRa7Z+^?MrM%1~+J`>J5Y!P{5|(o{jD7^);R3OHgoBJ`p!L9!M= zI9X#A34&ioD)k(exCwIRYzn8CzJqUrrSYJuH$I;Ow>WuO>cKyD<1gCOJoPpr!q5e+ z9Z#f7M=SmgeRgB6!|QwX{H~z_nw<$&BwR6E^>9$p&GUT>wCNDNom#oORC-=^FS``% z0NMfHhF^(q91Tj|dj^!&zx$4PftO8$L|bauV-~Qc7jT@1URap!vd%|2-yYeRHQw5| z2uXL?>4B8ggws8cO$=5iVw3Q`Ai%E7z^Vd4&_U)M%VNqZu|l1VW>phmdD5z+mv;h2 zC24OOV5@*jDxX+AsACg}zDF0XPdkndG8&HgA20-CO=bWe|Uq&%ZbA&Ti5qe5j; zj%WsXHBn-z5KfDCB1P5L?nFVojlt4dEUp0JjbJ34{7y!Obkn0z(;4VpayB({V? z%PSv7f!O;C;W{K{25%QkbNmgq+=_(K%!1)tNW_wG?j49gxqkq3`8HA`+#kt&wYB|W zI3ymFUXp^UH?lJO0yf&Zt<3jFvY69A@H{G{c;j>IQ3bw|Z&*SDcgNfhtvj77oEVr}cgZ}` zSdkzBK!YKuj^E1(eqIyp?vPz&Qnmj&2#zbj#G06<+s-D>4@dg%LFgAwB0*{s$(CKr z92X^R^#6j^K2%)+wiW65uO;Ks>&EM7kenj;3$7^r6X8m(62aE)Z=E3IJKY0WHC*8W zkhX5lyK{9J8rH&(8P8TkogH`#Ug_W;g7k|4mM3^Qk z$p17wrXO1+@&5VA7T>ee)7STWX~*8j&H{gwl`o6mD!Ppqk0r_EaXmD+9}MzZvu^*d zyD@wN3EBwu%RekeO&fDy#kXlD;zC-@_m4VL=)W7ae|d5p`8PP{vXsJ3_bvJly zLxcU^N6NSGOk@bN0~Digf7~j%NKWmWMlxZ*SrTtkMQC~$(;FK~G--cITe>gceeY{; z-cW?y)9EfKQS#~JBA`6Qckc83hJLaBM{9jsK!pN|%I#G)m2V&>hfXnL zm_+%P6t?aFA997Cpu67)dLkigsX zA8C31bKPza!i2#KEKLIMI3e-Bi8m1bUgHsW62uhlVa>~vXi z<0FdaLI{xyOrK_pVPy7NS%Y7N0hZCB*s53Qsvmqg7|6}2Kmh^z#sr$Ly!K-q+h^_X zg6HAxA)(_)LITAbXhhaKQ5)fgyzpU{yV9n!blY98@qXyZg=u6zjJ!}odqrGC0NoaD z+)J>IH}*wV03Eq;ICf$5!$h1NJm<7RREh_PZQ&rNGlk~xK8UleIq^ZV#SSe^r>3i7U>!e;fX2J1Fyl!$S-v7jG`kxC)8-2+e*GFU3IdL0bx(w|NWG;S(Z=%xyRU}eaQWIhdDw!n`(OQcC(oPn zS2%BQj<68CB*5QPEW%IVQ*Nu%6okyy657HEsQ`pPzOY(cAQDpmg)Tlwq056_h(nK$ zH8$TBX$I0pC`<<0D*?#s*g&UX8ltEZ4e%&wwKd+H#9m{fcDDMgEqr?~+hV{RmWrR&y8h$U2(^W|b~n#17N1fx zCDOa#=-bZc8I~Sq?Y`q6&b!)0Vpq@kY0qXe|49}{cl)Z{);m#=9Nn;GvD5bfxh}kgfbrR_VQn@|CVaBHF@nA!$4NFYJ24 zGxnzsX*|vU4}pKFv;Xllvy@;L7_E1zoFQ8B-!5oE$|?ZM#QUp#F^I+V1?;s+O}67z z?Jd@%|9|hI&6k|C>&V&X$Eg+#mSWwk5~f@d-p1P9uXuGT6Zk@ebts4Lm+Oh-K{{}6 zD?DYJ-E+pGKm|os7t}Gng z|KNKG_8MHYjl-xGna%AAWa{iY&o@Oc{<|HJ!>`ef*}=me^~p!?ujiw3$V;e_bo-^B z&}nd4R&kZQ^#61aJNQN!7K6NKf&bFpzCTozzamT5YGr;nRO19UzgxeM7CjA$@^sr-pmXs7tN-O<2zSwlsuz@y@Kvw2l23I586>9pg_N_lz8>ka~Ae7d|d(p8Ieeid7$1R z*It3ZfD23ieL8{|ys+?u7`%_B?9PS_UhB^=q!J>av{)y5wVr3K;GHBW<`a&U%7iMpni!q^?2f9IwG$(6ErTL&PlIQ3uY3t!1PLI6#^?-_ z2)vxm^WdLcI#UY&Yre`Wb^18>Vz&RWQ(_Li&FlHY(>eqi;g`_k5RrPQXElMEml?Ct z)>W<~1^*r(y$OI``ppVXk+RCF=(Xwr3oRbclIue2WfjYgrMzu^p6b13;}1URA}XuD zH;Ma*1N~?mrdb1*H=VQOkiY&gbmN3B z)oa~$E=&A~KPNP;R!%URxQ5m2rt+Bw{Q-TkYR59Ly+oczT~cZ#v=^=eE?XT5&PrX9 zMC>8n0SI)t*5#LGm?oRM3B}usrS4!Pd`1I{({mnvH(eR7!8 zpEvj`;AnFec=Yq+;A5TySo|{g=a+Sd-8Szpo7%YnKf2Fh(eYtiw(4pPV$GO$XpNr5 zkL@9d0zQErvP-vA@r(pmOzUssdzn(cZhV-qhd2_p82>K+xUsTVVxdv9M`-v*f0%{; znPPT|78#TtMrH=LebwdrCy_3YV2{%t!yzwurknG!bsHKV%`AZ1gkneNS=}DwHi1D; z{r;(HE;Ii6Z`C}7eN;IFrqazIx~Ht@r+szocWx5a-aB82se*bSZR!l`9#=_O8!PqV zwPhq8y-gB(?lq7qeDkp_P|p~Xj>!Rr)xlV$s@&r##0PX%Q!#CaZmg)>`jLWgKJG@L zMZ}mNR<#fK@lCgvIuwzRT(XrVyp}q|iY6?R<$zXvJ;d2Q>N&X_Q5XZZqzOBqvQe(f z7U>Q%aHh9sr_&?lIr9h-!=abqGjorvUUlKmK&mGpnAoX+ld4TCB_!z%E6iGjAkM3F!^wG`oepMm_@2$-x5y<9&}c|_AtJFaHkC9 zMB=y(UzVJXoW5kU7&u&B0uRz~64-Dj4Jb@N#xbvN8V*v15sWDowb-#4J=r)?r_G_x zw3>SZ?2&9TO~@BVsys3=5$;z^AD^5NM^*`Q2@;MTzly&w)(DBeSF6=0c69xN?F>X# zyJ$-)ZSGCAztgG`d{0j8gOgaL=9%$Aa3jmMDJSswdxLbKH!cW>vCd*C<);&LH@`K#kaf~?$|MT>agd~)U#hzrtbSv3e$-^)$^miBBhwdQWTd~nGCGrHdb$=4+hdX< z?_Pv)U;U%P^~JydPn0M@V|JTrOZSU}BNXL-1TMVh5un3y3JQ9-%wEIopMr7K@_R*M z_qIg4?R#)FfE$xWu}n4(K0Ko zgR-e*nc`sZ0JV<*JBLI}nhi9^?74fP9jfh;lEkxoXGSoVUa(jx>dog+v&F|QMw2c# z07nXsML{^!1??0{#hsiEUc!tYh_CVT9GL2cq4_~1gBZB;u|m_8OjU$hPAK?9teP`0 zuN_f`wnKi;9ungHYIY)Yt-*?m6L*rqd=5bIic(A|CUtUp_7KoOS^ouw z^YmXKZi2tzF1I>}T{l=1!^z0cP*N)V@g1i#O|*e~&9p>-?stHvR8lCuo7u`2?06Vj zOXxQ$hV7K;tv~7B6R*)dHj9KwwXDBz*O`PCmg>HOdhdk;6b-WKGoS;{^_rhjU_tu< z_v>`%qDS1AOwakwNv?w!3`rSG5?74u)6Lj~6hIuP4cIj-*bRPkhS`4XsU9qAND(dWlZsvrFT0bGS~KoFy@b5%>jO zzyco~Ul9s5h>KUkOOSPgLJ*xtzWTmL~(fKjftOr==Vd1w!~rh{mS z)2J3qTeGK7CcU7#NI&uhy_)yyv@LKtDuZ$mip0pa0a4i?;u1s@I%O(NK_{}5W@2qR z!!@M}N{y%Q7DV9#48AlEA3oq!=pa6NMuA*|U1~BTa9-n>k%l?`*|}>r)H%^mPzAfe zP;t1f)FyPvp~ik{zz~XG?#{BepiDa~RdRmw$)z7_gy4_E>Qkw%P%K`2=POzP{IsXS zk(rn|mSaa4IhMCU3|s*mPq#>nP-q0GH0;lSW#;yFF)N-&Q`4EIp|7l87_Dg9C}m*AoKSJ1wI;}^L2Bd zv2=pvB8kAQk&E>r@vBE~UP}Tic&9!)6}%%kFbaKBlSM;03fzh+gc1|TL9xfDneQYJ zCJJ;e-p7iZcFdtd2MrB_No+Pg1VNnR*u0DzT6;BtU)BL7-;!nnPJp#AYafH7(;|0^^iIfgY-KLryhnlf^#%Y}gHJ)2>mL(RzKX?eyc(c& z4V12AdtY~N1!elhYwJ^mUY$QkTZ#y|euY^H^n=LqM7NOFNiB?>HmcqlU zuQ~K~Medb^pI?SEgC(#K0kReG{6C9L-Fe5rv0d~uzoY9qU!`7}Pc(zvZ)&px{}@^i zPJ(L+k!PH@&S^c9ReZAb91Ay}4+r}`d3O&B=tMnXV(k|jIVZwwbLTHVX6+tjDpV z@Nd%UrGfkzaq{kl=L{CI7NhJmJ%ju{^D&t3R!FGdhV0n zWMd>glvS$rmHy78%1ZXIQ@--SrLb2 znH=bH8$alLdmj7x(Mt{eCLa-l>x02Y%X5PcIIy*$ zS^2)STYhc|%8&py}Tij`fY>te&El{G&hOYg)cyFQSaS~8SBtr34ZhB4SO7S>O znc;{n%>4IPj{vz)d>i=!Bn1XZOgz;>HQL(`y_yCE&?s82`lbF;44~#Im{o$f(M((6 z5Im}+Fci3<)WbPsG-R5fHdIb~SbcBhV=MMPU7Wz0-eiK{uT{fd*>GS<(`(QI^DPuvfsuVX zJaf%&0%HmaqS+7&BJv9mbz%vkPZAVl*_DW@ACyj+fVbWx-|Lmu+Hnz-KdbZ9HFopQ zNW8{Zr{Si<8h)HoQy$8V8PJUa+Abzb^75Kq0oD#V)6i!t4~T_NJ(wUxD2M@EydGxu zeS*4XNT9b9eEHnF13oj~O~W_qYa4Ji&40M?M&h$#bn%OVs{mu(O6rBul6q>B2OkTK zna|KW4UVVS4eXShBWj%Qg}S4i?arN01j6dLUw~0Ip^+i$h}H0Wuy4q) zWjNXNkH@U!v1D{rVsurRPBi9|EaHfvXb=Wd^$B6slTP6Z*Xj`}oYfc;snLa@ z0LaTWWxkc+u$}vy)(M)#>PzCFc=XzQh#~d0svVFfBtW$*L*0-pptO(1U~G8pd8ix} zt`&P&0kNw-(~p(m#Q>0WRt747?f1=j0eeLaV0PRCO5k{Hu|xFabElO52NA&Qc+yhZ z_s8t-^ttZmInr1h?Zp7f_5ADG5W{y`^-oKtdI`wZQ-!~h#EHN84B=FH#M~Zp;Don1 zUFCVj%d|P0W(LJ8PnfhuT|ScGIJjt*qWBh;3vrYx2* z$XMV4hVdzCPybJS-=E6f@9;^lRel~d6O07rRdo3)GwR0_vQfq$ju7Y^DgkLokuv8j zo5Lo1sA6V~R~8e0_;a#LdMX-1dFeO6Ohp5z0!1m6w~WNDKb=K=fWeHXKoP}d62-;k zFnu#)gzi~vx*AXWCR%Q}s}J?u@qELHpeWZ{aBDoA zftsepX~Q7W!drm4;l5NE!DQAW4x8tXUCl_p53c2Sw(BBxQkian6-cPI6d-mQS)0#F zyu$qQ`8C%uJ;Me_0A^+E4M!7zFtv>Ow$5fo1>7|jSz)AJFVT8Cf(8 zg7jS^31c*Nt22BR&E#e=n7O@t%=<{HzZp)}j<{t7%xUavq6K4=OXhzW^S}ShXELBY ztbK&L-1_!j%8<;00=bPZ=2tmP1N^fnvaISg1OB`G_FRd*RHe(&Q7M<)M0XzEd#@EZ zRc&3VB^@nD9qc`nz;(W58C;TqS7Z}t_^HeaHfh}X=9EZ(b90nBP+` zIq4yK?8&Seb%hCIhn-8v+$e<0zQ>mT4K&=ri0N$RL8uK{{SyeU(&rz4UaF<3CWXsT z6v1BCF23R!7%S`&ksrpe2F_~e;L_44;3xJPF}$%B?&ZEpCP#_Sgjs)MK#hrW8r3_V zh<-zs`c>SX>T6FN6($&gHmHYnC4A4rJ^Di z)h&nok~GDvv`f4|r?~o-nXkhz0gxu8i(7h{_D1K*jc(3!rUkNSGOu3tKhnYyqP7RG z6nsrWQ=_O5tcWZ7VI0sSA~tO~u8Mi!K{}7}58~lPS+oUSbm!a zTuSc)%frQN`K#6_(Bko+08ex_2b)RxdSh8jyiB^6iTg2)NeVNu5~GIOmN!(&(d?D( z`$CLNR#E-CcD9kV+^24Aj?owYp~T6c?QX32Ikm39<7Hm_1o@B2O@kIbWAt+Q`$;Z* z^t?smKXiqvG4SYulxK&RzG-K7?g%9#Vhx|zJP|(Dq02m zHOdM8f#BH78cRBP2II(D{P^Jrm{}O*Ovhk?wyYG!5m}6F&2Sk+U`qxQ%9B;%VdZM; z`xs?N;Hqr5I}l0p**P{(KT9-tRW;R z4SJtisM-=b(i|pL@UH6^;}tKfi09V&^<3w<5hfq<(2Rbb@KETynxbZsjA4 zH0y`2&ZtfMoD`MG6p9`X1AZ6)w29D-al`a2)g1AI_blSr#`vw&T$g+XG6?F^)9=!L zAfB!nvVH+K-w?u8rx?t2bjmXpMH6$}ae|1sCh|@x*y55TSF??gVo7>1)?7JZr(Q~Z zR62wOQLMD{r6&uPvu`375RoP7;S=J~(9cS+lT8i3I{2ZUi+FfSmWVYK@ZI~?z-Aff z_oWIfGX1MaY&9vW5YV^h?Wwg;GM=oh`-^x<&Y;;1o>snem6UAzin*QTr ziJHxgLcQ!qgJeepXtf&bVHA`-DQ__|yf+EC=I1LJ&({=`F+ga2&c!x+EN1qYS~7md zYV30v7CVp?hkR?4Uq0oDNf<8(1J`N}%h_p!;QAt0PseD#KHh%O;MIClu z+F7uQ8w^%`3@WrYsG@I$J&ofxviuE-loti&Tg}k~^UING05r5B2B%alM>94=qwgi1 zeoPg#T)!z;QT_x|@XC|qHo28wmW3^}5hMzkyA{zmF*NK>`Q^cdNL+6@EnoFVagaY# zF7&BfWfg??YA1mVyt$c@qqR(!K!5GfCMMEWuO&2TAq**uNab{1*I{7><^|1(T+orw zUWMDW;oD1bg?+R958;y)lfhUqnFb@2CIw7#uEztEh0e6Cj|-e>QD8mh^ZDhoW{UBy zG&K7Gw5J4hh-9WRQE!yg_xHOmf39C_T1%&j;HtJx@d|#uVD8=VcOy(qS|31_kvFSN z7_)~gg?L$D|N99tOdNavk?1Jm*q4p{7nm^XwAMxRv9&SG?1n8b8|4UAO99X3xO0(I zz%;T}+1_v^n~x`Qb6oLwC(SY;NyYn^4S%>O>h2!W5`fki0qkdHR`HMh*wJuKbBl5l z_{uHqhGK9oOAH?x1tF=#MwsTE_=V9#U!de;Q<=G}2(#=>=UZD7p0YX4r4$k6Y^vq= zo+jYQ@wDjhVEbocZo{(amep)kWzUH6l_VZ)xpRUJiFeHz zS6jQ!aqJkkvp`NJlG2xcH71?Z@0QY8aOp7^T&e(rODWvmEgkkIQ6l<2)?_b|s4%>e z#b~&_)9=n#pimQoE_7Q*DWDmjQ=yac41(H7Y_GzvN#IN~-0V$)QQ|=H5aa;q4QUE% zX`XHj)N%#o>mt%iAK!I`RX!o{;GJ+e1dHMvimm8G%I-SBtt^OGM8F&Um0W^nQ0o-&>M&FvXxMnT z7i{a20g@aSjDf+!aDE0H!x%J1MHBjK6PZsB_{{lm`f4{bTIEQt+4S6@j;Q7C%zikyAr@96&u8SA?kjA$exrZWWEBoC%nkhRX2qm*M61$nuuAewC@vSjRW>e)Srd| zre5Ck+0?7H_fda6CH2Rg6@>LJ&-FSvS0T?PPbH@H%uJFKzPvL>xaQy49&yqion9 z*9;BY$ldiT*hP^8AWT6CN2CR0W?BLh0#zZ~2RDd46;o|%;WfrW^)(5s)lRQcd|P)g zl+aJTFG0*BSj-8m@ER^v$K3Zv9T;G87Nm!2q$pBg_4@a3v6I??SbDh&)#T9CCpg+V zq^0Dzmo-Vcjv(tcvI3W{Kg2cIN|r6=8Vuut@htCt0sQM0(8bf=?+;8+TN6EJh>|4s z*JtMk%b`>lw!m=c4JBzQTsK;KCA$l36+t32+OiTJnO7p~ru#>x;BnT8uVOx#Bk3tUAayWq!IcXY)hsBs&OKhYMkZ+nViJW)B6i0ButR*^3u zJk8qB7<4W>B79d>_p}DKIpAgCiHk*xFK=pW4v2H~dun>l5;ho}E4gh?i8bo~5TpqY zmid>jaWw=+NCK}+biL(^UUCM|t2@(pZ+Ikv8ADjLxxtJfV=Ps-hc4$JX~K61(W~29 zH<}z*6KU@pZ-O?-w`nB*1xHeYDX#-u;1By~4K*{y?*s7+fbplc-nXlnZqyH`k03;! zhPpYi9<_x;+xxCYeE(B`XQo@TcNp`wSxV1af!jvR*w6(zX>?>nt1#Nj!b=UEfxK`E zSAu;9#QWE(nM|u;dBNpH>3+kKM2D3tk}2Uf^W~F`q=u?sFtqeTWNEkB79hPvTke+M zAapu}adFU$eVa%pX``mzu+RQNdEq(6*axv)Yxr zwkh5~X2xSFU_4eD&tk z@4P+0MdF^75Ef|@f*09}CbSDl&tCmTm{ETOH`6CylJqubVRJErKR!x`mjsjnWDfed z`pWbN^=%23z-|B5q~pT%wcPJ85B;|>PhRB?y-)=+h`!oXwqrUR%2+{!6yr&3)&a=6G|uDakkA zZSk4o{TTBe<`rp!Vi~>h#J4y16wL%uDy7YG?Z(XqleBabMTjPnfo(@ib;3k0YDD6$ zt$6#+j^XXHDl$hqt+v*kEm>NIw@HWIh5iC-j;XC*4jSzCRqFykFHZJ2!@=5Qi&eP@ z>|KN@e8T@mG0`Yse!OPbDXC^HVDfgMUh}H9Wnk|DcjS*8$9;EwjURqhSeB#Cq$TME zS)O^_D!FZK_ZAvifSh1h;}7Q*{e=l&I6Dq!Vq?Fex5sUmz?|EPCb115xe0Xq2uiyiO<-Xw1_@nwx_@)vEGZS z=ReRWfzHmq9IIY2TPV)kl?R^WMaH%saefWMtiOV>I<7nUzBzdR^>=%$m|kle-mte_ z_Z?<#elQper!{sIHLBxKOCUfn7mWF3mfGTGi%v~Fwr}6Z@_fIfi^#P%r7wDoh3oV9 zPGZf_cgnoCgPUr>hwmrCn~m?(G1Rg47P#S0dC`=uagA8YMCYxBK3CgLlZ9?bZ+6P@ z4jXp<{j@gn{)(&MQ!0Z`O9g?XF(?vJ19tayokRJ^!WXf=6L~HQDSeo-=4#a1_%L(p z5tGGykm~d2bNpWxDMhFd0j=5oEsNKi=gg;x&D`rJ95JCWOfuXWY=_a^^Ukys#76zz z{a8g0y0J`VrtcFOI5gAyyb%*z9xuTCA$RQSLUnfsmaz_h8>X85u}9NvthRWQNdt(r zm(Sbhavom6L(Qv}>=O_b7jea@dlwfoKM+^mKAWZLvA&96F5NBZ>WeZixP2x1JsY$A z{9qrXS zs@Z}#>06PoGFbl!!H1oy)}Mmatv@OKANLT+K8sQ#nhcRyw(6X@{PugtdQlRQ1V@fu zMS4^gp_GDFbYHtAQ<*UqEUq(uWr*ecQYZKjv3 zCaGBmTb5fn=ybKF3aBQj0_m^^RZ%Th$5s_O^5Tf(y8EwKNmA6=uK8gb5Zkr zH&V%qc7F!TPCu$CCb>gaM^jgq>7TXp4$ffP{(*Pj~0b<<~OUWX(ynz|pc6 zyrp4Xz#hTBe#J>_AoM1AiY~^{r!PyRK4u@U(UDX*)>DDy17$>G?Y%fNt~{IT=fY9; z^2#F|xT3br8$-}7r7Jmw&?1q03v2#hgy$+oUpp0|Cf;#waG1p|GvgYO z7PtDPeg2FqAqW%xOWeSqO0sIVJUj|(u{ctT=ySDrJ zpVnLJUc@UC55E?COFBEK8>|+L0#Ope#wY5S-tKtyT)>pMxI(cM=-URfImgsidVX*^ z!loH#BKe@2N=jm`2aT7KaapNUu%BkHxy1Ozd74y=?&Tx$hq-*PYCj%gw~Ab!Md^i; zw$bHU)5ACS)fx|+zLs55g1eB`;YDN(J8!VOm2~sB+oqXQ%3)}scd3Q_O{o1d-U0uJB*oL4SyxV|}w zNj<(-5UUp0@PM9N(cj(FHq^xAhOAb*VVUWUjPuj0WlzbB&G-UF2e1#MDMNRjY+EUW z4qT71t%T{~m)()qU>d4&+-H9WudZP%9iypcP+TH{#x0blO(Cp{-ixLX_C@bSQwZmx_o69;d(nH*6vDgcy=V&IU-Vuyg$OQs z!6wQm3jfdM1|h-;6yQHExtO4YEj{gAy#Dp7P?(u7pMd|jj0%Au-|5*oJjgSv6BpFb z_=&@JF&3F#1c=OYFi*I+DQx7Z1OzcpKwzR2twKj`;N7`_jjy3@R$YtLghadFDXz9kF53{M`NxCB>U4gu=7Z9Ze+aA zNjCnv!grG?kvB*9N~GD))L@j~efmKI^TmOKNwmxdWivDwFy|WCZLK<&pY!64)zgT} z2i*_WqscuVvX7>VSz|n6qJ~LfRfPcfo|*REQX{)*YRYk#)Fp(`6#OaKm*x|ZeGU6~#;W*)Xi*GK`2xTH&z>Brh_31y$k{FcJ zh57O?sgj>sF$n4Fer@1s?BKf20RBzWwjg8x!e4gBpz`BmE#f*KLShl>) z-2lW-xXf3pN_jWN%g2~gM;U5+zk~@weZDE~Q1A_1CYf6>VmEts_eFBcfbe~G%(h#1 znlmfk;I%p*_5%xe{|{a8FHxLIqQ21FngNu87&-(ELI+8svjPQCousY)oR7G7H)N4% z#dV^lHO8ftlH>~q=biY?Mgn0##lAPtU*2xs+~@;qT31%W*FX(>;d!^oBwlP?aZblU zT(vHao6hsN$B%(0zQtDx8=JOsFl4c!5T@pqaEpSpbcSB7?<$G0@gcXPen#(?i}48v ztaq1Y^%omcYU>eFjcAG zMNE)<-YfsiA<-=x3F-N7TUdYFMjBM;_+g+3)xaMy(j+#OcXLJ9xgsp}eckQ6%#jvx zlfj_tGd|+>n_JQf9fr@x!$i{t{q7@cld1z+{Y0EeMKLtmJuJB?86?{ z-SSfS)#aP)#mBrh8d{Pwgu#+v(G%y-)cG9$8@v-Cp6`V z-jsUlBH6B+E}N2|snB)PYT$ZWY}DvosuA*#4D|K)jMC;-p%1G#SPKxIR_twewKKml z=7%IPVBf^^;;3m5E>=p>`EpkrzKPmMxwx7$R!#n4W8PUfBB0<~Gal>WSFoB^9w}`v z7n71$veLT0Jxj8r(Cw!CF{5MpcekWh0u#C)JdixZxJoCtA+=9Hap|-133e2j#kK^N zGUn|U>)cBwJpfg?@5>>UlZ@ckFL&VOu-l1k9XLwTI_fB>WRQ!^%)j3p`0^kq5Jmv} zGoDKHpI+qIH~eS4gVfijHya&KH+STc z`}Yg#678#U1b@&0;G+Bc&tq7Ue|M@87&74Ia zZ=pao%{l({C)OAYJdZdWp;ui?P|f4}cO=JU%T9PQwC|7+qeG|}wgf@b=fPQQqB Date: Fri, 10 Oct 2025 08:49:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A8=A1=E7=89=88=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/EasyPoiWordExportServiceImpl.java | 94 ++----------------- .../event/report/utils/WordTemplate.java | 84 +++++++++++++++++ 2 files changed, 93 insertions(+), 85 deletions(-) diff --git a/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java b/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java index dfde839..ad9f2c4 100644 --- a/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/product/event/report/service/impl/EasyPoiWordExportServiceImpl.java @@ -35,10 +35,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletResponse; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import java.util.stream.DoubleStream; import java.util.stream.Stream; @@ -167,7 +164,7 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { Map map = mapper.convertValue(bjReportDTO,Map.class); - WordTemplate.generateWordDownload(wordTemplatePath+"/test.docx", response, "重要敏感用户电压暂降事件监测情况.docx", map); + WordTemplate.generateWordDownload(wordTemplatePath+"/test.docx", response, bjReportDTO.getDateFormat()+"重要敏感用户电压暂降事件监测情况.docx", map); } catch (Exception e) { e.printStackTrace(); } @@ -314,6 +311,8 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { // 或者直接使用 \n String result2 = String.join("\n", areaContentList); bjReportDTO.setAreaContent(result2); + eventTemplateList.sort(Comparator.comparing(map -> (String) map.get("userName"))); + bjReportDTO.setCompanyEvent(eventTemplateList); } @@ -394,8 +393,12 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { } bjReportDTO.setAreaInfo(temStr.toString().substring(0,temStr.length()-1)); + if(DateUtil.format(DateUtil.parse(param.getSearchBeginTime()), DatePattern.CHINESE_DATE_FORMATTER).equals(DateUtil.format(DateUtil.parse(param.getSearchEndTime()), DatePattern.CHINESE_DATE_FORMATTER))){ + bjReportDTO.setDateFormat(DateUtil.format(DateUtil.parse(param.getSearchBeginTime()), DatePattern.CHINESE_DATE_FORMATTER)); + }else { + bjReportDTO.setDateFormat(DateUtil.format(DateUtil.parse(param.getSearchBeginTime()), DatePattern.CHINESE_DATE_FORMATTER)+"-"+DateUtil.format(DateUtil.parse(param.getSearchEndTime()), DatePattern.CHINESE_DATE_FORMATTER)); - bjReportDTO.setDateFormat(DateUtil.format(DateUtil.parse(param.getSearchBeginTime()), DatePattern.NORM_DATE_PATTERN)); + } bjReportDTO.setTotalDevice((int) devCount); bjReportDTO.setTotalSubstation((int) stationCount); bjReportDTO.setTotalBus((int) busCount); @@ -464,86 +467,7 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { return result; } - /** - * 手动合并表格单元格 - * 合并规则:相邻行中指定列的值相同时进行合并 - */ - private void mergeTableCells(XWPFDocument doc) { - // 获取文档中的所有表格 - List tables = doc.getTables(); - for (XWPFTable table : tables) { - int rowCount = table.getNumberOfRows(); - if (rowCount <= 1) continue; - - // 定义需要合并的列索引(根据你的表格结构调整) - int[] mergeColumns = {0, 1}; // 第1列(姓名)和第2列(班级)需要合并 - - for (int colIndex : mergeColumns) { - mergeVerticalCells(table, colIndex); - } - } - } - - /** - * 垂直合并指定列的相同值单元格 - */ - private void mergeVerticalCells(XWPFTable table, int colIndex) { - int rowCount = table.getNumberOfRows(); - int mergeStartRow = -1; - String previousValue = null; - - for (int i = 0; i < rowCount; i++) { - XWPFTableRow row = table.getRow(i); - if (row == null) continue; - - XWPFTableCell cell = row.getCell(colIndex); - if (cell == null) continue; - - String currentValue = cell.getText(); - - if (currentValue.equals(previousValue)) { - // 值相同,继续合并区间 - if (mergeStartRow == -1) { - mergeStartRow = i - 1; - } - // 如果是最后一行,需要执行合并 - if (i == rowCount - 1) { - mergeCells(table, colIndex, mergeStartRow, i); - } - } else { - // 值不同,合并之前的区间 - if (mergeStartRow != -1) { - mergeCells(table, colIndex, mergeStartRow, i - 1); - mergeStartRow = -1; - } - previousValue = currentValue; - } - } - } - - /** - * 执行单元格合并 - */ - private void mergeCells(XWPFTable table, int colIndex, int startRow, int endRow) { - if (startRow >= endRow) return; - - for (int i = startRow; i <= endRow; i++) { - XWPFTableRow row = table.getRow(i); - if (row != null) { - XWPFTableCell cell = row.getCell(colIndex); - if (cell != null) { - if (i == startRow) { - // 起始行设置合并属性 - cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); - } else { - // 后续行设置为继续合并 - cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); - } - } - } - } - } public static void main(String[] args) { String temp ="共监测到电压暂降事件%s条,涉及%s座变电站"; diff --git a/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java b/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java index 47642ed..cd35cf8 100644 --- a/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java +++ b/event_smart/src/main/java/com/njcn/product/event/report/utils/WordTemplate.java @@ -2,6 +2,10 @@ package com.njcn.product.event.report.utils; import cn.afterturn.easypoi.word.WordExportUtil; import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFTable; +import org.apache.poi.xwpf.usermodel.XWPFTableCell; +import org.apache.poi.xwpf.usermodel.XWPFTableRow; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; import java.io.*; import java.net.URL; @@ -61,6 +65,7 @@ public class WordTemplate { // } // 渲染文档并响应 XWPFDocument document = WordExportUtil.exportWord07(templatePath, data); + mergeTableCells(document); try (OutputStream outputStream = response.getOutputStream()) { document.write(outputStream); } catch (Exception e) { @@ -94,7 +99,86 @@ public class WordTemplate { } } + /** + * 手动合并表格单元格 + * 合并规则:相邻行中指定列的值相同时进行合并 + */ + private static void mergeTableCells(XWPFDocument doc) { + // 获取文档中的所有表格 + List tables = doc.getTables(); + for (XWPFTable table : tables) { + int rowCount = table.getNumberOfRows(); + if (rowCount <= 1) continue; + + // 定义需要合并的列索引(根据你的表格结构调整) + int[] mergeColumns = {0}; // 第1列(姓名)和第2列(班级)需要合并 + + for (int colIndex : mergeColumns) { + mergeVerticalCells(table, colIndex); + } + } + } + + /** + * 垂直合并指定列的相同值单元格 + */ + private static void mergeVerticalCells(XWPFTable table, int colIndex) { + int rowCount = table.getNumberOfRows(); + int mergeStartRow = -1; + String previousValue = null; + + for (int i = 0; i < rowCount; i++) { + XWPFTableRow row = table.getRow(i); + if (row == null) continue; + + XWPFTableCell cell = row.getCell(colIndex); + if (cell == null) continue; + + String currentValue = cell.getText(); + + if (currentValue.equals(previousValue)) { + // 值相同,继续合并区间 + if (mergeStartRow == -1) { + mergeStartRow = i - 1; + } + // 如果是最后一行,需要执行合并 + if (i == rowCount - 1) { + mergeCells(table, colIndex, mergeStartRow, i); + } + } else { + // 值不同,合并之前的区间 + if (mergeStartRow != -1) { + mergeCells(table, colIndex, mergeStartRow, i - 1); + mergeStartRow = -1; + } + previousValue = currentValue; + } + } + } + + /** + * 执行单元格合并 + */ + private static void mergeCells(XWPFTable table, int colIndex, int startRow, int endRow) { + if (startRow >= endRow) return; + + for (int i = startRow; i <= endRow; i++) { + XWPFTableRow row = table.getRow(i); + if (row != null) { + XWPFTableCell cell = row.getCell(colIndex); + if (cell != null) { + if (i == startRow) { + // 起始行设置合并属性 + cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.RESTART); + } else { + // 后续行设置为继续合并 + cell.getCTTc().addNewTcPr().addNewVMerge().setVal(STMerge.CONTINUE); + } + } + } + } + } /** * 获取模板文件输入流(优先从classpath查找,再查找绝对路径) *