diff --git a/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/pojo/po/UpHarmonicDetail.java b/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/pojo/po/UpHarmonicDetail.java index c540e1b..80a9f39 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/pojo/po/UpHarmonicDetail.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/harmonicUp/pojo/po/UpHarmonicDetail.java @@ -34,7 +34,7 @@ public class UpHarmonicDetail implements Serializable { /** * 事件id */ - @TableField(value = "id") + @TableId(value = "id") private String id; /** diff --git a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java index 81bf5c8..aee1960 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataResultServiceImpl.java @@ -80,8 +80,14 @@ public class RespDataResultServiceImpl extends ServiceImpl respData = JSONArray.parseArray(respStr, CustomerResponsibility.class); if(Objects.nonNull(respDataQuery.getType()) && respDataQuery.getType().equals(CalculationType.SYSTEM_TYPE.getCode())){ - customerData.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); - respData.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); + customerData.forEach(item->{if(item.getCustomerName().contains("(")) { + item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("("))); + } + }); + respData.forEach(item->{if(item.getCustomerName().contains("(")) { + item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("("))); + } + }); } responsibilityResult.setResponsibilities(respData); responsibilityResult.setDatas(customerData); diff --git a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java index f535138..9489da0 100644 --- a/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java +++ b/cn-advance/src/main/java/com/njcn/product/advance/responsility/service/impl/RespDataServiceImpl.java @@ -622,10 +622,6 @@ public class RespDataServiceImpl extends ServiceImpl i } } - if(Objects.nonNull(responsibilityCalculateParam.getSystemType()) && responsibilityCalculateParam.getSystemType()==CalculationType.SYSTEM_TYPE.getCode()){ - customerData.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); - customerResponsibilities.forEach(item->item.setCustomerName(item.getCustomerName().substring(0,item.getCustomerName().indexOf("(")))); - } result.setDatas(customerData); result.setTimeDatas(timeDatas); @@ -719,6 +715,12 @@ public class RespDataServiceImpl extends ServiceImpl i String customerResPath = fileStorageUtil.uploadStream(customerResStream, OssPath.RESPONSIBILITY_USER_RESULT_DATA, FileUtil.generateFileName("json")); respDataResult.setUserResponsibility(customerResPath); respDataResultService.save(respDataResult); + + + } + if (Objects.nonNull(responsibilityCalculateParam.getSystemType()) && responsibilityCalculateParam.getSystemType() == CalculationType.SYSTEM_TYPE.getCode()) { + customerData.forEach(item -> item.setCustomerName(item.getCustomerName().substring(0, item.getCustomerName().indexOf("(")))); + customerResponsibilities.forEach(item -> item.setCustomerName(item.getCustomerName().substring(0, item.getCustomerName().indexOf("(")))); } //防止过程中创建了大量的对象,主动调用下GC处理 System.gc(); 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 fc4fdab..2736f80 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 @@ -42,10 +42,10 @@ public class EasyPoiWordExportController extends BaseController { @OperateInfo @PostMapping("/get") @ApiOperation("") - public void test(HttpServletResponse response, @RequestBody ReportExportParam param) { - String methodDescribe = getMethodDescribe("test"); + public void exportWordReport(HttpServletResponse response, @RequestBody ReportExportParam param) { + String methodDescribe = getMethodDescribe("exportWordReport"); try { - easyPoiWordExportService.test(response,param); + easyPoiWordExportService.exportWordReport(response,param); } catch (Exception e) { throw new RuntimeException(e); } @@ -56,10 +56,8 @@ public class EasyPoiWordExportController extends BaseController { @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); + 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 b7a3bfd..b97eba2 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 @@ -27,19 +27,19 @@ public class BjCustomReportDTO { // 统计日期范围(如“2025年09月17日16:46-16:53”) private String dateRange; // 北京地区总事件数 - private Integer bjTotalEvent; + private Integer bjTotalEvent = 0; // 北京地区涉及变电站数 - private Integer totalEventSubstation; + private Integer totalEventSubstation = 0; // 北京地区涉及母线数 - private Integer bjTotalBus; + private Integer bjTotalBus = 0; // 变电站电压等级说明(如“220kV变电站X座、110kV变电站X座、10kV变电站X座”) private String stationVoltage; // 发生暂降的母线数 - private Integer busEventNum; + private Integer busEventNum = 0; // 残余电压范围(如“16.48%-86.99%”) - private String residualVoltageRange; + private String residualVoltageRange = "-% - -%"; // 持续时间范围(如“0.05s-0.086s”) - private String durationRange; + private String durationRange = "-s - -s"; // 受影响用户类型(如“半导体企业、地铁、医院、政府机关”) private String objTypeList; // 受影响用户总数 diff --git a/event_smart/src/main/java/com/njcn/product/event/report/service/EasyPoiWordExportService.java b/event_smart/src/main/java/com/njcn/product/event/report/service/EasyPoiWordExportService.java index 6c25e6c..5269fc0 100644 --- a/event_smart/src/main/java/com/njcn/product/event/report/service/EasyPoiWordExportService.java +++ b/event_smart/src/main/java/com/njcn/product/event/report/service/EasyPoiWordExportService.java @@ -12,5 +12,5 @@ import javax.servlet.http.HttpServletResponse; */ public interface EasyPoiWordExportService { - void test(HttpServletResponse response, ReportExportParam param); + void exportWordReport(HttpServletResponse response, ReportExportParam param); } 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 3dccbea..167e56e 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 @@ -70,7 +70,7 @@ public class EasyPoiWordExportServiceImpl implements EasyPoiWordExportService { // private String wordTemplatePath; @Override - public void test(HttpServletResponse response, ReportExportParam param) { + public void exportWordReport(HttpServletResponse response, ReportExportParam param) { try { List deptIds = commGeneralService.getLineIdsByRedis(param.getDeptId()); @@ -109,58 +109,60 @@ 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); + if(CollUtil.isNotEmpty(pqsEventdetailList)) { + 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); + 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); + long busCount = ledgerBaseInfoDTOList.stream().map(LedgerBaseInfoDTO::getBusBarId).distinct().count(); + bjReportDTO.setBjTotalBus((int) busCount); + String busVoltageStr = busVoltageDeal(ledgerBaseInfoDTOList, pqsDicDataMap); + bjReportDTO.setStationVoltage(busVoltageStr); + //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; + double maxPersisTime = pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getPersisttime).max().getAsDouble() / 1000; + bjReportDTO.setDurationRange(minPersisTime + "s-" + maxPersisTime + "s"); + + List pqUserLineAssPOS = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getLineIndex, lineIds)); + List userIds = pqUserLineAssPOS.stream().map(PqUserLineAssPO::getUserIndex).distinct().collect(Collectors.toList()); + List pqUserLedgerPOList = pqUserLedgerMapper.selectList(new LambdaQueryWrapper().in(PqUserLedgerPO::getId, userIds)); + Map> stringListMap = pqUserLedgerPOList.stream().collect(Collectors.groupingBy(PqUserLedgerPO::getSmallObjType)); + + String treeStr = userToStr(stringListMap, treePOMap); + + bjReportDTO.setObjTypeList(treeStr); + bjReportDTO.setAffectedUserCount(pqUserLedgerPOList.size()); + areaAssemble(bjReportDTO, param, pqsDicDataMap); } - 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); - long busCount = ledgerBaseInfoDTOList.stream().map(LedgerBaseInfoDTO::getBusBarId).distinct().count(); - bjReportDTO.setBjTotalBus((int)busCount); - String busVoltageStr = busVoltageDeal(ledgerBaseInfoDTOList,pqsDicDataMap); - bjReportDTO.setStationVoltage(busVoltageStr); - //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; - double maxPersisTime = pqsEventdetailList.stream().mapToDouble(PqsEventdetail::getPersisttime).max().getAsDouble()/1000; - bjReportDTO.setDurationRange(minPersisTime+"s-"+maxPersisTime+"s"); - - List pqUserLineAssPOS = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getLineIndex,lineIds)); - List userIds = pqUserLineAssPOS.stream().map(PqUserLineAssPO::getUserIndex).distinct().collect(Collectors.toList()); - List pqUserLedgerPOList = pqUserLedgerMapper.selectList(new LambdaQueryWrapper().in(PqUserLedgerPO::getId,userIds)); - Map> stringListMap = pqUserLedgerPOList.stream().collect(Collectors.groupingBy(PqUserLedgerPO::getSmallObjType)); - - String treeStr = userToStr(stringListMap,treePOMap); - - bjReportDTO.setObjTypeList(treeStr); - bjReportDTO.setAffectedUserCount(pqUserLedgerPOList.size()); - areaAssemble(bjReportDTO,param,pqsDicDataMap); Map map = mapper.convertValue(bjReportDTO,Map.class); diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/po/PqsDicTreePO.java b/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/po/PqsDicTreePO.java index 1c3b0b5..c66deef 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/po/PqsDicTreePO.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/pojo/po/PqsDicTreePO.java @@ -15,8 +15,7 @@ import java.util.Date; @Data @TableName(value = "PQS_DICTREE") public class PqsDicTreePO { - @TableId // 标记主键字段 - @TableField(value ="ID") // 显式指定列名(默认按字段名映射,可省略) + @TableId(value ="ID") // 显式指定列名(默认按字段名映射,可省略) private String id; @TableField(value ="NAME") diff --git a/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java b/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java index db9391b..1de5e52 100644 --- a/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/product/event/transientes/service/impl/LargeScreenCountServiceImpl.java @@ -1312,6 +1312,12 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { List assLastList = pqUserLedgerMapper.getUserByParam(pageLineIds, null); Map> mapObj = assLastList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getLineIndex, Collectors.mapping(PqUserLineAssPO::getUserName, Collectors.toList()))); + //字典信息 + PqsDicType pqsDicType = pqsDicTypeMapper.selectOne(new LambdaQueryWrapper().eq(PqsDicType::getDicTypeName, DicTypeEnum.VOLTAGE.getDicName())); + List pqsDicDataList = pqsDicDataMapper.selectList(new LambdaQueryWrapper().eq(PqsDicData::getDicType, pqsDicType.getDicTypeIndex())); + Map pqsDicDataMap = pqsDicDataList.stream().collect(Collectors.toMap(PqsDicData::getDicIndex, dic -> dic)); + + pqsEventdetailPage = list.stream().map(temp -> { EventDetailVO eventDetailVO = new EventDetailVO(); eventDetailVO.setEventdetail_index(temp.getEventdetailIndex()); @@ -1330,6 +1336,8 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService { eventDetailVO.setGdName(ledgerBaseInfoDTO.getGdName()); eventDetailVO.setBusName(ledgerBaseInfoDTO.getBusBarName()); eventDetailVO.setObjName(ledgerBaseInfoDTO.getObjName()); + eventDetailVO.setBusVoltageLevel(pqsDicDataMap.get(ledgerBaseInfoDTO.getScale()).getDicName()); + } String objName = "/"; if (mapObj.containsKey(eventDetailVO.getLineid())) { diff --git a/event_smart/src/main/resources/template/bj_report.docx b/event_smart/src/main/resources/template/bj_report.docx index 5996663..398159f 100644 Binary files a/event_smart/src/main/resources/template/bj_report.docx and b/event_smart/src/main/resources/template/bj_report.docx differ