From ec073555ab03ef7ec3233da0423d16e167de2d40 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Fri, 10 Nov 2023 16:39:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=81=BF=E8=83=BD=E4=BA=91=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E7=A7=BB=E6=A4=8D,=E5=AE=9E=E6=97=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app-cloud/app-cloud-api/pom.xml | 23 +- .../njcn/cloud/enums/app/TypeCodeEnum.java | 73 +- .../com/njcn/cloud/pojo/dto/AppDevMsg.java | 53 ++ .../com/njcn/cloud/pojo/dto/AppDevMsgAss.java | 53 ++ .../com/njcn/cloud/pojo/dto/AppEventInfo.java | 2 - .../com/njcn/cloud/pojo/dto/AppEventMsg.java | 7 +- .../com/njcn/cloud/pojo/dto/AppInfoSet.java | 50 ++ .../com/njcn/cloud/pojo/dto/DeptLine.java | 28 - .../njcn/cloud/pojo/dto/RMpEventDetail.java | 130 ---- .../java/com/njcn/cloud/pojo/vo/DevComTJ.java | 18 + .../com/njcn/cloud/pojo/vo/DevMsgAssInfo.java | 51 ++ .../njcn/cloud/pojo/vo/DevMsgDetailInfo.java | 83 +++ .../njcn/cloud/pojo/vo/EventInfoDetailVO.java | 6 +- .../njcn/cloud/pojo/vo/EventMsgDetailVO.java | 11 +- .../com/njcn/cloud/pojo/vo/LineDetailVO.java | 35 - .../java/com/njcn/cloud/pojo/vo/MsgInfo.java | 22 + .../com/njcn/cloud/pojo/vo/SteadyUrlData.java | 24 + .../java/com/njcn/cloud/utils/PubUtil.java | 24 + .../java/com/njcn/cloud/utils/SmsUtil.java | 8 +- app-cloud/app-cloud-boot/pom.xml | 39 +- .../njcn/cloud/AppCloudBootApplication.java | 2 + .../information/CleanMsgInfoController.java | 71 ++ .../information/DevMsgController.java | 103 +++ .../information/SteadyMsgController.java | 53 +- .../message/EventMsgPushController.java | 137 ++++ .../njcn/cloud/mapper/AppDevMsgMapper.java | 18 + .../njcn/cloud/mapper/AppEventInfoMapper.java | 40 -- .../njcn/cloud/mapper/AppEventMsgMapper.java | 17 - .../njcn/cloud/mapper/AppInfoSetMapper.java | 16 + .../njcn/cloud/mapper/AppSteadyUrlMapper.java | 45 ++ .../com/njcn/cloud/mapper/AppUserMapper.java | 10 - .../com/njcn/cloud/mapper/LineMapper.java | 23 - .../cloud/mapper/mapping/AppDevMsgMapper.xml | 6 + .../mapper/mapping/AppEventInfoMapper.xml | 115 +--- .../mapper/mapping/AppEventMsgMapper.xml | 44 -- .../cloud/mapper/mapping/AppInfoSetMapper.xml | 5 + .../mapper/mapping/AppSteadyUrlMapper.xml | 146 ++++ .../cloud/mapper/mapping/AppUserMapper.xml | 8 - .../njcn/cloud/mapper/mapping/LineMapper.xml | 37 -- .../impl/user/AppDevMsgServiceImpl.java | 129 ++++ .../impl/user/AppEventInfoServiceImpl.java | 43 +- .../impl/user/AppEventMsgServiceImpl.java | 110 ++- .../impl/user/AppInfoSetServiceImpl.java | 20 + .../impl/user/AppReportServiceImpl.java | 52 +- .../impl/user/AppSteadyMsgServiceImpl.java | 626 +++++++++++++++++- .../service/impl/user/MsgServiceImpl.java | 272 ++++++++ .../cloud/service/user/IAppDevMsgService.java | 69 ++ .../service/user/IAppInfoSetService.java | 17 + .../service/user/IAppSteadyMsgService.java | 40 +- .../njcn/cloud/service/user/MsgService.java | 29 + .../src/main/resources/bootstrap.yml | 4 +- 51 files changed, 2405 insertions(+), 642 deletions(-) create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsg.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsgAss.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppInfoSet.java delete mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/DeptLine.java delete mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/RMpEventDetail.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevComTJ.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgAssInfo.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgDetailInfo.java delete mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/LineDetailVO.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/MsgInfo.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/SteadyUrlData.java create mode 100644 app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/PubUtil.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/CleanMsgInfoController.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/DevMsgController.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/message/EventMsgPushController.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppDevMsgMapper.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppInfoSetMapper.java delete mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/LineMapper.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppDevMsgMapper.xml create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppInfoSetMapper.xml delete mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/LineMapper.xml create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppDevMsgServiceImpl.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppInfoSetServiceImpl.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/MsgServiceImpl.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppDevMsgService.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppInfoSetService.java create mode 100644 app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/MsgService.java diff --git a/app-cloud/app-cloud-api/pom.xml b/app-cloud/app-cloud-api/pom.xml index 50a0793..aa6d764 100644 --- a/app-cloud/app-cloud-api/pom.xml +++ b/app-cloud/app-cloud-api/pom.xml @@ -31,7 +31,28 @@ common-microservice ${project.version} - + + org.apache.poi + poi-ooxml + 4.1.2 + compile + + + com.aliyun + aliyun-java-sdk-dysmsapi + 2.2.1 + + + com.aliyun + aliyun-java-sdk-core + 4.6.3 + + + com.njcn + user-api + 1.0.0 + compile + UTF-8 diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/enums/app/TypeCodeEnum.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/enums/app/TypeCodeEnum.java index 7b8fd91..ec4145a 100644 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/enums/app/TypeCodeEnum.java +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/enums/app/TypeCodeEnum.java @@ -1,6 +1,5 @@ package com.njcn.cloud.enums.app; -import lombok.Data; /** * @Description: 指标编码 @@ -63,38 +62,54 @@ public enum TypeCodeEnum { IHARM_24_OVERTIME(53, "24次电流谐波幅值越限"), IHARM_25_OVERTIME(54, "25次电流谐波幅值越限"); - private int code; + private int code; - private String type; - - TypeCodeEnum(int code, String type){ + private String type; + + TypeCodeEnum(int code,String type){ this.code = code; this.type = type; } - public static String getMsgByCode(int code){ - for (TypeCodeEnum typeCodeEnum : TypeCodeEnum.values()) { - if (typeCodeEnum.code==code) { - return typeCodeEnum.type; - } - } - return ""; - } + public int getCode() { + return code; + } - public static int getCodeByMsg(String type){ - for (TypeCodeEnum typeCodeEnum : TypeCodeEnum.values()) { - if (typeCodeEnum.type.equalsIgnoreCase(type)) { - return typeCodeEnum.code; - } - } - return 0; - } - - @Override - public String toString() { - return "TypeCodeEnum{" + - "code=" + code + - ", type='" + type + '\'' + - '}'; - } + public String getType() { + return type; + } + + public void setCode(int code) { + this.code = code; + } + + public void setType(String type) { + this.type = type; + } + + public static String getMsgByCode(int code){ + for (TypeCodeEnum typeCodeEnum : TypeCodeEnum.values()) { + if (typeCodeEnum.code==code) { + return typeCodeEnum.type; + } + } + return ""; + } + + public static int getCodeByMsg(String type){ + for (TypeCodeEnum typeCodeEnum : TypeCodeEnum.values()) { + if (typeCodeEnum.type.equalsIgnoreCase(type)) { + return typeCodeEnum.code; + } + } + return 0; + } + + @Override + public String toString() { + return "TypeCodeEnum{" + + "code=" + code + + ", type='" + type + '\'' + + '}'; + } } \ No newline at end of file diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsg.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsg.java new file mode 100644 index 0000000..05b435c --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsg.java @@ -0,0 +1,53 @@ +package com.njcn.cloud.pojo.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 终端消息 + *

+ * + * @author wr + * @since 2023-11-07 + */ +@Getter +@Setter +@TableName("app_dev_msg") +@ApiModel(value = "AppDevMsg对象", description = "终端消息") +public class AppDevMsg { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("终端消息列表Guid") + @TableId("DevMsg_Index") + private String devmsgIndex; + + @ApiModelProperty("(关联pqs_top_msg表top_Id)消息id") + @TableField("Top_Id") + private String topId; + + @ApiModelProperty("(关联app_user表User_Index)权限用户id") + @TableField("User_Index") + private String userIndex; + + @ApiModelProperty("统计时间") + @TableField("Time_Id") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime timeId; + + @ApiModelProperty("读取状态(0:未读,1:已读,2:删除)") + @TableField("State") + private Integer state; + + +} diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsgAss.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsgAss.java new file mode 100644 index 0000000..642de23 --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppDevMsgAss.java @@ -0,0 +1,53 @@ +package com.njcn.cloud.pojo.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; +import java.time.LocalDateTime; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 终端消息详情 + *

