手动新增技术监督及越限监测点数据

This commit is contained in:
Lee
2023-03-24 15:02:42 +08:00
parent 084e05eb12
commit 02ff3ca647
16 changed files with 217 additions and 79 deletions

View File

@@ -10,7 +10,9 @@ import java.util.List;
@ToString
@Builder
public class SourceSteadyIndicator {
/**
* 策略id
*/
private String id;
/**
* 干扰源数据字典Id

View File

@@ -3,9 +3,14 @@ package com.njcn.prepare.harmonic.api.line;
import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.prepare.harmonic.api.line.fallback.CoustomReportFeignClientFallbackFactory;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(
value = ServerInfo.PREPARE_BOOT,//对应模块名
@@ -16,9 +21,9 @@ public interface ThsSuperviseClient {
/**
* 预警/告警事务的生成
*
* @param initType 生成方式 0 自动1 手动
* @param superviseParam
* @return
*/
@PostMapping("/initSupervise")
HttpResult<Boolean> initSupervise(@RequestParam("initType") Integer initType);
HttpResult<List<ThsOverRunLog>> initSupervise(@RequestBody @Validated SuperviseParam superviseParam);
}

View File

@@ -5,10 +5,15 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pq.utils.DeviceEnumUtil;
import com.njcn.prepare.harmonic.api.line.ThsSuperviseClient;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@Slf4j
@Component
@@ -23,7 +28,7 @@ public class ThsSuperviseClientFallbackFactory implements FallbackFactory<ThsSup
Enum<?> finalExceptionEnum = exceptionEnum;
return new ThsSuperviseClient() {
@Override
public HttpResult<Boolean> initSupervise(@RequestParam("initType") Integer initType) {
public HttpResult<List<ThsOverRunLog>> initSupervise(@RequestBody @Validated SuperviseParam superviseParam) {
log.error("{}异常,降级处理,异常为:{}", "预警/告警事务的生成: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.pojo.param;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class SuperviseParam {
@ApiModelProperty(name = "initType", value = "创建类型: 0自动1手动", required = true)
@NotNull(message = "创建类型不可为空")
private Integer initType;
@ApiModelProperty(name = "deptId", value = "部门id")
private String deptId;
@ApiModelProperty(name = "overRunLog", value = "监测点集合")
private List<ThsOverRunLog> overRunLog;
}

View File

@@ -1,7 +1,10 @@
package com.njcn.process.pojo.po;
package com.njcn.prepare.harmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -22,26 +25,31 @@ public class ThsOverRunLog {
/**
* 主键id
*/
@ApiModelProperty(name = "id", value = "主键", required = true)
private String id;
/**
* 监测点ID
*/
@ApiModelProperty(name = "lineIndex", value = "监测点ID", required = true)
private String lineIndex;
/**
* 名称变电站_监测点_日期_id
*/
@ApiModelProperty(name = "name", value = "名称", required = true)
private String name;
/**
* 技术监督Guid
*/
@ApiModelProperty(name = "supIndex", value = "技术监督Guid", required = true)
private String supIndex;
/**
* 描述
*/
@ApiModelProperty(name = "description", value = "描述")
private String description;
/**
@@ -71,10 +79,16 @@ public class ThsOverRunLog {
/**
* 越限时间yyyy-MM-dd
*/
@ApiModelProperty(name = "updateTime", value = "越限时间", required = true)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
/**
* 创建时间
*/
@ApiModelProperty(name = "createTime", value = "创建时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;

View File

@@ -1,4 +1,4 @@
package com.njcn.process.pojo.po;
package com.njcn.prepare.harmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -77,6 +77,12 @@ public class ThsSupervise {
* 创建时间
*/
private Date createTime;
/**
* 创建类型(0自动1 手动)
*/
private Integer createType;
}

View File

@@ -1,18 +1,26 @@
package com.njcn.prepare.harmonic.controller.line;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.service.mysql.line.ThsOverRunLogService;
import com.njcn.prepare.harmonic.service.mysql.line.ThsSuperviseService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 前端控制器
@@ -21,18 +29,30 @@ import org.springframework.web.bind.annotation.RestController;
* @author lxp
* @since 2023-03-16
*/
@Api(tags = "预警-告警事务数据生成")
@Api(tags = "预警-告警技术监督")
@RestController
@RequestMapping("/thsSupervise")
public class ThsSuperviseController extends BaseController {
@Autowired
private ThsSuperviseService thsSuperviseService;
@Autowired
private ThsOverRunLogService thsOverRunLogService;
@ApiOperation("预警/告警事务生成")
@ApiImplicitParam(name = "initType", value = "生成策略 0 自动1 手动", required = true)
@ApiImplicitParam(name = "superviseParam", value = "创建技术监督参数", required = true)
@PostMapping("/initSupervise")
public HttpResult<Boolean> initSupervise(@RequestParam("initType") Integer initType) {
return thsSuperviseService.initSupervise(initType);
}
public HttpResult<List<ThsOverRunLog>> initSupervise(@RequestBody @Validated SuperviseParam superviseParam) {
return thsSuperviseService.initSupervise(superviseParam);
}
@ApiOperation("保存技术监督监测点")
@ApiImplicitParam(name = "superviseParam", value = "技术监督监测点参数", required = true)
@PostMapping("/saveOverRunLog")
public HttpResult saveOverRunLog(@RequestBody SuperviseParam superviseParam) {
thsOverRunLogService.saveOverRunLog(superviseParam);
String methodDescribe = getMethodDescribe("superviseParam");
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
}
}

View File

@@ -2,7 +2,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@@ -2,7 +2,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.ThsSupervise;
import com.njcn.prepare.harmonic.pojo.po.ThsSupervise;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@@ -3,6 +3,7 @@ package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.harmonic.pojo.vo.ThsStrategyVo;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.process.pojo.po.ThsWarnStrategy;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -23,6 +24,6 @@ public interface ThsWarnStrategyMapper extends BaseMapper<ThsWarnStrategy> {
/**
* 查询策略的集合
*/
List<ThsStrategyVo> selectStrategyList(@Param("initType") Integer initType);
List<ThsStrategyVo> selectStrategyList(@Param("param") SuperviseParam superviseParam);
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.line.ThsSuperviseMapper">
</mapper>

View File

@@ -3,7 +3,8 @@
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.line.ThsWarnStrategyMapper">
<!--查询策略的集合-->
<select id="selectStrategyList" resultType="com.njcn.harmonic.pojo.vo.ThsStrategyVo">
<select id="selectStrategyList" parameterType="com.njcn.prepare.harmonic.pojo.param.SuperviseParam"
resultType="com.njcn.harmonic.pojo.vo.ThsStrategyVo">
select
tws.id,
tws.name,
@@ -18,13 +19,16 @@
tws.Id = tda.Alarm_Id
<where>
<choose>
<when test="initType==0">
<when test="param.initType==0">
tws.State = 1 and tws.Grade in(0,2)
</when>
<when test="initType==1">
<when test="param.initType==1">
tws.State = 1 and tws.Grade in(1,2)
</when>
</choose>
<if test="param.deptId !=null and param.deptId !=''">
and tda.Dept_Id=#{param.deptId}
</if>
and tws.Big_Type=1
</where>
</select>

View File

@@ -1,10 +1,14 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.ThsOverRunLogMapper;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.service.mysql.line.ThsOverRunLogService;
import com.njcn.process.pojo.po.ThsOverRunLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* <p>
@@ -15,6 +19,13 @@ import org.springframework.stereotype.Service;
* @since 2023-03-16
*/
@Service
@Slf4j
public class ThsOverRunLogServiceImpl extends ServiceImpl<ThsOverRunLogMapper, ThsOverRunLog> implements ThsOverRunLogService {
@Override
@Transactional(rollbackFor = Exception.class)
@DS("process")
public void saveOverRunLog(SuperviseParam superviseParam) {
this.saveBatch(superviseParam.getOverRunLog());
}
}

View File

@@ -18,16 +18,22 @@ import com.njcn.harmonic.pojo.vo.SourceSteadyIndicator;
import com.njcn.harmonic.pojo.vo.ThsStrategyVo;
import com.njcn.prepare.enums.*;
import com.njcn.prepare.harmonic.mapper.mysql.line.*;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.pojo.po.ThsSupervise;
import com.njcn.prepare.harmonic.service.mysql.line.ThsSuperviseService;
import com.njcn.process.annotaion.HarCurrent;
import com.njcn.process.annotaion.HarVoltage;
import com.njcn.process.annotaion.InterharVoltage;
import com.njcn.process.pojo.po.*;
import com.njcn.process.pojo.po.LimitRate;
import com.njcn.process.pojo.po.ThsWarnStrategy;
import com.njcn.process.pojo.po.ThsWarnStrategyAss;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import com.njcn.web.utils.RequestUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -46,6 +52,7 @@ import java.util.stream.Collectors;
* @since 2023-03-16
*/
@Service
@Slf4j
public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, ThsSupervise> implements ThsSuperviseService {
@Autowired
@@ -71,11 +78,12 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
private static final String DESCRIPTION = "description";
@Override
public HttpResult<Boolean> initSupervise(Integer initType) {
if (initType == null) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.INVALID_PARAMETER, false, "");
public HttpResult<List<ThsOverRunLog>> initSupervise(SuperviseParam superviseParam) {
List<ThsOverRunLog> overRunLogList = new ArrayList<>();
if (InitTypeEnum.MANUAL.getCode().equals(superviseParam.getInitType()) && StringUtils.isBlank(superviseParam.getDeptId())) {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.INVALID_PARAMETER, null, "");
}
List<ThsStrategyVo> thsStrategyList = this.selectStrategyList(initType);
List<ThsStrategyVo> thsStrategyList = this.selectStrategyList(superviseParam);
//按部门进行分组
if (CollectionUtil.isNotEmpty(thsStrategyList)) {
Map<String, List<ThsStrategyVo>> deptMap = thsStrategyList.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId));
@@ -142,7 +150,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
}
if (CollectionUtil.isNotEmpty(oneSourceSteadyIndicatorList)) {
//先删除今天生成的数据
this.deleteTodayData(depId);
this.deleteTodayData(depId, superviseParam.getInitType());
oneSourceSteadyIndicatorList.forEach(steady -> {
Monitor monitor = pmsMonitorMapper.selectById(steady.getMonitorId());
if (monitor != null) {
@@ -152,21 +160,24 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
//判断指标是否超标
Map<String, Object> limitBoolMap = this.verifyLimit(limitRate, steady);
//生成监督数据
this.creatSuperviseData(steady, limitBoolMap, monitor, limitRate);
ThsOverRunLog thsOverRunLog = this.creatSuperviseData(steady, limitBoolMap, monitor, limitRate, superviseParam.getInitType());
if (thsOverRunLog != null) {
overRunLogList.add(thsOverRunLog);
}
}
}
});
}
}
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, "");
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, overRunLogList, "");
}
/**
* 部门没有绑定策略的走通用策略
*/
@Override
public void initCommonStrategy(List<ThsStrategyVo> thsStrategyList) {
public void initCommonStrategy(List<ThsStrategyVo> thsStrategyList, SuperviseParam superviseParam) {
//查询通用策略
ThsWarnStrategy thsWarnStrategy = thsWarnStrategyMapper.selectOne(new LambdaQueryWrapper<ThsWarnStrategy>()
.eq(ThsWarnStrategy::getBigType, BigTypeEnum.COMMON.getCode())
@@ -202,7 +213,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
verifySteadylist.add(build);
}
allDepIdList.forEach(depId -> {
this.deleteTodayData(depId);
this.deleteTodayData(depId, superviseParam.getInitType());
//查询部门下所有监测点基本信息
PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
pmsDeviceInfoParam.setDeptIndex(depId);
@@ -223,7 +234,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
//判断指标是否超标
Map<String, Object> limitBoolMap = this.verifyLimit(limitRate, steady);
//生成监督数据
this.creatSuperviseData(steady, limitBoolMap, monitor, limitRate);
this.creatSuperviseData(steady, limitBoolMap, monitor, limitRate, superviseParam.getInitType());
}
}));
}
@@ -234,17 +245,17 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
}
}
/**
* 查询策略列表
*
* @param initType
* @param superviseParam
* @return
*/
@DS("process")
@Override
public List<ThsStrategyVo> selectStrategyList(Integer initType) {
List<ThsStrategyVo> thsStrategyList = thsWarnStrategyMapper.selectStrategyList(initType);
return thsStrategyList;
public List<ThsStrategyVo> selectStrategyList(SuperviseParam superviseParam) {
return thsWarnStrategyMapper.selectStrategyList(superviseParam);
}
/**
@@ -257,10 +268,9 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
@DS("process")
@Override
public List<ThsWarnStrategyAss> queryWarnStrategyAss(String warnId, TypeEnum typeEnum) {
List<ThsWarnStrategyAss> thsWarnStrategyAss = thsWarnStrategyAssMapper.selectList(new LambdaQueryWrapper<ThsWarnStrategyAss>()
return thsWarnStrategyAssMapper.selectList(new LambdaQueryWrapper<ThsWarnStrategyAss>()
.eq(ThsWarnStrategyAss::getWarnId, warnId)
.eq(ThsWarnStrategyAss::getType, typeEnum.getCode()));
return thsWarnStrategyAss;
}
/**
@@ -269,36 +279,36 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
* @param limitBoolMap
*/
@Override
public void creatSuperviseData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, LimitRate limitRate) {
public ThsOverRunLog creatSuperviseData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, LimitRate limitRate, Integer initType) {
if (CollectionUtil.isNotEmpty(limitBoolMap)) {
if (OperationEnum.AND.getCode().equals(steady.getOperation())) {
for (Map.Entry<String, Object> entry : limitBoolMap.entrySet()) {
if (entry.getValue() instanceof Boolean && !(boolean) entry.getValue()) {
return;
return null;
}
}
//生成监督数据
ThsSupervise thsSupervise = this.insertSuperviseData(steady, monitor, limitRate, limitBoolMap);
ThsSupervise thsSupervise = this.insertSuperviseData(steady, monitor, limitRate, limitBoolMap, initType);
//生成告警/预警监测点列表数据
this.insertOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap);
return this.insertOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap, initType);
}
if (OperationEnum.OR.getCode().equals(steady.getOperation())) {
for (Map.Entry<String, Object> entry : limitBoolMap.entrySet()) {
if (entry.getValue() instanceof Boolean && (boolean) entry.getValue()) {
//生成监督数据
ThsSupervise thsSupervise = this.insertSuperviseData(steady, monitor, limitRate, limitBoolMap);
//生成告警/预警监测点列表数据
this.insertOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap);
break;
ThsSupervise thsSupervise = this.insertSuperviseData(steady, monitor, limitRate, limitBoolMap, initType);
//生成告警/预警监测点数据
return this.insertOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap, initType);
}
}
}
}
return null;
}
@DS("process")
@Override
public ThsSupervise insertSuperviseData(SourceSteadyIndicator steady, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap) {
public ThsSupervise insertSuperviseData(SourceSteadyIndicator steady, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType) {
//判断今日是否已经生成了监督数据
LambdaQueryWrapper<ThsSupervise> superviseQueryWrapper = new LambdaQueryWrapper<>();
superviseQueryWrapper.between(ThsSupervise::getCreateTime,
@@ -322,6 +332,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
thsSupervise.setProgress(ProgressEnum.START.getCode());
List<String> descriptionList = (List) limitBoolMap.get(DESCRIPTION);
thsSupervise.setDescription(StringUtils.join(descriptionList, ","));
thsSupervise.setCreateType(initType);
thsSuperviseMapper.insert(thsSupervise);
return thsSupervise;
}
@@ -329,7 +340,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
@DS("process")
@Override
public void insertOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap) {
public ThsOverRunLog insertOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType) {
ThsOverRunLog thsOverRunLog = new ThsOverRunLog();
thsOverRunLog.setId(IdUtil.simpleUUID());
thsOverRunLog.setSupIndex(thsSupervise.getSupIndex());
@@ -339,8 +350,11 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
thsOverRunLog.setCreateTime(new Date());
List<String> descriptionList = (List) limitBoolMap.get(DESCRIPTION);
thsOverRunLog.setDescription(StringUtils.join(descriptionList, ","));
if (InitTypeEnum.AUTO.getCode().equals(initType)) {
thsOverRunLogMapper.insert(thsOverRunLog);
}
return thsOverRunLog;
}
@Override
@@ -359,18 +373,18 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
*
* @param depId
*/
private void deleteTodayData(String depId) {
@Override
@DS("process")
public void deleteTodayData(String depId, Integer initType) {
ThsSupervise thsSupervise = thsSuperviseMapper.selectOne(new LambdaQueryWrapper<ThsSupervise>().eq(ThsSupervise::getDeptId, depId)
.eq(ThsSupervise::getCreateType, initType)
.between(ThsSupervise::getCreateTime,
DateUtil.beginOfDay(new Date()),
DateUtil.endOfDay(new Date())).last("limit 1"));
if (thsSupervise != null) {
thsOverRunLogMapper.delete(new LambdaQueryWrapper<ThsOverRunLog>().eq(ThsOverRunLog::getSupIndex, thsSupervise.getSupIndex()));
thsSuperviseMapper.delete(new LambdaQueryWrapper<ThsSupervise>().eq(ThsSupervise::getSupIndex, thsSupervise.getSupIndex()));
}
thsSuperviseMapper.delete(new LambdaQueryWrapper<ThsSupervise>().eq(ThsSupervise::getDeptId, depId)
.between(ThsSupervise::getCreateTime,
DateUtil.beginOfDay(new Date()),
DateUtil.endOfDay(new Date())));
}
/**
@@ -383,7 +397,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
if (limitRate != null) {
List<String> steadyIndicator = steady.getSteadyIndicator();
Map<String, Object> limitBoolMap = new HashedMap();
List<String> discreptionList = new ArrayList<>();
List<String> descriptionList = new ArrayList<>();
steadyIndicator.forEach(id -> {
HttpResult<DictData> dicDataById = dicDataFeignClient.getDicDataById(id);
if (CommonResponseEnum.SUCCESS.getCode().equals(dicDataById.getCode()) && dicDataById.getData() != null) {
@@ -393,16 +407,16 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
case Negative_Voltage://负序电压不平衡度
if (limitRate.getUbalanceOvertime() > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Negative_Voltage.getMessage().concat(limitRate.getUbalanceOvertime() + ""));
descriptionList.add(SteadyIndicatorEnum.Negative_Voltage.getMessage().concat(limitRate.getUbalanceOvertime() + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), false);
}
break;
case Interhar_Voltage://间谐波电压
Integer interharVoltageOvertime = this.maxValue(limitRate, InterharVoltage.class);
Integer interharVoltageOvertime = this.maxOverTime(limitRate, InterharVoltage.class);
if (interharVoltageOvertime > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Interhar_Voltage.getMessage().concat(interharVoltageOvertime + ""));
descriptionList.add(SteadyIndicatorEnum.Interhar_Voltage.getMessage().concat(interharVoltageOvertime + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), false);
}
@@ -410,7 +424,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
case Neg_Current://负序电流
if (limitRate.getINegOvertime() > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Neg_Current.getMessage().concat(limitRate.getINegOvertime() + ""));
descriptionList.add(SteadyIndicatorEnum.Neg_Current.getMessage().concat(limitRate.getINegOvertime() + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), false);
}
@@ -418,7 +432,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
case Fre_Deviation://频率偏差
if (limitRate.getFreqDevOvertime() > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Fre_Deviation.getMessage().concat(limitRate.getFreqDevOvertime() + ""));
descriptionList.add(SteadyIndicatorEnum.Fre_Deviation.getMessage().concat(limitRate.getFreqDevOvertime() + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), false);
}
@@ -426,16 +440,16 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
case Voltage_Dev://电压偏差
if (limitRate.getVoltageDevOvertime() > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Voltage_Dev.getMessage().concat(limitRate.getVoltageDevOvertime() + ""));
descriptionList.add(SteadyIndicatorEnum.Voltage_Dev.getMessage().concat(limitRate.getVoltageDevOvertime() + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), false);
}
break;
case Har_Current://谐波电流
Integer harCurrentOvertime = this.maxValue(limitRate, HarCurrent.class);
Integer harCurrentOvertime = this.maxOverTime(limitRate, HarCurrent.class);
if (harCurrentOvertime > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Har_Current.getMessage().concat(harCurrentOvertime + ""));
descriptionList.add(SteadyIndicatorEnum.Har_Current.getMessage().concat(harCurrentOvertime + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), false);
}
@@ -443,16 +457,16 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
case Voltage_Fluc://电压波动与闪变
if (limitRate.getFlickerOvertime() > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Voltage_Fluc.getMessage().concat(limitRate.getFlickerOvertime() + ""));
descriptionList.add(SteadyIndicatorEnum.Voltage_Fluc.getMessage().concat(limitRate.getFlickerOvertime() + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), false);
}
break;
case Har_Voltage://谐波电压
Integer harVoltageOvertime = this.maxValue(limitRate, HarVoltage.class);
Integer harVoltageOvertime = this.maxOverTime(limitRate, HarVoltage.class);
if (harVoltageOvertime > 0) {
limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), true);
discreptionList.add(SteadyIndicatorEnum.Har_Voltage.getMessage().concat(harVoltageOvertime + ""));
descriptionList.add(SteadyIndicatorEnum.Har_Voltage.getMessage().concat(harVoltageOvertime + ""));
} else {
limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), false);
}
@@ -461,26 +475,26 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
}
}
});
limitBoolMap.put(DESCRIPTION, discreptionList);
limitBoolMap.put(DESCRIPTION, descriptionList);
return limitBoolMap;
}
return null;
}
/***
* 获取指定枚举类型的最大值
* 获取越限最大值
* @param object
* @param annotation
* @return
*/
private Integer maxValue(Object object, Class annotation) {
private Integer maxOverTime(Object object, Class annotation) {
Integer maxValue = 0;
try {
Class objClass = object.getClass();
Field[] fields = objClass.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
Boolean isAnon = field.isAnnotationPresent(annotation);
boolean isAnon = field.isAnnotationPresent(annotation);
if (isAnon) {
Object objValue = field.get(object);
if (objValue instanceof Integer) {
@@ -490,8 +504,8 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
}
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (Exception e) {
log.error("获取越限最大值异常:{}", e.toString());
}
return maxValue;
}

View File

@@ -1,7 +1,8 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.process.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
/**
* <p>
@@ -13,4 +14,11 @@ import com.njcn.process.pojo.po.ThsOverRunLog;
*/
public interface ThsOverRunLogService extends IService<ThsOverRunLog> {
/**
* 保存技术监督监测点
*
* @param superviseParam
* @return
*/
void saveOverRunLog(SuperviseParam superviseParam);
}

View File

@@ -6,8 +6,10 @@ import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.vo.SourceSteadyIndicator;
import com.njcn.harmonic.pojo.vo.ThsStrategyVo;
import com.njcn.prepare.enums.TypeEnum;
import com.njcn.prepare.harmonic.pojo.param.SuperviseParam;
import com.njcn.prepare.harmonic.pojo.po.ThsOverRunLog;
import com.njcn.prepare.harmonic.pojo.po.ThsSupervise;
import com.njcn.process.pojo.po.LimitRate;
import com.njcn.process.pojo.po.ThsSupervise;
import com.njcn.process.pojo.po.ThsWarnStrategyAss;
import java.util.List;
@@ -25,9 +27,15 @@ public interface ThsSuperviseService extends IService<ThsSupervise> {
/**
* 初始化技术监督
*/
HttpResult<Boolean> initSupervise(Integer initType);
HttpResult<List<ThsOverRunLog>> initSupervise(SuperviseParam superviseParam);
List<ThsStrategyVo> selectStrategyList(Integer initType);
/**
* 查新策略集合
*
* @param superviseParam
* @return
*/
List<ThsStrategyVo> selectStrategyList(SuperviseParam superviseParam);
/**
* 查询LimitTarget数据
@@ -41,8 +49,15 @@ public interface ThsSuperviseService extends IService<ThsSupervise> {
*
* @param limitBoolMap
*/
void creatSuperviseData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, LimitRate limitRate);
ThsOverRunLog creatSuperviseData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, LimitRate limitRate, Integer initType);
/**
* 查询策略绑定的干扰源列表或指标参数列表
*
* @param id
* @param typeEnum
* @return
*/
List<ThsWarnStrategyAss> queryWarnStrategyAss(String id, TypeEnum typeEnum);
/**
@@ -52,7 +67,7 @@ public interface ThsSuperviseService extends IService<ThsSupervise> {
* @param monitor
* @return
*/
ThsSupervise insertSuperviseData(SourceSteadyIndicator steady, Monitor monitor, LimitRate limitRate,Map<String, Object> limitBoolMap);
ThsSupervise insertSuperviseData(SourceSteadyIndicator steady, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType);
/**
* 生成 告警/预警监测点列表 数据
@@ -61,7 +76,15 @@ public interface ThsSuperviseService extends IService<ThsSupervise> {
* @param thsSupervise
* @param monitor
*/
void insertOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, LimitRate limitRate,Map<String, Object> limitBoolMap);
ThsOverRunLog insertOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, LimitRate limitRate, Map<String, Object> limitBoolMap, Integer initType);
void initCommonStrategy(List<ThsStrategyVo> thsStrategyList);
/**
* 部门没有绑定策略的走通用策略
*
* @param thsStrategyList
* @param superviseParam
*/
void initCommonStrategy(List<ThsStrategyVo> thsStrategyList, SuperviseParam superviseParam);
void deleteTodayData(String depId, Integer initType);
}