在线监测功能

1.动态生成预告警单、下载预告警单
This commit is contained in:
xy
2024-06-25 17:36:50 +08:00
parent df72e7c338
commit 5c36e2e4f4
20 changed files with 236 additions and 108 deletions

View File

@@ -75,9 +75,9 @@ public class LineWarningController extends BaseController {
@PostMapping("/report")
@ApiOperation("发起预告警单")
@ApiImplicitParam(name = "param", value = "参数", required = true)
public HttpResult<String> startReport(@RequestBody @Validated OnlineParam.ReportParam param, HttpServletResponse response) {
public HttpResult<String> startReport(@RequestBody @Validated OnlineParam.ReportParam param) {
String methodDescribe = getMethodDescribe("startReport");
lineWarningService.startReport(param,response);
lineWarningService.startReport(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "success", methodDescribe);
}

View File

@@ -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

View File

@@ -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}
</select>

View File

@@ -40,6 +40,6 @@ public interface ILineWarningService extends IService<LineWarning> {
* @param param
* @return
*/
void startReport(OnlineParam.ReportParam param, HttpServletResponse response);
void startReport(OnlineParam.ReportParam param);
}

View File

@@ -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<LineWarningMapper, Li
private final IWarningLeafletService warningLeafletService;
private final DeptLineFeignClient deptLineFeignClient;
private final LineFeignClient lineFeignClient;
private final FileStorageUtil fileStorageUtil;
private final DeptFeignClient deptFeignClient;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -98,25 +108,21 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
//4.发过告警单,则重新生成一条数据
RStatLimitTargetDPO dpo = limitMap.get(item.getLineId());
//频率偏差
targetInfo(lineWarnings,targetMap,DicDataEnum.FREQUENCY_DEV.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.PLPC_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//电压偏差
targetInfo(lineWarnings,targetMap,DicDataEnum.VOLTAGE_DEV.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.DYPC_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//长时闪变
targetInfo(lineWarnings,targetMap,DicDataEnum.FLICKER.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.CSSB_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//谐波电压
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.XBDY_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//谐波电流
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.XBDL_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//间谐波电压
targetInfo(lineWarnings,targetMap,DicDataEnum.INTERHARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.JXBDY_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//负序电压不平衡度
targetInfo(lineWarnings,targetMap,DicDataEnum.phase_Voltage.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.SXDYBPHD_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//负序电流
targetInfo(lineWarnings,targetMap,DicDataEnum.NEG_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//电压总谐波畸变率
targetInfo(lineWarnings,targetMap,DicDataEnum.THD_V.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//总稳态指标
targetInfo(lineWarnings,targetMap,DicDataEnum.TOTAL_INDICATOR.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
targetInfo(lineWarnings,targetMap,DicDataEnum.FXDL_ENUM.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
}
}
this.saveBatch(addList);
@@ -127,8 +133,8 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
@Transactional(rollbackFor = Exception.class)
public void addHeBeiNorthLineWarning() {
List<LineWarning> result = new ArrayList<>();
//获取指标集合(10个指标,包含总指标)
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
//获取指标集合(8个指标,包含总指标)
List<DictData> dataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDICATOR_TYPE.getCode()).getData();
Map<String, DictData> targetMap = dataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity()));
//获取监测点和部门表关系
List<DeptLine> deptLines = deptLineFeignClient.getAllData().getData();
@@ -144,26 +150,22 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
limitTarget.forEach(item->{
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<LineWarningMapper, Li
.collect(Collectors.toList());
QueryWrapper<LineWarning> 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<LineWarningMapper, Li
@Override
@Transactional(rollbackFor = Exception.class)
public void startReport(OnlineParam.ReportParam param,HttpServletResponse response) {
public void startReport(OnlineParam.ReportParam param) {
List<LineWarning> 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<ReportLineInfoVo> list1 = getReportLineInfo(true,param.getIdList(),null,param.getSearchBeginTime(),param.getSearchEndTime(),param.getDeptId());
List<ReportLineInfoVo> list1 = getReportLineInfo(true,param.getIdList(),null,param.getSearchBeginTime(),param.getSearchEndTime(),param.getDeptId(),allLineWarnings);
//获取谐波电压超标监测点集合
String vCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.HARMONIC_VOLTAGE.getCode()).getData().getId();
List<ReportLineInfoVo> list2 = getReportLineInfo(false,param.getIdList(),vCode,param.getSearchBeginTime(),param.getSearchEndTime(),null);
String vCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.XBDY_ENUM.getCode()).getData().getId();
List<ReportLineInfoVo> list2 = getReportLineInfo(false,param.getIdList(),vCode,param.getSearchBeginTime(),param.getSearchEndTime(),null,allLineWarnings);
//获取谐波电流超标监测点集合
String iCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.HARMONIC_CURRENT.getCode()).getData().getId();
List<ReportLineInfoVo> list3 = getReportLineInfo(false,param.getIdList(),iCode,param.getSearchBeginTime(),param.getSearchEndTime(),null);
String iCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.XBDL_ENUM.getCode()).getData().getId();
List<ReportLineInfoVo> list3 = getReportLineInfo(false,param.getIdList(),iCode,param.getSearchBeginTime(),param.getSearchEndTime(),null,allLineWarnings);
try {
Map<String, Object> dataMap = new HashMap<String, Object>();
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<String[]> dataList1 = new ArrayList<String[]>(),dataList2 = new ArrayList<String[]>(),dataList3 = new ArrayList<String[]>();
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<List<String[]>> 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<LineWarning> 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<ReportLineInfoVo> getReportLineInfo(boolean type, List<String> idList, String codeId, String startTime, String endTime, String deptId) {
public List<ReportLineInfoVo> getReportLineInfo(boolean type, List<String> idList, String codeId, String startTime, String endTime, String deptId,List<LineWarning> allLineWarnings) {
List<ReportLineInfoVo> list = new ArrayList<>();
LambdaQueryWrapper<LineWarning> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (type) {
@@ -243,6 +315,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
}
List<LineWarning> warnings = this.baseMapper.selectList(lambdaQueryWrapper);
if (CollUtil.isNotEmpty(warnings)) {
allLineWarnings.addAll(warnings);
List<String> 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<LineWarningMapper, Li
int result = 0;
try {
//频率偏差
if (Objects.equals(code,DicDataEnum.FREQUENCY_DEV.getCode())) {
if (Objects.equals(code,DicDataEnum.PLPC_ENUM.getCode())) {
result = limitTarget.getFreqDevOvertime();
}
//电压偏差
else if (Objects.equals(code,DicDataEnum.VOLTAGE_DEV.getCode())) {
else if (Objects.equals(code,DicDataEnum.DYPC_ENUM.getCode())) {
result = limitTarget.getVoltageDevOvertime();
}
//长时闪变
else if (Objects.equals(code,DicDataEnum.FLICKER.getCode())) {
else if (Objects.equals(code,DicDataEnum.CSSB_ENUM.getCode())) {
result = limitTarget.getFlickerOvertime();
}
//谐波电压
else if (Objects.equals(code,DicDataEnum.HARMONIC_VOLTAGE.getCode())) {
else if (Objects.equals(code,DicDataEnum.XBDY_ENUM.getCode())) {
int sum = 0;
Class<?> clazz = limitTarget.getClass();
for (int i = 2; i <= 25; i++) {
@@ -316,7 +389,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
result = limitTarget.getUaberranceOvertime() + sum;
}
//谐波电流
else if (Objects.equals(code,DicDataEnum.HARMONIC_CURRENT.getCode())) {
else if (Objects.equals(code,DicDataEnum.XBDL_ENUM.getCode())) {
int sum = 0;
Class<?> clazz = limitTarget.getClass();
for (int i = 2; i <= 25; i++) {
@@ -328,7 +401,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
result = sum;
}
//间谐波电压
else if (Objects.equals(code,DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) {
else if (Objects.equals(code,DicDataEnum.JXBDY_ENUM.getCode())) {
int sum = 0;
Class<?> clazz = limitTarget.getClass();
for (int i = 1; i <= 16; i++) {
@@ -340,48 +413,13 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
result = sum;
}
//负序电压不平衡度
else if (Objects.equals(code,DicDataEnum.PHASE_VOLTAGE.getCode())) {
else if (Objects.equals(code,DicDataEnum.SXDYBPHD_ENUM.getCode())) {
result = limitTarget.getUbalanceOvertime();
}
//负序电流
else if (Objects.equals(code,DicDataEnum.NEG_CURRENT.getCode())) {
else if (Objects.equals(code,DicDataEnum.FXDL_ENUM.getCode())) {
result = limitTarget.getINegOvertime();
}
//电压总谐波畸变率
else if (Objects.equals(code,DicDataEnum.THD_V.getCode())) {
result = limitTarget.getUaberranceOvertime();
}
//总稳态指标
else if (Objects.equals(code,DicDataEnum.TOTAL_INDICATOR.getCode())) {
int sum1 = 0,sum2 = 0,sum3 = 0;
Class<?> 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();
}

View File

@@ -28,8 +28,9 @@ public interface IWarningLeafletService extends IBpmService<WarningLeaflet> {
* 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<WarningLeafletVO> alarmPageData(WarningLeafletParam.WarningLeafletQueryParam warningLeafletQueryParam);

View File

@@ -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<WarningLeafletMapper,
@Resource
private SupervisionGeneralSurveyPlanPOService supervisionGeneralSurveyPlanPOService;
@Resource
private FileStorageUtil fileStorageUtil;
/**
* 不创建工作流,只是创建一个告警单,需要待用户反馈后才会进入流程
*/
@Override
public void createLeaflet(String name, String deptId, String code, String id, Integer problemType, Integer leaflet, String issueDetail,String reformAdvice) {
public String createLeaflet(String name, String deptId, String code, String id, Integer problemType, Integer leaflet, String issueDetail,String reformAdvice,String filePath) {
WarningLeaflet warningLeaflet = new WarningLeaflet();
warningLeaflet.setLeafletName(name);
warningLeaflet.setDeptId(deptId);
@@ -95,7 +99,9 @@ public class WarningLeafletServiceImpl extends ServiceImpl<WarningLeafletMapper,
warningLeaflet.setReformAdvice(reformAdvice);
warningLeaflet.setState(DataStateEnum.ENABLE.getCode());
warningLeaflet.setStatus(FlowStatusEnum.NO_FEEDBACK.getCode());
warningLeaflet.setFilePath(filePath);
this.baseMapper.insert(warningLeaflet);
return warningLeaflet.getId();
}
@Override
@@ -132,6 +138,9 @@ public class WarningLeafletServiceImpl extends ServiceImpl<WarningLeafletMapper,
if (deptMap.containsKey(x.getDutyOrgId())) {
x.setDutyOrgName(deptMap.get(x.getDutyOrgId()));
}
if (!Objects.isNull(x.getFilePath())){
x.setFilePath(fileStorageUtil.getFileUrl(x.getFilePath()));
}
});
}
}

View File

@@ -21,7 +21,6 @@ import com.njcn.supervision.pojo.vo.problem.SupervisionUserComplaintVO;
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
import com.njcn.supervision.service.problem.SupervisionUserComplaintPOService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.po.Dept;
import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor;
@@ -45,7 +44,6 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
public class SupervisionUserComplaintPOServiceImpl extends ServiceImpl<SupervisionUserComplaintPOMapper, SupervisionUserComplaintPO> implements SupervisionUserComplaintPOService{
private final UserFeignClient userFeignClient;
private final IWarningLeafletService warningLeafletService;
private final DeptFeignClient deptFeignClient;
@@ -117,7 +115,8 @@ public class SupervisionUserComplaintPOServiceImpl extends ServiceImpl<Supervisi
ProblemTypeEnum.USER.getCode(),
LeafletTypeEnum.ALARM.getCode(),
supervisionUserComplaintPO.getComplaintText(),
warningAddParam.getReformAdvice()
warningAddParam.getReformAdvice(),
null
);
this.lambdaUpdate().eq(SupervisionUserComplaintPO::getId,warningAddParam.getId()).set(SupervisionUserComplaintPO::getInitiateWarningFlag,1).update();
}

View File

@@ -360,7 +360,8 @@ public class SurveyTestServiceImpl extends ServiceImpl<SurveyTestMapper, SurveyT
ProblemTypeEnum.SITE_TEST.getCode(),
LeafletTypeEnum.ALARM.getCode(),
surveyTestVO.getProblemDetail(),
warningAddParam.getReformAdvice()
warningAddParam.getReformAdvice(),
null
);
//将当前的测试数据改为已告警
this.lambdaUpdate().eq(SurveyTest::getId,warningAddParam.getId()).set(SurveyTest::getInitiateWarningFlag,1).update();