+ * + * @author wr + * @since 2023-11-07 + */ +@Getter +@Setter +@TableName("app_dev_msg_ass") +@ApiModel(value = "AppDevMsgAss对象", description = "终端消息详情") +public class AppDevMsgAss { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("终端消息列表Guid") + @TableField("DevMsg_Index") + private String devmsgIndex; + + @ApiModelProperty("统计时间") + @TableField("Time_Id") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime timeId; + + @ApiModelProperty("(关联pq_device表dev_index)") + @TableField("Dev_Index") + private Integer devIndex; + + @TableField("Alarm_Num") + private Integer alarmNum; + + @TableField("ComOut_NUM") + private Integer comoutNum; + + @TableField("Flow_Num") + private Float flowNum; + + +} diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventInfo.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventInfo.java index db9c11f..fbb8c61 100644 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventInfo.java +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventInfo.java @@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; -import com.njcn.db.bo.BaseEntity; -import java.io.Serializable; import java.time.LocalDateTime; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventMsg.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventMsg.java index 1cfc1dc..8d98537 100644 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventMsg.java +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppEventMsg.java @@ -1,6 +1,7 @@ package com.njcn.cloud.pojo.dto; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.njcn.db.bo.BaseEntity; import java.io.Serializable; @@ -27,7 +28,7 @@ public class AppEventMsg { private static final long serialVersionUID = 1L; @ApiModelProperty("暂态消息Guid") - @TableField("EventMsg_Index") + @TableId("EventMsg_Index") private String eventmsgIndex; @ApiModelProperty("(关联app_user表User_Index)权限用户id") @@ -36,11 +37,11 @@ public class AppEventMsg { @ApiModelProperty("(关联表PQS_EventDetail)事件总表Guid") @TableField("EventDetail_Index") - private LocalDateTime eventdetailIndex; + private String eventdetailIndex; @ApiModelProperty("读取状态(0:未读,1:已读,2:删除)") @TableField("state") - private String state; + private Integer state; } diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppInfoSet.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppInfoSet.java new file mode 100644 index 0000000..e0bfad7 --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/AppInfoSet.java @@ -0,0 +1,50 @@ +package com.njcn.cloud.pojo.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * 推送消息设置 + *

+ * + * @author wr + * @since 2023-11-10 + */ +@Getter +@Setter +@TableName("app_info_set") +@ApiModel(value = "AppInfoSet对象", description = "推送消息设置") +public class AppInfoSet extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("用户索引") + @TableId("User_Index") + private String userIndex; + + @ApiModelProperty("0:false ;1:true 暂态消息模块") + @TableField("Event_Info") + private Integer eventInfo; + + @ApiModelProperty("0:false ;1:true 稳态消息模块") + @TableField("Target_Info") + private Integer targetInfo; + + @ApiModelProperty("0:false ;1:true 终端消息模块") + @TableField("Device_Info") + private Integer deviceInfo; + + @ApiModelProperty("0:false ;1:true 系统消息模块") + @TableField("System_Info") + private Integer systemInfo; + + +} diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/DeptLine.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/DeptLine.java deleted file mode 100644 index b70e147..0000000 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/DeptLine.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.njcn.cloud.pojo.dto; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -/** - * @Description: 部门监测点关系表 - * @Author: wr - * @Date: 2023/11/1 10:33 - */ -@Data -@TableName("pq_dept_line") -public class DeptLine { - - private static final long serialVersionUID = 1L; - - /** - * 部门Id - */ - private String id; - - /** - * 监测点Id - */ - private String lineId; - - -} diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/RMpEventDetail.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/RMpEventDetail.java deleted file mode 100644 index cad565c..0000000 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/dto/RMpEventDetail.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.njcn.cloud.pojo.dto; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.njcn.db.bo.BaseEntity; -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Getter; -import lombok.Setter; - -/** - *

- * - *

- * - * @author wr - * @since 2023-11-02 - */ -@Getter -@Setter -@TableName("r_mp_event_detail") -@ApiModel(value = "RMpEventDetail对象", description = "") -public class RMpEventDetail { - - private static final long serialVersionUID = 1L; - - @ApiModelProperty("暂时事件ID") - @TableId("event_id") - private String eventId; - - @ApiModelProperty("监测点ID") - @TableField("measurement_point_id") - private String measurementPointId; - - @ApiModelProperty("开始时间") - @TableField("start_time") - private LocalDateTime startTime; - - @ApiModelProperty("统计指标类型(字典表PQS_Dicdata)") - @TableField("event_type") - private String eventType; - - @ApiModelProperty("暂降原因(字典表PQS_Dicdata)") - @TableField("advance_reason") - private String advanceReason; - - @ApiModelProperty("暂降类型(字典表PQS_Dicdata)") - @TableField("advance_type") - private String advanceType; - - @ApiModelProperty("事件关联分析表Guid") - @TableField("eventass_index") - private String eventassIndex; - - @TableField("dq_time") - private Double dqTime; - - @ApiModelProperty("特征值计算更新时间(外键PQS_Relevance的Time字段)") - @TableField("deal_time") - private LocalDateTime dealTime; - - @ApiModelProperty("默认事件个数为0") - @TableField("num") - private Integer num; - - @ApiModelProperty("波形文件是否从装置招到本地(0:未招,1:已招)默认值为0") - @TableField("file_flag") - private Boolean fileFlag; - - @ApiModelProperty("特征值计算标志(0,未处理;1,已处理; 2,已处理,无结果;3,计算失败)默认值为0") - @TableField("deal_flag") - private Boolean dealFlag; - - @ApiModelProperty("处理结果第一条事件发生时间(读comtra文件获取)") - @TableField("first_time") - private LocalDateTime firstTime; - - @ApiModelProperty("处理结果第一条事件暂降类型(字典表PQS_Dicdata)") - @TableField("first_type") - private String firstType; - - @ApiModelProperty("处理结果第一条事件发生时间毫秒(读comtra文件获取)") - @TableField("first_ms") - private BigDecimal firstMs; - - @ApiModelProperty("暂降能量") - @TableField("energy") - private Double energy; - - @ApiModelProperty("暂降严重度") - @TableField("severity") - private Double severity; - - @ApiModelProperty("暂降源与监测位置关系 Upper:上游;Lower :下游;Unknown :未知;为空则是未计算") - @TableField("sagsource") - private String sagsource; - - @ApiModelProperty("持续时间,单位秒") - @TableField("duration") - private BigDecimal duration; - - @ApiModelProperty("特征幅值") - @TableField("feature_amplitude") - private BigDecimal featureAmplitude; - - @ApiModelProperty("相别") - @TableField("phase") - private String phase; - - @ApiModelProperty("事件描述") - @TableField("event_describe") - private String eventDescribe; - - @ApiModelProperty("波形路径") - @TableField("wave_path") - private String wavePath; - - @ApiModelProperty("暂态事件上送时间") - @TableField("create_time") - private LocalDateTime createTime; - - @TableField("transient_value") - private Double transientValue; - - -} diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevComTJ.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevComTJ.java new file mode 100644 index 0000000..84d5fab --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevComTJ.java @@ -0,0 +1,18 @@ +package com.njcn.cloud.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class DevComTJ implements Serializable { + + @ApiModelProperty("所有终端") + private Integer allDevCount; + + @ApiModelProperty("异常终端") + private Integer errDevCount; + + +} \ No newline at end of file diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgAssInfo.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgAssInfo.java new file mode 100644 index 0000000..c478dc6 --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgAssInfo.java @@ -0,0 +1,51 @@ +package com.njcn.cloud.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +/** + * @Description: 终端消息详情 + * @Author: wr + * @Date: 2023/11/7 15:26 + */ +@Data +public class DevMsgAssInfo implements Serializable { + + @ApiModelProperty("终端Id") + private String devIndex; + + @ApiModelProperty("终端名称") + private String devName; + + @ApiModelProperty("ip") + private String ip; + + @ApiModelProperty("供电公司") + private String gdName; + + @ApiModelProperty("变电站名称") + private String bdzName; + + @ApiModelProperty("") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime timeID; + + @ApiModelProperty("") + private int comOutNum; + + @ApiModelProperty("") + private String flowInfo; + + @ApiModelProperty("") + private List devMsgDescribe; + + @ApiModelProperty("") + private List alarmInfo; + +} \ No newline at end of file diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgDetailInfo.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgDetailInfo.java new file mode 100644 index 0000000..e0a21a5 --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/DevMsgDetailInfo.java @@ -0,0 +1,83 @@ +package com.njcn.cloud.pojo.vo; + +import cn.hutool.core.util.StrUtil; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: 终端消息详情 + * @Author: wr + * @Date: 2023/11/7 10:59 + */ +@Data +public class DevMsgDetailInfo implements Serializable { + + @ApiModelProperty("终端消息id") + private String topId; + + @ApiModelProperty("终端Id") + private String devIndex; + + @ApiModelProperty("供电公司") + private String gdName; + + @ApiModelProperty("变电站名称") + private String bdzName; + + @ApiModelProperty("终端名称") + private String devName; + + @ApiModelProperty("ip") + private String ip; + + @ApiModelProperty("统计时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime timeID; + + @ApiModelProperty("总告警次数") + private Integer allNum; + + @ApiModelProperty("终端告警") + private Integer alarmNum; + + @ApiModelProperty("通讯中断") + private Integer comOutNum; + + @ApiModelProperty("终端流量百分比") + private Float flowNum; + + @ApiModelProperty("中断描述") + private List comoutDesc; + + @ApiModelProperty("告警描述") + private List alarmDesc; + + @ApiModelProperty("读取状态") + private Integer state; + public void setComoutDesc(String comoutDesc) { + List collect =new ArrayList<>(); + if(StrUtil.isNotBlank(comoutDesc)){ + String[] split = comoutDesc.split(","); + collect = Arrays.stream(split).sorted().collect(Collectors.toList()); + } + this.comoutDesc = collect; + } + + public void setAlarmDesc(String alarmDesc) { + List collect =new ArrayList<>(); + if(StrUtil.isNotBlank(alarmDesc)){ + String[] split = alarmDesc.split(","); + collect = Arrays.stream(split).sorted().collect(Collectors.toList()); + } + this.alarmDesc = collect; + } +} \ No newline at end of file diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventInfoDetailVO.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventInfoDetailVO.java index 031512c..2cada69 100644 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventInfoDetailVO.java +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventInfoDetailVO.java @@ -43,13 +43,13 @@ public class EventInfoDetailVO implements Serializable { private LocalDateTime timeID; @ApiModelProperty("持续时间") - private Float persistTime; + private Double persistTime; @ApiModelProperty("处理结果第一条事件发生时间毫秒") - private Long ms; + private Double ms; @ApiModelProperty("特征幅值") - private Float eventValue; + private Double eventValue; @ApiModelProperty("报告状态") private int report; diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventMsgDetailVO.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventMsgDetailVO.java index a895d5a..98a92f3 100644 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventMsgDetailVO.java +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/EventMsgDetailVO.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; /** @@ -27,16 +28,16 @@ public class EventMsgDetailVO implements Serializable { @ApiModelProperty("触发时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date timeID; + private LocalDateTime timeID; @ApiModelProperty("持续时间") - private Float persistTime; + private Double persistTime; @ApiModelProperty("毫秒数") - private Long ms; + private Double ms; @ApiModelProperty("特征幅值") - private Float eventValue; + private Double eventValue; @ApiModelProperty("终端信息") private String lineInfo; @@ -45,7 +46,7 @@ public class EventMsgDetailVO implements Serializable { private String eventMsgIndex; @ApiModelProperty("读取状态") - private int state; + private Integer state; } \ No newline at end of file diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/LineDetailVO.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/LineDetailVO.java deleted file mode 100644 index bd2693a..0000000 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/LineDetailVO.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.njcn.cloud.pojo.vo; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; - -/** - * @Description: 监测点信息 - * @Author: wr - * @Date: 2023/11/3 14:36 - */ -@Data -public class LineDetailVO implements Serializable { - @ApiModelProperty("供电公司名称") - private String gdName; - - @ApiModelProperty("变电站名称") - private String subName; - - @ApiModelProperty("终端名称") - private String devName; - - @ApiModelProperty("监测点Id") - private String lineId; - - @ApiModelProperty("监测点名称") - private String lineName; - - @ApiModelProperty("测量间隔(1-10分钟)") - private Integer timeInterval; - - @ApiModelProperty("网络参数") - private String ip; -} diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/MsgInfo.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/MsgInfo.java new file mode 100644 index 0000000..33df210 --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/MsgInfo.java @@ -0,0 +1,22 @@ +package com.njcn.cloud.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class MsgInfo implements Serializable { + + @ApiModelProperty("暂态消息Ids") + private List eventMsgList; + + @ApiModelProperty("稳态消息Ids") + private List steadyMsgList; + + @ApiModelProperty("终端消息Ids") + private List deviceMsgList; + + +} \ No newline at end of file diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/SteadyUrlData.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/SteadyUrlData.java new file mode 100644 index 0000000..c722b87 --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/pojo/vo/SteadyUrlData.java @@ -0,0 +1,24 @@ +package com.njcn.cloud.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * @Description: 稳态越限图形数据 + * @Author: wr + * @Date: 2023/11/6 9:30 + */ +@Data +public class SteadyUrlData { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("时间") + private String time; + + @ApiModelProperty("数值") + private Float value; + + + +} \ No newline at end of file diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/PubUtil.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/PubUtil.java new file mode 100644 index 0000000..8cfd987 --- /dev/null +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/PubUtil.java @@ -0,0 +1,24 @@ +package com.njcn.cloud.utils; + +import cn.hutool.core.util.StrUtil; + +/** + * @author wr + * @description + * @date 2023/11/9 9:34 + */ +public class PubUtil { + + public static String lineName(String sagSource,String lineName){ + if(StrUtil.isNotBlank(sagSource)&&"Upper".equals(sagSource)){ + return lineName+" (暂降源位置:上游)"; + } + if(StrUtil.isNotBlank(sagSource)&&"Lower".equals(sagSource)){ + return lineName+" (暂降源位置:下游)"; + } + if(StrUtil.isNotBlank(sagSource)){ + return lineName+" (暂降源位置:未知)"; + } + return lineName; + } +} diff --git a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/SmsUtil.java b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/SmsUtil.java index 637d1ec..8917477 100644 --- a/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/SmsUtil.java +++ b/app-cloud/app-cloud-api/src/main/java/com/njcn/cloud/utils/SmsUtil.java @@ -96,12 +96,11 @@ public class SmsUtil { * 发送消息 * @param phone 手机号 * @param template 模板号 - * @param param 短信模板中定义的参数名称 - * @param value 参数实际值 + * @param smsValue 短信模板中定义的参数名称 * @return sendSmsResponse 发送消息结果 * @throws ClientException */ - public SendSmsResponse sendSms(String phone, String template, String param, String value) throws ClientException { + public SendSmsResponse sendSms(String phone, String template,String smsValue) throws ClientException { System.setProperty(DEFAULTCONNECTTIMEOUT, message.getTime()); System.setProperty(DEFAULTREADTIMEOUT, message.getTime()); //初始化ascClient,暂时不支持多region(请勿修改) @@ -115,8 +114,7 @@ public class SmsUtil { request.setSignName(message.getAutoGraph()); //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版 request.setTemplateCode(template); - String code = "{\""+param+"\":\"" + value + "\"}"; - request.setTemplateParam(code); + request.setTemplateParam(smsValue); //请求失败这里会抛ClientException异常 return acsClient.getAcsResponse(request); } diff --git a/app-cloud/app-cloud-boot/pom.xml b/app-cloud/app-cloud-boot/pom.xml index d12f517..5e532f4 100644 --- a/app-cloud/app-cloud-boot/pom.xml +++ b/app-cloud/app-cloud-boot/pom.xml @@ -72,17 +72,48 @@ com.njcn - user-api + system-api 1.0.0 compile com.njcn - system-api + advance-api 1.0.0 - compile + + + com.njcn + pqs-influx + + + + + com.njcn + pq-device-api + 1.0.0 + + + com.njcn + pqs-influx + + + + + com.njcn + event-api + 1.0.0 + + + com.njcn + pqs-influx + + + + + com.njcn + pqs-influx + 0.0.1-SNAPSHOT - appMainBoot diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/AppCloudBootApplication.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/AppCloudBootApplication.java index 2c894a7..71afe96 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/AppCloudBootApplication.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/AppCloudBootApplication.java @@ -5,12 +5,14 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.DependsOn; @Slf4j @MapperScan("com.njcn.**.mapper") @EnableFeignClients(basePackages = "com.njcn") @SpringBootApplication(scanBasePackages = "com.njcn") +@DependsOn("proxyMapperRegister") public class AppCloudBootApplication { public static void main(String[] args) { diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/CleanMsgInfoController.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/CleanMsgInfoController.java new file mode 100644 index 0000000..2d0a729 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/CleanMsgInfoController.java @@ -0,0 +1,71 @@ +package com.njcn.cloud.controller.information; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.njcn.cloud.pojo.dto.AppDevMsg; +import com.njcn.cloud.pojo.dto.AppEventMsg; +import com.njcn.cloud.pojo.dto.AppSteadyMsg; +import com.njcn.cloud.pojo.vo.MsgInfo; +import com.njcn.cloud.service.user.IAppDevMsgService; +import com.njcn.cloud.service.user.IAppEventMsgService; +import com.njcn.cloud.service.user.IAppSteadyMsgService; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Description: 清理消息 + * @Author: wr + * @Date: 2023/11/8 13:48 + */ +@RestController +@RequestMapping("/cleanmsg") +@Api(tags = "清空消息接口") +@RequiredArgsConstructor +public class CleanMsgInfoController extends BaseController { + + private final IAppEventMsgService eventMsgService; + private final IAppSteadyMsgService steadyMsgMapper; + private final IAppDevMsgService devMsgService; + /** + * 暂态消息获取 + */ + @PostMapping("/clearMsg") + @ApiOperation(value = "清空消息接口入口") + public HttpResult eventDetailList(@RequestBody MsgInfo param) { + String methodDescribe = getMethodDescribe("eventDetailList"); + List eventMsgList = param.getEventMsgList(); + List steadyMsgList = param.getSteadyMsgList(); + List deviceMsgList = param.getDeviceMsgList(); + //暂态消息 + if(CollUtil.isNotEmpty(eventMsgList)){ + eventMsgService.update(new LambdaUpdateWrapper() + .set(AppEventMsg::getState,1) + .in(AppEventMsg::getEventmsgIndex,eventMsgList) + ); + } + //稳态消息 + if(CollUtil.isNotEmpty(steadyMsgList)){ + steadyMsgMapper.update(new LambdaUpdateWrapper() + .set(AppSteadyMsg::getState,1) + .in(AppSteadyMsg::getSteadyIndex,steadyMsgList) + ); + } + //终端消息 + if(CollUtil.isNotEmpty(deviceMsgList)){ + devMsgService.update(new LambdaUpdateWrapper() + .set(AppDevMsg::getState,1) + .in(AppDevMsg::getDevmsgIndex,eventMsgList) + ); + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } + +} \ No newline at end of file diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/DevMsgController.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/DevMsgController.java new file mode 100644 index 0000000..2bc56c7 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/DevMsgController.java @@ -0,0 +1,103 @@ +package com.njcn.cloud.controller.information; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.cloud.enums.app.EventMsgCodeEnum; +import com.njcn.cloud.pojo.vo.DevComTJ; +import com.njcn.cloud.pojo.vo.DevMsgDetailInfo; +import com.njcn.cloud.service.user.IAppDevMsgService; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.device.pq.pojo.vo.DevDetail; +import com.njcn.web.controller.BaseController; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +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.RestController; + +import java.util.List; + +/** + * @Description: 终端消息业务层 + * @Author: wr + * @Date: 2023/11/7 10:52 + */ +@RestController +@RequestMapping("/deviceMsg") +@Api(tags = "终端状态信息接口") +@RequiredArgsConstructor +public class DevMsgController extends BaseController { + + + private final IAppDevMsgService devMsgService; + +// /** +// * 终端消息列表获取 +// */ +// @PostMapping("/deviceMsgList") +// @Deprecated +// @ApiOperation(value = "终端消息列表入口", notes = "终端消息列表") +// public HttpResult> deviceMsgList(@RequestBody BaseParam param) { +// String methodDescribe = getMethodDescribe("deviceMsgList"); +// if (StrUtil.isBlank(param.getSearchValue())) { +// throw new BusinessException(EventMsgCodeEnum.USERID_WRONG.getMsg()); +// } +// Page page = devMsgService.deviceMsgList(param); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); +// } + + /** + * 终端列表获取 + */ + @PostMapping("/deviceList") + @ApiOperation(value = "终端列表入口", notes = "终端列表") + public HttpResult> deviceList(@RequestBody BaseParam param) { + String methodDescribe = getMethodDescribe("deviceList"); + if (StrUtil.isBlank(param.getSearchValue())) { + throw new BusinessException(EventMsgCodeEnum.USERID_WRONG.getMsg()); + } + Page page = devMsgService.deviceList(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } + + /** + * 修改消息状态 + */ + @PostMapping("/updateDevMsgState") + @ApiOperation(value = "修改消息状态", notes = "消息状态") + public HttpResult updateDevMsgState(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("updateDevMsgState"); + Boolean aBoolean = devMsgService.updateDevMsgState(ids); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, aBoolean, methodDescribe); + } + + /** + * 终端通讯状态统计 + */ + @PostMapping("/getDevComTJ") + @ApiOperation(value = "终端通讯状态统计", notes = "终端通讯状态统计") + public HttpResult getDevComTJ(String deptId) { + String methodDescribe = getMethodDescribe("getDevComTJ"); + DevComTJ devComTJ = devMsgService.getDevComTJ(deptId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, devComTJ, methodDescribe); + } + + /** + * 终端通讯信息 + */ + @PostMapping("/getDevComInfo") + @ApiOperation(value = "终端通讯信息", notes = "终端通讯信息") + public HttpResult> getDevComInfo(String deptId) { + String methodDescribe = getMethodDescribe("getDevComInfo"); + List devComInfo = devMsgService.getDevComInfo(deptId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, devComInfo, methodDescribe); + } + + +} \ No newline at end of file diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/SteadyMsgController.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/SteadyMsgController.java index dd2ece6..7df62b1 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/SteadyMsgController.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/information/SteadyMsgController.java @@ -117,37 +117,30 @@ public class SteadyMsgController extends BaseController { public HttpResult steadyTargetUrl(String lineIndex,String timeID,Integer typeCode) { String methodDescribe = getMethodDescribe("steadyTargetUrl"); AppSteadyUrl steadyTargetUrl = steadyAssService.getSteadyTargetUrl(lineIndex, timeID, typeCode); + if(StrUtil.isBlank(steadyTargetUrl.getSteadyPath())){ + steadyTargetUrl = steadyAssService.getUrl(lineIndex, timeID, typeCode); + } return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, steadyTargetUrl, methodDescribe); } -// -// /** -// * @description: 生成稳态越限指标图形 -// * @author gbl -// * @param lineIndex 监测点ID -// * @param timeID 统计时间 -// * @param typeCode -// */ -// @PostMapping("steadyImage") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "lineIndex", value = "监测点ID", required = true, paramType = "query"), -// @ApiImplicitParam(name = "timeID", value = "统计时间", required = true, paramType = "query"), -// @ApiImplicitParam(name = "typeCode", value = "指标编码", required = true, paramType = "query") -// }) -// @ApiOperation(value = "生成稳态越限指标图形", notes = "稳态越限图形", response = ResponseData.class) -// public ResponseData steadyImage(int lineIndex,Long timeID,int typeCode, HttpServletRequest request) { -// ResponseData responseData = new ResponseData(); -// -// try { -// SteadyUrl msgs = new SteadyUrl(); -// String dateTime = PubUtils.timeStamp3Date(timeID,""); -// Date time = PubUtils.string2Date(dateTime, "yyyy-MM-dd"); -// msgs = steadyAssService.getUrl(request,lineIndex,time,typeCode); -// -// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_SUCCESS,SteadyMsgCodeEnum.GETTARGET_SUCCESS.getCode(), SteadyMsgCodeEnum.GETTARGET_SUCCESS.getMsg(), msgs); -// } catch (Exception e) { -// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL,SteadyMsgCodeEnum.GETTARGET_FALL.getCode(), SteadyMsgCodeEnum.GETTARGET_FALL.getMsg(), null); -// } -// return responseData; -// } + + /** + * @description: 生成稳态越限指标图形 + * @author gbl + * @param lineIndex 监测点ID + * @param timeID 统计时间 + * @param typeCode + */ + @PostMapping("/steadyImage") + @ApiImplicitParams({ + @ApiImplicitParam(name = "lineIndex", value = "监测点ID", required = true, paramType = "query"), + @ApiImplicitParam(name = "timeID", value = "统计时间", required = true, paramType = "query"), + @ApiImplicitParam(name = "typeCode", value = "指标编码", required = true, paramType = "query") + }) + @ApiOperation(value = "生成稳态越限指标图形", notes = "稳态越限图形") + public HttpResult steadyImage(String lineIndex,String timeID,Integer typeCode) { + String methodDescribe = getMethodDescribe("steadyImage"); + AppSteadyUrl steadyTargetUrl = steadyAssService.getUrl(lineIndex, timeID, typeCode); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, steadyTargetUrl, methodDescribe); + } } \ No newline at end of file diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/message/EventMsgPushController.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/message/EventMsgPushController.java new file mode 100644 index 0000000..e1381c5 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/controller/message/EventMsgPushController.java @@ -0,0 +1,137 @@ +//package com.njcn.cloud.controller.message; +// +//import com.njcn.enums.app.ReturnCode; +//import com.njcn.enums.app.UserCodeEnum; +//import com.njcn.pojo.commons.ResponseData; +//import com.njcn.utils.PubUtils; +//import com.shining.cloud.service.information.EventMsgService; +//import io.swagger.annotations.Api; +//import io.swagger.annotations.ApiImplicitParam; +//import io.swagger.annotations.ApiImplicitParams; +//import io.swagger.annotations.ApiOperation; +//import net.sf.json.JSONObject; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.util.StringUtils; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +// +//import javax.servlet.http.HttpServletRequest; +// +// +///** +// * @author hongawen +// * @date: 2019/11/11 14:51 +// */ +//@RestController +//@RequestMapping("/msg") +//@Api(tags = "内部消息推送") +//public class EventMsgPushController { +// +// private static final Logger logger = LoggerFactory.getLogger(EventMsgPushController.class); +// +// @Autowired +// private EventMsgService eventMsgService; +// +// +// /** +// * 暂态消息推送 +// */ +// @PostMapping("sendEventMsg") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "eventDetailIndex", value = "暂降索引", required = true, paramType = "query"), +// @ApiImplicitParam(name = "lineId", value = "监测点索引", required = true, paramType = "query"), +// }) +// @ApiOperation(value = "暂态消息推送", notes = "暂态消息推送", response = ResponseData.class) +// public ResponseData sendEventMsg(String eventDetailIndex, int lineId, HttpServletRequest request) { +// logger.error("推送暂降事件:事件索引:{},监测点ID为:{}",eventDetailIndex,lineId); +// ResponseData responseData; +// if (StringUtils.isEmpty(eventDetailIndex) || StringUtils.isEmpty(lineId)) { +// return PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.INVALID_PARAMETER.getCode(), UserCodeEnum.INVALID_PARAMETER.getMsg(), null); +// } +// try { +// eventMsgService.sendEventMsg(eventDetailIndex, lineId,request); +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_SUCCESS, UserCodeEnum.EVENT_MSG_SUCCESS.getCode(), UserCodeEnum.EVENT_MSG_SUCCESS.getMsg(), null); +// } catch (Exception e) { +// logger.error("暂降消息推送,异常为:" + e.getMessage()); +// if (e.getMessage().length() < 10) { +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.getCodeByMsg(e.getMessage()), e.getMessage(), null); +// } else { +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.EVENT_MSG_FAIL.getCode(), UserCodeEnum.EVENT_MSG_FAIL.getMsg(), null); +// } +// } +// return responseData; +// } +// +// /** +// * 稳态消息推送 +// */ +// @PostMapping("sendSteadyMsg") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "userIndex", value = "用户索引", required = true, paramType = "query"), +// @ApiImplicitParam(name = "timeID", value = "统计时间", required = true, paramType = "query"), +// @ApiImplicitParam(name = "lineNum", value = "监测点个数", required = true, paramType = "query"), +// }) +// @ApiOperation(value = "稳态消息推送", notes = "稳态消息推送", response = ResponseData.class) +// public ResponseData sendSteadyMsg(String userIndex, Long timeID, Integer lineNum) { +// ResponseData responseData; +// logger.error("稳态消息推送:用户索引:{},统计时间:{},监测点个数:{}",userIndex,timeID,lineNum); +// if (StringUtils.isEmpty(userIndex) || StringUtils.isEmpty(timeID) || StringUtils.isEmpty(lineNum)) { +// return PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.INVALID_PARAMETER.getCode(), UserCodeEnum.INVALID_PARAMETER.getMsg(), null); +// } +// try { +// String msgIndex = eventMsgService.sendSteadyMsg(userIndex, timeID, lineNum); +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("msgIndex", msgIndex); +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_SUCCESS, UserCodeEnum.STEADY_MSG_SUCCESS.getCode(), UserCodeEnum.STEADY_MSG_SUCCESS.getMsg(), jsonObject); +// } catch (Exception e) { +// logger.error("稳态消息推送,异常为:" + e.getMessage()); +// if (e.getMessage().length() < 10) { +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.getCodeByMsg(e.getMessage()), e.getMessage(), null); +// } else { +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.STEADY_MSG_FAIL.getCode(), UserCodeEnum.STEADY_MSG_FAIL.getMsg(), null); +// } +// } +// return responseData; +// } +// +// +// /** +// * 终端消息推送 +// */ +// @PostMapping("sendTargetMsg") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "userIndex", value = "用户索引", required = true, paramType = "query"), +// @ApiImplicitParam(name = "timeID", value = "统计时间", required = true, paramType = "query"), +// @ApiImplicitParam(name = "devNum", value = "终端个数", required = true, paramType = "query"), +// @ApiImplicitParam(name = "alarmNum", value = "终端警告次数", paramType = "query"), +// @ApiImplicitParam(name = "comOutNum", value = "通讯状态", paramType = "query"), +// @ApiImplicitParam(name = "flowNum", value = "流量百分比", paramType = "query"), +// @ApiImplicitParam(name = "flag", value = "强制推送标志",required = true, paramType = "query"), +// }) +// @ApiOperation(value = "终端消息推送", notes = "终端消息推送", response = ResponseData.class) +// public ResponseData sendTargetMsg(String userIndex, Long timeID,Integer devNum, Integer alarmNum, Integer comOutNum, Float flowNum, int flag) { +// logger.error("稳态消息推送:用户索引:{},统计时间:{},终端个数:{}",userIndex,timeID,devNum); +// ResponseData responseData; +// if (StringUtils.isEmpty(userIndex) || StringUtils.isEmpty(timeID) || StringUtils.isEmpty(flag)) { +// return PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.INVALID_PARAMETER.getCode(), UserCodeEnum.INVALID_PARAMETER.getMsg(), null); +// } +// try { +// String msgIndex = eventMsgService.sendTargetMsg(userIndex, timeID, devNum,alarmNum,comOutNum,flowNum,flag); +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("msgIndex", msgIndex); +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_SUCCESS, UserCodeEnum.DEVICE_MSG_SUCCESS.getCode(), UserCodeEnum.DEVICE_MSG_SUCCESS.getMsg(), jsonObject); +// } catch (Exception e) { +// logger.error("终端消息推送,异常为:" + e.getMessage()); +// if (e.getMessage().length() < 10) { +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.getCodeByMsg(e.getMessage()), e.getMessage(), null); +// } else { +// responseData = PubUtils.assignmentAppResponse(ReturnCode.RETURN_FAIL, UserCodeEnum.DEVICE_MSG_FAIL.getCode(), UserCodeEnum.DEVICE_MSG_FAIL.getMsg(), null); +// } +// } +// return responseData; +// } +// +//} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppDevMsgMapper.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppDevMsgMapper.java new file mode 100644 index 0000000..9aebf75 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppDevMsgMapper.java @@ -0,0 +1,18 @@ +package com.njcn.cloud.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.cloud.pojo.dto.AppDevMsg; + + +/** + *

+ * 终端消息 Mapper 接口 + *

+ * + * @author wr + * @since 2023-11-07 + */ +public interface AppDevMsgMapper extends BaseMapper { + + +} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventInfoMapper.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventInfoMapper.java index 2d7f787..b882184 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventInfoMapper.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventInfoMapper.java @@ -2,9 +2,7 @@ package com.njcn.cloud.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.cloud.pojo.dto.AppEventInfo; -import com.njcn.cloud.pojo.dto.RMpEventDetail; import com.njcn.cloud.pojo.vo.EventInfoDetailVO; -import com.njcn.cloud.pojo.vo.EventWaveDetailVO; import org.apache.ibatis.annotations.Param; /** @@ -26,43 +24,5 @@ public interface AppEventInfoMapper extends BaseMapper { */ EventInfoDetailVO selectEventInfoDetailByID(@Param("id") String id); - /** - * @Description: 获取监测点相别 - * @param id 暂降事件id - * @return: java.lang.Integer - * @Author: wr - * @Date: 2023/11/1 14:45 - */ - Integer getLinePtType(@Param("id") String id); - - /** - * @Description: 获取波形路径 - * @param eventId 暂降事件id - * @return: java.lang.String - * @Author: wr - * @Date: 2023/11/1 15:55 - */ - EventWaveDetailVO.Detail selectWavePath(@Param("id")String eventId); - - /** - * @Description: 获取暂态信息 - * @param id - * @return: com.njcn.cloud.pojo.vo.EventInfoDetailVO - * @Author: wr - * @Date: 2023/11/1 14:43 - */ - RMpEventDetail selectByID(@Param("id") String id); - - - /** - * @Description: 暂态事件基本信息(暂态事件id) - * @param id - * @return: com.njcn.cloud.pojo.vo.EventInfoDetailVO - * @Author: wr - * @Date: 2023/11/1 14:43 - */ - EventInfoDetailVO selectEventDetailByID(@Param("id") String id); - - } diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventMsgMapper.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventMsgMapper.java index 089a8a0..727ea4a 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventMsgMapper.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppEventMsgMapper.java @@ -1,12 +1,7 @@ package com.njcn.cloud.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.cloud.pojo.dto.AppEventMsg; -import com.njcn.cloud.pojo.vo.EventMsgDetailVO; -import org.apache.ibatis.annotations.Param; - -import java.util.List; /** *

@@ -18,16 +13,4 @@ import java.util.List; */ public interface AppEventMsgMapper extends BaseMapper { - /** - * @Description: 获取暂态信息 - * @param page - * @param ids - * @param userIndex - * @return: com.baomidou.mybatisplus.extension.plugins.pagination.Page - * @Author: wr - * @Date: 2023/11/1 10:21 - */ - Page selectEventMsgPage(Page page, - @Param("ids") List ids, - @Param("userIndex") String userIndex); } diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppInfoSetMapper.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppInfoSetMapper.java new file mode 100644 index 0000000..c456428 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppInfoSetMapper.java @@ -0,0 +1,16 @@ +package com.njcn.cloud.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.cloud.pojo.dto.AppInfoSet; + +/** + *

+ * 推送消息设置 Mapper 接口 + *

+ * + * @author wr + * @since 2023-11-10 + */ +public interface AppInfoSetMapper extends BaseMapper { + +} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppSteadyUrlMapper.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppSteadyUrlMapper.java index c6c3c0d..3fc0057 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppSteadyUrlMapper.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppSteadyUrlMapper.java @@ -2,6 +2,10 @@ package com.njcn.cloud.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.cloud.pojo.dto.AppSteadyUrl; +import com.njcn.cloud.pojo.vo.SteadyUrlData; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** *

@@ -13,4 +17,45 @@ import com.njcn.cloud.pojo.dto.AppSteadyUrl; */ public interface AppSteadyUrlMapper extends BaseMapper { + //频率偏差 + List getFreqDev(@Param("lineIndex")String lineIndex, + @Param("startTime") String startTime, + @Param("endTime")String endTime); + + //电压偏差 + List getVUDev(@Param("lineIndex")String lineIndex, + @Param("startTime")String startTime, + @Param("endTime")String endTime, + @Param("type")String type); + + //电压不平衡 + List getVUnbalance(@Param("lineIndex")String lineIndex, + @Param("startTime")String startTime, + @Param("endTime")String endTime); + + //长闪 + List getPLT(@Param("lineIndex")String lineIndex, + @Param("startTime")String startTime, + @Param("endTime")String endTime, + @Param("type")String type); + + //电压谐波畸变率 + List getVTHD(@Param("lineIndex")String lineIndex, + @Param("startTime")String startTime, + @Param("endTime")String endTime, + @Param("type")String type); + + //N次电压谐波含有率 + List getVHarmRate(@Param("lineIndex")String lineIndex, + @Param("startTime")String startTime, + @Param("endTime")String endTime, + @Param("number")String number, + @Param("type")String type); + + //N次电流谐波幅值 + List getIHarmPhasic(@Param("lineIndex")String lineIndex, + @Param("startTime")String startTime, + @Param("endTime")String endTime, + @Param("number")String number, + @Param("type")String type); } diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppUserMapper.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppUserMapper.java index 0a71a2b..a74eba5 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppUserMapper.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/AppUserMapper.java @@ -2,11 +2,9 @@ package com.njcn.cloud.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.njcn.cloud.pojo.dto.AppUser; -import com.njcn.cloud.pojo.dto.DeptLine; import com.njcn.user.pojo.po.User; import org.apache.ibatis.annotations.Param; -import java.util.List; /** *

@@ -28,12 +26,4 @@ public interface AppUserMapper extends BaseMapper { User getUserAndApp(@Param("userIndex") String appUserID); - /** - * @Description: 部门监测点关系表 - * @param deptID - * @return: java.util.List - * @Author: wr - * @Date: 2023/11/1 10:33 - */ - List getUserLine(@Param("deptID") String deptID); } diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/LineMapper.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/LineMapper.java deleted file mode 100644 index ba591c2..0000000 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/LineMapper.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.njcn.cloud.mapper; - - -import com.njcn.cloud.pojo.vo.LineDetailVO; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - * @Description: 监测点信息 - * @Author: wr - * @Date: 2023/11/3 14:38 - */ -public interface LineMapper { - - /** - * @Description: 获取监测点集合信息 - * @Author: wr - * @Date: 2023/11/3 14:37 - */ - List selectByIds(@Param("ids") List ids); - -} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppDevMsgMapper.xml b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppDevMsgMapper.xml new file mode 100644 index 0000000..6c38ffd --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppDevMsgMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventInfoMapper.xml b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventInfoMapper.xml index b32a7bc..00a0291 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventInfoMapper.xml +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventInfoMapper.xml @@ -4,130 +4,17 @@ - - - - diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventMsgMapper.xml b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventMsgMapper.xml index 41f56e7..1aa7596 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventMsgMapper.xml +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppEventMsgMapper.xml @@ -2,48 +2,4 @@ - diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppInfoSetMapper.xml b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppInfoSetMapper.xml new file mode 100644 index 0000000..3fdf65d --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppInfoSetMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppSteadyUrlMapper.xml b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppSteadyUrlMapper.xml index 923d89b..e50ff78 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppSteadyUrlMapper.xml +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppSteadyUrlMapper.xml @@ -2,4 +2,150 @@ + + + + + + + + + + + + + diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppUserMapper.xml b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppUserMapper.xml index c22370c..4eb400a 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppUserMapper.xml +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/AppUserMapper.xml @@ -10,12 +10,4 @@ where id = #{userIndex} - diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/LineMapper.xml b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/LineMapper.xml deleted file mode 100644 index c5a70e0..0000000 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/mapper/mapping/LineMapper.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppDevMsgServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppDevMsgServiceImpl.java new file mode 100644 index 0000000..99c4d92 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppDevMsgServiceImpl.java @@ -0,0 +1,129 @@ +package com.njcn.cloud.service.impl.user; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.cloud.mapper.AppDevMsgMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.cloud.pojo.dto.AppDevMsg; +import com.njcn.cloud.pojo.vo.DevComTJ; +import com.njcn.cloud.pojo.vo.DevMsgDetailInfo; +import com.njcn.cloud.service.user.IAppDevMsgService; +import com.njcn.device.pq.api.GeneralDeviceInfoClient; +import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.po.TopMsgPO; +import com.njcn.device.pq.pojo.vo.DevDetail; +import com.njcn.web.pojo.param.BaseParam; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 终端消息 服务实现类 + *

+ * + * @author wr + * @since 2023-11-07 + */ +@Service +@RequiredArgsConstructor +public class AppDevMsgServiceImpl extends ServiceImpl implements IAppDevMsgService { + + private final GeneralDeviceInfoClient generalDeviceInfoClient; + private final LineFeignClient lineFeignClient; + + @Override + public Page deviceMsgList(BaseParam param) { + Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), new LambdaQueryWrapper() + .eq(AppDevMsg::getUserIndex, param.getSearchValue()) + .orderByDesc(AppDevMsg::getTimeId) + ); + return page; + } + + @Override + public Page deviceList(BaseParam param) { + Page page= this.page(new Page(param.getPageNum(), param.getPageSize()), + new LambdaQueryWrapper() + .eq(AppDevMsg::getUserIndex, param.getSearchValue()) + .orderByDesc(AppDevMsg::getTimeId) + ); + List records = page.getRecords(); + List info=new ArrayList<>(); + if(CollUtil.isNotEmpty(records)){ + List topIds = records.stream().map(AppDevMsg::getTopId).collect(Collectors.toList()); + List data = generalDeviceInfoClient.getTopMsgInfoByIds(topIds).getData(); + Map topMap = data.stream().collect(Collectors.toMap(TopMsgPO::getTopId, Function.identity())); + DevMsgDetailInfo msg; + for (AppDevMsg record : records) { + if(topMap.containsKey(record.getTopId())){ + TopMsgPO topMsgPO = topMap.get(record.getTopId()); + msg=new DevMsgDetailInfo(); + msg.setComoutDesc(topMsgPO.getComOutDesc()); + msg.setAlarmDesc(topMsgPO.getAlarmDesc()); + msg.setTopId(topMsgPO.getTopId()); + msg.setDevIndex(topMsgPO.getDevId()); + msg.setGdName(topMsgPO.getCityName()); + msg.setBdzName(topMsgPO.getSubName()); + msg.setDevName(topMsgPO.getDeviceName()); + msg.setIp(topMsgPO.getIp()); + LocalDateTime time = LocalDateTimeUtil.parse(topMsgPO.getTime(), DatePattern.NORM_DATE_PATTERN); + msg.setTimeID(time); + msg.setAllNum(topMsgPO.getAlarmCount()+topMsgPO.getComOutCount()); + msg.setAlarmNum(topMsgPO.getAlarmCount()); + msg.setComOutNum(topMsgPO.getComOutCount()); + msg.setFlowNum(topMsgPO.getFlowValue()); + msg.setState(record.getState()); + info.add(msg); + } + } + } + Page pageEvent = BeanUtil.copyProperties(page, Page.class); + pageEvent.setRecords(info); + return pageEvent; + } + + @Override + public Boolean updateDevMsgState(List ids) { + return this.update(new LambdaUpdateWrapper() + .set(AppDevMsg::getState,1) + .in(AppDevMsg::getTopId,ids) + ); + } + + @Override + public DevComTJ getDevComTJ(String deptId) { + DevComTJ devComTJ=new DevComTJ(); + //根据部门获取监测id + List userLine = generalDeviceInfoClient.deptGetRunDev(deptId).getData(); + List devDetail = generalDeviceInfoClient.getDevInfoByIds(userLine).getData(); + if(CollUtil.isNotEmpty(devDetail)){ + devComTJ.setAllDevCount(devDetail.size()); + devComTJ.setErrDevCount(Math.toIntExact(devDetail.stream().filter(x -> x.getComFlag() == 0).count())); + }else{ + devComTJ.setAllDevCount(0); + devComTJ.setErrDevCount(0); + + } + return devComTJ; + } + + @Override + public List getDevComInfo(String deptId) { + List userLine = generalDeviceInfoClient.deptGetRunDev(deptId).getData(); + List devDetail = generalDeviceInfoClient.getDevInfoByIds(userLine).getData(); + devDetail.sort(Collections.reverseOrder(Comparator.comparing(DevDetail::getComFlag))); + return devDetail; + } + + +} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppEventInfoServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppEventInfoServiceImpl.java index 293bd81..b9d855e 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppEventInfoServiceImpl.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppEventInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.cloud.service.impl.user; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.njcn.advance.api.EventWaveAnalysisFeignClient; @@ -12,12 +13,16 @@ import com.njcn.cloud.pojo.vo.EventWaveDetailVO; import com.njcn.cloud.service.user.IAppEventInfoService; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.utils.PubUtils; +import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.vo.LineDetailVO; +import com.njcn.event.api.EventDetailFeignClient; import com.njcn.event.file.component.WaveFileComponent; import com.njcn.event.file.component.WavePicComponent; import com.njcn.event.file.pojo.bo.WaveDataDetail; import com.njcn.event.file.pojo.dto.WaveDataDTO; import com.njcn.event.file.pojo.enums.WaveFileResponseEnum; import com.njcn.event.file.utils.WaveUtil; +import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.oss.constant.GeneralConstant; import com.njcn.oss.constant.OssPath; import com.njcn.oss.utils.FileStorageUtil; @@ -27,8 +32,10 @@ import org.springframework.transaction.annotation.Transactional; import java.io.InputStream; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -46,15 +53,26 @@ public class AppEventInfoServiceImpl extends ServiceImpl eventInfoDetails = new ArrayList<>(); EntityAdvancedData entityAdvancedData = eventWaveAnalysisFeignClient.analysis(eventDetailIndex).getData(); - //根据事件获取监测点接线方式 - Integer ptType = this.getBaseMapper().getLinePtType(eventDetailIndex); + Integer ptType=null; + List eventDetail = eventDetailFeignClient.getEventDetailByIdsList(Arrays.asList(eventDetailIndex)).getData(); + List linedIds = eventDetail.stream().map(RmpEventDetailPO::getLineId).distinct().collect(Collectors.toList()); + if(CollUtil.isNotEmpty(linedIds)) { + List lineDetail = lineFeignClient.getLineDetailByIds(linedIds).getData(); + ptType=lineDetail.get(0).getPtType(); + } if (entityAdvancedData.backNumber != -1) { detail.setBackNumber( entityAdvancedData.backNumber); for (int i = 0; i < entityAdvancedData.backNumber; i++) { @@ -134,15 +152,18 @@ public class AppEventInfoServiceImpl extends ServiceImpl eventDetails = eventDetailFeignClient.getEventDetailByIdsList(Arrays.asList(eventId)).getData(); + List linedIds = eventDetails.stream().map(RmpEventDetailPO::getLineId).distinct().collect(Collectors.toList()); + List lineDetail = lineFeignClient.getLineDetailByIds(linedIds).getData(); + RmpEventDetailPO detail = eventDetails.get(0); + LineDetailVO.Detail line = lineDetail.get(0); + String waveName = detail.getWavePath(); if (StrUtil.isBlank(waveName)) { throw new BusinessException(WaveFileResponseEnum.ANALYSE_WAVE_NOT_FOUND); } try ( - InputStream cfgStream = fileStorageUtil.getFileStream(OssPath.WAVE_DIR + eventDetail.getIp() + StrUtil.SLASH + waveName + GeneralConstant.CFG); - InputStream datStream = fileStorageUtil.getFileStream(OssPath.WAVE_DIR + eventDetail.getIp() + StrUtil.SLASH + waveName + GeneralConstant.DAT) + InputStream cfgStream = fileStorageUtil.getFileStream(OssPath.WAVE_DIR + line.getIp() + StrUtil.SLASH + waveName + GeneralConstant.CFG); + InputStream datStream = fileStorageUtil.getFileStream(OssPath.WAVE_DIR + line.getIp() + StrUtil.SLASH + waveName + GeneralConstant.DAT) ) { if (Objects.isNull(cfgStream) || Objects.isNull(datStream)) { throw new BusinessException(WaveFileResponseEnum.ANALYSE_WAVE_NOT_FOUND); @@ -152,10 +173,10 @@ public class AppEventInfoServiceImpl extends ServiceImpl implements IAppEventMsgService { - private final AppUserMapper appUserMapper; private final AppEventInfoMapper appEventInfoMapper; + private final LineFeignClient lineFeignClient; + private final EventDetailFeignClient eventDetailFeignClient; + @Override public Page eventMsgPage(BaseParam param) { String searchValue = param.getSearchValue(); - //根据用户id获取用户部门 - //todo 用户id - User userAndApp = appUserMapper.getUserAndApp(param.getSearchValue()); - if(ObjectUtil.isNull(userAndApp)){ - throw new BusinessException(UserCodeEnum.NO_USER.getMsg()); + //获取暂态消息信息 + Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), new LambdaQueryWrapper() + .eq(AppEventMsg::getUserIndex, searchValue) + .eq(AppEventMsg::getUserIndex, searchValue) + ); + List records = page.getRecords(); + List info=new ArrayList<>(); + if(CollUtil.isNotEmpty(records)){ + Map eventMsg = records.stream().collect(Collectors.toMap(AppEventMsg::getEventdetailIndex, Function.identity())); + //获取暂态事件id + List eventIds = records.stream().map(AppEventMsg::getEventdetailIndex).distinct().collect(Collectors.toList()); + List eventDetail = eventDetailFeignClient.getEventDetailByIdsList(eventIds).getData(); + List linedIds = eventDetail.stream().map(RmpEventDetailPO::getLineId).distinct().collect(Collectors.toList()); + List lineDetail = lineFeignClient.getLineDetailByIds(linedIds).getData(); + //监测点map + Map lineDetailMap = lineDetail.stream().collect(Collectors.toMap(LineDetailVO.Detail::getLineId, Function.identity())); + EventMsgDetailVO vo; + AppEventMsg appEventMsg ; + for (RmpEventDetailPO detail : eventDetail) { + if(lineDetailMap.containsKey(detail.getLineId())){ + LineDetailVO.Detail line = lineDetailMap.get(detail.getLineId()); + vo=new EventMsgDetailVO(); + vo.setLineIndex(line.getLineId()); + vo.setLineName(PubUtil.lineName(detail.getSagsource(),line.getLineName())); + vo.setEventDetailIndex(detail.getEventId()); + vo.setTimeID(line.getTimeID()); + vo.setPersistTime(detail.getDuration()); + vo.setMs(detail.getFirstMs()); + vo.setEventValue(detail.getFeatureAmplitude()); + vo.setLineInfo(line.getAreaName()+" "+line.getGdName()+" 电压等级:"+line.getVoltageLevel()+" 网络参数:"+line.getIp()); + if(eventMsg.containsKey(detail.getEventId())){ + appEventMsg = eventMsg.get(detail.getEventId()); + vo.setEventMsgIndex(appEventMsg.getEventmsgIndex()); + vo.setState(appEventMsg.getState()); + info.add(vo); + } + + } + + + } } - //根据所查询的部门查询出是部门下监测点信息 - List userLine = appUserMapper.getUserLine(userAndApp.getDeptId()); - List ids = userLine.stream().map(DeptLine::getLineId).collect(Collectors.toList()); - ids.add("2ec9ef4a375b249abc5314e6b7461cab"); - return this.getBaseMapper().selectEventMsgPage(new Page<>(param.getPageNum(),param.getPageSize()),ids,searchValue); + Page pageEvent = BeanUtil.copyProperties(page, Page.class); + pageEvent.setRecords(info); + return pageEvent; } @Override @Transactional(rollbackFor = {Exception.class}) public EventInfoDetailVO eventInfoDetail(String id) { - EventInfoDetailVO eventInfoDetailVO = appEventInfoMapper.selectEventInfoDetailByID(id); - this.update(new LambdaUpdateWrapper() - .set(AppEventMsg::getState,1) - .eq(AppEventMsg::getEventmsgIndex,id) - - ); - return eventInfoDetailVO; + //查询出 + EventInfoDetailVO eventInfo = appEventInfoMapper.selectEventInfoDetailByID(id); + //查询暂态事件 + List eventDetail = eventDetailFeignClient.getEventDetailByIdsList(Arrays.asList(eventInfo.getEventDetailIndex())).getData(); + List linedIds = eventDetail.stream().map(RmpEventDetailPO::getLineId).distinct().collect(Collectors.toList()); + if(CollUtil.isNotEmpty(linedIds)){ + List lineDetail = lineFeignClient.getLineDetailByIds(linedIds).getData(); + LineDetailVO.Detail line = lineDetail.get(0); + RmpEventDetailPO detail= eventDetail.get(0); + eventInfo.setLineName(PubUtil.lineName(detail.getSagsource(),line.getLineName())); + eventInfo.setGdName(line.getGdName()); + eventInfo.setBdzName(line.getSubName()); + eventInfo.setDevName(line.getDevName()); + eventInfo.setScale(line.getVoltageLevel()); + eventInfo.setIp(line.getIp()); + eventInfo.setTimeID(detail.getStartTime()); + eventInfo.setPersistTime(detail.getDuration()); + eventInfo.setMs(detail.getFirstMs()); + eventInfo.setEventValue(detail.getFeatureAmplitude()); + this.update(new LambdaUpdateWrapper() + .set(AppEventMsg::getState,1) + .eq(AppEventMsg::getEventmsgIndex,id) + ); + } + return eventInfo; } + + } diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppInfoSetServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppInfoSetServiceImpl.java new file mode 100644 index 0000000..2e56d46 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppInfoSetServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.cloud.service.impl.user; + +import com.njcn.cloud.mapper.AppInfoSetMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.cloud.pojo.dto.AppInfoSet; +import com.njcn.cloud.service.user.IAppInfoSetService; +import org.springframework.stereotype.Service; + +/** + *

+ * 推送消息设置 服务实现类 + *

+ * + * @author wr + * @since 2023-11-10 + */ +@Service +public class AppInfoSetServiceImpl extends ServiceImpl implements IAppInfoSetService { + +} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppReportServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppReportServiceImpl.java index 117f7a7..f181369 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppReportServiceImpl.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppReportServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.njcn.cloud.enums.app.EventMsgCodeEnum; -import com.njcn.cloud.mapper.AppEventInfoMapper; import com.njcn.cloud.mapper.AppReportMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.cloud.pojo.dto.AppEventInfo; @@ -15,13 +14,18 @@ import com.njcn.cloud.pojo.vo.EventEigDetailVO; import com.njcn.cloud.pojo.vo.EventInfoDetailVO; import com.njcn.cloud.service.user.IAppEventInfoService; import com.njcn.cloud.service.user.IAppReportService; +import com.njcn.cloud.utils.PubUtil; import com.njcn.cloud.utils.WordUtil; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.utils.FileUtil; +import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.vo.LineDetailVO; +import com.njcn.event.api.EventDetailFeignClient; import com.njcn.event.file.component.WavePicComponent; import com.njcn.event.file.pojo.bo.WaveDataDetail; import com.njcn.event.file.pojo.dto.WaveDataDTO; import com.njcn.event.file.utils.WaveUtil; +import com.njcn.event.pojo.po.RmpEventDetailPO; import com.njcn.oss.constant.OssPath; import com.njcn.oss.utils.FileStorageUtil; import lombok.RequiredArgsConstructor; @@ -31,6 +35,8 @@ import org.springframework.transaction.annotation.Transactional; import java.io.*; import java.time.LocalDateTime; import java.util.*; +import java.util.stream.Collectors; + /** @@ -46,10 +52,10 @@ import java.util.*; public class AppReportServiceImpl extends ServiceImpl implements IAppReportService { private final IAppEventInfoService appEventInfoService; - private final AppEventInfoMapper appEventInfoMapper; private final WavePicComponent wavePicComponent; private final FileStorageUtil fileStorageUtil; - + private final EventDetailFeignClient eventDetailFeignClient; + private final LineFeignClient lineFeignClient; @Override @Transactional(rollbackFor = {Exception.class}) public String eventDetailReportApply(String userId, String eventDetailIndex) { @@ -65,9 +71,6 @@ public class AppReportServiceImpl extends ServiceImpl map = this.createEventDetailReport(eventDetailIndex,one); if (map.containsKey("noData")) { return map.get("noData"); @@ -76,12 +79,12 @@ public class AppReportServiceImpl extends ServiceImpl waveDataDetails = WaveUtil.filterWaveData(waveData); WordUtil wordUtil = new WordUtil(); //获取瞬时波形 - String instantPath=appEventInfo.getInstantwavePath(); - if(StrUtil.isBlank(instantPath)){ - instantPath = wavePicComponent.generateImageShun(waveData,waveDataDetails); + String instantPath; + if(ObjectUtil.isNotNull(appEventInfo)&&StrUtil.isNotBlank(appEventInfo.getInstantwavePath())){ + instantPath=appEventInfo.getInstantwavePath(); + }else{ + instantPath = wavePicComponent.generateImageShun(waveData,waveDataDetails); } InputStream instantStream = fileStorageUtil.getFileStream(instantPath); String imageShun64 = Base64.encode(instantStream); //获取rms波形 - String rmsPath =appEventInfo.getRmswavePath(); - if(StrUtil.isBlank(rmsPath)){ + String rmsPath; + if(ObjectUtil.isNotNull(appEventInfo)&&StrUtil.isNotBlank(appEventInfo.getRmswavePath())){ + rmsPath =appEventInfo.getRmswavePath(); + }else{ rmsPath = wavePicComponent.generateImageRms(waveData,waveDataDetails); + } InputStream rmsStream = fileStorageUtil.getFileStream(rmsPath); String rmsShun64 = Base64.encode(rmsStream); @@ -145,7 +153,23 @@ public class AppReportServiceImpl extends ServiceImpl eventDetails = eventDetailFeignClient.getEventDetailByIdsList(Arrays.asList(eventIndex)).getData(); + List linedIds = eventDetails.stream().map(RmpEventDetailPO::getLineId).distinct().collect(Collectors.toList()); + List lineDetail = lineFeignClient.getLineDetailByIds(linedIds).getData(); + RmpEventDetailPO detail = eventDetails.get(0); + LineDetailVO.Detail line = lineDetail.get(0); + eventInfoList.setLineName(PubUtil.lineName(detail.getSagsource(),line.getLineName())); + eventInfoList.setGdName(line.getGdName()); + eventInfoList.setBdzName(line.getSubName()); + eventInfoList.setDevName(line.getDevName()); + eventInfoList.setScale(line.getVoltageLevel()); + eventInfoList.setIp(line.getIp()); + eventInfoList.setEventDetailIndex(detail.getEventId()); + eventInfoList.setTimeID(detail.getStartTime()); + eventInfoList.setPersistTime(detail.getDuration()); + eventInfoList.setMs(detail.getFirstMs()); + eventInfoList.setEventValue(detail.getFeatureAmplitude()); wordUtil.setEventInfoList(eventInfoList); wordUtil.createReport(); diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppSteadyMsgServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppSteadyMsgServiceImpl.java index 9d35ac5..857c6ce 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppSteadyMsgServiceImpl.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/AppSteadyMsgServiceImpl.java @@ -2,32 +2,37 @@ package com.njcn.cloud.service.impl.user; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.cloud.enums.app.TypeCodeEnum; import com.njcn.cloud.mapper.AppSteadyMsgMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.njcn.cloud.mapper.LineMapper; +import com.njcn.cloud.mapper.AppSteadyUrlMapper; import com.njcn.cloud.pojo.dto.AppSteadyAss; import com.njcn.cloud.pojo.dto.AppSteadyMsg; import com.njcn.cloud.pojo.dto.AppSteadyUrl; import com.njcn.cloud.pojo.vo.AppSteadyMsgVO; -import com.njcn.cloud.pojo.vo.LineDetailVO; import com.njcn.cloud.pojo.vo.SteadyMsgDetailVO; import com.njcn.cloud.pojo.vo.SteadyTargetVO; +import com.njcn.cloud.pojo.vo.SteadyUrlData; import com.njcn.cloud.service.user.IAppSteadyAssService; import com.njcn.cloud.service.user.IAppSteadyMsgService; import com.njcn.cloud.service.user.IAppSteadyUrlService; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.biz.pojo.po.Overlimit; +import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.vo.LineDetailVO; +import com.njcn.event.file.component.WavePicComponent; import com.njcn.web.pojo.param.BaseParam; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -43,8 +48,10 @@ import java.util.stream.Collectors; public class AppSteadyMsgServiceImpl extends ServiceImpl implements IAppSteadyMsgService { private final IAppSteadyAssService appSteadyAssService; + private final AppSteadyUrlMapper steadyUrlDataMapper; private final IAppSteadyUrlService appSteadyUrlService; - private final LineMapper lineMapper; + private final LineFeignClient lineFeignClient; + private final WavePicComponent wavePicComponent; @Override public AppSteadyMsgVO getSteadyState(BaseParam param) { AppSteadyMsgVO appSteadyMsgVO=new AppSteadyMsgVO(); @@ -87,10 +94,13 @@ public class AppSteadyMsgServiceImpl extends ServiceImpl> lineMap = lineDetail.stream() .collect(Collectors.groupingBy(x->x.getLineIndex()+"_"+LocalDateTimeUtil.format(x.getTimeId(), DatePattern.UTC_SIMPLE_MS_PATTERN))); List steadyLineIdList = lineMap.keySet().stream().map(x->x.split("_")[0]).collect(Collectors.toList()); - List lineDetailVOS = lineMapper.selectByIds(steadyLineIdList); + + List lineDetailVOS = lineFeignClient.getLineDetailByIds(steadyLineIdList).getData(); + + lineMap.forEach((key,value)->{ String[] split = key.split("_"); - List line = lineDetailVOS.stream().filter(x -> x.getLineId().equals(split[0])).collect(Collectors.toList()); + List line = lineDetailVOS.stream().filter(x -> x.getLineId().equals(split[0])).collect(Collectors.toList()); if(CollUtil.isNotEmpty(line)){ SteadyMsgDetailVO detailVO=new SteadyMsgDetailVO(); detailVO.setLineName(line.get(0).getLineName()); @@ -156,4 +166,604 @@ public class AppSteadyMsgServiceImpl extends ServiceImpl> result = new ArrayList<>(); + List data; + List dataa; + List datab; + List datac; + AppSteadyUrl ass = new AppSteadyUrl(); + String type=""; + float limit=0; + //开始时间 + String startTime = DateUtil.beginOfDay(DateUtil.parse(timeId)).toString(); + //结束时间 + String endTime = DateUtil.endOfDay(DateUtil.parse(timeId)).toString(); + + Overlimit overLimit = lineFeignClient.getOverLimitData(lineIndex).getData(); + + if(typeCode == TypeCodeEnum.FREQ_DEV_OVERTIME.getCode()){ + data = steadyUrlDataMapper.getFreqDev(lineIndex,startTime,endTime); + type = "频率偏差"; + limit = overLimit.getFreqDev(); + result.add(data); + }else if(typeCode == TypeCodeEnum.VOLTAGE_DEV_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVUDev(lineIndex,startTime,endTime,"A"); + datab = steadyUrlDataMapper.getVUDev(lineIndex,startTime,endTime,"B"); + datac = steadyUrlDataMapper.getVUDev(lineIndex,startTime,endTime,"C"); + type = "电压偏差"; + limit = overLimit.getVoltageDev(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UBALANCE_OVERTIME.getCode()){ + data = steadyUrlDataMapper.getVUnbalance(lineIndex,startTime,endTime); + type = "电压不平衡"; + limit = overLimit.getUbalance(); + result.add(data); + }else if(typeCode == TypeCodeEnum.FLICKER_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getPLT(lineIndex,startTime,endTime,"A"); + datab = steadyUrlDataMapper.getPLT(lineIndex,startTime,endTime,"B"); + datac = steadyUrlDataMapper.getPLT(lineIndex,startTime,endTime,"C"); + type = "长闪"; + limit = overLimit.getFlicker(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UABERRANCE_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVTHD(lineIndex,startTime,endTime,"A"); + datab = steadyUrlDataMapper.getVTHD(lineIndex,startTime,endTime,"B"); + datac = steadyUrlDataMapper.getVTHD(lineIndex,startTime,endTime,"C"); + type = "电压谐波畸变率"; + limit = overLimit.getUaberrance(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_2_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"2","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"2","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"2","C"); + type = "2次电压谐波含有率"; + limit = overLimit.getUharm2(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_3_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"3","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"3","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"3","C"); + type = "3次电压谐波含有率"; + limit = overLimit.getUharm3(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_4_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"4","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"4","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"4","C"); + type = "4次电压谐波含有率"; + limit = overLimit.getUharm4(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_5_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"5","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"5","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"5","C"); + type = "5次电压谐波含有率"; + limit = overLimit.getUharm5(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_6_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"6","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"6","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"6","C"); + type = "6次电压谐波含有率"; + limit = overLimit.getUharm6(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_7_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"7","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"7","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"7","C"); + type = "7次电压谐波含有率"; + limit = overLimit.getUharm7(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_8_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"8","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"8","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"8","C"); + type = "8次电压谐波含有率"; + limit = overLimit.getUharm8(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_9_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"9","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"9","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"9","C"); + type = "9次电压谐波含有率"; + limit = overLimit.getUharm9(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_10_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"10","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"10","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"10","C"); + type = "10次电压谐波含有率"; + limit = overLimit.getUharm10(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_11_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"11","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"11","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"11","C"); + type = "11次电压谐波含有率"; + limit = overLimit.getUharm11(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_12_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"12","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"12","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"12","C"); + type = "12次电压谐波含有率"; + limit = overLimit.getUharm12(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_13_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"13","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"13","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"13","C"); + type = "13次电压谐波含有率"; + limit = overLimit.getUharm13(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_14_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"14","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"14","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"14","C"); + type = "14次电压谐波含有率"; + limit = overLimit.getUharm14(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_15_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"15","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"15","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"15","C"); + type = "15次电压谐波含有率"; + limit = overLimit.getUharm15(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_16_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"16","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"16","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"16","C"); + type = "16次电压谐波含有率"; + limit = overLimit.getUharm16(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_17_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"17","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"17","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"17","C"); + type = "17次电压谐波含有率"; + limit = overLimit.getUharm17(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_18_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"18","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"18","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"18","C"); + type = "18次电压谐波含有率"; + limit = overLimit.getUharm18(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_19_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"19","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"19","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"19","C"); + type = "19次电压谐波含有率"; + limit = overLimit.getUharm19(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_20_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"20","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"20","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"20","C"); + type = "20次电压谐波含有率"; + limit = overLimit.getUharm20(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_21_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"21","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"21","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"21","C"); + type = "21次电压谐波含有率"; + limit = overLimit.getUharm21(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_22_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"22","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"22","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"22","C"); + type = "22次电压谐波含有率"; + limit = overLimit.getUharm22(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_23_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"23","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"23","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"23","C"); + type = "23次电压谐波含有率"; + limit = overLimit.getUharm23(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_24_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"24","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"24","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"24","C"); + type = "24次电压谐波含有率"; + limit = overLimit.getUharm24(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.UHARM_25_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"25","A"); + datab = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"25","B"); + datac = steadyUrlDataMapper.getVHarmRate(lineIndex,startTime,endTime,"25","C"); + type = "25次电压谐波含有率"; + limit = overLimit.getUharm25(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_2_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"2","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"2","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"2","C"); + type = "2次电流谐波幅值"; + limit = overLimit.getIharm2(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_3_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"3","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"3","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"3","C"); + type = "3次电流谐波幅值"; + limit = overLimit.getIharm3(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_4_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"4","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"4","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"4","C"); + type = "4次电流谐波幅值"; + limit = overLimit.getIharm4(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_5_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"5","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"5","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"5","C"); + type = "5次电流谐波幅值"; + limit = overLimit.getIharm5(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_6_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"6","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"6","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"6","C"); + type = "6次电流谐波幅值"; + limit = overLimit.getIharm6(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_7_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"7","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"7","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"7","C"); + type = "7次电流谐波幅值"; + limit = overLimit.getIharm7(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_8_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"8","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"8","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"8","C"); + type = "8次电流谐波幅值"; + limit = overLimit.getIharm8(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_9_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"9","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"9","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"9","C"); + type = "9次电流谐波幅值"; + limit = overLimit.getIharm9(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_10_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"10","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"10","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"10","C"); + type = "10次电流谐波幅值"; + limit = overLimit.getIharm10(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_11_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"11","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"11","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"11","C"); + type = "11次电流谐波幅值"; + limit = overLimit.getIharm11(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_12_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"12","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"12","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"12","C"); + type = "12次电流谐波幅值"; + limit = overLimit.getIharm12(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_13_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"13","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"13","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"13","C"); + type = "13次电流谐波幅值"; + limit = overLimit.getIharm13(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_14_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"14","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"14","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"14","C"); + type = "14次电流谐波幅值"; + limit = overLimit.getIharm14(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_15_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"15","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"15","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"15","C"); + type = "15次电流谐波幅值"; + limit = overLimit.getIharm15(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_16_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"16","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"16","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"16","C"); + type = "16次电流谐波幅值"; + limit = overLimit.getIharm16(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_17_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"17","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"17","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"17","C"); + type = "17次电流谐波幅值"; + limit = overLimit.getIharm17(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_18_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"18","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"18","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"18","C"); + type = "18次电流谐波幅值"; + limit = overLimit.getIharm18(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_19_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"19","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"19","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"19","C"); + type = "19次电流谐波幅值"; + limit = overLimit.getIharm19(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_20_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"20","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"20","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"20","C"); + type = "20次电流谐波幅值"; + limit = overLimit.getIharm20(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_21_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"21","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"21","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"21","C"); + type = "21次电流谐波幅值"; + limit = overLimit.getIharm21(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_22_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"22","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"22","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"22","C"); + type = "22次电流谐波幅值"; + limit = overLimit.getIharm22(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_23_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"23","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"23","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"23","C"); + type = "23次电流谐波幅值"; + limit = overLimit.getIharm23(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_24_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"24","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"24","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"24","C"); + type = "24次电流谐波幅值"; + limit = overLimit.getIharm24(); + result.add(dataa); + result.add(datab); + result.add(datac); + }else if(typeCode == TypeCodeEnum.IHARM_25_OVERTIME.getCode()){ + dataa = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"25","A"); + datab = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"25","B"); + datac = steadyUrlDataMapper.getIHarmPhasic(lineIndex,startTime,endTime,"25","C"); + type = "25次电流谐波幅值"; + limit = overLimit.getIharm25(); + result.add(dataa); + result.add(datab); + result.add(datac); + } + + if(result != null && result.size()>0){ + String option=saveImg(result,lineIndex,type,limit); + if(StrUtil.isBlank(option)){ + throw new BusinessException("文件上传异常"); + } + appSteadyUrlService.update(new LambdaUpdateWrapper() + .set(AppSteadyUrl::getSteadyPath,option) + .eq(AppSteadyUrl::getTypeCode,typeCode) + .eq(AppSteadyUrl::getLineIndex, lineIndex) + .eq(AppSteadyUrl::getTimeId, timeId)); + ass = appSteadyUrlService.getOne(new LambdaQueryWrapper() + .eq(AppSteadyUrl::getTypeCode,typeCode) + .eq(AppSteadyUrl::getLineIndex, lineIndex) + .eq(AppSteadyUrl::getTimeId, timeId)); + }; + return ass; + } + + public String saveImg(List> result, String lineIndex, String typeName, float limit) { + // 变量 + List> values = new ArrayList<>(); + List> valueA = new ArrayList<>(); + List> valueB = new ArrayList<>(); + List> valueC = new ArrayList<>(); + List> limits = new ArrayList<>(); + + List lineDetail = lineFeignClient.getLineDetailByIds(Arrays.asList(lineIndex)).getData(); + if(CollUtil.isEmpty(lineDetail)){ + throw new BusinessException("监测点信息不存在,请检查的监测点编号"); + + } + Integer ptType = lineDetail.get(0).getPtType(); + + String option=""; + if(result.size() == 1){ + for(SteadyUrlData tmp:result.get(0)){ + List a = new ArrayList() {{ + add(tmp.getTime()); + add(tmp.getValue()); + }}; + values.add(a); + List aa = new ArrayList() {{ + add(tmp.getTime()); + add(limit); + }}; + limits.add(aa); + } + // 模板参数 + HashMap>> datas = new LinkedHashMap<>(); + datas.put("实际值", values); + String limitName="限值(" + limit + ")"; + // 生成返回地址 + option = wavePicComponent.generateSteadyTargetImage(typeName,datas,limitName,limits); + }else{ + for(SteadyUrlData tmpA:result.get(0)){ + List a = new ArrayList() {{ + add(tmpA.getTime()); + add(tmpA.getValue()); + }}; + valueA.add(a); + List aa = new ArrayList() {{ + add(tmpA.getTime()); + add(limit); + }}; + limits.add(aa); + } + + for(SteadyUrlData tmpB:result.get(1)){ + List b = new ArrayList() {{ + add(tmpB.getTime()); + add(tmpB.getValue()); + }}; + valueB.add(b); + } + + for(SteadyUrlData tmpC:result.get(2)){ + List c = new ArrayList() {{ + add(tmpC.getTime()); + add(tmpC.getValue()); + }}; + valueC.add(c); + } + // 模板参数 + HashMap>> datas = new LinkedHashMap<>(); + String limitName="限值(" + limit + ")"; + // 生成option字符串 + if(typeName.lastIndexOf("电流谐波幅值") != -1){ + datas.put("A相",valueA); + datas.put("B相",valueB); + datas.put("C相",valueC); + option = wavePicComponent.generateSteadyTargetImage(typeName,datas,limitName,limits); + }else if(ptType == 0){ + datas.put("A相",valueA); + datas.put("B相",valueB); + datas.put("C相",valueC); + option = wavePicComponent.generateSteadyTargetImage(typeName,datas,limitName,limits); + }else if(ptType == 1){ + datas.put("AB相",valueA); + datas.put("BC相",valueB); + datas.put("CA相",valueC); + option = wavePicComponent.generateSteadyTargetImage(typeName,datas,limitName,limits); + }else if(ptType == 2){ + datas.put("AB相",valueA); + datas.put("BC相",valueB); + option = wavePicComponent.generateSteadyTargetImage(typeName,datas,limitName,limits); + } + } + + return option; + } + } diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/MsgServiceImpl.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/MsgServiceImpl.java new file mode 100644 index 0000000..e4c338c --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/impl/user/MsgServiceImpl.java @@ -0,0 +1,272 @@ +package com.njcn.cloud.service.impl.user; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; +import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; +import com.aliyuncs.http.MethodType; +import com.aliyuncs.profile.DefaultProfile; +import com.aliyuncs.profile.IClientProfile; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.cloud.enums.app.UserCodeEnum; +import com.njcn.cloud.pojo.dto.AppEventInfo; +import com.njcn.cloud.pojo.dto.AppEventMsg; +import com.njcn.cloud.pojo.dto.AppInfoSet; +import com.njcn.cloud.service.user.IAppEventInfoService; +import com.njcn.cloud.service.user.IAppEventMsgService; +import com.njcn.cloud.service.user.IAppInfoSetService; +import com.njcn.cloud.service.user.MsgService; +import com.njcn.cloud.utils.RedisDB; +import com.njcn.cloud.utils.SmsUtil; +import com.njcn.common.pojo.dto.LogInfoDTO; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.utils.PubUtils; +import com.njcn.device.pq.api.DeptLineFeignClient; +import com.njcn.device.pq.api.LineFeignClient; +import com.njcn.device.pq.pojo.po.DeptLine; +import com.njcn.device.pq.pojo.vo.LineDetailVO; +import com.njcn.event.api.EventDetailFeignClient; +import com.njcn.event.file.component.WavePicComponent; +import com.njcn.event.file.pojo.bo.WaveDataDetail; +import com.njcn.event.file.pojo.dto.WaveDataDTO; +import com.njcn.event.file.utils.WaveUtil; +import com.njcn.event.pojo.po.RmpEventDetailPO; +import com.njcn.redis.utils.RedisUtil; +import com.njcn.system.api.UserLogFeignClient; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.api.UserFeignClient; +import com.njcn.user.pojo.po.User; +import com.njcn.web.utils.RequestUtil; +import lombok.RequiredArgsConstructor; +import net.sf.json.JSONObject; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import javax.security.auth.login.AccountException; +import java.util.*; + +/** + * @author wr + * @description + * @date 2023/11/9 14:39 + */ +@Service +@RequiredArgsConstructor +public class MsgServiceImpl implements MsgService { + + private final EventDetailFeignClient eventDetailFeignClient; + private final LineFeignClient lineFeignClient; + private final DeptLineFeignClient deptLineFeignClient; + private final UserLogFeignClient userLogFeignClient; + private final DeptFeignClient deptFeignClient; + private final UserFeignClient userFeignClient; + private final IAppEventInfoService appEventInfoService; + private final WavePicComponent wavePicComponent; + private final IAppInfoSetService appInfoSetService; + private final IAppEventMsgService appEventMsgService; + private final RedisUtil redisUtil; + private final SmsUtil smsUtil; + + /** + * 推送暂降消息 + * + * @param eventDetailIndex 暂降事件索引 + * @param lineId 监测点索引 + * 1:根据监测点获取绑定的部门 + * 2:根据部门找到对应的主用户 + * 3:根据主用户获取所有的app用户 + * 4:执行推送保存功能 + */ + @Override + public void sendEventMsg(String eventDetailIndex, String lineId) throws Exception { + List eventDetails = eventDetailFeignClient.getEventDetailByIdsList(Arrays.asList(eventDetailIndex)).getData(); + if (CollUtil.isEmpty(eventDetails)) { + return; + } + RmpEventDetailPO eventDetail = eventDetails.get(0); + if (eventDetail.getFeatureAmplitude() == null || eventDetail.getFeatureAmplitude() >= 0.9) { + return; + } + DeptLine deptLines = deptLineFeignClient.getLineByLineIds(lineId).getData(); + //查询为空,则无人关注,不做推送处理,但是需要进行日志记录 + if (ObjectUtil.isNotNull(deptLines)) { + noUserFocus(eventDetailIndex, lineId); + } + //存在则进行筛选用户操作 + List deptIndexs = deptFeignClient.getUpByDeptIds(deptLines.getId()).getData(); + //查找出可以推送的用户 + List appUsers = userFeignClient.getUserByDeptIds(deptIndexs).getData(); + if (CollectionUtils.isEmpty(appUsers)) { + noUserFocus(eventDetailIndex, lineId); + } + + AppEventInfo one = appEventInfoService.getOne(new LambdaQueryWrapper() + .eq(AppEventInfo::getEventdetailIndex, eventDetailIndex) + ); + if (ObjectUtil.isNotNull(one)) { + throw new BusinessException(UserCodeEnum.REPEAT_EVENT_INFO.getMsg()); + } else { + WaveDataDTO waveDataDTO = appEventInfoService.analyseWave(eventDetailIndex, 2); + //数据筛选,如果是双路电压的话,会存在2个波形数据 + List waveDataDetails = WaveUtil.filterWaveData(waveDataDTO); + String instantPath = wavePicComponent.generateImageShun(waveDataDTO, waveDataDetails); + String rmsPath = wavePicComponent.generateImageRms(waveDataDTO, waveDataDetails); + one.setEventdetailIndex(eventDetailIndex); + one.setInstantwavePath(instantPath); + one.setRmswavePath(rmsPath); + } + appEventInfoService.save(one); + //获取到设备码开始执行推送并保存库的操作 + //排重设备ID + int phonePushFlag = 0; + List codes = new ArrayList<>(); + for (User appUser : appUsers) { + if (!codes.contains(appUser.getDevCode())) { + codes.add(appUser.getDevCode()); + pushEventInfo(eventDetail, appUser, StringUtils.isEmpty(appUser.getDevCode()) ? null : appUser.getDevCode(), phonePushFlag); + phonePushFlag = 1; + } + } + } + + @Override + public void sendSteadyMsg(String userIndex, String timeID, Integer lineNum) { + + } + + /** + * 执行推送保存消息操作 + * + * @param eventDetail 暂降事件 + * @param appUser 用户信息 + * @param devCode 手机唯一标识 + */ + private void pushEventInfo(RmpEventDetailPO eventDetail, User appUser, String devCode, int phonePushFlag) throws Exception { + //先根据用户获取推送策略 + AppInfoSet appInfoSet = appInfoSetService.getById(appUser.getId()); + if (ObjectUtil.isNotNull(appInfoSet)) { + AppEventMsg eventMsg = new AppEventMsg(); + eventMsg.setEventdetailIndex(eventDetail.getEventId()); + eventMsg.setUserIndex(appUser.getId()); + eventMsg.setState(0); + //执行保存消息记录操作 + appEventMsgService.save(eventMsg); + if (appInfoSet.getEventInfo() == 1 && StrUtil.isNotBlank(devCode)) { + //推送 + String content = "发生时刻:"; + //获取监测点信息 + List lines = lineFeignClient.getLineDetailByIds(Arrays.asList(eventDetail.getLineId())).getData(); + if (CollUtil.isNotEmpty(lines)) { + LineDetailVO.Detail line = lines.get(0); +// String url = getPushUrl(); + String url = ""; + String time = LocalDateTimeUtil.format(eventDetail.getStartTime(), DatePattern.NORM_DATETIME_MS_PATTERN); + //暂降幅值 + Float amplitude = PubUtils.floatRound(2, eventDetail.getFeatureAmplitude().floatValue() * 100); + //持续时间 + Float duration = PubUtils.floatRound(2, eventDetail.getDuration().floatValue()); + content = content + time + ",暂降幅值:" + amplitude + "%," + "持续时间:" + duration + "s。"; + //todo 推送消息地址 +// sendMsg(url, devCode, line.getName() + "监测点发生暂态事件", content, "1"); + //查询主账户是否开启短信通知 根据监测点ID找到部门找到用户 + if (phonePushFlag == 0) { + //添加策略,判断当前该事件是否需要短信推送 + boolean isPush = judgeEventNeedPush(eventDetail, line); + if (isPush) { + String message = "{\"line\":\"" + line.getLineName() + "\",\"time\":\"" + time + "\",\"ms\":\"" + eventDetail.getFirstMs() + "\",\"eventvalue\":\"" + amplitude + "\",\"persisttime\":\"" + duration + "\"}"; + smsUtil.sendSms(appUser.getPhone(), smsUtil.getMessageTemplate("8"), message); + } + } + } + } + } + + } + + /*** + * 1、监测点等级:极重要----则全部发送; + * 2、监测点等级:重要----一天内最多通过短信发送10条暂降事件;超过的则暂降小等于80的才发送; + * 3、监测点等级:普通----一天内最多通过短信发送3条暂降事件;超过的则暂降小等于80的才发送; + * 4、监测点等级:不重要----一天内最多通过短信发送1条暂降事件;超过的则暂降小等于80的才发送; + * @author hongawen + * @date 2023/7/31 10:15 + * @param eventDetail 暂降信息 + * @param lineIndex 监测点索引 + * @return boolean + */ + private boolean judgeEventNeedPush(RmpEventDetailPO eventDetail, LineDetailVO.Detail lineIndex) { + boolean pushFlag = true; + String valueByKey = redisUtil.getStringByKey(RedisDB.ONE_DAY_QUERY, lineIndex.getLineId()); + if (StrUtil.isBlank(valueByKey)) { + //为空,则最近24小时内没有发生暂降推送 + redisUtil.saveByKeyWithExpire(RedisDB.ONE_DAY_QUERY, lineIndex.getLineId(), "1", RedisDB.ONE_DAY_TIME); + } else { + //不为空,根据监测点重要程度来区分次数是否达到上限 + String lineGrade = lineIndex.getLineGrade(); + if (StrUtil.isBlank(lineGrade)) { + lineGrade = "不重要"; + } + if (eventDetail.getFeatureAmplitude() > 0.80f) { + int times = Integer.parseInt(valueByKey); + switch (lineGrade) { + case "重要": + if (times >= 10) { + pushFlag = false; + } + break; + case "普通": + if (times >= 3) { + pushFlag = false; + } + break; + case "不重要": + if (times >= 1) { + pushFlag = false; + } + break; + default: + break; + } + if (pushFlag) { + times++; + long ttl = redisUtil.getExpire(RedisDB.ONE_DAY_QUERY, String.valueOf(lineIndex)); + redisUtil.saveByKeyWithExpire(RedisDB.ONE_DAY_QUERY, String.valueOf(lineIndex), String.valueOf(times), (int) ttl); + } + } + } + return pushFlag; + } + + + /** + * 无人关注的监测点出现暂降消息处理 + * + * @param eventDetailIndex 暂降索引 + * @param lineId 监测点索引 + */ + private void noUserFocus(String eventDetailIndex, String lineId) { + //进行日志保存 + LogInfoDTO logInfoDTO = new LogInfoDTO(); + logInfoDTO.setLoginName(RequestUtil.getLoginName()); + logInfoDTO.setUserName(RequestUtil.getUserNickname()); + logInfoDTO.setIp(RequestUtil.getRealIp()); + logInfoDTO.setOperate(lineId + "的暂降消息" + eventDetailIndex + "无人监听"); + logInfoDTO.setOperateType("暂降推送"); + logInfoDTO.setResult(1); + logInfoDTO.setLevel(1); + logInfoDTO.setType(0); + logInfoDTO.setServiceName("app-cloud"); + logInfoDTO.setUserIndex(RequestUtil.getUserIndex()); + userLogFeignClient.addUserLog(logInfoDTO); + //抛出异常,返回调用者 + throw new BusinessException(UserCodeEnum.NO_USER_FOCUS.getMsg()); + } + + +} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppDevMsgService.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppDevMsgService.java new file mode 100644 index 0000000..7cbffc3 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppDevMsgService.java @@ -0,0 +1,69 @@ +package com.njcn.cloud.service.user; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.cloud.pojo.dto.AppDevMsg; +import com.njcn.cloud.pojo.vo.DevComTJ; +import com.njcn.cloud.pojo.vo.DevMsgDetailInfo; +import com.njcn.device.pq.pojo.vo.DevDetail; +import com.njcn.web.pojo.param.BaseParam; + +import java.util.List; + +/** + *

+ * 终端消息 服务类 + *

+ * + * @author wr + * @since 2023-11-07 + */ +public interface IAppDevMsgService extends IService { + + /** + * @Description: 终端消息列表获取 + * @param param + * @return: java.util.List + * @Author: wr + * @Date: 2023/11/7 10:47 + */ + Page deviceMsgList(BaseParam param); + + + /** + * @Description: 终端列表 + * @param param + * @return: java.util.List + * @Author: wr + * @Date: 2023/11/7 11:13 + */ + Page deviceList(BaseParam param); + + /** + * @Description: 修改消息状态 + * @param ids + * @return: java.lang.Boolean + * @Author: wr + * @Date: 2023/11/8 10:07 + */ + Boolean updateDevMsgState(List ids); + + + /** + * @Description: 终端通讯状态统计 + * @param deptId + * @return: com.njcn.cloud.pojo.vo.DevComTJ + * @Author: wr + * @Date: 2023/11/8 11:48 + */ + DevComTJ getDevComTJ(String deptId); + + /** + * @Description: 终端通讯信息 + * @param deptId + * @return: java.util.List + * @Author: wr + * @Date: 2023/11/8 11:48 + */ + List getDevComInfo(String deptId); +} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppInfoSetService.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppInfoSetService.java new file mode 100644 index 0000000..f0d3a27 --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppInfoSetService.java @@ -0,0 +1,17 @@ +package com.njcn.cloud.service.user; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.cloud.pojo.dto.AppInfoSet; + +/** + *

+ * 推送消息设置 服务类 + *

+ * + * @author wr + * @since 2023-11-10 + */ +public interface IAppInfoSetService extends IService { + +} diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppSteadyMsgService.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppSteadyMsgService.java index 036ad9e..ac66620 100644 --- a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppSteadyMsgService.java +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/IAppSteadyMsgService.java @@ -8,7 +8,6 @@ import com.njcn.cloud.pojo.vo.SteadyMsgDetailVO; import com.njcn.cloud.pojo.vo.SteadyTargetVO; import com.njcn.web.pojo.param.BaseParam; -import java.util.Date; import java.util.List; /** @@ -22,8 +21,8 @@ import java.util.List; public interface IAppSteadyMsgService extends IService { /** - * @Description: 稳态越线列表 * @param param + * @Description: 稳态越线列表 * @return: com.njcn.cloud.pojo.vo.AppSteadyMsgVO * @Author: wr * @Date: 2023/11/3 9:24 @@ -31,8 +30,8 @@ public interface IAppSteadyMsgService extends IService { AppSteadyMsgVO getSteadyState(BaseParam param); /** + * @param steadyIndex * @Description: 稳态越限列表详细信息 - * @param steadyIndex * @return: java.util.List * @Author: wr * @Date: 2023/11/3 13:40 @@ -40,23 +39,34 @@ public interface IAppSteadyMsgService extends IService { List getSteadyDetail(String steadyIndex); /** - * @Description: 获取稳态越限指标 * @param lineIndex - * @param timeId + * @param timeId + * @Description: 获取稳态越限指标 * @return: java.util.List * @Author: wr * @Date: 2023/11/3 16:08 */ List getSteadyTarget(String lineIndex, String timeId); - /** - * @Description: 获取稳态越限指标图形 - * @param lineIndex - * @param timeId - * @param typeCode - * @return: com.njcn.cloud.pojo.dto.AppSteadyUrl - * @Author: wr - * @Date: 2023/11/3 16:20 - */ - AppSteadyUrl getSteadyTargetUrl(String lineIndex, String timeId,Integer typeCode); + /** + * @param lineIndex + * @param timeId + * @param typeCode + * @Description: 获取稳态越限指标图形 + * @return: com.njcn.cloud.pojo.dto.AppSteadyUrl + * @Author: wr + * @Date: 2023/11/3 16:20 + */ + AppSteadyUrl getSteadyTargetUrl(String lineIndex, String timeId, Integer typeCode); + + /** + * @param lineIndex + * @param timeId + * @param typeCode + * @Description: 生成稳态越限指标图形 + * @return: com.njcn.cloud.pojo.dto.AppSteadyUrl + * @Author: wr + * @Date: 2023/11/6 9:26 + */ + AppSteadyUrl getUrl(String lineIndex, String timeId, Integer typeCode); } diff --git a/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/MsgService.java b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/MsgService.java new file mode 100644 index 0000000..ebdb38f --- /dev/null +++ b/app-cloud/app-cloud-boot/src/main/java/com/njcn/cloud/service/user/MsgService.java @@ -0,0 +1,29 @@ +package com.njcn.cloud.service.user; + + +/** + * @author wr + * @description + * @date 2023/11/9 14:39 + */ +public interface MsgService { + + /** + * @Description: 暂态消息推送 + * @param eventDetailIndex + * @param lineId + * @Author: wr + * @Date: 2023/11/9 14:40 + */ + void sendEventMsg(String eventDetailIndex,String lineId)throws Exception; + + /** + * @Description: 稳态消息推送 + * @param userIndex + * @param timeID + * @param lineNum + * @Author: wr + * @Date: 2023/11/10 15:35 + */ + void sendSteadyMsg(String userIndex, String timeID, Integer lineNum); +} diff --git a/app-cloud/app-cloud-boot/src/main/resources/bootstrap.yml b/app-cloud/app-cloud-boot/src/main/resources/bootstrap.yml index a0ac7cf..faa7065 100644 --- a/app-cloud/app-cloud-boot/src/main/resources/bootstrap.yml +++ b/app-cloud/app-cloud-boot/src/main/resources/bootstrap.yml @@ -23,10 +23,10 @@ spring: discovery: ip: @service.server.url@ server-addr: 192.168.1.13:18848 - namespace: 78588706-e06f-4580-b612-b26d72493fcb + namespace: dd46004f-e15b-457c-92d3-4417b8f71be0 config: server-addr: 192.168.1.13:18848 - namespace: 78588706-e06f-4580-b612-b26d72493fcb + namespace: dd46004f-e15b-457c-92d3-4417b8f71be0 file-extension: yaml shared-configs: - data-id: share-config.yaml