diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/SourceSteadyIndicator.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/SourceSteadyIndicator.java index e0f4b9c24..9d9f26d2b 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/SourceSteadyIndicator.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/SourceSteadyIndicator.java @@ -12,10 +12,17 @@ import java.util.List; public class SourceSteadyIndicator { private String id; + /** + * 干扰源数据字典Id + */ private String interferenceSource; - + /** + * 0 是与 ,1 是或 + */ private Integer operation; - + /** + * 指标参数数据字典Id集合 + */ private List steadyIndicator; /** @@ -30,4 +37,8 @@ public class SourceSteadyIndicator { * 类型(0:预警;1:告警) */ private Integer type; + /** + * 监测点id + */ + private String monitorId; } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ThsStrategyVo.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ThsStrategyVo.java index 161419566..8ab2f6939 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ThsStrategyVo.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ThsStrategyVo.java @@ -51,5 +51,10 @@ public class ThsStrategyVo { * 干扰源类型id */ private List interferenceSource; + /** + * 监测点id + */ + private String monitorId; + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/enums/BigTypeEnum.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/enums/BigTypeEnum.java new file mode 100644 index 000000000..24f90898b --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/enums/BigTypeEnum.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.enums; + +import lombok.Getter; + +@Getter +public enum BigTypeEnum { + COMMON(0, "通用策略"), + CUSTOM(1, "定制策略"); + + private final Integer code; + + private final String message; + + BigTypeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/enums/TypeEnum.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/enums/TypeEnum.java index a1c0c3112..35dc5efee 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/enums/TypeEnum.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/enums/TypeEnum.java @@ -4,7 +4,7 @@ import lombok.Getter; @Getter public enum TypeEnum { - MONITOR_TYPE(0, "指标类型"), + MONITOR_TYPE(0, "监测点表类型"), INTERFERENCE_TYPE(1, "指标类型"), SOURCE_TYPE(2, "干扰源类型"); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsOverRunLogController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsOverRunLogController.java index 646859d49..91fffccd6 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsOverRunLogController.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsOverRunLogController.java @@ -1,10 +1,9 @@ package com.njcn.prepare.harmonic.controller.line; -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; import com.njcn.web.controller.BaseController; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** *

diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsSuperviseController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsSuperviseController.java index c977abb42..79f1c785e 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsSuperviseController.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/line/ThsSuperviseController.java @@ -4,6 +4,7 @@ package com.njcn.prepare.harmonic.controller.line; import com.njcn.common.pojo.response.HttpResult; 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; @@ -20,6 +21,7 @@ import org.springframework.web.bind.annotation.RestController; * @author lxp * @since 2023-03-16 */ +@Api(tags = "预警-告警事务数据生成") @RestController @RequestMapping("/thsSupervise") public class ThsSuperviseController extends BaseController { diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsMonitorMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsMonitorMapper.java index 572850a15..ec5e4286d 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsMonitorMapper.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsMonitorMapper.java @@ -3,6 +3,9 @@ package com.njcn.prepare.harmonic.mapper.mysql.line; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.device.pms.pojo.po.Monitor; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author yzh @@ -11,5 +14,11 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface PmsMonitorMapper extends BaseMapper { - + /** + * 查询所有干扰源类型的监测点 + * @param monitorIdList + * @param codeList + * @return + */ + List queryConfigMonitor(@Param("monitorIdList") List monitorIdList, @Param("codeList") List codeList); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/PmsMonitorMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/PmsMonitorMapper.xml new file mode 100644 index 000000000..24eb39288 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/PmsMonitorMapper.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ThsWarnStrategyMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ThsWarnStrategyMapper.xml index da9b69bdb..09a37a478 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ThsWarnStrategyMapper.xml +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ThsWarnStrategyMapper.xml @@ -10,10 +10,11 @@ tws.grade, tws.operation, tws.type, + Monitor_Id as monitorId, tda.dept_Id as deptId from ths_warn_strategy tws - left join ths_dept_alarm tda on + INNER join ths_dept_alarm tda on tws.Id = tda.Alarm_Id @@ -24,6 +25,7 @@ tws.State = 1 and tws.Grade in(1,2) + and tws.Big_Type=1 diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java index 3603f8fda..f6c1c9b6e 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java @@ -19,12 +19,11 @@ 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.service.mysql.line.ThsSuperviseService; -import com.njcn.process.pojo.po.LimitRate; -import com.njcn.process.pojo.po.ThsOverRunLog; -import com.njcn.process.pojo.po.ThsSupervise; -import com.njcn.process.pojo.po.ThsWarnStrategyAss; +import com.njcn.process.pojo.po.*; 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 org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -61,6 +60,8 @@ public class ThsSuperviseServiceImpl extends ServiceImpl initSupervise(Integer initType) { @@ -72,15 +73,14 @@ public class ThsSuperviseServiceImpl extends ServiceImpl> deptMap = thsStrategyList.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId)); for (Map.Entry> entry : deptMap.entrySet()) { - String deptId = entry.getKey(); List deptList = entry.getValue(); - List oneLevel = deptList.stream().filter(r -> r.getGrade().equals(GradeEnum.ONE_LEVEL.getCode())).collect(Collectors.toList());//一级策略集合 + List oneLevel = deptList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合 List oneSourceSteadyIndicatorList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(oneLevel)) { for (ThsStrategyVo oneStrategyVo : oneLevel) { - List oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo, TypeEnum.SOURCE_TYPE);//干扰源列表 - List oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo, TypeEnum.INTERFERENCE_TYPE);//干扰源列表 - List oneSteadyIndicatorAssesIds = oneSteadyIndicatorAsses.stream().map(r -> r.getAssId()).collect(Collectors.toList()); + List oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表 + List oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//干扰源列表 + List oneSteadyIndicatorAssesIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList()); //封装每一种干扰源和对应的指标 for (ThsWarnStrategyAss oneWarnStrategyAss : oneInterferenceSourceAsses) { SourceSteadyIndicator build = SourceSteadyIndicator.builder().id(oneStrategyVo.getId()).operation(oneStrategyVo.getOperation()) @@ -88,42 +88,41 @@ public class ThsSuperviseServiceImpl extends ServiceImpl threeLevel = deptList.stream().filter(r -> r.getGrade().equals(GradeEnum.THREE_LEVEL.getCode())).collect(Collectors.toList());//三级策略集合 + List threeLevel = deptList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合 if (CollectionUtil.isNotEmpty(threeLevel)) { for (ThsStrategyVo threeStrategyVo : threeLevel) { - List interferenceSourceAsses = this.queryWarnStrategyAss(threeStrategyVo, TypeEnum.SOURCE_TYPE); - //干扰源类型id - List threeInterferenceSourceIds = interferenceSourceAsses.stream().map(p -> p.getAssId()).collect(Collectors.toList()); - List threeSteadyIndicatorAsses = this.queryWarnStrategyAss(threeStrategyVo, TypeEnum.INTERFERENCE_TYPE); - //指标类型id - List steadyIndicatorIds = threeSteadyIndicatorAsses.stream().map(p -> p.getAssId()).collect(Collectors.toList()); - for (String threeInterferenceSourceId : threeInterferenceSourceIds) { - if (OperationEnum.AND.getCode().equals(threeStrategyVo.getOperation())) {//处理三级策略的与 - Iterator iterator = oneSourceSteadyIndicatorList.iterator(); - while (iterator.hasNext()) { - SourceSteadyIndicator sourceSteady = iterator.next(); - if (OperationEnum.AND.getCode().equals(sourceSteady.getOperation())) { - if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource()) && - steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) { - iterator.remove(); + Iterator iterator = oneSourceSteadyIndicatorList.iterator(); + while (iterator.hasNext()) { + SourceSteadyIndicator sourceSteady = iterator.next(); + if (StringUtils.equals(threeStrategyVo.getMonitorId(), sourceSteady.getMonitorId())) { + List interferenceSourceAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.SOURCE_TYPE); + //干扰源类型id + List threeInterferenceSourceIds = interferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList()); + List threeSteadyIndicatorAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE); + //指标类型id + List steadyIndicatorIds = threeSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList()); + for (String threeInterferenceSourceId : threeInterferenceSourceIds) { + if (OperationEnum.AND.getCode().equals(threeStrategyVo.getOperation())) {//处理三级策略的与 + if (OperationEnum.AND.getCode().equals(sourceSteady.getOperation())) { + if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource()) && + steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) { + iterator.remove(); + } } - } - } - } else {//处理三级策略的或 - Iterator iterator = oneSourceSteadyIndicatorList.iterator(); - while (iterator.hasNext()) { - SourceSteadyIndicator sourceSteady = iterator.next(); - if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource())) { - if (steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) { - iterator.remove(); - } else { - List steadyIndicator = sourceSteady.getSteadyIndicator(); - steadyIndicator.removeAll(steadyIndicatorIds); + } else {//处理三级策略的或 + if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource())) { + if (steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) { + iterator.remove(); + } else { + List steadyIndicator = sourceSteady.getSteadyIndicator(); + steadyIndicator.removeAll(steadyIndicatorIds); + } } } } @@ -131,38 +130,105 @@ public class ThsSuperviseServiceImpl extends ServiceImpl> listHttpResult = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam); - List dataList = listHttpResult.getData(); - if (CollectionUtil.isNotEmpty(dataList) && CollectionUtil.isNotEmpty(oneSourceSteadyIndicatorList)) { - dataList.forEach(r -> { - List monitorIdList = r.getMonitorIdList(); - //查询所有监测点详细信息集合 - List monitors = pmsMonitorMapper.selectList(new LambdaQueryWrapper().in(Monitor::getId, monitorIdList)); - monitors.forEach(monitor -> { - oneSourceSteadyIndicatorList.forEach(steady -> { - if (StringUtils.equals(monitor.getMonitorTag(), steady.getInterferenceSource())) {//匹配该监测点属于的干扰源类型 - //查询该监测点的检测数据 - LimitRate limitRate = this.queryLimitTargetData(monitor.getId()); - //判断指标是否超标 - Map limitBoolMap = this.verifyLimit(limitRate, steady); - //生成监督数据 - this.creatSuperviseData(steady, limitBoolMap, monitor, limitRate); - } - }); - }); - + if (CollectionUtil.isNotEmpty(oneSourceSteadyIndicatorList)) { + oneSourceSteadyIndicatorList.forEach(steady -> { + Monitor monitor = pmsMonitorMapper.selectById(steady.getMonitorId()); + if (monitor != null) { + if (StringUtils.equals(monitor.getMonitorTag(), steady.getInterferenceSource())) {//匹配该监测点属于的干扰源类型 + //查询该监测点的检测数据 + LimitRate limitRate = this.queryLimitTargetData(monitor.getId()); + //判断指标是否超标 + Map limitBoolMap = this.verifyLimit(limitRate, steady); + //生成监督数据 + this.creatSuperviseData(steady, limitBoolMap, monitor, limitRate); + } + } }); } } } + //部门没有绑定策略的走通用策略 + this.initCommonStrategy(thsStrategyList); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, ""); } + /** + * 部门没有绑定策略的走通用策略 + */ + @Override + public void initCommonStrategy(List thsStrategyList) { + //查询通用策略 + ThsWarnStrategy thsWarnStrategy = thsWarnStrategyMapper.selectOne(new LambdaQueryWrapper() + .eq(ThsWarnStrategy::getBigType, BigTypeEnum.COMMON.getCode()) + .last("limit 1")); + if (null != thsWarnStrategy) { + List haveDepIdList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(thsStrategyList)) { + List verifyList = thsStrategyList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())) + .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ThsStrategyVo::getDeptId))), ArrayList::new)); + haveDepIdList = verifyList.stream().map(ThsStrategyVo::getDeptId).collect(Collectors.toList()); + } + //获取所有部门信息 + HttpResult> listHttpResult = deptFeignClient.allDeptList(); + List allDepIdList = listHttpResult.getData().stream().distinct().map(PvTerminalTreeVO::getId).collect(Collectors.toList()); + allDepIdList.removeAll(haveDepIdList); + //部门没有配置定制策略的走通用策略 + if (CollectionUtil.isNotEmpty(allDepIdList)) { + List thsWarnStrategyAsses = thsWarnStrategyAssMapper.selectList(new LambdaQueryWrapper() + .eq(ThsWarnStrategyAss::getWarnId, thsWarnStrategy.getId())); + List sourceAssList = thsWarnStrategyAsses.stream().filter(source -> TypeEnum.SOURCE_TYPE.getCode().equals(source.getType())) + .collect(Collectors.toList()); + List interAssList = thsWarnStrategyAsses.stream().filter(inter -> TypeEnum.INTERFERENCE_TYPE.getCode().equals(inter.getType())) + .collect(Collectors.toList()); + //封装每一种干扰源和对应的指标 + List verifySteadylist = new ArrayList<>(); + for (ThsWarnStrategyAss oneWarnStrategyAss : sourceAssList) { + SourceSteadyIndicator build = SourceSteadyIndicator.builder().id(thsWarnStrategy.getId()).operation(thsWarnStrategy.getOperation()) + .interferenceSource(oneWarnStrategyAss.getAssId()) + .steadyIndicator(interAssList.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList())) + .type(thsWarnStrategy.getType()) + .build(); + verifySteadylist.add(build); + } + allDepIdList.forEach(depId -> { + //查询部门下所有监测点基本信息 + PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam(); + pmsDeviceInfoParam.setDeptIndex(depId); + pmsDeviceInfoParam.setStatisticalType(new SimpleDTO()); + HttpResult> httpResult = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam); + List dataList = httpResult.getData(); + if (CollectionUtil.isNotEmpty(dataList)) { + dataList.forEach(r -> { + List monitorIdList = r.getMonitorIdList(); + //查询所有监测点详细信息集合 + if (CollectionUtil.isNotEmpty(monitorIdList)) { + List monitors = pmsMonitorMapper.queryConfigMonitor(monitorIdList, Arrays.stream(InterferenceTypeEnum.values()).map(InterferenceTypeEnum::getCode).collect(Collectors.toList())); + monitors.forEach(monitor -> verifySteadylist.forEach(steady -> { + if (StringUtils.equals(monitor.getMonitorTag(), steady.getInterferenceSource())) {//匹配该监测点属于的干扰源类型 + steady.setDeptId(depId); + //查询该监测点的检测数据 + LimitRate limitRate = this.queryLimitTargetData(monitor.getId()); + //判断指标是否超标 + Map limitBoolMap = this.verifyLimit(limitRate, steady); + //生成监督数据 + this.creatSuperviseData(steady, limitBoolMap, monitor, limitRate); + } + })); + } + }); + } + }); + } + } + } + + /** + * 查询策略列表 + * + * @param initType + * @return + */ @DS("process") @Override public List selectStrategyList(Integer initType) { @@ -170,12 +236,18 @@ public class ThsSuperviseServiceImpl extends ServiceImpl queryWarnStrategyAss(ThsStrategyVo strategyVo, TypeEnum typeEnum) { + public List queryWarnStrategyAss(String warnId, TypeEnum typeEnum) { List thsWarnStrategyAss = thsWarnStrategyAssMapper.selectList(new LambdaQueryWrapper() - .eq(ThsWarnStrategyAss::getWarnId, strategyVo.getId()) + .eq(ThsWarnStrategyAss::getWarnId, warnId) .eq(ThsWarnStrategyAss::getType, typeEnum.getCode())); return thsWarnStrategyAss; } @@ -197,8 +269,8 @@ public class ThsSuperviseServiceImpl extends ServiceImpl superviseQueryWrapper = new LambdaQueryWrapper<>(); superviseQueryWrapper.between(ThsSupervise::getCreateTime, - DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)), - DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1))) + DateUtil.beginOfDay(new Date()), + DateUtil.endOfDay(new Date())) .eq(ThsSupervise::getDeptId, steady.getDeptId()) .eq(ThsSupervise::getType, steady.getType()) .last("limit 1"); @@ -217,6 +289,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl().eq(LimitRate::getMyindex, monitorId) + LimitRate limitRate = limitRateMapper.selectOne(new LambdaQueryWrapper().eq(LimitRate::getLineId, monitorId) .between(LimitRate::getCreatTime, DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)), DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1))).last("limit 1")); @@ -277,124 +352,126 @@ public class ThsSuperviseServiceImpl extends ServiceImpl dicDataById = dicDataFeignClient.getDicDataById(id); if (CommonResponseEnum.SUCCESS.getCode().equals(dicDataById.getCode()) && dicDataById.getData() != null) { SteadyIndicatorEnum steadyIndicatorEnum = SteadyIndicatorEnum.getSteadyIndicatorEnumByCode(dicDataById.getData().getCode()); - switch (steadyIndicatorEnum) { - case Negative_Voltage://负序电压不平衡度 - if (limitRate.getUbalanceOvertime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), false); - } - break; - case Interhar_Voltage://间谐波电压 - if (limitRate.getInuharm1Overtime() > 0 || - limitRate.getInuharm2Overtime() > 0 || - limitRate.getInuharm3Overtime() > 0 || - limitRate.getInuharm4Overtime() > 0 || - limitRate.getInuharm5Overtime() > 0 || - limitRate.getInuharm6Overtime() > 0 || - limitRate.getInuharm7Overtime() > 0 || - limitRate.getInuharm8Overtime() > 0 || - limitRate.getInuharm9Overtime() > 0 || - limitRate.getInuharm10Overtime() > 0 || - limitRate.getInuharm11Overtime() > 0 || - limitRate.getInuharm12Overtime() > 0 || - limitRate.getInuharm13Overtime() > 0 || - limitRate.getInuharm14Overtime() > 0 || - limitRate.getInuharm15Overtime() > 0 || - limitRate.getInuharm16Overtime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), false); - } - break; - case Neg_Current://负序电流 - if (limitRate.getINegOvertime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), false); - } - break; - case Fre_Deviation://频率偏差 - if (limitRate.getFreqDevOvertime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), false); - } - break; - case Voltage_Dev://电压偏差 - if (limitRate.getVoltageDevOvertime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), false); - } - break; - case Har_Current://谐波电流 - if (limitRate.getIharm2Overtime() > 0 || - limitRate.getIharm3Overtime() > 0 || - limitRate.getIharm4Overtime() > 0 || - limitRate.getIharm5Overtime() > 0 || - limitRate.getIharm6Overtime() > 0 || - limitRate.getIharm7Overtime() > 0 || - limitRate.getIharm8Overtime() > 0 || - limitRate.getIharm9Overtime() > 0 || - limitRate.getIharm10Overtime() > 0 || - limitRate.getIharm11Overtime() > 0 || - limitRate.getIharm12Overtime() > 0 || - limitRate.getIharm13Overtime() > 0 || - limitRate.getIharm14Overtime() > 0 || - limitRate.getIharm15Overtime() > 0 || - limitRate.getIharm16Overtime() > 0 || - limitRate.getIharm17Overtime() > 0 || - limitRate.getIharm18Overtime() > 0 || - limitRate.getIharm19Overtime() > 0 || - limitRate.getIharm20Overtime() > 0 || - limitRate.getIharm21Overtime() > 0 || - limitRate.getIharm22Overtime() > 0 || - limitRate.getIharm23Overtime() > 0 || - limitRate.getIharm24Overtime() > 0 || - limitRate.getIharm25Overtime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), false); - } - break; - case Voltage_Fluc://电压波动与闪变 - if (limitRate.getFlickerOvertime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), false); - } - break; - case Har_Voltage://谐波电压 - if (limitRate.getUharm2Overtime() > 0 || - limitRate.getUharm3Overtime() > 0 || - limitRate.getUharm4Overtime() > 0 || - limitRate.getUharm5Overtime() > 0 || - limitRate.getUharm6Overtime() > 0 || - limitRate.getUharm7Overtime() > 0 || - limitRate.getUharm8Overtime() > 0 || - limitRate.getUharm9Overtime() > 0 || - limitRate.getUharm10Overtime() > 0 || - limitRate.getUharm11Overtime() > 0 || - limitRate.getUharm12Overtime() > 0 || - limitRate.getUharm13Overtime() > 0 || - limitRate.getUharm14Overtime() > 0 || - limitRate.getUharm15Overtime() > 0 || - limitRate.getUharm16Overtime() > 0 || - limitRate.getUharm17Overtime() > 0 || - limitRate.getUharm18Overtime() > 0 || - limitRate.getUharm19Overtime() > 0 || - limitRate.getUharm20Overtime() > 0 || - limitRate.getUharm21Overtime() > 0 || - limitRate.getUharm22Overtime() > 0 || - limitRate.getUharm23Overtime() > 0 || - limitRate.getUharm24Overtime() > 0 || - limitRate.getUharm25Overtime() > 0) { - limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), true); - } else { - limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), false); - } - break; + if (null != steadyIndicatorEnum) { + switch (steadyIndicatorEnum) { + case Negative_Voltage://负序电压不平衡度 + if (limitRate.getUbalanceOvertime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), false); + } + break; + case Interhar_Voltage://间谐波电压 + if (limitRate.getInuharm1Overtime() > 0 || + limitRate.getInuharm2Overtime() > 0 || + limitRate.getInuharm3Overtime() > 0 || + limitRate.getInuharm4Overtime() > 0 || + limitRate.getInuharm5Overtime() > 0 || + limitRate.getInuharm6Overtime() > 0 || + limitRate.getInuharm7Overtime() > 0 || + limitRate.getInuharm8Overtime() > 0 || + limitRate.getInuharm9Overtime() > 0 || + limitRate.getInuharm10Overtime() > 0 || + limitRate.getInuharm11Overtime() > 0 || + limitRate.getInuharm12Overtime() > 0 || + limitRate.getInuharm13Overtime() > 0 || + limitRate.getInuharm14Overtime() > 0 || + limitRate.getInuharm15Overtime() > 0 || + limitRate.getInuharm16Overtime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), false); + } + break; + case Neg_Current://负序电流 + if (limitRate.getINegOvertime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), false); + } + break; + case Fre_Deviation://频率偏差 + if (limitRate.getFreqDevOvertime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), false); + } + break; + case Voltage_Dev://电压偏差 + if (limitRate.getVoltageDevOvertime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), false); + } + break; + case Har_Current://谐波电流 + if (limitRate.getIharm2Overtime() > 0 || + limitRate.getIharm3Overtime() > 0 || + limitRate.getIharm4Overtime() > 0 || + limitRate.getIharm5Overtime() > 0 || + limitRate.getIharm6Overtime() > 0 || + limitRate.getIharm7Overtime() > 0 || + limitRate.getIharm8Overtime() > 0 || + limitRate.getIharm9Overtime() > 0 || + limitRate.getIharm10Overtime() > 0 || + limitRate.getIharm11Overtime() > 0 || + limitRate.getIharm12Overtime() > 0 || + limitRate.getIharm13Overtime() > 0 || + limitRate.getIharm14Overtime() > 0 || + limitRate.getIharm15Overtime() > 0 || + limitRate.getIharm16Overtime() > 0 || + limitRate.getIharm17Overtime() > 0 || + limitRate.getIharm18Overtime() > 0 || + limitRate.getIharm19Overtime() > 0 || + limitRate.getIharm20Overtime() > 0 || + limitRate.getIharm21Overtime() > 0 || + limitRate.getIharm22Overtime() > 0 || + limitRate.getIharm23Overtime() > 0 || + limitRate.getIharm24Overtime() > 0 || + limitRate.getIharm25Overtime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), false); + } + break; + case Voltage_Fluc://电压波动与闪变 + if (limitRate.getFlickerOvertime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), false); + } + break; + case Har_Voltage://谐波电压 + if (limitRate.getUharm2Overtime() > 0 || + limitRate.getUharm3Overtime() > 0 || + limitRate.getUharm4Overtime() > 0 || + limitRate.getUharm5Overtime() > 0 || + limitRate.getUharm6Overtime() > 0 || + limitRate.getUharm7Overtime() > 0 || + limitRate.getUharm8Overtime() > 0 || + limitRate.getUharm9Overtime() > 0 || + limitRate.getUharm10Overtime() > 0 || + limitRate.getUharm11Overtime() > 0 || + limitRate.getUharm12Overtime() > 0 || + limitRate.getUharm13Overtime() > 0 || + limitRate.getUharm14Overtime() > 0 || + limitRate.getUharm15Overtime() > 0 || + limitRate.getUharm16Overtime() > 0 || + limitRate.getUharm17Overtime() > 0 || + limitRate.getUharm18Overtime() > 0 || + limitRate.getUharm19Overtime() > 0 || + limitRate.getUharm20Overtime() > 0 || + limitRate.getUharm21Overtime() > 0 || + limitRate.getUharm22Overtime() > 0 || + limitRate.getUharm23Overtime() > 0 || + limitRate.getUharm24Overtime() > 0 || + limitRate.getUharm25Overtime() > 0) { + limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), true); + } else { + limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), false); + } + break; + } } } }); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java index a7347a3ed..537829152 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java @@ -43,7 +43,8 @@ public interface ThsSuperviseService extends IService { */ void creatSuperviseData(SourceSteadyIndicator steady, Map limitBoolMap, Monitor monitor, LimitRate limitRate); - List queryWarnStrategyAss(ThsStrategyVo strategyVo, TypeEnum typeEnum); + List queryWarnStrategyAss(String id, TypeEnum typeEnum); + /** * 生成监督数据 * @@ -61,4 +62,6 @@ public interface ThsSuperviseService extends IService { * @param monitor */ void insertOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, LimitRate limitRate); + + void initCommonStrategy(List thsStrategyList); } diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/LimitRate.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/LimitRate.java index 57318beaf..974abd636 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/LimitRate.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/LimitRate.java @@ -35,8 +35,8 @@ public class LimitRate { /** * 监测点ID合格率的变电站/装置/母线/线路序号 */ - @TableField(value = "myindex") - private Integer myindex; + @TableField(value = "line_id") + private String lineId; /** * 总计算次数 diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsOverRunLog.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsOverRunLog.java index eb72db52f..85354744e 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsOverRunLog.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsOverRunLog.java @@ -72,6 +72,10 @@ public class ThsOverRunLog { * 越限时间(yyyy-MM-dd) */ private Date updateTime; + /** + * 创建时间 + */ + private Date createTime; } diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java index de5b95df5..841b11c23 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java @@ -1,18 +1,17 @@ package com.njcn.process.pojo.po; import com.baomidou.mybatisplus.annotation.*; - -import java.io.Serializable; - import com.njcn.db.bo.BaseEntity; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.io.Serializable; + /** *

- * + * *

* * @author wr @@ -21,7 +20,7 @@ import lombok.EqualsAndHashCode; @Data @EqualsAndHashCode(callSuper = false) @TableName("ths_warn_strategy") -@ApiModel(value="ThsWarnStrategy对象", description="") +@ApiModel(value = "ThsWarnStrategy对象", description = "") public class ThsWarnStrategy extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @@ -47,7 +46,7 @@ public class ThsWarnStrategy extends BaseEntity implements Serializable { @ApiModelProperty(value = "0.删除 1.正常") @TableField("State") - @TableLogic + @TableLogic(value = "1",delval = "0") private Integer state; @TableField("Create_By") @@ -55,6 +54,11 @@ public class ThsWarnStrategy extends BaseEntity implements Serializable { @TableField("Update_By") private String updateBy; + /** + * 0.通用策略 1.定值策略 + */ + @TableField("Big_Type") + private String bigType; }