From 41566d6acc81dec40cec67173faddce317976393 Mon Sep 17 00:00:00 2001 From: wurui Date: Wed, 22 Mar 2023 18:22:04 +0800 Subject: [PATCH] =?UTF-8?q?1.pmsbug=E4=BF=AE=E6=94=B9=EF=BC=8C=E9=85=8D?= =?UTF-8?q?=E7=BD=91=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=202.=E6=8A=80=E6=9C=AF=E7=9B=91=E7=9D=A3=E7=AD=96=E7=95=A5?= =?UTF-8?q?=EF=BC=8C=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Impl/PwEventMonitorReportServiceImpl.java | 3 +- .../process/enums/ProcessResponseEnum.java | 1 + .../njcn/process/pojo/param/MonitorParam.java | 37 +++++++ .../process/pojo/param/StrategyParam.java | 21 ++-- .../njcn/process/pojo/po/ThsWarnStrategy.java | 4 + .../controller/ThsWarnStrategyController.java | 34 ++++--- .../service/ThsWarnStrategyService.java | 29 ++++-- .../impl/ThsWarnStrategyServiceImpl.java | 97 +++++++++++++------ 8 files changed, 168 insertions(+), 58 deletions(-) create mode 100644 pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/MonitorParam.java diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/Impl/PwEventMonitorReportServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/Impl/PwEventMonitorReportServiceImpl.java index 61576a481..0da6df3e1 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/Impl/PwEventMonitorReportServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/Impl/PwEventMonitorReportServiceImpl.java @@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -60,7 +61,7 @@ public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportServ //查询监测点信息 List monitorList = this.getMonitorList(eventMonitorReportParam); List monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id信息 - Map monitorMap = monitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, monitor -> monitor)); + Map monitorMap = monitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, Function.identity(),(kye1,key2)->kye1)); //获取电压等级的字典 List voltageLevelList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java b/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java index 03998b2da..67a92c075 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/enums/ProcessResponseEnum.java @@ -20,6 +20,7 @@ public enum ProcessResponseEnum { PROCESS_ERROR("A00553","当前流程未审核通过,操作失败!"), QUERY_IS_EMPTY("A00554","当前未查询到当前策略信息,无法删除!"), ENABLED_CANNOT_BE_DELETED("A00555","策略为启用状态不能删除!"), + THERE_IS_ONLY_ONE_STRATEGY("A00556","自动策略或手动策略,通用策略只能有一条!"), ; private final String code; diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/MonitorParam.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/MonitorParam.java new file mode 100644 index 000000000..1be7f1d14 --- /dev/null +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/MonitorParam.java @@ -0,0 +1,37 @@ +package com.njcn.process.pojo.param; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * <策略监测点绑定> + * + * @author wr + * @createTime: 2023-03-22 + */ + +@Data +public class MonitorParam { + + @ApiModelProperty(value = "单位id") + @NotBlank(message = "单位id不能为空") + private String deptId; + + @ApiModelProperty(value = "类型 0.预警策略 1.告警策略") + @NotEmpty(message = "类型不能为空") + private Integer type; + + @ApiModelProperty(value = "预警策略/告警策略id") + @NotEmpty(message = "策略id集合不能为空") + private List alarmId; + + @ApiModelProperty(value = "监测点id") + @NotEmpty(message = "监测点id集合不能为空") + private List monitorId; + + +} diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java index 2e925832b..04c866bdc 100644 --- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java @@ -57,6 +57,10 @@ public class StrategyParam { @NotNull(message = "等级不能为空") private Integer grade; + @ApiModelProperty(value = "0.通用策略 1.定值策略") + @NotNull(message = "策略选择不能为空") + private Integer bigType; + @ApiModelProperty(value = "区分预警单还是告警单(0:预警单;1:告警单)") @NotNull(message = "区分类别不能为空") private Integer type; @@ -108,6 +112,10 @@ public class StrategyParam { @NotBlank(message = "名称不能为空") private String name; + @ApiModelProperty(value = "0.通用策略 1.定值策略") + @NotNull(message = "策略选择不能为空") + private Integer bigType; + @ApiModelProperty(value = "等级(0:一级;1:二级;2:三级)") @NotNull(message = "等级不能为空") private Integer grade; @@ -134,23 +142,22 @@ public class StrategyParam { @ApiModelProperty("名称") private String name; - @ApiModelProperty("变电站信息") - private List childPower; +// @ApiModelProperty("变电站信息") +// private List childPower; @ApiModelProperty("子节点详细信息") - private List children; + private List children; } @Data - public static class Power { + public static class Monitor { @ApiModelProperty("id") private String id; @ApiModelProperty("名称") private String name; - @ApiModelProperty("监测点信息") - private List childMonitor; + @ApiModelProperty("标识") + private Integer leven=3; } - } 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 1a5ff6fa5..db5a3e165 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 @@ -42,6 +42,10 @@ public class ThsWarnStrategy extends BaseEntity implements Serializable { @TableField("Operation") private Integer operation; + @ApiModelProperty(value = "0.通用策略 1.定值策略") + @TableField("Big_Type") + private Integer bigType; + @ApiModelProperty(value = "区分预警单还是告警单(0:预警单;1:告警单)") private Integer type; diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java index e01bfcd27..7abc5ce5c 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java @@ -8,8 +8,8 @@ import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; +import com.njcn.process.pojo.param.MonitorParam; import com.njcn.process.pojo.param.StrategyParam; -import com.njcn.process.pojo.po.ThsDeptAlarm; import com.njcn.process.pojo.po.ThsWarnStrategy; import com.njcn.process.service.ThsWarnStrategyService; import com.njcn.web.controller.BaseController; @@ -40,7 +40,7 @@ public class ThsWarnStrategyController extends BaseController { private final ThsWarnStrategyService thsWarnStrategyService; @PostMapping("/getStrategyPage") - @ApiOperation("预警单/告警单策略分页查询") + @ApiOperation("分页查询") @OperateInfo(info = LogEnum.BUSINESS_COMMON) public HttpResult> getStrategyPage(@RequestBody @Validated StrategyParam.StrategyPageParam param) { String methodDescribe = getMethodDescribe("getStrategyPage"); @@ -49,7 +49,7 @@ public class ThsWarnStrategyController extends BaseController { } @PostMapping("/insertStrategy") - @ApiOperation(value = "预警单/告警单单条新增") + @ApiOperation(value = "数据添加") @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) public HttpResult insertStrategy(@RequestBody @Validated StrategyParam.StrategyInsertParam param) { String methodDescribe = getMethodDescribe("insertStrategy"); @@ -58,7 +58,7 @@ public class ThsWarnStrategyController extends BaseController { } @PostMapping("/bindStrategy") - @ApiOperation(value = "预警单/告警单信息绑定") + @ApiOperation(value = "信息绑定") @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) public HttpResult bindStrategy(@RequestBody @Validated StrategyParam.BindParam param) { String methodDescribe = getMethodDescribe("bindStrategy"); @@ -67,7 +67,7 @@ public class ThsWarnStrategyController extends BaseController { } @PostMapping("/getUpdateStrategy") - @ApiOperation(value = "预警单/告警单修改详细查询") + @ApiOperation(value = "详细查询") @OperateInfo(info = LogEnum.BUSINESS_COMMON) public HttpResult getUpdateStrategy(@RequestParam("id") String id) { String methodDescribe = getMethodDescribe("getUpdateStrategy"); @@ -76,7 +76,7 @@ public class ThsWarnStrategyController extends BaseController { } @PostMapping("/updateStrategy") - @ApiOperation(value = "预警单/告警单修改") + @ApiOperation(value = "信息修改") @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) public HttpResult updateStrategy(@RequestBody @Validated StrategyParam.StrategyUpParam param) { String methodDescribe = getMethodDescribe("updateStrategy"); @@ -85,7 +85,7 @@ public class ThsWarnStrategyController extends BaseController { } @PostMapping("/updateStrategyState") - @ApiOperation(value = "预警单/告警单修改状态") + @ApiOperation(value = "修改状态") @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) public HttpResult updateStrategyState(@RequestBody @Validated StrategyParam.StrategyStateParam param) { String methodDescribe = getMethodDescribe("updateStrategyState"); @@ -93,26 +93,34 @@ public class ThsWarnStrategyController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); } - @PostMapping("/getMonitor") + @GetMapping("/getMonitor") @ApiOperation(value = "监测点查询接口") @OperateInfo(info = LogEnum.BUSINESS_COMMON) - public HttpResult> getMonitor(@Param("monitorTag") List monitorTag, @Param("orgId") String orgId) { + public HttpResult> getMonitor(@Param("orgId") String orgId) { String methodDescribe = getMethodDescribe("getMonitor"); - List monitor = thsWarnStrategyService.getMonitor(monitorTag, orgId); + List monitor = thsWarnStrategyService.getMonitor( orgId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); } @PostMapping("/bindMonitor") - @ApiOperation(value = "预警单/告警单监测点绑定") + @ApiOperation(value = "监测点绑定") @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) - public HttpResult bindMonitor(@RequestBody List param) { + public HttpResult bindMonitor(@RequestBody MonitorParam param) { String methodDescribe = getMethodDescribe("bindMonitor"); Boolean flag = thsWarnStrategyService.bindMonitor(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); } + @GetMapping("/echoMonitor") + @ApiOperation(value = "监测点回显") + public HttpResult> echoMonitor(@Param("deptId") String deptId,@Param("type") Integer type) { + String methodDescribe = getMethodDescribe("echoMonitor"); + List strings = thsWarnStrategyService.echoMonitor(deptId, type); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, strings, methodDescribe); + } + @PostMapping("/delStrategy") - @ApiOperation(value = "预警单/告警单信息删除") + @ApiOperation(value = "信息删除") @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) public HttpResult delStrategy(String ids) { String methodDescribe = getMethodDescribe("delStrategy"); diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java index d1cc8b041..500104787 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java @@ -1,8 +1,8 @@ package com.njcn.process.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.process.pojo.param.MonitorParam; import com.njcn.process.pojo.param.StrategyParam; -import com.njcn.process.pojo.po.ThsDeptAlarm; import com.njcn.process.pojo.po.ThsWarnStrategy; import com.baomidou.mybatisplus.extension.service.IService; @@ -74,14 +74,14 @@ public interface ThsWarnStrategyService extends IService { */ Boolean updateStrategyState(StrategyParam.StrategyStateParam param); - /*** - * 监测点查询接口 - * @author wr - * @date 2023-03-10 14:52 - * @param monitorTag - * @return List - */ - List getMonitor(List monitorTag, String orgId); + /*** + * 监测点查询接口 + * @author wr + * @date 2023-03-22 17:38 + * @param orgId + * @return List + */ + List getMonitor( String orgId); /*** @@ -91,8 +91,17 @@ public interface ThsWarnStrategyService extends IService { * @param param * @return Boolean */ - Boolean bindMonitor(List param); + Boolean bindMonitor(MonitorParam param); + /*** + * 监测点回显 + * @author wr + * @date 2023-03-22 10:44 + * @param org + * @param type + * @return List + */ + List echoMonitor(String org,Integer type); /*** * 预警单/告警单删除 diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java index 7f3ecdf97..52ee1abf8 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java @@ -1,7 +1,6 @@ package com.njcn.process.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -13,10 +12,9 @@ import com.njcn.device.pms.api.MonitorClient; import com.njcn.device.pms.enums.PmsDeviceResponseEnum; import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; import com.njcn.device.pms.pojo.param.PmsMonitorParam; -import com.njcn.device.pms.pojo.po.DistributionMonitor; import com.njcn.process.enums.ProcessResponseEnum; +import com.njcn.process.pojo.param.MonitorParam; import com.njcn.process.pojo.param.StrategyParam; -import com.njcn.process.pojo.po.PmsTerminalDetection; import com.njcn.process.pojo.po.ThsDeptAlarm; import com.njcn.process.pojo.po.ThsWarnStrategy; import com.njcn.process.mapper.ThsWarnStrategyMapper; @@ -67,15 +65,24 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl() + ThsWarnStrategy one = this.getOne(new LambdaQueryWrapper() .eq(ThsWarnStrategy::getName, param.getName()) + .or(wrapper -> + wrapper.eq(ThsWarnStrategy::getGrade, param.getGrade()) + .eq(ThsWarnStrategy::getBigType, 0) + ) ); - if (count > 0) { - throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); + + if (ObjectUtil.isNotNull(one)) { + if(one.getName().equals(param.getName())){ + throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); + } + throw new BusinessException(ProcessResponseEnum.THERE_IS_ONLY_ONE_STRATEGY); } ThsWarnStrategy thsWarnStrategy = BeanUtil.copyProperties(param, ThsWarnStrategy.class); thsWarnStrategy.setCreateBy(RequestUtil.getUserNickname()); thsWarnStrategy.setState(2); + thsWarnStrategy.setBigType(param.getBigType()); return this.save(thsWarnStrategy); } @@ -111,13 +118,21 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl wrapper.eq(ThsWarnStrategy::getName, param.getName()) ) + .or(wrapper -> + wrapper.eq( ThsWarnStrategy::getGrade, param.getGrade()) + .eq(ThsWarnStrategy::getBigType, 0) + ) ); if (ObjectUtil.isNotNull(one)) { - throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); + if(one.getName().equals(param.getName())){ + throw new BusinessException(PmsDeviceResponseEnum.MODEL_NAME_REPEAT); + } + throw new BusinessException(ProcessResponseEnum.THERE_IS_ONLY_ONE_STRATEGY); } ThsWarnStrategy thsWarnStrategy = BeanUtil.copyProperties(param, ThsWarnStrategy.class); thsWarnStrategy.setUpdateBy(RequestUtil.getUserNickname()); + thsWarnStrategy.setBigType(param.getBigType()); return this.updateById(thsWarnStrategy); } @@ -131,9 +146,8 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl getMonitor(List monitorTag, String orgId) { + public List getMonitor(String orgId) { PmsMonitorParam param = new PmsMonitorParam(); - param.setMonitorTags(monitorTag); List data = monitorClient.getMonitorInfoListByCond(param).getData(); //获取部门结构 List deptInfos = deptFeignClient.getDeptDescendantIndexes(orgId, WebUtil.filterDeptType()).getData(); @@ -144,22 +158,50 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl powers = getPowers(deptDTOS.get(0).getCode(), data); + powers.addAll(recursionSelectList(orgId, deptInfos, data)); + tree.setChildren(powers); monitorTrees.add(tree); return monitorTrees; } @Override @Transactional(rollbackFor = {Exception.class}) - public Boolean bindMonitor(List param) { - //删除之前数据 + public Boolean bindMonitor(MonitorParam param) { + //删除之前数据(根据部门和策略类型) LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(ThsDeptAlarm::getDeptId, param.get(0).getDeptId()); - lambdaQueryWrapper.in(ThsDeptAlarm::getAlarmId, param.get(0).getDeptId()); - lambdaQueryWrapper.in(ThsDeptAlarm::getType, param.get(0).getType()); + lambdaQueryWrapper.eq(ThsDeptAlarm::getDeptId, param.getDeptId()); + lambdaQueryWrapper.eq(ThsDeptAlarm::getType, param.getType()); thsDeptAlarmService.remove(lambdaQueryWrapper); - return thsDeptAlarmService.saveBatch(param); + + //信息添加 + List info=new ArrayList(); + List alarmIds= param.getAlarmId(); + List monitorIds= param.getMonitorId(); + String deptId= param.getDeptId(); + Integer type= param.getType(); + //便利信息 + ThsDeptAlarm alarm; + for (String s : alarmIds) { + for (String monitorId : monitorIds) { + alarm=new ThsDeptAlarm(); + alarm.setDeptId(deptId); + alarm.setType(type); + alarm.setAlarmId(s); + alarm.setMonitorId(monitorId); + info.add(alarm); + } + } + return thsDeptAlarmService.saveBatch(info); + } + + @Override + public List echoMonitor(String org,Integer type) { + List list = thsDeptAlarmService.list(new LambdaQueryWrapper() + .eq(ThsDeptAlarm::getDeptId, org) + .eq(ThsDeptAlarm::getType, type) + ); + return list.stream().map(ThsDeptAlarm::getMonitorId).distinct().collect(Collectors.toList()); } @Override @@ -213,8 +255,9 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl children = recursionSelectList(customer.getId(), deptInfos, data); + List children = new ArrayList<>(); + children.addAll(getPowers(customer.getCode(), data)); + children.addAll(recursionSelectList(customer.getId(), deptInfos, data)); tree.setChildren(children); menuSelectList.add(tree); })); @@ -229,9 +272,9 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl */ - private static List getPowers(String orgCode, List data) { + private static List getPowers(String orgCode, List data) { //变电站信息初始化 - List powers = new ArrayList<>(); + List powers = new ArrayList<>(); //获取监测点信息 List monitorDTOS = data.stream().filter(dept -> dept.getOrgId().equals(orgCode)).collect(Collectors.toList()); Map> collect = monitorDTOS.stream().collect( @@ -239,18 +282,18 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl { String[] split = key.split("_"); - StrategyParam.Power power = new StrategyParam.Power(); + StrategyParam.MonitorTree power = new StrategyParam.MonitorTree(); power.setId(split[0]); - power.setName(split[1]); + power.setName("变电站名称: "+split[1]); //监测点信息 - List monitors = new ArrayList(); + List monitors = new ArrayList(); for (PmsMonitorDTO dto : value) { - StrategyParam.Power childMonitor = new StrategyParam.Power(); + StrategyParam.Monitor childMonitor = new StrategyParam.Monitor(); childMonitor.setId(dto.getId()); - childMonitor.setName(dto.getName()); + childMonitor.setName("监测点名称: "+getMonitorEventCountdto.getName()); monitors.add(childMonitor); } - power.setChildMonitor(monitors); + power.setChildren(monitors); powers.add(power); }); return powers;