diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/ServerInfo.java b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/ServerInfo.java index b263ce89d..637fb140f 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/ServerInfo.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/constant/ServerInfo.java @@ -22,5 +22,6 @@ public interface ServerInfo { String JOB_ADMIN = "job-admin"; String USER = "user-boot"; String JOB = "job-admin"; + String QUALITY = "quality-boot"; } diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/common/ServerEnum.java b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/common/ServerEnum.java index 00abad528..1a8023b91 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/common/ServerEnum.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/pojo/enums/common/ServerEnum.java @@ -23,6 +23,8 @@ public enum ServerEnum { SUPERVISE("pqs-supervise", "技术监督管理服务模块"), SYSTEM("system-boot", "系统配置服务模块"), USER("user-boot", "用户服务模块"), + ENERGY("energy-boot", "用能服务模块"), + QUALITY("quality-boot", "电能质量服务模块"), COMMON("pqs-common", "通用服务模块"); private final String name; diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/utils/wave/AnalyWave.java b/pqs-common/common-core/src/main/java/com/njcn/common/utils/wave/AnalyWave.java index ac5d8b01b..c6bf04913 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/utils/wave/AnalyWave.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/utils/wave/AnalyWave.java @@ -1109,7 +1109,7 @@ public class AnalyWave { ********************************************************/ AnalyWave analyWave = new AnalyWave(); // 获取瞬时波形 - WaveDataDTO waveDataDTO = analyWave.getComtrade("E:\\Comtrade\\PQMonitor_PQM1_106_20220301_101522_338.CFG", 1);//获取原始波形值 + WaveDataDTO waveDataDTO = analyWave.getComtrade("C:\\Users\\陈超\\Desktop\\Comtrade\\192.168.0.58\\222.CFG", 1);//获取原始波形值 // 获取RMS波形 WaveDataDTO waveDataDTO1 = analyWave.getValidData(waveDataDTO); // 获取特征值 diff --git a/pqs-common/common-echarts/pom.xml b/pqs-common/common-echarts/pom.xml index e74a73f6d..39bdeba13 100644 --- a/pqs-common/common-echarts/pom.xml +++ b/pqs-common/common-echarts/pom.xml @@ -41,6 +41,10 @@ com.google.code.gson gson + + org.projectlombok + lombok + \ No newline at end of file diff --git a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/utils/InfluxDbUtils.java b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/utils/InfluxDbUtils.java index 0d71cd2ec..dcb93c635 100644 --- a/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/utils/InfluxDbUtils.java +++ b/pqs-common/common-influxdb/src/main/java/com/njcn/influxdb/utils/InfluxDbUtils.java @@ -1,7 +1,6 @@ package com.njcn.influxdb.utils; -import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.influxdb.InfluxDB; @@ -170,7 +169,6 @@ public class InfluxDbUtils { builder.tag(tags); builder.fields(fields); if (0 != time) { - time = time + 28800000; builder.time(time, timeUnit); } influxDB.write(dbName, retentionPolicy, builder.build()); diff --git a/pqs-common/common-influxdb/src/test/java/test.java b/pqs-common/common-influxdb/src/test/java/test.java index f7ef836d5..290179aab 100644 --- a/pqs-common/common-influxdb/src/test/java/test.java +++ b/pqs-common/common-influxdb/src/test/java/test.java @@ -1,8 +1,11 @@ +import cn.hutool.core.date.DateUtil; +import com.njcn.event.pojo.po.EventDetail; import com.njcn.influxdb.utils.InfluxDbUtils; import org.influxdb.InfluxDB.ConsistencyLevel; import org.influxdb.dto.BatchPoints; import org.influxdb.dto.Point; import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; import java.util.*; import java.util.concurrent.TimeUnit; @@ -21,9 +24,17 @@ public class test { //查询 public static QueryResult select(InfluxDbUtils influxDBUtil) { long startTime = System.currentTimeMillis(); - QueryResult result = influxDBUtil.query("select * from data_V where phasic_type='A'"); + //组装sql语句 + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("time >= '").append(DateUtil.beginOfDay(DateUtil.parse("2022-05-06"))).append("' and ").append("time <= '").append(DateUtil.endOfDay(DateUtil.parse("2022-05-06"))).append("' and ("); + //sql语句 + stringBuilder.append("line_id ='").append("1e3b8531483b2a8cbee6747f1f641cf9").append("')"); + //获取暂降事件 + QueryResult result = influxDBUtil.query("select * from pqs_eventdetail where " + stringBuilder.toString()); + InfluxDBResultMapper influxDBResultMapper = new InfluxDBResultMapper(); + List eventDetailList = influxDBResultMapper.toPOJO(result, EventDetail.class); long endTime = System.currentTimeMillis(); - System.out.println(endTime - startTime); + System.out.println(eventDetailList); return result; } @@ -47,101 +58,152 @@ public class test { } } - public static void main(String[] args) { + public static void main(String[] args) { InfluxDbUtils influxDBUtil = new InfluxDbUtils("root", "123456789", "http://192.168.1.16:8086", "pqsbase", ""); insert(influxDBUtil); + //select(influxDBUtil); + } + public static void deleteDB(InfluxDbUtils influxDBUtil) { + influxDBUtil.deleteDB("LIMIT_RATE"); } //单条数据插入 public static void insert(InfluxDbUtils influxDBUtil) { + // long time = Long.parseLong("1655135328135"); + // Map tags = new HashMap<>(); + // // tags.put("line_id", "127fad1dcb0077ac2979141b8473a5e4"); + // tags.put("line_id", "1883a1fe6d9c3c5a03a4371bda024452"); + // Map fields = new HashMap<>(); + // fields.put("create_time", "2022-06-13 23:57:31"); + // fields.put("update_time", ""); + // fields.put("push_failed",0); + // fields.put("result",1); + // influxDBUtil.insert("pqs_event_push_logs", tags, fields, time, TimeUnit.MILLISECONDS); + + long time = Long.parseLong("1646180719000"); Map tags = new HashMap<>(); - tags.put("lineid", "1e3b8531483b2a8cbee6747f1f641cf9"); - Map fields = new HashMap<>(); - fields.put("phasic_type","T"); - fields.put("value_type","MAX"); - fields.put("Freq_Dev", 48.6 ); - fields.put("Voltage_Dev", 8.3 ); - fields.put("UBalance", 7.6 ); - fields.put("Flicker", 4.6 ); - fields.put("UAberrance", 6.5 ); - fields.put("I_Neg", 5.6 ); - fields.put("UHarm_2", 6.8 ); - fields.put("UHarm_3", 5.5 ); - fields.put("UHarm_4", 5.4 ); - fields.put("UHarm_5", 7.8 ); - fields.put("UHarm_6", 6.2 ); - fields.put("UHarm_7", 2.5 ); - fields.put("UHarm_8", 8.3 ); - fields.put("UHarm_9", 6.2 ); - fields.put("UHarm_10", 12.8 ); - fields.put("UHarm_11", 2.8 ); - fields.put("UHarm_12", 8.4 ); - fields.put("UHarm_13", 5.6 ); - fields.put("UHarm_14", 5.2 ); - fields.put("UHarm_15", 9.5 ); - fields.put("UHarm_16", 8.3 ); - fields.put("UHarm_17", 7.8 ); - fields.put("UHarm_18", 6.2 ); - fields.put("UHarm_19", 2.5); - fields.put("UHarm_20", 4.5 ); - fields.put("UHarm_21", 4.5 ); - fields.put("UHarm_22", 6.5 ); - fields.put("UHarm_23", 5.9 ); - fields.put("UHarm_24", 9.2 ); - fields.put("UHarm_25", 5.8 ); - fields.put("IHarm_2", 12.8 ); - fields.put("IHarm_3", 5.4 ); - fields.put("IHarm_4", 6.2 ); - fields.put("IHarm_5", 3.2 ); - fields.put("IHarm_6", 5.2 ); - fields.put("IHarm_7", 5.2 ); - fields.put("IHarm_8", 5.5 ); - fields.put("IHarm_9", 4.8 ); - fields.put("IHarm_10", 8.2 ); - fields.put("IHarm_11", 2.5 ); - fields.put("IHarm_12", 8.6 ); - fields.put("IHarm_13", 5.8 ); - fields.put("IHarm_14", 3.5 ); - fields.put("IHarm_15", 2.4 ); - fields.put("IHarm_16", 5.2 ); - fields.put("IHarm_17", 2.5 ); - fields.put("IHarm_18", 9.2 ); - fields.put("IHarm_19", 8.5); - fields.put("IHarm_20", 8.5 ); - fields.put("IHarm_21", 6.2 ); - fields.put("IHarm_22", 5.2 ); - fields.put("IHarm_23", 8.5 ); - fields.put("IHarm_24", 5.2 ); - fields.put("IHarm_25", 8.4 ); - fields.put("InUHARM_1", 8.2 ); - fields.put("InUHARM_2", 5.2 ); - fields.put("InUHARM_3", 6.2 ); - fields.put("InUHARM_4", 4.2 ); - fields.put("InUHARM_5", 2.3 ); - fields.put("InUHARM_6", 6.2 ); - fields.put("InUHARM_7", 5.2 ); - fields.put("InUHARM_8", 10.2 ); - fields.put("InUHARM_9", 2.3 ); - fields.put("InUHARM_10", 4.2 ); - fields.put("InUHARM_11", 3.5 ); - fields.put("InUHARM_12", 3.6 ); - fields.put("InUHARM_13", 2.3 ); - fields.put("InUHARM_14", 7.2 ); - fields.put("InUHARM_15", 5.6 ); - fields.put("InUHARM_16", 5.6 ); - influxDBUtil.insert("PQS_AbnormalData", tags, fields, System.currentTimeMillis(), TimeUnit.MILLISECONDS); +<<<<<<< .mine tags.put("LineID", "fd4ffb0dd33eafaaf403b07a3fc1afe5"); +======= tags.put("line_id", "89604adcaf7df6284fdaa352ccaba56b"); +>>>>>>> .theirs Map fields = new HashMap<>(); + fields.put("VU_Dev1",5.706); + fields.put("VU_Dev2",5.706); + fields.put("VU_Dev3",5.706); + fields.put("VU_Dev4",5.706); + fields.put("VU_Dev5",5.706); + fields.put("Freq_Dev1",0.534); + fields.put("Freq_Dev2",0.534); + fields.put("Freq_Dev3",2.534); + fields.put("Freq_Dev4",0.534); + fields.put("Freq_Dev5",0.534); + fields.put("Data_PST1",0.604); + fields.put("Data_PST2",0.0); + fields.put("Data_PST3",0.691); + fields.put("Data_PST4",0.910); + fields.put("Data_PST5",0.691); + fields.put("V_Unbalance1",2.713); + fields.put("V_Unbalance2",2.713); + fields.put("V_Unbalance3",2.713); + fields.put("V_Unbalance4",2.713); + fields.put("V_Unbalance5",2.713); + fields.put("V_THD1",20.001); + fields.put("V_THD2",20.003); + fields.put("V_THD3",20.00); + fields.put("V_THD4",20.008); + fields.put("V_THD5",20.00); + fields.put("Event1",1.619); + fields.put("Event2",1.619); + fields.put("Event3",1.619); + fields.put("Event4",1.619); + fields.put("Event5",1.619); + influxDBUtil.insert("PQS_COMASSES", tags, fields, time, TimeUnit.MILLISECONDS); + // long time = Long.parseLong("1647473742000"); + // tags.put("MYINDEX", "df1ff413949f6d1fc07ffdb5440b4907"); + // Map fields = new HashMap<>(); + // fields.put("Phasic_Type","T"); + // fields.put("AllTime",1155); + // fields.put("Flicker_AllTime",550); + // fields.put("Flicker_OverTime",0); + // fields.put("Freq_Dev_OverTime",0); + // fields.put("Voltage_Dev_OverTime",0); + // fields.put("UBalance_OverTime",0); + // fields.put("UAberrance_OverTime",0); + // fields.put("I_Neg_OverTime",0); + // fields.put("UHarm_2_OverTime",0); + // fields.put("UHarm_3_OverTime",0); + // fields.put("UHarm_4_OverTime",0); + // fields.put("UHarm_5_OverTime",0); + // fields.put("UHarm_6_OverTime",0); + // fields.put("UHarm_7_OverTime",0); + // fields.put("UHarm_8_OverTime",0); + // fields.put("UHarm_9_OverTime",0); + // fields.put("UHarm_10_OverTime",0); + // fields.put("UHarm_11_OverTime",0); + // fields.put("UHarm_12_OverTime",0); + // fields.put("UHarm_13_OverTime",0); + // fields.put("UHarm_14_OverTime",0); + // fields.put("UHarm_15_OverTime",0); + // fields.put("UHarm_16_OverTime",0); + // fields.put("UHarm_17_OverTime",0); + // fields.put("UHarm_18_OverTime",0); + // fields.put("UHarm_19_OverTime",0); + // fields.put("UHarm_20_OverTime",0); + // fields.put("UHarm_21_OverTime",0); + // fields.put("UHarm_22_OverTime",0); + // fields.put("UHarm_23_OverTime",0); + // fields.put("UHarm_24_OverTime",0); + // fields.put("UHarm_25_OverTime",0); + // fields.put("IHarm_2_OverTime",0); + // fields.put("IHarm_3_OverTime",0); + // fields.put("IHarm_4_OverTime",0); + // fields.put("IHarm_5_OverTime",0); + // fields.put("IHarm_6_OverTime",0); + // fields.put("IHarm_7_OverTime",0); + // fields.put("IHarm_8_OverTime",0); + // fields.put("IHarm_9_OverTime",0); + // fields.put("IHarm_10_OverTime",0); + // fields.put("IHarm_11_OverTime",0); + // fields.put("IHarm_12_OverTime",0); + // fields.put("IHarm_13_OverTime",0); + // fields.put("IHarm_14_OverTime",0); + // fields.put("IHarm_15_OverTime",0); + // fields.put("IHarm_16_OverTime",0); + // fields.put("IHarm_17_OverTime",0); + // fields.put("IHarm_18_OverTime",0); + // fields.put("IHarm_19_OverTime",0); + // fields.put("IHarm_20_OverTime",0); + // fields.put("IHarm_21_OverTime",0); + // fields.put("IHarm_22_OverTime",0); + // fields.put("IHarm_23_OverTime",0); + // fields.put("IHarm_24_OverTime",0); + // fields.put("IHarm_25_OverTime",0); + // fields.put("InUHARM_1_OverTime",0); + // fields.put("InUHARM_2_OverTime",0); + // fields.put("InUHARM_3_OverTime",0); + // fields.put("InUHARM_4_OverTime",0); + // fields.put("InUHARM_5_OverTime",0); + // fields.put("InUHARM_6_OverTime",0); + // fields.put("InUHARM_7_OverTime",0); + // fields.put("InUHARM_8_OverTime",0); + // fields.put("InUHARM_9_OverTime",0); + // fields.put("InUHARM_10_OverTime",0); + // fields.put("InUHARM_11_OverTime",0); + // fields.put("InUHARM_12_OverTime",0); + // fields.put("InUHARM_13_OverTime",0); + // fields.put("InUHARM_14_OverTime",0); + // fields.put("InUHARM_15_OverTime",0); + // fields.put("InUHARM_16_OverTime",0); + // influxDBUtil.insert("LIMIT_RATE", tags, fields, time, TimeUnit.MILLISECONDS); } //循环写入数据库 public static void batchInsertOne(InfluxDbUtils influxDBUtil) { Map tags1 = new HashMap<>(); - tags1.put("LineID", "8"); - tags1.put("Phasic_Type", "A"); + tags1.put("line_id", "127fad1dcb0077ac2979141b8473a5e4"); Map fields1 = new HashMap<>(); - fields1.put("RMS", 2); - fields1.put("RMS_AB", 2); - fields1.put("RMS_BC", 2); - fields1.put("RMS_CA", 2); + fields1.put("describe", "暂降事件1"); + fields1.put("wave_type", 1); + fields1.put("persist_time", 1620); + fields1.put("event_value", 0.956); Map tags2 = new HashMap<>(); tags2.put("LineID", "9"); tags2.put("Phasic_Type", "A"); diff --git a/pqs-common/common-poi/pom.xml b/pqs-common/common-poi/pom.xml index 48c5c6b04..22deff41c 100644 --- a/pqs-common/common-poi/pom.xml +++ b/pqs-common/common-poi/pom.xml @@ -31,6 +31,10 @@ cn.afterturn easypoi-spring-boot-starter + + org.projectlombok + lombok + \ No newline at end of file diff --git a/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java b/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java index 475b9a52b..b8bbda1a4 100644 --- a/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java +++ b/pqs-common/common-swagger/src/main/java/com/njcn/swagger/config/Knife4jSwaggerConfig.java @@ -58,7 +58,8 @@ public class Knife4jSwaggerConfig { "com.njcn.system.controller", "com.njcn.harmonic.controller", "com.njcn.event.controller", - "com.njcn.energy.controller") + "com.njcn.energy.controller", + "com.njcn.quality.controller") .collect(Collectors.toList()); List grantTypes = new ArrayList<>(); String passwordTokenUrl = "http://" + gatewayUrl + "/pqs-auth/oauth/token"; diff --git a/pqs-common/common-web/src/main/java/com/njcn/web/utils/RequestUtil.java b/pqs-common/common-web/src/main/java/com/njcn/web/utils/RequestUtil.java index 3ddc62a51..c57fa1fb0 100644 --- a/pqs-common/common-web/src/main/java/com/njcn/web/utils/RequestUtil.java +++ b/pqs-common/common-web/src/main/java/com/njcn/web/utils/RequestUtil.java @@ -40,7 +40,6 @@ public class RequestUtil { /** - * 获取登录认证的客户端ID * 兼容两种方式获取OAuth2客户端信息(client_id、client_secret) * 放在请求头(Request Headers)中的Authorization字段,且经过加密,例如 Basic Y2xpZW50OnNlY3JldA== 明文等于 client:secret */ @@ -49,7 +48,7 @@ public class RequestUtil { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); // 从请求路径中获取 String clientId = ""; - // 从请求头获取 + // 从请求头获取 * 获取登录认证的客户端ID String basic = request.getHeader(SecurityConstants.AUTHORIZATION_KEY); if (StrUtil.isNotBlank(basic) && basic.startsWith(SecurityConstants.BASIC_PREFIX)) { basic = basic.replace(SecurityConstants.BASIC_PREFIX, Strings.EMPTY); diff --git a/pqs-common/pom.xml b/pqs-common/pom.xml index a08f80471..628be90c3 100644 --- a/pqs-common/pom.xml +++ b/pqs-common/pom.xml @@ -20,8 +20,7 @@ common-web common-autocode common-influxdb - common-poi - + diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/TerminalParam.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/TerminalParam.java new file mode 100644 index 000000000..5233ebc47 --- /dev/null +++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/param/TerminalParam.java @@ -0,0 +1,33 @@ +package com.njcn.device.pojo.param; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/6/14 + */ +@Data +@ApiModel +@Valid +public class TerminalParam { + + @ApiModelProperty(name = "ids",value = "id集合",required = true) + @NotEmpty(message = "索引集合不可为空") + private List ids; + @ApiModelProperty(name = "runFlag",value = "终端运行状态") + private Integer runFlag; + @ApiModelProperty(name = "baseMealId",value = "基础套餐") + private String baseMealId; + @ApiModelProperty(name = "extendMealId",value = "扩展套餐") + private String extendMealId; + @ApiModelProperty(name = "flowStrategyId",value = "流量策略") + private String flowStrategyId; +} diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/LineDistributionVO.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/LineDistributionVO.java index 785f4d93d..210080312 100644 --- a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/LineDistributionVO.java +++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/LineDistributionVO.java @@ -13,8 +13,17 @@ import java.io.Serializable; @Data public class LineDistributionVO implements Serializable { @ApiModelProperty("区域名称") - private String areaName; + private String name; @ApiModelProperty("监测点个数") - private Integer lineNum; + private Integer value; + + public LineDistributionVO(String areaName, Integer lineNum) { + this.areaName = areaName; + this.lineNum = lineNum; + } + + public LineDistributionVO() { + + } } diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/TerminalMaintainVO.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/TerminalMaintainVO.java index 6f7e7efd2..82c9fe989 100644 --- a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/TerminalMaintainVO.java +++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/TerminalMaintainVO.java @@ -43,6 +43,8 @@ public class TerminalMaintainVO { private Float statisValue; @ApiModelProperty(name = "流量策略") private String flowStrategy; + @ApiModelProperty(name = "策略类型") + private Integer strategyFlag; @ApiModelProperty(name = "子级") List children; } diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java index 4067a56c5..e43ab9700 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/ProgramVersionController.java @@ -7,10 +7,12 @@ 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.pojo.vo.ShowVersionVO; import com.njcn.device.pojo.vo.VersionVO; import com.njcn.device.service.ProgramVersionService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; @@ -66,6 +68,15 @@ public class ProgramVersionController extends BaseController { } } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getProgramVersionById") + @ApiOperation("修改版本回显") + @ApiImplicitParam(name = "id", value = "终端版本id", required = true) + public HttpResult getProgramVersionById(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("getProgramVersionById"); + ShowVersionVO result = programService.getProgramVersionById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/updateProgramVersion") diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalMaintainController.java b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalMaintainController.java index 2314c8637..4c3de1d58 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalMaintainController.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/TerminalMaintainController.java @@ -1,16 +1,21 @@ package com.njcn.device.controller; +import cn.hutool.core.util.StrUtil; import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.enums.common.LogEnum; 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.enums.DeviceResponseEnum; import com.njcn.device.pojo.param.TerminalMainQueryParam; +import com.njcn.device.pojo.param.TerminalParam; import com.njcn.device.pojo.vo.TerminalMaintainVO; import com.njcn.device.service.TerminalMaintainService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -21,6 +26,7 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.List; +import java.util.Objects; /** * pqs @@ -109,13 +115,17 @@ public class TerminalMaintainController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) @PostMapping("/updateRunFlagManage") @ApiOperation("批量修改终端状态") - public HttpResult> updateRunFlagManage(@NotEmpty(message = "id不可为空") @RequestBody List ids, @NotNull(message = "指标id不可为空") @RequestParam("runFlag") Integer runFlag) { + @ApiImplicitParam(name = "terminalParam", value = "实体", required = true) + public HttpResult> updateRunFlagManage(@RequestBody TerminalParam terminalParam) { String methodDescribe = getMethodDescribe("updateRunFlagManage"); - boolean res = terminalMaintainService.updateRunFlagManage(ids, runFlag); + if(Objects.isNull(terminalParam.getRunFlag())){ + throw new BusinessException(CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION); + } + boolean res = terminalMaintainService.updateRunFlagManage(terminalParam); if (res) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); } } @@ -129,13 +139,17 @@ public class TerminalMaintainController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) @PostMapping("/updateDevFlowMeal") @ApiOperation("批量修改终端流量套餐") - public HttpResult updateDevFlowMeal(@NotEmpty(message = "id不可为空") @RequestBody List ids, @NotBlank(message = "基础流量id不可为空") @RequestParam("baseId") String baseId, @RequestParam(value = "reamId", required = false) String reamId) { + @ApiImplicitParam(name = "terminalParam", value = "实体", required = true) + public HttpResult updateDevFlowMeal(@RequestBody TerminalParam terminalParam) { String methodDescribe = getMethodDescribe("updateDevFlowMeal"); - boolean res = terminalMaintainService.updateFlowMeal(ids, baseId, reamId); + if(StrUtil.isBlank(terminalParam.getBaseMealId()) && StrUtil.isBlank(terminalParam.getExtendMealId())){ + throw new BusinessException(CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION); + } + boolean res = terminalMaintainService.updateFlowMeal(terminalParam); if (res) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); } } @@ -149,13 +163,17 @@ public class TerminalMaintainController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPDATE) @PostMapping("/updateDevFlowStrategy") @ApiOperation("批量修改终端流量策略") - public HttpResult updateDevFlowStrategy(@NotEmpty(message = "id不可为空") @RequestBody List ids, @NotBlank(message = "指标id不可为空") @RequestParam("typeId") String typeId) { + @ApiImplicitParam(name = "terminalParam", value = "实体", required = true) + public HttpResult updateDevFlowStrategy(@RequestBody TerminalParam terminalParam) { String methodDescribe = getMethodDescribe("updateDevFlowStrategy"); - boolean res = terminalMaintainService.updateFlowStrategy(ids, typeId); + if(StrUtil.isBlank(terminalParam.getFlowStrategyId())){ + throw new BusinessException(CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION); + } + boolean res = terminalMaintainService.updateFlowStrategy(terminalParam); if (res) { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } else { - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); } } diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/ProgramVersionMapper.java b/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/ProgramVersionMapper.java index ffae41b50..b282fdeed 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/ProgramVersionMapper.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/ProgramVersionMapper.java @@ -15,6 +15,10 @@ public interface ProgramVersionMapper { * 获取终端版本信息,根据装置型号查询 */ List getVersion(String devType); + // /** + // * 修改版本回显 + // */ + // ShowVersionVO getProgramVersionById(String id); /** * 修改程序版本状态 */ @@ -23,4 +27,5 @@ public interface ProgramVersionMapper { * 修改程序版本状态 */ void updateVersionState(String id); + } diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/ProgramVersionMapper.xml b/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/ProgramVersionMapper.xml index ac8bcd829..d42888d7f 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/ProgramVersionMapper.xml +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/ProgramVersionMapper.xml @@ -27,6 +27,12 @@ + + + + + + UPDATE cld_version @@ -43,5 +49,4 @@ WHERE Id = #{id} - \ No newline at end of file diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/TerminalMaintainMapper.xml b/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/TerminalMaintainMapper.xml index 06019fc57..fded3b855 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/TerminalMaintainMapper.xml +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/mapper/mapping/TerminalMaintainMapper.xml @@ -6,11 +6,12 @@ SELECT a.id, a.pid, - a.NAME devName, + a.NAME, a.level, b.run_flag, b.com_flag, e.NAME devType, + ifnull(g.name,'/') version, ifnull(d.flow,(select flow from cld_flow_meal where type = 0 and flag = 1)) baseFlowMeal, ifnull(d1.flow,0) reamFlowMeal, FORMAT(ifnull(mo.statis_value,0)/1024/1024,2) as statisValue @@ -21,6 +22,8 @@ FROM LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id LEFT JOIN sys_dict_data e ON b.dev_type = e.id + LEFT JOIN cld_dev_version f on a.id = f.line_id and f.flag = 1 and f.state = 1 + LEFT JOIN cld_version g on f.version_id = g.id LEFT JOIN (select * from cld_month_flow where date_format(time_id,'%Y-%m' ) = date_format(CURRENT_TIME(),'%Y-%m')) mo on a.id = mo.line_id where b.dev_model = 1 @@ -83,10 +86,12 @@ FROM a.pid, a.name, a.level, + h.ip, ifnull(f.Flow,(select flow from cld_flow_meal where type = 0 and flag = 1)) baseFlowMeal, g.Flag reamFlowMeal FROM pq_line a + inner join pq_device h on a.id = h.id Left join cld_dev_meal e on a.id = e.Line_Id left join cld_flow_meal f on e.Base_Meal_Id = f.Id left join cld_flow_meal g on e.Ream_Meal_Id = g.Id @@ -103,7 +108,8 @@ FROM a.pid, a.name, a.level, - ifnull(f.name,(select name from cld_flow_strategy where flag = 1 and state = 1)) flowStrategy + ifnull(f.name,(select name from cld_flow_strategy where flag = 1 and state = 1)) flowStrategy, + ifnull(f.flag,1) as strategyFlag FROM pq_line a Left join cld_dev_strategy e on a.id = e.Line_Id diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/ProgramVersionService.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/ProgramVersionService.java index 1cc206d5d..757ac4665 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/ProgramVersionService.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/ProgramVersionService.java @@ -1,6 +1,7 @@ package com.njcn.device.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.device.pojo.vo.ShowVersionVO; import com.njcn.device.pojo.vo.VersionVO; import org.springframework.web.multipart.MultipartFile; @@ -23,6 +24,11 @@ public interface ProgramVersionService { * @return */ boolean addProgramVersion(String name, String protocol, LocalDate date, String devType, String remark, String versionType, MultipartFile file); + /** + * 修改版本回显 + * @return + */ + ShowVersionVO getProgramVersionById(String id); /** * 修改程序版本管理信息 * @return diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/TerminalMaintainService.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/TerminalMaintainService.java index f35e9c115..7011bd796 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/TerminalMaintainService.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/TerminalMaintainService.java @@ -1,6 +1,7 @@ package com.njcn.device.service; import com.njcn.device.pojo.param.TerminalMainQueryParam; +import com.njcn.device.pojo.param.TerminalParam; import com.njcn.device.pojo.vo.TerminalMaintainVO; import java.util.List; @@ -32,27 +33,22 @@ public interface TerminalMaintainService { * 修改终端参数 * @author cdf * @date 2022/5/12 - * @param ids 装置ids; - * @param runFlag 运行状态 */ - boolean updateRunFlagManage(List ids, Integer runFlag); + boolean updateRunFlagManage(TerminalParam terminalParam); /** * 修改终端流量 * @author cdf * @date 2022/5/12 - * @param typeId 基础流量id - * @param type2Id 扩展流量id */ - boolean updateFlowMeal(List ids,String typeId,String type2Id); + boolean updateFlowMeal(TerminalParam terminalParam); /** * 修改终端流量策略 * @author cdf * @date 2022/5/12 - * @param typeId 基础流量id */ - boolean updateFlowStrategy(List ids,String typeId); + boolean updateFlowStrategy(TerminalParam terminalParam); } diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LineServiceImpl.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LineServiceImpl.java index 48634c574..24a5d6369 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LineServiceImpl.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/LineServiceImpl.java @@ -24,6 +24,7 @@ import com.njcn.device.service.LineService; import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.system.api.AreaFeignClient; import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.pojo.po.Area; import com.njcn.web.pojo.vo.LineDataVO; import com.njcn.web.utils.GeneralUtil; import com.njcn.web.utils.RequestUtil; @@ -254,12 +255,27 @@ public class LineServiceImpl extends ServiceImpl implements Li //获取所有监测点 List generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList())); for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { + //根据部门id去获取省份信息 + Area area = areaFeignClient.areaDeptPro(generalDeviceDTO.getIndex()).getData(); LineDistributionVO lineDistributionVO = new LineDistributionVO(); - lineDistributionVO.setAreaName(generalDeviceDTO.getName()); - lineDistributionVO.setLineNum(generalDeviceDTO.getLineIndexes().size()); + lineDistributionVO.setName(generalDeviceDTO.getName()); + lineDistributionVO.setValue(generalDeviceDTO.getLineIndexes().size()); lineDistributionVOList.add(lineDistributionVO); } - return lineDistributionVOList; + + List result =new ArrayList(); + Map map = new HashMap(); + for(LineDistributionVO lineDistributionVO:lineDistributionVOList){ + if (map.containsKey(lineDistributionVO.getName())) { + map.put(lineDistributionVO.getName(), map.get(lineDistributionVO.getName())+lineDistributionVO.getValue()); + } else { + map.put(lineDistributionVO.getName(), lineDistributionVO.getValue()); + } + } + for (Map.Entry entry : map.entrySet()) { + result.add(new LineDistributionVO(entry.getKey(),entry.getValue())); + } + return result; } @Override @@ -395,7 +411,8 @@ public class LineServiceImpl extends ServiceImpl implements Li for (LineFlowMealDetailVO lineFlowMealDetailVO : monitorList) { for (LineInfluxDbInegrityVO lineInfluxDbInegrity : lineInfluxDbInegrityVO) { if (lineFlowMealDetailVO.getId().equals(lineInfluxDbInegrity.getLineId())) { - lineFlowMealDetailVO.setIntegrity(lineInfluxDbInegrity.getIntegrity().floatValue()); + BigDecimal flow =new BigDecimal(lineInfluxDbInegrity.getIntegrity().floatValue()); + lineFlowMealDetailVO.setIntegrity(flow.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue()); } } } @@ -415,7 +432,8 @@ public class LineServiceImpl extends ServiceImpl implements Li for (LineInfluxDbOnlineVO lineInfluxDbOnline : lineInfluxDbOnlineVO) { if (lineFlowMealDetailVO.getId().equals(lineInfluxDbOnline.getDevIndex())) { - lineFlowMealDetailVO.setOnlineRate(lineInfluxDbOnline.getOnlineRate().floatValue()); + BigDecimal flowValue =new BigDecimal(lineInfluxDbOnline.getOnlineRate().floatValue()); + lineFlowMealDetailVO.setOnlineRate(flowValue.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue()); } } } diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/ProgramVersionServiceImpl.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/ProgramVersionServiceImpl.java index e8f08caff..e80e9ea1a 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/ProgramVersionServiceImpl.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/ProgramVersionServiceImpl.java @@ -10,6 +10,7 @@ import com.njcn.device.enums.DeviceResponseEnum; import com.njcn.device.mapper.ProgramVersionMapper; import com.njcn.device.mapper.VersionMapper; import com.njcn.device.pojo.po.Version; +import com.njcn.device.pojo.vo.ShowVersionVO; import com.njcn.device.pojo.vo.VersionVO; import com.njcn.device.service.ProgramVersionService; import com.njcn.web.utils.RequestUtil; @@ -97,6 +98,14 @@ public class ProgramVersionServiceImpl extends ServiceImpl imple if (Objects.nonNull(addTerminalParam.getProjectParam())) { if (StrUtil.isBlank(projectIndex)) { checkName(addTerminalParam, LineBaseEnum.PROJECT_LEVEL.getCode(), null); - /*Line line = new Line(); - line.setPid("0"); - line.setPids("0"); - line.setLevel(LineBaseEnum.PROJECT_LEVEL.getCode()); - line.setSort(addTerminalParam.getProjectParam().getSort()); - line.setState(DataStateEnum.ENABLE.getCode()); - line.setName(addTerminalParam.getProjectParam().getName()); - line.setCreateTime(LocalDateTime.now()); - this.save(line);*/ Line line = assembleLine(addTerminalParam.getProjectParam().getName(),LineBaseEnum.PROJECT_LEVEL.getCode(),"0","0",addTerminalParam.getProjectParam().getSort()); + this.baseMapper.insert(line); projectIndex = line.getId(); } else { //throw new BusinessException(DeviceResponseEnum.REQUEST_DATA_ERROR); @@ -160,15 +152,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } LogUtil.njcnDebug(log, "获取区域信息:{}", result.toString()); checkName(addTerminalParam, LineBaseEnum.PROVINCE_LEVEL.getCode(), projectIndex); - /*Line province = new Line(); - province.setPid(projectIndex); - province.setPids(projectIndex); - province.setName(result.getId()); - province.setLevel(LineBaseEnum.PROVINCE_LEVEL.getCode()); - province.setSort(addTerminalParam.getProvinceParam().getSort()); - province.setState(DataStateEnum.ENABLE.getCode()); - province.setCreateTime(LocalDateTime.now());*/ Line province = assembleLine(result.getId(),LineBaseEnum.PROVINCE_LEVEL.getCode(),projectIndex,projectIndex,addTerminalParam.getProvinceParam().getSort()); + this.baseMapper.insert(province); provinceIndex = province.getId(); } else { //throw new BusinessException(DeviceResponseEnum.REQUEST_DATA_ERROR); @@ -178,18 +163,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple //供电公司 if (Objects.nonNull(addTerminalParam.getGdInformationParam())) { if (StrUtil.isBlank(gdIndex) && StrUtil.isNotBlank(provinceIndex)) { - checkName(addTerminalParam, LineBaseEnum.GD_LEVEL.getCode(), provinceIndex); - /*Line gdInformation = new Line(); - gdInformation.setName(addTerminalParam.getGdInformationParam().getName()); - gdInformation.setPid(provinceIndex); - gdInformation.setPids(projectIndex + "," + provinceIndex); - gdInformation.setLevel(LineBaseEnum.GD_LEVEL.getCode()); - gdInformation.setState(DataStateEnum.ENABLE.getCode()); - gdInformation.setSort(addTerminalParam.getGdInformationParam().getSort()); - gdInformation.setCreateTime(LocalDateTime.now()); - this.save(gdInformation);*/ Line gdInformation = assembleLine(addTerminalParam.getGdInformationParam().getName(),LineBaseEnum.GD_LEVEL.getCode(),provinceIndex,projectIndex + StrUtil.COMMA + provinceIndex,addTerminalParam.getGdInformationParam().getSort()); + this.baseMapper.insert(gdInformation); gdIndex = gdInformation.getId(); } } @@ -198,16 +174,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (Objects.nonNull(addTerminalParam.getSubStationParam())) { if (StrUtil.isBlank(subIndex) && StrUtil.isNotBlank(gdIndex)) { checkName(addTerminalParam, LineBaseEnum.SUB_LEVEL.getCode(), gdIndex); - /*Line subStation = new Line(); - subStation.setPid(gdIndex); - subStation.setPids(projectIndex + "," + provinceIndex + "," + gdIndex); - subStation.setName(addTerminalParam.getSubStationParam().getName()); - subStation.setLevel(LineBaseEnum.SUB_LEVEL.getCode()); - subStation.setState(DataStateEnum.ENABLE.getCode()); - subStation.setSort(addTerminalParam.getSubStationParam().getSort()); - subStation.setCreateTime(LocalDateTime.now()); - this.save(subStation);*/ Line subStation = assembleLine(addTerminalParam.getSubStationParam().getName(),LineBaseEnum.SUB_LEVEL.getCode(),gdIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex,addTerminalParam.getSubStationParam().getSort()); + this.baseMapper.insert(subStation); subIndex = subStation.getId(); //变电站下的经纬度入库 @@ -270,16 +238,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (StrUtil.isBlank(deviceParam.getDevIndex())) { - /* Line device = new Line(); - device.setName(deviceParam.getName()); - device.setPid(subIndex); - device.setPids(projectIndex + "," + provinceIndex + "," + gdIndex + "," + subIndex); - device.setLevel(LineBaseEnum.DEVICE_LEVEL.getCode()); - device.setState(DataStateEnum.ENABLE.getCode()); - device.setSort(deviceParam.getSort()); - device.setCreateTime(LocalDateTime.now()); - this.save(device);*/ Line device = assembleLine(deviceParam.getName(),LineBaseEnum.DEVICE_LEVEL.getCode(),subIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex,deviceParam.getSort()); + this.baseMapper.insert(device); devIdIndex = device.getId(); //装置详情 @@ -361,16 +321,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple if (Objects.isNull(scaleRes.getData())) { throw new BusinessException(DeviceResponseEnum.DIC_GET_EMPTY); } - /*Line subVoltage = new Line(); - subVoltage.setName(subVoltageParam.getName()); - subVoltage.setPid(devIdIndex); - subVoltage.setPids(projectIndex + "," + provinceIndex + "," + gdIndex + "," + subIndex + "," + devIdIndex); - subVoltage.setLevel(LineBaseEnum.SUB_V_LEVEL.getCode()); - subVoltage.setSort(subVoltageParam.getSort()); - subVoltage.setState(DataStateEnum.ENABLE.getCode()); - subVoltage.setCreateTime(LocalDateTime.now()); - this.save(subVoltage);*/ Line subVoltage = assembleLine(subVoltageParam.getName(),LineBaseEnum.SUB_V_LEVEL.getCode(),devIdIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + devIdIndex,subVoltageParam.getSort()); + this.baseMapper.insert(subVoltage); subvIndex = subVoltage.getId(); Voltage voltage = new Voltage(); voltage.setId(subVoltage.getId()); @@ -412,17 +364,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple listId.removeIf(lineNo -> lineNo.equals(lineParam.getNum())); HttpResult httpScale = dicDataFeignClient.getDicDataById(subVoltageParam.getScale()); Float jcap = DeviceUtil.getJCAPByScale(httpScale.getData().getName()); - /* Line line = new Line(); - line.setName(lineParam.getName()); - line.setPid(subvIndex); - line.setPids(projectIndex + "," + provinceIndex + "," + gdIndex + "," + subIndex + "," + devIdIndex + "," + subvIndex); - line.setLevel(LineBaseEnum.LINE_LEVEL.getCode()); - line.setState(DataStateEnum.ENABLE.getCode()); - line.setSort(lineParam.getSort()); - line.setCreateTime(LocalDateTime.now()); - this.save(line);*/ Line line = assembleLine(lineParam.getName(),LineBaseEnum.LINE_LEVEL.getCode(),subvIndex,projectIndex + StrUtil.COMMA + provinceIndex + StrUtil.COMMA + gdIndex + StrUtil.COMMA + subIndex + StrUtil.COMMA + devIdIndex+ StrUtil.COMMA + subvIndex,lineParam.getSort()); - + this.baseMapper.insert(line); LineDetail lineDetail = new LineDetail(); BeanUtils.copyProperties(lineParam, lineDetail); lineDetail.setId(line.getId()); @@ -714,77 +657,31 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple TerminalVO terminalVO = new TerminalVO(); if (obj.getLevel().equals(LineBaseEnum.PROJECT_LEVEL.getCode())) { //点击项目节点 - ProjectVO projectVO = new ProjectVO(); - projectVO.setProjectIndex(obj.getId()); - projectVO.setName(obj.getName()); - projectVO.setSort(obj.getSort()); - terminalVO.setProjectVO(projectVO); + assProject(obj,terminalVO); } else if (obj.getLevel().equals(LineBaseEnum.PROVINCE_LEVEL.getCode())) { //点击省份节点 Line project = this.getById(obj.getPid()); - ProjectVO projectVO = new ProjectVO(); - projectVO.setProjectIndex(project.getId()); - projectVO.setName(project.getName()); - projectVO.setSort(project.getSort()); - terminalVO.setProjectVO(projectVO); - - ProvinceVO provinceVO = new ProvinceVO(); - provinceVO.setProvinceIndex(obj.getId()); - provinceVO.setName(obj.getName()); - provinceVO.setSort(obj.getSort()); - terminalVO.setProvinceVO(provinceVO); + assProject(project,terminalVO); + assProvince(obj,terminalVO); } else if (obj.getLevel().equals(LineBaseEnum.GD_LEVEL.getCode())) { //点击供电公司节点 - GdInformationVO gdInformationVO = new GdInformationVO(); - gdInformationVO.setGdIndex(obj.getId()); - gdInformationVO.setName(obj.getName()); - gdInformationVO.setSort(obj.getSort()); - terminalVO.setGdInformationVO(gdInformationVO); - + assGd(obj,terminalVO); Line province = this.getById(obj.getPid()); - ProvinceVO provinceVO = new ProvinceVO(); - provinceVO.setProvinceIndex(province.getId()); - provinceVO.setName(province.getName()); - provinceVO.setSort(province.getSort()); - terminalVO.setProvinceVO(provinceVO); - + assProvince(province,terminalVO); Line project = this.getById(province.getPid()); - ProjectVO projectVO = new ProjectVO(); - projectVO.setProjectIndex(project.getId()); - projectVO.setName(project.getName()); - projectVO.setSort(project.getSort()); - terminalVO.setProjectVO(projectVO); + assProject(project,terminalVO); } else if (obj.getLevel().equals(LineBaseEnum.SUB_LEVEL.getCode())) { //变电站 - - Substation substation = substationMapper.selectById(obj.getId()); - SubStationVO subStationVO = new SubStationVO(); - subStationVO.setSubIndex(obj.getId()); - subStationVO.setName(obj.getName()); - subStationVO.setSort(obj.getSort()); - BeanUtils.copyProperties(substation, subStationVO); - terminalVO.setSubStationVO(subStationVO); - + assSub(obj,terminalVO); Line gdInformation = this.getById(obj.getPid()); - GdInformationVO gdInformationVO = new GdInformationVO(); - gdInformationVO.setGdIndex(gdInformation.getId()); - gdInformationVO.setName(gdInformation.getName()); - gdInformationVO.setSort(gdInformation.getSort()); - terminalVO.setGdInformationVO(gdInformationVO); + assGd(gdInformation,terminalVO); Line province = this.getById(gdInformation.getPid()); - ProvinceVO provinceVO = new ProvinceVO(); - provinceVO.setProvinceIndex(province.getId()); - provinceVO.setName(province.getName()); - provinceVO.setSort(province.getSort()); - terminalVO.setProvinceVO(provinceVO); + assProvince(province,terminalVO); Line project = this.getById(province.getPid()); - ProjectVO projectVO = new ProjectVO(); - projectVO.setProjectIndex(project.getId()); - projectVO.setName(project.getName()); - projectVO.setSort(project.getSort()); - terminalVO.setProjectVO(projectVO); + assProject(project,terminalVO); + //展示所有下级装置母线监测点 lineLambdaQueryWrapper.clear(); @@ -2173,7 +2070,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple /** - * 根据传入的id获取 + * 组装台账信息 * * @author cdf * @date 2022/2/14 @@ -2186,34 +2083,16 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple Line subStation = this.getById(subId); if (Objects.nonNull(subStation)) { - Substation substation = substationMapper.selectById(subStation.getId()); - SubStationVO subStationVO = new SubStationVO(); - subStationVO.setSubIndex(subStation.getId()); - subStationVO.setName(subStation.getName()); - subStationVO.setSort(subStation.getSort()); - BeanUtils.copyProperties(substation, subStationVO); - terminalVO.setSubStationVO(subStationVO); + assSub(subStation,terminalVO); Line gdInformation = this.getById(subStation.getPid()); - GdInformationVO gdInformationVO = new GdInformationVO(); - gdInformationVO.setGdIndex(gdInformation.getId()); - gdInformationVO.setName(gdInformation.getName()); - gdInformationVO.setSort(gdInformation.getSort()); - terminalVO.setGdInformationVO(gdInformationVO); + assGd(gdInformation,terminalVO); Line province = this.getById(gdInformation.getPid()); - ProvinceVO provinceVO = new ProvinceVO(); - provinceVO.setProvinceIndex(province.getId()); - provinceVO.setName(province.getName()); - provinceVO.setSort(province.getSort()); - terminalVO.setProvinceVO(provinceVO); + assProvince(province,terminalVO); Line project = this.getById(province.getPid()); - ProjectVO projectVO = new ProjectVO(); - projectVO.setProjectIndex(project.getId()); - projectVO.setName(project.getName()); - projectVO.setSort(project.getSort()); - terminalVO.setProjectVO(projectVO); + assProject(project,terminalVO); return terminalVO; } else { @@ -2221,4 +2100,51 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } } + + /** + * 组装项目 + */ + private void assProject(Line project,TerminalVO terminalVO){ + ProjectVO projectVO = new ProjectVO(); + projectVO.setProjectIndex(project.getId()); + projectVO.setName(project.getName()); + projectVO.setSort(project.getSort()); + terminalVO.setProjectVO(projectVO); + + } + + /** + * 组装省份 + */ + private void assProvince(Line province,TerminalVO terminalVO){ + ProvinceVO provinceVO = new ProvinceVO(); + provinceVO.setProvinceIndex(province.getId()); + provinceVO.setName(province.getName()); + provinceVO.setSort(province.getSort()); + terminalVO.setProvinceVO(provinceVO); + } + + /** + * 组装供电公司 + */ + private void assGd(Line gdInformation,TerminalVO terminalVO){ + GdInformationVO gdInformationVO = new GdInformationVO(); + gdInformationVO.setGdIndex(gdInformation.getId()); + gdInformationVO.setName(gdInformation.getName()); + gdInformationVO.setSort(gdInformation.getSort()); + terminalVO.setGdInformationVO(gdInformationVO); + } + + /** + * 组装变电站 + */ + private void assSub(Line subStation,TerminalVO terminalVO){ + Substation substation = substationMapper.selectById(subStation.getId()); + SubStationVO subStationVO = new SubStationVO(); + subStationVO.setSubIndex(subStation.getId()); + subStationVO.setName(subStation.getName()); + subStationVO.setSort(subStation.getSort()); + BeanUtils.copyProperties(substation, subStationVO); + terminalVO.setSubStationVO(subStationVO); + } } diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalMaintainServiceImpl.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalMaintainServiceImpl.java index 8450477c5..177812a1f 100644 --- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalMaintainServiceImpl.java +++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/impl/TerminalMaintainServiceImpl.java @@ -7,10 +7,12 @@ import com.njcn.device.enums.DeviceResponseEnum; import com.njcn.device.enums.LineBaseEnum; import com.njcn.device.mapper.TerminalMaintainMapper; import com.njcn.device.pojo.param.TerminalMainQueryParam; +import com.njcn.device.pojo.param.TerminalParam; import com.njcn.device.pojo.po.DevMeal; import com.njcn.device.pojo.po.DevStrategy; import com.njcn.device.pojo.po.Device; import com.njcn.device.pojo.vo.TerminalMaintainVO; +import com.njcn.device.pojo.vo.TerminalVersionVO; import com.njcn.device.service.IDevMealService; import com.njcn.device.service.IDevStrategyService; import com.njcn.device.service.IDeviceService; @@ -47,23 +49,26 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService { @Override public List getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) { - - List proList = terminalMaintainMapper.getProvList(); - if(CollectionUtil.isEmpty(proList)){ - throw new BusinessException(DeviceResponseEnum.PROVINCE_EMPTY); - } - List gdList = terminalMaintainMapper.getGdAndSubList(LineBaseEnum.GD_LEVEL.getCode()); - if(CollectionUtil.isEmpty(gdList)){ - throw new BusinessException(DeviceResponseEnum.GD_NO); - } - List subList = terminalMaintainMapper.getGdAndSubList(LineBaseEnum.SUB_LEVEL.getCode()); - if(CollectionUtil.isEmpty(subList)){ - throw new BusinessException(DeviceResponseEnum.SUB_NO); - } List devList = terminalMaintainMapper.getTerminalDevInfo(); if(CollectionUtil.isEmpty(devList)){ throw new BusinessException(DeviceResponseEnum.DEVICE_EMPTY); } + List subIndexes = devList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); + List subList = terminalMaintainMapper.getPqLineGdAndSubList(subIndexes); + if(CollectionUtil.isEmpty(subList)){ + throw new BusinessException(DeviceResponseEnum.SUB_NO); + } + List gdIds = subList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); + List gdList = terminalMaintainMapper.getPqLineGdAndSubList(gdIds); + if(CollectionUtil.isEmpty(gdList)){ + throw new BusinessException(DeviceResponseEnum.GD_NO); + } + List proIds = gdList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); + List proList = terminalMaintainMapper.getPqLineProvList(proIds); + if(CollectionUtil.isEmpty(proList)){ + throw new BusinessException(DeviceResponseEnum.PROVINCE_EMPTY); + } + List subListTem = subList.stream().peek(item->item.setChildren(getChildren(item.getId(),devList))).collect(Collectors.toList()); List gdListTem = gdList.stream().peek(item->item.setChildren(getChildren(item.getId(),subListTem))).collect(Collectors.toList()); return proList.stream().peek(item->item.setChildren(getChildren(item.getId(),gdListTem))).collect(Collectors.toList()); @@ -88,40 +93,40 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService { } @Override - public boolean updateRunFlagManage(List ids, Integer runFlag){ + public boolean updateRunFlagManage(TerminalParam terminalParam){ //终端状态管理 List tem = new ArrayList<>(); - ids.forEach(item-> { + terminalParam.getIds().forEach(item-> { Device device = new Device(); device.setId(item); - device.setRunFlag(runFlag); + device.setRunFlag(terminalParam.getRunFlag()); tem.add(device); }); return iDeviceService.updateBatchById(tem); } @Override - public boolean updateFlowMeal(List ids, String typeId, String type2Id) { + public boolean updateFlowMeal(TerminalParam terminalParam) { List tem = new ArrayList<>(); - iDevMealService.removeByIds(ids); - ids.forEach(item-> { + iDevMealService.removeByIds(terminalParam.getIds()); + terminalParam.getIds().forEach(item-> { DevMeal devMeal = new DevMeal(); devMeal.setLineId(item); - devMeal.setBaseMealId(typeId); - devMeal.setReamMealId(type2Id); + devMeal.setBaseMealId(terminalParam.getBaseMealId()); + devMeal.setReamMealId(terminalParam.getExtendMealId()); tem.add(devMeal); }); return iDevMealService.saveBatch(tem); } @Override - public boolean updateFlowStrategy(List ids, String typeId) { + public boolean updateFlowStrategy(TerminalParam terminalParam) { List tem = new ArrayList<>(); - iDevStrategyService.removeByIds(ids); - ids.forEach(item-> { + iDevStrategyService.removeByIds(terminalParam.getIds()); + terminalParam.getIds().forEach(item-> { DevStrategy devStrategy = new DevStrategy(); devStrategy.setLineId(item); - devStrategy.setStrategyId(typeId); + devStrategy.setStrategyId(terminalParam.getFlowStrategyId()); tem.add(devStrategy); }); return iDevStrategyService.saveBatch(tem); diff --git a/pqs-energy/energy-boot/src/main/java/com/njcn/energy/service/impl/HighAnalyticServiceImpl.java b/pqs-energy/energy-boot/src/main/java/com/njcn/energy/service/impl/HighAnalyticServiceImpl.java index b721e4429..534d53832 100644 --- a/pqs-energy/energy-boot/src/main/java/com/njcn/energy/service/impl/HighAnalyticServiceImpl.java +++ b/pqs-energy/energy-boot/src/main/java/com/njcn/energy/service/impl/HighAnalyticServiceImpl.java @@ -337,6 +337,7 @@ public class HighAnalyticServiceImpl implements HighAnalyticService { if (CollectionUtil.isNotEmpty(dictDataList)) { //获取负荷指标详情 + dictDataList = dictDataList.stream().filter(item ->item.getAlgoDescribe().equals(1)).collect(Collectors.toList()); EleMd eleMd = eleMdMapper.selectById(loadType); if (Objects.isNull(eleMd)) { @@ -382,13 +383,15 @@ public class HighAnalyticServiceImpl implements HighAnalyticService { } - List jin = list.stream().filter(item -> item.getLoadName().equals("高压进线")).collect(Collectors.toList()); - Float all = Float.parseFloat(jin.get(0).getValue().get(0).get(1)); - List other = list.stream().filter(item -> !item.getLoadName().equals("高压进线")).collect(Collectors.toList()); - for (LoadTendencyVO loadTendencyVO : other) { + float allTem = 0f; + for (LoadTendencyVO loadTendencyVO : list) { + allTem+= Float.parseFloat(loadTendencyVO.getValue().get(0).get(1)); + } + + for (LoadTendencyVO loadTendencyVO : list) { Map map = new HashMap<>(); map.put("name", loadTendencyVO.getLoadName()); - Float a = Float.parseFloat(loadTendencyVO.getValue().get(0).get(1)) / all; + Float a = Float.parseFloat(loadTendencyVO.getValue().get(0).get(1)) / allTem; map.put("value", a.toString()); res.add(map); } diff --git a/pqs-gateway/src/main/resources/bootstrap.yml b/pqs-gateway/src/main/resources/bootstrap.yml index 47b9d7924..fa5e6bc27 100644 --- a/pqs-gateway/src/main/resources/bootstrap.yml +++ b/pqs-gateway/src/main/resources/bootstrap.yml @@ -94,6 +94,13 @@ spring: filters: - SwaggerHeaderFilter - StripPrefix=1 + - id: quality-boot + uri: lb://quality-boot + predicates: + - Path=/quality-boot/** + filters: + - SwaggerHeaderFilter + - StripPrefix=1 #项目日志的配置 logging: @@ -122,6 +129,7 @@ whitelist: - /harmonic-boot/** - /energy-boot/** - /event-boot/** + - /quality-boot/** diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HistoryResultServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HistoryResultServiceImpl.java index ca1424b7c..0f6e86a6e 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HistoryResultServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HistoryResultServiceImpl.java @@ -217,11 +217,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 10: //相电压有效值 sql = "SELECT time as time, rms as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, rms as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, rms as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -231,11 +227,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 11: //线电压有效值 sql = "SELECT time as time, rms_lvr as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, rms_lvr as bValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, rms_lvr as cValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("AB相"); phasicType.add("BC相"); phasicType.add("CA相"); @@ -245,11 +237,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 12: //电压偏差 sql = "SELECT time as time, vu_dev as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, vu_dev as bValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, vu_dev as cValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; topLimit = overlimit.getVoltageDev(); lowerLimit = overlimit.getUvoltageDev(); if (ptType == 0) { @@ -276,11 +264,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 14: //电压不平衡 sql = "SELECT time as time, v_zero as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, v_pos as bValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, v_neg as cValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("零序电压"); phasicType.add("正序电压"); phasicType.add("负序电压"); @@ -292,11 +276,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 15: //电压总谐波畸变率 sql = "SELECT time as time, v_thd as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, v_thd as bValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, v_thd as cValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; topLimit = overlimit.getUaberrance(); if (ptType == 0) { phasicType.add("A相"); @@ -313,12 +293,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 20: //电流有效值 sql = "SELECT time as time, rms as aValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, rms as bValue FROM data_i" + - " WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, rms as cValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -328,11 +303,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 21: //电流总畸变率 sql = "SELECT time as time, i_thd as aValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, i_thd as bValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, i_thd as cValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -342,11 +313,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 22: //负序电流 sql = "SELECT time as time, i_neg as aValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, i_neg as bValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, i_neg as cValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; topLimit = overlimit.getINeg(); phasicType.add("负序电流"); unit.add("A"); @@ -365,11 +332,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 40: //谐波电压含有率 sql = "SELECT time as time, v_" + number + " as aValue FROM data_harmrate_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, v_" + number + " as bValue FROM data_harmrate_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, v_" + number + " as cValue FROM data_harmrate_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; topLimit = PubUtils.getValueByMethod(overlimit, "getUharm", number); if (ptType == 0) { phasicType.add("A相"); @@ -386,11 +349,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 41: //谐波电流含有率 sql = "SELECT time as time, i_" + number + " as aValue FROM data_harmrate_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, i_" + number + " as bValue FROM data_harmrate_i WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, i_" + number + " as cValue FROM data_harmrate_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -400,11 +359,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 42: //谐波电压幅值 sql = "SELECT time as time, v_" + number + " as aValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, v_" + number + " as bValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, v_" + number + " as cValue FROM data_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; if (ptType == 0) { phasicType.add("A相"); phasicType.add("B相"); @@ -424,11 +379,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 43: //谐波电流幅值 sql = "SELECT time as time, i_" + number + " as aValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, i_" + number + " as bValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, i_" + number + " as cValue FROM data_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; topLimit = PubUtils.getValueByMethod(overlimit, "getIharm", number); phasicType.add("A相"); phasicType.add("B相"); @@ -439,11 +390,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 44: //谐波电压相角 sql = "SELECT time as time, v_" + number + " as aValue FROM data_harmphasic_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, v_" + number + " as bValue FROM data_harmphasic_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, v_" + number + " as cValue FROM data_harmphasic_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; if (ptType == 0) { phasicType.add("A相"); phasicType.add("B相"); @@ -459,11 +406,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 45: //谐波电流相角 sql = "SELECT time as time, i_" + number + " as aValue FROM data_harmphasic_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, i_" + number + " as bValue FROM data_harmphasic_i WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, i_" + number + " as cValue FROM data_harmphasic_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -473,11 +416,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 46: //间谐波电压含有率 sql = "SELECT time as time, v_" + number + " as aValue FROM data_inharmrate_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, v_" + number + " as bValue FROM data_inharmrate_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, v_" + number + " as cValue FROM data_inharmrate_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; topLimit = PubUtils.getValueByMethod(overlimit, "getInuharm", number); if (ptType == 0) { phasicType.add("A相"); @@ -494,11 +433,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 47: //间谐波电流含有率 sql = "SELECT time as time, i_" + number + " as aValue FROM data_inharmrate_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, i_" + number + " as bValue FROM data_inharmrate_i WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, i_" + number + " as cValue FROM data_inharmrate_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -508,11 +443,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 48: //间谐波电压幅值 sql = "SELECT time as time, v_" + number + " as aValue FROM data_inharm_v WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, v_" + number + " as bValue FROM data_inharm_v WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, v_" + number + " as cValue FROM data_inharm_v WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; targetName = "间谐波电压幅值"; if (ptType == 0) { phasicType.add("A相"); @@ -528,11 +459,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 49: //间谐波电流幅值 sql = "SELECT time as time, i_" + number + " as aValue FROM data_inharm_i WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, i_" + number + " as bValue FROM data_inharm_i WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, i_" + number + " as cValue FROM data_inharm_i WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -542,11 +469,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 50: //谐波有功功率 sql = "SELECT time as time, p_" + number + " as aValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, p_" + number + " as bValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, p_" + number + " as cValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -560,11 +483,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 51: //谐波无功功率 sql = "SELECT time as time, q_" + number + " as aValue FROM data_harmpower_q WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, q_" + number + " as bValue FROM data_harmpower_q WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, q_" + number + " as cValue FROM data_harmpower_q WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -578,11 +497,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 52: //谐波视在功率 sql = "SELECT time as time, s_" + number + " as aValue FROM data_harmpower_s WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, s_" + number + " as bValue FROM data_harmpower_s WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, s_" + number + " as cValue FROM data_harmpower_s WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -596,11 +511,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 53: //三相有功功率 sql = "SELECT time as time, p as aValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, p as bValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, p as cValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -610,11 +521,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 54: //三相无功功率 sql = "SELECT time as time, q as aValue FROM data_harmpower_q WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, q as bValue FROM data_harmpower_q WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, q as cValue FROM data_harmpower_q WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -624,11 +531,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 55: //三相视在功率 sql = "SELECT time as time, s as aValue FROM data_harmpower_s WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, s as bValue FROM data_harmpower_s WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, s as cValue FROM data_harmpower_s WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -662,11 +565,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 59: //视在功率因数 sql = "SELECT time as time, pf as aValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, pf as bValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, pf as cValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -675,11 +574,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 591: //位移功率因数 sql = "SELECT time as time, df as aValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, df as bValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, df as cValue FROM data_harmpower_p WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; phasicType.add("A相"); phasicType.add("B相"); phasicType.add("C相"); @@ -702,11 +597,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 61: //长时闪变 sql = "SELECT time as time, plt as aValue FROM data_plt WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, plt as bValue FROM data_plt WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, plt as cValue FROM data_plt WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; if (ptType == 0) { phasicType.add("A相"); phasicType.add("B相"); @@ -722,11 +613,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 60: //短时闪变 sql = "SELECT time as time, pst as aValue FROM data_flicker WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, pst as bValue FROM data_flicker WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, pst as cValue FROM data_flicker WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; topLimit = overlimit.getFlicker(); if (ptType == 0) { phasicType.add("A相"); @@ -742,11 +629,7 @@ public class HistoryResultServiceImpl implements HistoryResultService { case 62: //电压波动 sql = "SELECT time as time, fluc as aValue FROM data_fluc WHERE " + stringBuilder.toString() + - " and phasic_type ='A' order by time asc;" + - "SELECT time as time, fluc as bValue FROM data_fluc WHERE " + stringBuilder.toString() + - " and phasic_type ='B' order by time asc;" + - "SELECT time as time, fluc as cValue FROM data_fluc WHERE " + stringBuilder.toString() + - " and phasic_type ='C' order by time asc;"; + " and (phasic_type ='A' or phasic_type ='B' or phasic_type ='C') group by phasic_type order by time asc;"; if (ptType == 0) { phasicType.add("A相"); phasicType.add("B相"); diff --git a/pqs-quality/pom.xml b/pqs-quality/pom.xml new file mode 100644 index 000000000..b140de8f0 --- /dev/null +++ b/pqs-quality/pom.xml @@ -0,0 +1,26 @@ + + + + + pqs + com.njcn + 1.0.0 + + 4.0.0 + + pqs-quality + pom + 电能质量模块 + + + quality-api + quality-boot + + + + 8 + 8 + + + diff --git a/pqs-quality/quality-api/pom.xml b/pqs-quality/quality-api/pom.xml new file mode 100644 index 000000000..485bf0775 --- /dev/null +++ b/pqs-quality/quality-api/pom.xml @@ -0,0 +1,45 @@ + + + + + pqs-quality + com.njcn + 1.0.0 + + 4.0.0 + quality-api + 电能质量模块对外接口 + + + 8 + 8 + + + + + com.njcn + common-core + ${project.version} + + + com.njcn + common-db + ${project.version} + + + com.njcn + common-microservice + ${project.version} + + + com.njcn + common-poi + ${project.version} + + + org.influxdb + influxdb-java + + + diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleAirStrategyFeignClient.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleAirStrategyFeignClient.java new file mode 100644 index 000000000..f070411bd --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleAirStrategyFeignClient.java @@ -0,0 +1,27 @@ +package com.njcn.quality.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.quality.api.fallback.EleOnlineRateFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * pqs + * + * @author cdf + * @date 2022/4/22 + */ +@FeignClient(value = ServerInfo.ENERGY,path = "/air",fallbackFactory = EleOnlineRateFallbackFactory.class) +public interface EleAirStrategyFeignClient { + + /** + * 获取策略下的监测点 + * @author cdf + * @date 2022/4/22 + */ + @GetMapping("dealAirStrategyId") + HttpResult dealAirStrategyId(@RequestParam("id") String id,@RequestParam("operation") String operation); + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleIntegrityFeignClient.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleIntegrityFeignClient.java new file mode 100644 index 000000000..6de897f73 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleIntegrityFeignClient.java @@ -0,0 +1,27 @@ +package com.njcn.quality.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.quality.api.fallback.EleIntegrityFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 15:08 + */ +@FeignClient(value = ServerInfo.ENERGY,path = "/integrity",fallbackFactory = EleIntegrityFallbackFactory.class) +public interface EleIntegrityFeignClient { + + @PostMapping("/getPowerLineId") + HttpResult> getPowerLineId(); + + @PostMapping("/getAirLineId") + HttpResult> getAirLineId(); + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleOnlineRateFeignClient.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleOnlineRateFeignClient.java new file mode 100644 index 000000000..3ba32415f --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/EleOnlineRateFeignClient.java @@ -0,0 +1,26 @@ +package com.njcn.quality.api; + +import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.quality.api.fallback.EleOnlineRateFallbackFactory; +import com.njcn.quality.pojo.dto.OnlineRateDTO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 15:08 + */ +@FeignClient(value = ServerInfo.ENERGY,path = "/onlineRate",fallbackFactory = EleOnlineRateFallbackFactory.class) +public interface EleOnlineRateFeignClient { + + @PostMapping("/getDeviceTime") + HttpResult> getDeviceTime(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime); + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleAirStrategyFallbackFactory.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleAirStrategyFallbackFactory.java new file mode 100644 index 000000000..6ba445aae --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleAirStrategyFallbackFactory.java @@ -0,0 +1,41 @@ +package com.njcn.quality.api.fallback; + +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.quality.api.EleAirStrategyFeignClient; +import com.njcn.quality.utils.EnergyEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 15:09 + */ +@Slf4j +@Component +public class EleAirStrategyFallbackFactory implements FallbackFactory { + + + @Override + public EleAirStrategyFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if(cause.getCause() instanceof BusinessException){ + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = EnergyEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new EleAirStrategyFeignClient() { + @Override + public HttpResult dealAirStrategyId(String id,String operation) { + log.error("{}异常,降级处理,异常为:{}","空调控制策略数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleIntegrityFallbackFactory.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleIntegrityFallbackFactory.java new file mode 100644 index 000000000..3771151e8 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleIntegrityFallbackFactory.java @@ -0,0 +1,48 @@ +package com.njcn.quality.api.fallback; + +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.quality.api.EleIntegrityFeignClient; +import com.njcn.quality.utils.EnergyEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 15:09 + */ +@Slf4j +@Component +public class EleIntegrityFallbackFactory implements FallbackFactory { + + @Override + public EleIntegrityFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if(cause.getCause() instanceof BusinessException){ + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = EnergyEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new EleIntegrityFeignClient() { + @Override + public HttpResult> getPowerLineId() { + log.error("{}异常,降级处理,异常为:{}","获取在线用采监测点",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getAirLineId() { + log.error("{}异常,降级处理,异常为:{}","获取在线空调监测点",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleOnlineRateFallbackFactory.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleOnlineRateFallbackFactory.java new file mode 100644 index 000000000..77721ca34 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/api/fallback/EleOnlineRateFallbackFactory.java @@ -0,0 +1,44 @@ +package com.njcn.quality.api.fallback; + +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.quality.api.EleOnlineRateFeignClient; +import com.njcn.quality.pojo.dto.OnlineRateDTO; +import com.njcn.quality.utils.EnergyEnumUtil; +import feign.hystrix.FallbackFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 15:09 + */ +@Slf4j +@Component +public class EleOnlineRateFallbackFactory implements FallbackFactory { + + + @Override + public EleOnlineRateFeignClient create(Throwable cause) { + //判断抛出异常是否为解码器抛出的业务异常 + Enum exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK; + if(cause.getCause() instanceof BusinessException){ + BusinessException businessException = (BusinessException) cause.getCause(); + exceptionEnum = EnergyEnumUtil.getExceptionEnum(businessException.getResult()); + } + Enum finalExceptionEnum = exceptionEnum; + return new EleOnlineRateFeignClient() { + @Override + public HttpResult> getDeviceTime(String startTime, String endTime) { + log.error("{}异常,降级处理,异常为:{}","装置在线率数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + }; + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/EleStatisticalSetEnum.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/EleStatisticalSetEnum.java new file mode 100644 index 000000000..c007af69d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/EleStatisticalSetEnum.java @@ -0,0 +1,26 @@ +package com.njcn.quality.enums; + +import lombok.Getter; + +/** + * 用能费率配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:04 + */ +@Getter +public enum EleStatisticalSetEnum { + + /** + * 枚举配置 + */ + LOAD_STATISTICS("负荷统计"), + + ELETRIC_DEGREE("电度统计"); + + private final String name; + + EleStatisticalSetEnum(String name) { + this.name = name; + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/EnergyResponseEnum.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/EnergyResponseEnum.java new file mode 100644 index 000000000..dbf9b3902 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/EnergyResponseEnum.java @@ -0,0 +1,79 @@ +package com.njcn.quality.enums; + +import lombok.Getter; + +/** + * @author cdf + * @version 1.0.0 + * @date 2022年02月23日 09:56 + */ +@Getter +public enum EnergyResponseEnum { + + /** + * 用能模块异常响应码的范围: + * A00450 ~ A00549 + */ + ENERGY_COMMON_ERROR("A00450","用能模块异常"), + NET_DEV_NAME_REPEAT("A00451", "网关设备名称重复"), + DEV_VERSION_REPEAT("A00451", "设备版本信息重复"), + + /** + * 用能模板交互应答code + */ + SUCCESS("200","success"), + PROCESSING("202","请求处理中"), + + AUTO_OFFLINE("300","设备有异常,主动下线"), + FAIL("400","请求失败"), + PARAM_FAIL_TIMESTAMP("400","请求失败,时间戳不能为空,请检查timestamp字段"), + PARAM_ERROR_TIMESTAMP("400","请求失败,时间戳格式错误,请检查timestamp字段"), + PARAM_FAIL_TYPE("400","请求失败,消息类型不能为空,请检查type字段"), + TYPE_ERROR("400","请求失败,接口名称不匹配,请检查type字段"), + REGISTER_ERROR("400","注册失败,注册的联网设备不存在,请先平台录入"), + REPEAT_ERROR("400","注册失败,有重复装置注册"), + EXIST_ERROR("400","注册失败,存在已注册的装置"), + CANCEL_ERROR("400","取消注册失败,存在未注册或者接入的装置,无法取消注册"), + NO_MODEL_FIND("402","接入失败,模板未找到"), + MISSING_MODEL("402","接入失败,模板数据缺失"), + MISSING_TOPIC("402","接入失败,缺少网关主题相关信息"), + NO_DID_FIND("400","接入失败,需要接入的装置未找到"), + MODULE_MATCH_ERROR("400","接入失败,接入的装置和模板数量不匹配"), + SAME_DEV_ERROR("400","模板数据错误,存在重复的装置信息"), + MODEL_ERROR("400","模板数据错误,模板未找到"), + NET_DEV_MODEL_ERROR("400","网关模板解析错误,平台未找到此网关"), + LINE_REPEAT_ERROR("400","网关模板解析错误,库中存在相同的监测点id"), + + + CERTIFICATION_ERROR("401","请求未认证/认证错误"), + REQUEST_REFUSE("403","请求被拒绝"), + FUNCTION_MISSING("404","请求的资源不存在"), + OVER_WAITING_TIME("408","请求超时"), + OTHER_ERROR("500","其他错误"), + + NO_DICT("501","字典表无此数据"), + NO_TABLE("501","字典表无influxDB表名数据"), + DEV_LINE_EMPTY("501","设备监测点不可为空"), + DIC_NAME_REPEAT("502","字典名称不可重复"), + CHILDREN_EXIT("503","存在子节点,不可删除"), + + + CAI_BIND("504","用能负荷未绑定监测点"), + LOAD_VAL_CONFLICT("505","负荷类型与值类型冲突"), + ENERGY_EMPTY("506","用能查询数据为空"), + TASK_CREATE_ERROR("507","定时任务创建失败"), + + TASK_HAS_START("508","任务已经执行完毕"), + TASK_DEL_ERROR("509","定时任务删除失败,请联系管理员"), + TASK_RUNING("510","任务正在执行无法操作,请先停止任务") + ; + + private final String code; + + private final String message; + + EnergyResponseEnum(String code, String message) { + this.code = code; + this.message = message; + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/LoadEnum.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/LoadEnum.java new file mode 100644 index 000000000..176b2da45 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/enums/LoadEnum.java @@ -0,0 +1,33 @@ +package com.njcn.quality.enums; + +import lombok.Getter; + +/** + * pqs + * + * @author cdf + * @date 2022/4/18 + */ +@Getter +public enum LoadEnum { + + AIR_LOAD("空调负荷"), + WORK_LOAD("办公负荷"), + EAT_LOAD("厨房负荷"), + SLEEP_LOAD("宿舍负荷"), + SUN_LOAD("光伏发电"), + HIGH_LINE("高压进线") + + ; + + + + + private final String name; + + + LoadEnum(String name){ + this.name=name; + } + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/AirStrategyParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/AirStrategyParam.java new file mode 100644 index 000000000..ddef2d03d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/AirStrategyParam.java @@ -0,0 +1,90 @@ +package com.njcn.quality.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.annotation.DateTimeStrValid; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.util.List; + +/** + * pqs + * 空调策略 + * @author cdf + * @date 2022/4/21 + */ + +@Data +@ApiModel +public class AirStrategyParam{ + + + @ApiModelProperty(name = "策略名称",required = true) + @NotBlank(message = "名称不可为空") + private String name; + + @ApiModelProperty(name = "开始时间",required = true) + @NotBlank(message = "开始时间不可为空") + @DateTimeStrValid(format = "yyyy-MM-dd HH:mm:ss",message = "开始时间格式有误") + private String startTime; + + @ApiModelProperty(name = "开始时间",required = true) + @NotBlank(message = "开始时间不可为空") + @DateTimeStrValid(format = "yyyy-MM-dd HH:mm:ss",message = "结束时间格式有误") + private String endTime; + + @ApiModelProperty(name = "空调模式",required = true) + @NotBlank(message = "模式不可为空") + private String mode; + @ApiModelProperty(name = "空调温度",required = true) + @NotNull(message = "空调温度不可为空") + private Integer temperature; + + @ApiModelProperty(name = "空调风速",required = true) + @NotBlank(message = "空调风速不可为空") + private String wind; + + @ApiModelProperty(name = "排序",required = true) + @NotNull(message = "排序不可为空") + private Integer sort; + + @ApiModelProperty(name = "监测点集",required = true) + @NotEmpty(message = "监测点集不可为空") + private List lineIds; + + + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class AirUpdateParam extends AirStrategyParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class AirStrategyQueryParam extends BaseParam { + + + } + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataArrayParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataArrayParam.java new file mode 100644 index 000000000..8d975479e --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataArrayParam.java @@ -0,0 +1,57 @@ +package com.njcn.quality.param; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 类的介绍:详细数据 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/9 13:36 + */ +@Data +public class DataArrayParam { + + @ApiModelProperty(value = "数据集表Id") + @NotEmpty(message = "数据集表Id不可为空") + private String pid; + + @ApiModelProperty(value = "数据类型表id") + @NotEmpty(message = "数据类型表id不可为空") + private String dataId; + + @ApiModelProperty(value = "数据分类") + private String className; + + @ApiModelProperty(value = "排序") + private Integer sort; + + @ApiModelProperty(value = "数据名称") + @NotEmpty(message = "数据名称不可为空") + private String name; + + @ApiModelProperty(value = "数据名称别名") + @NotEmpty(message = "数据名称别名不可为空") + private String anotherName; + + @ApiModelProperty(value = "数据编号") + @NotNull(message = "数据编号不可为空") + private Integer idx; + + @ApiModelProperty(value = "数据类型") + private String type; + + @ApiModelProperty(value = "相别") + private String phase; + + @ApiModelProperty(value = "统计类型") + private String statMethod; + + @ApiModelProperty(value = "influxDB表名") + private String classId; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataGroupParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataGroupParam.java new file mode 100644 index 000000000..d808e2c22 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataGroupParam.java @@ -0,0 +1,28 @@ +package com.njcn.quality.param; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/16 9:14 + */ +@Data +public class DataGroupParam { + + @ApiModelProperty(value = "数据集表Id") + @NotEmpty(message = "数据集表Id不可为空") + private String pid; + + @ApiModelProperty(value = "分组名称") + private String name; + + @ApiModelProperty(value = "排序") + private Integer sort; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataHisParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataHisParam.java new file mode 100644 index 000000000..1a10b569d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataHisParam.java @@ -0,0 +1,33 @@ +package com.njcn.quality.param; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * pqs + * 通过字段表名获取统计趋势和历史趋势实体 + * @author cdf + * @date 2022/3/28 + */ +@Data +@ApiModel +public class DataHisParam { + + @ApiModelProperty(name = "监测点id",required = true) + private String lineId; + + @ApiModelProperty(name = "指标id集",required = true) + private List arrName; + + + private String classId; + + @ApiModelProperty(name = "起始时间",required = true) + private String startTime; + + @ApiModelProperty(name = "结束时间",required = true) + private String endTime; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataModelParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataModelParam.java new file mode 100644 index 000000000..c97327a5b --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataModelParam.java @@ -0,0 +1,71 @@ +package com.njcn.quality.param; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.time.LocalDateTime; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 20:19 + */ +@Data +public class DataModelParam { + + @ApiModelProperty(value = "数据模板名称") + @NotEmpty(message = "数据模板名称不可为空") + private String name; + + @ApiModelProperty(value = "设备模板编号") + @NotNull(message = "设备模板编号不可为空") + private Integer idx; + + @ApiModelProperty(value = "版本号") + private String version; + + /** + * 创建或最后修改时间 + */ + @ApiModelProperty(value = "创建或最后修改时间",required = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime time; + + @ApiModelProperty(value = "创建时间",required = true) + private LocalDateTime createTime; + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DataModelUpdateParam extends DataModelParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DataModelQueryParam extends BaseParam { + + + } + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataSetParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataSetParam.java new file mode 100644 index 000000000..240cbf5f4 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DataSetParam.java @@ -0,0 +1,72 @@ +package com.njcn.quality.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/9 10:08 + */ +@Data +public class DataSetParam { + + + @ApiModelProperty(value = "数据模板表Id") + @NotEmpty(message = "数据模板表Id不可为空") + private String pid; + + @ApiModelProperty(value = "数据集名称") + @NotEmpty(message = "数据集名称不可为空") + private String name; + + @ApiModelProperty(value = "数据集序号") + @NotNull(message = "数据集序号不可为空") + private Integer idx; + + @ApiModelProperty(value = "数据集别名") + private String anotherName; + + /** + * 0 不存储 + * 1 存储 + */ + @ApiModelProperty(value = "是否存储") + @NotNull(message = "数据集序号不可为空") + private Integer storeFlag; + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DataSetUpdateParam extends DataSetParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DataSetQueryParam extends BaseParam { + + + } + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevCfgParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevCfgParam.java new file mode 100644 index 000000000..dd23d1013 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevCfgParam.java @@ -0,0 +1,117 @@ +package com.njcn.quality.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Pattern; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 13:30 + */ +@Data +public class DevCfgParam { + + @ApiModelProperty(value = "联网设备表Id") + @NotEmpty(message = "联网设备表Id不可为空") + private String pid; + + @ApiModelProperty(value = "设备Id") + @NotEmpty(message = "设备Id不可为空") + private String did; + + @ApiModelProperty(value = "版本信息表Id") + private String versionId; + + @ApiModelProperty(value = "设备数据模板Id") + private String idx; + + @ApiModelProperty(value = "设备名称") + private String name; + + @ApiModelProperty(value = "设备型号") + private String type; + + @ApiModelProperty(value = "设备类别") + private String devApp; + + @ApiModelProperty(value = "设备和联网装置通讯协议") + private String protocol; + + /** + * 设备和联网装置通讯接口 Lora、RS485、Eth、Bus内部总线方式 + */ + @ApiModelProperty(value = "设备和联网装置通讯接口") + private String ci; + + /** + * 内部时钟源 Rtc、None + */ + @ApiModelProperty(value = "内部时钟源") + private String iclk; + + /** + * 外部时钟源 BCode、Sntp、MasterStation + */ + @ApiModelProperty(value = "内部时钟源") + private String eclk; + + /** + * 数据上送周期(单位秒) + */ + @ApiModelProperty(value = "数据上送周期") + private Integer period; + + @ApiModelProperty(value = "安装区域省") + private String province; + + @ApiModelProperty(value = "安装区域市") + private String city; + + @ApiModelProperty(value = "安装区域县或区") + private String county; + + @ApiModelProperty(value = "安装地址(厂区或变电站)") + private String address; + + @ApiModelProperty(value = "安装位置") + private String position; + + @ApiModelProperty(value = "设备总线路") + private Integer allNum; + + @ApiModelProperty(value = "监测点数目") + private Integer lineNum; + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DevCfgUpdateParam extends DevCfgParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DevCfgQueryParam extends BaseParam { + + + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevLineQueryParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevLineQueryParam.java new file mode 100644 index 000000000..434d18793 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevLineQueryParam.java @@ -0,0 +1,33 @@ +package com.njcn.quality.param; + +import com.njcn.web.pojo.annotation.DateTimeStrValid; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.validation.annotation.Validated; + +import javax.validation.constraints.NotBlank; + +/** + * pqs + * + * @author cdf + * @date 2022/3/14 + */ +@Data +@Validated +public class DevLineQueryParam { + @NotBlank(message = "id不可为空") + @ApiModelProperty("id") + private String id; + + @DateTimeStrValid + private String beginTime; + + @DateTimeStrValid + private String endTime; + + @ApiModelProperty("页码") + private Integer page; + @ApiModelProperty("页面尺寸") + private Integer pageSize; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevVersionParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevVersionParam.java new file mode 100644 index 000000000..12c0f3812 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DevVersionParam.java @@ -0,0 +1,87 @@ +package com.njcn.quality.param; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.Pattern; +import java.time.LocalDateTime; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/7 19:02 + */ +@Data +public class DevVersionParam{ + + + /** + * 网关id + */ + @ApiModelProperty(value = "网关id",required = true) + @NotBlank(message = "网关id不可为空") + private String ndid; + + + /** + * 设备类型(0:联网设备;1:逻辑设备) + */ + @ApiModelProperty(value = "设备类型",required = true) + @NotEmpty(message = "设备类型不可为空") + private Integer type; + + /** + * 版本号 + */ + @ApiModelProperty(value = "版本号",required = true) + @NotBlank(message = "版本号不可为空") + private String version; + + /** + * 创建或最后修改时间 + */ + @ApiModelProperty(value = "创建或最后修改时间",required = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime time; + + /** + * 创建或最后修改时间 + */ + @ApiModelProperty(value = "创建时间",required = true) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DevVersionUpdateParam extends DevVersionParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DevVersionQueryParam extends BaseParam { + + + } + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DictParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DictParam.java new file mode 100644 index 000000000..f6dfd60ee --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/DictParam.java @@ -0,0 +1,67 @@ +package com.njcn.quality.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + * pqs + * + * @author cdf + * @date 2022/3/22 + */ +@Data +public class DictParam { + + /** + * 父级id + */ + @ApiModelProperty(value = "父级id") + private String pid; + + /** + * 字典表字段名 + */ + @ApiModelProperty(value = "字典表字段名") + private String name; + + /** + * 字典表别名 + */ + @ApiModelProperty(value = "字典表别名") + private String anotherName; + + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DictUpdateParam extends DictParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class DictQueryParam extends BaseParam { + @ApiModelProperty("pid") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String pid; + + + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/ElDataBindParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/ElDataBindParam.java new file mode 100644 index 000000000..37ce62d0c --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/ElDataBindParam.java @@ -0,0 +1,18 @@ +package com.njcn.quality.param; + + +import com.njcn.quality.pojo.po.EleBind; +import lombok.Data; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/3/30 + */ +@Data +public class ElDataBindParam { + private List list; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/EleParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/EleParam.java new file mode 100644 index 000000000..c890dd55a --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/EleParam.java @@ -0,0 +1,25 @@ +package com.njcn.quality.param; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月15日 13:38 + */ +@Data +public class EleParam { + + @ApiModelProperty("统计类型配置id") + @NotBlank(message = "id不可为空") + private String id; + + @ApiModelProperty("指标类型集合ids") + @NotEmpty(message = "id数组") + private List ids; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/ElectComparaParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/ElectComparaParam.java new file mode 100644 index 000000000..58cde49a1 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/ElectComparaParam.java @@ -0,0 +1,58 @@ +package com.njcn.quality.param; + +import com.njcn.web.pojo.annotation.DateTimeStrValid; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/4/18 + */ +@Data +@ApiModel +public class ElectComparaParam { + + @ApiModelProperty(value = "统计指标") + @NotBlank(message = "统计指标不可为空") + private String tagType; + + @ApiModelProperty(value = "负荷类型") + @NotEmpty(message = "负荷类型不可为空") + private List loadType; + + @ApiModelProperty(value = "值类型") + private String valType; + + @ApiModelProperty(value = "开始时间") + @NotBlank(message = "开始时间不可为空") + @DateTimeStrValid + private String startTime; + + @ApiModelProperty(value = "结束时间") + @NotBlank(message = "结束时间不可为空") + @DateTimeStrValid + private String endTime; + + @ApiModelProperty(value = "同比环比起始时间") + @NotBlank(message = "同比环比起始时间不可为空") + private String startTimeBi; + + @ApiModelProperty(value = "同比环比结束时间") + @NotBlank(message = "同比环比结束时间不可为空") + @DateTimeStrValid + private String endTimeBi; + + @ApiModelProperty(value = "统计类型") + @NotNull(message = "0.电度 1.电费") + private Integer statisticType; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/EnergyBaseParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/EnergyBaseParam.java new file mode 100644 index 000000000..02977a819 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/EnergyBaseParam.java @@ -0,0 +1,45 @@ +package com.njcn.quality.param; + +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.annotation.DateTimeStrValid; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * pqs + * + * @author cdf + * @date 2022/4/1 + */ +@Data +public class EnergyBaseParam implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + private String id; + + @ApiModelProperty("lineId") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + private String lineId; + + @ApiModelProperty("pageNum") + private Integer pageNum; + + @ApiModelProperty("pageSize") + private Integer pageSize; + + @ApiModelProperty("startTime") + + @DateTimeStrValid + private String startTime; + + @ApiModelProperty("endTime") + @DateTimeStrValid + private String endTime; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/GroupArrParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/GroupArrParam.java new file mode 100644 index 000000000..0b3acc061 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/GroupArrParam.java @@ -0,0 +1,36 @@ +package com.njcn.quality.param; + +import com.njcn.web.constant.ValidMessage; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * pqs + * 重新分组 + * + * @author cdf + * @date 2022/3/16 + */ +@Data +public class GroupArrParam { + + @ApiModelProperty("setId") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + private String setId; + + @ApiModelProperty("data") + @NotEmpty(message = "数据不能为空") + private List data; + + + @Data + public static class ArrItem { + private String id; + private String name; + private List children; + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/HardwareParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/HardwareParam.java new file mode 100644 index 000000000..35e284e14 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/HardwareParam.java @@ -0,0 +1,107 @@ +package com.njcn.quality.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + + +/** + * @author 徐扬 + */ +@Data +public class HardwareParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + + @ApiModelProperty(value = "设备类型区分") + @NotNull() + @Range(min = 0, max = 1) + private Integer type; + + @ApiModelProperty(value = "设备类型") + private String devType; + + @ApiModelProperty(value = "设备名称") + private String devName; + + @ApiModelProperty(value = "设备厂商信息") + private String msgInfo; + + @ApiModelProperty(value = "设备状态") + private String devStatus; + + @ApiModelProperty(value = "设备硬件版本号") + private String hardVer; + + @ApiModelProperty(value = "CPU核心数") + private Integer cpuCore; + + @ApiModelProperty(value = "CPU主频(单位GHz)") + private Float cpuFreq; + + @ApiModelProperty(value = "CPU架构") + private String arch; + + @ApiModelProperty(value = "CPU监控阈值(单位%)") + private Float cpuLmt; + + @ApiModelProperty(value = "物理内存(单位MB)") + private Float memPhy; + + @ApiModelProperty(value = "虚拟内存(单位MB)") + private Float memVirt; + + @ApiModelProperty(value = "内存监控阈值(单位%)") + private Float memLmt; + + @ApiModelProperty(value = "磁盘空间(单位MB)") + private Float diskPhy; + + @ApiModelProperty(value = "存储监控阈值(单位%)") + private Float diskLmt; + + @ApiModelProperty(value = "已使用磁盘空间(单位MB)") + private Float diskUsePhy; + + @ApiModelProperty(value = "操作系统名称,裸机系统填None") + private String osName; + + @ApiModelProperty(value = "操作系统版本,裸机系统填None") + private String osVersion; + + @ApiModelProperty(value = "应用程序版本号") + private String appVersion; + + @ApiModelProperty(value = "应用程序发布日期") + private String appDate; + + @ApiModelProperty(value = "应用程序校验码") + private String appCheck; + + @ApiModelProperty(value = "是否支持远程升级程序") + private String softUpdate; + + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class HardwareQueryParam extends BaseParam { + + + } + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/JobInfoParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/JobInfoParam.java new file mode 100644 index 000000000..da772f0f4 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/JobInfoParam.java @@ -0,0 +1,21 @@ +package com.njcn.quality.param; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2022年04月18日 15:37 + */ +@Data +public class JobInfoParam implements Serializable { + + private String strategyId; + + private String startTime; + + private String endTime; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/LineParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/LineParam.java new file mode 100644 index 000000000..d46649bcd --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/LineParam.java @@ -0,0 +1,87 @@ +package com.njcn.quality.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 13:52 + */ +@Data +public class LineParam { + + @ApiModelProperty(value = "监测点id") + @NotEmpty(message = "监测点id不可为空") + private String lineId; + + @ApiModelProperty(value = "逻辑设备表Id") + @NotEmpty(message = "逻辑设备表Id不可为空") + private String pid; + + @ApiModelProperty(value = "监测点名称") + @NotEmpty(message = "监测点名称不可为空") + private String name; + + @ApiModelProperty(value = "监测点编号") + @NotNull(message = "监测点编号不可为空") + private Integer idx; + + @ApiModelProperty(value = "安装区域省") + private String province; + + @ApiModelProperty(value = "安装区域市") + private String city; + + @ApiModelProperty(value = "安装区域县或区") + private String county; + + @ApiModelProperty(value = "安装地址(厂区或变电站)") + private String address; + + @ApiModelProperty(value = "安装位置") + private String position; + + @ApiModelProperty(value = "电压等级") + private String volGrade; + + @ApiModelProperty(value = "PT变比") + private String ptRatio; + + @ApiModelProperty(value = "CT变比") + private String ctRatio; + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class LineUpdateParam extends LineParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class LineQueryParam extends BaseParam { + + + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/LoadStatisticParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/LoadStatisticParam.java new file mode 100644 index 000000000..d42f86274 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/LoadStatisticParam.java @@ -0,0 +1,54 @@ +package com.njcn.quality.param; + +import com.njcn.web.pojo.annotation.DateTimeStrValid; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/4/18 + */ +@Data +@ApiModel +public class LoadStatisticParam { + + @ApiModelProperty(value = "统计指标",required = true) + @NotBlank(message = "统计指标不可为空") + private String tagType; + + @ApiModelProperty(value = "负荷类型",required = true) + @NotEmpty(message = "负荷类型不可为空") + private List loadType; + + @ApiModelProperty(value = "值类型 0.最大值 1.最小值",required = true) + @NotEmpty(message = "值类型不可为空") + private List valType; + + @ApiModelProperty(value = "开始时间",required = true) + @NotBlank(message = "开始时间不可为空") + @DateTimeStrValid + private String startTime; + + @ApiModelProperty(value = "结束时间",required = true) + @NotBlank(message = "结束时间不可为空") + @DateTimeStrValid + private String endTime; + + @ApiModelProperty(value = "同比环比开始时间",required = true) + @NotBlank(message = "同比环比开始时间不可为空") + private String startTimeBi; + + @ApiModelProperty(value = "同比环比结束时间",required = true) + @NotBlank(message = "同比环比结束时间不可为空") + @DateTimeStrValid + private String endTimeBi; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/NetDevParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/NetDevParam.java new file mode 100644 index 000000000..4c7dfaefa --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/param/NetDevParam.java @@ -0,0 +1,108 @@ +package com.njcn.quality.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.web.constant.ValidMessage; +import com.njcn.web.pojo.param.BaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-02-22 + */ +@Data +public class NetDevParam { + + + /** + * 联网设备名称 + */ + @ApiModelProperty(value = "名称",required = true) + @NotBlank(message = "网关设备名称不可为空") + private String name; + + /** + * 联网设备ID + */ + @ApiModelProperty(value = "联网设备ID",required = true) + @NotBlank(message = "网关设备ID不可为空") + private String ndid; + + /** + * 关联版本信息表Id + */ + private String versionId; + + /** + * 联网设备型号(字典表) + */ + private String type; + + /** + * 联网设备接入网络方式 “4G” “WIFI” (字典表) + */ + private String netType; + + /** + * 用户ID + */ + private String uid; + + /** + * 子用户信息 + */ + private String cUid; + + /** + * 硬件信息表Id + */ + private String info; + + /** + * 状态 + */ + private Integer state; + + /** + * 排序字段 + * @author cdf + * @date 2022/4/20 + */ + @ApiModelProperty(value = "排序字段",required = true) + @NotBlank(message = "排序字段不可为空") + private Integer sort; + + /** + * 更新操作实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class NetDevUpdateParam extends NetDevParam { + + @ApiModelProperty("id") + @NotBlank(message = ValidMessage.ID_NOT_BLANK) + @Pattern(regexp = PatternRegex.SYSTEM_ID, message = ValidMessage.ID_FORMAT_ERROR) + private String id; + + } + + /** + * 分页查询实体 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class NetDevQueryParam extends BaseParam { + + + } + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/ApiParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/ApiParam.java new file mode 100644 index 000000000..8ae865fde --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/ApiParam.java @@ -0,0 +1,59 @@ +package com.njcn.quality.pojo.constant; + +/** + * @author 徐扬 + */ +public interface ApiParam { + + /** + * 设备接入网络设备注册申请 + */ + String CMD_DEV_REGISTER = "CMD_DEV_REGISTER"; + + /** + * 平台对接入网络设备注册应答 + */ + String REP_DEV_REGISTER = "REP_DEV_REGISTER"; + + /** + * 设备接入请求 + */ + String CMD_LINKUP = "CMD_LINKUP"; + + /** + * 设备接入应答 + */ + String REP_LINKUP = "REP_LINKUP"; + + /** + * 设备主动断开上报 + */ + String ACT_LINK_DOWN = "ACT_LINK_DOWN"; + + /** + * 设备心跳请求 + */ + String CMD_HEARTBEAT = "CMD_HEARTBEAT"; + + /** + * 设备心跳应答 + */ + String REP_HEARTBEAT = "REP_HEARTBEAT"; + + /** + * 联网装置主题信息上送 + */ + String ACT_DEV_TOPIC = "ACT_DEV_TOPIC"; + + /** + * 设备数据询问 + */ + String CMD_DEV_DATA = "CMD_DEV_DATA"; + + /** + * 联网装置主题信息上送 + */ + String REP_DEV_DATA = "REP_DEV_DATA"; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/DataType.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/DataType.java new file mode 100644 index 000000000..605dc513b --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/DataType.java @@ -0,0 +1,68 @@ +package com.njcn.quality.pojo.constant; + +/** + * @author 徐扬 + */ +public interface DataType { + + /** + * 电度数据 + */ + String EPD = "EPD"; + + /** + * 电能质量数据 + */ + String PQD = "PQD"; + + /** + * 事件 + */ + String EVT = "EVT"; + + /** + * 告警 + */ + String ALM = "ALM"; + + /** + * 通用测量 + */ + String MD = "MD"; + + /** + * 通用测量 + */ + String STS = "STS"; + + /** + * 开入信号量 + */ + String DI = "DI"; + + /** + * 开入信号量 + */ + String DO = "DO"; + + /** + * 参数 + */ + String PARM = "PARM"; + + /** + * 控制 + */ + String CTRL = "CTRL"; + + /** + * 自动控制 + */ + String ACTRL = "ACTRL"; + + /** + * 模板 + */ + String TEMPLATE = "TEMPLATE"; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/ModelState.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/ModelState.java new file mode 100644 index 000000000..f00bdf530 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/ModelState.java @@ -0,0 +1,58 @@ +package com.njcn.quality.pojo.constant; + + +/** + * @author 徐扬 + */ +public interface ModelState { + + /** + * 注册成功状态 + */ + Integer SUCCESS = 1; + + Integer FAIL = 0; + + /** + * DID操作 + */ + Integer REGISTER = 1; + + Integer UNREGISTER = 0; + + Integer ACCESS = 2; + + /** + * 报文处理优先级 + */ + Integer PRIORITY_FIRST = 1; + + Integer PRIORITY_SECOND = 2; + + Integer PRIORITY_THIRD = 3; + + Integer PRIORITY_FORTH = 4; + + Integer PRIORITY_FIFTH = 5; + + /** + * 报文过期的相对时间 -1表示永不过期 + */ + Integer EXPIRE = -1; + + /** + * 设备类型(0:联网设备;1:逻辑设备) + */ + Integer NET_DEV = 0; + Integer LOGIC_DEV = 1; + + /** + * 操作类型 + */ + String WRITE = "write"; + String READ = "read"; + + Integer online = 1; + Integer offline = 0; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/TableName.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/TableName.java new file mode 100644 index 000000000..bc24f3fd9 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/constant/TableName.java @@ -0,0 +1,21 @@ +package com.njcn.quality.pojo.constant; + +/** + * pqs + * + * @author cdf + * @date 2022/3/25 + */ +public interface TableName { + + String eleEpdPqd = "ele_epd_pqd"; + String eleMd = "ele_md"; + String eleCtrl = "ele_ctrl"; + String eleSts = "ele_sts"; + + String powerData = "power_data"; + String powerDataReal = "power_data_Real"; + + String powerQuality = "power_quality_data"; + String powerQualityReal = "power_quality_data_Real"; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ACtrlDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ACtrlDTO.java new file mode 100644 index 000000000..23d470d6b --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ACtrlDTO.java @@ -0,0 +1,42 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 15:10 + */ +@Data +public class ACtrlDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Enable") + private Integer enable; + + @SerializedName("Number") + private Integer number; + + @SerializedName("StartTime") + private String startTime; + + @SerializedName("EndTime") + private String endTime; + + @SerializedName("Condition") + private List condition; + + @SerializedName("OutRes") + private List outRes; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AccessDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AccessDTO.java new file mode 100644 index 000000000..1d088a5a8 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AccessDTO.java @@ -0,0 +1,53 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/12 17:04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AccessDTO extends PublicParamDTO implements Serializable { + + /** + * 请求参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class AccessRequest extends AccessDTO implements Serializable{ + + @SerializedName("expire") + private Integer expire; + + @SerializedName("param") + private AccessParamDTO param; + } + + /** + * 应答参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class AccessResponse extends AccessDTO implements Serializable{ + + @SerializedName("code") + private Integer code; + + @SerializedName("msg") + private String msg; + + @SerializedName("param") + private AccessParamDTO param; + } + + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AccessParamDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AccessParamDTO.java new file mode 100644 index 000000000..f787da0d3 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AccessParamDTO.java @@ -0,0 +1,25 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/12 17:08 + */ +@Data +public class AccessParamDTO implements Serializable { + + @SerializedName("DID") + List did; + + @SerializedName("TpList") + List tpList; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AirStrategyDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AirStrategyDTO.java new file mode 100644 index 000000000..3becaa643 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AirStrategyDTO.java @@ -0,0 +1,29 @@ +package com.njcn.quality.pojo.dto; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/4/22 + */ +@Data +public class AirStrategyDTO { + private Integer mid; + private String deviceId; + private Long timestamp; + private Integer expire; + private String type; + private Param param; + + + + @Data + public static class Param{ + private String lineId; + private String action; + private String parm; + } + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AlmDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AlmDTO.java new file mode 100644 index 000000000..77dc84b3d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AlmDTO.java @@ -0,0 +1,28 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:45 + */ +@Data +public class AlmDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Type") + private String type; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AskDataDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AskDataDTO.java new file mode 100644 index 000000000..bc33d2f22 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AskDataDTO.java @@ -0,0 +1,47 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/12 21:28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AskDataDTO extends PublicParamDTO implements Serializable { + + /** + * 请求参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class AskDataRequest extends AskDataDTO implements Serializable{ + + @SerializedName("param") + private AskDataParamDTO param; + } + + /** + * 响应参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class AskDataResponse extends AskDataDTO implements Serializable{ + + @SerializedName("code") + private Integer code; + + @SerializedName("msg") + private String msg; + + @SerializedName("param") + private TemplateDataArrayDTO param; + } +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AskDataParamDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AskDataParamDTO.java new file mode 100644 index 000000000..1d0fd033b --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/AskDataParamDTO.java @@ -0,0 +1,25 @@ +package com.njcn.quality.pojo.dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/12 21:30 + */ +@Data +public class AskDataParamDTO implements Serializable { + + private String dataType; + + private String operate; + + private String startTime; + + private String endTime; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CpuInfoDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CpuInfoDTO.java new file mode 100644 index 000000000..a6107ad31 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CpuInfoDTO.java @@ -0,0 +1,29 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 12:09 + */ +@Data +public class CpuInfoDTO implements Serializable { + + @SerializedName("CpuCore") + private Integer cpuCore; + + @SerializedName("CpuFreq") + private Float cpuFreq; + + @SerializedName("Arch") + private String arch; + + @SerializedName("CpuLmt") + private Float cpuLmt; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CtrlDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CtrlDTO.java new file mode 100644 index 000000000..4b7b6958a --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CtrlDTO.java @@ -0,0 +1,48 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 15:06 + */ +@Data +public class CtrlDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Type") + private String type; + + @SerializedName("Check") + private Integer remoteCheck; + + @SerializedName("Auto") + private Integer auto; + + @SerializedName("MaxNum") + private Integer maxNum; + + @SerializedName("MinNum") + private Integer minNum; + + @SerializedName("Ctlvalue") + private List ctlValue; + + @SerializedName("Strlen") + private Integer strLen; + + @SerializedName("Encode") + private Integer encode; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CuDevDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CuDevDTO.java new file mode 100644 index 000000000..3e721268e --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CuDevDTO.java @@ -0,0 +1,25 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/6/20 13:53 + */ +@Data +public class CuDevDTO implements Serializable { + + @SerializedName("IDX") + private String idx; + + @SerializedName("DevIDList") + private List devIdList; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CuIdDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CuIdDTO.java new file mode 100644 index 000000000..d2fe8f1f5 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/CuIdDTO.java @@ -0,0 +1,27 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/6/20 13:56 + */ +@Data +public class CuIdDTO implements Serializable { + + @SerializedName("ID") + private String id; + + @SerializedName("IDX") + private String idx; + + @SerializedName("Permissions") + private List permissions; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataArrayDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataArrayDTO.java new file mode 100644 index 000000000..1af0d446d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataArrayDTO.java @@ -0,0 +1,24 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 15:18 + */ +@Data +public class DataArrayDTO implements Serializable { + + @SerializedName("Type") + private String type; + + @SerializedName("IDX") + private Integer idx; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataArrayListDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataArrayListDTO.java new file mode 100644 index 000000000..9de008740 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataArrayListDTO.java @@ -0,0 +1,21 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/21 18:57 + */ +@Data +public class DataArrayListDTO { + + @SerializedName("TEMPLATE") + private TemplateDTO template; + + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataSetDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataSetDTO.java new file mode 100644 index 000000000..27a2da14a --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DataSetDTO.java @@ -0,0 +1,40 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:21 + */ +@Data +public class DataSetDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("DataType") + private String dataType; + + @SerializedName("StartTime") + private String startTime; + + @SerializedName("Period") + private Integer period; + + @SerializedName("StoreFlag") + private Integer storeFlag; + + @SerializedName("DataArray") + private List dataArray; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevCfgDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevCfgDTO.java new file mode 100644 index 000000000..4cfef317c --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevCfgDTO.java @@ -0,0 +1,27 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 13:03 + */ +@Data +public class DevCfgDTO implements Serializable { + + @SerializedName("Version") + private String version; + + @SerializedName("Time") + private String time; + + @SerializedName("Cfg") + private List cfg; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevDTO.java new file mode 100644 index 000000000..164bc725e --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevDTO.java @@ -0,0 +1,79 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 13:04 + */ +@Data +public class DevDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("Version") + private String version; + + @SerializedName("Time") + private String time; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("DevType") + private String devType; + + @SerializedName("DataList") + private List dataList; + + @SerializedName("DataSet") + private List dataSet; + + @SerializedName("IClk") + private String iclk; + + @SerializedName("EClk") + private String eclk; + + @SerializedName("LineNum") + private Integer lineNum; + + @SerializedName("EPD") + private List epd; + + @SerializedName("PQD") + private List pqd; + + @SerializedName("EVT") + private List evt; + + @SerializedName("ALM") + private List alm; + + @SerializedName("MD") + private List md; + + @SerializedName("STS") + private List sts; + + @SerializedName("DI") + private List di; + + @SerializedName("DO") + private List doDTO; + + @SerializedName("Param") + private List param; + + @SerializedName("CTRL") + private List ctrl; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevInfoDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevInfoDTO.java new file mode 100644 index 000000000..779f06647 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DevInfoDTO.java @@ -0,0 +1,32 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 12:08 + */ +@Data +public class DevInfoDTO implements Serializable { + + @SerializedName("DevType") + private String devType; + + @SerializedName("DevName") + private String devName; + + @SerializedName("MsgInfo") + private String msgInfo; + + @SerializedName("DevStatus") + private String devStatus; + + @SerializedName("HardVer") + private String hardVer; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DeviceDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DeviceDTO.java new file mode 100644 index 000000000..563c83da7 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DeviceDTO.java @@ -0,0 +1,67 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 13:38 + */ +@Data +public class DeviceDTO implements Serializable { + + @SerializedName("DevModName") + private String name; + + @SerializedName("DevModVersion") + private String version; + + @SerializedName("DevModTime") + private String time; + + @SerializedName("ID") + private String id; + + @SerializedName("DevType") + private String type; + + @SerializedName("DevApp") + private String devApp; + + @SerializedName("DevInfo") + private DevInfoDTO devInfo; + + @SerializedName("Province") + private String province; + + @SerializedName("City") + private String city; + + @SerializedName("County") + private String county; + + @SerializedName("Address") + private String address; + + @SerializedName("Position") + private String position; + + @SerializedName("LineNum") + private Integer lineNum; + + @SerializedName("LineInfo") + private List lineInfo; + + @SerializedName("FileFrameLength") + private Integer fileFrameLength; + + @SerializedName("FileFrameTimeout") + private Integer fileFrameTimeout; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DeviceOperateDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DeviceOperateDTO.java new file mode 100644 index 000000000..13945d6b1 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DeviceOperateDTO.java @@ -0,0 +1,28 @@ +package com.njcn.quality.pojo.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/24 18:40 + */ +@Data +public class DeviceOperateDTO implements Serializable { + + private String ndid; + + private List did; + + private String type; + + private String message; + + private String time; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DiDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DiDTO.java new file mode 100644 index 000000000..f2135548b --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DiDTO.java @@ -0,0 +1,21 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:57 + */ +@Data +public class DiDTO extends StsDTO implements Serializable { + + @SerializedName("TranFlag") + private Integer tranFlag; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DiskInfoDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DiskInfoDTO.java new file mode 100644 index 000000000..c8bad42d2 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DiskInfoDTO.java @@ -0,0 +1,27 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 12:09 + */ +@Data +public class DiskInfoDTO implements Serializable { + + @SerializedName("DiskPhy") + private Float diskPhy; + + @SerializedName("DiskUsePhy") + private Float diskUsePhy; + + @SerializedName("DiskLmt") + private Float diskLmt; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DoDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DoDTO.java new file mode 100644 index 000000000..f314251a8 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/DoDTO.java @@ -0,0 +1,29 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:59 + */ +@Data +public class DoDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("CurSts") + private Integer curSts; + + @SerializedName("CtlSts") + private Integer ctlSts; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ElePublicDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ElePublicDTO.java new file mode 100644 index 000000000..022845c09 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ElePublicDTO.java @@ -0,0 +1,20 @@ +package com.njcn.quality.pojo.dto; + +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/15 8:58 + */ +@Data +public class ElePublicDTO { + + private String lineId; + + private Double data; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EpdPqdDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EpdPqdDTO.java new file mode 100644 index 000000000..b48953c14 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EpdPqdDTO.java @@ -0,0 +1,46 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:27 + */ +@Data +public class EpdPqdDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Type") + private String type; + + @SerializedName("Phase") + private String phase; + + @SerializedName("Unit") + private String unit; + + @SerializedName("HarmStart") + private String harmStart; + + @SerializedName("HarmEnd") + private String harmEnd; + + @SerializedName("ClassID") + private String classId; + + @SerializedName("StatMethod") + private List statMethod; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EvtDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EvtDTO.java new file mode 100644 index 000000000..e911d6bd2 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EvtDTO.java @@ -0,0 +1,30 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:40 + */ +@Data +public class EvtDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Type") + private String type; + + @SerializedName("Parm") + private List param; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EvtParam.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EvtParam.java new file mode 100644 index 000000000..5a774db2a --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/EvtParam.java @@ -0,0 +1,31 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:41 + */ +@Data +public class EvtParam implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("Type") + private String type; + + @SerializedName("Unit") + private String unit; + + @SerializedName("Data") + private String data; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/LineDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/LineDTO.java new file mode 100644 index 000000000..23ad1f1e7 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/LineDTO.java @@ -0,0 +1,50 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 13:38 + */ +@Data +public class LineDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("lineId") + private String lineId; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Province") + private String province; + + @SerializedName("City") + private String city; + + @SerializedName("County") + private String county; + + @SerializedName("Address") + private String address; + + @SerializedName("Position") + private String position; + + @SerializedName("VolGrade") + private String volGrade; + + @SerializedName("PtRatio") + private String ptRatio; + + @SerializedName("CtRatio") + private String ctRatio; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/MdDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/MdDTO.java new file mode 100644 index 000000000..953533370 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/MdDTO.java @@ -0,0 +1,43 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:48 + */ +@Data +public class MdDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Type") + private String type; + + @SerializedName("Unit") + private String unit; + + @SerializedName("Phase") + private String phase; + + @SerializedName("ClassID") + private String classId; + + @SerializedName("StatMethod") + private List statMethod; + + @SerializedName("TranRule") + private String tranRule; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/MemInfoDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/MemInfoDTO.java new file mode 100644 index 000000000..05f646e22 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/MemInfoDTO.java @@ -0,0 +1,26 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 12:09 + */ +@Data +public class MemInfoDTO implements Serializable { + + @SerializedName("MemPhy") + private Float memPhy; + + @SerializedName("MemVirt") + private Float memVirt; + + @SerializedName("MemLmt") + private Float memLmt; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/NetAndDevByLineDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/NetAndDevByLineDTO.java new file mode 100644 index 000000000..b39b72a72 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/NetAndDevByLineDTO.java @@ -0,0 +1,18 @@ +package com.njcn.quality.pojo.dto; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/4/22 + */ +@Data +public class NetAndDevByLineDTO { + + private String ndid; + private String devId; + private String lineId; + private String lineName; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/NetDevDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/NetDevDTO.java new file mode 100644 index 000000000..af2c5a376 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/NetDevDTO.java @@ -0,0 +1,60 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 12:03 + */ +@Data +public class NetDevDTO implements Serializable { + + @SerializedName("Version") + private String version; + + @SerializedName("Time") + private String time; + + @SerializedName("DevName") + private String devName; + + @SerializedName("DevType") + private String devType; + + @SerializedName("NetType") + private String netType; + + @SerializedName("NDID") + private String nDid; + + @SerializedName("DevTopicVer") + private String devTopicVer; + + @SerializedName("Uid") + private String uid; + + @SerializedName("CUid") + private List cUid; + + @SerializedName("DevInfo") + private DevInfoDTO devInfoDTO; + + @SerializedName("CpuInfo") + private CpuInfoDTO cpuInfoDTO; + + @SerializedName("MemInfo") + private MemInfoDTO memInfoDTO; + + @SerializedName("DiskInfo") + private DiskInfoDTO diskInfoDTO; + + @SerializedName("SoftInfo") + private SoftInfoDTO softInfoDTO; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/OnlineRateDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/OnlineRateDTO.java new file mode 100644 index 000000000..4cc449ce0 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/OnlineRateDTO.java @@ -0,0 +1,27 @@ +package com.njcn.quality.pojo.dto; + +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/18 20:36 + */ +@Data +public class OnlineRateDTO { + + private Long time; + + private String deviceId; + + private Double onlineRate; + + private Integer onlineTime; + + private Integer offlineTime; + + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ParamDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ParamDTO.java new file mode 100644 index 000000000..bc5217533 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ParamDTO.java @@ -0,0 +1,49 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 15:02 + */ +@Data +public class ParamDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("Type") + private String type; + + @SerializedName("DataType") + private String dataType; + + @SerializedName("ModifyFlag") + private Integer modifyFlag; + + @SerializedName("MaxNum") + private Integer maxNum; + + @SerializedName("MinNum") + private Integer minNum; + + @SerializedName("SetValue") + private List setValue; + + @SerializedName("Strlen") + private Integer strLen; + + @SerializedName("DefaultValue") + private String defaultValue; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/PublicParamDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/PublicParamDTO.java new file mode 100644 index 000000000..2d3eb14a6 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/PublicParamDTO.java @@ -0,0 +1,42 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/12 19:18 + */ +@Data +public class PublicParamDTO implements Serializable { + + /** + * 在请求报文中该值为请求 ID,在设备主动上报数据的报文中该字段可不填写 + */ + @SerializedName("mid") + private Integer mid; + + @SerializedName("userId") + private String userId; + + @SerializedName("deviceId") + private String deviceId; + + @SerializedName("timestamp") + private String timestamp; + + /** + * 报文处理的优先级 + */ + @SerializedName("level") + private Integer level; + + @SerializedName("type") + private String type; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/RegisterDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/RegisterDTO.java new file mode 100644 index 000000000..ef8bed535 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/RegisterDTO.java @@ -0,0 +1,51 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/11 14:36 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RegisterDTO extends PublicParamDTO implements Serializable { + + /** + * 请求参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class RegisterRequest extends RegisterDTO implements Serializable{ + + @SerializedName("expire") + private Integer expire; + + @SerializedName("param") + private RegisterParamDTO.RegisterParamRequest param; + } + + /** + * 应答参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class RegisterResponse extends RegisterDTO implements Serializable{ + + @SerializedName("code") + private Integer code; + + @SerializedName("msg") + private String msg; + + @SerializedName("param") + private RegisterParamDTO.RegisterParamResponse param; + } + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/RegisterParamDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/RegisterParamDTO.java new file mode 100644 index 000000000..c51e73fb2 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/RegisterParamDTO.java @@ -0,0 +1,50 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/11 14:58 + */ +@Data +public class RegisterParamDTO implements Serializable { + + @SerializedName("NDID") + private String nDid; + + @SerializedName("DID") + private List did; + + /** + * 请求参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class RegisterParamRequest extends RegisterParamDTO implements Serializable{ + @SerializedName("type") + private Integer type; + } + + /** + * 应答参数 + */ + @Data + @EqualsAndHashCode(callSuper = true) + public static class RegisterParamResponse extends RegisterParamDTO implements Serializable{ + @SerializedName("res") + private Integer res; + + @SerializedName("type") + private Integer resType; + + } + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/SoftInfoDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/SoftInfoDTO.java new file mode 100644 index 000000000..da11c5244 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/SoftInfoDTO.java @@ -0,0 +1,36 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 12:09 + */ +@Data +public class SoftInfoDTO implements Serializable { + + @SerializedName("OsName") + private String osName; + + @SerializedName("OsVersion") + private String osVersion; + + @SerializedName("AppVersion") + private String appVersion; + + @SerializedName("AppDate") + private String appDate; + + @SerializedName("AppCheck") + private String appCheck; + + @SerializedName("Softupdate") + private String softUpdate; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/StsDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/StsDTO.java new file mode 100644 index 000000000..8ec13641a --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/StsDTO.java @@ -0,0 +1,36 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 14:52 + */ +@Data +public class StsDTO implements Serializable { + + @SerializedName("Name") + private String name; + + @SerializedName("IDX") + private Integer idx; + + @SerializedName("StoreFlag") + private Integer storeFlag; + + @SerializedName("CurSts") + private Integer curSts; + + @SerializedName("ClassID") + private String classId; + + @SerializedName("TranRule") + private String tranRule; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TemplateDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TemplateDTO.java new file mode 100644 index 000000000..12f187067 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TemplateDTO.java @@ -0,0 +1,30 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 11:36 + */ +@Data +public class TemplateDTO implements Serializable { + + @SerializedName("NetDevMod") + private NetDevDTO netDev; + + @SerializedName("DevCfg") + private DevCfgDTO devCfg; + + @SerializedName("DevMod") + private List dev; + + @SerializedName("UserCfg") + private UserCfgDTO userCfg; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TemplateDataArrayDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TemplateDataArrayDTO.java new file mode 100644 index 000000000..8dd16505c --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TemplateDataArrayDTO.java @@ -0,0 +1,32 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 13:01 + */ +@Data +public class TemplateDataArrayDTO implements Serializable { + + @SerializedName("Data_Type") + private String dataType; + + @SerializedName("DsName") + private String dsName; + + @SerializedName("Data_Array") + private List dataArray; + + @SerializedName("Res") + private String res; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ThreadDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ThreadDTO.java new file mode 100644 index 000000000..a4404fb94 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/ThreadDTO.java @@ -0,0 +1,21 @@ +package com.njcn.quality.pojo.dto; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/1 10:17 + */ +@Data +public class ThreadDTO { + + public static Map> list = new HashMap<>(); + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TopicDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TopicDTO.java new file mode 100644 index 000000000..1a7df8187 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TopicDTO.java @@ -0,0 +1,22 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/24 14:28 + */ +@Data +public class TopicDTO implements Serializable { + + @SerializedName("topic") + private List topic; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TopicParamDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TopicParamDTO.java new file mode 100644 index 000000000..fc06bd66e --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TopicParamDTO.java @@ -0,0 +1,21 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/24 14:38 + */ +@Data +public class TopicParamDTO extends PublicParamDTO implements Serializable { + + @SerializedName("param") + private TopicDTO param; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TpListDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TpListDTO.java new file mode 100644 index 000000000..1f687553b --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/TpListDTO.java @@ -0,0 +1,31 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/12 17:03 + */ +@Data +public class TpListDTO implements Serializable { + + @SerializedName("name") + private String name; + + @SerializedName("IDX") + private String idx; + + @SerializedName("version") + private String version; + + @SerializedName("time") + private String time; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/UserCfgDTO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/UserCfgDTO.java new file mode 100644 index 000000000..38a886d04 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/dto/UserCfgDTO.java @@ -0,0 +1,33 @@ +package com.njcn.quality.pojo.dto; + +import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/13 13:05 + */ +@Data +public class UserCfgDTO implements Serializable { + + @SerializedName("Version") + private String version; + + @SerializedName("Time") + private String time; + + @SerializedName("Uid") + private String uid; + + @SerializedName("CUid") + private List cuId; + + @SerializedName("CuDev") + private List cuDev; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/AirSet.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/AirSet.java new file mode 100644 index 000000000..787ac29eb --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/AirSet.java @@ -0,0 +1,19 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +@TableName(value = "ele_air_set") +@Data +@AllArgsConstructor +public class AirSet { + private String id; + private String lineId; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/AirStrategy.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/AirStrategy.java new file mode 100644 index 000000000..76975bae5 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/AirStrategy.java @@ -0,0 +1,28 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import lombok.Data; + +/** + * pqs + * 空调策略 + * @author cdf + * @date 2022/4/21 + */ +@TableName(value = "ele_air_strategy") +@Data +public class AirStrategy extends BaseEntity { + private String id; + private String name; + private String startTime; + private String endTime; + private String mode; + private Integer temperature; + private String wind; + private Integer state; + private Integer sort; + private Integer status; + private String xxlId; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataArray.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataArray.java new file mode 100644 index 000000000..67b4d7667 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataArray.java @@ -0,0 +1,83 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-03-03 + */ +@Getter +@Setter +@TableName("ele_data_array") +public class DataArray { + + private static final long serialVersionUID = 1L; + + /** + * 详细数据表Id + */ + private String id; + + /** + * 数据集表Id + */ + private String pid; + + /** + * 数据类型表Id + */ + private String dataId; + + /** + * 数据分类,同一个类型的数据存储到同一个表上(数据表名) + */ + private String className; + + /** + * 排序 + */ + private Integer sort; + + /** + * 数据名称 + */ + private String name; + + /** + * 数据名称别名 + */ + private String anotherName; + + /** + * 数据编号 + */ + private Integer idx; + + /** + * 数据类型 + */ + private String type; + + /** + * 相别 + */ + private String phase; + + /** + * 统计类型 + */ + private String statMethod; + + /** + * influxDB表名 + */ + private String classId; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataGroup.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataGroup.java new file mode 100644 index 000000000..96d7b4f9c --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataGroup.java @@ -0,0 +1,36 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-03-03 + */ +@Getter +@Setter +@TableName("ele_data_group") +public class DataGroup { + + private static final long serialVersionUID = 1L; + + private String id; + + /** + * 关联数据集表id + */ + private String pid; + + /** + * 分组名称 + */ + private String name; + + private Integer sort; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataMould.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataMould.java new file mode 100644 index 000000000..d1e52de0a --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataMould.java @@ -0,0 +1,52 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-03-03 + */ +@Getter +@Setter +@TableName("ele_data_mould") +public class DataMould { + + private static final long serialVersionUID = 1L; + + private String id; + + /** + * 数据模板名称 + */ + private String name; + + /** + * 设备模板编号 + */ + private Integer idx; + + + /** + * 版本号(从V1.00开始) + */ + private String version; + + /** + * 创建或最后修改时间 + */ + private LocalDateTime time; + + private Integer state; + + private LocalDateTime createTime; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataSet.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataSet.java new file mode 100644 index 000000000..c14a4229f --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DataSet.java @@ -0,0 +1,46 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-03-03 + */ +@Getter +@Setter +@TableName("ele_data_set") +public class DataSet { + + private static final long serialVersionUID = 1L; + + private String id; + + /** + * 数据模板表Id + */ + private String pid; + + /** + * 数据集名称 + */ + private String name; + + /** + * 数据集序号 + */ + private Integer idx; + + /** + * 是否存储“1”“0” + */ + private Integer storeFlag; + + private String anotherName; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DevVersion.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DevVersion.java new file mode 100644 index 000000000..058a28965 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/DevVersion.java @@ -0,0 +1,53 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/7 9:20 + */ +@Data +@TableName("ele_dev_version") +public class DevVersion { + + private static final long serialVersionUID = 1L; + + /** + * 设备配置模板表Id + */ + private String id; + + /** + * 网关id + */ + private String ndid; + + /** + * 设备类型(0:联网设备;1:逻辑设备) + */ + private Integer type; + + /** + * 版本号(从V1.00开始) + */ + private String version; + + /** + * 创建或最后修改时间 + */ + private LocalDateTime time; + + /** + * 状态 0-删除;1-正常 + */ + private Integer state; + + + private LocalDateTime createTime; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleALM.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleALM.java new file mode 100644 index 000000000..f49fac981 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleALM.java @@ -0,0 +1,29 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 20:29 + */ +@Data +@TableName("ele_alm") +public class EleALM { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private String type; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleActrl.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleActrl.java new file mode 100644 index 000000000..5c03b3809 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleActrl.java @@ -0,0 +1,41 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 21:32 + */ +@Data +@TableName("ele_actrl") +public class EleActrl { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private Integer enable; + + private Integer autoIdx; + + private LocalDateTime startTime; + + private LocalDateTime endTime; + + private String condition; + + private String outRes; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleBind.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleBind.java new file mode 100644 index 000000000..b94855ea0 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleBind.java @@ -0,0 +1,22 @@ +package com.njcn.quality.pojo.po; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/3/29 + */ + + +@Data +public class EleBind { + private static final long serialVersionUID = 1L; + + private String lineId; + + private String tagId; + + private String ndid; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleCtrl.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleCtrl.java new file mode 100644 index 000000000..5926e037a --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleCtrl.java @@ -0,0 +1,45 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 21:26 + */ +@Data +@TableName("ele_ctrl") +public class EleCtrl { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private String type; + + private Integer remoteCheck; + + private Integer auto; + + private Integer maxNum; + + private Integer minNum; + + private String ctlValue; + + private Integer strLen; + + private String encode; + + private String classId; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDi.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDi.java new file mode 100644 index 000000000..ed0d3073c --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDi.java @@ -0,0 +1,37 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 20:57 + */ + +@Data +@TableName("ele_di") +public class EleDi { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private Integer storeFlag; + + private Integer curSts; + + private String classId; + + private String tranRule; + + private Integer tranFlag; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDict.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDict.java new file mode 100644 index 000000000..befd49fc7 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDict.java @@ -0,0 +1,32 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/24 11:00 + */ +@Data +@TableName("ele_dict") +public class EleDict extends BaseEntity { + + private static final long serialVersionUID = 1L; + + private String id; + + private String pid; + + private String name; + + private String anotherName; + + private Integer state; + + private Integer sort; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDo.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDo.java new file mode 100644 index 000000000..64108440e --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleDo.java @@ -0,0 +1,39 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 20:59 + */ +@Data +@TableName("ele_do") +public class EleDo { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private Integer storeFlag; + + private Integer curSts; + + private String classId; + + private String statMethod; + + private String tranRule; + + private Integer tranFlag; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEpdPqd.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEpdPqd.java new file mode 100644 index 000000000..68882cd94 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEpdPqd.java @@ -0,0 +1,40 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 19:57 + */ +@Data +@TableName("ele_epd_pqd") +public class EleEpdPqd { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private String type; + + private String phase; + + private String unit; + + private Integer harmStart; + + private Integer harmEnd; + + private String classId; + + private String statMethod; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEvt.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEvt.java new file mode 100644 index 000000000..ce8f24646 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEvt.java @@ -0,0 +1,28 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 20:06 + */ +@Data +@TableName("ele_evt") +public class EleEvt { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private String type; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEvtParm.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEvtParm.java new file mode 100644 index 000000000..f51234f89 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleEvtParm.java @@ -0,0 +1,29 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 20:26 + */ +@Data +@TableName("ele_evt_parm") +public class EleEvtParm { + + private static final long serialVersionUID = 1L; + + private String id; + + private String pid; + + private String name; + + private String type; + + private String data; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleInformation.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleInformation.java new file mode 100644 index 000000000..0c6d1bbed --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleInformation.java @@ -0,0 +1,41 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/19 10:43 + */ +@Data +@TableName("ele_information") +public class EleInformation { + + private static final long serialVersionUID = 1L; + + /** + * 数据更新时间 + */ + private LocalDateTime updateTime; + + /** + * 装置id + */ + private String did; + + /** + * 类型 + */ + private Integer type; + + /** + * 描述 + */ + private String description; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleIntegrity.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleIntegrity.java new file mode 100644 index 000000000..7b58c54a7 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleIntegrity.java @@ -0,0 +1,31 @@ +package com.njcn.quality.pojo.po; + +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/13 10:28 + */ +@Data +@Measurement(name = "ele_integrity") +public class EleIntegrity { + + @Column(name = "time") + private Instant time; + + @Column(name = "line_id") + private String lineId; + + @Column(name = "real") + private Integer real; + + @Column(name = "due") + private Integer due; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLine.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLine.java new file mode 100644 index 000000000..3deb639ad --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLine.java @@ -0,0 +1,91 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-02-24 + */ +@Data +@TableName("ele_line") +public class EleLine{ + + private static final long serialVersionUID = 1L; + + /** + * 监测点信息表Id + */ + private String id; + + /** + * 逻辑设备表Id + */ + private String pid; + + /** + * 监测点Id + */ + private String lineId; + + /** + * 监测点名称 + */ + private String name; + + /** + * 监测点编号 + */ + private Integer idx; + + /** + * 安装区域省 + */ + private String province; + + /** + * 安装区域市 + */ + private String city; + + /** + * 安装区域县或区 + */ + private String county; + + /** + * 安装地址(厂区或变电站) + */ + private String address; + + /** + * 安装位置 + */ + private String position; + + /** + * 电压等级 + */ + private String volGrade; + + /** + * PT变比 + */ + private String ptRatio; + + /** + * CT变比 + */ + private String ctRatio; + + /** + * 状态 + */ + private Integer state; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLoadSet.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLoadSet.java new file mode 100644 index 000000000..f23e490b4 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLoadSet.java @@ -0,0 +1,18 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 负荷配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 14:46 + */ +@Data +@TableName("ele_load_set") +public class EleLoadSet { + private String id; + + private String lineId; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLogs.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLogs.java new file mode 100644 index 000000000..f81d1dc04 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleLogs.java @@ -0,0 +1,51 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/6 19:51 + */ +@Data +@TableName("ele_logs") +public class EleLogs { + + private static final long serialVersionUID = 1L; + + /** + * 表Id + */ + private String id; + + /** + * 联网设备ID + */ + private String ndid; + + /** + * 请求类型 + */ + private Integer type; + + /** + * 日志信息 + */ + private String info; + + /** + * 请求时间 + */ + private LocalDateTime reqTime; + + /** + * 日志创建时间 + */ + private LocalDateTime createTime; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleMd.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleMd.java new file mode 100644 index 000000000..6c803e2a0 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleMd.java @@ -0,0 +1,38 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 20:50 + */ +@Data +@TableName("ele_md") +public class EleMd { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private String type; + + private String unit; + + private String phase; + + private String classId; + + private String statMethod; + + private String tranRule; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleOnlineRate.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleOnlineRate.java new file mode 100644 index 000000000..5c0154281 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleOnlineRate.java @@ -0,0 +1,28 @@ +package com.njcn.quality.pojo.po; + +import lombok.Data; +import org.influxdb.annotation.Column; +import org.influxdb.annotation.Measurement; + +import java.time.Instant; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 19:07 + */ +@Data +@Measurement(name = "ele_online_rate") +public class EleOnlineRate { + + @Column(name = "time") + private Instant time; + + @Column(name = "device_id") + private String deviceId; + + @Column(name = "online_rate") + private Double onlineRate; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleParm.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleParm.java new file mode 100644 index 000000000..3ee886a31 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleParm.java @@ -0,0 +1,42 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 21:21 + */ +@Data +@TableName("ele_parm") +public class EleParm { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private String type; + + private String dataType; + + private Integer modifyFlag; + + private Integer maxNum; + + private Integer minNum; + + private String setValue; + + private Integer strLen; + + private String defaultValue; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleRateSet.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleRateSet.java new file mode 100644 index 000000000..5d2cb2f6e --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleRateSet.java @@ -0,0 +1,20 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 14:48 + */ +@Data +@TableName("ele_rate_set") +public class EleRateSet { + + private String id; + + private String time; + + private Float rate; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleStatisticalSet.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleStatisticalSet.java new file mode 100644 index 000000000..af38a78fa --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleStatisticalSet.java @@ -0,0 +1,18 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 用能统计配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 14:49 + */ +@Data +@TableName("ele_statistical_set") +public class EleStatisticalSet { + private String id; + + private String conId; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleSts.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleSts.java new file mode 100644 index 000000000..9ea574574 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleSts.java @@ -0,0 +1,35 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/14 20:54 + */ +@Data +@TableName("ele_sts") +public class EleSts { + + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String anotherName; + + private Integer idx; + + private Integer storeFlag; + + private Integer curSts; + + private String classId; + + private String tranRule; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleTopic.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleTopic.java new file mode 100644 index 000000000..d2d570fff --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/EleTopic.java @@ -0,0 +1,28 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/22 18:58 + */ +@Data +@TableName("ele_topic") +public class EleTopic { + + private static final long serialVersionUID = 1L; + + private String id; + + private String ndid; + + private String topic; + + private Integer type; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/GroupArray.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/GroupArray.java new file mode 100644 index 000000000..c98f1e58f --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/GroupArray.java @@ -0,0 +1,23 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/16 13:28 + */ +@Data +@TableName("ele_group_arr") +public class GroupArray { + + private static final long serialVersionUID = 1L; + + private String groupId; + + private String arrId; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/Hardware.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/Hardware.java new file mode 100644 index 000000000..efc8f242c --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/Hardware.java @@ -0,0 +1,132 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-03-03 + */ +@Getter +@Setter +@TableName("ele_hardware") +public class Hardware { + + private static final long serialVersionUID = 1L; + + private String id; + + private Integer type; + + /** + * 设备类型 + */ + private String devType; + + /** + * 设备名称 + */ + private String devName; + + /** + * 设备厂商信息 + */ + private String msgInfo; + + /** + * 设备状态 + */ + private String devStatus; + + /** + * 设备硬件版本号 + */ + private String hardVer; + + /** + * CPU核心数 + */ + private Integer cpuCore; + + /** + * CPU主频(单位GHz) + */ + private Float cpuFreq; + + /** + * CPU架构 + */ + private String arch; + + /** + * CPU监控阈值(单位%) + */ + private Float cpuLmt; + + /** + * 物理内存(单位MB) + */ + private Float memPhy; + + /** + * 虚拟内存(单位MB) + */ + private Float memVirt; + + /** + * 内存监控阈值(单位%) + */ + private Float memLmt; + + /** + * 磁盘空间(单位MB) + */ + private Float diskPhy; + + /** + * 存储监控阈值(单位%) + */ + private Float diskLmt; + + /** + * 已使用磁盘空间(单位MB) + */ + private Float diskUsePhy; + + /** + * 操作系统名称,裸机系统填None + */ + private String osName; + + /** + * 操作系统版本,裸机系统填None + */ + private String osVersion; + + /** + * 应用程序版本号 + */ + private String appVersion; + + /** + * 应用程序发布日期 + */ + private String appDate; + + /** + * 应用程序校验码 + */ + private String appCheck; + + /** + * 是否支持远程升级程序 + */ + private String softUpdate; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/LogicAccess.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/LogicAccess.java new file mode 100644 index 000000000..f4165c5ef --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/LogicAccess.java @@ -0,0 +1,34 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/23 21:49 + */ +@Data +@TableName("ele_logic_access") +public class LogicAccess { + + private static final long serialVersionUID = 1L; + + private String id; + + private String pid; + + private String did; + + private Integer state; + + private LocalDateTime createTime; + + + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/LogicDev.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/LogicDev.java new file mode 100644 index 000000000..597c20bab --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/LogicDev.java @@ -0,0 +1,133 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-02-24 + */ +@Getter +@Setter +@TableName("ele_logic_dev") +public class LogicDev { + + private static final long serialVersionUID = 1L; + + /** + * 逻辑设备表Id + */ + private String id; + + /** + * 联网设备表Id + */ + private String pid; + + /** + * 设备ID,标识网关下接入的设备或者直连设备 + */ + private String did; + + /** + * 版本信息表Id + */ + private String versionId; + + /** + * 设备数据模板Id + */ + private String idx; + + /** + * 设备名称 + */ + private String name; + + /** + * 设备型号(字典表) + */ + private String type; + + /** + * 设备类别(用途) + */ + private String devApp; + + /** + * 设备和联网装置通讯协议 + */ + private String protocol; + + /** + * 设备和联网装置通讯接口“Lora”“RS485”“Eth”“Bus”内部总线方式 + */ + private String ci; + + /** + * 内部时钟源“Rtc”“None” + */ + private String iclk; + + /** + * 外部时钟源“BCode”“Sntp”“MasterStation” + */ + private String eclk; + + /** + * 数据上送周期(单位秒) + */ + private Integer period; + + /** + * 安装区域省 + */ + private String province; + + /** + * 安装区域市 + */ + private String city; + + /** + * 安装区域县或区 + */ + private String county; + + /** + * 安装地址(厂区或变电站) + */ + private String address; + + /** + * 安装位置 + */ + private String position; + + /** + * 总线路 + */ + private Integer allNum; + + + /** + * 监测点数目 + */ + private String lineNum; + + + /** + * 状态 + */ + private Integer state; + + private LocalDateTime createTime; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/NetDev.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/NetDev.java new file mode 100644 index 000000000..c75f08443 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/po/NetDev.java @@ -0,0 +1,81 @@ +package com.njcn.quality.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * + *

+ * + * @author cdf + * @since 2022-02-22 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("ele_net_dev") +public class NetDev extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 联网设备表Id + */ + private String id; + + /** + * 联网设备名称 + */ + private String name; + + /** + * 联网设备ID + */ + private String ndid; + + /** + * 关联版本信息表Id + */ + private String versionId; + + /** + * 联网设备型号(字典表) + */ + private String type; + + /** + * 联网设备接入网络方式 “4G” “WIFI” (字典表) + */ + private String netType; + + /** + * 用户ID + */ + private String uid; + + /** + * 子用户信息 + */ + private String cuid; + + /** + * 状态 + */ + private Integer state; + + /** + * 排序 + * @author cdf + * @date 2022/4/20 + */ + private Integer sort; + + /** + * 通讯状态状态 + * 0:中断 1:正常 + */ + private Integer comFlag; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/AirStrategyVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/AirStrategyVO.java new file mode 100644 index 000000000..72e1a9ef8 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/AirStrategyVO.java @@ -0,0 +1,49 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * pqs + * 空调策略 + * @author cdf + * @date 2022/4/21 + */ + +@Data +@ApiModel +public class AirStrategyVO { + + private String id; + + @ApiModelProperty(name = "策略名称",required = true) + private String name; + + @ApiModelProperty(name = "开始时间",required = true) + private String startTime; + + @ApiModelProperty(name = "开始时间",required = true) + private String endTime; + + @ApiModelProperty(name = "空调模式",required = true) + private String mode; + @ApiModelProperty(name = "空调温度",required = true) + private Integer temperature; + + @ApiModelProperty(name = "空调风速",required = true) + private String wind; + + @ApiModelProperty(name = "排序",required = true) + private Integer sort; + + @ApiModelProperty(name = "监测点集",required = true) + private List lineIds; + + + + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/DataGroupTemplateVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/DataGroupTemplateVO.java new file mode 100644 index 000000000..2016d597e --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/DataGroupTemplateVO.java @@ -0,0 +1,22 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/3/10 + */ +@Data +public class DataGroupTemplateVO { + private String id; + private String pid; + private String name; + private Integer sort; + private Integer level = 1; + + private List children; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/DataHisVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/DataHisVO.java new file mode 100644 index 000000000..159ddf529 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/DataHisVO.java @@ -0,0 +1,20 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/3/28 + */ +@Data +public class DataHisVO { + + private String name; + private String anotherName; + private List> value; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleIntegrityVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleIntegrityVO.java new file mode 100644 index 000000000..18e097421 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleIntegrityVO.java @@ -0,0 +1,47 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/13 10:45 + */ +@Data +public class EleIntegrityVO { + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("pid") + private String pid; + + @ApiModelProperty("did") + private String did; + + @ApiModelProperty("lineId") + private String lineId; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("工程信息") + private String info; + + @ApiModelProperty("通讯状态") + private Integer comFlag; + + @ApiModelProperty("数据完整性") + private Double integrity = 3.14159; + + @ApiModelProperty("子集") + private List children; + + private List lineData; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleLoadSetTreeVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleLoadSetTreeVO.java new file mode 100644 index 000000000..001e3415f --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleLoadSetTreeVO.java @@ -0,0 +1,20 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月15日 16:34 + */ +@Data +public class EleLoadSetTreeVO { + @ApiModelProperty("未绑监测点") + private List noBinds; + + @ApiModelProperty("已绑监测点") + private List binds; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleLoadSetVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleLoadSetVO.java new file mode 100644 index 000000000..6266b5aac --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleLoadSetVO.java @@ -0,0 +1,25 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 用能负荷类型配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:20 + */ +@Data +public class EleLoadSetVO implements Serializable { + + @ApiModelProperty("用能负荷类型id") + private String loadId; + + @ApiModelProperty("用能负荷类型名称") + private String loadName; + + @ApiModelProperty("是否参与总负荷计算:0-是,1-否") + private Integer flag; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleMdVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleMdVO.java new file mode 100644 index 000000000..ea6f02e62 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleMdVO.java @@ -0,0 +1,20 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 16:19 + */ +@Data +public class EleMdVO implements Serializable { + @ApiModelProperty("Id") + private String id; + + @ApiModelProperty("name") + private String name; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleRateVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleRateVO.java new file mode 100644 index 000000000..53c108321 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleRateVO.java @@ -0,0 +1,28 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 费率配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 18:41 + */ +@Data +public class EleRateVO implements Serializable { + + @ApiModelProperty("费率类型Id") + private String rateTypeId; + + @ApiModelProperty("费率类型") + private String rateTypeName; + + @ApiModelProperty("时间段") + private String rateTypeTime; + + @ApiModelProperty("电费") + private String rate; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleStatisticalTreeVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleStatisticalTreeVO.java new file mode 100644 index 000000000..b207e7aea --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleStatisticalTreeVO.java @@ -0,0 +1,21 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 16:22 + */ +@Data +public class EleStatisticalTreeVO implements Serializable { + @ApiModelProperty("未绑指标") + List noBinds; + + @ApiModelProperty("已绑指标") + List binds; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleStatisticalVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleStatisticalVO.java new file mode 100644 index 000000000..ff24ae6a6 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EleStatisticalVO.java @@ -0,0 +1,23 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 用能统计类型配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:20 + */ +@Data +public class EleStatisticalVO implements Serializable { + + @ApiModelProperty("用能统计类型id") + private String statisticalId; + + @ApiModelProperty("用能统计类型名称") + private String statisticalName; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/ElectCompareVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/ElectCompareVO.java new file mode 100644 index 000000000..f74e3d136 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/ElectCompareVO.java @@ -0,0 +1,23 @@ +package com.njcn.quality.pojo.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/4/19 + */ +@Data +@ApiModel +public class ElectCompareVO { + + private String loadId; + private String loadName; + private Float feng; + private Float ping; + private Float gu; + + private Float all; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EnergyDeviceTreeVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EnergyDeviceTreeVO.java new file mode 100644 index 000000000..4092baf35 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EnergyDeviceTreeVO.java @@ -0,0 +1,30 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +import java.util.List; + +/** + * pqs + * 用能设备树 + * @author cdf + * @date 2022/3/1 + */ +@Data +public class EnergyDeviceTreeVO { + private String id; + + private String pid; + + private String name; + + private Integer level; + + private Integer sort; + + private String lineId; + + private Integer state; + + private List children; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EnergyTemplateVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EnergyTemplateVO.java new file mode 100644 index 000000000..585146b5d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/EnergyTemplateVO.java @@ -0,0 +1,42 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/3/2 + */ +@Data +public class EnergyTemplateVO { + + private String id; + private String pid; + private String anotherName; + private String name; + private Integer sort; + private String type; + private String phase ="M"; + private String unit; + private Integer dataCompetence; + private Integer operationType; + private Integer state; + private String dataValue; + private String classId; + private Integer level; + private String time; + + private Object maxValue; + private Object minValue; + private Object avgValue; + + //空调 + private Integer maxNum; + + private Integer minNum; + + private String ctlValue; + + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LoadStatisticVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LoadStatisticVO.java new file mode 100644 index 000000000..0b0bf2e2d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LoadStatisticVO.java @@ -0,0 +1,19 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/4/18 + */ +@Data +public class LoadStatisticVO { + + private String loadId; + private String loadName; + + private Float beforeNum; + private Float afterNum; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LoadTendencyVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LoadTendencyVO.java new file mode 100644 index 000000000..397385673 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LoadTendencyVO.java @@ -0,0 +1,17 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/4/15 + */ +@Data +public class LoadTendencyVO { + private String loadName; + private List> value; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LogicDeviceLineInfoVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LogicDeviceLineInfoVO.java new file mode 100644 index 000000000..603b848c3 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/LogicDeviceLineInfoVO.java @@ -0,0 +1,74 @@ +package com.njcn.quality.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * pqs + * + * @author cdf + * @date 2022/3/2 + */ +@Data +public class LogicDeviceLineInfoVO { + + /** + * 逻辑设备表Id + */ + private String id; + + /** + * 联网设备表Id + */ + private String pid; + + /** + * 设备ID,标识网关下接入的设备或者直连设备 + */ + private String did; + + /** + * 版本信息表Id + */ + private String versionId; + + + /** + * 设备名称 + */ + private String name; + + private String netDevName; + + private String ndid; + + /** + * 安装地址(厂区或变电站) + */ + private String address; + + /** + * 安装位置 + */ + private String position; + + + + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/NetDevInfoVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/NetDevInfoVO.java new file mode 100644 index 000000000..58dfb5052 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/NetDevInfoVO.java @@ -0,0 +1,161 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +/** + * pqs + * + * @author cdf + * @date 2022/3/28 + */ +@Data +public class NetDevInfoVO { + private String id; + + /** + * 联网设备名称 + */ + private String name; + + /** + * 联网设备ID + */ + private String ndid; + + /** + * 关联版本信息表Id + */ + private String versionId; + + /** + * 联网设备型号(字典表) + */ + private String type; + + /** + * 联网设备接入网络方式 “4G” “WIFI” (字典表) + */ + private String netType; + + /** + * 用户ID + */ + private String uid; + + /** + * 子用户信息 + */ + private String cuid; + + /** + * 状态 + */ + private Integer state; + + + /** + * 设备类型 + */ + private String devType; + + /** + * 设备名称 + */ + private String devName; + + /** + * 设备厂商信息 + */ + private String msgInfo; + + /** + * 设备状态 + */ + private String devStatus; + + /** + * 设备硬件版本号 + */ + private String hardVer; + + /** + * CPU核心数 + */ + private Integer cpuCore; + + /** + * CPU主频(单位GHz) + */ + private Float cpuFreq; + + /** + * CPU架构 + */ + private String arch; + + /** + * CPU监控阈值(单位%) + */ + private Float cpuLmt; + + /** + * 物理内存(单位MB) + */ + private Float memPhy; + + /** + * 虚拟内存(单位MB) + */ + private Float memVirt; + + /** + * 内存监控阈值(单位%) + */ + private Float memLmt; + + /** + * 磁盘空间(单位MB) + */ + private Float diskPhy; + + /** + * 存储监控阈值(单位%) + */ + private Float diskLmt; + + /** + * 已使用磁盘空间(单位MB) + */ + private Float diskUsePhy; + + /** + * 操作系统名称,裸机系统填None + */ + private String osName; + + /** + * 操作系统版本,裸机系统填None + */ + private String osVersion; + + /** + * 应用程序版本号 + */ + private String appVersion; + + /** + * 应用程序发布日期 + */ + private String appDate; + + /** + * 应用程序校验码 + */ + private String appCheck; + + /** + * 是否支持远程升级程序 + */ + private String softUpdate; + +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/YunCaiDataVO.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/YunCaiDataVO.java new file mode 100644 index 000000000..04d6f77e4 --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/pojo/vo/YunCaiDataVO.java @@ -0,0 +1,20 @@ +package com.njcn.quality.pojo.vo; + +import lombok.Data; + +import java.util.HashMap; + +/** + * pqs + * 运彩返回数据实体 + * @author cdf + * @date 2022/3/30 + */ +@Data +public class YunCaiDataVO { + private String lineId; + + private String lineName; + + private HashMap map; +} diff --git a/pqs-quality/quality-api/src/main/java/com/njcn/quality/utils/EnergyEnumUtil.java b/pqs-quality/quality-api/src/main/java/com/njcn/quality/utils/EnergyEnumUtil.java new file mode 100644 index 000000000..84f0a956d --- /dev/null +++ b/pqs-quality/quality-api/src/main/java/com/njcn/quality/utils/EnergyEnumUtil.java @@ -0,0 +1,49 @@ +package com.njcn.quality.utils; + +import cn.hutool.core.util.StrUtil; +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.EnumUtils; +import com.njcn.quality.enums.EnergyResponseEnum; + +import javax.validation.constraints.NotNull; +import java.util.Objects; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 15:19 + */ + +public class EnergyEnumUtil { + + /** + * 获取实例 + */ + public static EnergyResponseEnum getEnergyResponseEnumByMessage(@NotNull Object value) { + EnergyResponseEnum energyResponseEnum; + try { + String message = value.toString(); + if(message.indexOf(StrUtil.C_COMMA)>0){ + value = message.substring(message.indexOf(StrUtil.C_COMMA)+1); + } + energyResponseEnum = EnumUtils.valueOf(EnergyResponseEnum.class, value, EnergyResponseEnum.class.getMethod(BusinessException.GET_MESSAGE_METHOD)); + return Objects.isNull(energyResponseEnum) ? EnergyResponseEnum.ENERGY_COMMON_ERROR : energyResponseEnum; + } catch (NoSuchMethodException e) { + throw new BusinessException(CommonResponseEnum.INTERNAL_ERROR); + } + } + + + public static Enum getExceptionEnum(HttpResult result){ + //如果返回错误,且为内部错误,则直接抛出异常 + CommonResponseEnum commonResponseEnum = EnumUtils.getCommonResponseEnumByCode(result.getCode()); + if (commonResponseEnum == CommonResponseEnum.USER_RESPONSE_ENUM) { + return getEnergyResponseEnumByMessage(result.getMessage()); + } + return commonResponseEnum; + } +} diff --git a/pqs-quality/quality-api/src/test/java/com/njcn/AppTest.java b/pqs-quality/quality-api/src/test/java/com/njcn/AppTest.java new file mode 100644 index 000000000..a7e14d20f --- /dev/null +++ b/pqs-quality/quality-api/src/test/java/com/njcn/AppTest.java @@ -0,0 +1,20 @@ +package com.njcn; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/pqs-quality/quality-boot/pom.xml b/pqs-quality/quality-boot/pom.xml new file mode 100644 index 000000000..3bbd0d1d0 --- /dev/null +++ b/pqs-quality/quality-boot/pom.xml @@ -0,0 +1,130 @@ + + + + + + pqs-quality + com.njcn + 1.0.0 + + 4.0.0 + quality-boot + 电能质量服务模块 + + + 8 + 8 + + + + + com.njcn + quality-api + ${project.version} + + + com.njcn + common-web + ${project.version} + + + com.njcn + common-swagger + ${project.version} + + + com.github.tocrhz + mqtt-spring-boot-starter + + + com.njcn + job-api + 1.0.0 + compile + + + com.njcn + common-influxDB + 1.0.0 + compile + + + com.njcn + system-api + 1.0.0 + compile + + + org.jetbrains + annotations + 13.0 + compile + + + + + qualityboot + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + -Xlint:unchecked + + + + org.springframework.boot + spring-boot-maven-plugin + + + package + + repackage + + + + + + + com.spotify + docker-maven-plugin + 1.0.0 + + + + build-image + ${docker.operate} + + build + + + + + + http://${docker.repostory} + + ${docker.repostory}/${docker.registry.name}/${project.artifactId} + + + latest + + + ${docker.url} + ${basedir}/ + + + + /ROOT + + ${project.build.directory} + + ${project.build.finalName}.jar + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/QualityBootApplication.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/QualityBootApplication.java new file mode 100644 index 000000000..6e5dc411f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/QualityBootApplication.java @@ -0,0 +1,25 @@ +package com.njcn.quality; + +import lombok.extern.slf4j.Slf4j; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; + + +/** + * @author hongawen + * @version 1.0.0 + * @date 2021年12月09日 20:59 + */ +@Slf4j +@MapperScan("com.njcn.**.mapper") +@EnableFeignClients(basePackages = "com.njcn") +@SpringBootApplication(scanBasePackages = "com.njcn") +public class QualityBootApplication { + + public static void main(String[] args) { + SpringApplication.run(QualityBootApplication.class, args); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataArrayController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataArrayController.java new file mode 100644 index 000000000..a33c4cb4c --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataArrayController.java @@ -0,0 +1,62 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.DataArrayParam; +import com.njcn.quality.pojo.po.DataArray; +import com.njcn.quality.pojo.po.DataMould; +import com.njcn.quality.service.IDataArrayService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/9 15:47 + */ +@Slf4j +@RestController +@RequestMapping("/dataArray") +@RequiredArgsConstructor +@Api(tags = "装置详细数据管理") +public class DataArrayController extends BaseController { + + private final IDataArrayService dataArrayService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增装置详细模板数据") + @ApiImplicitParam(name = "dataArrayParam", value = "装置详细模板数据", required = true) + public HttpResult add(@RequestBody DataArrayParam dataArrayParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},装置详细模板数据为:{}", methodDescribe, dataArrayParam); + DataArray dataArray = dataArrayService.addDataArray(dataArrayParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @DeleteMapping("/delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除详细数据") + @ApiImplicitParam(name = "list", value = "数据集id", required = true) + public HttpResult delete(@RequestParam List list){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},数据集id:{}", methodDescribe, list); + boolean result = dataArrayService.deleteDataArray(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataGroupController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataGroupController.java new file mode 100644 index 000000000..7eb7bd0f2 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataGroupController.java @@ -0,0 +1,73 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.DataGroupParam; +import com.njcn.quality.pojo.po.DataGroup; +import com.njcn.quality.service.IDataGroupService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/16 9:03 + */ +@Slf4j +@RestController +@RequestMapping("/group") +@RequiredArgsConstructor +@Api(tags = "分组管理") +public class DataGroupController extends BaseController { + + private final IDataGroupService dataGroupService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增分组") + @ApiImplicitParam(name = "dataGroupParam", value = "分组信息", required = true) + public HttpResult add(@RequestBody DataGroupParam dataGroupParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},分组信息:{}", methodDescribe, dataGroupParam); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @GetMapping("/findGroupById") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("查询组") + @ApiImplicitParam(name = "list", value = "数据集合", required = true) + public HttpResult> findGroupById(@RequestParam List list){ + String methodDescribe = getMethodDescribe("findGroupById"); + LogUtil.njcnDebug(log, "{},数据集合:{}", methodDescribe, list); + List result = dataGroupService.findGroupById(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @DeleteMapping("/delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除组数据") + @ApiImplicitParam(name = "list", value = "数据集id", required = true) + public HttpResult delete(@RequestParam List list){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},数据集id:{}", methodDescribe, list); + boolean result = dataGroupService.deleteDataGroup(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataSetController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataSetController.java new file mode 100644 index 000000000..4c0c3eee3 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DataSetController.java @@ -0,0 +1,73 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.DataSetParam; +import com.njcn.quality.pojo.po.DataMould; +import com.njcn.quality.pojo.po.DataSet; +import com.njcn.quality.service.IDataSetService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/9 10:06 + */ +@Slf4j +@RestController +@RequestMapping("/dataSet") +@RequiredArgsConstructor +@Api(tags = "装置数据集管理") +public class DataSetController extends BaseController { + + private final IDataSetService dataSetService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增装置数据集") + @ApiImplicitParam(name = "dataSetParam", value = "装置数据集", required = true) + public HttpResult add(@RequestBody DataSetParam dataSetParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},装置数据集为:{}", methodDescribe, dataSetParam); + DataSet dataSet = dataSetService.add(dataSetParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @DeleteMapping("/delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除数据集") + @ApiImplicitParam(name = "id", value = "模板id", required = true) + public HttpResult delete(@RequestParam String id){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},模板id:{}", methodDescribe, id); + boolean result = dataSetService.delete(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @GetMapping("/findSetById") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据id获取数据集") + @ApiImplicitParam(name = "id", value = "模板id", required = true) + public HttpResult> findSetById(@RequestParam String id){ + String methodDescribe = getMethodDescribe("findSetById"); + LogUtil.njcnDebug(log, "{},模板id:{}", methodDescribe, id); + List list = dataSetService.findSetById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DevModelController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DevModelController.java new file mode 100644 index 000000000..9faa65f79 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DevModelController.java @@ -0,0 +1,75 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.DataModelParam; +import com.njcn.quality.pojo.po.DataMould; +import com.njcn.quality.service.IDevModelService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 20:24 + */ +@Slf4j +@RestController +@RequestMapping("/devModel") +@RequiredArgsConstructor +@Api(tags = "装置模板管理") +public class DevModelController extends BaseController { + + private final IDevModelService devModelService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增设备数据模板") + @ApiImplicitParam(name = "dataModelParam", value = "设备版本信息", required = true) + public HttpResult add(@RequestBody DataModelParam dataModelParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},设备版本信息为:{}", methodDescribe, dataModelParam); + DataMould dataMould = devModelService.addDataMould(dataModelParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @DeleteMapping("/delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除设备数据模板") + @ApiImplicitParam(name = "id", value = "模板id", required = true) + public HttpResult delete(@RequestParam String id){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},模板id:{}", methodDescribe, id); + boolean result = devModelService.deleteById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @GetMapping("/findMould") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("查找模板") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "模板名称", required = true), + @ApiImplicitParam(name = "version", value = "模板版本", required = true), + @ApiImplicitParam(name = "time", value = "模板时间", required = true) + }) + public HttpResult findMould(@RequestParam String name,@RequestParam String version,@RequestParam String time){ + String methodDescribe = getMethodDescribe("findMould"); + LogUtil.njcnDebug(log, "{},模板名称:{},模板版本:{},模板时间:{}", methodDescribe, name,version,time); + DataMould dataMould = devModelService.findMould(name, version, time); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataMould, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DevVersionController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DevVersionController.java new file mode 100644 index 000000000..5509cd79b --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/DevVersionController.java @@ -0,0 +1,62 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.DevVersionParam; +import com.njcn.quality.pojo.po.DevVersion; +import com.njcn.quality.service.IDevVersionService; +import com.njcn.web.controller.BaseController; +import com.sun.org.apache.xpath.internal.operations.Bool; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * 类的介绍:设备版本信息表 + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/7 18:56 + */ +@Slf4j +@RestController +@RequestMapping("/version") +@RequiredArgsConstructor +@Api(tags = "版本信息") +public class DevVersionController extends BaseController { + + private final com.njcn.quality.service.IDevVersionService IDevVersionService; + + @PostMapping("add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增设备版本信息") + @ApiImplicitParam(name = "devVersionParam", value = "设备版本信息", required = true) + public HttpResult add(@RequestBody DevVersionParam devVersionParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},网关设备数据为:{}", methodDescribe, devVersionParam); + DevVersion devVersion = IDevVersionService.addDevVersion(devVersionParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @DeleteMapping("delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除设备版本信息") + @ApiImplicitParam(name = "id", value = "设备版本id", required = true) + public HttpResult delete(@RequestParam String id){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},设备版本id:{}", methodDescribe, id); + boolean result = IDevVersionService.deleteDevVersion(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleActrlController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleActrlController.java new file mode 100644 index 000000000..9ca250d79 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleActrlController.java @@ -0,0 +1,70 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleActrl; +import com.njcn.quality.service.IEleActrlService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 20:13 + */ +@Slf4j +@RestController +@RequestMapping("/actrl") +@RequiredArgsConstructor +@Api(tags = "自动控制数据管理") +public class EleActrlController extends BaseController { + + private final IEleActrlService eleActrlService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增自动控制数据") + @ApiImplicitParam(name = "eleActrl", value = "自动控制数据", required = true) + public HttpResult add(@RequestBody EleActrl eleActrl){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},自动控制数据:{}", methodDescribe, eleActrl); + boolean result = eleActrlService.addActrl(eleActrl); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改自动控制数据") + @ApiImplicitParam(name = "eleActrl", value = "自动控制数据", required = true) + public HttpResult update(@RequestBody EleActrl eleActrl){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},自动控制数据:{}", methodDescribe, eleActrl); + boolean result = eleActrlService.updateActrl(eleActrl); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleActrl eleActrl = eleActrlService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleActrl, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleAirStrategyController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleAirStrategyController.java new file mode 100644 index 000000000..eb4c1e95f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleAirStrategyController.java @@ -0,0 +1,196 @@ +package com.njcn.quality.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.AirStrategyParam; +import com.njcn.quality.pojo.po.AirStrategy; +import com.njcn.quality.pojo.vo.AirStrategyVO; +import com.njcn.quality.pojo.vo.EnergyDeviceTreeVO; +import com.njcn.quality.service.EleAirStrategyService; +import com.njcn.quality.service.ILogicDeviceLineService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +@Slf4j +@RestController +@Api(tags = "空调控制策略") +@RequestMapping("/air") +@RequiredArgsConstructor +public class EleAirStrategyController extends BaseController { + + private final EleAirStrategyService eleAirStrategyService; + + private final ILogicDeviceLineService iLogicDeviceLineService; + + /** + * 新增空调策略 + * @author cdf + * @date 2022/2/22 + */ + @PostMapping("add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增空调策略") + @ApiImplicitParam(name = "airStrategyParam", value = "空调策略", required = true) + public HttpResult add(@RequestBody @Validated AirStrategyParam airStrategyParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},空调策略数据为:{}", methodDescribe, airStrategyParam); + boolean result = eleAirStrategyService.addAirStrategy(airStrategyParam); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } + + + + /** + * 查询空调策略 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/list") + @ApiOperation("查询空调策略") + @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) + public HttpResult> list(@RequestBody @Validated AirStrategyParam.AirStrategyQueryParam queryParam) { + String methodDescribe = getMethodDescribe("list"); + LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam); + Page result = eleAirStrategyService.listAirStrategy(queryParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + /** + * 修改空调策略 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE) + @PostMapping("/update") + @ApiOperation("修改空调策略") + @ApiImplicitParam(name = "updateParam", value = "空调策略设备数据", required = true) + public HttpResult update(@RequestBody @Validated AirStrategyParam.AirUpdateParam updateParam) { + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},空调策略数据为:{}", methodDescribe, updateParam); + boolean result = eleAirStrategyService.updateAirStrategy(updateParam); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } + + /** + * 删除空调策略 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) + @GetMapping("/delete") + @ApiOperation("删除空调策略") + @ApiImplicitParam(name = "id", value = "网关设备索引", required = true) + public HttpResult delete(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("delete"); + boolean result = eleAirStrategyService.deleteAirStrategy(id); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + + /** + * 查询空调策略详情 + * @author cdf + * @date 2022/3/28 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getAirStrategyInfo") + @ApiOperation("查询空调策略") + @ApiImplicitParam(name = "id", value = "查询参数", required = true) + public HttpResult getAirStrategyInfo(@RequestParam("id")String id) { + String methodDescribe = getMethodDescribe("getAirStrategyInfo"); + AirStrategyVO airStrategy = eleAirStrategyService.findById(id); + if(Objects.nonNull(airStrategy)){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, airStrategy, methodDescribe); + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + + + /** + * 查询空调策略详情 + * @author cdf + * @date 2022/3/28 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getAirLineTree") + @ApiOperation("查询空调监测点树") + public HttpResult> getAirLineTree() { + String methodDescribe = getMethodDescribe("getAirLineTree"); + List list = iLogicDeviceLineService.getAirLineTree(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + /** + * 执行按钮触发 + * @author cdf + * @date 2022/4/22 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/startAirStrategy") + @ApiOperation("执行空调策略任务") + public HttpResult startAirStrategy(@RequestParam("id")String id) { + String methodDescribe = getMethodDescribe("startAirStrategy"); + boolean res = eleAirStrategyService.startAirStrategy(id); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else{ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + + /** + * 根据策略定时开启关闭空调 + * @author cdf + * @date 2022/4/22 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/dealAirStrategyId") + @ApiOperation("根据策略定时开启关闭空调") + public HttpResult dealAirStrategyId(@RequestParam("id")String id,@RequestParam("operation")String operation) { + String methodDescribe = getMethodDescribe("dealAirStrategyId"); + boolean res = eleAirStrategyService.dealAirStrategyId(id,operation); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else{ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } } + + + + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleAlmController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleAlmController.java new file mode 100644 index 000000000..0b54e16f9 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleAlmController.java @@ -0,0 +1,70 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleALM; +import com.njcn.quality.service.IEleAlmService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 18:48 + */ +@Slf4j +@RestController +@RequestMapping("/alm") +@RequiredArgsConstructor +@Api(tags = "设备告警数据管理") +public class EleAlmController extends BaseController { + + + private final IEleAlmService eleAlmService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增设备告警数据") + @ApiImplicitParam(name = "eleAlM", value = "设备告警数据", required = true) + public HttpResult add(@RequestBody EleALM eleAlM){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},设备告警数据:{}", methodDescribe, eleAlM); + boolean result = eleAlmService.addAlm(eleAlM); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改设备告警数据") + @ApiImplicitParam(name = "eleAlM", value = "设备告警数据", required = true) + public HttpResult update(@RequestBody EleALM eleAlM){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},设备告警数据:{}", methodDescribe, eleAlM); + boolean result = eleAlmService.updateAlm(eleAlM); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleALM eleAlM = eleAlmService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleAlM, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleBindController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleBindController.java new file mode 100644 index 000000000..f5fed8a49 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleBindController.java @@ -0,0 +1,72 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.quality.param.ElDataBindParam; +import com.njcn.quality.pojo.po.EleBind; +import com.njcn.quality.pojo.vo.YunCaiDataVO; +import com.njcn.quality.service.IEleBindService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/3/29 + */ +@Slf4j +@RestController +@RequestMapping("/bind") +@RequiredArgsConstructor +@Api(tags = "用能组态数据绑定") +public class EleBindController extends BaseController { + + private final IEleBindService iEleBindService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增绑定关系") + @ApiImplicitParam(name = "elDataBindParam", value = "绑定信息", required = true) + public HttpResult add(@RequestBody ElDataBindParam elDataBindParam){ + String methodDescribe = getMethodDescribe("add"); + + boolean line = iEleBindService.addBind(elDataBindParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @GetMapping("/list") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("查询指定网关下的数据绑定关系") + @ApiImplicitParam(name = "ndid", value = "绑定信息", required = true) + public HttpResult> getList(@RequestParam String ndid){ + String methodDescribe = getMethodDescribe("getList"); + List line = iEleBindService.getList(ndid); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, line, methodDescribe); + } + + + @PostMapping("/getLineListDetail") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取指定系统下的数据") + @ApiImplicitParam(name = "lineList", value = "绑定信息", required = true) + public HttpResult> getLineListDetail(@RequestBody List lineList){ + String methodDescribe = getMethodDescribe("getLineListDetail"); + List line = iEleBindService.getLineListDetail(lineList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, line, methodDescribe); + } + + + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleCtrlController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleCtrlController.java new file mode 100644 index 000000000..0303820a6 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleCtrlController.java @@ -0,0 +1,69 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleCtrl; +import com.njcn.quality.service.IEleCtrlService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 20:02 + */ +@Slf4j +@RestController +@RequestMapping("/ctrl") +@RequiredArgsConstructor +@Api(tags = "设备控制数据管理") +public class EleCtrlController extends BaseController { + + private final IEleCtrlService eleCtrlService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增设备控制数据") + @ApiImplicitParam(name = "eleCtrl", value = "设备控制数据", required = true) + public HttpResult add(@RequestBody EleCtrl eleCtrl){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},设备控制数据:{}", methodDescribe, eleCtrl); + boolean result = eleCtrlService.addCtrl(eleCtrl); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改设备控制数据") + @ApiImplicitParam(name = "eleCtrl", value = "设备控制数据", required = true) + public HttpResult update(@RequestBody EleCtrl eleCtrl){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},设备控制数据:{}", methodDescribe, eleCtrl); + boolean result = eleCtrlService.updateCtrl(eleCtrl); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleCtrl eleCtrl = eleCtrlService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleCtrl, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDiController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDiController.java new file mode 100644 index 000000000..0754ce508 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDiController.java @@ -0,0 +1,70 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleDi; +import com.njcn.quality.service.IEleDiService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:17 + */ +@Slf4j +@RestController +@RequestMapping("/di") +@RequiredArgsConstructor +@Api(tags = "开入信号量数据管理") +public class EleDiController extends BaseController { + + private final IEleDiService eleDiService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增开入信号量数据") + @ApiImplicitParam(name = "eleDi", value = "开入信号量数据", required = true) + public HttpResult add(@RequestBody EleDi eleDi){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},开入信号量数据:{}", methodDescribe, eleDi); + boolean result = eleDiService.addDi(eleDi); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改开入信号量数据") + @ApiImplicitParam(name = "eleDi", value = "开入信号量数据", required = true) + public HttpResult update(@RequestBody EleDi eleDi){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},开入信号量数据:{}", methodDescribe, eleDi); + boolean result = eleDiService.updateDi(eleDi); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleDi eleDi = eleDiService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleDi, methodDescribe); + } + + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDictController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDictController.java new file mode 100644 index 000000000..20c2548c7 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDictController.java @@ -0,0 +1,124 @@ +package com.njcn.quality.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.DictParam; +import com.njcn.quality.pojo.po.EleDict; +import com.njcn.quality.service.IEleDictService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.Objects; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/24 10:59 + */ +@Slf4j +@RestController +@RequestMapping("/eleDict") +@RequiredArgsConstructor +@Api(tags = "字典数据管理") +public class EleDictController extends BaseController { + + + private final IEleDictService iEleDictService; + + /** + * 新增字典表 + * @author cdf + * @date 2022/3/22 + */ + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增字典表") + @ApiImplicitParam(name = "dictParam", value = "字典表数据", required = true) + public HttpResult add(@RequestBody DictParam dictParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},字典表数据数据为:{}", methodDescribe, dictParam); + iEleDictService.add(dictParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + /** + * 修改字典 + * @author cdf + * @date 2022/3/22 + */ + @PostMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改字典") + @ApiImplicitParam(name = "dictUpdateParam", value = "字典表数据", required = true) + public HttpResult update(@RequestBody DictParam.DictUpdateParam dictUpdateParam){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},字典表数据数据为:{}", methodDescribe, dictUpdateParam); + iEleDictService.update(dictUpdateParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + /** + * 删除字典 + * @author cdf + * @date 2022/3/22 + */ + @DeleteMapping("/delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("删除字典") + @ApiImplicitParam(name = "id", value = "字典表索引", required = true) + public HttpResult delete(@RequestParam("id") String id){ + String methodDescribe = getMethodDescribe("delete"); + iEleDictService.delete(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + /** + * 查询字典列表 + * @author cdf + * @date 2022/3/22 + */ + @PostMapping("/getList") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("查询字典列表") + public HttpResult> getList(@RequestBody DictParam.DictQueryParam dictQueryParam){ + String methodDescribe = getMethodDescribe("getList"); + Page res= iEleDictService.getList(dictQueryParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + + + /** + * 查询字典 + * @author cdf + * @date 2022/3/22 + */ + @PostMapping("/getById") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("查询字典") + public HttpResult getById(String id){ + String methodDescribe = getMethodDescribe("getById"); + EleDict res= iEleDictService.getById(id); + if(Objects.nonNull(res)){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDoController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDoController.java new file mode 100644 index 000000000..1dfbdab9d --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleDoController.java @@ -0,0 +1,69 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleDo; +import com.njcn.quality.service.IEleDoService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:28 + */ +@Slf4j +@RestController +@RequestMapping("/do") +@RequiredArgsConstructor +@Api(tags = "设备开出数据管理") +public class EleDoController extends BaseController { + + private final IEleDoService eleDoService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增设备开出数据") + @ApiImplicitParam(name = "eleDo", value = "设备开出数据", required = true) + public HttpResult add(@RequestBody EleDo eleDo){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},设备开出数据:{}", methodDescribe, eleDo); + boolean result = eleDoService.addDo(eleDo); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改设备开出数据") + @ApiImplicitParam(name = "eleDo", value = "设备开出数据", required = true) + public HttpResult update(@RequestBody EleDo eleDo){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},设备开出数据:{}", methodDescribe, eleDo); + boolean result = eleDoService.updateDo(eleDo); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleDo eleDo = eleDoService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleDo, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEpdPqdController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEpdPqdController.java new file mode 100644 index 000000000..3a8e85022 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEpdPqdController.java @@ -0,0 +1,87 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleEpdPqd; +import com.njcn.quality.service.IEleEpdPqdService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 10:02 + */ +@Slf4j +@RestController +@RequestMapping("/epd") +@RequiredArgsConstructor +@Api(tags = "电能质量数据管理") +public class EleEpdPqdController extends BaseController { + + private final IEleEpdPqdService eleEpdPqdService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增电能质量数据") + @ApiImplicitParam(name = "eleEpdPqd", value = "电能质量数据", required = true) + public HttpResult add(@RequestBody EleEpdPqd eleEpdPqd){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},电能质量数据为:{}", methodDescribe, eleEpdPqd); + boolean result = eleEpdPqdService.addEpd(eleEpdPqd); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改电能质量数据") + @ApiImplicitParam(name = "eleEpdPqd", value = "电能质量数据", required = true) + public HttpResult update(@RequestBody EleEpdPqd eleEpdPqd){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},电能质量数据为:{}", methodDescribe, eleEpdPqd); + boolean result = eleEpdPqdService.updateEpd(eleEpdPqd); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "名称", required = true), + @ApiImplicitParam(name = "phase", value = "相别", required = true) + }) + + public HttpResult findByName(@RequestParam String name,@RequestParam String phase){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleEpdPqd eleEpdPqd = eleEpdPqdService.findByName(name,phase); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleEpdPqd, methodDescribe); + } + + + @GetMapping("/getAllEpd") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取所有负荷指标") + public HttpResult> getAllEpd() { + String methodDescribe = getMethodDescribe("getAllEpd"); + List res = eleEpdPqdService.getAllEpd(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEvtController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEvtController.java new file mode 100644 index 000000000..a8d2c539f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEvtController.java @@ -0,0 +1,68 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleEvt; +import com.njcn.quality.service.IEleEvtService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 15:08 + */ +@Slf4j +@RestController +@RequestMapping("/evt") +@RequiredArgsConstructor +@Api(tags = "设备事件数据管理") +public class EleEvtController extends BaseController { + + private final IEleEvtService eleEvtService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增设备事件数据") + @ApiImplicitParam(name = "eleEvt", value = "设备事件数据", required = true) + public HttpResult add(@RequestBody EleEvt eleEvt){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},设备事件数据:{}", methodDescribe, eleEvt); + EleEvt result = eleEvtService.addEvt(eleEvt); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改设备事件数据") + @ApiImplicitParam(name = "eleEvt", value = "设备事件数据", required = true) + public HttpResult update(@RequestBody EleEvt eleEvt){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},设备事件数据:{}", methodDescribe, eleEvt); + boolean result = eleEvtService.updateEvt(eleEvt); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleEvt eleEvt = eleEvtService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleEvt, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEvtParamController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEvtParamController.java new file mode 100644 index 000000000..bc4ff71ac --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleEvtParamController.java @@ -0,0 +1,88 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleEvtParm; +import com.njcn.quality.service.IEleEvtParamService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 16:18 + */ +@Slf4j +@RestController +@RequestMapping("/evtParam") +@RequiredArgsConstructor +@Api(tags = "单个设备事件数据管理") +public class EleEvtParamController extends BaseController { + + private final IEleEvtParamService eleEvtParamService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增数据") + @ApiImplicitParam(name = "eleEvtParam", value = "数据", required = true) + public HttpResult add(@RequestBody EleEvtParm eleEvtParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},数据:{}", methodDescribe, eleEvtParam); + boolean result = eleEvtParamService.addEleEvtParam(eleEvtParam); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改数据") + @ApiImplicitParam(name = "eleEvtParam", value = "数据", required = true) + public HttpResult update(@RequestBody EleEvtParm eleEvtParam){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},数据:{}", methodDescribe, eleEvtParam); + boolean result = eleEvtParamService.updateEleEvtParam(eleEvtParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleEvtParm eleEvtParm = eleEvtParamService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleEvtParm, methodDescribe); + } + + @DeleteMapping("/deleteById") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据id删除数据") + @ApiImplicitParam(name = "id", value = "id", required = true) + public HttpResult deleteById(@RequestParam String id){ + String methodDescribe = getMethodDescribe("deleteById"); + LogUtil.njcnDebug(log, "{},id:{}", methodDescribe, id); + boolean result = eleEvtParamService.deleteById(id); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleIntegrityController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleIntegrityController.java new file mode 100644 index 000000000..5c3a52abf --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleIntegrityController.java @@ -0,0 +1,82 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.mapper.EleIntegrityMapper; +import com.njcn.quality.pojo.vo.EleIntegrityVO; +import com.njcn.quality.service.IEleIntegrityService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import javax.validation.constraints.Pattern; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/31 19:37 + */ +@Slf4j +@RestController +@RequestMapping("/integrity") +@RequiredArgsConstructor +@Api(tags = "完整性管理") +@Validated +public class EleIntegrityController extends BaseController { + + private final IEleIntegrityService eleIntegrityService; + + private final EleIntegrityMapper eleIntegrityMapper; + + @PostMapping("/getIntegrityTree") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("用能数据完整性树表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "startTime", value = "起始时间", required = true), + @ApiImplicitParam(name = "endTime", value = "结束时间", required = true) + }) + public HttpResult> getIntegrityTree(@RequestParam @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") String startTime, @RequestParam @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") String endTime){ + String methodDescribe = getMethodDescribe("getIntegrityTree"); + LogUtil.njcnDebug(log, "{},起始时间:{},结束时间:{}", methodDescribe, startTime, endTime); + List list = eleIntegrityService.getIntegrityTree(startTime,endTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @PostMapping("/getPowerLineId") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取在线用采监测点") + @ApiIgnore + public HttpResult> getPowerLineId(){ + String methodDescribe = getMethodDescribe("getPowerLineId"); + List list = eleIntegrityMapper.getPowerLineId(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + @PostMapping("/getAirLineId") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取在线空调监测点") + @ApiIgnore + public HttpResult> getAirLineId(){ + String methodDescribe = getMethodDescribe("getAirLineId"); + List list = eleIntegrityMapper.getAirLineId(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLineController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLineController.java new file mode 100644 index 000000000..1c4ae12de --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLineController.java @@ -0,0 +1,74 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.LineParam; +import com.njcn.quality.pojo.po.EleLine; +import com.njcn.quality.pojo.po.LogicDev; +import com.njcn.quality.service.IEleLineService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 14:28 + */ +@Slf4j +@RestController +@RequestMapping("/line") +@RequiredArgsConstructor +@Api(tags = "监测点管理") +public class EleLineController extends BaseController { + + private final IEleLineService lineService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增监测点信息") + @ApiImplicitParam(name = "lineParam", value = "监测点信息", required = true) + public HttpResult add(@RequestBody LineParam lineParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},监测点信息为:{}", methodDescribe, lineParam); + EleLine line = lineService.add(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @PostMapping("/delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除监测点信息") + @ApiImplicitParam(name = "list", value = "逻辑装置id集合", required = true) + public HttpResult delete(@RequestParam List list){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},逻辑装置id集合:{}", methodDescribe,list); + boolean result = lineService.deleteByList(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @GetMapping("/getAllLine") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取所有注册监测点") + public HttpResult> getAllLine(@RequestParam String netDevName){ + String methodDescribe = getMethodDescribe("getAllLine"); + List lineRes = lineService.getAllLine(netDevName); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, lineRes, methodDescribe); + } + + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLoadSetController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLoadSetController.java new file mode 100644 index 000000000..496c84aac --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLoadSetController.java @@ -0,0 +1,68 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.quality.param.EleParam; +import com.njcn.quality.pojo.vo.EleLoadSetTreeVO; +import com.njcn.quality.pojo.vo.EleLoadSetVO; +import com.njcn.quality.service.EleLoadSetService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 用能统计类型配置 + * + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:13 + */ +@Slf4j +@RestController +@RequestMapping("/loadset") +@RequiredArgsConstructor +@Api(tags = "用能负荷类型配置") +public class EleLoadSetController extends BaseController { + + private final EleLoadSetService eleLoadSetService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getEleLoadSetDetail") + @ApiOperation("用能负荷类型配置详情") + public HttpResult> getEleLoadSetDetail() { + String methodDescribe = getMethodDescribe("getEleLoadSetDetail"); + List list = eleLoadSetService.getEleLoadSetDetail(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getEleLoadSetTree") + @ApiOperation("用能负荷类型配置树") + @ApiImplicitParam(name = "eleLoadSetVO", value = "配置参数", required = true) + public HttpResult getEleLoadSetTree(@RequestBody @Validated EleLoadSetVO eleLoadSetVO) { + String methodDescribe = getMethodDescribe("getEleLoadSetTree"); + EleLoadSetTreeVO list = eleLoadSetService.getEleLoadTree(eleLoadSetVO); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + @PostMapping("/add") + @ApiOperation("用能负荷类型绑定监测点") + @ApiImplicitParam(name = "eleParam", value = "负荷类型配置参数", required = true) + public HttpResult add(@RequestBody @Validated EleParam eleParam) { + String methodDescribe = getMethodDescribe("add"); + Boolean list = eleLoadSetService.add(eleParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLogsController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLogsController.java new file mode 100644 index 000000000..06947080d --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleLogsController.java @@ -0,0 +1,25 @@ +package com.njcn.quality.controller; + +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/6 19:55 + */ +@Slf4j +@RestController +@RequestMapping("/logs") +@RequiredArgsConstructor +@Api(tags = "用能日志管理") +public class EleLogsController extends BaseController { + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleMdController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleMdController.java new file mode 100644 index 000000000..d9a4fdcbc --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleMdController.java @@ -0,0 +1,72 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleMd; +import com.njcn.quality.service.IEleMdService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 13:30 + */ +@Slf4j +@RestController +@RequestMapping("/md") +@RequiredArgsConstructor +@Api(tags = "基础测量数据管理") +public class EleMdController extends BaseController { + + private final IEleMdService eleMdService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增基础测量数据") + @ApiImplicitParam(name = "eleMd", value = "基础测量数据", required = true) + public HttpResult add(@RequestBody EleMd eleMd){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},电能质量数据为:{}", methodDescribe, eleMd); + boolean result = eleMdService.addMd(eleMd); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改基础测量数据") + @ApiImplicitParam(name = "eleMd", value = "基础测量数据", required = true) + public HttpResult update(@RequestBody EleMd eleMd){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},电能质量数据为:{}", methodDescribe, eleMd); + boolean result = eleMdService.updateMd(eleMd); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "名称", required = true), + @ApiImplicitParam(name = "phase", value = "相别", required = true) + }) + public HttpResult findByName(@RequestParam String name,@RequestParam String phase){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleMd eleMd = eleMdService.findByName(name,phase); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleMd, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleOnlineRateController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleOnlineRateController.java new file mode 100644 index 000000000..3b9c816e4 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleOnlineRateController.java @@ -0,0 +1,77 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.dto.OnlineRateDTO; +import com.njcn.quality.pojo.vo.EleIntegrityVO; +import com.njcn.quality.service.IEleInformationService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +import javax.validation.constraints.Pattern; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/20 14:57 + */ +@Slf4j +@RestController +@RequestMapping("/onlineRate") +@RequiredArgsConstructor +@Api(tags = "在线率管理") +@Validated +public class EleOnlineRateController extends BaseController { + + private final IEleInformationService eleInformationService; + + @PostMapping("/getDeviceTime") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("装置在线率数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "startTime", value = "起始时间", required = true), + @ApiImplicitParam(name = "endTime", value = "结束时间", required = true) + }) + @ApiIgnore + public HttpResult> getDeviceTime(@RequestParam @Pattern(regexp = PatternRegex.TIME_SECOND_FORMAT, message = "时间格式错误") String startTime, @RequestParam @Pattern(regexp = PatternRegex.TIME_SECOND_FORMAT, message = "时间格式错误") String endTime){ + String methodDescribe = getMethodDescribe("getDeviceTime"); + LogUtil.njcnDebug(log, "{},起始时间:{},结束时间:{}", methodDescribe, startTime, endTime); + List list = eleInformationService.getDeviceTime(startTime,endTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + @PostMapping("/getOnlineRateTree") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("用能终端在线率树表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "startTime", value = "起始时间", required = true), + @ApiImplicitParam(name = "endTime", value = "结束时间", required = true) + }) + public HttpResult> getOnlineRateTree(@RequestParam @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") String startTime, @RequestParam @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") String endTime){ + String methodDescribe = getMethodDescribe("getOnlineRateTree"); + LogUtil.njcnDebug(log, "{},起始时间:{},结束时间:{}", methodDescribe, startTime, endTime); + List list = eleInformationService.getOnlineRateTree(startTime,endTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleParmController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleParmController.java new file mode 100644 index 000000000..cce6c4a24 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleParmController.java @@ -0,0 +1,69 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleParm; +import com.njcn.quality.service.IEleParmService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:44 + */ +@Slf4j +@RestController +@RequestMapping("/parm") +@RequiredArgsConstructor +@Api(tags = "设备参数数据管理") +public class EleParmController extends BaseController { + + private final IEleParmService eleParmService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增设备参数数据") + @ApiImplicitParam(name = "eleParm", value = "设备参数数据", required = true) + public HttpResult add(@RequestBody EleParm eleParm){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},设备参数数据:{}", methodDescribe, eleParm); + boolean result = eleParmService.addParm(eleParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改设备参数数据") + @ApiImplicitParam(name = "eleParm", value = "设备参数数据", required = true) + public HttpResult update(@RequestBody EleParm eleParm){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},设备参数数据:{}", methodDescribe, eleParm); + boolean result = eleParmService.updateParm(eleParm); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleParm eleParm = eleParmService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleParm, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleRateSetController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleRateSetController.java new file mode 100644 index 000000000..e451f218a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleRateSetController.java @@ -0,0 +1,58 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.quality.pojo.po.EleRateSet; +import com.njcn.quality.pojo.vo.EleRateVO; +import com.njcn.quality.service.EleRateSetService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 费率统计配置 + * + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 19:34 + */ +@Slf4j +@RestController +@RequestMapping("/rate") +@RequiredArgsConstructor +@Api(tags = "电度费率配置") +public class EleRateSetController extends BaseController { + + private final EleRateSetService eleRateSetService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getEleRateDetail") + @ApiOperation("费率详情") + public HttpResult> getEleRateDetail() { + String methodDescribe = getMethodDescribe("getEleRateDetail"); + List list = eleRateSetService.getEleRateDetail(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.ADD) + @PostMapping("/add") + @ApiOperation("费率配置") + @ApiImplicitParam(name = "eleRateSet", value = "费率参数", required = true) + public HttpResult add(@RequestBody @Validated EleRateSet eleRateSet) { + String methodDescribe = getMethodDescribe("save"); + Boolean list = eleRateSetService.add(eleRateSet); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleStatisticalSetController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleStatisticalSetController.java new file mode 100644 index 000000000..e440724f5 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleStatisticalSetController.java @@ -0,0 +1,68 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.quality.param.EleParam; +import com.njcn.quality.pojo.vo.EleStatisticalTreeVO; +import com.njcn.quality.pojo.vo.EleStatisticalVO; +import com.njcn.quality.service.EleStatisticalSetService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 用能统计类型配置 + * + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:13 + */ +@Slf4j +@RestController +@RequestMapping("/statistical") +@RequiredArgsConstructor +@Api(tags = "用能统计类型配置") +public class EleStatisticalSetController extends BaseController { + + private final EleStatisticalSetService eleStatisticalSetService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getEleStatisticalDetail") + @ApiOperation("用能统计配置详情") + public HttpResult> getEleStatisticalDetail() { + String methodDescribe = getMethodDescribe("getEleStatisticalDetail"); + List list = eleStatisticalSetService.getEleStatisticalDetail(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getEleStatisticalTree") + @ApiOperation("用能统计配置树") + @ApiImplicitParam(name = "eleStatisticalVO", value = "配置参数", required = true) + public HttpResult getEleStatisticalTree(@RequestBody @Validated EleStatisticalVO eleStatisticalVO) { + String methodDescribe = getMethodDescribe("getEleStatisticalTree"); + EleStatisticalTreeVO list = eleStatisticalSetService.getEleStatisticalTree(eleStatisticalVO); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.ADD) + @PostMapping("/add") + @ApiOperation("用能统计绑定指标") + @ApiImplicitParam(name = "eleParam", value = "统计类型配置参数", required = true) + public HttpResult add(@RequestBody @Validated EleParam eleParam) { + String methodDescribe = getMethodDescribe("add"); + Boolean list = eleStatisticalSetService.add(eleParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleStsController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleStsController.java new file mode 100644 index 000000000..14df1b7c9 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleStsController.java @@ -0,0 +1,68 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleSts; +import com.njcn.quality.service.IEleStsService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:06 + */ +@Slf4j +@RestController +@RequestMapping("/sts") +@RequiredArgsConstructor +@Api(tags = "设备状态数据管理") +public class EleStsController extends BaseController { + + private final IEleStsService eleStsService; + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增电能质量数据") + @ApiImplicitParam(name = "eleSts", value = "电能质量数据", required = true) + public HttpResult add(@RequestBody EleSts eleSts){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},电能质量数据为:{}", methodDescribe, eleSts); + boolean result = eleStsService.addSts(eleSts); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @PutMapping("/update") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("修改电能质量数据") + @ApiImplicitParam(name = "eleSts", value = "电能质量数据", required = true) + public HttpResult update(@RequestBody EleSts eleSts){ + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},电能质量数据为:{}", methodDescribe, eleSts); + boolean result = eleStsService.updateSts(eleSts); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @GetMapping("/findByName") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据名称查找数据") + @ApiImplicitParam(name = "name", value = "名称", required = true) + public HttpResult findByName(@RequestParam String name){ + String methodDescribe = getMethodDescribe("findByName"); + LogUtil.njcnDebug(log, "{},名称为:{}", methodDescribe, name); + EleSts eleSts = eleStsService.findByName(name); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleSts, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleTopicController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleTopicController.java new file mode 100644 index 000000000..5e385fd31 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/EleTopicController.java @@ -0,0 +1,87 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.pojo.po.EleTopic; +import com.njcn.quality.service.IEleTopicService; +import com.njcn.web.controller.BaseController; +import com.sun.org.apache.xpath.internal.operations.Bool; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/22 19:00 + */ +@Slf4j +@RestController +@RequestMapping("/topic") +@RequiredArgsConstructor +@Api(tags = "网关主题管理") +public class EleTopicController extends BaseController { + + private final IEleTopicService topicService; + + /** + * 新增网关主题信息 + * @author xy + * @date 2022/3/22 19:02 + */ + @PostMapping("add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增网关主题") + @ApiImplicitParam(name = "eleTopic", value = "网关主题信息", required = true) + public HttpResult add(@RequestBody EleTopic eleTopic){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},网关主题信息:{}", methodDescribe, eleTopic); + boolean result = topicService.addTopic(eleTopic); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + /** + * 查询网关主题信息 + * @author xy + * @date 2022/3/22 19:02 + */ + @GetMapping("list") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.QUERY) + @ApiOperation("查询网关主题") + @ApiImplicitParam(name = "id", value = "网关id", required = true) + public HttpResult> list(@RequestParam String id){ + String methodDescribe = getMethodDescribe("list"); + LogUtil.njcnDebug(log, "{},网关id:{}", methodDescribe, id); + List list = topicService.list(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + /** + * 删除网关主题信息 + * @author xy + * @date 2022/3/22 19:02 + */ + @DeleteMapping("delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除网关主题") + @ApiImplicitParam(name = "id", value = "网关id", required = true) + public HttpResult delete(@RequestParam String id){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},网关id:{}", methodDescribe, id); + boolean result = topicService.delete(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/GroupArrayController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/GroupArrayController.java new file mode 100644 index 000000000..0ff336f21 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/GroupArrayController.java @@ -0,0 +1,64 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.service.IGroupArrayService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/16 11:12 + */ +@Slf4j +@RestController +@RequestMapping("/groupArray") +@RequiredArgsConstructor +@Api(tags = "数据组关系管理") +public class GroupArrayController extends BaseController { + + private final IGroupArrayService groupArrayService; + + @PutMapping("/groupArrayRelation") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("分配组和数据的关系") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "groupId", required = true), + @ApiImplicitParam(name = "arrayId", value = "arrayId", required = true) + }) + public HttpResult groupArrayRelation(@RequestParam String groupId, @RequestParam String arrayId){ + String methodDescribe = getMethodDescribe("groupArrayRelation"); + LogUtil.njcnDebug(log, "{},组id,数据id:{}", methodDescribe, groupId,arrayId); + groupArrayService.groupArrayRelation(groupId,arrayId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @DeleteMapping("/deleteGroupArray") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除组和数据关系") + @ApiImplicitParam(name = "list", value = "组集合", required = true) + public HttpResult deleteGroupArray(@RequestParam List list){ + String methodDescribe = getMethodDescribe("deleteGroupArray"); + LogUtil.njcnDebug(log, "{},组集合:{}", methodDescribe, list); + boolean result = groupArrayService.deleteGroupArray(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/HardwareController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/HardwareController.java new file mode 100644 index 000000000..da47b891d --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/HardwareController.java @@ -0,0 +1,71 @@ +package com.njcn.quality.controller; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 10:45 + */ + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.HardwareParam; +import com.njcn.quality.pojo.po.DevVersion; +import com.njcn.quality.pojo.po.Hardware; +import com.njcn.quality.service.IHardwareService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/2/28 10:55 + */ +@Slf4j +@RestController +@RequestMapping("/hardware") +@AllArgsConstructor +@Api(tags = "硬件管理") +public class HardwareController extends BaseController { + + private final IHardwareService hardwareService; + + @PostMapping("add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.ADD) + @ApiOperation("新增设备硬件信息") + @ApiImplicitParam(name = "hardwareParam", value = "设备硬件信息", required = true) + public HttpResult add(@RequestBody HardwareParam hardwareParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},设备硬件信息为:{}", methodDescribe, hardwareParam); + Hardware hardware = hardwareService.addHardware(hardwareParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @DeleteMapping("delete") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("删除设备硬件信息") + @ApiImplicitParam(name = "list", value = "list", required = true) + public HttpResult delete(@RequestParam List list){ + String methodDescribe = getMethodDescribe("delete"); + LogUtil.njcnDebug(log, "{},list:{}", methodDescribe, list); + boolean result = hardwareService.deleteHardware(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/HighAnalyticController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/HighAnalyticController.java new file mode 100644 index 000000000..36870a4ec --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/HighAnalyticController.java @@ -0,0 +1,188 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; + +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.param.ElectComparaParam; +import com.njcn.quality.param.LoadStatisticParam; +import com.njcn.quality.pojo.vo.ElectCompareVO; +import com.njcn.quality.pojo.vo.LoadStatisticVO; +import com.njcn.quality.pojo.vo.LoadTendencyVO; +import com.njcn.quality.service.HighAnalyticService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + + +/** + * pqs + * 高级分析 + * @author cdf + * @date 2022/4/14 + */ +@Slf4j +@RestController +@RequestMapping("/advance") +@AllArgsConstructor +@Api(tags = "高级分析") +public class HighAnalyticController extends BaseController { + + private final HighAnalyticService highAnalyticService; + + + /** + * 获取负荷趋势分析 + * @author cdf + * @date 2022/4/15 + */ + + @GetMapping("getLoadTendency") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取负荷趋势分析") + public HttpResult> getLoadTendency(@RequestParam("loadType")String loadType, @RequestParam("startTime")String startTime, @RequestParam("endTime")String endTime){ + String methodDescribe = getMethodDescribe("getLoadTendency"); + List res = highAnalyticService.getLoadTendency(loadType,startTime,endTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + /** + * 负荷占比 + * @author cdf + * @date 2022/4/19 + */ + @PostMapping("getLoadRate") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("负荷占比分析") + public HttpResult>> getLoadRate(@RequestParam("loadType")String loadType,@RequestParam("startTime")String startTime){ + String methodDescribe = getMethodDescribe("getLoadRate"); + List> res = highAnalyticService.getLoadRate(loadType,startTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + /** + * 获取负荷趋势分析 + * @author cdf + * @date 2022/4/15 + */ + + @GetMapping("getLoadDetail") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取负荷详情") + public HttpResult> getLoadDetail(@RequestParam("loadType")String loadType,@RequestParam("startTime")String startTime,@RequestParam("endTime")String endTime){ + String methodDescribe = getMethodDescribe("getLoadDetail"); + List res = highAnalyticService.getLoadDetail(loadType,startTime,endTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + + /** + * 负荷统计分析 + * @author cdf + * @date 2022/4/18 + */ + @PostMapping("getLoadStatistics") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("负荷统计分析") + public HttpResult> getLoadStatistics(@Validated @RequestBody LoadStatisticParam loadStatisticParam){ + String methodDescribe = getMethodDescribe("getLoadStatistics"); + if(loadStatisticParam.getLoadType().size() !=1){ + if(loadStatisticParam.getValType().size()!=1){ + throw new BusinessException(EnergyResponseEnum.LOAD_VAL_CONFLICT); + } + } + List res = highAnalyticService.getLoadStatistics(loadStatisticParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + + /** + * 电度趋势分析 + * @author cdf + * @date 2022/4/19 + */ + @GetMapping("getElectTendency") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取电度趋势分析") + @ApiImplicitParams({ + @ApiImplicitParam(name = "loadType", value = "指标类型id", required = true), + @ApiImplicitParam(name = "type", value = "0.增量 1.累计", required = true), + }) + public HttpResult> getElectTendency(@RequestParam("loadType")String loadType,@RequestParam("type")Integer type,@RequestParam("startTime")String startTime,@RequestParam("endTime")String endTime){ + String methodDescribe = getMethodDescribe("getElectTendency"); + List res = highAnalyticService.getElectTendency(loadType,type,startTime,endTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + + /** + * 电度对比分析 + * @author cdf + * @date 2022/4/19 + */ + @PostMapping("getElectCompare") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("电度对比分析") + public HttpResult> getElectCompare(@RequestBody ElectComparaParam electComparaParam){ + String methodDescribe = getMethodDescribe("getElectCompare"); + List res = highAnalyticService.getElectCompare(electComparaParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + /** + * 电度占比 + * @author cdf + * @date 2022/4/19 + */ + @PostMapping("getElectRate") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("电度占比") + public HttpResult>> getElectRate(@RequestBody ElectComparaParam electComparaParam){ + String methodDescribe = getMethodDescribe("getElectRate"); + List> res = highAnalyticService.getElectRate(electComparaParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + + /** + * 电度统计分析 + * @author cdf + * @date 2022/4/19 + */ + @PostMapping("getElectStatistic") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("电度统计分析") + public HttpResult> getElectStatistic(@Validated @RequestBody ElectComparaParam electComparaParam){ + String methodDescribe = getMethodDescribe("getElectStatistic"); + List res = highAnalyticService.getElectStatistic(electComparaParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } + + + /** + * 获取空调趋势 + * @author cdf + * @date 2022/4/18 + */ + @GetMapping("getAirTendency") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取空调趋势") + public HttpResult> getAirTendency(@RequestParam("startTime")String startTime,@RequestParam("endTime")String endTime){ + String methodDescribe = getMethodDescribe("getAirTendency"); + List res = highAnalyticService.getAirTendency(startTime,endTime); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/LogicAccess.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/LogicAccess.java new file mode 100644 index 000000000..f752eb739 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/LogicAccess.java @@ -0,0 +1,29 @@ +package com.njcn.quality.controller; + +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/23 21:54 + */ +@Slf4j +@RestController +@RequestMapping("/access") +@RequiredArgsConstructor +@Api(tags = "逻辑设备接入管理") +public class LogicAccess extends BaseController { + + + + + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/LogicDeviceLineController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/LogicDeviceLineController.java new file mode 100644 index 000000000..f80fead68 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/LogicDeviceLineController.java @@ -0,0 +1,294 @@ +package com.njcn.quality.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.DataHisParam; +import com.njcn.quality.param.DevCfgParam; +import com.njcn.quality.param.EnergyBaseParam; +import com.njcn.quality.param.GroupArrParam; +import com.njcn.quality.pojo.po.DataSet; +import com.njcn.quality.pojo.po.LogicDev; +import com.njcn.quality.pojo.vo.*; +import com.njcn.quality.service.ILogicDeviceLineService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * pqs + * 逻辑设备监测点控制器 + * + * @author cdf + * @date 2022/2/24 + */ +@Slf4j +@RestController +@RequestMapping("/logic") +@RequiredArgsConstructor +@Api(tags = "逻辑设备控制器") +public class LogicDeviceLineController extends BaseController { + + private final ILogicDeviceLineService iLogicDeviceLineService; + + /** + * 获取网关设备树 + * + * @author cdf + * @date 2022/3/1 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getEnergyTree") + @ApiOperation("获取网关设备树") + public HttpResult> getEnergyTree() { + String methodDescribe = getMethodDescribe("getEnergyTree"); + List list = iLogicDeviceLineService.getEnergyTree(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + /** + * 获取设备详情 + * + * @author cdf + * @date 2022/3/2 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getEnergyDevInfoById") + @ApiOperation("获取设备详情") + @ApiImplicitParam(name = "id", value = "设备的id", required = true) + public HttpResult getEnergyDevInfoById(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("getEnergyDevInfoById"); + LogicDeviceLineInfoVO logicDeviceLineInfoVO = iLogicDeviceLineService.getEnergyDevInfoById(id); + if (Objects.nonNull(logicDeviceLineInfoVO)) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, logicDeviceLineInfoVO, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + /** + * 通过监测点id获取展示模板 + * + * @author cdf + * @date 2022/3/2 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getEnergyTemplateById") + @ApiOperation("获取设备实时数据模板详情") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "设备的id", required = true), + @ApiImplicitParam(name = "pageNum", value = "页码", required = true), + @ApiImplicitParam(name = "pageSize", value = "页面尺寸", required = true) + }) + public HttpResult> getEnergyTemplateById(@RequestParam("id") String id, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) { + String methodDescribe = getMethodDescribe("getEnergyTemplateById"); + IPage page = iLogicDeviceLineService.getEnergyTemplateById(id, pageNum, pageSize); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } + + + /** + * 通过监测点id获取展示分组模板 + * + * @author cdf + * @date 2022/3/2 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getRealGroupTemplateById") + @ApiOperation("获取设备实时数据模板详情") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "设备的id", required = true), + @ApiImplicitParam(name = "pageNum", value = "页码", required = true), + @ApiImplicitParam(name = "pageSize", value = "页面尺寸", required = true) + }) + public HttpResult> getRealGroupTemplateById(@RequestParam("id") String id, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) { + String methodDescribe = getMethodDescribe("getRealGroupTemplateById"); + IPage page = iLogicDeviceLineService.getRealGroupTemplateById(id, pageNum, pageSize); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } + + /** + * 通过监测点id获取展示模板 + * + * @author cdf + * @date 2022/3/2 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/getHistoryTemplateById") + @ApiOperation("获取历史设备数据模板详情") + @ApiImplicitParam(name = "energyBaseParam",required = true) + public HttpResult> getHistoryTemplateById(@RequestBody EnergyBaseParam energyBaseParam) { + String methodDescribe = getMethodDescribe("getHistoryTemplateById"); + IPage page = iLogicDeviceLineService.getHistoryTemplateById(energyBaseParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } + + /** + * 通过监测点id获取展示模板统计数据 + * + * @author cdf + * @date 2022/3/2 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getStatisTemplateById") + @ApiOperation("获取监测点统计数据模板和数据详情") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "tab选项id", required = true), + @ApiImplicitParam(name = "pageNum", value = "页码", required = true), + @ApiImplicitParam(name = "pageSize", value = "页面尺寸", required = true), + @ApiImplicitParam(name = "lineId", value = "监测点id", required = true) + }) + public HttpResult> getStatisTemplateById(@RequestParam("id") String id, @RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize,@RequestParam(value = "lineId")String lineId) { + + String methodDescribe = getMethodDescribe("getStatisTemplateById"); + IPage page = iLogicDeviceLineService.getStatisTemplateById(id, pageNum, pageSize,lineId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, page, methodDescribe); + } + + + /** + * 通过监测点id获取展示模板 + * + * @author cdf + * @date 2022/3/2 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getTabTemplateById") + @ApiOperation("获取设备数据模板详情") + @ApiImplicitParam(name = "id", value = "设备的id", required = true) + public HttpResult> getTabTemplateById(@RequestParam("id") String id) { + String methodDescribe = getMethodDescribe("getTabTemplateById"); + List list = iLogicDeviceLineService.getTabTemplateById(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + /** + * 获取当前数据集的分组情况 + * + * @author cdf + * @date 2022/3/16 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getGroupDetailList") + @ApiOperation("获取当前数据集的分组情况") + @ApiImplicitParam(name = "id", value = "数据集id", required = true) + public HttpResult> getGroupDetailList(@RequestParam("id") String setId) { + String methodDescribe = getMethodDescribe("getGroupDetailList"); + List list = iLogicDeviceLineService.getGroupDetailList(setId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + /** + * 重新分组 + * @author cdf + * @date 2022/3/16 + */ + @PostMapping("/addGroupArr") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增重新分组") + @ApiImplicitParam(name = "groupArrParam", value = "重新分组信息", required = true) + public HttpResult addGroupArr(@RequestBody GroupArrParam groupArrParam) { + String methodDescribe = getMethodDescribe("addGroupArr"); + LogUtil.njcnDebug(log, "{},分组信息为:{}", methodDescribe, groupArrParam); + boolean res =iLogicDeviceLineService.addGroupArr(groupArrParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + /** + * 获取解析模板 + * @author cdf + * @date 2022/3/18 + */ + @GetMapping("/getParseTemplate") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取解析模板") + @ApiImplicitParam(name = "setId", value = "数据集id", required = true) + public HttpResult> getParseTemplate(@RequestParam("setId") String setId){ + String methodDescribe = getMethodDescribe("getParseTemplate"); + List list = iLogicDeviceLineService.getParseTemplate(setId); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + @PostMapping("/add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.ADD) + @ApiOperation("新增逻辑设备") + @ApiImplicitParam(name = "devCfgParam", value = "逻辑设备信息", required = true) + public HttpResult add(@RequestBody DevCfgParam devCfgParam) { + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},逻辑设备信息为:{}", methodDescribe, devCfgParam); + LogicDev logicDev = iLogicDeviceLineService.add(devCfgParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @GetMapping("/getLogicDevByDid") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("查询逻辑设备") + @ApiImplicitParam(name = "did", value = "设备的did", required = true) + public HttpResult getLogicDevByDid(@RequestParam String did){ + String methodDescribe = getMethodDescribe("getLogicDevByDid"); + LogUtil.njcnDebug(log, "{},设备的did:{}", methodDescribe, did); + LogicDev logicDev = iLogicDeviceLineService.getLogicDev(did); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, logicDev, methodDescribe); + } + + @GetMapping("/getLogicDevByList") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据网关查询逻辑设备") + @ApiImplicitParam(name = "list", value = "网关集合", required = true) + public HttpResult> getLogicDevByPid(@RequestParam List list){ + String methodDescribe = getMethodDescribe("getLogicDevByList"); + LogUtil.njcnDebug(log, "{},网关集合:{}", methodDescribe, list); + List result = iLogicDeviceLineService.getLogicDevByPid(list); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + @DeleteMapping("/deleteByVersionId") + @OperateInfo(info = LogEnum.SYSTEM_COMMON,operateType = OperateType.DELETE) + @ApiOperation("根据版本id删除逻辑设备") + @ApiImplicitParam(name = "id", value = "逻辑设备版本id", required = true) + public HttpResult deleteByVersionId(@RequestParam String id){ + String methodDescribe = getMethodDescribe("deleteByVersionId"); + LogUtil.njcnDebug(log, "{},设备的did:{}", methodDescribe, id); + boolean result = iLogicDeviceLineService.deleteByVersionId(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + @GetMapping("/getLogicDevByVersionId") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("根据版本id查询逻辑设备") + @ApiImplicitParam(name = "id", value = "逻辑设备版本id", required = true) + public HttpResult> getLogicDevByVersionId(@RequestParam String id){ + String methodDescribe = getMethodDescribe("getLogicDevByVersionId"); + LogUtil.njcnDebug(log, "{},设备的did:{}", methodDescribe, id); + List list = iLogicDeviceLineService.getLogicDevByVersionId(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + @PostMapping("/getHisData") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("获取历史数据") + @ApiImplicitParam(name = "dataHisParam", value = "参数", required = true) + public HttpResult> getHisData(@RequestBody DataHisParam dataHisParam){ + String methodDescribe = getMethodDescribe("getHisData"); + List list = iLogicDeviceLineService.getHisData(dataHisParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/ModelController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/ModelController.java new file mode 100644 index 000000000..c5829ecbb --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/ModelController.java @@ -0,0 +1,70 @@ +package com.njcn.quality.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.service.IModelService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/2/28 10:55 + */ +@Slf4j +@RestController +@RequestMapping("/interact") +@AllArgsConstructor +@Api(tags = "交互功能管理") +public class ModelController extends BaseController { + + private final IModelService modelService; + + @PostMapping("/deviceRegister") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("联网装置注册请求") + @ApiImplicitParam(name = "json", value = "mqtt数据", required = true) + public HttpResult deviceRegister(String json){ + String methodDescribe = getMethodDescribe("deviceRegister"); + LogUtil.njcnDebug(log, "{},mqtt数据:{}", methodDescribe, json); + String result = modelService.deviceRegister(json); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + +// @PostMapping("/deviceAccess") +// @OperateInfo(info = LogEnum.SYSTEM_COMMON) +// @ApiOperation("设备接入") +// @ApiImplicitParam(name = "json", value = "mqtt数据", required = true) +// public HttpResult deviceAccess(String json){ +// String methodDescribe = getMethodDescribe("deviceAccess"); +// LogUtil.njcnDebug(log, "{},mqtt数据:{}", methodDescribe, json); +// String result = modelService.deviceAccess(json); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); +// } + + @PostMapping("/deviceData") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("设备数据(模板)") + @ApiImplicitParam(name = "json", value = "mqtt数据", required = true) + public HttpResult deviceData(String json){ + String methodDescribe = getMethodDescribe("deviceData"); + LogUtil.njcnDebug(log, "{},mqtt数据:{}", methodDescribe, json); + String result = modelService.deviceData(json); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/NetDevController.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/NetDevController.java new file mode 100644 index 000000000..55dce4040 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/controller/NetDevController.java @@ -0,0 +1,141 @@ +package com.njcn.quality.controller; + + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.common.utils.LogUtil; +import com.njcn.quality.param.NetDevParam; +import com.njcn.quality.pojo.po.NetDev; +import com.njcn.quality.pojo.vo.NetDevInfoVO; +import com.njcn.quality.service.INetDevService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import com.njcn.web.controller.BaseController; + +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cdf + * @since 2022-02-22 + */ +@Slf4j +@RestController +@RequestMapping("/netDev") +@RequiredArgsConstructor +@Api(tags = "网关控制器") +public class NetDevController extends BaseController { + + private final INetDevService netDevService; + + /** + * 新增网关 + * @author cdf + * @date 2022/2/22 + */ + @PostMapping("add") + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @ApiOperation("新增网关设备") + @ApiImplicitParam(name = "netDevParam", value = "网关设备", required = true) + public HttpResult add(@RequestBody NetDevParam netDevParam){ + String methodDescribe = getMethodDescribe("add"); + LogUtil.njcnDebug(log, "{},网关设备数据为:{}", methodDescribe, netDevParam); + boolean result = netDevService.addNetDev(netDevParam); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } + + + + /** + * 分页查询网关设备数据 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/list") + @ApiOperation("查询网关设备") + @ApiImplicitParam(name = "queryParam", value = "查询参数", required = true) + public HttpResult> list(@RequestBody @Validated NetDevParam.NetDevQueryParam queryParam) { + String methodDescribe = getMethodDescribe("list"); + LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, queryParam); + Page result = netDevService.listNetDev(queryParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + + + /** + * 修改网关设备数据 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.UPDATE) + @PostMapping("/update") + @ApiOperation("修改网关设备") + @ApiImplicitParam(name = "updateParam", value = "网关设备数据", required = true) + public HttpResult update(@RequestBody @Validated NetDevParam.NetDevUpdateParam updateParam) { + String methodDescribe = getMethodDescribe("update"); + LogUtil.njcnDebug(log, "{},网关设备数据为:{}", methodDescribe, updateParam); + boolean result = netDevService.updateNetDev(updateParam); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } + + /** + * 删除网关设备 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON, operateType = OperateType.DELETE) + @PostMapping("/delete") + @ApiOperation("删除网关设备") + @ApiImplicitParam(name = "ids", value = "网关设备索引", required = true) + public HttpResult delete(@RequestBody List ids) { + String methodDescribe = getMethodDescribe("delete"); + boolean result = netDevService.deleteNetDev(ids); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + + /** + * 查询网关详细信息 + * @author cdf + * @date 2022/3/28 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @GetMapping("/getNetDevInfo") + @ApiOperation("查询网关设备") + @ApiImplicitParam(name = "id", value = "查询参数", required = true) + public HttpResult getNetDevInfo(@RequestParam("id")String id) { + String methodDescribe = getMethodDescribe("getNetDevInfo"); + NetDevInfoVO netDevInfo = netDevService.getNetDevInfo(id); + if(Objects.nonNull(netDevInfo)){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, netDevInfo, methodDescribe); + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + +} + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/handler/MqttMessageHandler.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/handler/MqttMessageHandler.java new file mode 100644 index 000000000..4fa7a924d --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/handler/MqttMessageHandler.java @@ -0,0 +1,182 @@ +package com.njcn.quality.handler; + +import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.github.tocrhz.mqtt.annotation.MqttSubscribe; +import com.github.tocrhz.mqtt.annotation.NamedValue; +import com.github.tocrhz.mqtt.annotation.Payload; +import com.github.tocrhz.mqtt.publisher.MqttPublisher; +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.pojo.constant.ApiParam; +import com.njcn.quality.pojo.dto.DeviceOperateDTO; +import com.njcn.quality.pojo.dto.RegisterDTO; +import com.njcn.quality.pojo.po.EleLogs; +import com.njcn.quality.service.IEleLogsService; +import com.njcn.quality.service.IModelService; +import com.njcn.redis.utils.RedisUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.eclipse.paho.client.mqttv3.MqttMessage; +import org.springframework.stereotype.Component; + +import java.nio.charset.StandardCharsets; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.Objects; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2022年03月23日 09:41 + */ +@Slf4j +@Component +@AllArgsConstructor +public class MqttMessageHandler { + + private final MqttPublisher publisher; + + private final IModelService modelService; + + private final RedisUtil redisUtil; + + private final IEleLogsService eleLogsService; + + /** + * 设备注册 + */ + @MqttSubscribe(value = "/device/register",qos = 1) + public void register(String topic, MqttMessage message, @Payload String payload) { + String result = modelService.deviceRegister(new String(message.getPayload(), StandardCharsets.UTF_8)); + publisher.send("/platform/register",result,1,false); + EleLogs eleLogs = new EleLogs(); + eleLogs.setType(1); + //设备取消注册,需要通知平台 + Gson gson = new Gson(); + RegisterDTO.RegisterRequest registerDTO = gson.fromJson(new String(message.getPayload(), StandardCharsets.UTF_8), RegisterDTO.RegisterRequest.class); + RegisterDTO.RegisterResponse response = gson.fromJson(result, RegisterDTO.RegisterResponse.class); + if (registerDTO.getParam().getType() == 0){ + eleLogs.setType(0); + if (response.getCode() == 200 && response.getParam().getRes() == 1){ + DeviceOperateDTO deviceOperateDTO = new DeviceOperateDTO(); + deviceOperateDTO.setNdid(registerDTO.getParam().getNDid()); + deviceOperateDTO.setDid(response.getParam().getDid()); + deviceOperateDTO.setTime(Long.toString(System.currentTimeMillis()/1000)); + deviceOperateDTO.setMessage("装置取消注册"); + deviceOperateDTO.setType("003"); + publisher.send("/device/platform",gson.toJson(deviceOperateDTO),1,false); + } + } + //将日志存库 + eleLogs.setNdid(registerDTO.getParam().getNDid()); + eleLogs.setReqTime(LocalDateTime.ofEpochSecond(Long.parseLong(registerDTO.getTimestamp()), 0, ZoneOffset.ofHours(8))); + eleLogs.setInfo(response.getMsg()); + eleLogs.setCreateTime(LocalDateTime.now()); + eleLogsService.addLogs(eleLogs); + } + + /** + * 设备接入 + */ + @MqttSubscribe(value = "/device/pltreq/{version}/{edgeId}",qos = 1) + public void access(String topic, MqttMessage message, @NamedValue("edgeId") String edgeId,@NamedValue("version") String version, @Payload String payload) throws InterruptedException { + String result = modelService.deviceAccess(new String(message.getPayload(), StandardCharsets.UTF_8),edgeId); + Gson gson = new Gson(); + RegisterDTO.RegisterRequest registerDTO = gson.fromJson(new String(message.getPayload(), StandardCharsets.UTF_8), RegisterDTO.RegisterRequest.class); + RegisterDTO.RegisterResponse response = gson.fromJson(result, RegisterDTO.RegisterResponse.class); + //设备接入成功,需要通知平台 + if (response.getCode() == 200 && Objects.equals(response.getType(), ApiParam.REP_LINKUP)){ + DeviceOperateDTO deviceOperateDTO = new DeviceOperateDTO(); + deviceOperateDTO.setNdid(edgeId); + deviceOperateDTO.setDid(registerDTO.getParam().getDid()); + deviceOperateDTO.setTime(Long.toString(System.currentTimeMillis()/1000)); + deviceOperateDTO.setMessage("装置上线"); + deviceOperateDTO.setType("004"); + publisher.send("/device/platform",gson.toJson(deviceOperateDTO),1,false); + deviceOperateDTO.setMessage("主题更新"); + deviceOperateDTO.setType("002"); + publisher.send("/device/operate",gson.toJson(deviceOperateDTO),1,false); + } + //有装置异常需要主动下线,需要通知平台 + if (response.getCode() == 300 && Objects.equals(response.getType(), ApiParam.REP_HEARTBEAT)){ + DeviceOperateDTO deviceOperateDTO = new DeviceOperateDTO(); + deviceOperateDTO.setNdid(edgeId); + deviceOperateDTO.setDid(registerDTO.getParam().getDid()); + deviceOperateDTO.setTime(Long.toString(System.currentTimeMillis()/1000)); + deviceOperateDTO.setMessage("装置下线"); + deviceOperateDTO.setType("005"); + publisher.send("/device/platform",gson.toJson(deviceOperateDTO),1,false); + response.setCode(Integer.parseInt(EnergyResponseEnum.SUCCESS.getCode())); + result = gson.toJson(response); + } + /** + * 如果心跳超过3分钟,下线当前网关所有装置,需要通知平台,记录数据库掉线时间 + * 使用redis的过期时间做处理 + */ + redisUtil.saveByKeyWithExpire("MQTT:" + edgeId,registerDTO.getTimestamp(),180L); + redisUtil.saveByKeyWithExpire(edgeId,registerDTO.getTimestamp(),200L); + //将日志存库 + if (!Objects.equals(response.getType(), ApiParam.REP_HEARTBEAT)){ + EleLogs eleLogs = new EleLogs(); + eleLogs.setType(2); + eleLogs.setNdid(edgeId); + eleLogs.setReqTime(LocalDateTime.ofEpochSecond(Long.parseLong(registerDTO.getTimestamp()), 0, ZoneOffset.ofHours(8))); + eleLogs.setInfo(response.getMsg()); + eleLogs.setCreateTime(LocalDateTime.now()); + eleLogsService.addLogs(eleLogs); + } + //回复装置信息 + publisher.send("/device/pltrep/"+version+"/" + edgeId,result,1,false); + +// //询问模板数据 暂时线下传递模板数据 +// Gson gson = new Gson(); +// AccessDTO.AccessResponse response = gson.fromJson(result,AccessDTO.AccessResponse.class); +// if (response.getCode() == Integer.parseInt(EnergyResponseEnum.NO_MODEL_FIND.getCode())){ +// AskDataDTO.AskDataRequest askDataDTO = new AskDataDTO.AskDataRequest(); +// askDataDTO.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); +// askDataDTO.setLevel(0); +// askDataDTO.setType(ApiParam.CMD_DEV_DATA); +// AskDataParamDTO askDataParamDTO = new AskDataParamDTO(); +// askDataParamDTO.setDataType(DataType.TEMPLATE); +// askDataParamDTO.setOperate(ModelState.READ); +// askDataParamDTO.setStartTime(Long.toString(System.currentTimeMillis()/1000)); +// askDataDTO.setParam(askDataParamDTO); +// publisher.send("/platform/command/v1/" + edgeId,gson.toJson(askDataDTO),1,false); +// } + } + + + /** + * 获取模板信息 + */ + @MqttSubscribe(value = "/platform/reply/{version}/{edgeId}",qos = 1) + public void replyTemplate(String topic, MqttMessage message, @NamedValue("edgeId") String edgeId, @Payload String payload) { + String result = modelService.deviceData(new String(message.getPayload(), StandardCharsets.UTF_8)); + //模板发生变更通知其他云服务 + Gson gson = new Gson(); + RegisterDTO.RegisterResponse response = gson.fromJson(result, RegisterDTO.RegisterResponse.class); + if (Objects.equals(response.getCode(),200)){ + DeviceOperateDTO deviceOperateDTO = new DeviceOperateDTO(); + deviceOperateDTO.setTime(Long.toString(System.currentTimeMillis())); + deviceOperateDTO.setMessage("模板更新"); + deviceOperateDTO.setType("001"); + publisher.send("/device/operate",gson.toJson(deviceOperateDTO),1,false); + } + } + + /** + * 获取网关订阅的主题 + */ + @MqttSubscribe(value = "/device/topic/{edgeId}",qos = 1) + public void subscribeTopic(String topic, MqttMessage message, @NamedValue("edgeId") String edgeId, @Payload String payload) { + modelService.subscribeTopic(new String(message.getPayload(), StandardCharsets.UTF_8),edgeId); + } + + + @MqttSubscribe(value = "/platform/devack/#",qos = 1) + public void airOperation(String topic, MqttMessage message, @Payload String payload){ + System.out.println(message.toString()); + + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/listener/RedisKeyExpirationListener.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/listener/RedisKeyExpirationListener.java new file mode 100644 index 000000000..ad50140ad --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/listener/RedisKeyExpirationListener.java @@ -0,0 +1,76 @@ +package com.njcn.quality.listener; + +import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.github.tocrhz.mqtt.publisher.MqttPublisher; +import com.njcn.quality.pojo.dto.DeviceOperateDTO; +import com.njcn.quality.service.IModelService; +import com.njcn.quality.service.INetDevService; +import com.njcn.redis.utils.RedisUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.data.redis.connection.Message; +import org.springframework.data.redis.listener.KeyExpirationEventMessageListener; +import org.springframework.data.redis.listener.RedisMessageListenerContainer; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author hongawen + * @version 1.0.0 + * @date 2022年04月02日 14:31 + */ +@Slf4j +@Component +public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener { + + @Resource + private RedisUtil redisUtil; + + @Resource + private IModelService modelService; + + @Resource + private MqttPublisher publisher; + + @Resource + private INetDevService netDevService; + + public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) { + super(listenerContainer); + } + + + /** + * 针对redis数据失效事件,进行数据处理 + * 注意message.toString()可以获取失效的key + */ + @Override + @Transactional(rollbackFor = {Exception.class}) + public void onMessage(Message message, byte[] pattern) { + if (StringUtils.isBlank(message.toString())) { + return; + } + //判断失效的key是否为MQTT消费端存入的 + String expiredKey = message.toString(); + if(expiredKey.startsWith("MQTT:")){ + Gson gson = new Gson(); + String ndid = expiredKey.split(":")[1]; + //网关下线 + netDevService.offlineNetDev(ndid); + String result = (String) redisUtil.getObjectByKey(ndid); + //装置下线 + List list = modelService.monitorHeartbeat(ndid,result); + //生成通知报文 + DeviceOperateDTO deviceOperateDTO = new DeviceOperateDTO(); + deviceOperateDTO.setNdid(ndid); + deviceOperateDTO.setDid(list); + deviceOperateDTO.setTime(Long.toString(System.currentTimeMillis()/1000)); + deviceOperateDTO.setMessage("装置下线"); + deviceOperateDTO.setType("005"); + publisher.send("/device/platform",gson.toJson(deviceOperateDTO),1,false); + } + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/AirSetMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/AirSetMapper.java new file mode 100644 index 000000000..884e01768 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/AirSetMapper.java @@ -0,0 +1,13 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.AirSet; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +public interface AirSetMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/AirStrategyMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/AirStrategyMapper.java new file mode 100644 index 000000000..7645d4c14 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/AirStrategyMapper.java @@ -0,0 +1,13 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.AirStrategy; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +public interface AirStrategyMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataArrayMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataArrayMapper.java new file mode 100644 index 000000000..8904b4022 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataArrayMapper.java @@ -0,0 +1,17 @@ +package com.njcn.quality.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.DataArray; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2022-03-03 + */ +public interface DataArrayMapper extends BaseMapper { + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataGroupMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataGroupMapper.java new file mode 100644 index 000000000..68524e621 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataGroupMapper.java @@ -0,0 +1,28 @@ +package com.njcn.quality.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.quality.pojo.po.DataGroup; +import com.njcn.quality.pojo.vo.DataGroupTemplateVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2022-03-03 + */ +public interface DataGroupMapper extends BaseMapper { + + + Page getGroupDataList(IPage page, @Param("id") String id); + + List getGroupList(@Param("id") String id); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataMouldMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataMouldMapper.java new file mode 100644 index 000000000..a4ad4f990 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataMouldMapper.java @@ -0,0 +1,17 @@ +package com.njcn.quality.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.DataMould; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2022-03-03 + */ +public interface DataMouldMapper extends BaseMapper { + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataSetMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataSetMapper.java new file mode 100644 index 000000000..5e0b879ff --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DataSetMapper.java @@ -0,0 +1,17 @@ +package com.njcn.quality.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.DataSet; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2022-03-03 + */ +public interface DataSetMapper extends BaseMapper { + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DevVersionMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DevVersionMapper.java new file mode 100644 index 000000000..cc0761962 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/DevVersionMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.DevVersion; + +public interface DevVersionMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleActrlMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleActrlMapper.java new file mode 100644 index 000000000..9a9cdc9db --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleActrlMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleActrl; + +public interface EleActrlMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleAlmMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleAlmMapper.java new file mode 100644 index 000000000..758c590cc --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleAlmMapper.java @@ -0,0 +1,10 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleALM; + +/** + * @author 徐扬 + */ +public interface EleAlmMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleBindMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleBindMapper.java new file mode 100644 index 000000000..33754aa9a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleBindMapper.java @@ -0,0 +1,24 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.DataArray; +import com.njcn.quality.pojo.po.EleBind; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/3/30 + */ +public interface EleBindMapper extends BaseMapper { + + /** + * 通过监测点获取监测点详细数据 + * @author cdf + * @date 2022/3/30 + */ + List getArrByLineId(@Param("lineId") String lineId, @Param("phase")String phase); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleCtrlMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleCtrlMapper.java new file mode 100644 index 000000000..f05592459 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleCtrlMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleCtrl; + +public interface EleCtrlMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDiMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDiMapper.java new file mode 100644 index 000000000..e88848562 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDiMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleDi; + +public interface EleDiMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDictMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDictMapper.java new file mode 100644 index 000000000..147931f55 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDictMapper.java @@ -0,0 +1,10 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleDict; + +/** + * @author 徐扬 + */ +public interface EleDictMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDoMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDoMapper.java new file mode 100644 index 000000000..9b909c8bd --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleDoMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleDo; + +public interface EleDoMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEpdMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEpdMapper.java new file mode 100644 index 000000000..16726021f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEpdMapper.java @@ -0,0 +1,24 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleEpdPqd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface EleEpdMapper extends BaseMapper { + + /** + * 查询所有数据 + * @param conId 指标id + * @return 结果 + */ + List getEleEpdPqdNoList(@Param("conId")String conId); + + /** + * 查询所有数据 + * @param conId 指标id + * @return 结果 + */ + List getEleEpdPqdList(@Param("conId")String conId); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEvtMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEvtMapper.java new file mode 100644 index 000000000..9785d16d6 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEvtMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleEvt; + +public interface EleEvtMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEvtParamMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEvtParamMapper.java new file mode 100644 index 000000000..e0927edb0 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleEvtParamMapper.java @@ -0,0 +1,15 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleEvtParm; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 16:20 + */ + +public interface EleEvtParamMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleInformationMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleInformationMapper.java new file mode 100644 index 000000000..d650c7139 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleInformationMapper.java @@ -0,0 +1,10 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleInformation; + +/** + * @author 徐扬 + */ +public interface EleInformationMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleIntegrityMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleIntegrityMapper.java new file mode 100644 index 000000000..aa724757b --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleIntegrityMapper.java @@ -0,0 +1,17 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleIntegrity; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface EleIntegrityMapper extends BaseMapper { + + List getPowerLineId(); + + List getAirLineId(); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLineMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLineMapper.java new file mode 100644 index 000000000..6bc6d174f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLineMapper.java @@ -0,0 +1,19 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleLine; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface EleLineMapper extends BaseMapper { + + /** + * 通过网关名称获取网关下的监测点信息 + * @author cdf + * @date 2022/3/29 + */ + List getAllLine(String netDevString); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLoadSetMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLoadSetMapper.java new file mode 100644 index 000000000..a080bc868 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLoadSetMapper.java @@ -0,0 +1,37 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleLoadSet; +import com.njcn.quality.pojo.vo.EleLoadSetVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月15日 14:34 + */ +public interface EleLoadSetMapper extends BaseMapper { + + /** + * 字典类型 + * @param typeName 名称 + * @return 结果 + */ + List getEleLoadSetDetail(@Param("typeName")String typeName); + + /** + * 获取所有负荷关联监测点信息 + * @author cdf + * @date 2022/4/20 + */ + List getAllLineListRelation(@Param("dicId")String dicId); + + /** + * 根据字典id获取绑定的监测点 + * @author cdf + * @date 2022/4/26 + */ + List getAllLineListRelationIds(@Param("list")List list); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLogsMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLogsMapper.java new file mode 100644 index 000000000..01e09ed87 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleLogsMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleLogs; + +public interface EleLogsMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleMdMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleMdMapper.java new file mode 100644 index 000000000..9809b29bd --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleMdMapper.java @@ -0,0 +1,23 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleMd; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface EleMdMapper extends BaseMapper { + /** + * 查询所有数据 + * @param conId 指标id + * @return 结果 + */ + List getEleMdNoList(@Param("conId")String conId); + + /** + * 查询所有数据 + * @param conId 指标id + * @return 结果 + */ + List getEleMdList(@Param("conId")String conId); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleParmMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleParmMapper.java new file mode 100644 index 000000000..dc8386145 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleParmMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleParm; + +public interface EleParmMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleRateSetMappser.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleRateSetMappser.java new file mode 100644 index 000000000..443683ee9 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleRateSetMappser.java @@ -0,0 +1,32 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleRateSet; +import com.njcn.quality.pojo.vo.EleRateVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 19:55 + */ +public interface EleRateSetMappser extends BaseMapper { + /** + * 获取费率配置 + * @param typeName 字典类型 + * @return 结果 + */ + List getEleRateDetail(@Param("typeName")String typeName); + + + /** + * 获取费率详情 + * @author cdf + * @date 2022/4/19 + */ + List getEleRateById(@Param("id")String id); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleStatisticalSetMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleStatisticalSetMapper.java new file mode 100644 index 000000000..5b046ffd1 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleStatisticalSetMapper.java @@ -0,0 +1,24 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.mapper.Mapper; +import com.njcn.quality.pojo.po.EleStatisticalSet; +import com.njcn.quality.pojo.vo.EleStatisticalVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:16 + */ +public interface EleStatisticalSetMapper extends BaseMapper { + + /** + * 字典类型 + * @param typeName 名称 + * @return 结果 + */ + List getEleStatisticalDetail(@Param("typeName")String typeName); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleStsMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleStsMapper.java new file mode 100644 index 000000000..3dc3fb5c7 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleStsMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleSts; + +public interface EleStsMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleTopicMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleTopicMapper.java new file mode 100644 index 000000000..a9f194127 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/EleTopicMapper.java @@ -0,0 +1,7 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.EleTopic; + +public interface EleTopicMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/GroupArrayMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/GroupArrayMapper.java new file mode 100644 index 000000000..8cf3be8db --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/GroupArrayMapper.java @@ -0,0 +1,10 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.GroupArray; + +/** + * @author 徐扬 + */ +public interface GroupArrayMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/HardwareMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/HardwareMapper.java new file mode 100644 index 000000000..622088fd2 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/HardwareMapper.java @@ -0,0 +1,17 @@ +package com.njcn.quality.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.Hardware; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2022-03-03 + */ +public interface HardwareMapper extends BaseMapper { + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/LogicAccessMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/LogicAccessMapper.java new file mode 100644 index 000000000..5a8606177 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/LogicAccessMapper.java @@ -0,0 +1,10 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.LogicAccess; + +/** + * @author 徐扬 + */ +public interface LogicAccessMapper extends BaseMapper { +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/LogicDeviceLineMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/LogicDeviceLineMapper.java new file mode 100644 index 000000000..ced70960f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/LogicDeviceLineMapper.java @@ -0,0 +1,124 @@ +package com.njcn.quality.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.quality.pojo.dto.NetAndDevByLineDTO; +import com.njcn.quality.pojo.po.DataArray; +import com.njcn.quality.pojo.po.DataSet; +import com.njcn.quality.pojo.po.LogicDev; +import com.njcn.quality.pojo.vo.EnergyDeviceTreeVO; +import com.njcn.quality.pojo.vo.EnergyTemplateVO; +import com.njcn.quality.pojo.vo.LogicDeviceLineInfoVO; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/3/1 + */ +public interface LogicDeviceLineMapper extends BaseMapper { + + + /** + * 获取逻辑设备树 + * + * @author cdf + * @date 2022/3/1 + */ + List getLogicDevList(); + + + /** + * 获取逻辑设备树 + * + * @author cdf + * @date 2022/3/1 + */ + List getEleLineList(); + + + + /** + * 获取设备详情 + * + * @author cdf + * @date 2022/3/2 + */ + LogicDeviceLineInfoVO getDevInfo(@Param("id") String id); + + /** + * 逻辑设备树 + * @return 结果 + */ + List getEleNoBindsLineList(); + + /** + * 逻辑设备树 + * @param loadId 参数 + * @return 结果 + */ + List getEleBindsLineList(@Param("loadId") String loadId); + + + /** + * 获取历史数据详情模板 + * + * @author cdf + * @date 2022/3/2 + */ + Page getHistoryTemplateById(IPage page, @Param("id") String id, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); + + + /** + * 获取tab模板 + * + * @param id 设备id + * @author cdf + * @date 2022/3/2 + */ + List getTabTemplateById(@Param("id") String id); + + + /** + * 获取数据集下的分组详情 + * + * @param id 数据集id + * @author cdf + * @date 2022/3/14 + */ + List getGroupDataBySetId(@Param("id") String id); + + List getAllDataBySet(@Param("id") String id); + + + /** + * 获取数据详情 + * + * @author cdf + * @date 2022/3/15 + */ + List getDataList(@Param("className") String className, @Param("ids") List ids); + + + /** + * 获取解析模板用于实时数据解析 + * + * @author cdf + * @date 2022/3/18 + */ + List getParseTemplate(@Param("setId") String setId); + + + /** + * 通过监测点获取设备网关 + * @author cdf + * @date 2022/4/22 + */ + List getNetAndDevByLineIds(@Param("lineIds") List lineIds); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/NetDevMapper.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/NetDevMapper.java new file mode 100644 index 000000000..927058b15 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/NetDevMapper.java @@ -0,0 +1,36 @@ +package com.njcn.quality.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.quality.pojo.po.NetDev; +import com.njcn.quality.pojo.vo.EnergyDeviceTreeVO; +import com.njcn.quality.pojo.vo.NetDevInfoVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cdf + * @since 2022-02-22 + */ +public interface NetDevMapper extends BaseMapper { + + /** + * 获取所有网关 + * @author cdf + * @date 2022/3/2 + */ + List getNetDevList(); + + /** + * 获取网关详细信息 + * @author cdf + * @date 2022/3/28 + */ + NetDevInfoVO getNetDevDetail(@Param("id") String id); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/DataGroupMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/DataGroupMapper.xml new file mode 100644 index 000000000..93f656e71 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/DataGroupMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleBindMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleBindMapper.xml new file mode 100644 index 000000000..025b39bcf --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleBindMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleEpdPqdMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleEpdPqdMapper.xml new file mode 100644 index 000000000..6a323452a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleEpdPqdMapper.xml @@ -0,0 +1,41 @@ + + + + + + + \ No newline at end of file diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleIntergrityMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleIntergrityMapper.xml new file mode 100644 index 000000000..196aeb43a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleIntergrityMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleLineMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleLineMapper.xml new file mode 100644 index 000000000..2817d610b --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleLineMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleLoadSetMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleLoadSetMapper.xml new file mode 100644 index 000000000..8439e0e46 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleLoadSetMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleMdMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleMdMapper.xml new file mode 100644 index 000000000..8264a8090 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleMdMapper.xml @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleRateSetMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleRateSetMapper.xml new file mode 100644 index 000000000..381c3328d --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleRateSetMapper.xml @@ -0,0 +1,34 @@ + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleStatisticalSetMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleStatisticalSetMapper.xml new file mode 100644 index 000000000..0feca6e71 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/EleStatisticalSetMapper.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/LogicDeviceLineMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/LogicDeviceLineMapper.xml new file mode 100644 index 000000000..63937ae42 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/LogicDeviceLineMapper.xml @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/NetDevMapper.xml b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/NetDevMapper.xml new file mode 100644 index 000000000..36de760ab --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/mapper/mapping/NetDevMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleAirStrategyService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleAirStrategyService.java new file mode 100644 index 000000000..c8e143b05 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleAirStrategyService.java @@ -0,0 +1,67 @@ +package com.njcn.quality.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.quality.param.AirStrategyParam; +import com.njcn.quality.pojo.po.AirStrategy; +import com.njcn.quality.pojo.vo.AirStrategyVO; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +public interface EleAirStrategyService extends IService { + + Page listAirStrategy(AirStrategyParam.AirStrategyQueryParam airStrategyQueryParam); + + /** + * 新增空调策略 + * + * @param airStrategyParam 空调策略数据 + * @return 操作结果 + */ + boolean addAirStrategy(AirStrategyParam airStrategyParam); + + /** + * 修改空调策略 + * + * @param updateParam 空调策略数据 + * @return 操作结果 + */ + boolean updateAirStrategy(AirStrategyParam.AirUpdateParam updateParam); + + /** + * 批量逻辑删除空调策略数据 + * @param id id + * @return 操作结果 + */ + boolean deleteAirStrategy(String id); + + /** + * 获取空调策略信息 + * @param id id + * @return NetDev + */ + AirStrategyVO findById(String id); + + + /** + * 停止执行任务 + * @author cdf + * @date 2022/4/22 + */ + boolean startAirStrategy(String id); + + + /** + * 定时执行任务 + * @author cdf + * @date 2022/4/22 + */ + boolean dealAirStrategyId(String id,String operation); + + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleLoadSetService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleLoadSetService.java new file mode 100644 index 000000000..99bb3370f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleLoadSetService.java @@ -0,0 +1,30 @@ +package com.njcn.quality.service; + +import com.njcn.quality.param.EleParam; +import com.njcn.quality.pojo.vo.EleLoadSetTreeVO; +import com.njcn.quality.pojo.vo.EleLoadSetVO; + +import java.util.List; + +/** + * + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月15日 14:24 + */ +public interface EleLoadSetService { + + /** + * 详情 + * @return 结果 + */ + List getEleLoadSetDetail(); + + /** + * 绑定监测点树 + * @return 结果 + */ + EleLoadSetTreeVO getEleLoadTree(EleLoadSetVO eleLoadSetVO); + + Boolean add(EleParam eleParam); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleRateSetService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleRateSetService.java new file mode 100644 index 000000000..29d12aae5 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleRateSetService.java @@ -0,0 +1,24 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.pojo.po.EleRateSet; +import com.njcn.quality.pojo.vo.EleRateVO; + +import java.util.List; + +/** + * 费率配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 19:36 + */ +public interface EleRateSetService { + + /** + * 获取费率配置 + * @return 结果 + */ + List getEleRateDetail(); + + boolean add(EleRateSet eleRateSet); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleStatisticalSetService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleStatisticalSetService.java new file mode 100644 index 000000000..3b0eef0ea --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/EleStatisticalSetService.java @@ -0,0 +1,38 @@ +package com.njcn.quality.service; + + + +import com.njcn.quality.param.EleParam; +import com.njcn.quality.pojo.vo.EleStatisticalTreeVO; +import com.njcn.quality.pojo.vo.EleStatisticalVO; + +import java.util.List; + +/** + * 用能统计类型配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:15 + */ +public interface EleStatisticalSetService { + /** + * 详情 + * @return 结果 + */ + List getEleStatisticalDetail(); + + /** + * 树 + * @param eleStatisticalVO 参数 + * @return 结果 + */ + EleStatisticalTreeVO getEleStatisticalTree(EleStatisticalVO eleStatisticalVO); + + /** + * 绑定 + * @param id id + * @param ids ids + * @return 结果 + */ + Boolean add(EleParam eleParam); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/HighAnalyticService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/HighAnalyticService.java new file mode 100644 index 000000000..3e1ef1058 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/HighAnalyticService.java @@ -0,0 +1,87 @@ +package com.njcn.quality.service; + + + + +import com.njcn.quality.param.ElectComparaParam; +import com.njcn.quality.param.LoadStatisticParam; +import com.njcn.quality.pojo.vo.ElectCompareVO; +import com.njcn.quality.pojo.vo.LoadStatisticVO; +import com.njcn.quality.pojo.vo.LoadTendencyVO; + +import java.util.List; +import java.util.Map; + +/** + * pqs + * + * @author cdf + * @date 2022/4/14 + */ +public interface HighAnalyticService { + + + /** + * 获取负荷趋势分析 + * @author cdf + * @date 2022/4/15 + */ + List getLoadTendency(String loadType, String start, String end); + + + List getLoadDetail(String loadType,String start,String end); + + /** + * 负荷占比 + * @author cdf + * @date 2022/4/28 + */ + List> getLoadRate(String loadType,String start); + + /** + * 负荷统计分析 + * @author cdf + * @date 2022/4/18 + */ + List getLoadStatistics(LoadStatisticParam loadStatisticParam); + + + /** + * 获取电度趋势分析 + * @author cdf + * @date 2022/4/15 + */ + List getElectTendency(String loadType,Integer type,String start,String end); + + + /** + * 获取电度比较分析 + * @author cdf + * @date 2022/4/15 + */ + List getElectCompare(ElectComparaParam electComparaParam); + + + /** + * 电度占比 + * @author cdf + * @date 2022/4/27 + */ + List> getElectRate(ElectComparaParam electComparaParam); + + /** + * 电度统计分析 + * @author cdf + * @date 2022/4/19 + */ + List getElectStatistic(ElectComparaParam electComparaParam); + + + + /** + * 获取空调趋势 + * @author cdf + * @date 2022/4/15 + */ + List getAirTendency(String start,String end); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataArrayService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataArrayService.java new file mode 100644 index 000000000..2d3ac67b8 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataArrayService.java @@ -0,0 +1,34 @@ +package com.njcn.quality.service; + +import com.njcn.quality.param.DataArrayParam; +import com.njcn.quality.pojo.po.DataArray; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface IDataArrayService { + + /** + * 功能描述: 新增装置详细模板数据 + * + * @param dataArrayParam + * @return com.njcn.energy.pojo.po.DataArray + * @author xy + * @date 2022/3/9 15:51 + */ + DataArray addDataArray(DataArrayParam dataArrayParam); + + + /** + * 功能描述: 新增装置详细模板数据 + * + * @param list + * @return com.njcn.energy.pojo.po.DataArray + * @author xy + * @date 2022/3/9 15:51 + */ + boolean deleteDataArray(List list); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataGroupService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataGroupService.java new file mode 100644 index 000000000..db35c5d18 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataGroupService.java @@ -0,0 +1,51 @@ +package com.njcn.quality.service; + +import com.njcn.quality.param.DataGroupParam; +import com.njcn.quality.pojo.po.DataGroup; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface IDataGroupService { + + /** + * 功能描述: 新增分组数据 + * + * @param dataGroupParam 分组参数 + * @return boolean + * @author xy + * @date 2022/3/16 9:27 + */ + DataGroup addDataGroup(DataGroupParam dataGroupParam); + + /** + * 批量新增组 + * @author cdf + * @date 2022/3/17 + * @param list 分组参数 + * @return boolean + */ + boolean batchAdd(List list); + /** + * 功能描述: 根据数据集id查询分组信息 + * + * @param list + * @return java.util.List + * @author xy + * @date 2022/3/17 10:41 + */ + List findGroupById(List list); + + /** + * 功能描述: 根据数据集id查询分组信息 + * + * @param list 数据集id + * @return java.util.List + * @author xy + * @date 2022/3/17 10:41 + */ + boolean deleteDataGroup(List list); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataSetService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataSetService.java new file mode 100644 index 000000000..6b01e80ff --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDataSetService.java @@ -0,0 +1,44 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.param.DataSetParam; +import com.njcn.quality.pojo.po.DataSet; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface IDataSetService { + + /** + * 功能描述: 新增数据集 + * + * @param dataSetParam + * @return com.njcn.energy.pojo.po.DataSet + * @author xy + * @date 2022/3/9 10:18 + */ + DataSet add(DataSetParam dataSetParam); + + /** + * 功能描述: 根据id删除数据集 + * + * @param id 主键 + * @return boolean + * @author xy + * @date 2022/3/17 9:39 + */ + boolean delete(String id); + + /** + * 功能描述: 根据id查询数据集 + * + * @param id + * @return java.util.List + * @author xy + * @date 2022/3/17 10:30 + */ + List findSetById(String id); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDevModelService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDevModelService.java new file mode 100644 index 000000000..30567815a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDevModelService.java @@ -0,0 +1,43 @@ +package com.njcn.quality.service; +import com.njcn.quality.param.DataModelParam; +import com.njcn.quality.pojo.po.DataMould; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @author 徐扬 + */ +public interface IDevModelService { + + /** + * 功能描述: 新增设备数据模板表 + * + * @param dataModelParam + * @return com.njcn.energy.pojo.po.DataMould + * @author xy + * @date 2022/3/8 20:44 + */ + DataMould addDataMould(DataModelParam dataModelParam); + + /** + * 功能描述: 删除模板 + * + * @param id + * @return boolean + * @author xy + * @date 2022/3/17 14:15 + */ + boolean deleteById(String id); + + /** + * 功能描述: 查找模板 + * + * @param name + * @param version + * @param time + * @return com.njcn.energy.pojo.po.DataMould + * @author xy + * @date 2022/3/23 19:29 + */ + DataMould findMould(String name, String version, String time); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDevVersionService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDevVersionService.java new file mode 100644 index 000000000..ceaeb6ee3 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IDevVersionService.java @@ -0,0 +1,29 @@ +package com.njcn.quality.service; + +import com.njcn.quality.param.DevVersionParam; +import com.njcn.quality.pojo.po.DevVersion; + +/** + * @author 徐扬 + */ +public interface IDevVersionService { + + /** + * 新增网关设备 + * + * @param devVersionParam 设备版本信息 + * @return 操作结果 + */ + DevVersion addDevVersion(DevVersionParam devVersionParam); + + /** + * 功能描述: 删除设备版本信息 + * + * @param id + * @return + * @author xy + * @date 2022/3/17 16:30 + */ + boolean deleteDevVersion(String id); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleActrlService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleActrlService.java new file mode 100644 index 000000000..6cdf2f27a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleActrlService.java @@ -0,0 +1,39 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleActrl; + +/** + * @author 徐扬 + */ +public interface IEleActrlService { + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleActrl + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addActrl(EleActrl eleActrl); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleActrl + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateActrl(EleActrl eleActrl); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleActrl findByName(String name); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleAlmService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleAlmService.java new file mode 100644 index 000000000..b5aa79ee1 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleAlmService.java @@ -0,0 +1,46 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleALM; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 18:48 + */ + +public interface IEleAlmService { + + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleAlM + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addAlm(EleALM eleAlM); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleAlM + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateAlm(EleALM eleAlM); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleALM findByName(String name); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleBindService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleBindService.java new file mode 100644 index 000000000..6b5f62a20 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleBindService.java @@ -0,0 +1,37 @@ +package com.njcn.quality.service; + +import com.njcn.quality.param.ElDataBindParam; +import com.njcn.quality.pojo.po.EleBind; +import com.njcn.quality.pojo.vo.YunCaiDataVO; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/3/30 + */ +public interface IEleBindService { + + /** + * 新增绑定关系 + * @author cdf + * @date 2022/3/30 + */ + boolean addBind(ElDataBindParam elDataBindParam); + + /** + * 获取所有绑定关系 + * @author cdf + * @date 2022/3/30 + */ + List getList(String ndid); + +/** + * 获取指定系统下的数据 + * @author cdf + * @date 2022/3/30 + */ + List getLineListDetail(List lineList); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleCtrlService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleCtrlService.java new file mode 100644 index 000000000..be06eb5ae --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleCtrlService.java @@ -0,0 +1,40 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleCtrl; + +/** + * @author 徐扬 + */ +public interface IEleCtrlService { + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleCtrl + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addCtrl(EleCtrl eleCtrl); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleCtrl + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateCtrl(EleCtrl eleCtrl); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleCtrl findByName(String name); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDiService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDiService.java new file mode 100644 index 000000000..c549fa58b --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDiService.java @@ -0,0 +1,39 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleDi; + +/** + * @author 徐扬 + */ +public interface IEleDiService { + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleDi + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addDi(EleDi eleDi); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleDi + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateDi(EleDi eleDi); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleDi findByName(String name); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDictService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDictService.java new file mode 100644 index 000000000..06985b55d --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDictService.java @@ -0,0 +1,78 @@ +package com.njcn.quality.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.quality.param.DictParam; +import com.njcn.quality.pojo.po.EleDict; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/24 10:59 + */ + +public interface IEleDictService { + + /** + * 功能描述: 根据名称查询字段数据 + * + * @param name 字典名称 + * @return com.njcn.energy.pojo.po.EleDict + * @author xy + * @date 2022/3/24 11:08 + */ + EleDict findDictByName(String name); + + /** + * 功能描述: 查询influxDB表名 + * + * @param name 字典名称 + * @return com.njcn.energy.pojo.po.EleDict + * @author xy + * @date 2022/3/24 11:08 + */ + EleDict findTableName(String name); + + + /** + * 新增字典 + * @author cdf + * @date 2022/3/22 + */ + boolean add(DictParam dictParam); + + /** + * 修改字典 + * @author cdf + * @date 2022/3/22 + */ + boolean update(DictParam.DictUpdateParam dictUpdateParam); + + + /** + * 删除字典 + * @author cdf + * @date 2022/3/22 + */ + boolean delete(String id); + + + /** + * 查询字典列表 + * @author cdf + * @date 2022/3/22 + */ + Page getList(DictParam.DictQueryParam dictQueryParam); + + + + /** + * 查询字典 + * @author cdf + * @date 2022/3/22 + */ + EleDict getById(String id); + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDoService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDoService.java new file mode 100644 index 000000000..a86bba916 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleDoService.java @@ -0,0 +1,40 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleDo; + +/** + * @author 徐扬 + */ +public interface IEleDoService { + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleDo + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addDo(EleDo eleDo); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleDo + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateDo(EleDo eleDo); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleDo findByName(String name); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEpdPqdService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEpdPqdService.java new file mode 100644 index 000000000..e5960e301 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEpdPqdService.java @@ -0,0 +1,50 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleEpdPqd; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface IEleEpdPqdService { + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleEpdPqd + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addEpd(EleEpdPqd eleEpdPqd); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleEpdPqd + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateEpd(EleEpdPqd eleEpdPqd); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleEpdPqd findByName(String name,String phase); + + /** + * 获取所有负荷指标 + * @author cdf + * @date 2022/4/15 + */ + List getAllEpd(); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEvtParamService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEvtParamService.java new file mode 100644 index 000000000..0f22ef5a9 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEvtParamService.java @@ -0,0 +1,55 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleEvtParm; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 16:19 + */ + +public interface IEleEvtParamService { + + /** + * 功能描述: 新增eleEvt数据 + * + * @param eleEvtParam + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addEleEvtParam(EleEvtParm eleEvtParam); + + /** + * 功能描述: 修改eleEvt数据 + * + * @param eleEvtParam + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateEleEvtParam(EleEvtParm eleEvtParam); + + /** + * 功能描述: 根据名称查找 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleEvtParm findByName(String name); + + /** + * 功能描述: 根据id删除 + * + * @param id + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean deleteById(String id); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEvtService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEvtService.java new file mode 100644 index 000000000..34c24c934 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleEvtService.java @@ -0,0 +1,40 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.EleEvt; + +/** + * @author 徐扬 + */ +public interface IEleEvtService { + + /** + * 功能描述: 新增eleEvt数据 + * + * @param eleEvt + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleEvt addEvt(EleEvt eleEvt); + + /** + * 功能描述: 修改eleEvt数据 + * + * @param eleEvt + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateEvt(EleEvt eleEvt); + + /** + * 功能描述: 根据名称查找 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleEvt findByName(String name); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleInformationService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleInformationService.java new file mode 100644 index 000000000..69a1c535f --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleInformationService.java @@ -0,0 +1,50 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.pojo.dto.OnlineRateDTO; +import com.njcn.quality.pojo.po.EleInformation; +import com.njcn.quality.pojo.vo.EleIntegrityVO; + +import java.text.ParseException; +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/19 10:49 + */ + +public interface IEleInformationService { + + /** + * 功能描述: 记录装置上线、下线信息 + * @param list 集合 + * @author xy + * @date 2022/4/19 10:53 + * @return + */ + void addInformation(List list); + + /** + * 功能描述: 获取装置上下线时间 + * @author xy + * @param startTime 开始时间 + * @param endTime 结束时间 + * @date 2022/4/20 9:17 + * @return + */ + List getDeviceTime(String startTime, String endTime); + + /** + * 功能描述: + * @author xy + * @param startTime 开始时间 + * @param endTime 结束时间 + * @date 2022/4/20 18:53 + * @return + */ + List getOnlineRateTree(String startTime, String endTime); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleIntegrityService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleIntegrityService.java new file mode 100644 index 000000000..59d897e71 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleIntegrityService.java @@ -0,0 +1,26 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.vo.EleIntegrityVO; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/31 19:39 + */ + +public interface IEleIntegrityService { + + /** + * 功能描述:获取用能数据完整性树表 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return java.util.List + * @author xy + * @date 2022/4/13 10:52 + */ + List getIntegrityTree(String startTime, String endTime); +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleLineService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleLineService.java new file mode 100644 index 000000000..d6eda214d --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleLineService.java @@ -0,0 +1,60 @@ +package com.njcn.quality.service; + + + +import com.njcn.quality.param.LineParam; +import com.njcn.quality.pojo.po.EleLine; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface IEleLineService { + + /** + * 功能描述: 新增监测点数据 + * + * @param lineParam + * @return com.njcn.energy.pojo.po.EleLine + * @author xy + * @date 2022/3/8 14:34 + */ + EleLine add(LineParam lineParam); + + /** + * 功能描述: 删除监测点信息 + * + * @param list + * @return + * @author xy + * @date 2022/3/17 16:42 + */ + boolean deleteByList(List list); + + /** + * 根据网关获取网关下所有已注册监测点 + * @author cdf + * @date 2022/3/29 + */ + List getAllLine(String netDevString); + + /** + * 功能描述:获取装置下所有的监测点信息 + * @param list 逻辑设备集合 + * @author xy + * @date 2022/4/13 11:17 + * @return 监测点信息 + */ + List getAllLines(List list); + + /** + * 功能描述: 根据监测点id获取监测点信息 + * @author xy + * @param list + * @date 2022/4/26 13:55 + * @return + */ + List getLineInfo(List list); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleLogsService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleLogsService.java new file mode 100644 index 000000000..f332e8749 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleLogsService.java @@ -0,0 +1,23 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.pojo.po.EleLogs; + +/** + * @author 徐扬 + */ +public interface IEleLogsService { + + /** + * 功能描述: 新增日志 + * + * @param eleLogs + * @return void + * @author xy + * @date 2022/4/6 20:00 + */ + void addLogs(EleLogs eleLogs); + + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleMdService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleMdService.java new file mode 100644 index 000000000..7e5f1210c --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleMdService.java @@ -0,0 +1,41 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.pojo.po.EleMd; + +/** + * @author 徐扬 + */ +public interface IEleMdService { + + /** + * 功能描述: 新增MD数据 + * + * @param eleMd + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addMd(EleMd eleMd); + + /** + * 功能描述: 修改MD数据 + * + * @param eleMd + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateMd(EleMd eleMd); + + /** + * + * @param name + * @param phase + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleMd findByName(String name,String phase); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleParmService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleParmService.java new file mode 100644 index 000000000..3aa26eb01 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleParmService.java @@ -0,0 +1,46 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.pojo.po.EleParm; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:44 + */ + +public interface IEleParmService { + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleParm + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addParm(EleParm eleParm); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleParm + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateParm(EleParm eleParm); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleParm findByName(String name); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleSetService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleSetService.java new file mode 100644 index 000000000..7e40d6643 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleSetService.java @@ -0,0 +1,13 @@ +package com.njcn.quality.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.quality.pojo.po.AirSet; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +public interface IEleSetService extends IService{ +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleStsService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleStsService.java new file mode 100644 index 000000000..62f6109b9 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleStsService.java @@ -0,0 +1,41 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.pojo.po.EleSts; + +/** + * @author 徐扬 + */ +public interface IEleStsService { + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleSts + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean addSts(EleSts eleSts); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param eleSts + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + boolean updateSts(EleSts eleSts); + + /** + * 功能描述: 新增EPD PQD数据 + * + * @param name + * @return boolean + * @author xy + * @date 2022/3/15 10:11 + */ + EleSts findByName(String name); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleTopicService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleTopicService.java new file mode 100644 index 000000000..c5346197b --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IEleTopicService.java @@ -0,0 +1,41 @@ +package com.njcn.quality.service; + + + +import com.njcn.quality.pojo.po.EleTopic; + +import java.util.List; + +public interface IEleTopicService { + + /** + * 功能描述: 新增网管主题信息 + * + * @param eleTopic + * @return boolean + * @author xy + * @date 2022/3/22 19:05 + */ + boolean addTopic(EleTopic eleTopic); + + /** + * 功能描述: 查询网管主题信息 + * + * @param id + * @return boolean + * @author xy + * @date 2022/3/22 19:05 + */ + List list(String id); + + /** + * 功能描述: 删除网管主题信息 + * + * @param id + * @return boolean + * @author xy + * @date 2022/3/22 19:05 + */ + boolean delete(String id); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IGroupArrayService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IGroupArrayService.java new file mode 100644 index 000000000..7a056b9c3 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IGroupArrayService.java @@ -0,0 +1,43 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.pojo.po.GroupArray; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface IGroupArrayService { + + /** + * 功能描述: 分配组和数据的关系 + * + * @param groupId + * @param arrId + * @return boolean + * @author xy + * @date 2022/3/16 13:33 + */ + void groupArrayRelation(String groupId,String arrId); + + + /** + * 批量新增组 + * @author cdf + * @date 2022/3/17 + * @param list 分组参数 + * @return boolean + */ + boolean batchAdd(List list); + /** + * 功能描述: 删除组和详细数据关系 + * + * @param list 组集合 + * @return boolean + * @author xy + * @date 2022/3/16 13:33 + */ + boolean deleteGroupArray(List list); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IHardwareService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IHardwareService.java new file mode 100644 index 000000000..ee569ed87 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IHardwareService.java @@ -0,0 +1,35 @@ +package com.njcn.quality.service; + + +import com.njcn.quality.param.HardwareParam; +import com.njcn.quality.pojo.po.Hardware; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface IHardwareService { + + /** + * 功能描述: 存储硬件信息 + * + * @param hardwareParam + * @return com.njcn.energy.pojo.po.Hardware + * @author xy + * @date 2022/3/8 10:53 + */ + Hardware addHardware(HardwareParam hardwareParam); + + /** + * 功能描述: 根据id删除已有硬件信息 + * + * @param list + * @return boolean + * @author xy + * @date 2022/3/16 19:54 + */ + boolean deleteHardware(List list); + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/ILogicAccessService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/ILogicAccessService.java new file mode 100644 index 000000000..7af28e217 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/ILogicAccessService.java @@ -0,0 +1,136 @@ +package com.njcn.quality.service; + +import com.njcn.quality.pojo.po.LogicAccess; + +import java.util.List; + +/** + * @author 徐扬 + */ +public interface ILogicAccessService { + + /** + * 功能描述: 根据pid获取逻辑装置 + * @return java.util.List + * @author xy + * @date 2022/3/23 21:59 + */ + List findAccessDev(List did); + + /** + * 功能描述: 新增 + * @return java.util.List + * @author xy + * @date 2022/3/23 21:59 + */ + boolean add(LogicAccess logicAccess); + + /** + * 功能描述: 根据did查询逻辑设备 + * @return + * @author xy + * @date 2022/3/17 14:45 + */ + LogicAccess getAccessDev(String did); + + /** + * 功能描述: 逻辑设备取消注册 + * @author xy + * @date 2022/3/17 14:45 + */ + void deleteByDid(List list); + + /** + * 功能描述: 逻辑设备下线 + * @author xy + * @date 2022/3/17 14:45 + */ + void offlineByDid(List list); + + /** + * 功能描述: 查找已经取消注册的装置 + * @return java.util.List + * @author xy + * @date 2022/3/24 8:54 + */ + LogicAccess findCancelAccessDev(String did); + + /** + * 功能描述: 注册 取消注册过的装置 + * @author xy + * @date 2022/3/24 8:54 + */ + void accessCancelDev(String did); + + /** + * 功能描述: 调整装置为接入状态 + * @author xy + * @date 2022/3/24 8:54 + */ + void accessDev(LogicAccess logicAccess); + + /** + * 功能描述: 获取在线上的装置 + * + * @param ndid 网关id + * @param list 装置id集合 + * @return java.util.List + * @author xy + * @date 2022/3/31 20:01 + */ + List getLogicAccess(String ndid,List list); + + /** + * 功能描述: 查询当前网关所有在线的装置 + * @param ndid 网关id + * @return java.util.List + * @author xy + * @date 2022/3/31 20:01 + */ + List getAllOnlineDevice(String ndid); + + /** + * 功能描述: 查询当前网关所有掉线的装置 + * @param ndid 网关id + * @return java.util.List + * @author xy + * @date 2022/3/31 20:01 + */ + List getAllOfflineDevice(String ndid); + + /** + * 功能描述:将当前网关所有在线的装置置为下线 + * @author xy + * @date 2022/3/29 14:19 + */ + void offAllDevice(String ndid); + + /** + * 功能描述: 获取当前集合里在线的设备 + * + * @param list + * @return java.util.List + * @author xy + * @date 2022/4/6 15:31 + */ + List getOnlineByList(List list); + + /** + * 功能描述:根据网关集合获取所有装置信息 + * @param list 网关集合 + * @author xy + * @date 2022/4/13 13:48 + * @return 接入过的装置信息 + */ + List getLogicDevByList(List list); + + /** + * 功能描述: 获取在线、离线的装置 + * @author xy + * @date 2022/4/18 11:45 + * @return + */ + List getAllDev(); + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/ILogicDeviceLineService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/ILogicDeviceLineService.java new file mode 100644 index 000000000..770fa41a5 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/ILogicDeviceLineService.java @@ -0,0 +1,217 @@ +package com.njcn.quality.service; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.njcn.quality.param.DataHisParam; +import com.njcn.quality.param.DevCfgParam; +import com.njcn.quality.param.EnergyBaseParam; +import com.njcn.quality.param.GroupArrParam; +import com.njcn.quality.pojo.dto.NetAndDevByLineDTO; +import com.njcn.quality.pojo.po.DataSet; +import com.njcn.quality.pojo.po.LogicDev; +import com.njcn.quality.pojo.vo.*; + +import java.util.List; + +/** + * pqs + * + * @author cdf + * @date 2022/2/24 + */ +public interface ILogicDeviceLineService { + + /** + * 获取网关设备树 + * @author cdf + * @date 2022/3/1 + */ + List getEnergyTree(); + + /** + * 获取监测点树 + * @return 结果 + */ + EleLoadSetTreeVO getEnergyLoadTree(String id); + + /** + * 获取空调监测点树 + * @author cdf + * @date 2022/4/21 + */ + List getAirLineTree(); + + /** + * 获取设备详情 + * @author cdf + * @date 2022/3/1 + */ + LogicDeviceLineInfoVO getEnergyDevInfoById(String id); + + + /** + * 根据数据集id获取设备模板详情详情 + * @author cdf + * @date 2022/3/1 + */ + IPage getEnergyTemplateById(String id, Integer pageNum, Integer pageSize); + + + /** + * 获取分组数据详情 + * @author cdf + * @date 2022/3/1 + */ + IPage getRealGroupTemplateById(String id, Integer pageNum, Integer pageSize); + + + + + + + /** + * 获取历史设备数据详情 + * @author cdf + * @date 2022/3/1 + */ + IPage getHistoryTemplateById(EnergyBaseParam energyBaseParam); + + /** + * 获取准实时数据详情 + * @author cdf + * @date 2022/3/1 + */ + IPage getStatisTemplateById(String id, Integer pageNum, Integer pageSize,String lineId); + + + + /** + * 获取设备tab模板 + * @author cdf + * @date 2022/3/1 + */ + List getTabTemplateById(String id); + + /** + * 获取当前数据集的分组情况 + * @author cdf + * @date 2022/3/16 + */ + List getGroupDetailList(String setId); + + + + boolean addGroupArr(GroupArrParam groupArrParam); + + + /** + * 获取解析模板 + * @author cdf + * @date 2022/3/18 + */ + List getParseTemplate(String setId); + + + + /** + * 功能描述: 新增逻辑设备 + * + * @param devCfgParam + * @return com.njcn.energy.pojo.po.LogicDev + * @author xy + * @date 2022/3/8 14:27 + */ + LogicDev add(DevCfgParam devCfgParam); + + /** + * 功能描述: 根据did查询逻辑设备 + * + * @param did + * @return + * @author xy + * @date 2022/3/17 14:45 + */ + LogicDev getLogicDev(String did); + + /** + * 功能描述: 根据pid批量查询逻辑设备 + * + * @param list + * @return + * @author xy + * @date 2022/3/17 14:45 + */ + List getLogicDevByList(List list); + + /** + * 功能描述: 根据did批量查询逻辑设备 + * + * @param list + * @return + * @author xy + * @date 2022/3/17 14:45 + */ + List getLogicDev(List list); + + /** + * 功能描述: 根据网关id查询逻辑设备 + * + * @param list + * @return + * @author xy + * @date 2022/3/17 14:45 + */ + List getLogicDevByPid(List list); + + /** + * 功能描述: 根据版本id删除逻辑设备 + * + * @param id + * @return + * @author xy + * @date 2022/3/17 14:45 + */ + boolean deleteByVersionId(String id); + + /** + * 功能描述: 根据版本id查询逻辑设备 + * + * @param id + * @return + * @author xy + * @date 2022/3/17 14:45 + */ + List getLogicDevByVersionId(String id); + + /** + * 功能描述: 更新逻辑设备信息 + * + * @param logicDev + * @author xy + * @date 2022/3/23 19:32 + */ + void updateLogicDeviceLine(LogicDev logicDev); + + /** + * 功能描述: 更新装置模板id + * @param oldMouldId 老模板id + * @param newMouldId 新模板id + * @author xy + * @date 2022/4/18 15:34 + * @return + */ + void updateLogicDevice(String oldMouldId, String newMouldId); + + + List getHisData(DataHisParam dataHisParam); + + + /** + * 通过监测点获取设备网关 + * @author cdf + * @date 2022/4/22 + */ + List getNetAndDevByLineIds(List lineIds); + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IModelService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IModelService.java new file mode 100644 index 000000000..f9201f3a0 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/IModelService.java @@ -0,0 +1,61 @@ +package com.njcn.quality.service; + + +import java.util.List; +import java.util.concurrent.CompletableFuture; + +/** + * @author 徐扬 + */ +public interface IModelService { + + /** + * 功能描述: 联网装置注册请求 + * + * @param json mqtt数据 + * @return boolean + * @author xy + * @date 2022/2/28 15:04 + */ + String deviceRegister(String json); + + /** + * 功能描述:联网装置向平台发送设备接入请求 + * + * @param json mqtt数据 + * @param ndid ndid + * @return java.lang.String + * @author xy + * @date 2022/3/4 13:41 + */ + String deviceAccess(String json,String ndid); + + /** + * 功能描述: 询问设备的模板数据 + * @return java.lang.String + * @author xy + * @date 2022/3/7 14:07 + */ + String deviceData(String json); + + + /** + * 功能描述: 获取当前网关订阅的主题 + * @param json mqtt数据 + * @param ndid ndid + * @author xy + * @date 2022/3/7 14:07 + */ + void subscribeTopic(String json, String ndid); + + /** + * 功能描述: 监听心跳 + * @param ndid ndid + * @param time 数据时间 + * @return java.lang.String + * @author xy + * @date 2022/3/30 18:42 + */ + List monitorHeartbeat(String ndid, String time); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/INetDevService.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/INetDevService.java new file mode 100644 index 000000000..d5b28f2f8 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/INetDevService.java @@ -0,0 +1,96 @@ +package com.njcn.quality.service; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.quality.param.NetDevParam; +import com.njcn.quality.pojo.po.NetDev; +import com.njcn.quality.pojo.vo.NetDevInfoVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author cdf + * @since 2022-02-22 + */ +public interface INetDevService extends IService { + + + + /** + * 根据前台传递参数,分页查询网关数据 + * @param queryParam 查询参数 + * @return 网关设备列表 + */ + Page listNetDev(NetDevParam.NetDevQueryParam queryParam); + + /** + * 新增网关设备 + * + * @param netDevParam 网关设备数据 + * @return 操作结果 + */ + boolean addNetDev(NetDevParam netDevParam); + + /** + * 修改网关设备 + * + * @param updateParam 网关设备数据 + * @return 操作结果 + */ + boolean updateNetDev(NetDevParam.NetDevUpdateParam updateParam); + + /** + * 批量逻辑删除网关设备数据 + * @param ids ids + * @return 操作结果 + */ + boolean deleteNetDev(List ids); + + /** + * 根据ndid获取网关信息 + * @param ndid ndid + * @return NetDev + */ + NetDev findByNdid(String ndid); + + /** + * 获取网关详细信息 + * @author cdf + * @date 2022/3/28 + */ + NetDevInfoVO getNetDevInfo(String id); + + /** + * 功能描述: 网关下线 + * + * @param netDev 网关id + * @return void + * @author xy + * @date 2022/4/6 18:00 + */ + void offlineNetDev(String netDev); + + /** + * 功能描述: 网关上线 + * + * @param netDev 网关id + * @return void + * @author xy + * @date 2022/4/6 18:00 + */ + void onlineNetDev(String netDev); + + /** + * 功能描述:获取所有正常的网关信息 + * @author xy + * @date 2022/4/13 11:02 + * @return list + */ + List getAllNetDev(); + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataArrayServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataArrayServiceImpl.java new file mode 100644 index 000000000..c8b8a2b3a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataArrayServiceImpl.java @@ -0,0 +1,38 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.DataArrayMapper; +import com.njcn.quality.param.DataArrayParam; +import com.njcn.quality.pojo.po.DataArray; +import com.njcn.quality.service.IDataArrayService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/9 15:48 + */ +@Service +public class DataArrayServiceImpl extends ServiceImpl implements IDataArrayService { + + @Override + public DataArray addDataArray(DataArrayParam dataArrayParam) { + DataArray dataArray = new DataArray(); + BeanUtil.copyProperties(dataArrayParam,dataArray); + this.save(dataArray); + return dataArray; + } + + @Override + public boolean deleteDataArray(List list) { + QueryWrapper dataArrayQueryWrapper = new QueryWrapper<>(); + dataArrayQueryWrapper.in("Pid",list); + return this.remove(dataArrayQueryWrapper); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataGroupServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataGroupServiceImpl.java new file mode 100644 index 000000000..e196edc38 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataGroupServiceImpl.java @@ -0,0 +1,45 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.DataGroupMapper; +import com.njcn.quality.param.DataGroupParam; +import com.njcn.quality.pojo.po.DataGroup; +import com.njcn.quality.service.IDataGroupService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/16 9:05 + */ +@Service +public class DataGroupServiceImpl extends ServiceImpl implements IDataGroupService { + @Override + public DataGroup addDataGroup(DataGroupParam dataGroupParam) { + DataGroup dataGroup = new DataGroup(); + BeanUtil.copyProperties(dataGroupParam,dataGroup); + this.save(dataGroup); + return dataGroup; + } + @Override + public boolean batchAdd(List list){ + return this.saveBatch(list); + } + @Override + public List findGroupById(List list) { + return this.lambdaQuery().in(DataGroup::getPid,list).list(); + } + + @Override + public boolean deleteDataGroup(List list) { + QueryWrapper dataGroupQueryWrapper = new QueryWrapper<>(); + dataGroupQueryWrapper.in("Pid",list); + return this.remove(dataGroupQueryWrapper); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataSetServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataSetServiceImpl.java new file mode 100644 index 000000000..6a117cc54 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DataSetServiceImpl.java @@ -0,0 +1,43 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.DataSetMapper; +import com.njcn.quality.param.DataSetParam; +import com.njcn.quality.pojo.po.DataSet; +import com.njcn.quality.service.IDataSetService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/9 10:16 + */ +@Service +public class DataSetServiceImpl extends ServiceImpl implements IDataSetService { + + @Override + public DataSet add(DataSetParam dataSetParam) { + DataSet dataSet = new DataSet(); + BeanUtil.copyProperties(dataSetParam,dataSet); + this.save(dataSet); + return dataSet; + } + + @Override + public boolean delete(String id) { + QueryWrapper dataSetQueryWrapper = new QueryWrapper<>(); + dataSetQueryWrapper.eq("Pid",id); + return this.remove(dataSetQueryWrapper); + } + + @Override + public List findSetById(String id) { + return this.lambdaQuery().eq(DataSet::getPid,id).list(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DevModelServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DevModelServiceImpl.java new file mode 100644 index 000000000..cd8960efe --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DevModelServiceImpl.java @@ -0,0 +1,40 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.quality.mapper.DataMouldMapper; +import com.njcn.quality.param.DataModelParam; +import com.njcn.quality.pojo.po.DataMould; +import com.njcn.quality.service.IDevModelService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 20:41 + */ +@Service +public class DevModelServiceImpl extends ServiceImpl implements IDevModelService { + + @Override + public DataMould addDataMould(DataModelParam dataModelParam) { + DataMould dataMould = new DataMould(); + BeanUtil.copyProperties(dataModelParam,dataMould); + dataMould.setState(DataStateEnum.ENABLE.getCode()); + this.save(dataMould); + return dataMould; + } + + @Override + public boolean deleteById(String id) { + return this.removeById(id); + } + + @Override + public DataMould findMould(String name, String version, String time) { + return this.lambdaQuery().eq(DataMould::getName,name).eq(DataMould::getVersion,version).eq(DataMould::getTime,time).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DevVersionServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DevVersionServiceImpl.java new file mode 100644 index 000000000..d0daf9a61 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/DevVersionServiceImpl.java @@ -0,0 +1,37 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.quality.mapper.DevVersionMapper; +import com.njcn.quality.param.DevVersionParam; +import com.njcn.quality.pojo.po.DevVersion; +import com.njcn.quality.service.IDevVersionService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/7 18:58 + */ + +@Service +public class DevVersionServiceImpl extends ServiceImpl implements IDevVersionService { + + + @Override + public DevVersion addDevVersion(DevVersionParam devVersionParam) { + DevVersion devVersion = new DevVersion(); + BeanUtils.copyProperties(devVersionParam, devVersion); + devVersion.setState(DataStateEnum.ENABLE.getCode()); + this.save(devVersion); + return devVersion; + } + + @Override + public boolean deleteDevVersion(String id) { + return this.removeById(id); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/ELeParmServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/ELeParmServiceImpl.java new file mode 100644 index 000000000..b553cfcef --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/ELeParmServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleParmMapper; +import com.njcn.quality.pojo.po.EleParm; +import com.njcn.quality.service.IEleParmService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:44 + */ +@Service +public class ELeParmServiceImpl extends ServiceImpl implements IEleParmService { + @Override + public boolean addParm(EleParm eleParm) { + return this.save(eleParm); + } + + @Override + public boolean updateParm(EleParm eleParm) { + return this.updateById(eleParm); + } + + @Override + public EleParm findByName(String name) { + return this.lambdaQuery().eq(EleParm::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleActrlServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleActrlServiceImpl.java new file mode 100644 index 000000000..cdbe470b9 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleActrlServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleActrlMapper; +import com.njcn.quality.pojo.po.EleActrl; +import com.njcn.quality.service.IEleActrlService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 20:14 + */ +@Service +public class EleActrlServiceImpl extends ServiceImpl implements IEleActrlService { + @Override + public boolean addActrl(EleActrl eleActrl) { + return this.save(eleActrl); + } + + @Override + public boolean updateActrl(EleActrl eleActrl) { + return this.updateById(eleActrl); + } + + @Override + public EleActrl findByName(String name) { + return this.lambdaQuery().eq(EleActrl::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAirSetServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAirSetServiceImpl.java new file mode 100644 index 000000000..46036d757 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAirSetServiceImpl.java @@ -0,0 +1,19 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.AirSetMapper; +import com.njcn.quality.pojo.po.AirSet; +import com.njcn.quality.service.IEleSetService; +import org.springframework.stereotype.Service; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +@Service +public class EleAirSetServiceImpl extends ServiceImpl implements IEleSetService { + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAirStrategyServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAirStrategyServiceImpl.java new file mode 100644 index 000000000..037ccab0b --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAirStrategyServiceImpl.java @@ -0,0 +1,483 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.CharUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.tocrhz.mqtt.publisher.MqttPublisher; +import com.njcn.common.pojo.enums.common.DataStateEnum; +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.db.constant.DbConstant; +import com.njcn.job.api.JobFeignClient; +import com.njcn.job.model.XxlJobInfo; +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.mapper.AirStrategyMapper; +import com.njcn.quality.mapper.LogicDeviceLineMapper; +import com.njcn.quality.param.AirStrategyParam; +import com.njcn.quality.pojo.dto.AirStrategyDTO; +import com.njcn.quality.pojo.dto.NetAndDevByLineDTO; +import com.njcn.quality.pojo.po.AirSet; +import com.njcn.quality.pojo.po.AirStrategy; +import com.njcn.quality.pojo.vo.AirStrategyVO; +import com.njcn.quality.service.EleAirStrategyService; +import com.njcn.quality.service.IEleSetService; +import com.njcn.web.factory.PageFactory; +import com.njcn.web.utils.RequestUtil; +import com.xxl.job.core.biz.model.ReturnT; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * pqs + * + * @author cdf + * @date 2022/4/21 + */ +@Service +@RequiredArgsConstructor +public class EleAirStrategyServiceImpl extends ServiceImpl implements EleAirStrategyService { + + private final IEleSetService iEleSetService; + + private final JobFeignClient jobFeignClient; + + private final LogicDeviceLineMapper logicDeviceLineMapper; + + + private final MqttPublisher publisher; + + private final AirStrategyMapper airStrategyMapper; + + + @Override + public Page listAirStrategy(AirStrategyParam.AirStrategyQueryParam queryParam) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(Objects.nonNull(queryParam)){ + //查询参数不为空,进行条件填充 + if(StrUtil.isNotBlank(queryParam.getSearchValue())){ + //字典类型表,仅提供名称、编码模糊查询 + queryWrapper + .and(param -> param.like("ele_air_strategy.name",queryParam.getSearchValue())); + } + + //排序 + if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) { + queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy())); + }else{ + //没有排序参数,默认根据sort字段排序,没有排序字段的,根据updateTime更新时间排序 + queryWrapper.orderBy(true, true, "ele_air_strategy.sort"); + } + + } + queryWrapper.eq("ele_air_strategy.state", DataStateEnum.ENABLE.getCode()); + return this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam),PageFactory.getPageSize(queryParam)),queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addAirStrategy(AirStrategyParam airStrategyParam) { + checkDicTypeName(airStrategyParam,false); + AirStrategy airStrategy = new AirStrategy(); + BeanUtils.copyProperties(airStrategyParam, airStrategy); + airStrategy.setState(DataStateEnum.ENABLE.getCode()); + airStrategy.setStatus(0); + airStrategy.setCreateBy(RequestUtil.getUserIndex()); + airStrategy.setCreateTime(LocalDateTime.now()); + airStrategy.setUpdateTime(LocalDateTime.now()); + this.save(airStrategy); + + + + + List list = new ArrayList<>(); + airStrategyParam.getLineIds().forEach((item)->{ + AirSet airSet = new AirSet(airStrategy.getId(),item); + list.add(airSet); + }); + iEleSetService.saveBatch(list); + + + + /* + * 此处做示例,手动指定 + */ + XxlJobInfo xxlJobInfo = new XxlJobInfo(); + //执行器ID,手动指定,此处设置为3,对应xxl_job_group中的executor--测试执行器 + xxlJobInfo.setJobGroup(5); + //任务描述 + xxlJobInfo.setJobDesc("开启空调"); + xxlJobInfo.setAuthor("cdf"); + xxlJobInfo.setScheduleType("CRON"); + //时间表达式需要处理成 秒 分 时 日 月 ? 年,标志指定时间执行一次 + LocalDateTime startTime = LocalDateTimeUtil.parse(airStrategy.getStartTime(), DatePattern.NORM_DATETIME_PATTERN); + xxlJobInfo.setScheduleConf("" + startTime.getSecond() + CharUtil.SPACE + startTime.getMinute() + CharUtil.SPACE + startTime.getHour() + CharUtil.SPACE + startTime.getDayOfMonth() + CharUtil.SPACE + startTime.getMonthValue() + CharUtil.SPACE + "?" + CharUtil.SPACE + startTime.getYear()); + xxlJobInfo.setMisfireStrategy("DO_NOTHING"); + xxlJobInfo.setExecutorRouteStrategy("FIRST"); + xxlJobInfo.setExecutorBlockStrategy("SERIAL_EXECUTION"); + //指定处理器 + xxlJobInfo.setExecutorHandler("airStrategyJob"); + //传递的参数 + xxlJobInfo.setExecutorParam("open"+StrUtil.C_COMMA+airStrategy.getId()); + xxlJobInfo.setGlueType("BEAN"); + xxlJobInfo.setGlueRemark("GLUE代码初始化"); + HttpResult result = jobFeignClient.addJob(xxlJobInfo); + if(result.getCode().equals(ReturnT.FAIL_CODE)){ + throw new BusinessException(EnergyResponseEnum.TASK_CREATE_ERROR); + } + + /* + * 此处做示例,手动指定 + */ + XxlJobInfo xxlJobInfoEnd = new XxlJobInfo(); + //执行器ID,手动指定,此处设置为3,对应xxl_job_group中的executor--测试执行器 + xxlJobInfoEnd.setJobGroup(5); + //任务描述 + xxlJobInfoEnd.setJobDesc("关闭空调"); + xxlJobInfoEnd.setAuthor("cdf"); + xxlJobInfoEnd.setScheduleType("CRON"); + //时间表达式需要处理成 秒 分 时 日 月 ? 年,标志指定时间执行一次 + LocalDateTime startTimeEnd = LocalDateTimeUtil.parse(airStrategy.getEndTime(), DatePattern.NORM_DATETIME_PATTERN); + xxlJobInfoEnd.setScheduleConf("" + startTimeEnd.getSecond() + CharUtil.SPACE + startTimeEnd.getMinute() + CharUtil.SPACE + startTimeEnd.getHour() + CharUtil.SPACE + startTimeEnd.getDayOfMonth() + CharUtil.SPACE + startTimeEnd.getMonthValue() + CharUtil.SPACE + "?" + CharUtil.SPACE + startTimeEnd.getYear()); + xxlJobInfoEnd.setMisfireStrategy("DO_NOTHING"); + xxlJobInfoEnd.setExecutorRouteStrategy("FIRST"); + xxlJobInfoEnd.setExecutorBlockStrategy("SERIAL_EXECUTION"); + //指定处理器 + xxlJobInfoEnd.setExecutorHandler("airStrategyJob"); + //传递的参数 + xxlJobInfoEnd.setExecutorParam("close"+StrUtil.C_COMMA+airStrategy.getId()); + xxlJobInfoEnd.setGlueType("BEAN"); + xxlJobInfoEnd.setGlueRemark("GLUE代码初始化"); + HttpResult result2 = jobFeignClient.addJob(xxlJobInfoEnd); + + if(result2.getCode().equals(ReturnT.FAIL_CODE)){ + throw new BusinessException(EnergyResponseEnum.TASK_CREATE_ERROR); + } + + + + String ids = result.getData().toString()+StrUtil.COMMA+result2.getData().toString(); + airStrategy.setXxlId(ids); + this.updateById(airStrategy); + + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateAirStrategy(AirStrategyParam.AirUpdateParam updateParam) { + AirStrategy airStrategyRes = this.getById(updateParam.getId()); + if(Objects.isNull(airStrategyRes)){ + throw new BusinessException(CommonResponseEnum.FAIL); + } + checkDicTypeName(updateParam,true); + AirStrategy airStrategy = new AirStrategy(); + BeanUtils.copyProperties(updateParam, airStrategy); + airStrategy.setUpdateBy(RequestUtil.getUserIndex()); + airStrategy.setUpdateTime(LocalDateTime.now()); + this.updateById(airStrategy); + + + iEleSetService.removeById(airStrategy.getId()); + + List list = new ArrayList<>(); + updateParam.getLineIds().forEach((item)->{ + AirSet airSet = new AirSet(airStrategy.getId(),item); + list.add(airSet); + }); + iEleSetService.saveBatch(list); + /* + * 此处做示例,手动指定 + */ + String[] jobIds = airStrategyRes.getXxlId().split(StrUtil.COMMA); + XxlJobInfo xxlJobInfo = new XxlJobInfo(); + //执行器ID,手动指定,此处设置为3,对应xxl_job_group中的executor--测试执行器 + xxlJobInfo.setId(Integer.parseInt(jobIds[0])); + xxlJobInfo.setJobGroup(5); + //任务描述 + xxlJobInfo.setJobDesc("开启空调"); + xxlJobInfo.setAuthor("cdf"); + xxlJobInfo.setScheduleType("CRON"); + //时间表达式需要处理成 秒 分 时 日 月 ? 年,标志指定时间执行一次 + LocalDateTime startTime = LocalDateTimeUtil.parse(airStrategy.getStartTime(), DatePattern.NORM_DATETIME_PATTERN); + xxlJobInfo.setScheduleConf("" + startTime.getSecond() + CharUtil.SPACE + startTime.getMinute() + CharUtil.SPACE + startTime.getHour() + CharUtil.SPACE + startTime.getDayOfMonth() + CharUtil.SPACE + startTime.getMonthValue() + CharUtil.SPACE + "?" + CharUtil.SPACE + startTime.getYear()); + xxlJobInfo.setMisfireStrategy("DO_NOTHING"); + xxlJobInfo.setExecutorRouteStrategy("FIRST"); + xxlJobInfo.setExecutorBlockStrategy("SERIAL_EXECUTION"); + //指定处理器 + xxlJobInfo.setExecutorHandler("airStrategyJob"); + //传递的参数 + xxlJobInfo.setExecutorParam("open"+StrUtil.C_COMMA+airStrategy.getId()); + xxlJobInfo.setGlueType("BEAN"); + xxlJobInfo.setGlueRemark("GLUE代码初始化"); + HttpResult result = jobFeignClient.updateJob(xxlJobInfo); + if(result.getCode().equals(ReturnT.FAIL_CODE)){ + throw new BusinessException(EnergyResponseEnum.TASK_CREATE_ERROR); + } + + /* + * 此处做示例,手动指定 + */ + XxlJobInfo xxlJobInfoEnd = new XxlJobInfo(); + xxlJobInfoEnd.setId(Integer.parseInt(jobIds[1])); + //执行器ID,手动指定,此处设置为3,对应xxl_job_group中的executor--测试执行器 + xxlJobInfoEnd.setJobGroup(5); + //任务描述 + xxlJobInfoEnd.setJobDesc("关闭空调"); + xxlJobInfoEnd.setAuthor("cdf"); + xxlJobInfoEnd.setScheduleType("CRON"); + //时间表达式需要处理成 秒 分 时 日 月 ? 年,标志指定时间执行一次 + LocalDateTime startTimeEnd = LocalDateTimeUtil.parse(airStrategy.getEndTime(), DatePattern.NORM_DATETIME_PATTERN); + xxlJobInfoEnd.setScheduleConf("" + startTimeEnd.getSecond() + CharUtil.SPACE + startTimeEnd.getMinute() + CharUtil.SPACE + startTimeEnd.getHour() + CharUtil.SPACE + startTimeEnd.getDayOfMonth() + CharUtil.SPACE + startTimeEnd.getMonthValue() + CharUtil.SPACE + "?" + CharUtil.SPACE + startTimeEnd.getYear()); + xxlJobInfoEnd.setMisfireStrategy("DO_NOTHING"); + xxlJobInfoEnd.setExecutorRouteStrategy("FIRST"); + xxlJobInfoEnd.setExecutorBlockStrategy("SERIAL_EXECUTION"); + //指定处理器 + xxlJobInfoEnd.setExecutorHandler("airStrategyJob"); + //传递的参数 + xxlJobInfoEnd.setExecutorParam("close"+StrUtil.C_COMMA+airStrategy.getId()); + xxlJobInfoEnd.setGlueType("BEAN"); + xxlJobInfoEnd.setGlueRemark("GLUE代码初始化"); + HttpResult result2 = jobFeignClient.updateJob(xxlJobInfoEnd); + + if(result2.getCode().equals(ReturnT.FAIL_CODE)){ + throw new BusinessException(EnergyResponseEnum.TASK_CREATE_ERROR); + } + + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteAirStrategy(String id) { + AirStrategy airStrategy = this.getById(id); + if(Objects.isNull(airStrategy)){ + return true; + } + + if(airStrategy.getStatus() == 1){ + throw new BusinessException(EnergyResponseEnum.TASK_RUNING); + } + + this.lambdaUpdate() + .set(AirStrategy::getState, DataStateEnum.DELETED.getCode()) + .eq(AirStrategy::getId,id) + .update(); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(AirSet::getId,id); + iEleSetService.remove(lambdaQueryWrapper); + + String[] arr = airStrategy.getXxlId().split(StrUtil.COMMA); + + for(String xxlId : arr){ + HttpResult result = jobFeignClient.removeJob(Integer.parseInt(xxlId)); + if(result.getCode().equals(StrUtil.toString(ReturnT.FAIL_CODE))){ + throw new BusinessException(EnergyResponseEnum.TASK_DEL_ERROR); + } + } + + return true; + } + + + + @Override + public AirStrategyVO findById(String id) { + AirStrategy airStrategy = this.lambdaQuery().eq(AirStrategy::getId,id).one(); + if(Objects.isNull(airStrategy)){ + throw new BusinessException(CommonResponseEnum.NO_DATA); + } + List list = iEleSetService.lambdaQuery().eq(AirSet::getId,id).list(); + List lineIds = list.stream().map(AirSet::getLineId).collect(Collectors.toList()); + + AirStrategyVO airStrategyVO = new AirStrategyVO(); + BeanUtils.copyProperties(airStrategy,airStrategyVO); + airStrategyVO.setLineIds(lineIds); + return airStrategyVO; + } + + @Override + public boolean startAirStrategy(String id){ + AirStrategy airStrategy = getById(id); + if(Objects.isNull(airStrategy)){ + throw new BusinessException(CommonResponseEnum.FAIL); + } + String[] ids = airStrategy.getXxlId().split(StrUtil.COMMA); + if(airStrategy.getStatus() == 0){ + //可以启动 + + for(String xxlId : ids){ + HttpResult result =jobFeignClient.startTask(Integer.parseInt(xxlId)); + if(result.getCode().equals(StrUtil.toString(ReturnT.FAIL_CODE))){ + throw new BusinessException(EnergyResponseEnum.TASK_RUNING); + } + } + + + this.lambdaUpdate().set(AirStrategy::getStatus,1).eq(AirStrategy::getId,id).update(); + + }else if(airStrategy.getStatus() == 1){ + //已经执行中 + + for(String xxlId : ids){ + HttpResult result =jobFeignClient.stopJob(Integer.parseInt(xxlId)); + if(result.getCode().equals(StrUtil.toString(ReturnT.FAIL_CODE))){ + throw new BusinessException(EnergyResponseEnum.TASK_DEL_ERROR); + } + } + this.lambdaUpdate().set(AirStrategy::getStatus,0).eq(AirStrategy::getId,id).update(); + }else { + //已经完成 + throw new BusinessException(EnergyResponseEnum.TASK_HAS_START); + } + + return true; + } + + + @Override + public boolean dealAirStrategyId(String id,String operation){ + AirStrategy airStrategy = this.getById(id); + if(Objects.isNull(airStrategy)){ + throw new BusinessException(CommonResponseEnum.FAIL); + } + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(AirSet::getId,id); + List list = iEleSetService.list(lambdaQueryWrapper); + if(CollectionUtil.isNotEmpty(list)){ + List lineIds = list.stream().map(AirSet::getLineId).collect(Collectors.toList()); + List netDevList = logicDeviceLineMapper.getNetAndDevByLineIds(lineIds); + + + if(CollectionUtil.isNotEmpty(netDevList)){ + for(NetAndDevByLineDTO netAndDevByLineDTO: netDevList){ + + Gson gson = new Gson(); + String array = "ACInStat"; + String power =""; + if("open".equals(operation)){ + //开启空调 + for(int i=0;i<4;i++){ + if(i== 0){ + power = "On"; + array = "ACInStat"; + }else if(i==1){ + power = airStrategy.getTemperature().toString(); + array = "ACInSetTmp"; + }else if(i== 2){ + power = airStrategy.getMode(); + array = "ACInMode"; + }else { + power = airStrategy.getWind(); + array = "ACInSpeed"; + } + AirStrategyDTO airStrategyDTO = new AirStrategyDTO(); + airStrategyDTO.setMid(1); + airStrategyDTO.setDeviceId(netAndDevByLineDTO.getDevId()); + airStrategyDTO.setTimestamp(Calendar.getInstance().getTimeInMillis()); + airStrategyDTO.setExpire(-1); + airStrategyDTO.setType("CMD_DEV_CTRL"); + AirStrategyDTO.Param param = new AirStrategyDTO.Param(); + param.setLineId(netAndDevByLineDTO.getLineId()); + param.setAction(array); + param.setParm(power); + airStrategyDTO.setParam(param); + String json = gson.toJson(airStrategyDTO); + System.out.println(json); + String topic = "/platform/devcmd/v1/"+netAndDevByLineDTO.getNdid(); + publisher.send(topic,json,1,false); + try { + Thread.sleep(8000); + System.out.println("睡了8s"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }else { + //关闭空调 + power = "Off"; + AirStrategyDTO airStrategyDTO = new AirStrategyDTO(); + airStrategyDTO.setMid(1); + airStrategyDTO.setDeviceId(netAndDevByLineDTO.getDevId()); + airStrategyDTO.setTimestamp(Calendar.getInstance().getTimeInMillis()); + airStrategyDTO.setExpire(-1); + airStrategyDTO.setType("CMD_DEV_CTRL"); + AirStrategyDTO.Param param = new AirStrategyDTO.Param(); + param.setLineId(netAndDevByLineDTO.getLineId()); + param.setAction(array); + param.setParm(power); + airStrategyDTO.setParam(param); + String json = gson.toJson(airStrategyDTO); + System.out.println(json); + String topic = "/platform/devcmd/v1/"+netAndDevByLineDTO.getNdid(); + publisher.send(topic,json,1,false); + + + } + + + + try { + Thread.sleep(8000); + System.out.println("切换监测点睡了5s"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + System.out.println(operation); + if(operation.equals("close")){ + AirStrategy air = new AirStrategy(); + air.setId(airStrategy.getId()); + air.setStatus(2); + airStrategyMapper.updateById(air); + } + } + + } + + + return true; + } + + + + /** + * 校验参数,检查是否存在相同名称的字典类型 + */ + private void checkDicTypeName(AirStrategyParam airStrategyParam, boolean isExcludeSelf) { + LambdaQueryWrapper netDevLambdaQueryWrapper = new LambdaQueryWrapper<>(); + netDevLambdaQueryWrapper + .eq(AirStrategy::getName,airStrategyParam.getName()) + .eq(AirStrategy::getState,DataStateEnum.ENABLE.getCode()); + //更新的时候,需排除当前记录 + if(isExcludeSelf){ + if(airStrategyParam instanceof AirStrategyParam.AirUpdateParam){ + netDevLambdaQueryWrapper.ne(AirStrategy::getId,((AirStrategyParam.AirUpdateParam) airStrategyParam).getId()); + } + } + int countByAccount = this.count(netDevLambdaQueryWrapper); + //大于等于1个则表示重复 + if (countByAccount >= 1) { + throw new BusinessException(EnergyResponseEnum.NET_DEV_NAME_REPEAT); + } + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAlmServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAlmServiceImpl.java new file mode 100644 index 000000000..01b721029 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleAlmServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleAlmMapper; +import com.njcn.quality.pojo.po.EleALM; +import com.njcn.quality.service.IEleAlmService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 18:49 + */ +@Service +public class EleAlmServiceImpl extends ServiceImpl implements IEleAlmService { + @Override + public boolean addAlm(EleALM eleAlM) { + return this.save(eleAlM); + } + + @Override + public boolean updateAlm(EleALM eleAlM) { + return this.updateById(eleAlM); + } + + @Override + public EleALM findByName(String name) { + return this.lambdaQuery().eq(EleALM::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleBindServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleBindServiceImpl.java new file mode 100644 index 000000000..bd7d48c06 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleBindServiceImpl.java @@ -0,0 +1,97 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.quality.mapper.EleBindMapper; +import com.njcn.quality.param.ElDataBindParam; +import com.njcn.quality.pojo.constant.TableName; +import com.njcn.quality.pojo.po.DataArray; +import com.njcn.quality.pojo.po.EleBind; +import com.njcn.quality.pojo.vo.YunCaiDataVO; +import com.njcn.quality.service.IEleBindService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * pqs + * + * @author cdf + * @date 2022/3/30 + */ +@Service +@RequiredArgsConstructor +public class EleBindServiceImpl extends ServiceImpl implements IEleBindService { + + private final InfluxDbUtils influxDbUtils; + + @Override + public boolean addBind(ElDataBindParam elDataBindParam) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + List lineList = elDataBindParam.getList().stream().map(EleBind::getLineId).collect(Collectors.toList()); + lambdaQueryWrapper.in(EleBind::getLineId, lineList); + this.remove(lambdaQueryWrapper); + return this.saveBatch(elDataBindParam.getList()); + } + + @Override + public List getList(String ndid) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(EleBind::getNdid, ndid); + return this.list(lambdaQueryWrapper); + } + + @Override + public List getLineListDetail(List lineList) { + List listRes = new ArrayList<>(); + for (String lineId : lineList) { + HashMap map = new HashMap<>(); + List arrList = this.baseMapper.getArrByLineId(lineId, null); + if (CollectionUtil.isNotEmpty(arrList)) { + Map> classMap = new HashMap<>(); + arrList.stream().filter(item -> item.getClassId() != null).collect(Collectors.groupingBy(DataArray::getClassId, Collectors.toList())) + .forEach(classMap::put); + classMap.forEach((className, dataArrList) -> { + StringBuilder stringBuilderMax = new StringBuilder("select "); + for (int j = 0; j < dataArrList.size(); j++) { + if (j == dataArrList.size() - 1) { + stringBuilderMax.append(dataArrList.get(j).getName()).append(" "); + } else { + stringBuilderMax.append(dataArrList.get(j).getName()).append(", "); + } + } + if (className.equals(TableName.powerData) || className.equals(TableName.powerQuality)) { + stringBuilderMax.append("from ").append(className).append("_Real").append(" where").append(" LineId='" + lineId + "'").append(" and Phase = 'T'"); + List> mapList = influxDbUtils.getResult(stringBuilderMax.toString()); + if (CollectionUtil.isNotEmpty(mapList)) { + mapList.get(0).forEach((i, k) -> map.put(i, k != null ? k.toString() : "/")); + } + } else { + //空调 + stringBuilderMax.append("from ").append(className).append("_Real").append(" where").append(" LineId='" + lineId + "'"); + List> mapList = influxDbUtils.getResult(stringBuilderMax.toString()); + if (CollectionUtil.isNotEmpty(mapList)) { + for (int i = 0; i < mapList.size(); i++) { + mapList.get(i).forEach((key, value) -> { + if (Objects.nonNull(value)) { + map.put(key, value.toString()); + } + }); + } + } + } + }); + } + YunCaiDataVO yunCaiDataVO = new YunCaiDataVO(); + yunCaiDataVO.setLineId(lineId); + yunCaiDataVO.setMap(map); + listRes.add(yunCaiDataVO); + } + return listRes; + + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleCtrlServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleCtrlServiceImpl.java new file mode 100644 index 000000000..b087e2916 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleCtrlServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleCtrlMapper; +import com.njcn.quality.pojo.po.EleCtrl; +import com.njcn.quality.service.IEleCtrlService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 20:02 + */ +@Service +public class EleCtrlServiceImpl extends ServiceImpl implements IEleCtrlService { + @Override + public boolean addCtrl(EleCtrl eleCtrl) { + return this.save(eleCtrl); + } + + @Override + public boolean updateCtrl(EleCtrl eleCtrl) { + return this.updateById(eleCtrl); + } + + @Override + public EleCtrl findByName(String name) { + return this.lambdaQuery().eq(EleCtrl::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDiServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDiServiceImpl.java new file mode 100644 index 000000000..1c7f2c587 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDiServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleDiMapper; +import com.njcn.quality.pojo.po.EleDi; +import com.njcn.quality.service.IEleDiService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:18 + */ +@Service +public class EleDiServiceImpl extends ServiceImpl implements IEleDiService { + @Override + public boolean addDi(EleDi eleDi) { + return this.save(eleDi); + } + + @Override + public boolean updateDi(EleDi eleDi) { + return this.updateById(eleDi); + } + + @Override + public EleDi findByName(String name) { + return this.lambdaQuery().eq(EleDi::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDictServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDictServiceImpl.java new file mode 100644 index 000000000..4728bc079 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDictServiceImpl.java @@ -0,0 +1,146 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.db.constant.DbConstant; +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.mapper.EleDictMapper; +import com.njcn.quality.param.DictParam; +import com.njcn.quality.pojo.po.EleDict; +import com.njcn.quality.service.IEleDictService; +import com.njcn.web.factory.PageFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.Objects; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/24 10:59 + */ +@Service +public class EleDictServiceImpl extends ServiceImpl implements IEleDictService { + + @Override + public EleDict findDictByName(String name) { + return this.lambdaQuery().eq(EleDict::getName,name).eq(EleDict::getState, DataStateEnum.ENABLE.getCode()).one(); + } + + @Override + public EleDict findTableName(String name) { + EleDict tableDict = new EleDict(); + EleDict dict = this.lambdaQuery().eq(EleDict::getName,name).eq(EleDict::getState, DataStateEnum.ENABLE.getCode()).one(); + if (Objects.isNull(dict)){ + throw new BusinessException(EnergyResponseEnum.NO_DICT); + } else { + tableDict = this.lambdaQuery().eq(EleDict::getId,dict.getPid()).eq(EleDict::getPid,0).one(); + } + if (Objects.isNull(tableDict)){ + throw new BusinessException(EnergyResponseEnum.NO_TABLE); + } + return tableDict; + } + + @Override + public boolean delete(String id) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(EleDict::getPid,id).eq(EleDict::getState,DataStateEnum.ENABLE.getCode()); + int resCount = this.count(lambdaQueryWrapper); + if(resCount>0){ + throw new BusinessException(EnergyResponseEnum.CHILDREN_EXIT); + } + + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.lambda().eq(EleDict::getState,DataStateEnum.ENABLE.getCode()).set(EleDict::getState,DataStateEnum.DELETED.getCode()).eq(EleDict::getId,id); + return this.update(updateWrapper); + } + + @Override + public Page getList(DictParam.DictQueryParam dictQueryParam) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(Objects.nonNull(dictQueryParam)){ + //查询参数不为空,进行条件填充 + if(StrUtil.isNotBlank(dictQueryParam.getSearchValue())){ + //字典类型表,仅提供名称、编码模糊查询 + queryWrapper + .and(param -> param.like("ele_dict.name",dictQueryParam.getSearchValue()) + .or().like("ele_dict.another_name",dictQueryParam.getSearchValue())); + } + + //排序 + if (ObjectUtil.isAllNotEmpty(dictQueryParam.getSortBy(), dictQueryParam.getOrderBy())) { + queryWrapper.orderBy(true, dictQueryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(dictQueryParam.getSortBy())); + }else{ + queryWrapper.eq("ele_dict.pid",dictQueryParam.getPid()); + //没有排序参数,默认根据sort字段排序,没有排序字段的,根据updateTime更新时间排序 + queryWrapper.orderBy(true, true, "ele_dict.update_time"); + } + + } + queryWrapper.eq("ele_dict.state", DataStateEnum.ENABLE.getCode()); + return this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(dictQueryParam),PageFactory.getPageSize(dictQueryParam)),queryWrapper); + + } + + + + @Override + public EleDict getById(String id) { + return this.getById(id); + } + + + @Override + public boolean add(DictParam dictParam) { + checkName(dictParam,true); + EleDict eleDict = new EleDict(); + BeanUtils.copyProperties(dictParam,eleDict); + eleDict.setState(DataStateEnum.ENABLE.getCode()); + return this.save(eleDict); + } + + @Override + public boolean update(DictParam.DictUpdateParam dictUpdateParam) { + checkName(dictUpdateParam,false); + EleDict eleDict = new EleDict(); + BeanUtils.copyProperties(dictUpdateParam,eleDict); + return this.updateById(eleDict); + + } + + + + + /** + * 名称重复校验 + * @author cdf + * @date 2022/3/23 + */ + private void checkName(DictParam dictParam,boolean flag){ + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(EleDict::getName,dictParam.getName()) + .eq(EleDict::getState,DataStateEnum.ENABLE.getCode()); + //修改 + if(!flag){ + if(dictParam instanceof DictParam.DictUpdateParam ){ + lambdaQueryWrapper.ne(EleDict::getId,((DictParam.DictUpdateParam)dictParam).getId()); + } + } + int res = this.count(lambdaQueryWrapper); + //大于等于1个则表示重复 + if (res >= 1) { + throw new BusinessException(EnergyResponseEnum.DIC_NAME_REPEAT); + } + + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDoServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDoServiceImpl.java new file mode 100644 index 000000000..5d4dd17c4 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleDoServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleDoMapper; +import com.njcn.quality.pojo.po.EleDo; +import com.njcn.quality.service.IEleDoService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:29 + */ +@Service +public class EleDoServiceImpl extends ServiceImpl implements IEleDoService { + @Override + public boolean addDo(EleDo eleDo) { + return this.save(eleDo); + } + + @Override + public boolean updateDo(EleDo eleDo) { + return this.updateById(eleDo); + } + + @Override + public EleDo findByName(String name) { + return this.lambdaQuery().eq(EleDo::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEpdPqdServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEpdPqdServiceImpl.java new file mode 100644 index 000000000..d462d8b24 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEpdPqdServiceImpl.java @@ -0,0 +1,42 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleEpdMapper; +import com.njcn.quality.pojo.po.EleEpdPqd; +import com.njcn.quality.service.IEleEpdPqdService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 10:08 + */ +@Service +public class EleEpdPqdServiceImpl extends ServiceImpl implements IEleEpdPqdService { + + + @Override + public boolean addEpd(EleEpdPqd eleEpdPqd) { + return this.save(eleEpdPqd); + } + + @Override + public boolean updateEpd(EleEpdPqd eleEpdPqd) { + return this.updateById(eleEpdPqd); + } + + @Override + public EleEpdPqd findByName(String name,String phase) { + return this.lambdaQuery().eq(EleEpdPqd::getName,name).eq(EleEpdPqd::getPhase,phase).one(); + } + + @Override + public List getAllEpd() { + return this.lambdaQuery().orderByDesc(EleEpdPqd::getIdx).list(); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEvtParamServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEvtParamServiceImpl.java new file mode 100644 index 000000000..941285091 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEvtParamServiceImpl.java @@ -0,0 +1,43 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleEvtParamMapper; +import com.njcn.quality.pojo.po.EleEvtParm; +import com.njcn.quality.service.IEleEvtParamService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 16:20 + */ +@Service +public class EleEvtParamServiceImpl extends ServiceImpl implements IEleEvtParamService { + + @Override + public boolean addEleEvtParam(EleEvtParm eleEvtParam) { + return this.save(eleEvtParam); + } + + @Override + public boolean updateEleEvtParam(EleEvtParm eleEvtParam) { + return this.updateById(eleEvtParam); + } + + @Override + public EleEvtParm findByName(String name) { + return this.lambdaQuery().eq(EleEvtParm::getName,name).one(); + } + + @Override + public boolean deleteById(String id) { + QueryWrapper eleEvtParamQueryWrapper = new QueryWrapper<>(); + eleEvtParamQueryWrapper.eq("Pid",id); + return this.remove(eleEvtParamQueryWrapper); + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEvtServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEvtServiceImpl.java new file mode 100644 index 000000000..2ffa88bb4 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleEvtServiceImpl.java @@ -0,0 +1,34 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleEvtMapper; +import com.njcn.quality.pojo.po.EleEvt; +import com.njcn.quality.service.IEleEvtService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 15:12 + */ +@Service +public class EleEvtServiceImpl extends ServiceImpl implements IEleEvtService { + + @Override + public EleEvt addEvt(EleEvt eleEvt) { + this.save(eleEvt); + return eleEvt; + } + + @Override + public boolean updateEvt(EleEvt eleEvt) { + return this.updateById(eleEvt); + } + + @Override + public EleEvt findByName(String name) { + return this.lambdaQuery().eq(EleEvt::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleInformationServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleInformationServiceImpl.java new file mode 100644 index 000000000..3b33146b2 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleInformationServiceImpl.java @@ -0,0 +1,282 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.quality.mapper.EleInformationMapper; +import com.njcn.quality.pojo.constant.ModelState; +import com.njcn.quality.pojo.dto.OnlineRateDTO; +import com.njcn.quality.pojo.po.*; +import com.njcn.quality.pojo.vo.EleIntegrityVO; +import com.njcn.quality.service.IEleInformationService; +import com.njcn.quality.service.ILogicAccessService; +import com.njcn.quality.service.ILogicDeviceLineService; +import com.njcn.quality.service.INetDevService; +import lombok.AllArgsConstructor; +import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/19 10:51 + */ +@Service +@AllArgsConstructor +public class EleInformationServiceImpl extends ServiceImpl implements IEleInformationService { + + private final INetDevService netDevService; + + private final ILogicDeviceLineService logicDeviceLineService; + + private final InfluxDbUtils influxDbUtils; + + private final ILogicAccessService logicAccessService; + + private final Integer DAY_SECOND = 60*60*24; + + @Override + public void addInformation(List list) { + this.saveBatch(list); + } + + @Override + public List getDeviceTime(String startTime, String endTime) { + List result = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List list = new ArrayList<>(); + //获取当天information表中的数据 + List informationList = this.lambdaQuery().ge(EleInformation::getUpdateTime,startTime).le(EleInformation::getUpdateTime,endTime).list(); + if (!CollectionUtils.isEmpty(informationList)){ + list = informationList.stream().map(EleInformation::getDid).collect(Collectors.toList()); + } + //获取所有的装置 + List onlineList = logicAccessService.getAllDev().stream().map(LogicAccess::getDid).collect(Collectors.toList()); + onlineList.removeAll(list); + //根据装置的id进行分组 + Map> groupMap = informationList.stream().collect(Collectors.groupingBy(EleInformation::getDid)); + //先处理information表中的数据 + try { + for (String key : groupMap.keySet()) { + int offTime = 0; + int onTime = 0; + OnlineRateDTO onlineRateDTO = new OnlineRateDTO(); + List infoList = groupMap.get(key); + if (infoList.size() > 1){ + //获取最早一条记录 + EleInformation first = infoList.stream().min(Comparator.comparing(EleInformation::getUpdateTime)).get(); + //频繁的上下线 + //将上线和下线分组 + Map> typeMap = infoList.stream().collect(Collectors.groupingBy(EleInformation::getType)); + List off = typeMap.get(0); + List on = typeMap.get(1); + if (first.getType() == 0){ + if (off.size() == on.size()){ + for (int i = 0; i < off.size(); i++) { + offTime = offTime + (int) (on.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - off.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } + } else { + for (int i = 0; i < off.size(); i++) { + if (i == off.size() - 1){ + offTime = offTime + (int) (sdf.parse(endTime).getTime() - off.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } else { + offTime = offTime + (int) (on.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - off.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } + } + } + onTime = DAY_SECOND-offTime; + } else { + if (off.size() == on.size()){ + for (int i = 0; i < on.size(); i++) { + onTime = onTime + (int) (off.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - on.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } + } else { + for (int i = 0; i < on.size(); i++) { + if (i == on.size() - 1){ + onTime = onTime + (int) (sdf.parse(endTime).getTime() - on.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } else { + onTime = onTime + (int) (off.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - on.get(i).getUpdateTime().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } + } + } + offTime = DAY_SECOND-onTime; + } + } else { + LocalDateTime updateTime = infoList.get(0).getUpdateTime(); + if (Objects.equals(infoList.get(0).getType(),0)) { + onTime = (int) (updateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - sdf.parse(startTime).getTime()) / 1000; + offTime = (int) (sdf.parse(endTime).getTime() - updateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } else { + offTime = (int) (updateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() - sdf.parse(startTime).getTime()) / 1000; + onTime = (int) (sdf.parse(endTime).getTime() - updateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()) / 1000; + } + } + onlineRateDTO.setDeviceId(infoList.get(0).getDid()); + onlineRateDTO.setOnlineTime(onTime); + onlineRateDTO.setOfflineTime(offTime); + onlineRateDTO.setOnlineRate(Double.parseDouble(String.format("%.2f",onTime*1.0/DAY_SECOND*100))); + onlineRateDTO.setTime(sdf.parse(startTime).getTime()); + result.add(onlineRateDTO); + } + //后处理information表中没有的数据 + //1.判断有没有最新的记录,没有则不做记录 2.如果有最新的记录,判断最后一条记录是上线还是下线 + if(!CollectionUtils.isEmpty(onlineList)){ + for (String s : onlineList) { + List eleInformationList = this.lambdaQuery().eq(EleInformation::getDid,s).orderByDesc(EleInformation::getUpdateTime).list(); + if (!CollectionUtils.isEmpty(eleInformationList)){ + EleInformation pojo = eleInformationList.stream().findFirst().get(); + OnlineRateDTO onlineRateDTO = new OnlineRateDTO(); + if (Objects.equals(pojo.getType(), ModelState.offline)){ + onlineRateDTO.setOfflineTime(DAY_SECOND); + onlineRateDTO.setOnlineTime(0); + onlineRateDTO.setOnlineRate(0.0); + } else { + onlineRateDTO.setOfflineTime(0); + onlineRateDTO.setOnlineTime(DAY_SECOND); + onlineRateDTO.setOnlineRate(100.0); + } + onlineRateDTO.setTime(sdf.parse(startTime).getTime()); + onlineRateDTO.setDeviceId(s); + result.add(onlineRateDTO); + } + } + } + } catch (ParseException e) { + e.getMessage(); + } + return result; + } + + @Override + public List getOnlineRateTree(String startTime, String endTime) { + List netDevIntegrity = new ArrayList<>(),logicDevIntegrity = new ArrayList<>(); + Map> deviceGroup = new HashMap<>(); + //获取所有网关 + List netDevList = netDevService.getAllNetDev(); + List netDevId = netDevList.stream().map(NetDev::getId).collect(Collectors.toList()); + //获取网关下所有的逻辑设备 + List logicDevList = logicDeviceLineService.getLogicDevByList(netDevId); + List devId = logicDevList.stream().map(LogicDev::getDid).collect(Collectors.toList()); + //获取装置通讯状态 + List logicAccessList = logicAccessService.getLogicDevByList(netDevId); + netDevList.forEach(item->{ + EleIntegrityVO eleIntegrityVO = new EleIntegrityVO(); + BeanUtil.copyProperties(item,eleIntegrityVO); + eleIntegrityVO.setComFlag(item.getComFlag()); + eleIntegrityVO.setPid("0"); + netDevIntegrity.add(eleIntegrityVO); + }); + List devList = getAreaList(startTime,endTime,devId); + if (!CollectionUtils.isEmpty(devList)){ + deviceGroup = devList.stream().collect(Collectors.groupingBy(EleOnlineRate::getDeviceId)); + } + for (LogicDev item : logicDevList) { + EleIntegrityVO eleIntegrityVO = new EleIntegrityVO(); + BeanUtil.copyProperties(item,eleIntegrityVO); + eleIntegrityVO.setInfo(item.getPosition()); + logicAccessList.forEach(item2->{ + if (Objects.equals(item.getDid(),item2.getDid())){ + if (Objects.equals(item2.getState(), ModelState.ACCESS)){ + eleIntegrityVO.setComFlag(DataStateEnum.ENABLE.getCode()); + } else { + eleIntegrityVO.setComFlag(DataStateEnum.DELETED.getCode()); + } + } + }); + for (String device:deviceGroup.keySet()) { + if (Objects.equals(device,item.getDid())){ + double dd = 0.0; + List list = deviceGroup.get(device); + if (!CollectionUtils.isEmpty(list)){ + dd = BigDecimal.valueOf(Math.min(list.stream().mapToDouble(EleOnlineRate::getOnlineRate).sum()/list.size(), 100.00)).setScale(2, RoundingMode.HALF_UP).doubleValue(); + } + eleIntegrityVO.setIntegrity(dd); + } + } + logicDevIntegrity.add(eleIntegrityVO); + } + dealAverageAndChildrenData(netDevIntegrity,logicDevIntegrity,startTime,endTime); + return netDevIntegrity; + } + + + private void dealAverageAndChildrenData(List targetData, List childrenData,String startTime,String endTime) { + Map> groupLine = childrenData.stream().collect(Collectors.groupingBy(EleIntegrityVO::getPid)); + targetData = targetData.stream().peek(integrityVO -> { + if (!CollectionUtils.isEmpty(groupLine.get(integrityVO.getId()))) { + List integrityVOList = new ArrayList<>(); + integrityVOList = groupLine.get(integrityVO.getId()); + integrityVO.setChildren(groupLine.get(integrityVO.getId())); + List devList = new ArrayList<>(); + List areaList = new ArrayList<>(); + devList = integrityVOList.stream().map(EleIntegrityVO::getDid).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(devList)){ + //查询结果 + areaList = getAreaList(startTime,endTime,devList); + if(!CollectionUtils.isEmpty(areaList)){ + integrityVO.setIntegrity(getAreaData(areaList)); + } + } + } + }).collect(Collectors.toList()); + } + + + + /** + * 终端在线率 + * 区域(日/月统计) + */ + private List getAreaList(String startTime, String endTime, List lineList) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("("); + for (int i = 0; i < lineList.size(); i++) { + if (lineList.size() - i != 1) { + stringBuilder.append("device_id = '").append(lineList.get(i)).append("' or "); + } else { + stringBuilder.append("device_id = '").append(lineList.get(i)).append("')"); + } + } + String sql = "SELECT * FROM ele_online_rate where "+stringBuilder+" and time >='"+startTime+"' and time <= '"+endTime+"' tz('Asia/Shanghai')"; + QueryResult sqlResult = influxDbUtils.query(sql); + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); + List onlineRateList = resultMapper.toPOJO(sqlResult, EleOnlineRate.class); + onlineRateList.forEach(item->{ + item.setTime(item.getTime().plusMillis(TimeUnit.HOURS.toMillis(8))); + }); + return onlineRateList; + } + + /** + * 根据时间分组,求区域的终端在线率 + */ + private Double getAreaData(List list) { + double result = 0.0; + Map> map = list.stream().collect(Collectors.groupingBy(EleOnlineRate::getTime)); + for (Instant key : map.keySet()) { + List value = map.get(key); + double data = value.stream().mapToDouble(EleOnlineRate::getOnlineRate).sum(); + //区域某一天的终端在线率 + data = data/value.size(); + //区域时间范围终端在线率之和 + result = result + data; + } + return BigDecimal.valueOf(Math.min(result/map.size(), 100.00)).setScale(2, RoundingMode.HALF_UP).doubleValue(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleIntegrityServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleIntegrityServiceImpl.java new file mode 100644 index 000000000..e0a4b850a --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleIntegrityServiceImpl.java @@ -0,0 +1,208 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.quality.mapper.EleIntegrityMapper; +import com.njcn.quality.pojo.constant.ModelState; +import com.njcn.quality.pojo.dto.ElePublicDTO; +import com.njcn.quality.pojo.po.*; +import com.njcn.quality.pojo.vo.EleIntegrityVO; +import com.njcn.quality.service.*; +import lombok.AllArgsConstructor; +import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/31 19:40 + */ +@AllArgsConstructor +@Service +public class EleIntegrityServiceImpl extends ServiceImpl implements IEleIntegrityService { + + private final INetDevService netDevService; + + private final ILogicDeviceLineService logicDeviceLineService; + + private final IEleLineService eleLineService; + + private final ILogicAccessService logicAccessService; + + private final InfluxDbUtils influxDbUtils; + + @Override + public List getIntegrityTree(String startTime, String endTime) { + List netDevIntegrity = new ArrayList<>(),logicDevIntegrity = new ArrayList<>(),lineIntegrity = new ArrayList<>(); + //获取所有网关 + List netDevList = netDevService.getAllNetDev(); + List netDevId = netDevList.stream().map(NetDev::getId).collect(Collectors.toList()); + //获取网关下所有的逻辑设备 + List logicDevList = logicDeviceLineService.getLogicDevByList(netDevId); + //获取逻辑设备绑定的监测点 + List eleLineList = eleLineService.getAllLines(logicDevList.stream().map(LogicDev::getId).collect(Collectors.toList())); + //获取装置通讯状态 + List logicAccessList = logicAccessService.getLogicDevByList(netDevId); + netDevList.forEach(item->{ + EleIntegrityVO eleIntegrityVO = new EleIntegrityVO(); + BeanUtil.copyProperties(item,eleIntegrityVO); + eleIntegrityVO.setComFlag(item.getComFlag()); + eleIntegrityVO.setPid("0"); + netDevIntegrity.add(eleIntegrityVO); + }); + logicDevList.forEach(item->{ + EleIntegrityVO eleIntegrityVO = new EleIntegrityVO(); + BeanUtil.copyProperties(item,eleIntegrityVO); + eleIntegrityVO.setInfo(item.getPosition()); + logicAccessList.forEach(item2->{ + if (Objects.equals(item.getDid(),item2.getDid())){ + if (Objects.equals(item2.getState(), ModelState.ACCESS)){ + eleIntegrityVO.setComFlag(DataStateEnum.ENABLE.getCode()); + } else { + eleIntegrityVO.setComFlag(DataStateEnum.DELETED.getCode()); + } + } + }); + logicDevIntegrity.add(eleIntegrityVO); + }); + List lineList = getLineData(startTime,endTime); + eleLineList.forEach(item->{ + EleIntegrityVO eleIntegrityVO = new EleIntegrityVO(); + BeanUtil.copyProperties(item,eleIntegrityVO); + eleIntegrityVO.setInfo(item.getPosition()); + if (!CollectionUtils.isEmpty(lineList)){ + lineList.forEach(item2->{ + if (Objects.equals(item.getLineId(),item2.getLineId())){ + eleIntegrityVO.setIntegrity(item2.getData()); + } + }); + } + lineIntegrity.add(eleIntegrityVO); + }); + dealAverageAndChildrenData(logicDevIntegrity,lineIntegrity,true,startTime,endTime); + dealAverageAndChildrenData(netDevIntegrity,logicDevIntegrity,false,startTime,endTime); + return netDevIntegrity; + } + + private void dealAverageAndChildrenData(List targetData, List childrenData, boolean isLine,String startTime,String endTime) { + Map> groupLine = childrenData.stream().collect(Collectors.groupingBy(EleIntegrityVO::getPid)); + targetData = targetData.stream().peek(integrityVO -> { + if (!CollectionUtils.isEmpty(groupLine.get(integrityVO.getId()))) { + List lineList = new ArrayList<>(); + List areaList = new ArrayList<>(); + //监测点集合 + List integrityVOList = new ArrayList<>(); + if (isLine) { + integrityVOList = groupLine.get(integrityVO.getId()); + } else { + //子集合,从子集合中拿出所有的监测点集合 + List childIntegrityVOList = groupLine.get(integrityVO.getId()); + for (EleIntegrityVO vo : childIntegrityVOList) { + integrityVOList.addAll(vo.getLineData()); + } + } + integrityVO.setLineData(integrityVOList); + integrityVO.setChildren(groupLine.get(integrityVO.getId())); + lineList = integrityVOList.stream().map(EleIntegrityVO::getLineId).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(lineList)){ + //查询结果 + areaList = getAreaList(startTime,endTime,lineList); + if(!CollectionUtils.isEmpty(areaList)){ + integrityVO.setIntegrity(getAreaData(areaList)); + } + } + } + }).collect(Collectors.toList()); + } + + + /** + * 数据完整性 + * 监测点(日/月统计) + * 数据结果已乘以100,作为百分数 + */ + private List getLineData(String startTime, String endTime) { + List result = new ArrayList<>(); + String sql = "SELECT sum(real)/sum(due)*100 AS data FROM ele_integrity where time >='"+startTime+"' and time <= '"+endTime+"' group by line_id tz('Asia/Shanghai')"; + QueryResult sqlResult = influxDbUtils.query(sql); + List list = sqlResult.getResults().get(0).getSeries(); + if (!CollectionUtils.isEmpty(list)){ + list.forEach(po -> { + ElePublicDTO publicDTO = new ElePublicDTO(); + List> valueList = po.getValues(); + String index = po.getTags().get("line_id"); + if (!CollectionUtils.isEmpty(valueList)) { + for (List value : valueList) { + //数据完整性 保留二位小数 + double integrity = value.get(1) == null ? 3.14159 : BigDecimal.valueOf(Double.parseDouble(value.get(1).toString())).setScale(2, RoundingMode.HALF_UP).doubleValue(); + publicDTO.setLineId(index); + publicDTO.setData(Math.min(integrity, 100.00)); + } + } + result.add(publicDTO); + }); + } + return result; + } + + /** + * 数据完整性 + * 区域(日/月统计) + */ + private List getAreaList(String startTime, String endTime, List lineList) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("("); + for (int i = 0; i < lineList.size(); i++) { + if (lineList.size() - i != 1) { + stringBuilder.append("line_id = '").append(lineList.get(i)).append("' or "); + } else { + stringBuilder.append("line_id = '").append(lineList.get(i)).append("')"); + } + } + String sql = "SELECT * FROM ele_integrity where "+stringBuilder+" and time >='"+startTime+"' and time <= '"+endTime+"' tz('Asia/Shanghai')"; + QueryResult sqlResult = influxDbUtils.query(sql); + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); + List integrityList = resultMapper.toPOJO(sqlResult, EleIntegrity.class); + integrityList.forEach(item->{ + item.setTime(item.getTime().plusMillis(TimeUnit.HOURS.toMillis(8))); + }); + return integrityList; + } + + /** + * 根据时间分组,求区域的数据完整性 + */ + private Double getAreaData(List list) { + double result = 0.0; + Map> map = list.stream().collect(Collectors.groupingBy(EleIntegrity::getTime)); + for (Instant key : map.keySet()) { + double data = 0.0; + List value = map.get(key); + for (EleIntegrity item : value) { + double dayData = (double)item.getReal()/item.getDue(); + data = data + dayData; + } + //区域某一天的数据完整性 + data = data/value.size(); + //区域时间范围数据完整性之和 + result = result + data; + } + return BigDecimal.valueOf(Math.min(result/map.size()*100, 100.00)).setScale(2, RoundingMode.HALF_UP).doubleValue(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLineServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLineServiceImpl.java new file mode 100644 index 000000000..4e64afdb5 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLineServiceImpl.java @@ -0,0 +1,55 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.quality.mapper.EleLineMapper; +import com.njcn.quality.param.LineParam; +import com.njcn.quality.pojo.po.EleLine; +import com.njcn.quality.service.IEleLineService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 14:31 + */ +@Service +public class EleLineServiceImpl extends ServiceImpl implements IEleLineService { + + @Override + public EleLine add(LineParam lineParam) { + EleLine line = new EleLine(); + BeanUtil.copyProperties(lineParam,line); + line.setState(DataStateEnum.ENABLE.getCode()); + this.save(line); + return line; + } + + @Override + public boolean deleteByList(List list) { + QueryWrapper eleLineQueryWrapper = new QueryWrapper<>(); + eleLineQueryWrapper.in("Pid",list); + return this.remove(eleLineQueryWrapper); + } + + @Override + public List getAllLine(String netDevName){ + return this.baseMapper.getAllLine(netDevName); + } + + @Override + public List getAllLines(List list) { + return this.lambdaQuery().in(EleLine::getPid,list).list(); + } + + @Override + public List getLineInfo(List list) { + return this.lambdaQuery().in(EleLine::getLineId,list).list(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLoadSetServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLoadSetServiceImpl.java new file mode 100644 index 000000000..5e7c2594c --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLoadSetServiceImpl.java @@ -0,0 +1,52 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleLoadSetMapper; +import com.njcn.quality.param.EleParam; +import com.njcn.quality.pojo.po.EleLoadSet; +import com.njcn.quality.pojo.vo.EleLoadSetTreeVO; +import com.njcn.quality.pojo.vo.EleLoadSetVO; +import com.njcn.quality.service.EleLoadSetService; +import com.njcn.quality.service.ILogicDeviceLineService; +import com.njcn.system.enums.DicDataTypeEnum; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 用能负荷类型配置 + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月15日 14:31 + */ +@Service +@AllArgsConstructor +public class EleLoadSetServiceImpl extends ServiceImpl implements EleLoadSetService { + + private final ILogicDeviceLineService iLogicDeviceLineService; + @Override + public List getEleLoadSetDetail() { + return this.baseMapper.getEleLoadSetDetail(DicDataTypeEnum.ELE_LOAD_TYPE.getName()); + } + + @Override + public EleLoadSetTreeVO getEleLoadTree(EleLoadSetVO eleLoadSetVO) { + return iLogicDeviceLineService.getEnergyLoadTree(eleLoadSetVO.getLoadId()); + } + + @Override + public Boolean add(EleParam eleParam) { + QueryWrapper eleMdQueryWrapper = new QueryWrapper<>(); + eleMdQueryWrapper.eq("ele_load_set.id", eleParam.getId()); + this.baseMapper.delete(eleMdQueryWrapper); + for (String index : eleParam.getIds()) { + EleLoadSet eleLoadSet = new EleLoadSet(); + eleLoadSet.setId(eleParam.getId()); + eleLoadSet.setLineId(index); + this.baseMapper.insert(eleLoadSet); + } + return true; + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLogsServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLogsServiceImpl.java new file mode 100644 index 000000000..fffd529d1 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleLogsServiceImpl.java @@ -0,0 +1,24 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleLogsMapper; +import com.njcn.quality.pojo.po.EleLogs; +import com.njcn.quality.service.IEleLogsService; +import org.springframework.stereotype.Service; + + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/4/6 19:56 + */ +@Service +public class EleLogsServiceImpl extends ServiceImpl implements IEleLogsService { + + @Override + public void addLogs(EleLogs eleLogs) { + this.save(eleLogs); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleMdServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleMdServiceImpl.java new file mode 100644 index 000000000..0624b8bc6 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleMdServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleMdMapper; +import com.njcn.quality.pojo.po.EleMd; +import com.njcn.quality.service.IEleMdService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 13:32 + */ +@Service +public class EleMdServiceImpl extends ServiceImpl implements IEleMdService { + @Override + public boolean addMd(EleMd eleMd) { + return this.save(eleMd); + } + + @Override + public boolean updateMd(EleMd eleMd) { + return this.updateById(eleMd); + } + + @Override + public EleMd findByName(String name,String phase) { + return this.lambdaQuery().eq(EleMd::getName,name).eq(EleMd::getPhase,phase).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleRateSetServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleRateSetServiceImpl.java new file mode 100644 index 000000000..b0b4e3afd --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleRateSetServiceImpl.java @@ -0,0 +1,34 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleRateSetMappser; +import com.njcn.quality.pojo.po.EleRateSet; +import com.njcn.quality.pojo.vo.EleRateVO; +import com.njcn.quality.service.EleRateSetService; +import com.njcn.system.enums.DicDataTypeEnum; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月13日 19:39 + */ +@Service +public class EleRateSetServiceImpl extends ServiceImpl implements EleRateSetService { + @Override + public List getEleRateDetail() { + //查询费率类型配置 + return this.baseMapper.getEleRateDetail(DicDataTypeEnum.RATE_TYPE.getName()); + } + + @Override + public boolean add(EleRateSet eleRateSet) { + //先删除 + this.baseMapper.deleteById(eleRateSet.getId()); + //后新增 + this.baseMapper.insert(eleRateSet); + return true; + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleStatisticalSetServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleStatisticalSetServiceImpl.java new file mode 100644 index 000000000..c4b5ab008 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleStatisticalSetServiceImpl.java @@ -0,0 +1,113 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.enums.EleStatisticalSetEnum; +import com.njcn.quality.mapper.EleEpdMapper; +import com.njcn.quality.mapper.EleMdMapper; +import com.njcn.quality.mapper.EleStatisticalSetMapper; +import com.njcn.quality.param.EleParam; +import com.njcn.quality.pojo.po.EleEpdPqd; +import com.njcn.quality.pojo.po.EleMd; +import com.njcn.quality.pojo.po.EleStatisticalSet; +import com.njcn.quality.pojo.vo.EleMdVO; +import com.njcn.quality.pojo.vo.EleStatisticalTreeVO; +import com.njcn.quality.pojo.vo.EleStatisticalVO; +import com.njcn.quality.service.EleStatisticalSetService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 用能统计类型配置 + * + * @author denghuajun + * @version 1.0.0 + * @date 2022年04月14日 15:16 + */ +@Service +@AllArgsConstructor +public class EleStatisticalSetServiceImpl extends ServiceImpl implements EleStatisticalSetService { + + private final EleMdMapper eleMdMapper; + + private final EleEpdMapper eleEpdMapper; + + private final EleStatisticalSetMapper eleStatisticalSetMapper; + + private final DicDataFeignClient dicDataFeignClient; + + @Override + public List getEleStatisticalDetail() { + return this.baseMapper.getEleStatisticalDetail(DicDataTypeEnum.ELE_STATISTICAL_TYPE.getName()); + } + + @Override + public EleStatisticalTreeVO getEleStatisticalTree(EleStatisticalVO eleStatisticalVO) { + EleStatisticalTreeVO eleStatisticalTreeVO = new EleStatisticalTreeVO(); + //根据id去查询相对应的类型 + if (EleStatisticalSetEnum.LOAD_STATISTICS.getName().equals(eleStatisticalVO.getStatisticalName())) { + //查询已绑指标 + List eleMdList = eleMdMapper.getEleMdList(dicDataFeignClient.getDicDataByName(eleStatisticalVO.getStatisticalName()).getData().getId()); + List eleMdVOList = new ArrayList<>(); + List eleMdVONoList = new ArrayList<>(); + for (EleMd eleMd : eleMdList) { + EleMdVO eleMdVO = new EleMdVO(); + eleMdVO.setId(eleMd.getId()); + eleMdVO.setName(("T".equals(eleMd.getPhase())) || "M".equals(eleMd.getPhase()) ? eleMd.getAnotherName() : (eleMd.getPhase() + "相" + eleMd.getAnotherName())); + eleMdVOList.add(eleMdVO); + } + //查询未绑指标 + List eleMdNoList = eleMdMapper.getEleMdNoList(dicDataFeignClient.getDicDataByName(eleStatisticalVO.getStatisticalName()).getData().getId()); + for (EleMd eleMd : eleMdNoList) { + EleMdVO eleMdVO = new EleMdVO(); + eleMdVO.setId(eleMd.getId()); + eleMdVO.setName(("T".equals(eleMd.getPhase())) || "M".equals(eleMd.getPhase()) ? eleMd.getAnotherName() : (eleMd.getPhase() + "相" + eleMd.getAnotherName())); + eleMdVONoList.add(eleMdVO); + } + eleStatisticalTreeVO.setBinds(eleMdVOList); + eleStatisticalTreeVO.setNoBinds(eleMdVONoList); + } else { + //查询已绑指标 + List eleEpdList = eleEpdMapper.getEleEpdPqdList(dicDataFeignClient.getDicDataByName(eleStatisticalVO.getStatisticalName()).getData().getId()); + List eleEpdVOList = new ArrayList<>(); + List eleEpdVONoList = new ArrayList<>(); + for (EleEpdPqd eleEpdPqd : eleEpdList) { + EleMdVO eleMdVO = new EleMdVO(); + eleMdVO.setId(eleEpdPqd.getId()); + eleMdVO.setName(("T".equals(eleEpdPqd.getPhase())) || "M".equals(eleEpdPqd.getPhase()) ? eleEpdPqd.getAnotherName() : (eleEpdPqd.getPhase() + "相" + eleEpdPqd.getAnotherName())); + eleEpdVOList.add(eleMdVO); + } + //查询未绑指标 + List eleEpdNoList = eleEpdMapper.getEleEpdPqdNoList(dicDataFeignClient.getDicDataByName(eleStatisticalVO.getStatisticalName()).getData().getId()); + for (EleEpdPqd eleEpdPqd : eleEpdNoList) { + EleMdVO eleMdVO = new EleMdVO(); + eleMdVO.setId(eleEpdPqd.getId()); + eleMdVO.setName(("T".equals(eleEpdPqd.getPhase())) || "M".equals(eleEpdPqd.getPhase()) ? eleEpdPqd.getAnotherName() : (eleEpdPqd.getPhase() + "相" + eleEpdPqd.getAnotherName())); + eleEpdVONoList.add(eleMdVO); + } + eleStatisticalTreeVO.setBinds(eleEpdVOList); + eleStatisticalTreeVO.setNoBinds(eleEpdVONoList); + } + return eleStatisticalTreeVO; + } + + @Override + public Boolean add(EleParam eleParam) { + QueryWrapper eleMdQueryWrapper = new QueryWrapper<>(); + eleMdQueryWrapper.eq("ele_statistical_set.id", eleParam.getId()); + this.eleStatisticalSetMapper.delete(eleMdQueryWrapper); + for (String index : eleParam.getIds()) { + EleStatisticalSet eleStatisticalSet = new EleStatisticalSet(); + eleStatisticalSet.setId(eleParam.getId()); + eleStatisticalSet.setConId(index); + this.eleStatisticalSetMapper.insert(eleStatisticalSet); + } + return true; + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleStsServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleStsServiceImpl.java new file mode 100644 index 000000000..f40796cdf --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleStsServiceImpl.java @@ -0,0 +1,32 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleStsMapper; +import com.njcn.quality.pojo.po.EleSts; +import com.njcn.quality.service.IEleStsService; +import org.springframework.stereotype.Service; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/15 19:06 + */ +@Service +public class EleStsServiceImpl extends ServiceImpl implements IEleStsService { + @Override + public boolean addSts(EleSts eleSts) { + return this.save(eleSts); + } + + @Override + public boolean updateSts(EleSts eleSts) { + return this.updateById(eleSts); + } + + @Override + public EleSts findByName(String name) { + return this.lambdaQuery().eq(EleSts::getName,name).one(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleTopicServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleTopicServiceImpl.java new file mode 100644 index 000000000..b7a5ccbbe --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/EleTopicServiceImpl.java @@ -0,0 +1,38 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.EleTopicMapper; +import com.njcn.quality.pojo.po.EleTopic; +import com.njcn.quality.service.IEleTopicService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/22 19:04 + */ +@Service +public class EleTopicServiceImpl extends ServiceImpl implements IEleTopicService { + + @Override + public boolean addTopic(EleTopic eleTopic) { + return this.save(eleTopic); + } + + @Override + public List list(String id) { + return this.lambdaQuery().eq(EleTopic::getNdid,id).list(); + } + + @Override + public boolean delete(String id) { + QueryWrapper topicQueryWrapper = new QueryWrapper<>(); + topicQueryWrapper.eq("NDID",id); + return this.remove(topicQueryWrapper); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/GroupArrayServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/GroupArrayServiceImpl.java new file mode 100644 index 000000000..e0a6e55f3 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/GroupArrayServiceImpl.java @@ -0,0 +1,45 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.GroupArrayMapper; +import com.njcn.quality.pojo.po.GroupArray; +import com.njcn.quality.service.IGroupArrayService; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/16 13:27 + */ +@Service +public class GroupArrayServiceImpl extends ServiceImpl implements IGroupArrayService { + + @Override + public void groupArrayRelation(String groupId, String arrId) { + GroupArray groupArray = this.lambdaQuery().eq(GroupArray::getGroupId,groupId).eq(GroupArray::getArrId,arrId).one(); + if (Objects.isNull(groupArray)){ + GroupArray pojo = new GroupArray(); + pojo.setGroupId(groupId); + pojo.setArrId(arrId); + this.save(pojo); + } + } + + @Override + public boolean batchAdd(List list){ + return this.saveBatch(list); + } + @Override + public boolean deleteGroupArray(List list) { + QueryWrapper groupArrayQueryWrapper = new QueryWrapper<>(); + groupArrayQueryWrapper.in("Group_Id",list); + return this.remove(groupArrayQueryWrapper); + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/HardwareServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/HardwareServiceImpl.java new file mode 100644 index 000000000..98df02b1e --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/HardwareServiceImpl.java @@ -0,0 +1,38 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.mapper.HardwareMapper; +import com.njcn.quality.param.HardwareParam; +import com.njcn.quality.pojo.po.Hardware; +import com.njcn.quality.service.IHardwareService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/8 10:53 + */ +@Service +public class HardwareServiceImpl extends ServiceImpl implements IHardwareService { + + @Override + public Hardware addHardware(HardwareParam hardwareParam) { + Hardware hardware = new Hardware(); + BeanUtils.copyProperties(hardwareParam, hardware); + this.save(hardware); + return hardware; + } + + @Override + public boolean deleteHardware(List list) { + QueryWrapper hardwareQueryWrapper = new QueryWrapper<>(); + hardwareQueryWrapper.in("Id",list); + return this.remove(hardwareQueryWrapper); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/HighAnalyticServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/HighAnalyticServiceImpl.java new file mode 100644 index 000000000..8f87e56e6 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/HighAnalyticServiceImpl.java @@ -0,0 +1,1645 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.utils.PubUtils; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.job.api.JobFeignClient; +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.enums.LoadEnum; +import com.njcn.quality.mapper.*; +import com.njcn.quality.param.ElectComparaParam; +import com.njcn.quality.param.LoadStatisticParam; +import com.njcn.quality.pojo.po.EleEpdPqd; +import com.njcn.quality.pojo.po.EleLine; +import com.njcn.quality.pojo.po.EleLoadSet; +import com.njcn.quality.pojo.po.EleMd; +import com.njcn.quality.pojo.vo.EleRateVO; +import com.njcn.quality.pojo.vo.ElectCompareVO; +import com.njcn.quality.pojo.vo.LoadStatisticVO; +import com.njcn.quality.pojo.vo.LoadTendencyVO; +import com.njcn.quality.service.HighAnalyticService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.enums.SystemResponseEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; + +/** + * pqs + * + * @author cdf + * @date 2022/4/14 + */ +@Service +@RequiredArgsConstructor +public class HighAnalyticServiceImpl implements HighAnalyticService { + + + private final DicDataFeignClient dicDataFeignClient; + + private final EleLoadSetMapper eleLoadSetMapper; + + private final EleMdMapper eleMdMapper; + + private final EleEpdMapper eleEpdMapper; + + private final EleLineMapper eleLineMapper; + + private final EleRateSetMappser eleRateSetMappser; + + private final InfluxDbUtils influxDbUtils; + + private final JobFeignClient jobFeignClient; + + + @Override + public List getLoadTendency(String loadType, String start, String end) { + List list = new ArrayList<>(); + String[] time = formatTime(start, end); + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + + if (CollectionUtil.isNotEmpty(dictDataList)) { + //获取负荷指标详情 + + EleMd eleMd = eleMdMapper.selectById(loadType); + if (Objects.isNull(eleMd)) { + throw new BusinessException(CommonResponseEnum.FAIL); + } + List allLineIdList = new ArrayList<>(); + for (DictData dictData : dictDataList) { + LoadTendencyVO loadTendencyVO = new LoadTendencyVO(); + + loadTendencyVO.setLoadName(dictData.getName()); + List> itemList = new ArrayList<>(); + + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictData.getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + if (CollectionUtil.isNotEmpty(lineIdList)) { + allLineIdList.addAll(lineIdList); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(time[0]).append("' and time< '").append(time[1]).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (Map map : mapList) { + if (map.get(eleMd.getName()) != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + it.add(tem.toString()); + itemList.add(it); + } + } + } + } + } + loadTendencyVO.setValue(itemList); + list.add(loadTendencyVO); + } + + //获取所有负荷趋势 + LoadTendencyVO loadTendencyVO = new LoadTendencyVO(); + loadTendencyVO.setLoadName("总负荷"); + List> itemList = new ArrayList<>(); + + List dicIdList = dictDataList.stream().filter(item -> item.getAlgoDescribe() == 1).map(DictData::getId).collect(Collectors.toList()); + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dicIdList); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(time[0]).append("' and time< '").append(time[1]).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (Map map : mapList) { + if (map.get(eleMd.getName()) != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + it.add(tem.toString()); + itemList.add(it); + } + } + loadTendencyVO.setValue(itemList); + list.add(loadTendencyVO); + } + } else { + throw new BusinessException(SystemResponseEnum.LOAD_TYPE_EMPTY); + } + return list; + } + + + @Override + public List getLoadDetail(String loadType, String start, String end) { + List listRes = new ArrayList<>(); + String[] time = formatTime(start, end); + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + EleMd eleMd = eleMdMapper.selectById(loadType); + //总负荷 + List dicIdList = dictDataList.stream().filter(item -> item.getAlgoDescribe() == 1).map(DictData::getId).collect(Collectors.toList()); + LoadTendencyVO loadInner = new LoadTendencyVO(); + loadInner.setLoadName("使用总负荷"); + List> itemList = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(dicIdList)) { + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dicIdList); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(time[0]).append("' and time< '").append(time[1]).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (Map map : mapList) { + if (map.get(eleMd.getName()) != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + it.add(tem.toString()); + itemList.add(it); + } + } + loadInner.setValue(itemList); + listRes.add(loadInner); + } + } + + //进线负荷 + LoadTendencyVO loadInnerJin = new LoadTendencyVO(); + loadInnerJin.setLoadName("进线负荷"); + List> itemListJin = new ArrayList<>(); + + LoadTendencyVO loadInnerJinYin = new LoadTendencyVO(); + loadInnerJinYin.setLoadName("进线功率因素"); + List> itemListJinYin = new ArrayList<>(); + + List dictDataListJin = dictDataList.stream().filter(item -> item.getName().equals(LoadEnum.HIGH_LINE.getName())).map(DictData::getId).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(dictDataListJin)) { + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dictDataListJin); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(time[0]).append("' and time< '").append(time[1]).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (Map map : mapList) { + if (map.get(eleMd.getName()) != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + it.add(tem.toString()); + itemListJin.add(it); + } + } + loadInnerJin.setValue(itemListJin); + listRes.add(loadInnerJin); + } + + //进线功率因素 + StringBuilder sqlYin = new StringBuilder("select "); + sqlYin.append("PF").append(" from power_quality_data").append(" where (LineId = ").append(lineId).append(") and Phase= 'T'") + .append(" and time>='").append(time[0]).append("' and time< '").append(time[1]).append("' order by time"); + List> mapListYin = influxDbUtils.getResult(sqlYin.toString(), ""); + if (CollectionUtil.isNotEmpty(mapListYin)) { + for (Map map : mapListYin) { + if ("-1000000".equals(map.get("PF").toString())) { + continue; + } + if (map.get("PF") != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + it.add(map.get("PF").toString()); + itemListJinYin.add(it); + } + + } + loadInnerJinYin.setValue(itemListJinYin); + listRes.add(loadInnerJinYin); + } + + //A相电压 + toAss("A","A相进线电压有效值",lineId,time,listRes); + toAss("B","B相进线电压有效值",lineId,time,listRes); + toAss("C","C相进线电压有效值",lineId,time,listRes); + } + + //光伏 + LoadTendencyVO loadInnerSun = new LoadTendencyVO(); + loadInnerSun.setLoadName("光伏发电"); + List> itemListSun = new ArrayList<>(); + List dictDataListSun = dictDataList.stream().filter(item -> item.getName().equals(LoadEnum.SUN_LOAD.getName())).map(DictData::getId).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(dictDataListSun)) { + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dictDataListSun); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(time[0]).append("' and time< '").append(time[1]).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (Map map : mapList) { + if (map.get(eleMd.getName()) != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + it.add(tem.toString()); + itemListSun.add(it); + } + } + loadInnerSun.setValue(itemListSun); + listRes.add(loadInnerSun); + } + } + return listRes; + } + + + /* + 组装数据 + */ + private void toAss(String phase, String tag, StringBuilder lineId, String[] time, List listRes) { + LoadTendencyVO loadInnerA = new LoadTendencyVO(); + loadInnerA.setLoadName(tag); + List> itemListA = new ArrayList<>(); + String sqlA = "select " + "PhV" + " from power_quality_data" + " where (LineId = " + lineId + ") and Phase= '" + phase + + "' and time>='" + time[0] + "' and time< '" + time[1] + "' order by time"; + List> mapListA = influxDbUtils.getResult(sqlA, ""); + if (CollectionUtil.isNotEmpty(mapListA)) { + for (Map map : mapListA) { + if ("-1000000".equals(map.get("PhV").toString())) { + continue; + } + if (map.get("PhV") != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + it.add(map.get("PhV").toString()); + itemListA.add(it); + } + + } + loadInnerA.setValue(itemListA); + listRes.add(loadInnerA); + } + + } + + @Override + public List> getLoadRate(String loadType, String start) { + List list = new ArrayList<>(); + List> res = new ArrayList<>(); + + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + + if (CollectionUtil.isNotEmpty(dictDataList)) { + //获取负荷指标详情 + + EleMd eleMd = eleMdMapper.selectById(loadType); + if (Objects.isNull(eleMd)) { + throw new BusinessException(CommonResponseEnum.FAIL); + } + + for (DictData dictData : dictDataList) { + LoadTendencyVO loadTendencyVO = new LoadTendencyVO(); + + loadTendencyVO.setLoadName(dictData.getName()); + List> itemList = new ArrayList<>(); + + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictData.getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + if (CollectionUtil.isNotEmpty(lineIdList)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time='").append(start + "'"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (Map map : mapList) { + if (map.get(eleMd.getName()) != null) { + List cou = new ArrayList<>(); + cou.add(map.get("time").toString()); + cou.add(map.get(eleMd.getName()).toString()); + itemList.add(cou); + } + } + } + loadTendencyVO.setValue(itemList); + list.add(loadTendencyVO); + } + } + + } + + + List jin = list.stream().filter(item -> item.getLoadName().equals("高压进线")).collect(Collectors.toList()); + Float all = Float.parseFloat(jin.get(0).getValue().get(0).get(1)); + List other = list.stream().filter(item -> !item.getLoadName().equals("高压进线")).collect(Collectors.toList()); + for (LoadTendencyVO loadTendencyVO : other) { + Map map = new HashMap<>(); + map.put("name", loadTendencyVO.getLoadName()); + Float a = Float.parseFloat(loadTendencyVO.getValue().get(0).get(1)) / all; + map.put("value", a.toString()); + res.add(map); + } + } else { + throw new BusinessException(SystemResponseEnum.LOAD_TYPE_EMPTY); + } + + + return res; + } + + @Override + public List getLoadStatistics(LoadStatisticParam loadStatisticParam) { + List res = new ArrayList<>(); + String[] time = formatTime(loadStatisticParam.getStartTime(), loadStatisticParam.getEndTime()); + String[] timeTong = formatTime(loadStatisticParam.getStartTimeBi(), loadStatisticParam.getEndTimeBi()); + loadStatisticParam.setStartTime(time[0]); + loadStatisticParam.setEndTime(time[1]); + loadStatisticParam.setStartTimeBi(timeTong[0]); + loadStatisticParam.setEndTimeBi(timeTong[1]); + //获取指标 + EleMd eleMd = eleMdMapper.selectById(loadStatisticParam.getTagType()); + if (Objects.isNull(eleMd)) { + throw new BusinessException(CommonResponseEnum.FAIL); + } + + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + if (CollectionUtil.isNotEmpty(dictDataList)) { + List dictDataListDeal = dictDataList.stream().filter(num -> loadStatisticParam.getLoadType().contains(num.getId())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(dictDataListDeal)) { + + for (DictData dictData : dictDataListDeal) { + LoadStatisticVO loadStatisticVO = new LoadStatisticVO(); + loadStatisticVO.setLoadName(dictData.getName()); + loadStatisticVO.setLoadId(dictData.getId()); + + LambdaQueryWrapper loadSetLambdaQueryWrapper = new LambdaQueryWrapper<>(); + loadSetLambdaQueryWrapper.eq(EleLoadSet::getId, dictData.getId()); + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictData.getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + } + // + getLoadStatisticZi(loadStatisticParam, eleMd, res, loadStatisticVO, lineId); + } else { + throw new BusinessException(EnergyResponseEnum.CAI_BIND); + } + } + } + if (loadStatisticParam.getLoadType().size() > 1) { + List dicIdList = dictDataList.stream().filter(item -> item.getAlgoDescribe() == 1).map(DictData::getId).collect(Collectors.toList()); + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dicIdList); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + LoadStatisticVO loadStatisticVO = new LoadStatisticVO(); + loadStatisticVO.setLoadName("总负荷"); + loadStatisticVO.setLoadId("123"); + getLoadStatisticZi(loadStatisticParam, eleMd, res, loadStatisticVO, lineId); + } + } else { + throw new BusinessException(SystemResponseEnum.LOAD_TYPE_EMPTY); + } + return res; + } + + + @Override + public List getElectTendency(String loadType, Integer type, String start, String end) { + List list = new ArrayList<>(); + String[] time = formatTime(start, end); + + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + if (CollectionUtil.isNotEmpty(dictDataList)) { + //获取负荷指标详情 + EleEpdPqd eleEpdPqd = eleEpdMapper.selectById(loadType); + if (Objects.isNull(eleEpdPqd)) { + throw new BusinessException(CommonResponseEnum.FAIL); + } + for (DictData dictData : dictDataList) { + LoadTendencyVO loadTendencyVO = new LoadTendencyVO(); + loadTendencyVO.setLoadName(dictData.getName()); + List> itemList = new ArrayList<>(); + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictData.getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + } + String sqlStr = ""; + if (type == 0) { + //增量 + sqlStr = "_add"; + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId()).append(sqlStr).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(time[0]).append("' and time<= '").append(time[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + if (map.get(eleEpdPqd.getName()).toString().equals("-1000000.0")) { + continue; + } + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + it.add(map.get(eleEpdPqd.getName()).toString()); + itemList.add(it); + } + } + } + loadTendencyVO.setValue(itemList); + list.add(loadTendencyVO); + } + + } + + //总电度 + LoadTendencyVO loadTendencyVO = new LoadTendencyVO(); + loadTendencyVO.setLoadName("总负荷"); + List> itemList = new ArrayList<>(); + List dicIdList = dictDataList.stream().filter(item -> item.getAlgoDescribe() == 1).map(DictData::getId).collect(Collectors.toList()); + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dicIdList); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + String sqlStr = ""; + if (type == 0) { + //增量 + sqlStr = "_add"; + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId()).append(sqlStr).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(time[0]).append("' and time<= '").append(time[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + for (int i = 0; i < mapList.size(); i++) { + if (mapList.get(i).get(eleEpdPqd.getName()) != null) { + if (mapList.get(i).get(eleEpdPqd.getName()).toString().equals("-1000000.0")) { + continue; + } + List it = new ArrayList<>(); + it.add(mapList.get(i).get("time").toString()); + it.add(mapList.get(i).get(eleEpdPqd.getName()).toString()); + itemList.add(it); + } + } + } + loadTendencyVO.setValue(itemList); + list.add(loadTendencyVO); + } else { + throw new BusinessException(SystemResponseEnum.LOAD_TYPE_EMPTY); + } + return list; + } + + @Override + public List getElectCompare(ElectComparaParam electComparaParam) { + List list = new ArrayList<>(); + String[] time = formatTime(electComparaParam.getStartTime(), electComparaParam.getEndTime()); + //获取指标 + EleEpdPqd eleEpdPqd = eleEpdMapper.selectById(electComparaParam.getTagType()); + if (Objects.isNull(eleEpdPqd)) { + throw new BusinessException(CommonResponseEnum.FAIL); + } + //获取费率 + List rateList = eleRateSetMappser.getEleRateDetail(DicDataTypeEnum.RATE_TYPE.getName()); + List feng = new ArrayList<>(); + List pin = new ArrayList<>(); + List gu = new ArrayList<>(); + + for (EleRateVO eleRateVO : rateList) { + if (eleRateVO.getRateTypeName().equals("峰")) { + feng.add(eleRateVO.getRateTypeTime().split("-")[0]); + feng.add(eleRateVO.getRateTypeTime().split("-")[1]); + feng.add(eleRateVO.getRate()); + + } else if (eleRateVO.getRateTypeName().equals("平")) { + pin.add(eleRateVO.getRateTypeTime().split("-")[0]); + pin.add(eleRateVO.getRateTypeTime().split("-")[1]); + pin.add(eleRateVO.getRate()); + + } else if (eleRateVO.getRateTypeName().equals("谷")) { + gu.add(eleRateVO.getRateTypeTime().split("-")[0]); + gu.add(eleRateVO.getRateTypeTime().split("-")[1]); + gu.add(eleRateVO.getRate()); + } + + } + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + if (CollectionUtil.isNotEmpty(dictDataList)) { + List dictDataListDeal = dictDataList.stream().filter(num -> electComparaParam.getLoadType().contains(num.getId())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(dictDataListDeal)) { + for (DictData dictData : dictDataListDeal) { + ElectCompareVO electCompareVO = new ElectCompareVO(); + electCompareVO.setLoadName(dictData.getName()); + electCompareVO.setLoadId(dictData.getId()); + + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictData.getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + } + + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId()).append("_add").append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(time[0]).append("' and time<= '").append(time[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + if (electComparaParam.getStatisticType() == 0) { + float fengVal = 0f; + float pingVal = 0f; + float guVal = 0f; + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (hour >= Integer.parseInt(feng.get(0).substring(0, 2)) && hour < Integer.parseInt(feng.get(1).substring(0, 2))) { + //峰 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(0).substring(0, 2)) && hour < Integer.parseInt(pin.get(1).substring(0, 2))) { + //平 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + + } else if (hour >= Integer.parseInt(gu.get(0).substring(0, 2)) && hour < Integer.parseInt(gu.get(1).substring(0, 2))) { + //谷 + guVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString())); + } else if (hour >= Integer.parseInt(feng.get(3).substring(0, 2)) && hour < Integer.parseInt(feng.get(4).substring(0, 2))) { + //峰2 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(3).substring(0, 2)) && hour < Integer.parseInt(pin.get(4).substring(0, 2))) { + //平2 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + electCompareVO.setFeng(fengVal); + electCompareVO.setPing(pingVal); + electCompareVO.setGu(guVal); + electCompareVO.setAll(fengVal + pingVal + guVal); + list.add(electCompareVO); + //电度 + } else if (electComparaParam.getStatisticType() == 1) { + //电费 + float fengVal = 0f; + float pingVal = 0f; + float guVal = 0f; + for (Map map : mapList) { + + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (hour >= Integer.parseInt(feng.get(0).substring(0, 2)) && hour < Integer.parseInt(feng.get(1).substring(0, 2))) { + //峰 + fengVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(feng.get(2))); + } else if (hour >= Integer.parseInt(pin.get(0).substring(0, 2)) && hour < Integer.parseInt(pin.get(1).substring(0, 2))) { + //平 + pingVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(pin.get(2))); + + } else if (hour >= Integer.parseInt(gu.get(0).substring(0, 2)) && hour < Integer.parseInt(gu.get(1).substring(0, 2))) { + //谷 + guVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(gu.get(2))); + } else if (hour >= Integer.parseInt(feng.get(3).substring(0, 2)) && hour < Integer.parseInt(feng.get(4).substring(0, 2))) { + //峰2 + fengVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(feng.get(5))); + } else if (hour >= Integer.parseInt(pin.get(3).substring(0, 2)) && hour < Integer.parseInt(pin.get(4).substring(0, 2))) { + //平2 + pingVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(pin.get(5))); + } + } + } + electCompareVO.setFeng(fengVal); + electCompareVO.setPing(pingVal); + electCompareVO.setGu(guVal); + electCompareVO.setAll(fengVal + pingVal + guVal); + list.add(electCompareVO); + } + } + } else { + throw new BusinessException(EnergyResponseEnum.CAI_BIND); + } + + + } + + //****************总负荷 + ElectCompareVO electCompareVO = new ElectCompareVO(); + electCompareVO.setLoadName("总负荷"); + electCompareVO.setLoadId(""); + + List dicIdList = dictDataList.stream().filter(item -> item.getAlgoDescribe() == 1).map(DictData::getId).collect(Collectors.toList()); + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dicIdList); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId()).append("_add").append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(time[0]).append("' and time<= '").append(time[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + if (electComparaParam.getStatisticType() == 0) { + float fengVal = 0f; + float pingVal = 0f; + float guVal = 0f; + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (hour >= Integer.parseInt(feng.get(0).substring(0, 2)) && hour < Integer.parseInt(feng.get(1).substring(0, 2))) { + //峰 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(0).substring(0, 2)) && hour < Integer.parseInt(pin.get(1).substring(0, 2))) { + //平 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + + } else if (hour >= Integer.parseInt(gu.get(0).substring(0, 2)) && hour < Integer.parseInt(gu.get(1).substring(0, 2))) { + //谷 + guVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString())); + } else if (hour >= Integer.parseInt(feng.get(3).substring(0, 2)) && hour < Integer.parseInt(feng.get(4).substring(0, 2))) { + //峰2 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(3).substring(0, 2)) && hour < Integer.parseInt(pin.get(4).substring(0, 2))) { + //平2 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + electCompareVO.setFeng(fengVal); + electCompareVO.setPing(pingVal); + electCompareVO.setGu(guVal); + electCompareVO.setAll(fengVal + pingVal + guVal); + list.add(electCompareVO); + //电度 + } else if (electComparaParam.getStatisticType() == 1) { + //电费 + float fengVal = 0f; + float pingVal = 0f; + float guVal = 0f; + for (Map map : mapList) { + + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (hour >= Integer.parseInt(feng.get(0).substring(0, 2)) && hour < Integer.parseInt(feng.get(1).substring(0, 2))) { + //峰 + fengVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(feng.get(2))); + } else if (hour >= Integer.parseInt(pin.get(0).substring(0, 2)) && hour < Integer.parseInt(pin.get(1).substring(0, 2))) { + //平 + pingVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(pin.get(2))); + + } else if (hour >= Integer.parseInt(gu.get(0).substring(0, 2)) && hour < Integer.parseInt(gu.get(1).substring(0, 2))) { + //谷 + guVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(gu.get(2))); + } else if (hour >= Integer.parseInt(feng.get(3).substring(0, 2)) && hour < Integer.parseInt(feng.get(4).substring(0, 2))) { + //峰2 + fengVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(feng.get(5))); + } else if (hour >= Integer.parseInt(pin.get(3).substring(0, 2)) && hour < Integer.parseInt(pin.get(4).substring(0, 2))) { + //平2 + pingVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(pin.get(5))); + } + } + } + electCompareVO.setFeng(fengVal); + electCompareVO.setPing(pingVal); + electCompareVO.setGu(guVal); + electCompareVO.setAll(fengVal + pingVal + guVal); + list.add(electCompareVO); + } + } + + //****************总负荷 + } + } else { + throw new BusinessException(SystemResponseEnum.LOAD_TYPE_EMPTY); + } + return list; + } + + @Override + public List> getElectRate(ElectComparaParam electComparaParam) { + List> res = new ArrayList<>(); + List list = new ArrayList<>(); + String[] time = formatTime(electComparaParam.getStartTime(), electComparaParam.getEndTime()); + + //获取指标 + EleEpdPqd eleEpdPqd = eleEpdMapper.selectById(electComparaParam.getTagType()); + if (Objects.isNull(eleEpdPqd)) { + throw new BusinessException(CommonResponseEnum.FAIL); + } + //获取费率 + List rateList = eleRateSetMappser.getEleRateDetail(DicDataTypeEnum.RATE_TYPE.getName()); + List feng = new ArrayList<>(); + List pin = new ArrayList<>(); + List gu = new ArrayList<>(); + + for (EleRateVO eleRateVO : rateList) { + if (eleRateVO.getRateTypeName().equals("峰")) { + feng.add(eleRateVO.getRateTypeTime().split("-")[0]); + feng.add(eleRateVO.getRateTypeTime().split("-")[1]); + feng.add(eleRateVO.getRate()); + } else if (eleRateVO.getRateTypeName().equals("平")) { + pin.add(eleRateVO.getRateTypeTime().split("-")[0]); + pin.add(eleRateVO.getRateTypeTime().split("-")[1]); + pin.add(eleRateVO.getRate()); + } else if (eleRateVO.getRateTypeName().equals("谷")) { + gu.add(eleRateVO.getRateTypeTime().split("-")[0]); + gu.add(eleRateVO.getRateTypeTime().split("-")[1]); + gu.add(eleRateVO.getRate()); + } + } + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + if (CollectionUtil.isNotEmpty(dictDataList)) { + if (CollectionUtil.isNotEmpty(dictDataList)) { + for (DictData dictData : dictDataList) { + ElectCompareVO electCompareVO = new ElectCompareVO(); + electCompareVO.setLoadName(dictData.getName()); + electCompareVO.setLoadId(dictData.getId()); + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictData.getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + } + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId()).append("_add").append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(time[0]).append("' and time<= '").append(time[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + + if (electComparaParam.getStatisticType() == 0) { + float fengVal = 0f; + float pingVal = 0f; + float guVal = 0f; + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (hour >= Integer.parseInt(feng.get(0).substring(0, 2)) && hour < Integer.parseInt(feng.get(1).substring(0, 2))) { + //峰 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(0).substring(0, 2)) && hour < Integer.parseInt(pin.get(1).substring(0, 2))) { + //平 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + + } else if (hour >= Integer.parseInt(gu.get(0).substring(0, 2)) && hour < Integer.parseInt(gu.get(1).substring(0, 2))) { + //谷 + guVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString())); + } else if (hour >= Integer.parseInt(feng.get(3).substring(0, 2)) && hour < Integer.parseInt(feng.get(4).substring(0, 2))) { + //峰2 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(3).substring(0, 2)) && hour < Integer.parseInt(pin.get(4).substring(0, 2))) { + //平2 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + electCompareVO.setFeng(fengVal); + electCompareVO.setPing(pingVal); + electCompareVO.setGu(guVal); + electCompareVO.setAll(fengVal + pingVal + guVal); + list.add(electCompareVO); + //电度 + } else if (electComparaParam.getStatisticType() == 1) { + //电费 + float fengVal = 0f; + float pingVal = 0f; + float guVal = 0f; + for (Map map : mapList) { + + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (hour >= Integer.parseInt(feng.get(0).substring(0, 2)) && hour < Integer.parseInt(feng.get(1).substring(0, 2))) { + //峰 + fengVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(feng.get(2))); + } else if (hour >= Integer.parseInt(pin.get(0).substring(0, 2)) && hour < Integer.parseInt(pin.get(1).substring(0, 2))) { + //平 + pingVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(pin.get(2))); + + } else if (hour >= Integer.parseInt(gu.get(0).substring(0, 2)) && hour < Integer.parseInt(gu.get(1).substring(0, 2))) { + //谷 + guVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(gu.get(2))); + } else if (hour >= Integer.parseInt(feng.get(3).substring(0, 2)) && hour < Integer.parseInt(feng.get(4).substring(0, 2))) { + //峰2 + fengVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(feng.get(5))); + } else if (hour >= Integer.parseInt(pin.get(3).substring(0, 2)) && hour < Integer.parseInt(pin.get(4).substring(0, 2))) { + //平2 + pingVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(pin.get(5))); + } + } + } + electCompareVO.setFeng(fengVal); + electCompareVO.setPing(pingVal); + electCompareVO.setGu(guVal); + electCompareVO.setAll(fengVal + pingVal + guVal); + list.add(electCompareVO); + } + } + } else { + throw new BusinessException(EnergyResponseEnum.CAI_BIND); + } + + + } + + List all = list.stream().filter(item -> item.getLoadName().equals("高压进线") || item.getLoadName().equals("光伏发电")).collect(Collectors.toList()); + Float allMy = 0f; + for (ElectCompareVO e : all) { + allMy += e.getAll(); + } + List itemList = list.stream().filter(item -> !item.getLoadName().equals("高压进线") && !item.getLoadName().equals("光伏发电")).collect(Collectors.toList()); + + for (ElectCompareVO electCompareVO1 : itemList) { + Map map = new HashMap<>(); + map.put("name", electCompareVO1.getLoadName()); + Float a = electCompareVO1.getAll() / allMy; + map.put("value", a.toString()); + res.add(map); + + } + } + } + return res; + } + + @Override + public List getElectStatistic(ElectComparaParam electComparaParam) { + List res = new ArrayList<>(); + String[] time = formatTime(electComparaParam.getStartTime(), electComparaParam.getEndTime()); + String[] timeTong = formatTime(electComparaParam.getStartTimeBi(), electComparaParam.getEndTimeBi()); + + //获取指标 + EleEpdPqd eleEpdPqd = eleEpdMapper.selectById(electComparaParam.getTagType()); + if (Objects.isNull(eleEpdPqd)) { + throw new BusinessException(CommonResponseEnum.FAIL); + } + //获取费率 + + List rate = null; + + List rateVal = new ArrayList<>(); + + List feng = new ArrayList<>(); + List pin = new ArrayList<>(); + List gu = new ArrayList<>(); + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + rate = eleRateSetMappser.getEleRateById(electComparaParam.getValType()); + for (EleRateVO eleRateVO : rate) { + if (eleRateVO.getRateTypeName().equals("峰")) { + rateVal.add(eleRateVO.getRateTypeTime().split("-")[0]); + rateVal.add(eleRateVO.getRateTypeTime().split("-")[1]); + rateVal.add(eleRateVO.getRate()); + } else if (eleRateVO.getRateTypeName().equals("平")) { + rateVal.add(eleRateVO.getRateTypeTime().split("-")[0]); + rateVal.add(eleRateVO.getRateTypeTime().split("-")[1]); + rateVal.add(eleRateVO.getRate()); + } else if (eleRateVO.getRateTypeName().equals("谷")) { + rateVal.add(eleRateVO.getRateTypeTime().split("-")[0]); + rateVal.add(eleRateVO.getRateTypeTime().split("-")[1]); + rateVal.add(eleRateVO.getRate()); + } + } + } else { + rate = eleRateSetMappser.getEleRateDetail(DicDataTypeEnum.RATE_TYPE.getName()); + for (EleRateVO eleRateVO : rate) { + if (eleRateVO.getRateTypeName().equals("峰")) { + feng.add(eleRateVO.getRateTypeTime().split("-")[0]); + feng.add(eleRateVO.getRateTypeTime().split("-")[1]); + feng.add(eleRateVO.getRate()); + } else if (eleRateVO.getRateTypeName().equals("平")) { + pin.add(eleRateVO.getRateTypeTime().split("-")[0]); + pin.add(eleRateVO.getRateTypeTime().split("-")[1]); + pin.add(eleRateVO.getRate()); + } else if (eleRateVO.getRateTypeName().equals("谷")) { + gu.add(eleRateVO.getRateTypeTime().split("-")[0]); + gu.add(eleRateVO.getRateTypeTime().split("-")[1]); + gu.add(eleRateVO.getRate()); + } + } + } + + + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + if (CollectionUtil.isNotEmpty(dictDataList)) { + dictDataList = dictDataList.stream().filter(num -> electComparaParam.getLoadType().contains(num.getId())).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(dictDataList)) { + for (DictData dictData : dictDataList) { + LoadStatisticVO loadStatisticVO = new LoadStatisticVO(); + loadStatisticVO.setLoadName(dictData.getName()); + loadStatisticVO.setLoadId(dictData.getId()); + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictData.getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + } + float beforeVal = 0f; + float afterVal = 0f; + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId() + "_add").append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(time[0]).append("' and time<= '").append(time[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + if (electComparaParam.getStatisticType() == 0) { + //电度 + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + } + } else { + //总电度 + beforeVal = getAssEle(mapList, eleEpdPqd, feng, pin, gu, 1); + + } + + } else if (electComparaParam.getStatisticType() == 1) { + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } + } + } + } else { + //电费 + beforeVal = getAssEle(mapList, eleEpdPqd, feng, pin, gu, 2); + } + } + } + loadStatisticVO.setBeforeNum(beforeVal); + StringBuilder sqlAfter = new StringBuilder("select "); + //同比环比值 + sqlAfter.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId() + "_add").append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(timeTong[0]).append("' and time<= '").append(timeTong[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapListAfter = influxDbUtils.getResult(sqlAfter.toString(), ""); + if (CollectionUtil.isNotEmpty(mapListAfter)) { + if (electComparaParam.getStatisticType() == 0) { + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapListAfter) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + } + } else { + afterVal = getAssEle(mapListAfter, eleEpdPqd, feng, pin, gu, 1); + } + } else if (electComparaParam.getStatisticType() == 1) { + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapListAfter) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } + } + } + } else { + afterVal = getAssEle(mapListAfter, eleEpdPqd, feng, pin, gu, 2); + } + } + } + loadStatisticVO.setAfterNum(afterVal); + res.add(loadStatisticVO); + } else { + throw new BusinessException(EnergyResponseEnum.CAI_BIND); + } + } + + //***************总负荷 + LoadStatisticVO loadStatisticVO = new LoadStatisticVO(); + loadStatisticVO.setLoadName("总负荷"); + loadStatisticVO.setLoadId(""); + + List dicIdList = dictDataList.stream().filter(item -> item.getAlgoDescribe() == 1).map(DictData::getId).collect(Collectors.toList()); + List lineIdsList = eleLoadSetMapper.getAllLineListRelationIds(dicIdList); + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdsList.size(); i++) { + if (i == lineIdsList.size() - 1) { + lineId.append("'").append(lineIdsList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdsList.get(i)).append("'").append(" or LineId="); + } + } + float beforeVal = 0f; + float afterVal = 0f; + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId() + "_add").append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(time[0]).append("' and time<= '").append(time[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + + if (electComparaParam.getStatisticType() == 0) { + //电度 + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + } + } else { + beforeVal = getAssEle(mapList, eleEpdPqd, feng, pin, gu, 1); + } + + } else if (electComparaParam.getStatisticType() == 1) { + //电费 + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + beforeVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } + } + } + } else { + beforeVal = getAssEle(mapList, eleEpdPqd, feng, pin, gu, 2); + } + } + } + loadStatisticVO.setBeforeNum(beforeVal); + + StringBuilder sqlAfter = new StringBuilder("select "); + //同比环比值 + sqlAfter.append("SUM(").append(eleEpdPqd.getName()).append(") as ").append(eleEpdPqd.getName()).append(" from ").append(eleEpdPqd.getClassId() + "_add").append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleEpdPqd.getPhase()) + .append("' and time>='").append(timeTong[0]).append("' and time<= '").append(timeTong[1]).append("' and ").append(eleEpdPqd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapListAfter = influxDbUtils.getResult(sqlAfter.toString(), ""); + if (CollectionUtil.isNotEmpty(mapListAfter)) { + //电度 + if (electComparaParam.getStatisticType() == 0) { + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapListAfter) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + } + } else { + afterVal = getAssEle(mapListAfter, eleEpdPqd, feng, pin, gu, 1); + } + + } else if (electComparaParam.getStatisticType() == 1) { + if (StrUtil.isNotBlank(electComparaParam.getValType())) { + for (Map map : mapListAfter) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (rate.get(0).getRateTypeName().equals("峰")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //峰 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("平")) { + if ((hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) || (hour >= Integer.parseInt(rateVal.get(3).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(4).substring(0, 2)))) { + //平 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } else if (rate.get(0).getRateTypeName().equals("谷")) { + if (hour >= Integer.parseInt(rateVal.get(0).substring(0, 2)) && hour < Integer.parseInt(rateVal.get(1).substring(0, 2))) { + //谷 + afterVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()) * Float.parseFloat(rateVal.get(2)); + } + } + } + } + } else { + afterVal = getAssEle(mapListAfter, eleEpdPqd, feng, pin, gu, 2); + } + } + } + loadStatisticVO.setAfterNum(afterVal); + res.add(loadStatisticVO); + + //***************总负荷 + } + + } else { + throw new BusinessException(SystemResponseEnum.LOAD_TYPE_EMPTY); + } + return res; + } + + @Override + public List getAirTendency(String start, String end) { + List listRes = new ArrayList<>(); + + if (start.length() < 11) { + LocalDateTime startTime = PubUtils.beginTimeToLocalDateTime(start); + start = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime endTime = PubUtils.endTimeToLocalDateTime(end); + end = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } + + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.ELE_LOAD_TYPE.getName()).getData(); + dictDataList = dictDataList.stream().filter(item -> item.getName().equals(LoadEnum.AIR_LOAD.getName())).collect(Collectors.toList()); + + + if (CollectionUtil.isNotEmpty(dictDataList)) { + + List lineIdList = eleLoadSetMapper.getAllLineListRelation(dictDataList.get(0).getId()); + if (CollectionUtil.isNotEmpty(lineIdList)) { + if (CollectionUtil.isNotEmpty(lineIdList)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < lineIdList.size(); i++) { + if (i == lineIdList.size() - 1) { + lineId.append("'").append(lineIdList.get(i)).append("'"); + } else { + lineId.append("'").append(lineIdList.get(i)).append("'").append(" or LineId="); + } + + } + List> itemList = new ArrayList<>(); + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(WattHr) as ").append("WattHr").append(" from ").append("power_data_add").append(" where (LineId = ").append(lineId).append(") and Phase = 'T'") + .append(" and time>='").append(start).append("' and time< '").append(end).append("' and ").append("WattHr").append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + LoadTendencyVO loadTendencyVO = new LoadTendencyVO(); + loadTendencyVO.setLoadName("耗电量"); + for (Map map : mapList) { + if (map.get("WattHr") != null) { + List it = new ArrayList<>(); + it.add(map.get("time").toString()); + it.add(map.get("WattHr").toString()); + itemList.add(it); + } + + } + loadTendencyVO.setValue(itemList); + listRes.add(loadTendencyVO); + } + } + + } else { + throw new BusinessException(EnergyResponseEnum.CAI_BIND); + } + } else { + throw new BusinessException(SystemResponseEnum.LOAD_TYPE_EMPTY); + } + + //空调处理 + //获取所有外机空调 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.like(EleLine::getName, "外机"); + List lineList = eleLineMapper.selectList(lambdaQueryWrapper); + List ids = lineList.stream().map(EleLine::getLineId).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(ids)) { + StringBuilder lineId = new StringBuilder(); + for (int i = 0; i < ids.size(); i++) { + if (i == ids.size() - 1) { + lineId.append("'").append(ids.get(i)).append("'"); + } else { + lineId.append("'" + ids.get(i) + "'").append(" or LineId="); + } + + } + + List> itemList = new ArrayList<>(); + List> itemTwoList = new ArrayList<>(); + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(ACOutInNum) as ").append("ACOutInNum,").append("MIN(ACOutTmp) as ACOutTmp").append(" from ").append("air_data").append(" where (LineId = ").append(lineId).append(") and Phase = 'M'") + .append(" and time>='").append(start).append("' and time< '").append(end).append("' and ACOutInNum != -1000000 and ACOutTmp !=-1000000").append(" group by time(5m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + LoadTendencyVO loadTendencyVO = new LoadTendencyVO(); + loadTendencyVO.setLoadName("内机开机数量"); + LoadTendencyVO loadTendencyVOWai = new LoadTendencyVO(); + loadTendencyVOWai.setLoadName("外机温度"); + for (Map map : mapList) { + if (map.get("ACOutInNum") != null) { + List it = new ArrayList<>(); + List ittwo = new ArrayList<>(); + it.add(map.get("time").toString()); + it.add(map.get("ACOutInNum").toString()); + ittwo.add(map.get("time").toString()); + ittwo.add(map.get("ACOutTmp").toString()); + itemList.add(it); + itemTwoList.add(ittwo); + } + + } + loadTendencyVO.setValue(itemList); + loadTendencyVOWai.setValue(itemTwoList); + listRes.add(loadTendencyVO); + listRes.add(loadTendencyVOWai); + } + } + + return listRes; + } + + + /** + * 获取负荷值 + * + * @author cdf + * @date 2022/4/26 + */ + + private void getLoadStatisticZi(LoadStatisticParam loadStatisticParam, EleMd eleMd, List res, LoadStatisticVO loadStatisticVO, StringBuilder lineId) { + //单一负荷 + if (loadStatisticParam.getLoadType().size() == 1) { + List valListBefore = new ArrayList<>(); + List valListAfter = new ArrayList<>(); + + + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(loadStatisticParam.getStartTime()).append("' and time< '").append(loadStatisticParam.getEndTime()).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapListBefore = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapListBefore)) { + for (Map map : mapListBefore) { + if (map.get(eleMd.getName()) != null) { + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + valListBefore.add(tem); + } + } + } + + sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(loadStatisticParam.getStartTimeBi()).append("' and time< '").append(loadStatisticParam.getEndTimeBi()).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapListAfter = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapListAfter)) { + for (Map map : mapListAfter) { + if (map.get(eleMd.getName()) != null) { + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + valListAfter.add(tem); + } + } + } + + Float beforeMax = 0f; + Float afterMax = 0f; + + Float beforeMin = 0f; + Float afterMin = 0f; + + Float beforeAvg = 0f; + Float afterAvg = 0f; + if (CollectionUtil.isNotEmpty(valListBefore)) { + beforeMax = Collections.max(valListBefore); + beforeMin = Collections.min(valListBefore); + + float tem = 0f; + for (int i = 0; i < valListBefore.size(); i++) { + tem += valListBefore.get(i); + } + beforeAvg = tem / valListBefore.size(); + } else { + beforeMax = 3.14159f; + beforeMin = 3.14159f; + beforeAvg = 3.14159f; + } + if (CollectionUtil.isNotEmpty(valListAfter)) { + afterMax = Collections.max(valListAfter); + afterMin = Collections.min(valListAfter); + float tem = 0f; + for (int i = 0; i < valListAfter.size(); i++) { + tem += valListAfter.get(i); + } + afterAvg = tem / valListAfter.size(); + } else { + afterMax = 3.14159f; + afterMin = 3.14159f; + afterAvg = 3.14159f; + } + + for (int i = 0; i < loadStatisticParam.getValType().size(); i++) { + if (loadStatisticParam.getValType().get(i) == 0) { + LoadStatisticVO loadStatisticVOMax = new LoadStatisticVO(); + loadStatisticVOMax.setLoadName("最大值"); + //最大值 + loadStatisticVOMax.setBeforeNum(beforeMax); + loadStatisticVOMax.setAfterNum(afterMax); + res.add(loadStatisticVOMax); + } else if (loadStatisticParam.getValType().get(i) == 1) { + //最小值 + LoadStatisticVO loadStatisticVOMin = new LoadStatisticVO(); + loadStatisticVOMin.setLoadName("最小值"); + loadStatisticVOMin.setBeforeNum(beforeMin); + loadStatisticVOMin.setAfterNum(afterMin); + res.add(loadStatisticVOMin); + } else if (loadStatisticParam.getValType().get(i) == 2) { + LoadStatisticVO loadStatisticVOAvg = new LoadStatisticVO(); + loadStatisticVOAvg.setLoadName("平均值"); + loadStatisticVOAvg.setBeforeNum(beforeAvg); + loadStatisticVOAvg.setAfterNum(afterAvg); + res.add(loadStatisticVOAvg); + } + } + } else { + //负荷类型不唯一 + + Float ping = 0f; + Float after = 0f; + + + StringBuilder sql = new StringBuilder("select "); + sql.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(loadStatisticParam.getStartTime()).append("' and time< '").append(loadStatisticParam.getEndTime()).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapList = influxDbUtils.getResult(sql.toString(), ""); + if (CollectionUtil.isNotEmpty(mapList)) { + List valList = new ArrayList<>(); + for (Map map : mapList) { + if (map.get(eleMd.getName()) != null) { + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + valList.add(tem); + } + } + if (CollectionUtil.isNotEmpty(valList)) { + if (loadStatisticParam.getValType().get(0) == 0) { + //最大值 + ping = Collections.max(valList); + } else if (loadStatisticParam.getValType().get(0) == 1) { + //最小值 + ping = Collections.min(valList); + } else if (loadStatisticParam.getValType().get(0) == 2) { + float tem = 0f; + for (int i = 0; i < valList.size(); i++) { + tem += valList.get(i); + } + ping = tem / valList.size(); + } + } else { + ping = 3.14159f; + } + } + loadStatisticVO.setBeforeNum(ping); + + + StringBuilder sqlAfter = new StringBuilder("select "); + sqlAfter.append("SUM(").append(eleMd.getName()).append(") as ").append(eleMd.getName()).append(" from ").append(eleMd.getClassId()).append(" where (LineId = ").append(lineId).append(") and Phase= '").append(eleMd.getPhase()) + .append("' and time>'").append(loadStatisticParam.getStartTimeBi()).append("' and time< '").append(loadStatisticParam.getEndTimeBi()).append("' and ").append(eleMd.getName()).append(" !=-1000000").append(" group by time(15m)"); + List> mapListAfter = influxDbUtils.getResult(sqlAfter.toString(), ""); + if (CollectionUtil.isNotEmpty(mapListAfter)) { + List valList = new ArrayList<>(); + for (Map map : mapListAfter) { + if (map.get(eleMd.getName()) != null) { + Float tem = Float.parseFloat(map.get(eleMd.getName()).toString()) / 1000; + valList.add(tem); + } + } + + if (CollectionUtil.isNotEmpty(valList)) { + if (loadStatisticParam.getValType().get(0) == 0) { + //最大值 + after = Collections.max(valList); + } else if (loadStatisticParam.getValType().get(0) == 1) { + //最小值 + after = Collections.min(valList); + } else if (loadStatisticParam.getValType().get(0) == 2) { + float tem = 0f; + for (int i = 0; i < valList.size(); i++) { + tem += valList.get(i); + } + after = tem / valList.size(); + } + } else { + after = 3.14159f; + } + } + loadStatisticVO.setAfterNum(after); + res.add(loadStatisticVO); + } + } + + //时间格式化 + private String[] formatTime(String start, String end) { + String[] time = new String[2]; + LocalDateTime startTime = PubUtils.beginTimeToLocalDateTime(start); + time[0] = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime endTime = PubUtils.endTimeToLocalDateTime(end); + time[1] = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + return time; + } + + + //获取电度电费 + private float getAssEle(List> mapList, EleEpdPqd eleEpdPqd, List feng, List pin, List gu, int type) { + float fengVal = 0f; + float pingVal = 0f; + float guVal = 0f; + //电度 + for (Map map : mapList) { + if (map.get(eleEpdPqd.getName()) != null) { + int hour = Integer.parseInt(map.get("time").toString().substring(11, 13)); + if (hour >= Integer.parseInt(feng.get(0).substring(0, 2)) && hour < Integer.parseInt(feng.get(1).substring(0, 2))) { + //峰 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(0).substring(0, 2)) && hour < Integer.parseInt(pin.get(1).substring(0, 2))) { + //平 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + + } else if (hour >= Integer.parseInt(gu.get(0).substring(0, 2)) && hour < Integer.parseInt(gu.get(1).substring(0, 2))) { + //谷 + guVal += (Float.parseFloat(map.get(eleEpdPqd.getName()).toString())); + } else if (hour >= Integer.parseInt(feng.get(3).substring(0, 2)) && hour < Integer.parseInt(feng.get(4).substring(0, 2))) { + //峰2 + fengVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } else if (hour >= Integer.parseInt(pin.get(3).substring(0, 2)) && hour < Integer.parseInt(pin.get(4).substring(0, 2))) { + //平2 + pingVal += Float.parseFloat(map.get(eleEpdPqd.getName()).toString()); + } + } + } + if (type == 1) { + return fengVal + pingVal + guVal; + } else { + return fengVal * Float.parseFloat(feng.get(2)) + pingVal * Float.parseFloat(pin.get(2)) + guVal * Float.parseFloat(gu.get(2)); + } + } + + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/LogicAccessServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/LogicAccessServiceImpl.java new file mode 100644 index 000000000..f28881c51 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/LogicAccessServiceImpl.java @@ -0,0 +1,122 @@ +package com.njcn.quality.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.quality.mapper.LogicAccessMapper; +import com.njcn.quality.pojo.constant.ModelState; +import com.njcn.quality.pojo.po.LogicAccess; +import com.njcn.quality.service.ILogicAccessService; +import com.njcn.quality.service.INetDevService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/3/23 21:56 + */ +@Service +@AllArgsConstructor +public class LogicAccessServiceImpl extends ServiceImpl implements ILogicAccessService { + + private final INetDevService netDevService; + + @Override + public List findAccessDev(List did) { + return this.lambdaQuery().in(LogicAccess::getDid,did).ne(LogicAccess::getState, DataStateEnum.DELETED.getCode()).list(); + } + + @Override + public boolean add(LogicAccess logicAccess) { + return this.save(logicAccess); + } + + @Override + public LogicAccess getAccessDev(String did) { + List list = Stream.of(1,2).collect(Collectors.toList()); + return this.lambdaQuery().eq(LogicAccess::getDid,did).in(LogicAccess::getState,list).one(); + } + + @Override + public void deleteByDid(List list) { + this.lambdaUpdate() + .set(LogicAccess::getState, ModelState.UNREGISTER) + .in(LogicAccess::getDid, list) + .update(); + } + + @Override + public void offlineByDid(List list) { + this.lambdaUpdate() + .set(LogicAccess::getState, ModelState.REGISTER) + .in(LogicAccess::getDid, list) + .update(); + } + + @Override + public LogicAccess findCancelAccessDev(String did) { + return this.lambdaQuery().eq(LogicAccess::getDid,did).eq(LogicAccess::getState,DataStateEnum.DELETED.getCode()).one(); + } + + @Override + public void accessCancelDev(String did) { + this.lambdaUpdate() + .set(LogicAccess::getState, DataStateEnum.ENABLE.getCode()) + .eq(LogicAccess::getDid, did) + .update(); + } + + @Override + public void accessDev(LogicAccess logicAccess) { + this.updateById(logicAccess); + } + + @Override + public List getLogicAccess(String ndid, List list) { + String pid = netDevService.findByNdid(ndid).getId(); + return this.lambdaQuery().in(LogicAccess::getDid,list).eq(LogicAccess::getState,ModelState.ACCESS).eq(LogicAccess::getPid,pid).list(); + } + + @Override + public List getAllOnlineDevice(String ndid) { + String pid = netDevService.findByNdid(ndid).getId(); + return this.lambdaQuery().eq(LogicAccess::getState,ModelState.ACCESS).eq(LogicAccess::getPid,pid).list(); + } + + @Override + public List getAllOfflineDevice(String ndid) { + String pid = netDevService.findByNdid(ndid).getId(); + return this.lambdaQuery().eq(LogicAccess::getState,ModelState.REGISTER).eq(LogicAccess::getPid,pid).list(); + } + + @Override + public void offAllDevice(String ndid) { + String pid = netDevService.findByNdid(ndid).getId(); + this.lambdaUpdate() + .set(LogicAccess::getState, ModelState.REGISTER) + .eq(LogicAccess::getState, ModelState.ACCESS) + .eq(LogicAccess::getPid, pid) + .update(); + } + + @Override + public List getOnlineByList(List list) { + return this.lambdaQuery().in(LogicAccess::getDid,list).eq(LogicAccess::getState,ModelState.ACCESS).list(); + } + + @Override + public List getLogicDevByList(List list) { + return this.lambdaQuery().in(LogicAccess::getPid,list).and(item->{item.eq(LogicAccess::getState,ModelState.REGISTER).or().eq(LogicAccess::getState,ModelState.ACCESS);}).list(); + } + + @Override + public List getAllDev() { + return this.lambdaQuery().eq(LogicAccess::getState,ModelState.ACCESS).or().eq(LogicAccess::getState,ModelState.REGISTER).list(); + } +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/LogicDeviceLineServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/LogicDeviceLineServiceImpl.java new file mode 100644 index 000000000..6c1c9e499 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/LogicDeviceLineServiceImpl.java @@ -0,0 +1,682 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.common.utils.PubUtils; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.mapper.*; +import com.njcn.quality.param.DataHisParam; +import com.njcn.quality.param.DevCfgParam; +import com.njcn.quality.param.EnergyBaseParam; +import com.njcn.quality.param.GroupArrParam; +import com.njcn.quality.pojo.constant.TableName; +import com.njcn.quality.pojo.dto.NetAndDevByLineDTO; +import com.njcn.quality.pojo.po.*; +import com.njcn.quality.pojo.vo.*; +import com.njcn.quality.service.IDataGroupService; +import com.njcn.quality.service.IGroupArrayService; +import com.njcn.quality.service.ILogicDeviceLineService; +import lombok.RequiredArgsConstructor; +import org.influxdb.dto.QueryResult; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; + +/** + * pqs + * + * @author cdf + * @date 2022/2/24 + */ +@Service +@RequiredArgsConstructor +public class LogicDeviceLineServiceImpl extends ServiceImpl implements ILogicDeviceLineService { + + private final LogicDeviceLineMapper logicDeviceLineMapper; + + private final DataSetMapper dataSetMapper; + + private final NetDevMapper netDevMapper; + + private final DataGroupMapper dataGroupMapper; + + private final DataArrayMapper dataArrayMapper; + + private final GroupArrayMapper groupArrMapper; + + private final IDataGroupService iDataGroupService; + + private final IGroupArrayService iGroupArrayService; + + private final InfluxDbUtils influxDbUtils; + + @Override + public List getEnergyTree() { + List netDevList = netDevMapper.getNetDevList(); + List logicDevList = logicDeviceLineMapper.getLogicDevList(); + List elLineList = logicDeviceLineMapper.getEleLineList(); + if (CollectionUtil.isEmpty(logicDevList) || CollectionUtil.isEmpty(elLineList) || CollectionUtil.isEmpty(netDevList)) { + throw new BusinessException(EnergyResponseEnum.DEV_LINE_EMPTY); + } + List logicAllDevList = logicDevList.stream().peek(item -> item.setChildren(getChildren(item, elLineList))).collect(Collectors.toList()); + return netDevList.stream().peek(item -> item.setChildren(getChildren(item, logicAllDevList))).collect(Collectors.toList()); + } + + @Override + public List getAirLineTree(){ + List netDevList = netDevMapper.getNetDevList(); + netDevList = netDevList.stream().filter(item-> item.getName().contains("空调")).collect(Collectors.toList()); + List logicDevList = logicDeviceLineMapper.getLogicDevList(); + List elLineList = logicDeviceLineMapper.getEleLineList(); + if (CollectionUtil.isEmpty(logicDevList) || CollectionUtil.isEmpty(elLineList) || CollectionUtil.isEmpty(netDevList)) { + throw new BusinessException(EnergyResponseEnum.DEV_LINE_EMPTY); + } + List logicAllDevList = logicDevList.stream().peek(item -> item.setChildren(getChildren(item, elLineList))).collect(Collectors.toList()); + + return netDevList.stream().peek(item -> item.setChildren(getChildren(item, logicAllDevList))).collect(Collectors.toList()); + } + + @Override + public EleLoadSetTreeVO getEnergyLoadTree(String id) { + EleLoadSetTreeVO eleLoadSetTreeVO = new EleLoadSetTreeVO(); + List netDevList = netDevMapper.getNetDevList(); + netDevList = netDevList.stream().filter(item -> item.getName().indexOf("空调") == -1).collect(Collectors.toList()); + List logicDevList = logicDeviceLineMapper.getLogicDevList(); + List netNoDevList = netDevMapper.getNetDevList(); + netNoDevList = netNoDevList.stream().filter(item -> item.getName().indexOf("空调") == -1).collect(Collectors.toList()); + List logicNoDevList = logicDeviceLineMapper.getLogicDevList(); + List elBindsLineList = logicDeviceLineMapper.getEleBindsLineList(id); + List elNoBindsLineList = logicDeviceLineMapper.getEleNoBindsLineList(); + List energyNoBindsDeviceTreeVOList = new ArrayList<>(); + List energyBindsDeviceTreeVOList = new ArrayList<>(); + List energyNetTreeVOList = new ArrayList<>(); + List energyNetNoTreeVOList = new ArrayList<>(); + if (!CollectionUtil.isEmpty(elBindsLineList)) { + List logicBindsDevList = logicDevList.stream().peek(item -> item.setChildren(getChildren(item, elBindsLineList))).collect(Collectors.toList()); + List energyDeviceTreeVOList = logicBindsDevList.stream().filter(item -> item.getChildren().size() != 0).collect(Collectors.toList()); + energyBindsDeviceTreeVOList = netDevList.stream().peek(item -> item.setChildren(getChildren(item, energyDeviceTreeVOList))).collect(Collectors.toList()); + energyNetTreeVOList = energyBindsDeviceTreeVOList.stream().filter(item -> item.getChildren().size() != 0).collect(Collectors.toList()); + } + + if (!CollectionUtil.isEmpty(elNoBindsLineList)) { + List logicNoBindsDevList = logicNoDevList.stream().peek(item -> item.setChildren(getChildren(item, elNoBindsLineList))).collect(Collectors.toList()); + List energyDeviceNoTreeVOList = logicNoBindsDevList.stream().filter(item -> item.getChildren().size() != 0).collect(Collectors.toList()); + energyNoBindsDeviceTreeVOList = netNoDevList.stream().peek(item -> item.setChildren(getChildren(item, energyDeviceNoTreeVOList))).collect(Collectors.toList()); + energyNetNoTreeVOList = energyNoBindsDeviceTreeVOList.stream().filter(item -> item.getChildren().size() != 0).collect(Collectors.toList()); + } + eleLoadSetTreeVO.setBinds(energyNetTreeVOList); + eleLoadSetTreeVO.setNoBinds(energyNetNoTreeVOList); + return eleLoadSetTreeVO; + } + + @Override + public LogicDeviceLineInfoVO getEnergyDevInfoById(String id) { + return logicDeviceLineMapper.getDevInfo(id); + } + + + @Override + public IPage getEnergyTemplateById(String id, Integer pageNum, Integer pageSize) { + List listRes = new ArrayList<>(); + IPage page = new Page<>(pageNum, pageSize); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DataArray::getPid, id); + lambdaQueryWrapper.orderByAsc(DataArray::getSort); + IPage pageRes = dataArrayMapper.selectPage(page, lambdaQueryWrapper); + if (pageRes.getTotal() > 0) { + List arrRes = pageRes.getRecords(); + if (CollectionUtil.isNotEmpty(arrRes)) { + Map> classMap = new HashMap<>(); + arrRes.stream().collect(Collectors.groupingBy(DataArray::getClassName, Collectors.toList())) + .forEach(classMap::put); + classMap.forEach((className, dataArrList) -> { + + List arrIds = dataArrList.stream().map(DataArray::getId).collect(Collectors.toList()); + List listData = logicDeviceLineMapper.getDataList(className, arrIds); + if (CollectionUtil.isNotEmpty(listData)) { + listRes.addAll(listData); + } + }); + } + + } + List listResEs = listRes.stream().sorted(Comparator.comparing(EnergyTemplateVO::getSort)).collect(Collectors.toList()); + IPage pageTurn = new Page<>(pageNum, pageSize); + pageTurn.setRecords(listResEs); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + return pageTurn; + } + + + @Override + public IPage getRealGroupTemplateById(String id, Integer pageNum, Integer pageSize) { + IPage page = new Page<>(pageNum, pageSize); + IPage pageTurn = new Page<>(); + IPage pageRes = dataGroupMapper.getGroupDataList(page, id); + if (pageRes.getTotal() > 0) { + //查询到分组 + List listDataAll = new ArrayList<>(); + List groupList = pageRes.getRecords(); + //获取数据集下所有数据项 + List voList = logicDeviceLineMapper.getGroupDataBySetId(id); + if (CollectionUtil.isNotEmpty(voList)) { + Map> classMap = new HashMap<>(); + voList.stream().collect(Collectors.groupingBy(DataArray::getClassName, Collectors.toList())) + .forEach(classMap::put); + classMap.forEach((className, dataArrList) -> { + List arrIds = dataArrList.stream().map(DataArray::getId).collect(Collectors.toList()); + + List listData = logicDeviceLineMapper.getDataList(className, arrIds); + if (CollectionUtil.isNotEmpty(listData)) { + for (EnergyTemplateVO energyTemplateVO : listData) { + + for (DataArray dataArray : dataArrList) { + if (energyTemplateVO.getId().equals(dataArray.getDataId())) { + energyTemplateVO.setPid(dataArray.getPid()); + break; + } + } + } + listDataAll.addAll(listData); + } + + }); + List listDataAllRes = listDataAll.stream().sorted(Comparator.comparing(EnergyTemplateVO::getSort)).collect(Collectors.toList()); + + List grList = groupList.stream().peek((item) -> item.setChildren(getChildrenes(item.getId(), listDataAllRes))).collect(Collectors.toList()); + pageTurn.setRecords(grList); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + return pageTurn; + } else { + throw new BusinessException(CommonResponseEnum.FAIL); + } + } else { + pageTurn.setRecords(new ArrayList<>()); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + return pageTurn; + } + + + } + + + @Override + public IPage getHistoryTemplateById(EnergyBaseParam energyBaseParam) { + LocalDateTime localDateTime = PubUtils.endTimeToLocalDateTime(energyBaseParam.getEndTime()); + String endTime = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + + IPage page = new Page<>(energyBaseParam.getPageNum(), energyBaseParam.getPageSize()); + IPage pageTurn = new Page<>(); + IPage pageRes = dataGroupMapper.getGroupDataList(page, energyBaseParam.getId()); + + if (pageRes.getTotal() != 0) { + //查询到分组 + List listDataAll = new ArrayList<>(); + List groupList = pageRes.getRecords(); + //获取数据集下所有数据项 + List voList = logicDeviceLineMapper.getGroupDataBySetId(energyBaseParam.getId()); + if (CollectionUtil.isNotEmpty(voList)) { + Map> classMap = new HashMap<>(); + voList.stream().collect(Collectors.groupingBy(DataArray::getClassName, Collectors.toList())) + .forEach(classMap::put); + classMap.forEach((className, dataArrList) -> { + List arrIds = dataArrList.stream().map(DataArray::getId).collect(Collectors.toList()); + List listData = logicDeviceLineMapper.getDataList(className, arrIds); + String tableName = listData.get(0).getClassId(); + if (CollectionUtil.isNotEmpty(listData)) { + for (EnergyTemplateVO energyTemplateVO : listData) { + for (DataArray dataArray : dataArrList) { + if (energyTemplateVO.getId().equals(dataArray.getDataId())) { + energyTemplateVO.setPid(dataArray.getPid()); + break; + } + } + } + + if (listData.size() > 0) { + + + Map> classTemMap = new HashMap<>(); + + listData.stream().collect(Collectors.groupingBy(EnergyTemplateVO::getPhase, Collectors.toList())).forEach(classTemMap::put); + classTemMap.forEach((tmpPhase, enList) -> { + StringBuilder stringBuilderMax = new StringBuilder("select "); + StringBuilder stringBuilderMin = new StringBuilder("select "); + + StringBuilder condition = new StringBuilder(); + for (int j = 0; j < enList.size(); j++) { + if (j == enList.size() - 1) { + stringBuilderMax.append("MAX(").append(enList.get(j).getName()).append(") as ").append(enList.get(j).getName()).append(" "); + stringBuilderMin.append("MIN(").append(enList.get(j).getName()).append(") as ").append(enList.get(j).getName()).append(" "); + } else { + stringBuilderMax.append("MAX(").append(enList.get(j).getName()).append(") as ").append(enList.get(j).getName()).append(", "); + stringBuilderMin.append("MIN(").append(enList.get(j).getName()).append(") as ").append(enList.get(j).getName()).append(", "); + } + condition.append(" and ").append(enList.get(j).getName()).append("!=-1000000"); + } + String tableStr = ""; + if (TableName.eleEpdPqd.equals(className)) { + tableStr = "_add"; + } + + stringBuilderMax.append("from ").append(tableName).append(tableStr).append(" where").append(" time").append(">='").append(energyBaseParam.getStartTime()).append("' and time < '" + endTime + "'").append(" and LineId='" + energyBaseParam.getLineId() + "'").append(" and Phase='" + tmpPhase + "'"); + stringBuilderMin.append("from ").append(tableName).append(tableStr).append(" where").append(" time").append(">='").append(energyBaseParam.getStartTime()).append("' and time < '" + endTime + "'").append(" and LineId='" + energyBaseParam.getLineId() + "'").append(" and Phase='" + tmpPhase + "'").append(condition); + QueryResult queryResultMax = influxDbUtils.query(stringBuilderMax.toString()); + QueryResult queryResultMin = influxDbUtils.query(stringBuilderMin.toString()); + if (CollectionUtil.isNotEmpty(queryResultMax.getResults().get(0).getSeries()) && CollectionUtil.isNotEmpty(queryResultMin.getResults().get(0).getSeries())) { + for (int j = 0; j < enList.size(); j++) { + enList.get(j).setMaxValue(queryResultMax.getResults().get(0).getSeries().get(0).getValues().get(0).get(j + 1)); + enList.get(j).setMinValue(queryResultMin.getResults().get(0).getSeries().get(0).getValues().get(0).get(j + 1)); + } + } else { + throw new BusinessException(EnergyResponseEnum.ENERGY_EMPTY); + } + }); + + + + + } + + listDataAll.addAll(listData); + } + + }); + List grList = groupList.stream().peek((item) -> { + item.setChildren(getChildrenes(item.getId(), listDataAll)); + }).collect(Collectors.toList()); + pageTurn.setRecords(grList); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + return pageTurn; + } else { + throw new BusinessException(CommonResponseEnum.FAIL); + } + + + } else { + pageTurn.setRecords(new ArrayList<>()); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + return pageTurn; + } + + } + + @Override + public IPage getStatisTemplateById(String id, Integer pageNum, Integer pageSize, String lineId) { + IPage pageTurn = new Page<>(); //定义新的返回体 + IPage page = new Page<>(pageNum, pageSize); + IPage pageRes = dataGroupMapper.getGroupDataList(page, id); + if (pageRes.getTotal() != 0) { + //查询到分组 + List listDataAll = new ArrayList<>(); + List groupList = pageRes.getRecords(); + //获取数据集下所有数据项 + List voList = logicDeviceLineMapper.getGroupDataBySetId(id); + if (CollectionUtil.isNotEmpty(voList)) { + Map> classMap = new HashMap<>(); + voList.stream().collect(Collectors.groupingBy(DataArray::getClassName, Collectors.toList())).forEach(classMap::put); + classMap.forEach((className, dataArrList) -> { + List arrIds = dataArrList.stream().map(DataArray::getId).collect(Collectors.toList()); + List listData = logicDeviceLineMapper.getDataList(className, arrIds); + String tableName = listData.get(0).getClassId(); + if (CollectionUtil.isNotEmpty(listData)) { + for (EnergyTemplateVO energyTemplateVO : listData) { + for (DataArray dataArray : dataArrList) { + if (energyTemplateVO.getId().equals(dataArray.getDataId())) { + energyTemplateVO.setPid(dataArray.getPid()); + break; + } + } + } + + + if (listData.size() > 0) { + if (TableName.eleEpdPqd.equals(className) || TableName.eleMd.equals(className)) { + //电能表 + Map> classTemMap = new HashMap<>(); + + listData.stream().collect(Collectors.groupingBy(EnergyTemplateVO::getPhase, Collectors.toList())).forEach(classTemMap::put); + classTemMap.forEach((tmpPhase, enList) -> { + StringBuilder stringBuilderMax = new StringBuilder("select "); + + for (int j = 0; j < enList.size(); j++) { + if (j == enList.size() - 1) { + stringBuilderMax.append(enList.get(j).getName()).append(" "); + } else { + stringBuilderMax.append(enList.get(j).getName()).append(", "); + } + } + if (tableName.equals(TableName.powerData)) { + stringBuilderMax.append("from ").append(tableName).append("_add_Real").append(" where").append(" LineId='").append(lineId).append("'").append(" and Phase='" + tmpPhase + "'").append(" order by time"); + } else { + stringBuilderMax.append("from ").append(tableName).append("_Real").append(" where").append(" LineId='").append(lineId).append("'").append(" and Phase='" + tmpPhase + "'").append(" order by time"); + } + List> list = influxDbUtils.getResult(stringBuilderMax.toString(), ""); + if (CollectionUtil.isNotEmpty(list)) { + for(int i=0;i mapRes = new HashMap<>(); + list.get(i).forEach((key, value) -> { + if(Objects.nonNull(value)){ + mapRes.put(key,value); + } + }); + + for (int j = 0; j < enList.size(); j++) { + if(mapRes.containsKey(enList.get(j).getName())) { + + enList.get(j).setTime(mapRes.get("time").toString()); + enList.get(j).setDataValue(mapRes.get(enList.get(j).getName()).toString()); + } + } + } + } + }); + + + } else if (TableName.eleCtrl.equals(className) || TableName.eleSts.equals(className)) { + //展示空调数据 + StringBuilder stringBuilderMax = new StringBuilder("select "); + + for (int j = 0; j < listData.size(); j++) { + if (j == listData.size() - 1) { + stringBuilderMax.append(listData.get(j).getName()).append(" "); + } else { + stringBuilderMax.append(listData.get(j).getName()).append(", "); + } + } + stringBuilderMax.append("from ").append(tableName + "_Real").append(" where").append(" LineId='" + lineId + "'").append(" order by time"); + List> list = influxDbUtils.getResult(stringBuilderMax.toString(), ""); + if (CollectionUtil.isNotEmpty(list)) { + for(int i=0;i mapRes = new HashMap<>(); + list.get(i).forEach((key, value) -> { + if(Objects.nonNull(value)){ + mapRes.put(key,value); + } + }); + + for (int j = 0; j < listData.size(); j++) { + if(mapRes.containsKey(listData.get(j).getName())) { + + listData.get(j).setTime(mapRes.get("time").toString()); + listData.get(j).setDataValue(mapRes.get(listData.get(j).getName()).toString()); + } + } + } + } + + } + } + + listDataAll.addAll(listData); + } + + }); + List grList = groupList.stream().peek((item) -> { + item.setChildren(getChildrenes(item.getId(), listDataAll)); + }).collect(Collectors.toList()); + pageTurn.setRecords(grList); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + return pageTurn; + } else { + throw new BusinessException(CommonResponseEnum.FAIL); + } + + + } else { + pageTurn.setRecords(new ArrayList<>()); + pageTurn.setTotal(pageRes.getTotal()); + pageTurn.setSize(pageRes.getSize()); + pageTurn.setCurrent(pageRes.getCurrent()); + pageTurn.setPages(pageRes.getPages()); + return pageTurn; + } + + } + + + @Override + public List getTabTemplateById(String id) { + return logicDeviceLineMapper.getTabTemplateById(id); + } + + + @Override + public List getGroupDetailList(String setId) { + List groupList = dataGroupMapper.getGroupList(setId); + if (CollectionUtil.isNotEmpty(groupList)) { + List arrList = logicDeviceLineMapper.getAllDataBySet(setId); + if (CollectionUtil.isNotEmpty(arrList)) { + return groupList.stream().peek((item -> item.setChildren(getChildrenes(item.getId(), arrList)))).collect(Collectors.toList()); + } else { + throw new BusinessException(CommonResponseEnum.FAIL); + } + } else { + throw new BusinessException(CommonResponseEnum.FAIL); + } + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addGroupArr(GroupArrParam groupArrParam) { + List list = groupArrParam.getData(); + List groupIdList = list.stream().map(GroupArrParam.ArrItem::getId).collect(Collectors.toList()); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(GroupArray::getGroupId, groupIdList); + groupArrMapper.delete(lambdaQueryWrapper); + + dataGroupMapper.deleteBatchIds(groupIdList); + + List listGroup = new ArrayList<>(); + List arrList = new ArrayList<>(); + + Integer sort = 0; + for (GroupArrParam.ArrItem item : list) { + if (CollectionUtil.isNotEmpty(item.getChildren())) { + DataGroup dataGroup = new DataGroup(); + dataGroup.setId(IdUtil.simpleUUID()); + dataGroup.setName(item.getName()); + dataGroup.setPid(groupArrParam.getSetId()); + dataGroup.setSort(sort); + sort++; + + listGroup.add(dataGroup); + + for (String idItem : item.getChildren()) { + GroupArray groupArr = new GroupArray(); + groupArr.setGroupId(dataGroup.getId()); + groupArr.setArrId(idItem); + arrList.add(groupArr); + } + } + } + iDataGroupService.batchAdd(listGroup); + iGroupArrayService.batchAdd(arrList); + + return true; + } + + + @Override + public List getParseTemplate(String setId) { + return logicDeviceLineMapper.getParseTemplate(setId); + } + + + @Override + public LogicDev add(DevCfgParam devCfgParam) { + LogicDev logicDev = new LogicDev(); + BeanUtil.copyProperties(devCfgParam, logicDev); + logicDev.setState(DataStateEnum.ENABLE.getCode()); + logicDev.setCreateTime(LocalDateTime.now()); + this.save(logicDev); + return logicDev; + } + + @Override + public LogicDev getLogicDev(String did) { + return this.lambdaQuery().eq(LogicDev::getDid, did).eq(LogicDev::getState, DataStateEnum.ENABLE.getCode()).one(); + } + + @Override + public List getLogicDevByList(List list) { + return this.lambdaQuery().in(LogicDev::getPid, list).ne(LogicDev::getType,"ACgw").list(); + } + + @Override + public List getLogicDev(List list) { + return this.lambdaQuery().in(LogicDev::getDid, list).list(); + } + + @Override + public List getLogicDevByPid(List list) { + return this.lambdaQuery().in(LogicDev::getPid, list).eq(LogicDev::getState, DataStateEnum.ENABLE.getCode()).list(); + } + + @Override + public boolean deleteByVersionId(String id) { + QueryWrapper logicDevQueryWrapper = new QueryWrapper<>(); + logicDevQueryWrapper.eq("Version_Id", id); + return this.remove(logicDevQueryWrapper); + } + + @Override + public List getLogicDevByVersionId(String id) { + return this.lambdaQuery().eq(LogicDev::getVersionId, id).eq(LogicDev::getState, DataStateEnum.ENABLE.getCode()).list(); + } + + @Override + public void updateLogicDeviceLine(LogicDev logicDev) { + this.updateById(logicDev); + } + + @Override + public void updateLogicDevice(String oldMouldId, String newMouldId) { + this.lambdaUpdate().set(LogicDev::getIdx, newMouldId).eq(LogicDev::getIdx, oldMouldId).update(); + } + + @Override + public List getHisData(DataHisParam dataHisParam) { + + LocalDateTime startTime = PubUtils.beginTimeToLocalDateTime(dataHisParam.getStartTime()); + String start = startTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + LocalDateTime endTime = PubUtils.endTimeToLocalDateTime(dataHisParam.getEndTime()); + String end = endTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + + + List arrList = dataHisParam.getArrName(); + List listRes = new ArrayList<>(); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(DataArray::getDataId, arrList); + lambdaQueryWrapper.orderByAsc(true,DataArray::getIdx); + List list = dataArrayMapper.selectList(lambdaQueryWrapper); + if (CollectionUtil.isNotEmpty(list)) { + String table; + if(list.get(0).getClassName().equals(TableName.eleMd)){ + table = list.get(0).getClassId(); + }else{ + table = list.get(0).getClassId()+"_add"; + } + for (int i = 0; i < list.size(); i++) { + + StringBuilder stringBuilder = new StringBuilder("select "); + stringBuilder.append(list.get(i).getName()); + stringBuilder.append(" from ").append(table).append(" where ").append("LineId='").append(dataHisParam.getLineId()).append("'"); + String ph = ""; + if (!"M".equals(list.get(i).getPhase())) { + //有相别 + ph = list.get(i).getPhase(); + stringBuilder.append("and Phase = '").append(list.get(i).getPhase()).append("'"); + } + stringBuilder.append(" and time>'").append(start).append("'").append(" and time < '").append(end).append("'").append(" ORDER BY time"); + List> listMap = influxDbUtils.getResult(stringBuilder.toString(),""); + + if (CollectionUtil.isNotEmpty(listMap)) { + DataHisVO dataHisVO = new DataHisVO(); + dataHisVO.setName(list.get(i).getName()); + dataHisVO.setAnotherName(ph + list.get(i).getAnotherName()); + + List> temX = new ArrayList<>(); + + for(Map map :listMap){ + if(map.get(list.get(i).getName()).toString().equals("-1000000.0")){ + continue; + } + List tem = new ArrayList<>(); + tem.add(map.get("time").toString()); + tem.add(map.get(list.get(i).getName()).toString()); + + temX.add(tem); + } + dataHisVO.setValue(temX); + listRes.add(dataHisVO); + } + + } + } + + + return listRes; + + } + + + @Override + public List getNetAndDevByLineIds(List lineIds){ + return logicDeviceLineMapper.getNetAndDevByLineIds(lineIds); + } + + private List getChildren(EnergyDeviceTreeVO energyDeviceTreeVO, List all) { + return all.stream().filter(item -> item.getPid().equals(energyDeviceTreeVO.getId())).collect(Collectors.toList()); + } + + private List getChildrenes(String tabId, List all) { + return all.stream().filter(item -> item.getPid().equals(tabId)).collect(Collectors.toList()); + } + + +} + + +/** + * 拼接监测点 + */ diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/ModelServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/ModelServiceImpl.java new file mode 100644 index 000000000..5e0187a41 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/ModelServiceImpl.java @@ -0,0 +1,1227 @@ +package com.njcn.quality.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.nacos.shaded.com.google.gson.Gson; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.mapper.DataMouldMapper; +import com.njcn.quality.mapper.DevVersionMapper; +import com.njcn.quality.mapper.NetDevMapper; +import com.njcn.quality.param.*; +import com.njcn.quality.pojo.constant.ApiParam; +import com.njcn.quality.pojo.constant.DataType; +import com.njcn.quality.pojo.constant.ModelState; +import com.njcn.quality.pojo.dto.*; +import com.njcn.quality.pojo.po.*; +import com.njcn.quality.service.*; +import lombok.AllArgsConstructor; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2022/2/28 15:02 + */ +@Service +@AllArgsConstructor +public class ModelServiceImpl implements IModelService { + + private final NetDevMapper netDevMapper; + + private final DevVersionMapper devVersionMapper; + + private final IDevVersionService devVersionService; + + private final IHardwareService hardwareService; + + private final ILogicDeviceLineService logicDeviceLineService; + + private final IEleLineService lineService; + + private final IDevModelService devModelService; + + private final DataMouldMapper dataMouldMapper; + + private final IDataSetService dataSetService; + + private final IDataArrayService dataArrayService; + + private final IEleEpdPqdService eleEpdPqdService; + + private final IEleMdService eleMdService; + + private final IEleEvtService eleEvtService; + + private final IEleEvtParamService eleEvtParamService; + + private final IEleAlmService eleAlmService; + + private final IEleStsService eleStsService; + + private final IEleDiService eleDiService; + + private final IEleDoService eleDoService; + + private final IEleParmService eleParmService; + + private final IEleCtrlService eleCtrlService; + + private final IEleActrlService eleActrlService; + + private final IDataGroupService dataGroupService; + + private final IGroupArrayService groupArrayService; + + private final INetDevService netDevService; + + private final ILogicAccessService logicAccessService; + + private final IEleDictService eleDictService; + + private final IEleTopicService eleTopicService; + + private final IEleInformationService eleInformationService; + + @Override + @Transactional(rollbackFor = {Exception.class}) + public String deviceRegister(String json){ + Gson gson = new Gson(); + RegisterDTO.RegisterRequest registerDTO = gson.fromJson(json, RegisterDTO.RegisterRequest.class); + //装置id集合 + List didList = registerDTO.getParam().getDid(); + QueryWrapper netDevQueryWrapper = new QueryWrapper<>(); + netDevQueryWrapper.eq("ele_net_dev.ndid",registerDTO.getParam().getNDid()); + NetDev netDev = netDevMapper.selectOne(netDevQueryWrapper); + RegisterDTO.RegisterResponse response = new RegisterDTO.RegisterResponse(); + RegisterParamDTO.RegisterParamResponse responseParam = new RegisterParamDTO.RegisterParamResponse(); + BeanUtil.copyProperties(registerDTO,response); + BeanUtil.copyProperties(response.getParam(),responseParam); + response.setType(ApiParam.REP_DEV_REGISTER); + response.setMid(registerDTO.getMid()); + responseParam.setResType(registerDTO.getParam().getType()); + //注册装置有重复 + if (didList.stream().distinct().count() != didList.size()){ + response.setCode(Integer.parseInt(EnergyResponseEnum.REPEAT_ERROR.getCode())); + response.setMsg(EnergyResponseEnum.REPEAT_ERROR.getMessage()); + responseParam.setRes(ModelState.FAIL); + response.setParam(responseParam); + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + return gson.toJson(response); + } + //时间戳缺失 + if (StringUtils.isBlank(registerDTO.getTimestamp())){ + response.setCode(Integer.parseInt(EnergyResponseEnum.PARAM_FAIL_TIMESTAMP.getCode())); + response.setMsg(EnergyResponseEnum.PARAM_FAIL_TIMESTAMP.getMessage()); + responseParam.setRes(ModelState.FAIL); + response.setParam(responseParam); + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + return gson.toJson(response); + } + //类型缺失 + if (StringUtils.isBlank(registerDTO.getType())){ + response.setCode(Integer.parseInt(EnergyResponseEnum.PARAM_FAIL_TYPE.getCode())); + response.setMsg(EnergyResponseEnum.PARAM_FAIL_TYPE.getMessage()); + responseParam.setRes(ModelState.FAIL); + response.setParam(responseParam); + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + return gson.toJson(response); + } + //类型错误 + else if (!Objects.equals(registerDTO.getType(), ApiParam.CMD_DEV_REGISTER)){ + response.setCode(Integer.parseInt(EnergyResponseEnum.TYPE_ERROR.getCode())); + response.setMsg(EnergyResponseEnum.TYPE_ERROR.getMessage()); + responseParam.setRes(ModelState.FAIL); + response.setParam(responseParam); + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + return gson.toJson(response); + } + //联网装置不存在 + if (Objects.isNull(netDev)){ + //网关不存在直接返回错误 + response.setCode(Integer.parseInt(EnergyResponseEnum.REGISTER_ERROR.getCode())); + response.setMsg(EnergyResponseEnum.REGISTER_ERROR.getMessage()); + responseParam.setRes(ModelState.FAIL); + }else { + //网关存在,判断是注册还是取消注册 + if (registerDTO.getParam().getType() == 1){ + if (!CollectionUtils.isEmpty(logicAccessService.findAccessDev(registerDTO.getParam().getDid()))){ + response.setCode(Integer.parseInt(EnergyResponseEnum.EXIST_ERROR.getCode())); + response.setMsg(EnergyResponseEnum.EXIST_ERROR.getMessage()); + responseParam.setRes(ModelState.FAIL); + response.setParam(responseParam); + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + return gson.toJson(response); + } + //逻辑设备注册表logic_access入库 有之前取消注册过的就修改状态,没有则新增 + didList.forEach(item->{ + if (!Objects.isNull(logicAccessService.findCancelAccessDev(item))){ + logicAccessService.accessCancelDev(item); + } else { + LogicAccess logicAccess = new LogicAccess(); + logicAccess.setPid(netDevService.findByNdid(registerDTO.getParam().getNDid()).getId()); + logicAccess.setDid(item); + logicAccess.setState(DataStateEnum.ENABLE.getCode()); + logicAccess.setCreateTime(LocalDateTime.now()); + logicAccessService.add(logicAccess); + } + }); + } else { + for (String item:didList) { + if (Objects.isNull(logicAccessService.getAccessDev(item))){ + response.setCode(Integer.parseInt(EnergyResponseEnum.CANCEL_ERROR.getCode())); + response.setMsg(EnergyResponseEnum.CANCEL_ERROR.getMessage()); + responseParam.setRes(ModelState.FAIL); + response.setParam(responseParam); + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + return gson.toJson(response); + } + } + //查询是否有在线的装置,下线之前记录信息 + LocalDateTime offlineTime = LocalDateTime.ofEpochSecond(Long.parseLong(registerDTO.getTimestamp()),0, ZoneOffset.of("+8")); + List informationList = new ArrayList<>(); + List list = logicAccessService.getLogicAccess(registerDTO.getParam().getNDid(),didList); + if (!CollectionUtils.isEmpty(list)){ + list.forEach(item->{ + EleInformation eleInformation = new EleInformation(); + eleInformation.setUpdateTime(offlineTime); + eleInformation.setDid(item.getDid()); + eleInformation.setType(ModelState.offline); + eleInformation.setDescription("装置下线"); + informationList.add(eleInformation); + }); + eleInformationService.addInformation(informationList); + } + //删除注册的逻辑设备(修改状态) + logicAccessService.deleteByDid(didList); + } + response.setCode(Integer.parseInt(EnergyResponseEnum.SUCCESS.getCode())); + response.setMsg(EnergyResponseEnum.SUCCESS.getMessage()); + responseParam.setRes(ModelState.SUCCESS); + } + response.setParam(responseParam); + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + return gson.toJson(response); + } + + + @Override + @Transactional(rollbackFor = {Exception.class}) + public String deviceAccess(String json,String ndid) { + Set versionSet = new HashSet<>(); + Gson gson = new Gson(); + AccessDTO.AccessRequest access = gson.fromJson(json,AccessDTO.AccessRequest.class); + AccessDTO.AccessResponse response = new AccessDTO.AccessResponse(); + BeanUtil.copyProperties(access,response); + response.setParam(null); + response.setType(ApiParam.REP_LINKUP); + response.setMid(access.getMid()); + if (StringUtils.isBlank(access.getTimestamp())){ + response.setCode(Integer.parseInt(EnergyResponseEnum.PARAM_FAIL_TIMESTAMP.getCode())); + response.setMsg(EnergyResponseEnum.PARAM_FAIL_TYPE.getMessage()); + return gson.toJson(response); + } + if (StringUtils.isBlank(access.getType())){ + response.setCode(Integer.parseInt(EnergyResponseEnum.PARAM_FAIL_TYPE.getCode())); + response.setMsg(EnergyResponseEnum.PARAM_FAIL_TYPE.getMessage()); + return gson.toJson(response); + } else if (!Objects.equals(access.getType(), ApiParam.CMD_LINKUP) && !Objects.equals(access.getType(), ApiParam.CMD_HEARTBEAT)){ + response.setCode(Integer.parseInt(EnergyResponseEnum.TYPE_ERROR.getCode())); + response.setMsg(EnergyResponseEnum.TYPE_ERROR.getMessage()); + return gson.toJson(response); + } + //判断是否是心跳请求 + if (Objects.equals(access.getType(), ApiParam.CMD_HEARTBEAT)){ + //如果有异常的设备,则下线设备 + if (!Objects.isNull(access.getParam())){ + //下线之前记录信息 + LocalDateTime time = LocalDateTime.ofEpochSecond(Long.parseLong(access.getTimestamp()),0, ZoneOffset.of("+8")); + List informationList = new ArrayList<>(); + List list = logicAccessService.getLogicAccess(ndid,access.getParam().getDid()); + if (!CollectionUtils.isEmpty(list)){ + list.forEach(item->{ + EleInformation eleInformation = new EleInformation(); + eleInformation.setUpdateTime(time); + eleInformation.setDid(item.getDid()); + eleInformation.setType(ModelState.offline); + eleInformation.setDescription("装置下线"); + informationList.add(eleInformation); + }); + eleInformationService.addInformation(informationList); + } + //下线 + response.setCode(Integer.parseInt(EnergyResponseEnum.AUTO_OFFLINE.getCode())); + logicAccessService.offlineByDid(access.getParam().getDid()); + } else { + response.setCode(Integer.parseInt(EnergyResponseEnum.SUCCESS.getCode())); + //判断库中是否存在都掉线的装置,都掉线还有心跳就重新上线 1.修改状态 2.记录日志 + List onList = logicAccessService.getAllOnlineDevice(ndid); + List offList = logicAccessService.getAllOnlineDevice(ndid); + if (CollectionUtils.isEmpty(onList) && !CollectionUtils.isEmpty(offList)){ + List eleInformationList = new ArrayList<>(); + offList.forEach(item->{ + item.setState(2); + logicAccessService.accessDev(item); + EleInformation eleInformation = new EleInformation(); + eleInformation.setUpdateTime(LocalDateTime.ofEpochSecond(Long.parseLong(access.getTimestamp()),0, ZoneOffset.of("+8"))); + eleInformation.setDid(item.getDid()); + eleInformation.setType(ModelState.online); + eleInformation.setDescription("装置上线"); + eleInformationList.add(eleInformation); + }); + eleInformationService.addInformation(eleInformationList); + } + } + response.setTimestamp(Long.toString(System.currentTimeMillis()/1000)); + response.setType(ApiParam.REP_HEARTBEAT); + return gson.toJson(response); + } + //判断当前网关是否存在主题 + if (CollectionUtils.isEmpty(eleTopicService.list(ndid))){ + response.setCode(Integer.parseInt(EnergyResponseEnum.MISSING_TOPIC.getCode())); + response.setMsg(EnergyResponseEnum.MISSING_TOPIC.getMessage()); + return gson.toJson(response); + } + //判断注册接入 + List didList = access.getParam().getDid(); + for (String item:didList) { + if (Objects.isNull(logicAccessService.getAccessDev(item))){ + response.setCode(Integer.parseInt(EnergyResponseEnum.NO_DID_FIND.getCode())); + response.setMsg(EnergyResponseEnum.NO_DID_FIND.getMessage()); + return gson.toJson(response); + } + } + List tpList = access.getParam().getTpList(); + tpList.forEach(item->{ + versionSet.add(item.getName() + "+" +item.getVersion() + "+" + item.getTime()); + }); + for (String item: versionSet) { + QueryWrapper dataMouldQueryWrapper = new QueryWrapper<>(); + dataMouldQueryWrapper.eq("Name",item.split("\\+")[0]).eq("Version", item.split("\\+")[1]).eq("Time", item.split("\\+")[2]); + DataMould dataMould = dataMouldMapper.selectOne(dataMouldQueryWrapper); + if (Objects.isNull(dataMould)) { + response.setCode(Integer.parseInt(EnergyResponseEnum.NO_MODEL_FIND.getCode())); + response.setMsg(EnergyResponseEnum.NO_MODEL_FIND.getMessage()); + return gson.toJson(response); + } + } + //将接入的装置添加模板装置id + List logicDevList = logicDeviceLineService.getLogicDev(didList); + List logicDevDidList = logicDevList.stream().map(LogicDev::getDid).collect(Collectors.toList()); + //匹配模板装置的id,如果没有匹配上就说明模板缺失,需要请求模板的数据;都能匹配上就赋予接入装置的模板装置id,将装置状态置为接入状态 + for (String s : didList) { + if (!logicDevDidList.contains(s)){ + response.setCode(Integer.parseInt(EnergyResponseEnum.MISSING_MODEL.getCode())); + response.setMsg(EnergyResponseEnum.MISSING_MODEL.getMessage()); + return gson.toJson(response); + } + } + //修改网关的状态 + netDevService.onlineNetDev(ndid); + //下线在线的装置 + List offOnlineList = logicAccessService.getOnlineByList(didList).stream().map(LogicAccess::getDid).collect(Collectors.toList()); + //记录掉线库 + List informationList = new ArrayList<>(); + offOnlineList.forEach(item->{ + EleInformation eleInformation = new EleInformation(); + eleInformation.setUpdateTime(LocalDateTime.ofEpochSecond(Long.parseLong(Long.toString(System.currentTimeMillis()/1000)),0, ZoneOffset.of("+8"))); + eleInformation.setDid(item); + eleInformation.setType(ModelState.offline); + eleInformation.setDescription("装置下线"); + informationList.add(eleInformation); + }); + eleInformationService.addInformation(informationList); + List eleInformationList = new ArrayList<>(); + for (String s : didList) { + LogicAccess logicAccess = logicAccessService.getAccessDev(s); + logicAccess.setState(2); + logicAccessService.accessDev(logicAccess); + //记录上线时间 + EleInformation eleInformation = new EleInformation(); + eleInformation.setUpdateTime(LocalDateTime.ofEpochSecond(Long.parseLong(access.getTimestamp()),0, ZoneOffset.of("+8"))); + eleInformation.setDid(s); + eleInformation.setType(ModelState.online); + eleInformation.setDescription("装置上线"); + eleInformationList.add(eleInformation); + } + eleInformationService.addInformation(eleInformationList); + response.setCode(Integer.parseInt(EnergyResponseEnum.SUCCESS.getCode())); + response.setMsg(EnergyResponseEnum.SUCCESS.getMessage()); + return gson.toJson(response); + } + + + @Override + @Transactional(rollbackFor = {Exception.class}) + public String deviceData(String json) { + Gson gson = new Gson(); + AskDataDTO.AskDataResponse response = gson.fromJson(json,AskDataDTO.AskDataResponse.class); + if (Objects.equals(response.getCode(),Integer.parseInt(EnergyResponseEnum.SUCCESS.getCode()))){ + /** + * 解析联网(网关)模板 + */ + NetDevDTO netDevDTO = response.getParam().getDataArray().get(0).getTemplate().getNetDev(); + //获取联网设备信息 + LambdaQueryWrapper netDevQueryWrapper = new LambdaQueryWrapper<>(); + netDevQueryWrapper.eq(NetDev::getNdid,netDevDTO.getNDid()).eq(NetDev::getState,DataStateEnum.ENABLE.getCode()); + NetDev netDev = netDevMapper.selectOne(netDevQueryWrapper); + if(Objects.isNull(netDev)){ + throw new BusinessException(EnergyResponseEnum.NET_DEV_MODEL_ERROR); + } + //根据网关的versionId判断,如果存在,更新的时候就先根据id删除版本表记录,重新生成一个,再给网关赋予这个id;如果不存在id,就直接生成一个,再赋予网关 + if (StringUtils.isNotBlank(netDev.getVersionId())){ + devVersionService.deleteDevVersion(netDev.getVersionId()); + } + //新增系统版本表 + DevVersionParam devVersionParam = new DevVersionParam(); + DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + devVersionParam.setNdid(netDevDTO.getNDid()); + devVersionParam.setType(ModelState.NET_DEV); + devVersionParam.setVersion(netDevDTO.getVersion()); + devVersionParam.setTime(LocalDateTime.parse(netDevDTO.getTime(),df)); + devVersionParam.setCreateTime(LocalDateTime.now()); + DevVersion netDevVersion = devVersionService.addDevVersion(devVersionParam); + //更新网关设备表 + netDev.setVersionId(netDevVersion.getId()); + netDev.setNetType(netDevDTO.getNetType()); + netDev.setUid(netDevDTO.getUid()); + netDev.setComFlag(DataStateEnum.ENABLE.getCode()); + if (!CollectionUtils.isEmpty(netDevDTO.getCUid())){ + netDev.setCuid(netDevDTO.getCUid().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + netDevMapper.updateById(netDev); + //删除网关硬件表,重新录入 + List netDevList = Stream.of(netDev.getId()).collect(Collectors.toList()); + hardwareService.deleteHardware(netDevList); + HardwareParam hardwareParam = new HardwareParam(); + hardwareParam.setId(netDev.getId()); + BeanUtil.copyProperties(netDevDTO.getDevInfoDTO(),hardwareParam); + BeanUtil.copyProperties(netDevDTO.getCpuInfoDTO(),hardwareParam); + BeanUtil.copyProperties(netDevDTO.getMemInfoDTO(),hardwareParam); + BeanUtil.copyProperties(netDevDTO.getDiskInfoDTO(),hardwareParam); + BeanUtil.copyProperties(netDevDTO.getSoftInfoDTO(),hardwareParam); + hardwareParam.setType(ModelState.NET_DEV); + hardwareService.addHardware(hardwareParam); + + /** + * 解析装置模板 + */ + List devList = response.getParam().getDataArray().get(0).getTemplate().getDev(); + Map map = analyzeDev(devList); + /** + * 解析逻辑模板 + */ + DevCfgDTO devCfgDTO = response.getParam().getDataArray().get(0).getTemplate().getDevCfg(); + //获取当前网关下的逻辑设备版本信息 + QueryWrapper devVersionQueryWrapper = new QueryWrapper<>(); + devVersionQueryWrapper.eq("NDID",netDevDTO.getNDid()).eq("Type",ModelState.LOGIC_DEV).eq("State",DataStateEnum.ENABLE.getCode()); + DevVersion devCfgVersion = devVersionMapper.selectOne(devVersionQueryWrapper); + //如果版本信息为空,直接写入;如果不为空,就先删除之前的数据,然后重新录入信息 + if (!Objects.isNull(devCfgVersion)){ + List logicList = logicDeviceLineService.getLogicDevByVersionId(devCfgVersion.getId()).stream().map(LogicDev::getId).collect(Collectors.toList()); + //删除逻辑设备信息 + logicDeviceLineService.deleteByVersionId(devCfgVersion.getId()); + //删除逻辑设备版本信息 + devVersionService.deleteDevVersion(devCfgVersion.getId()); + //删除监测点信息 + lineService.deleteByList(logicList); + //删除硬件信息 + hardwareService.deleteHardware(logicList); + } + DevVersionParam devCfgVersionParam = new DevVersionParam(); + BeanUtil.copyProperties(devCfgDTO,devCfgVersionParam); + devCfgVersionParam.setType(ModelState.LOGIC_DEV); + devCfgVersionParam.setCreateTime(LocalDateTime.now()); + devCfgVersionParam.setNdid(netDevDTO.getNDid()); + //逻辑设备入库->设备版本信息表 + DevVersion devVersion = devVersionService.addDevVersion(devCfgVersionParam); + List list = devCfgDTO.getCfg(); + if (!CollectionUtils.isEmpty(list)){ + list.forEach(item->{ + //入库->逻辑设备表logic_dev + DevCfgParam devCfgParam = new DevCfgParam(); + BeanUtil.copyProperties(item,devCfgParam); + devCfgParam.setPid(netDev.getId()); + if (!Objects.isNull(logicDeviceLineService.getLogicDev(item.getId()))){ + throw new BusinessException(EnergyResponseEnum.SAME_DEV_ERROR); + } + devCfgParam.setDid(item.getId()); + devCfgParam.setVersionId(devVersion.getId()); + if (Objects.isNull(map.get(item.getName() + item.getVersion() + item.getTime()))){ + throw new BusinessException(EnergyResponseEnum.MODEL_ERROR); + } + devCfgParam.setIdx(map.get(item.getName() + item.getVersion() + item.getTime())); + devCfgParam.setName(item.getDevInfo().getDevName()); + LogicDev logicDev = logicDeviceLineService.add(devCfgParam); + //逻辑设备入库->硬件信息表 + HardwareParam hardware = new HardwareParam(); + hardware.setId(logicDev.getId()); + BeanUtil.copyProperties(netDevDTO.getDevInfoDTO(),hardware); + BeanUtil.copyProperties(netDevDTO.getCpuInfoDTO(),hardware); + BeanUtil.copyProperties(netDevDTO.getMemInfoDTO(),hardware); + BeanUtil.copyProperties(netDevDTO.getDiskInfoDTO(),hardware); + BeanUtil.copyProperties(netDevDTO.getSoftInfoDTO(),hardware); + hardware.setType(ModelState.LOGIC_DEV); + hardwareService.addHardware(hardware); + //入库->监测点信息表 + if (!CollectionUtils.isEmpty(item.getLineInfo())){ + List line = item.getLineInfo(); + List lineList = line.stream().map(LineDTO::getLineId).collect(Collectors.toList()); + //查找库里数据 + if (!CollectionUtils.isEmpty(lineService.getLineInfo(lineList))){ + throw new BusinessException(EnergyResponseEnum.LINE_REPEAT_ERROR); + } + for (int i=0;i list = topic.getParam().getTopic(); + list.forEach(item->{ + EleTopic eleTopic = new EleTopic(); + eleTopic.setNdid(ndid); + eleTopic.setTopic(item); + if (item.contains("/platform/devcmd")){ + eleTopic.setType(0); + } + else if(item.contains("/platform/devqcmd")){ + eleTopic.setType(0); + } + else if(item.contains("/platform/devack")){ + eleTopic.setType(1); + } + else if(item.contains("/platform/appcmd")){ + eleTopic.setType(2); + } + else if(item.contains("/platform/appack")){ + eleTopic.setType(1); + } + else if(item.contains("/app/devcmd")){ + eleTopic.setType(0); + } + else if(item.contains("/app/devack")){ + eleTopic.setType(2); + } + else if(item.contains("/app/pltcmd")){ + eleTopic.setType(1); + } + else if(item.contains("/app/pltack")){ + eleTopic.setType(2); + } + else if(item.contains("/device/pltrep")){ + eleTopic.setType(1); + } + else if(item.contains("/device/data")){ + eleTopic.setType(4); + } + else if(item.contains("/device/qdata")){ + eleTopic.setType(4); + } + else if(item.contains("/platform/devfileack")){ + eleTopic.setType(1); + } + else if(item.contains("/platform/devfilecmd")){ + eleTopic.setType(0); + } + else if(item.contains("/app/devfileack")){ + eleTopic.setType(2); + } + else if(item.contains("/app/devfilecmd")){ + eleTopic.setType(0); + } else { + eleTopic.setType(5); + } + eleTopicService.addTopic(eleTopic); + }); + //发送装置接入和取消注册的主题 + EleTopic eleTopic = new EleTopic(); + eleTopic.setNdid(ndid); + eleTopic.setTopic("/device/operate"); + eleTopic.setType(4); + eleTopicService.addTopic(eleTopic); + } + + @Override + @Transactional(rollbackFor = {Exception.class}) + public List monitorHeartbeat(String ndid, String time) { + List list = new ArrayList<>(); + List onlineList = logicAccessService.getAllOnlineDevice(ndid); + if (!CollectionUtils.isEmpty(onlineList)) { + LocalDateTime offlineTime = LocalDateTime.ofEpochSecond(Long.parseLong(time), 0, ZoneOffset.of("+8")); + onlineList.forEach(item -> { + EleInformation eleInformation = new EleInformation(); + eleInformation.setUpdateTime(offlineTime); + eleInformation.setDid(item.getDid()); + eleInformation.setType(ModelState.offline); + eleInformation.setDescription("装置下线"); + list.add(eleInformation); + }); + //记录所有下线装置信息 + eleInformationService.addInformation(list); + //所有在线装置下线 + logicAccessService.offAllDevice(ndid); + return list.stream().map(EleInformation::getDid).collect(Collectors.toList()); + } + return null; + } + + + /** + * 解析设备模板 + */ + public Map analyzeDev(List devList){ + Map map = new HashMap<>(); + devList.forEach(item->{ + //先将数据类型入库 + addDataType(item); + QueryWrapper dataMouldQueryWrapper = new QueryWrapper<>(); + dataMouldQueryWrapper.eq("Name",item.getName()).eq("Version",item.getVersion()).eq("Time",item.getTime()).eq("State",DataStateEnum.ENABLE.getCode()); + DataMould mould = dataMouldMapper.selectOne(dataMouldQueryWrapper); + if (!Objects.isNull(mould)){ + //数据集集合 + List dataSetList = dataSetService.findSetById(mould.getId()).stream().map(DataSet::getId).collect(Collectors.toList()); + //组集合 + List dataGroupList = dataGroupService.findGroupById(dataSetList).stream().map(DataGroup::getId).collect(Collectors.toList()); + //删除组和详细数据关系 + groupArrayService.deleteGroupArray(dataGroupList); + //删除组数据 + dataGroupService.deleteDataGroup(dataSetList); + //删除详细数据 + dataArrayService.deleteDataArray(dataSetList); + //删除数据集 + dataSetService.delete(mould.getId()); + //删除当前模板 + devModelService.deleteById(mould.getId()); + } + //入库->ele_data_mould + DataModelParam dataModelParam = new DataModelParam(); + BeanUtil.copyProperties(item,dataModelParam); + dataModelParam.setCreateTime(LocalDateTime.now()); + DataMould dataMould = devModelService.addDataMould(dataModelParam); + //更新装置的模板信息(id) + if (!Objects.isNull(mould)){ + logicDeviceLineService.updateLogicDevice(mould.getId(),dataMould.getId()); + } + String tmp = item.getName() + item.getVersion() + item.getTime(); + map.put(tmp,dataMould.getId()); + //入库->ele_data_set + if (!CollectionUtils.isEmpty(item.getDataSet())){ + item.getDataSet().forEach(dataSetDTO -> { + DataSetParam dataSetParam = new DataSetParam(); + BeanUtil.copyProperties(dataSetDTO,dataSetParam); + dataSetParam.setPid(dataMould.getId()); + dataSetParam.setName(dataSetDTO.getName()); + switch (dataSetDTO.getName()) { + case "Ds$Stat$MD": + dataSetParam.setAnotherName("测量数据"); + break; + case "Ds$Stat$EPD": + dataSetParam.setAnotherName("电能量数据"); + break; + case "Ds$Stat$STS": + dataSetParam.setAnotherName("状态量数据"); + break; + case "Controller": + dataSetParam.setAnotherName("空调控制数据"); + break; + case "Ds$Rt$MD": + dataSetParam.setAnotherName("实时测量数据"); + break; + case "Ds$Rt$EPD": + dataSetParam.setAnotherName("实时电能量数据"); + break; + default: + dataSetParam.setAnotherName(dataSetDTO.getName()); + break; + } + DataSet dataSet = dataSetService.add(dataSetParam); + //入库->ele_data_array + if (!CollectionUtils.isEmpty(dataSetDTO.getDataArray())){ + List list = dataSetDTO.getDataArray(); + for (int i=0;i分组表 + dataGroupParam.setSort(i); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + //入库->group和dataArray关系 + groupArrayService.groupArrayRelation(dataGroup.getId(),dataArray.getId()); + } + } else { + BeanUtil.copyProperties(epd,dataArrayParam); + dataGroupParam.setName(epd.getAnotherName()); + dataArrayParam.setIdx(i); + dataArrayParam.setStatMethod("avg"); + DataArray dataArray = dataArrayService.addDataArray(dataArrayParam); + //入库->分组表 + dataGroupParam.setSort(i); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + //入库->group和dataArray关系 + groupArrayService.groupArrayRelation(dataGroup.getId(),dataArray.getId()); + } + } else { + String[] type = StringUtils.split(epd.getStatMethod(), ","); + for (String s : type) { + if (!Objects.isNull(epd.getHarmStart()) && !Objects.isNull(epd.getHarmEnd())) { + for (int j = epd.getHarmStart(); j <= epd.getHarmEnd(); j++) { + BeanUtil.copyProperties(epd, dataArrayParam); + dataArrayParam.setName(epd.getName() + j); + dataArrayParam.setAnotherName(j + "次" + epd.getAnotherName()); + dataGroupParam.setName(j + "次" + epd.getAnotherName()); + dataArrayParam.setIdx(i); + dataArrayParam.setStatMethod(s); + DataArray dataArray = dataArrayService.addDataArray(dataArrayParam); + //入库->分组表 + dataGroupParam.setSort(i); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + //入库->group和dataArray关系 + groupArrayService.groupArrayRelation(dataGroup.getId(), dataArray.getId()); + } + } else { + BeanUtil.copyProperties(epd, dataArrayParam); + dataGroupParam.setName(epd.getAnotherName()); + dataArrayParam.setIdx(i); + dataArrayParam.setStatMethod(s); + DataArray dataArray = dataArrayService.addDataArray(dataArrayParam); + //入库->分组表 + dataGroupParam.setSort(i); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + //入库->group和dataArray关系 + groupArrayService.groupArrayRelation(dataGroup.getId(), dataArray.getId()); + } + } + } + break; + case DataType.MD: + EleMd md = eleMdService.findByName(item.getMd().get(list.get(i).getIdx()).getName(),item.getMd().get(list.get(i).getIdx()).getPhase()); + if (StringUtils.isBlank(md.getStatMethod())){ + dataArrayParam.setClassName("ele_md"); + dataArrayParam.setDataId(md.getId()); + BeanUtil.copyProperties(md,dataArrayParam); + dataArrayParam.setIdx(i); + dataArrayParam.setStatMethod("avg"); + DataArray dataArray = dataArrayService.addDataArray(dataArrayParam); + //入库->分组表 + dataGroupParam.setSort(i); + dataGroupParam.setName(md.getAnotherName()); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + //入库->group和dataArray关系 + groupArrayService.groupArrayRelation(dataGroup.getId(),dataArray.getId()); + } else { + String[] type = StringUtils.split(md.getStatMethod(), ","); + for (String s : type) { + dataArrayParam.setClassName("ele_md"); + dataArrayParam.setDataId(md.getId()); + BeanUtil.copyProperties(md, dataArrayParam); + dataGroupParam.setName(md.getAnotherName()); + dataArrayParam.setIdx(i); + dataArrayParam.setStatMethod(s); + DataArray dataArray = dataArrayService.addDataArray(dataArrayParam); + //入库->分组表 + dataGroupParam.setSort(i); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + //入库->group和dataArray关系 + groupArrayService.groupArrayRelation(dataGroup.getId(), dataArray.getId()); + } + } + break; + case DataType.EVT: + EleEvt evt = eleEvtService.findByName(item.getEvt().get(list.get(i).getIdx()).getName()); + dataArrayParam.setClassName("ele_evt"); + dataArrayParam.setDataId(evt.getId()); + dataArrayParam.setStatMethod("avg"); + dataArrayParam.setPhase("M"); + BeanUtil.copyProperties(evt,dataArrayParam); + dataGroupParam.setName(evt.getAnotherName()); + break; + case DataType.ALM: + EleALM alm = eleAlmService.findByName(item.getAlm().get(list.get(i).getIdx()).getName()); + dataArrayParam.setClassName("ele_alm"); + dataArrayParam.setDataId(alm.getId()); + dataArrayParam.setStatMethod("avg"); + dataArrayParam.setPhase("M"); + BeanUtil.copyProperties(alm,dataArrayParam); + dataGroupParam.setName(alm.getAnotherName()); + break; + case DataType.STS: + EleSts sts = eleStsService.findByName(item.getSts().get(list.get(i).getIdx()).getName()); + dataArrayParam.setClassName("ele_sts"); + dataArrayParam.setDataId(sts.getId()); + dataArrayParam.setStatMethod("avg"); + dataArrayParam.setPhase("M"); + dataArrayParam.setType("bool"); + BeanUtil.copyProperties(sts,dataArrayParam); + dataGroupParam.setName(sts.getAnotherName()); + break; + case DataType.DI: + EleDi di = eleDiService.findByName(item.getDi().get(list.get(i).getIdx()).getName()); + dataArrayParam.setClassName("ele_di"); + dataArrayParam.setDataId(di.getId()); + dataArrayParam.setStatMethod("avg"); + dataArrayParam.setPhase("M"); + dataArrayParam.setType("bool"); + BeanUtil.copyProperties(di,dataArrayParam); + dataGroupParam.setName(di.getAnotherName()); + break; + case DataType.DO: + EleDo eleDo = eleDoService.findByName(item.getDoDTO().get(list.get(i).getIdx()).getName()); + dataArrayParam.setClassName("ele_do"); + dataArrayParam.setDataId(eleDo.getId()); + dataArrayParam.setStatMethod("avg"); + dataArrayParam.setPhase("M"); + dataArrayParam.setType("bool"); + BeanUtil.copyProperties(eleDo,dataArrayParam); + dataGroupParam.setName(eleDo.getAnotherName()); + break; + case DataType.PARM: + EleParm parm = eleParmService.findByName(item.getParam().get(list.get(i).getIdx()).getName()); + dataArrayParam.setClassName("ele_parm"); + dataArrayParam.setDataId(parm.getId()); + dataArrayParam.setStatMethod("avg"); + dataArrayParam.setPhase("M"); + BeanUtil.copyProperties(parm,dataArrayParam); + dataGroupParam.setName(parm.getAnotherName()); + break; + case DataType.CTRL: + EleCtrl ctrl = eleCtrlService.findByName(item.getCtrl().get(list.get(i).getIdx()).getName()); + dataArrayParam.setClassName("ele_ctrl"); + dataArrayParam.setDataId(ctrl.getId()); + dataArrayParam.setStatMethod("avg"); + dataArrayParam.setPhase("M"); + BeanUtil.copyProperties(ctrl,dataArrayParam); + dataGroupParam.setName(ctrl.getAnotherName()); + break; +// case DataType.ACTRL: +// EleActrl actrl = eleActrlService.findByName(item.getACtrl().get(list.get(i).getIdx()).getName()); +// dataArrayParam.setClassName("ele_actrl"); +// dataArrayParam.setDataId(actrl.getId()); +// dataArrayParam.setStatMethod("avg"); +// dataArrayParam.setPhase("M"); +// BeanUtil.copyProperties(actrl,dataArrayParam); +// dataGroupParam.setName(actrl.getAnotherName()); +// break; + default: + break; + } + if (!Objects.equals(list.get(i).getType(),DataType.EPD) && !Objects.equals(list.get(i).getType(),DataType.PQD) && !Objects.equals(list.get(i).getType(),DataType.MD)){ + dataArrayParam.setIdx(i); + DataArray dataArray = dataArrayService.addDataArray(dataArrayParam); + //入库->分组表 + dataGroupParam.setSort(i); + DataGroup dataGroup = dataGroupService.addDataGroup(dataGroupParam); + //入库->group和dataArray关系 + groupArrayService.groupArrayRelation(dataGroup.getId(),dataArray.getId()); + } + } + } + }); + } + }); + return map; + } + + + /** + * 新增字典模板数据 + */ + public void addDataType(DevDTO item){ + //epd、pqd字典数据录入 + List epdList = item.getEpd(); + List pqdList = item.getPqd(); + List list = new ArrayList<>(); + if (!CollectionUtils.isEmpty(epdList) && CollectionUtils.isEmpty(pqdList)){ + list = epdList; + } else if (CollectionUtils.isEmpty(epdList) && !CollectionUtils.isEmpty(pqdList)){ + list = pqdList; + } else if (!CollectionUtils.isEmpty(epdList) && !CollectionUtils.isEmpty(pqdList)){ + list = Stream.of(epdList, pqdList).flatMap(Collection::stream).collect(Collectors.toList()); + } + if (!CollectionUtils.isEmpty(list)){ + list.forEach(it->{ + if (Objects.isNull(it.getPhase())){ + it.setPhase("M"); + } + EleEpdPqd eleEpdPqd = eleEpdPqdService.findByName(it.getName(),it.getPhase()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleEpdPqd)){ + EleEpdPqd epd = new EleEpdPqd(); + BeanUtil.copyProperties(it,epd); + if (Objects.isNull(eleDict)){ + epd.setAnotherName(it.getName()); + } else { + epd.setAnotherName(eleDict.getAnotherName()); + } + epd.setClassId(eleDictService.findTableName(it.getName()).getName()); + if (!CollectionUtils.isEmpty(it.getStatMethod())){ + epd.setStatMethod(it.getStatMethod().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + eleEpdPqdService.addEpd(epd); + } else { + BeanUtil.copyProperties(it,eleEpdPqd); + if (Objects.isNull(eleDict)){ + eleEpdPqd.setAnotherName(it.getName()); + } else { + eleEpdPqd.setAnotherName(eleDict.getAnotherName()); + } + eleEpdPqd.setClassId(eleDictService.findTableName(it.getName()).getName()); + if (!CollectionUtils.isEmpty(it.getStatMethod())){ + eleEpdPqd.setStatMethod(it.getStatMethod().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + eleEpdPqdService.updateEpd(eleEpdPqd); + } + }); + } + //md字典数据录入 + List mdList = item.getMd(); + if (!CollectionUtils.isEmpty(mdList)){ + mdList.forEach(it->{ + if (Objects.isNull(it.getPhase())){ + it.setPhase("M"); + } + EleMd eleMd = eleMdService.findByName(it.getName(),it.getPhase()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleMd)){ + EleMd pojo = new EleMd(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + pojo.setClassId(eleDictService.findTableName(it.getName()).getName()); + if (!CollectionUtils.isEmpty(it.getStatMethod())){ + pojo.setStatMethod(it.getStatMethod().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + eleMdService.addMd(pojo); + } else { + BeanUtil.copyProperties(it,eleMd); + if (Objects.isNull(eleDict)){ + eleMd.setAnotherName(it.getName()); + } else { + eleMd.setAnotherName(eleDict.getAnotherName()); + } + eleMd.setClassId(eleDictService.findTableName(it.getName()).getName()); + if (!CollectionUtils.isEmpty(it.getStatMethod())){ + eleMd.setStatMethod(it.getStatMethod().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + eleMdService.updateMd(eleMd); + } + }); + } + //evt字典数据录入 + List evtList = item.getEvt(); + if (!CollectionUtils.isEmpty(evtList)){ + evtList.forEach(it->{ + EleEvt eleEvt = eleEvtService.findByName(it.getName()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleEvt)){ + EleEvt pojo = new EleEvt(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + EleEvt result = eleEvtService.addEvt(pojo); + addEvtParam(it.getParam(),result.getId()); + } else { + BeanUtil.copyProperties(it,eleEvt); + if (Objects.isNull(eleDict)){ + eleEvt.setAnotherName(it.getName()); + } else { + eleEvt.setAnotherName(eleDict.getAnotherName()); + } + eleEvtService.updateEvt(eleEvt); + eleEvtParamService.deleteById(eleEvt.getId()); + addEvtParam(it.getParam(),eleEvt.getId()); + } + }); + } + //alm字典数据录入 + List almList = item.getAlm(); + if (!CollectionUtils.isEmpty(almList)){ + almList.forEach(it->{ + EleALM eleAlM = eleAlmService.findByName(it.getName()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleAlM)){ + EleALM pojo = new EleALM(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + eleAlmService.addAlm(pojo); + } else { + BeanUtil.copyProperties(it,eleAlM); + if (Objects.isNull(eleDict)){ + eleAlM.setAnotherName(it.getName()); + } else { + eleAlM.setAnotherName(eleDict.getAnotherName()); + } + eleAlmService.updateAlm(eleAlM); + } + }); + } + //sts字典数据录入 + List stsList = item.getSts(); + if (!CollectionUtils.isEmpty(stsList)){ + stsList.forEach(it->{ + EleSts eleSts = eleStsService.findByName(it.getName()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleSts)){ + EleSts pojo = new EleSts(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + pojo.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleStsService.addSts(pojo); + } else { + BeanUtil.copyProperties(it,eleSts); + if (Objects.isNull(eleDict)){ + eleSts.setAnotherName(it.getName()); + } else { + eleSts.setAnotherName(eleDict.getAnotherName()); + } + eleSts.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleStsService.updateSts(eleSts); + } + }); + } + //di字典数据录入 + List diList = item.getDi(); + if (!CollectionUtils.isEmpty(diList)){ + diList.forEach(it->{ + EleDi eleDi = eleDiService.findByName(it.getName()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleDi)){ + EleDi pojo = new EleDi(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + pojo.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleDiService.addDi(pojo); + } else { + BeanUtil.copyProperties(it,eleDi); + if (Objects.isNull(eleDict)){ + eleDi.setAnotherName(it.getName()); + } else { + eleDi.setAnotherName(eleDict.getAnotherName()); + } + eleDi.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleDiService.updateDi(eleDi); + } + }); + } + //do字典数据录入 + List doList = item.getDoDTO(); + if (!CollectionUtils.isEmpty(doList)){ + doList.forEach(it->{ + EleDo eleDo = eleDoService.findByName(it.getName()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleDo)){ + EleDo pojo = new EleDo(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + pojo.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleDoService.addDo(pojo); + } else { + BeanUtil.copyProperties(it,eleDo); + if (Objects.isNull(eleDict)){ + eleDo.setAnotherName(it.getName()); + } else { + eleDo.setAnotherName(eleDict.getAnotherName()); + } + eleDo.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleDoService.updateDo(eleDo); + } + }); + } + //parm字典数据录入 + List parmList = item.getParam(); + if (!CollectionUtils.isEmpty(parmList)){ + parmList.forEach(it->{ + EleParm eleParm = eleParmService.findByName(it.getName()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleParm)){ + EleParm pojo = new EleParm(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + if (!CollectionUtils.isEmpty(it.getSetValue())){ + pojo.setSetValue(it.getSetValue().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + eleParmService.addParm(pojo); + } else { + BeanUtil.copyProperties(it,eleParm); + if (Objects.isNull(eleDict)){ + eleParm.setAnotherName(it.getName()); + } else { + eleParm.setAnotherName(eleDict.getAnotherName()); + } + if (!CollectionUtils.isEmpty(it.getSetValue())){ + eleParm.setSetValue(it.getSetValue().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + eleParmService.updateParm(eleParm); + } + }); + } + //ctrl字典数据录入 + List ctrlList = item.getCtrl(); + if (!CollectionUtils.isEmpty(ctrlList)){ + ctrlList.forEach(it->{ + EleCtrl eleCtrl = eleCtrlService.findByName(it.getName()); + EleDict eleDict = eleDictService.findDictByName(it.getName()); + if (Objects.isNull(eleCtrl)){ + EleCtrl pojo = new EleCtrl(); + BeanUtil.copyProperties(it,pojo); + if (Objects.isNull(eleDict)){ + pojo.setAnotherName(it.getName()); + } else { + pojo.setAnotherName(eleDict.getAnotherName()); + } + pojo.setClassId(eleDictService.findTableName(it.getName()).getName()); + if (!CollectionUtils.isEmpty(it.getCtlValue())){ + pojo.setCtlValue(it.getCtlValue().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + pojo.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleCtrlService.addCtrl(pojo); + } else { + BeanUtil.copyProperties(it,eleCtrl); + if (Objects.isNull(eleDict)){ + eleCtrl.setAnotherName(it.getName()); + } else { + eleCtrl.setAnotherName(eleDict.getAnotherName()); + } + eleCtrl.setClassId(eleDictService.findTableName(it.getName()).getName()); + if (!CollectionUtils.isEmpty(it.getCtlValue())){ + eleCtrl.setCtlValue(it.getCtlValue().stream().map(String::valueOf).collect(Collectors.joining(","))); + } + eleCtrl.setClassId(eleDictService.findTableName(it.getName()).getName()); + eleCtrlService.updateCtrl(eleCtrl); + } + }); + } + //actrl字典数据录入 +// List aCtrlList = item.getACtrl(); +// if (!CollectionUtils.isEmpty(aCtrlList)){ +// aCtrlList.forEach(it->{ +// EleActrl eleActrl = eleActrlService.findByName(it.getName()); +// EleDict eleDict = eleDictService.findDictByName(it.getName()); +// if (Objects.isNull(eleActrl)){ +// EleActrl pojo = new EleActrl(); +// BeanUtil.copyProperties(it,pojo); +// if (Objects.isNull(eleDict)){ +// pojo.setAnotherName(it.getName()); +// } else { +// pojo.setAnotherName(eleDict.getAnotherName()); +// } +// if (!CollectionUtils.isEmpty(it.getCondition())){ +// pojo.setCondition(it.getCondition().stream().map(String::valueOf).collect(Collectors.joining(","))); +// } +// if (!CollectionUtils.isEmpty(it.getOutRes())){ +// pojo.setOutRes(it.getOutRes().stream().map(String::valueOf).collect(Collectors.joining(","))); +// } +// eleActrlService.addActrl(pojo); +// } else { +// BeanUtil.copyProperties(it,eleActrl); +// if (Objects.isNull(eleDict)){ +// eleActrl.setAnotherName(it.getName()); +// } else { +// eleActrl.setAnotherName(eleDict.getAnotherName()); +// } +// if (!CollectionUtils.isEmpty(it.getCondition())){ +// eleActrl.setCondition(it.getCondition().stream().map(String::valueOf).collect(Collectors.joining(","))); +// } +// if (!CollectionUtils.isEmpty(it.getOutRes())){ +// eleActrl.setOutRes(it.getOutRes().stream().map(String::valueOf).collect(Collectors.joining(","))); +// } +// eleActrlService.updateActrl(eleActrl); +// } +// }); +// } + } + + /** + * 新增单个设备事件数据 + */ + public void addEvtParam( List list,String id) { + if (!CollectionUtils.isEmpty(list)){ + list.forEach(param->{ + EleEvtParm eleEvtParm = new EleEvtParm(); + BeanUtil.copyProperties(param,eleEvtParm); + eleEvtParm.setPid(id); + eleEvtParamService.addEleEvtParam(eleEvtParm); + }); + } + } + +} diff --git a/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/NetDevServiceImpl.java b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/NetDevServiceImpl.java new file mode 100644 index 000000000..ff2d0c944 --- /dev/null +++ b/pqs-quality/quality-boot/src/main/java/com/njcn/quality/service/impl/NetDevServiceImpl.java @@ -0,0 +1,144 @@ +package com.njcn.quality.service.impl; + + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.db.constant.DbConstant; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.quality.enums.EnergyResponseEnum; +import com.njcn.quality.mapper.NetDevMapper; +import com.njcn.quality.param.NetDevParam; +import com.njcn.quality.pojo.constant.ModelState; +import com.njcn.quality.pojo.po.NetDev; +import com.njcn.quality.pojo.vo.NetDevInfoVO; +import com.njcn.quality.service.INetDevService; +import com.njcn.web.factory.PageFactory; +import com.njcn.web.utils.RequestUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 服务实现类 + *

+ * + * @author cdf + * @since 2022-02-22 + */ +@Service +public class NetDevServiceImpl extends ServiceImpl implements INetDevService { + + + @Override + public Page listNetDev(NetDevParam.NetDevQueryParam queryParam) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(Objects.nonNull(queryParam)){ + //查询参数不为空,进行条件填充 + if(StrUtil.isNotBlank(queryParam.getSearchValue())){ + //字典类型表,仅提供名称、编码模糊查询 + queryWrapper + .and(param -> param.like("ele_net_dev.name",queryParam.getSearchValue()) + .or().like("ele_net_dev.ndid",queryParam.getSearchValue())); + } + + //排序 + if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) { + queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy())); + }else{ + //没有排序参数,默认根据sort字段排序,没有排序字段的,根据updateTime更新时间排序 + queryWrapper.orderBy(true, true, "ele_net_dev.sort"); + } + + } + queryWrapper.eq("ele_net_dev.state", DataStateEnum.ENABLE.getCode()); + return this.baseMapper.selectPage(new Page<>(PageFactory.getPageNum(queryParam),PageFactory.getPageSize(queryParam)),queryWrapper); + } + + @Override + public boolean addNetDev(NetDevParam netDevParam) { + checkDicTypeName(netDevParam,false); + NetDev netDev = new NetDev(); + BeanUtils.copyProperties(netDevParam, netDev); + netDev.setState(DataStateEnum.ENABLE.getCode()); + netDev.setCreateBy(RequestUtil.getUserIndex()); + return this.save(netDev); + } + + @Override + public boolean updateNetDev(NetDevParam.NetDevUpdateParam updateParam) { + checkDicTypeName(updateParam,true); + NetDev netDev = new NetDev(); + BeanUtils.copyProperties(updateParam, netDev); + netDev.setUpdateBy(RequestUtil.getUserIndex()); + return this.updateById(netDev); + } + + @Override + public boolean deleteNetDev(List ids) { + return this.lambdaUpdate() + .set(NetDev::getState, DataStateEnum.DELETED.getCode()) + .in(NetDev::getId,ids) + .update(); + } + + + + @Override + public NetDev findByNdid(String ndid) { + return this.lambdaQuery().eq(NetDev::getNdid,ndid).one(); + } + + @Override + public NetDevInfoVO getNetDevInfo(String id){ + return this.baseMapper.getNetDevDetail(id); + } + + @Override + public void offlineNetDev(String netDev) { + this.lambdaUpdate() + .set(NetDev::getComFlag, ModelState.UNREGISTER) + .eq(NetDev::getId,netDev) + .update(); + } + + @Override + public void onlineNetDev(String netDev) { + this.lambdaUpdate() + .set(NetDev::getComFlag, DataStateEnum.ENABLE.getCode()) + .eq(NetDev::getId,netDev) + .update(); + } + + @Override + public List getAllNetDev() { + return this.lambdaQuery().eq(NetDev::getState,DataStateEnum.ENABLE.getCode()).list(); + } + + /** + * 校验参数,检查是否存在相同名称的字典类型 + */ + private void checkDicTypeName(NetDevParam netDevParam, boolean isExcludeSelf) { + LambdaQueryWrapper netDevLambdaQueryWrapper = new LambdaQueryWrapper<>(); + netDevLambdaQueryWrapper + .eq(NetDev::getName,netDevParam.getName()) + .eq(NetDev::getState,DataStateEnum.ENABLE.getCode()); + //更新的时候,需排除当前记录 + if(isExcludeSelf){ + if(netDevParam instanceof NetDevParam.NetDevUpdateParam){ + netDevLambdaQueryWrapper.ne(NetDev::getId,((NetDevParam.NetDevUpdateParam) netDevParam).getId()); + } + } + int countByAccount = this.count(netDevLambdaQueryWrapper); + //大于等于1个则表示重复 + if (countByAccount >= 1) { + throw new BusinessException(EnergyResponseEnum.NET_DEV_NAME_REPEAT); + } + } +} diff --git a/pqs-quality/quality-boot/src/main/resources/bootstrap.yml b/pqs-quality/quality-boot/src/main/resources/bootstrap.yml new file mode 100644 index 000000000..1d01fc4aa --- /dev/null +++ b/pqs-quality/quality-boot/src/main/resources/bootstrap.yml @@ -0,0 +1,57 @@ +#当前服务的基本信息 +microservice: + ename: @artifactId@ + name: '@name@' + version: @version@ + sentinel: + url: 192.168.1.139:8080 + gateway: + url: 192.168.1.139:10215 +server: + port: 10209 +#feign接口开启服务熔断降级处理 +feign: + sentinel: + enabled: true + +spring: + application: + name: @artifactId@ + #nacos注册中心以及配置中心的指定 + cloud: + nacos: + discovery: + server-addr: 192.168.1.18:18848 +# namespace: @nacos.namespace@ + config: + server-addr: 192.168.1.18:18848 +# namespace: @nacos.namespace@ + file-extension: yaml + shared-configs: + - data-id: share-config.yaml + refresh: true + - data-Id: share-config-datasource-db.yaml + refresh: true + main: + allow-bean-definition-overriding: true + + +#项目日志的配置 +logging: +# config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml + config: http://192.168.1.18:18848/nacos/v1/cs/configs?group=DEFAULT_GROUP&dataId=logback.xml + level: + root: info + + +#mybatis配置信息 +mybatis-plus: + #别名扫描 + type-aliases-package: com.njcn.quality.pojo + + +mqtt: + uri: tcp://192.168.1.18:1883 + client-id: energy + username: t_user + password: njcnpqs \ No newline at end of file diff --git a/pqs-quality/quality-boot/src/test/java/com/njcn/AppTest.java b/pqs-quality/quality-boot/src/test/java/com/njcn/AppTest.java new file mode 100644 index 000000000..a7e14d20f --- /dev/null +++ b/pqs-quality/quality-boot/src/test/java/com/njcn/AppTest.java @@ -0,0 +1,20 @@ +package com.njcn; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/api/AreaFeignClient.java b/pqs-system/system-api/src/main/java/com/njcn/system/api/AreaFeignClient.java index 2f9057e4c..13889ac8f 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/api/AreaFeignClient.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/api/AreaFeignClient.java @@ -49,6 +49,9 @@ public interface AreaFeignClient { @PostMapping("/areaPro") HttpResult areaPro(@RequestParam("id")String id , @RequestParam("type")Integer type); + @PostMapping("/areaDeptPro") + HttpResult areaDeptPro(@RequestParam("id")String id); + /** diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/AreaFeignClientFallbackFactory.java b/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/AreaFeignClientFallbackFactory.java index ac72ecd20..7f5bad8f9 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/AreaFeignClientFallbackFactory.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/AreaFeignClientFallbackFactory.java @@ -61,6 +61,12 @@ public class AreaFeignClientFallbackFactory implements FallbackFactory areaDeptPro(String id) { + log.error("{}异常,降级处理,异常为:{}","根据部门id查询省份信息",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + @Override public HttpResult selectAreaByName(String name) { log.error("{}异常,降级处理,异常为:{}","根据行政区域名称查询详细",cause.toString()); diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AreaController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AreaController.java index 9bcf09685..49f4f2eef 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AreaController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/AreaController.java @@ -257,5 +257,18 @@ public class AreaController extends BaseController { Area result = areaService.selectAreaByName(name); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + + /** + * 根据部门id获取省份 + */ + @OperateInfo(info = LogEnum.SYSTEM_COMMON) + @PostMapping("/areaDeptPro") + @ApiOperation("根据区域id获取省份") + @ApiImplicitParam(name = "id", value = "部门id", required = false) + public HttpResult areaDeptPro(@RequestParam(required = false) @ApiParam("id") String id) { + String methodDescribe = getMethodDescribe("areaDeptTree"); + Area result = areaService.areaDeptPro(id); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/AreaMapper.java b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/AreaMapper.java index 60ee6dbf2..33a252154 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/AreaMapper.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/AreaMapper.java @@ -64,8 +64,15 @@ public interface AreaMapper extends BaseMapper { /** * 查询所有区域 - * @return + * @return 结果 */ List getAreaAll(); + /** + * 根据部门id获取区域详情 + * @param id 部门id + * @return 结果 + */ + Area areaDeptProDetail(@Param("id")String id); + } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/AreaMapper.xml b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/AreaMapper.xml index b5d0f4239..0a9de217a 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/AreaMapper.xml +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/AreaMapper.xml @@ -71,4 +71,19 @@ SELECT sys_area.* FROM sys_area sys_area + + diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IAreaService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IAreaService.java index 2c418f22a..4dfe8fb29 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IAreaService.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IAreaService.java @@ -94,6 +94,8 @@ public interface IAreaService extends IService { */ Area areaPro(String id, Integer type); + Area areaDeptPro(String id); + List getDeptIdAreaTree(); /** diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java index 7ff04fab2..beb141f7c 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AreaServiceImpl.java @@ -213,6 +213,13 @@ public class AreaServiceImpl extends ServiceImpl implements IA area = areaPro(id, type); } return area; + } + + @Override + public Area areaDeptPro(String id) { + Area areaDetail = this.baseMapper.areaDeptProDetail(id); + Area area = areaPro(areaDetail.getId(),areaDetail.getType()); + return area; } @Override diff --git a/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java b/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java index c667daea9..5d753fdaf 100644 --- a/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java +++ b/pqs-user/user-boot/src/main/java/com/njcn/user/UserBootApplication.java @@ -16,7 +16,8 @@ import org.springframework.cloud.openfeign.EnableFeignClients; @MapperScan("com.njcn.**.mapper") @EnableFeignClients(basePackages = "com.njcn") @SpringBootApplication(scanBasePackages = "com.njcn") -public class UserBootApplication { +public class +UserBootApplication { public static void main(String[] args) { SpringApplication.run(UserBootApplication.class, args);