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 new file mode 100644 index 000000000..7fa217b1c --- /dev/null +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/StrategyParam.java @@ -0,0 +1,152 @@ +package com.njcn.process.pojo.param; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; +import com.njcn.process.pojo.po.ThsWarnStrategyAss; +import com.njcn.user.pojo.constant.UserValidMessage; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.List; + +/** + * <功能描述> + * + * @author wr + * @createTime: 2023-03-10 + */ +@Data +public class StrategyParam { + + @Data + public static class StrategyPageParam extends StrategyParam { + + @ApiModelProperty(value = "页码") + private Integer PageNum; + + @ApiModelProperty(value = "条数") + private Integer PageSize; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty(value = "区分预警单/告警单(0:预警单 ;1:告警单)") + private Integer type; + } + + @Data + public static class StrategyInsertParam { + + @ApiModelProperty(value = "预警单id") + private String id; + + @ApiModelProperty(value = "预警单名称") + @NotBlank(message = "名称不能为空") + private String name; + + @ApiModelProperty(value = "等级(0:一级;1:二级;2:三级)") + @NotNull(message = "等级不能为空") + private Integer grade; + + @ApiModelProperty(value = "区分预警单还是告警单(0:预警单;1:告警单)") + @NotNull(message = "区分类别不能为空") + private Integer type; + + } + + @Data + public static class BindParam { + + @ApiModelProperty(value = "预警单id") + @NotBlank(message = "id不能为空") + private String id; + + @ApiModelProperty(value = "关系(0:与;1:或)只存在于指标类型中") + @TableField("Operation") + private Integer operation; + + @ApiModelProperty(value = "监测点标签") + @NotBlank(message = "监测点标签不能为空") + private String monitorTag; + + @ApiModelProperty(value = "指标类型") + @NotEmpty(message = "指标类型集合不能为空") + private List indicatorTypes; + } + @Data + public static class BindMonitorParam { + + } + + @Data + public static class StrategyUpdateParam { + @ApiModelProperty(value = "预警单id") + private String id; + + @ApiModelProperty(value = "预警单名称") + @NotBlank(message = "名称不能为空") + private String name; + + @ApiModelProperty(value = "等级(0:一级;1:二级;2:三级)") + @NotNull(message = "等级不能为空") + private Integer grade; + + @ApiModelProperty(value = "关系(0:与;1:或)只存在于指标类型中") + @TableField("Operation") + private Integer operation; + + @ApiModelProperty(value = "监测点标签") + @NotBlank(message = "监测点标签不能为空") + private String monitorTag; + + @ApiModelProperty(value = "指标类型") + @NotEmpty(message = "指标类型集合不能为空") + private List indicatorTypes; + + } + + @Data + public static class StrategyStateParam { + @ApiModelProperty(value = "预警单id") + @NotBlank(message = "id不能为空") + private String id; + + @ApiModelProperty(value = "0.删除 1.正常") + private Integer state; + + } + @Data + public static class MonitorTree { + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("变电站信息") + private List childPower ; + + @ApiModelProperty("子节点详细信息") + private List children ; + } + + @Data + public static class Power { + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("监测点信息") + private List childMonitor ; + } + +} diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsDeptAlarm.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsDeptAlarm.java new file mode 100644 index 000000000..e1d72d6ec --- /dev/null +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsDeptAlarm.java @@ -0,0 +1,45 @@ +package com.njcn.process.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author wr + * @since 2023-03-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("ths_dept_alarm") +@ApiModel(value="ThsDeptAlarm对象", description="") +public class ThsDeptAlarm implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "单位id") + @TableId(value = "Dept_Id", type = IdType.ASSIGN_ID) + private String deptId; + + @ApiModelProperty(value = "类型 0.预警策略 1.告警策略") + private Integer type; + + @ApiModelProperty(value = "预警策略/告警策略id") + @TableField("Alarm_Id") + private String alarmId; + + @ApiModelProperty(value = "监测点id") + @TableField("Monitor_Id") + private String monitorId; + + +} 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 new file mode 100644 index 000000000..1c594a784 --- /dev/null +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategy.java @@ -0,0 +1,59 @@ +package com.njcn.process.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author wr + * @since 2023-03-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("ths_warn_strategy") +@ApiModel(value="ThsWarnStrategy对象", description="") +public class ThsWarnStrategy implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "预警单id") + @TableId(value = "Id", type = IdType.ASSIGN_ID) + private String id; + + @ApiModelProperty(value = "预警单名称") + @TableField("Name") + private String name; + + @ApiModelProperty(value = "等级(0:一级;1:二级;2:三级)") + @TableField("Grade") + private Integer grade; + + @ApiModelProperty(value = "关系(0:与;1:或)只存在于指标类型中") + @TableField("Operation") + private Integer operation; + + @ApiModelProperty(value = "区分预警单还是告警单(0:预警单;1:告警单)") + private Integer type; + + @ApiModelProperty(value = "0.删除 1.正常") + @TableField("State") + private Integer state; + + @TableField("Create_By") + private String createBy; + + @TableField("Update_By") + private String updateBy; + + +} diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategyAss.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategyAss.java new file mode 100644 index 000000000..e8e5b5db0 --- /dev/null +++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/ThsWarnStrategyAss.java @@ -0,0 +1,42 @@ +package com.njcn.process.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author wr + * @since 2023-03-10 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("ths_warn_strategy_ass") +@ApiModel(value="ThsWarnStrategyAss对象", description="") +public class ThsWarnStrategyAss implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "预警单策略id(外键)") + @TableId(value = "Warn_Id", type = IdType.ASSIGN_ID) + private String warnId; + + @ApiModelProperty(value = "此部分的ID是根据Type来的") + @TableField("Ass_Id") + private String assId; + + @ApiModelProperty(value = "等级(0:监测点标签类型;1:指标类型;)") + @TableField("Type") + 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 new file mode 100644 index 000000000..7e21d26ac --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/ThsWarnStrategyController.java @@ -0,0 +1,106 @@ +package com.njcn.process.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.annotation.OperateInfo; +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.StrategyParam; +import com.njcn.process.pojo.po.ThsWarnStrategy; +import com.njcn.process.service.ThsWarnStrategyService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + + +/** + *

+ * 前端控制器 + *

+ * + * @author wr + * @since 2023-03-10 + */ +@RestController +@RequestMapping("/process/thsWarnStrategy") +@Api(tags = "(预警单-告警单)策略") +@RequiredArgsConstructor +public class ThsWarnStrategyController extends BaseController { + + private final ThsWarnStrategyService thsWarnStrategyService; + + @PostMapping("/getStrategyPage") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("预警单/告警单策略分页查询") + public HttpResult> getStrategyPage(@RequestBody @Validated StrategyParam.StrategyPageParam param) { + String methodDescribe = getMethodDescribe("getStrategyPage"); + Page page = thsWarnStrategyService.strategyPage(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } + + @PostMapping("/insertStrategy") + @ApiOperation(value = "预警单/告警单单条新增") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult insertStrategy(@RequestBody @Validated StrategyParam.StrategyInsertParam param) { + String methodDescribe = getMethodDescribe("insertStrategy"); + Boolean flag = thsWarnStrategyService.insertStrategy(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @PostMapping("/bindStrategy") + @ApiOperation(value = "预警单/告警单信息绑定") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult bindStrategy(@RequestBody @Validated StrategyParam.BindParam param) { + String methodDescribe = getMethodDescribe("bindStrategy"); + Boolean flag = thsWarnStrategyService.bindStrategy(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @PostMapping("/getUpdateStrategy") + @ApiOperation(value = "预警单/告警单修改详细查询") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult getUpdateStrategy(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("getUpdateStrategy"); + StrategyParam.StrategyUpdateParam updateStrategy = thsWarnStrategyService.getUpdateStrategy(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, updateStrategy, methodDescribe); + } + + @PostMapping("/updateStrategy") + @ApiOperation(value = "预警单/告警单修改") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult updateStrategy(@RequestBody @Validated StrategyParam.StrategyUpdateParam param) { + String methodDescribe = getMethodDescribe("updateStrategy"); + Boolean flag = thsWarnStrategyService.updateStrategy(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @PostMapping("/updateStrategyState") + @ApiOperation(value = "预警单/告警单修改状态") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult updateStrategyState(@RequestBody @Validated StrategyParam.StrategyStateParam param) { + String methodDescribe = getMethodDescribe("updateStrategyState"); + Boolean flag = thsWarnStrategyService.updateStrategyState(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } + + @PostMapping("/getMonitor") + @ApiOperation(value = "监测点查询接口") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + public HttpResult> getMonitor(@Param("monitorTag") String monitorTag,@Param("orgId") String orgId) { + String methodDescribe = getMethodDescribe("getMonitor"); + List monitor = thsWarnStrategyService.getMonitor(monitorTag, orgId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitor, methodDescribe); + } + + +} + diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsDeptAlarmMapper.java b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsDeptAlarmMapper.java new file mode 100644 index 000000000..1b3ae435c --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsDeptAlarmMapper.java @@ -0,0 +1,16 @@ +package com.njcn.process.mapper; + +import com.njcn.process.pojo.po.ThsDeptAlarm; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2023-03-10 + */ +public interface ThsDeptAlarmMapper extends BaseMapper { + +} diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsWarnStrategyAssMapper.java b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsWarnStrategyAssMapper.java new file mode 100644 index 000000000..364d54c0b --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsWarnStrategyAssMapper.java @@ -0,0 +1,16 @@ +package com.njcn.process.mapper; + +import com.njcn.process.pojo.po.ThsWarnStrategyAss; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2023-03-10 + */ +public interface ThsWarnStrategyAssMapper extends BaseMapper { + +} diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsWarnStrategyMapper.java b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsWarnStrategyMapper.java new file mode 100644 index 000000000..4ad7cc528 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/ThsWarnStrategyMapper.java @@ -0,0 +1,38 @@ +package com.njcn.process.mapper; + +import com.njcn.process.pojo.param.StrategyParam; +import com.njcn.process.pojo.po.ThsWarnStrategy; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author wr + * @since 2023-03-10 + */ +public interface ThsWarnStrategyMapper extends BaseMapper { + + /*** + * 预警单/告警单修改详细查询 + * @author wr + * @date 2023-03-10 13:31 + * @param id + * @return StrategyUpdateParam + */ + StrategyParam.StrategyUpdateParam selectUpdateStrategy(@Param("id") String id); + + + /*** + * 获取指标明细id + * @author wr + * @date 2023-03-10 13:46 + * @param id + * @return List + */ + List getStrategyDetail(@Param("id") String id); +} diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsDeptAlarmMapper.xml b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsDeptAlarmMapper.xml new file mode 100644 index 000000000..faf817dda --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsDeptAlarmMapper.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsWarnStrategyAssMapper.xml b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsWarnStrategyAssMapper.xml new file mode 100644 index 000000000..4b4c37ce3 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsWarnStrategyAssMapper.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsWarnStrategyMapper.xml b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsWarnStrategyMapper.xml new file mode 100644 index 000000000..4e727d9f3 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/mapper/mapping/ThsWarnStrategyMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyAssService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyAssService.java new file mode 100644 index 000000000..c324b3b19 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyAssService.java @@ -0,0 +1,16 @@ +package com.njcn.process.service; + +import com.njcn.process.pojo.po.ThsWarnStrategyAss; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 服务类 + *

+ * + * @author wr + * @since 2023-03-10 + */ +public interface ThsWarnStrategyAssService extends IService { + +} 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 new file mode 100644 index 000000000..36c2d6230 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/ThsWarnStrategyService.java @@ -0,0 +1,107 @@ +package com.njcn.process.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO; +import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam; +import com.njcn.process.pojo.param.StrategyParam; +import com.njcn.process.pojo.po.ThsWarnStrategy; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author wr + * @since 2023-03-10 + */ +public interface ThsWarnStrategyService extends IService { + + /*** + * 预警单/告警单列表 + * @author wr + * @date 2023-02-27 13:58 + * @param param + * @return Page + */ + Page strategyPage(StrategyParam.StrategyPageParam param); + + + /*** + * 预警单/告警单单条新增 + * @author wr + * @date 2023-02-27 14:02 + * @param param + * @return Boolean + */ + Boolean insertStrategy(StrategyParam.StrategyInsertParam param); + + + /*** + * 预警单/告警单绑定 + * @author wr + * @date 2023-02-27 14:02 + * @param param + * @return Boolean + */ + Boolean bindStrategy(StrategyParam.BindParam param); + + /*** + * 预警单/告警单修改详细查询 + * @author wr + * @date 2023-03-10 13:31 + * @param id + * @return StrategyUpdateParam + */ + StrategyParam.StrategyUpdateParam getUpdateStrategy(String id); + + /*** + * 预警单/告警单修改 + * @author wr + * @date 2023-02-27 14:02 + * @param param + * @return Boolean + */ + Boolean updateStrategy(StrategyParam.StrategyUpdateParam param); + + /*** + * 预警单/告警单修改状态 + * @author wr + * @date 2023-02-27 14:02 + * @param param + * @return Boolean + */ + Boolean updateStrategyState(StrategyParam.StrategyStateParam param); + + /*** + * 监测点查询接口 + * @author wr + * @date 2023-03-10 14:52 + * @param monitorTag + * @return List + */ + List getMonitor(String monitorTag,String orgId); + + + /*** + * 监测点绑定 + * @author wr + * @date 2023-02-27 14:02 + * @param param + * @return Boolean + */ + Boolean bindMonitor(StrategyParam.BindMonitorParam param); + + + /*** + * 预警单/告警单删除 + * @author wr + * @date 2023-02-27 14:02 + * @param ids + * @return Boolean + */ + Boolean delStrategy(List ids); +} diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java index 068a49054..bc523360c 100644 --- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/PmsTerminalDetectionServiceImpl.java @@ -13,6 +13,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.pms.enums.PmsDeviceResponseEnum; +import com.njcn.oss.constant.OssPath; +import com.njcn.oss.utils.FileStorageUtil; import com.njcn.poi.excel.ExcelUtil; import com.njcn.poi.util.PoiUtil; import com.njcn.process.pojo.dto.excel.TerminalExcel; @@ -51,6 +53,7 @@ import java.util.stream.Collectors; public class PmsTerminalDetectionServiceImpl extends ServiceImpl implements PmsTerminalDetectionService { private final DeptFeignClient deptFeignClient; + private final FileStorageUtil fileStorageUtil; @Override public Page terminalPage(TerminalParam.TerminalPageParam param) { @@ -139,19 +142,21 @@ public class PmsTerminalDetectionServiceImpl extends ServiceImpl 0) { if (split[1].substring(0, split[1].indexOf(".")).equals("检测报告")) { //todo 文件名称 - detection.setInspectionReport(originalFilename); + detection.setInspectionReport(url); detection.setId(split[0]); data.add(detection); } if (split[1].substring(0, split[1].indexOf(".")).equals("原始数据报告")) { //todo 文件名称 - detection.setOriginalReport(originalFilename); + detection.setOriginalReport(url); detection.setId(split[0]); data.add(detection); } diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyAssServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyAssServiceImpl.java new file mode 100644 index 000000000..d9005cf05 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyAssServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.process.service.impl; + +import com.njcn.process.pojo.po.ThsWarnStrategyAss; +import com.njcn.process.mapper.ThsWarnStrategyAssMapper; +import com.njcn.process.service.ThsWarnStrategyAssService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author wr + * @since 2023-03-10 + */ +@Service +public class ThsWarnStrategyAssServiceImpl extends ServiceImpl implements ThsWarnStrategyAssService { + +} 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 new file mode 100644 index 000000000..43d979312 --- /dev/null +++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsWarnStrategyServiceImpl.java @@ -0,0 +1,197 @@ +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.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; +import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO; +import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam; +import com.njcn.device.pms.pojo.param.PmsMonitorParam; +import com.njcn.process.pojo.param.StrategyParam; +import com.njcn.process.pojo.po.ThsWarnStrategy; +import com.njcn.process.mapper.ThsWarnStrategyMapper; +import com.njcn.process.pojo.po.ThsWarnStrategyAss; +import com.njcn.process.service.ThsWarnStrategyService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.RequestUtil; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author wr + * @since 2023-03-10 + */ +@Service +@RequiredArgsConstructor +public class ThsWarnStrategyServiceImpl extends ServiceImpl implements ThsWarnStrategyService { + + private final ThsWarnStrategyAssServiceImpl thsWarnStrategyAssService; + private final MonitorClient monitorClient; + private final DeptFeignClient deptFeignClient; + + @Override + public Page strategyPage(StrategyParam.StrategyPageParam param) { + return this.page(new Page<>(param.getPageNum(), param.getPageSize()) + , new LambdaQueryWrapper() + .like(StrUtil.isNotBlank(param.getName()), ThsWarnStrategy::getName, param.getName()) + .le(param.getType() != 0, ThsWarnStrategy::getType, param.getType()) + + ); + } + + @Override + public Boolean insertStrategy(StrategyParam.StrategyInsertParam param) { + ThsWarnStrategy thsWarnStrategy = BeanUtil.copyProperties(param, ThsWarnStrategy.class); + thsWarnStrategy.setCreateBy(RequestUtil.getLoginName()); + thsWarnStrategy.setState(1); + return this.save(thsWarnStrategy); + } + + @Override + public Boolean bindStrategy(StrategyParam.BindParam param) { + List assList=new ArrayList<>(); + //监测点标签绑定 + ThsWarnStrategyAss ass=new ThsWarnStrategyAss(); + ass.setWarnId(param.getId()); + ass.setAssId(param.getMonitorTag()); + ass.setType(0); + assList.add(ass); + //指标类型绑定 + ThsWarnStrategyAss assType; + for (String indicatorType : param.getIndicatorTypes()) { + assType=new ThsWarnStrategyAss(); + assType.setWarnId(param.getId()); + assType.setAssId(indicatorType); + assType.setType(1); + assList.add(assType); + } + thsWarnStrategyAssService.saveBatch(assList); + ThsWarnStrategy warnStrategy=new ThsWarnStrategy(); + warnStrategy.setId(param.getId()); + warnStrategy.setOperation(param.getOperation()); + return this.updateById(warnStrategy); + + } + + @Override + public StrategyParam.StrategyUpdateParam getUpdateStrategy(String id) { + return this.baseMapper.selectUpdateStrategy(id); + } + + @Override + public Boolean updateStrategy(StrategyParam.StrategyUpdateParam param) { + ThsWarnStrategy thsWarnStrategy = BeanUtil.copyProperties(param, ThsWarnStrategy.class); + return this.updateById(thsWarnStrategy); + } + + @Override + public Boolean updateStrategyState(StrategyParam.StrategyStateParam param) { + ThsWarnStrategy thsWarnStrategy = new ThsWarnStrategy(); + thsWarnStrategy.setId(param.getId()); + thsWarnStrategy.setState(param.getState()); + return this.updateById(thsWarnStrategy); + } + + @Override + public List getMonitor(String monitorTag,String orgId) { + PmsMonitorParam param = new PmsMonitorParam(); + param.setMonitorTags(Arrays.asList(monitorTag)); + List data = monitorClient.getMonitorInfoListByCond(param).getData(); + //获取部门结构 + List deptInfos = deptFeignClient.getDeptDescendantIndexes(orgId, WebUtil.filterDeptType()).getData(); + + List deptDTOS = deptInfos.stream().filter(org -> org.getId().equals(orgId)).collect(Collectors.toList()); + + List monitorTrees =new ArrayList<>(); + StrategyParam.MonitorTree tree=new StrategyParam.MonitorTree(); + tree.setId(deptDTOS.get(0).getId()); + tree.setName(deptDTOS.get(0).getName()); + tree.setChildPower(getPowers(deptDTOS.get(0).getCode(),data)); + tree.setChildren( recursionSelectList(orgId, deptInfos,data)); + monitorTrees.add(tree); + return monitorTrees; + } + + /** + * 递归生成监测点树 + * @param orgId + * @param deptInfos + * @param data + * @return + */ + private static List recursionSelectList(String orgId, List deptInfos, List data) { + List menuSelectList = new ArrayList<>(); + Optional.ofNullable(deptInfos).ifPresent(customers -> customers.stream() + .filter(org -> org.getPid().equals(orgId)) + .forEach(customer -> { + StrategyParam.MonitorTree tree = new StrategyParam.MonitorTree(); + tree.setId(customer.getId()); + tree.setName(customer.getName()); + tree.setChildPower(getPowers(customer.getCode(),data)); + List children = recursionSelectList(customer.getId(), deptInfos,data); + tree.setChildren(children); + menuSelectList.add(tree); + })); + return menuSelectList; + } + + /*** + * 生成变电站包含监测点集合 + * @author wr + * @date 2023-03-10 16:19 + * @param orgCode + * @param data + * @return List + */ + private static List getPowers(String orgCode, List data){ + //变电站信息初始化 + List powers=new ArrayList<>(); + //获取监测点信息 + List monitorDTOS = data.stream().filter(dept -> dept.getOrgId().equals(orgCode)).collect(Collectors.toList()); + Map> collect = monitorDTOS.stream().collect( + Collectors.groupingBy(c-> c.getPowerrId()+ "_" + c.getPowerrName())); + //获取变电站和监测点信息 + collect.forEach((key,value)->{ + String[] split = key.split("_"); + StrategyParam.Power power=new StrategyParam.Power(); + power.setId(split[0]); + power.setName(split[1]); + //监测点信息 + List monitors=new ArrayList(); + for (PmsMonitorDTO dto : value) { + StrategyParam.Power childMonitor=new StrategyParam.Power(); + childMonitor.setId(dto.getId()); + childMonitor.setName(dto.getName()); + monitors.add(childMonitor); + } + power.setChildMonitor(monitors); + powers.add(power); + }); + return powers; + } + + @Override + public Boolean bindMonitor(StrategyParam.BindMonitorParam param) { + return null; + } + + @Override + public Boolean delStrategy(List ids) { + Assert.isTrue(CollectionUtil.isNotEmpty(ids) , "id为空,不能删除"); + return this.removeByIds(ids); + } +}