diff --git a/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java index 2b038d654..34b734dde 100644 --- a/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java +++ b/pqs-common/common-oss/src/main/java/com/njcn/oss/constant/OssPath.java @@ -131,4 +131,9 @@ public interface OssPath { */ String THEME="theme/"; + /** + * 在线监测预告警单 + */ + String ONLINE_REPORT="onlineReport/"; + } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/ReportLineInfoVo.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/ReportLineInfoVo.java index 6ded74d9b..d308e659f 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/ReportLineInfoVo.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/ReportLineInfoVo.java @@ -45,8 +45,8 @@ public class ReportLineInfoVo implements Serializable { @ApiModelProperty("供电设备容量") private Double devCapacity; - @ApiModelProperty("供电设备容量") - private Double standardCapacity; + @ApiModelProperty("协议容量") + private Double dealCapacity; @ApiModelProperty("超标天数") private Integer overDays; diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml index 735790c32..eede459e7 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml @@ -1701,7 +1701,7 @@ pd.IP ip, pld.Short_Capacity shortCapacity, pld.Dev_Capacity devCapacity, - pld.Standard_Capacity standardCapacity + pld.Deal_Capacity dealCapacity from pq_line pl left join pq_line_detail pld on pl.Id = pld.Id diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/WordUtil2.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/WordUtil2.java index 5513c9c1b..3df4584a9 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/WordUtil2.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/utils/WordUtil2.java @@ -1,9 +1,12 @@ package com.njcn.harmonic.utils; +import ch.qos.logback.core.rolling.helper.FileStoreUtil; +import cn.hutool.core.collection.CollUtil; import org.apache.poi.xwpf.usermodel.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.io.ClassPathResource; +import org.springframework.util.CollectionUtils; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; @@ -51,6 +54,42 @@ public class WordUtil2 { } } + public InputStream getReportFile(String path, Map params, List> tableList) + throws Exception { + path = ClearPathUtil.cleanString(path); + InputStream inStream = null,in = null; + CustomXWPFDocument doc = null; + //读取报告模板 + try { + inStream = new ClassPathResource(path).getInputStream();; + doc = new CustomXWPFDocument(inStream); + this.replaceInTable(doc,params,tableList); + this.replaceInPara(doc, params); + } catch (IOException e) { + logger.error("获取报告模板异常,原因为:" + e); + } finally { + if (null != inStream) { + inStream.close(); + } + } + try { + //临时缓冲区 + ByteArrayOutputStream out = new ByteArrayOutputStream(); + doc.write(out); + byte[] docByteAry = out.toByteArray(); + in = new ByteArrayInputStream(docByteAry); + out.close(); + } catch (Exception e) { + logger.error("输出稳态报告异常,原因为:" + e); + } finally { + if (doc != null) { + doc.close(); + } + } + return in; + } + + /** * 替换段落里面的变量 * @@ -212,14 +251,16 @@ public class WordUtil2 { private static void insertTable(XWPFTable table, List tableList) { //删除占位符行数 table.removeRow(1); - // 创建行,根据需要插入的数据添加新行,不处理表头 - for (int i = 0; i < tableList.size(); i++) { - XWPFTableRow row = table.createRow(); - List cells = row.getTableCells(); - for (int j = 0; j < cells.size(); j++) { - XWPFTableCell cell = cells.get(j); - String s = tableList.get(i)[j]; - cell.setText(s); + if (CollUtil.isNotEmpty(tableList)) { + // 创建行,根据需要插入的数据添加新行,不处理表头 + for (int i = 0; i < tableList.size(); i++) { + XWPFTableRow row = table.createRow(); + List cells = row.getTableCells(); + for (int j = 0; j < cells.size(); j++) { + XWPFTableCell cell = cells.get(j); + String s = tableList.get(i)[j]; + cell.setText(s); + } } } } @@ -247,10 +288,8 @@ public class WordUtil2 { for (XWPFTableRow row : rows) { cells = row.getTableCells(); for (XWPFTableCell cell : cells) { - paras = cell.getParagraphs(); - for (XWPFParagraph para : paras) { - this.replaceInPara(para, params, doc); - } + List paragraphListTable = cell.getParagraphs(); + processParagraphs(paragraphListTable, params, doc); } } } else { diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/OnlineParam.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/OnlineParam.java index 1d3d86651..5bcee1733 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/OnlineParam.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/param/device/OnlineParam.java @@ -59,6 +59,9 @@ public class OnlineParam extends BaseParam implements Serializable { @ApiModelProperty(name = "issueDetail", value = "问题描述") private String issueDetail; + @ApiModelProperty(name = "reformAdvice", value = "整改意见") + private String reformAdvice; + @ApiModelProperty(name = "year", value = "年") private String year; diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/LineWarning.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/LineWarning.java index 5f3f36af2..63134ad9a 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/LineWarning.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/device/LineWarning.java @@ -82,4 +82,8 @@ public class LineWarning extends BaseEntity implements Serializable { */ private Integer thresholdResource; + /** + * 预告警单id + */ + private String leafletId; } diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/leaflet/WarningLeaflet.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/leaflet/WarningLeaflet.java index 9a2bfeeca..36c0d8b5c 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/leaflet/WarningLeaflet.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/po/leaflet/WarningLeaflet.java @@ -93,5 +93,9 @@ public class WarningLeaflet extends BaseEntity implements Serializable{ */ private Integer state; + /** + * 预告警单文件路径 + */ + private String filePath; } diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/OnlineVo.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/OnlineVo.java index 077315e5c..dea24e5ed 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/OnlineVo.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/device/OnlineVo.java @@ -73,4 +73,7 @@ public class OnlineVo implements Serializable { @ApiModelProperty("数据来源 0:系统默认 1:自定义") private Integer dataResource; + + @ApiModelProperty("当前流程(null:无流程 1:预警 2:告警)") + private Integer step; } diff --git a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/leaflet/WarningLeafletVO.java b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/leaflet/WarningLeafletVO.java index 390ebf1a2..a4a8294c2 100644 --- a/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/leaflet/WarningLeafletVO.java +++ b/pqs-supervision/supervision-api/src/main/java/com/njcn/supervision/pojo/vo/leaflet/WarningLeafletVO.java @@ -1,6 +1,7 @@ package com.njcn.supervision.pojo.vo.leaflet; import com.njcn.db.bo.BaseEntity; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @@ -116,4 +117,7 @@ public class WarningLeafletVO extends BaseEntity implements Serializable{ * 责任单位名称 */ private String dutyOrgName; + + @ApiModelProperty("预告警单下载路径") + private String filePath; } diff --git a/pqs-supervision/supervision-boot/pom.xml b/pqs-supervision/supervision-boot/pom.xml index e550e05ad..c93776d33 100644 --- a/pqs-supervision/supervision-boot/pom.xml +++ b/pqs-supervision/supervision-boot/pom.xml @@ -58,11 +58,26 @@ 1.0.0 compile + + com.njcn + common-oss + ${project.version} + supervision-boot + + org.apache.maven.plugins + maven-resources-plugin + + UTF-8 + + docx + + + org.apache.maven.plugins maven-compiler-plugin @@ -70,6 +85,7 @@ -Xlint:unchecked + org.springframework.boot diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/LineWarningController.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/LineWarningController.java index 60d786469..e011ab4b7 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/LineWarningController.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/controller/device/LineWarningController.java @@ -75,9 +75,9 @@ public class LineWarningController extends BaseController { @PostMapping("/report") @ApiOperation("发起预告警单") @ApiImplicitParam(name = "param", value = "参数", required = true) - public HttpResult startReport(@RequestBody @Validated OnlineParam.ReportParam param, HttpServletResponse response) { + public HttpResult startReport(@RequestBody @Validated OnlineParam.ReportParam param) { String methodDescribe = getMethodDescribe("startReport"); - lineWarningService.startReport(param,response); + lineWarningService.startReport(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/LineWarningMapper.xml b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/LineWarningMapper.xml index fb8ebc78b..ad72ecd94 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/LineWarningMapper.xml +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/device/mapping/LineWarningMapper.xml @@ -14,7 +14,8 @@ B.Obj_Name objectName, A.target_type targetType, A.over_limit_day overLimitDay, - A.initiate_warning_flag dataResource + A.initiate_warning_flag dataResource, + A.step step from supervision_line_warning A left join pq_line p1 on A.line_id = p1.Id diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/leaflet/mapping/WarningLeafletMapper.xml b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/leaflet/mapping/WarningLeafletMapper.xml index 57aec79df..e736f9d83 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/leaflet/mapping/WarningLeafletMapper.xml +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/mapper/leaflet/mapping/WarningLeafletMapper.xml @@ -23,7 +23,8 @@ supervision_warning_leaflet.create_by, supervision_warning_leaflet.create_time, supervision_warning_leaflet.update_by, - supervision_warning_leaflet.update_time + supervision_warning_leaflet.update_time, + supervision_warning_leaflet.file_path FROM supervision_warning_leaflet supervision_warning_leaflet WHERE ${ew.sqlSegment} diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/ILineWarningService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/ILineWarningService.java index 67741eb57..f7f2b4c8e 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/ILineWarningService.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/ILineWarningService.java @@ -40,6 +40,6 @@ public interface ILineWarningService extends IService { * @param param * @return */ - void startReport(OnlineParam.ReportParam param, HttpServletResponse response); + void startReport(OnlineParam.ReportParam param); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/LineWarningServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/LineWarningServiceImpl.java index f18e4cbed..2815bec4b 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/LineWarningServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/LineWarningServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.common.pojo.enums.common.ServerEnum; @@ -21,6 +22,10 @@ import com.njcn.harmonic.api.RStatLimitRateDClient; import com.njcn.harmonic.pojo.param.RStatLimitQueryParam; import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO; import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO; +import com.njcn.harmonic.utils.WordUtil2; +import com.njcn.oss.constant.OssPath; +import com.njcn.oss.utils.FileStorageUtil; +import com.njcn.supervision.enums.ProblemTypeEnum; import com.njcn.supervision.mapper.device.LineWarningMapper; import com.njcn.supervision.pojo.param.device.OnlineParam; import com.njcn.supervision.pojo.po.device.LineWarning; @@ -31,15 +36,18 @@ import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; import com.njcn.web.factory.PageFactory; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; import java.lang.reflect.Method; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.util.*; import java.util.function.Function; @@ -63,6 +71,8 @@ public class LineWarningServiceImpl extends MppServiceImpl result = new ArrayList<>(); - //获取指标集合(10个指标,包含总指标) - List dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + //获取指标集合(8个指标,包含总指标) + List dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDICATOR_TYPE.getCode()).getData(); Map targetMap = dataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity())); //获取监测点和部门表关系 List deptLines = deptLineFeignClient.getAllData().getData(); @@ -144,26 +150,22 @@ public class LineWarningServiceImpl extends MppServiceImpl{ String deptId = Objects.isNull(deptLineMap.get(item.getLineId()))?null:deptLineMap.get(item.getLineId()).get(0).getId(); //频率偏差 - LineWarning l1 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.FREQUENCY_DEV.getCode()).getId(),item.getFreqDevOvertime()); + LineWarning l1 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.PLPC_ENUM.getCode()).getId(),item.getFreqDevOvertime()); //电压偏差 - LineWarning l2 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.VOLTAGE_DEV.getCode()).getId(),item.getVoltageDevOvertime()); + LineWarning l2 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.DYPC_ENUM.getCode()).getId(),item.getVoltageDevOvertime()); //长时闪变 - LineWarning l3 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.FLICKER.getCode()).getId(),item.getFlickerOvertime()); + LineWarning l3 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.CSSB_ENUM.getCode()).getId(),item.getFlickerOvertime()); //谐波电压 - LineWarning l4 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getId(),item.getUharmOvertime()); + LineWarning l4 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.XBDY_ENUM.getCode()).getId(),item.getUharmOvertime()); //谐波电流 - LineWarning l5 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.HARMONIC_CURRENT.getCode()).getId(),item.getIharmOvertime()); + LineWarning l5 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.XBDL_ENUM.getCode()).getId(),item.getIharmOvertime()); //间谐波电压 - LineWarning l6 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.INTERHARMONIC_VOLTAGE.getCode()).getId(),item.getInuharmOvertime()); + LineWarning l6 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.JXBDY_ENUM.getCode()).getId(),item.getInuharmOvertime()); //负序电压不平衡度 - LineWarning l7 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.PHASE_VOLTAGE.getCode()).getId(),item.getUbalanceOvertime()); + LineWarning l7 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.SXDYBPHD_ENUM.getCode()).getId(),item.getUbalanceOvertime()); //负序电流 - LineWarning l8 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.NEG_CURRENT.getCode()).getId(),item.getINegOvertime()); - //电压总谐波畸变率 - LineWarning l9 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.THD_V.getCode()).getId(),item.getUaberranceOvertime()); - //总稳态指标 - LineWarning l10 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.TOTAL_INDICATOR.getCode()).getId(),item.getAllOvertime()); - result.addAll(Arrays.asList(l1,l2,l3,l4,l5,l6,l7,l8,l9,l10)); + LineWarning l8 = overData(firstDayOfMonth,item.getLineId(),deptId,targetMap.get(DicDataEnum.FXDL_ENUM.getCode()).getId(),item.getINegOvertime()); + result.addAll(Arrays.asList(l1,l2,l3,l4,l5,l6,l7,l8)); }); } //将装置无数据的统计入库 按运维要求,判断装置的最新数据不是当天,则认为装置无数据 @@ -197,16 +199,16 @@ public class LineWarningServiceImpl extends MppServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.between("A.alarm_time", param.getSearchBeginTime(),param.getSearchEndTime()); + if (CollUtil.isNotEmpty(lineList)) { + queryWrapper.in("A.line_id",lineList); + } //查询无数据的监测点 if (Objects.equals(param.getDataType(),0)){ queryWrapper.eq("A.target_type", "0"); } //查询指标超标的监测点 else { - queryWrapper.ge("A.over_limit_day", param.getAlertThreshold()); - if (CollUtil.isNotEmpty(lineList)) { - queryWrapper.in("A.line_id",lineList); - } + queryWrapper.ge("A.over_limit_day", param.getAlarmThreshold()); if (CollUtil.isNotEmpty(param.getTargetList())) { queryWrapper.in("A.target_type", param.getTargetList()); } @@ -217,19 +219,89 @@ public class LineWarningServiceImpl extends MppServiceImpl allLineWarnings = new ArrayList<>(); + //获取部门名称 + String deptName = deptFeignClient.getDeptById(param.getDeptId()).getData().getName(); + param.setDeptName(deptName); + WordUtil2 wordUtil2 = new WordUtil2(); + String inputUrl = "file/warningReport.docx"; + String fileName = "电能[告]"+param.getYear()+"年"+param.getNumber()+"号-"+param.getDeptName()+"地市 电能质量技术监督告警单.docx"; //获取无数据监测点集合 - List list1 = getReportLineInfo(true,param.getIdList(),null,param.getSearchBeginTime(),param.getSearchEndTime(),param.getDeptId()); + List list1 = getReportLineInfo(true,param.getIdList(),null,param.getSearchBeginTime(),param.getSearchEndTime(),param.getDeptId(),allLineWarnings); //获取谐波电压超标监测点集合 - String vCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getData().getId(); - List list2 = getReportLineInfo(false,param.getIdList(),vCode,param.getSearchBeginTime(),param.getSearchEndTime(),null); + String vCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.XBDY_ENUM.getCode()).getData().getId(); + List list2 = getReportLineInfo(false,param.getIdList(),vCode,param.getSearchBeginTime(),param.getSearchEndTime(),null,allLineWarnings); //获取谐波电流超标监测点集合 - String iCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.HARMONIC_CURRENT.getCode()).getData().getId(); - List list3 = getReportLineInfo(false,param.getIdList(),iCode,param.getSearchBeginTime(),param.getSearchEndTime(),null); + String iCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.XBDL_ENUM.getCode()).getData().getId(); + List list3 = getReportLineInfo(false,param.getIdList(),iCode,param.getSearchBeginTime(),param.getSearchEndTime(),null,allLineWarnings); + try { + Map dataMap = new HashMap(); + dataMap.put("${year}", param.getYear()); + dataMap.put("${number}", param.getNumber()); + dataMap.put("${deptName}", param.getDeptName()); + dataMap.put("${startTime}", new SimpleDateFormat(DatePattern.CHINESE_DATE_PATTERN).format(new SimpleDateFormat(DatePattern.NORM_DATE_PATTERN).parse(param.getSearchBeginTime()))); + dataMap.put("${endTime}", new SimpleDateFormat(DatePattern.CHINESE_DATE_PATTERN).format(new SimpleDateFormat(DatePattern.NORM_DATE_PATTERN).parse(param.getSearchEndTime()))); + dataMap.put("${noData}", CollUtil.isEmpty(list1)?"0":String.valueOf(list1.size())); + dataMap.put("${harmonicV}", CollUtil.isEmpty(list2)?"0":String.valueOf(list2.size())); + dataMap.put("${harmonicI}", CollUtil.isEmpty(list3)?"0":String.valueOf(list3.size())); + dataMap.put("${alarmDay}", String.valueOf(param.getAlarmThreshold())); + List dataList1 = new ArrayList(),dataList2 = new ArrayList(),dataList3 = new ArrayList(); + if (CollUtil.isNotEmpty(list1)) { + list1.forEach(item->{ + dataList1.add(new String[]{deptName,item.getLineVoltage(),item.getLineName(),item.getSubName(),item.getObjName(),item.getSubVName(),item.getUpdateTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)),item.getIp()}); + }); + } + if (CollUtil.isNotEmpty(list2)) { + list2.forEach(item->{ + dataList2.add(new String[]{deptName,item.getLineName(),item.getSubName(),item.getObjName(),String.valueOf(item.getOverDays())}); + }); + } + if (CollUtil.isNotEmpty(list3)) { + list3.forEach(item->{ + dataList3.add(new String[]{deptName,item.getLineName(),item.getSubName(),item.getObjName(),String.valueOf(item.getOverDays()),String.valueOf(item.getShortCapacity()),String.valueOf(item.getDevCapacity()),String.valueOf(item.getDealCapacity())}); + }); + } + List> tableList = Arrays.asList(dataList1,dataList2,dataList3); + InputStream inputStream = wordUtil2.getReportFile(inputUrl,dataMap,tableList); + //上传文件服务器 + String path = fileStorageUtil.uploadStreamSpecifyName(inputStream, OssPath.ONLINE_REPORT, fileName); + //1.生成预告警单数据 + String leafletId = warningLeafletService.createLeaflet( + ProblemTypeEnum.ONLINE.getName() + ,param.getDeptId() + ,IdWorker.get32UUID() + ,null + ,ProblemTypeEnum.ONLINE.getCode() + ,param.getType() + ,param.getIssueDetail() + ,param.getReformAdvice() + ,path); + //2.将选择的数据状态改成预警或者告警 && 将选择的数据添加预告警单id + if (CollUtil.isNotEmpty(allLineWarnings)) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(LineWarning::getId,param.getIdList()) + .notIn(LineWarning::getTargetType,Arrays.asList(vCode,iCode)) + .between(LineWarning::getAlarmTime,param.getSearchBeginTime(),param.getSearchEndTime()); + allLineWarnings.addAll(this.baseMapper.selectList(lambdaQueryWrapper)); + allLineWarnings.forEach(item->{ + item.setStep(param.getType()); + item.setInitiateWarningFlag(1); + if (!Objects.equals(item.getTargetType(),"0")) { + item.setAlertThreshold(param.getAlertThreshold()); + item.setAlarmThreshold(param.getAlarmThreshold()); + } + item.setLeafletId(leafletId); + }); + this.updateBatchByMultiId(allLineWarnings); + } + } catch (Exception e) { + throw new RuntimeException(e); + } } - public List getReportLineInfo(boolean type, List idList, String codeId, String startTime, String endTime, String deptId) { + public List getReportLineInfo(boolean type, List idList, String codeId, String startTime, String endTime, String deptId,List allLineWarnings) { List list = new ArrayList<>(); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); if (type) { @@ -243,6 +315,7 @@ public class LineWarningServiceImpl extends MppServiceImpl warnings = this.baseMapper.selectList(lambdaQueryWrapper); if (CollUtil.isNotEmpty(warnings)) { + allLineWarnings.addAll(warnings); List lineList = warnings.stream().map(LineWarning::getLineId).collect(Collectors.toList()); list = lineFeignClient.getReportLineInfo(lineList).getData(); if (!type){ @@ -292,19 +365,19 @@ public class LineWarningServiceImpl extends MppServiceImpl clazz = limitTarget.getClass(); for (int i = 2; i <= 25; i++) { @@ -316,7 +389,7 @@ public class LineWarningServiceImpl extends MppServiceImpl clazz = limitTarget.getClass(); for (int i = 2; i <= 25; i++) { @@ -328,7 +401,7 @@ public class LineWarningServiceImpl extends MppServiceImpl clazz = limitTarget.getClass(); for (int i = 1; i <= 16; i++) { @@ -340,48 +413,13 @@ public class LineWarningServiceImpl extends MppServiceImpl clazz = limitTarget.getClass(); - for (int i = 2; i <= 25; i++) { - String methodName1 = "getUharm" + i + "Overtime"; - Method method1 = clazz.getMethod(methodName1); - int value1 = (int) method1.invoke(limitTarget); - sum1 += value1; - - String methodName2 = "getIharm" + i + "Overtime"; - Method method2 = clazz.getMethod(methodName2); - int value2 = (int) method2.invoke(limitTarget); - sum2 += value2; - } - for (int i = 1; i <= 16; i++) { - String methodName = "getInuharm" + i + "Overtime"; - Method method = clazz.getMethod(methodName); - int value = (int) method.invoke(limitTarget); - sum3 += value; - } - result = limitTarget.getFreqDevOvertime() - + limitTarget.getVoltageDevOvertime() - + limitTarget.getFlickerOvertime() - + sum1 - + sum2 - + sum3 - + limitTarget.getUbalanceOvertime() - + limitTarget.getINegOvertime() - + limitTarget.getUaberranceOvertime(); - } } catch (Exception e) { e.printStackTrace(); } diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/IWarningLeafletService.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/IWarningLeafletService.java index ca2838c70..a66841548 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/IWarningLeafletService.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/IWarningLeafletService.java @@ -28,8 +28,9 @@ public interface IWarningLeafletService extends IBpmService { * leaflet:单子类型:1:预警单;2:告警单 * issueDetail:问题详细描述 * reformAdvice:整改意见 + * filePath:预告警单文件路径 */ - void createLeaflet(String name, String deptId, String code, String id, Integer problemType, Integer leaflet, String issueDetail,String reformAdvice); + String createLeaflet(String name, String deptId, String code, String id, Integer problemType, Integer leaflet, String issueDetail,String reformAdvice,String filePath); Page alarmPageData(WarningLeafletParam.WarningLeafletQueryParam warningLeafletQueryParam); diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/impl/WarningLeafletServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/impl/WarningLeafletServiceImpl.java index b36db4fa7..888994c86 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/impl/WarningLeafletServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/leaflet/impl/WarningLeafletServiceImpl.java @@ -18,6 +18,7 @@ import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO; import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.harmonic.pojo.dto.RMpPartHarmonicDetailDTO; +import com.njcn.oss.utils.FileStorageUtil; import com.njcn.supervision.enums.FlowStatusEnum; import com.njcn.supervision.enums.LeafletTypeEnum; import com.njcn.supervision.enums.ProblemTypeEnum; @@ -78,11 +79,14 @@ public class WarningLeafletServiceImpl extends ServiceImpl implements SupervisionUserComplaintPOService{ - private final UserFeignClient userFeignClient; private final IWarningLeafletService warningLeafletService; private final DeptFeignClient deptFeignClient; @@ -117,7 +115,8 @@ public class SupervisionUserComplaintPOServiceImpl extends ServiceImpl