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 b76e45295..a7028fb38 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 @@ -38,6 +38,9 @@ public interface ServerInfo { String CS_HARMONIC_BOOT = "cs-harmonic-boot"; String CS_REPORT_BOOT = "cs-report-boot"; + String CS_STAT_BOOT = "stat-boot"; + String CS_RT_BOOT = "rt-boot"; + String CS_ZL_EVENT_BOOT = "zl-event-boot"; } diff --git a/pqs-common/common-core/src/main/java/com/njcn/common/utils/PubUtils.java b/pqs-common/common-core/src/main/java/com/njcn/common/utils/PubUtils.java index e723aa8a3..79fd769d3 100644 --- a/pqs-common/common-core/src/main/java/com/njcn/common/utils/PubUtils.java +++ b/pqs-common/common-core/src/main/java/com/njcn/common/utils/PubUtils.java @@ -473,5 +473,56 @@ public class PubUtils { return new String(result); } + /** + * 将字节数组转成Float数组 + * @param bytes + * @return + */ + public static List byteArrayToFloatList(byte[] bytes){ + List d = new ArrayList<>(bytes.length/8); + byte[] doubleBuffer = new byte[4]; + for(int j = 0; j < bytes.length; j += 4) { + System.arraycopy(bytes, j, doubleBuffer, 0, doubleBuffer.length); + d.add(bytes2Float(doubleBuffer)); + } + return d; + } + + public static float bytes2Float(byte[] arr) { + int accum = 0; + accum = accum|(arr[0] & 0xff); + accum = accum|(arr[1] & 0xff) << 8; + accum = accum|(arr[2] & 0xff) << 16; + accum = accum|(arr[3] & 0xff) << 24; + return Float.intBitsToFloat(accum); + } + + /** + * 将字节数组转成Double数组 + * @param arr + * @return + */ + public static List byteArrayToDoubleList(byte[] arr){ + List d = new ArrayList<>(arr.length/8); + byte[] doubleBuffer = new byte[8]; + for(int j = 0; j < arr.length; j += 8) { + System.arraycopy(arr, j, doubleBuffer, 0, doubleBuffer.length); + d.add(bytes2Double(doubleBuffer)); + } + return d; + } + + /** + * 将byte转换成double + * @param arr + * @return + */ + public static double bytes2Double(byte[] arr) { + long value = 0; + for (int i = 0; i < 8; i++) { + value |= ((long) (arr[i] & 0xff)) << (8 * i); + } + return Double.longBitsToDouble(value); + } //***************************************************添加结束******************************************************** } diff --git a/pqs-common/common-mq/src/main/java/com/njcn/mq/constant/BusinessTopic.java b/pqs-common/common-mq/src/main/java/com/njcn/mq/constant/BusinessTopic.java index 3947f134a..c6525191d 100644 --- a/pqs-common/common-mq/src/main/java/com/njcn/mq/constant/BusinessTopic.java +++ b/pqs-common/common-mq/src/main/java/com/njcn/mq/constant/BusinessTopic.java @@ -12,4 +12,13 @@ public interface BusinessTopic { */ String NJCJ_USER_TOPIC = "njcnUserTopic"; + /** + * 治理主送推送数据接收主题 + */ + String NJCJ_APP_AUTO_DATA_TOPIC = "njcnAppAutoDataTopic"; + + /** + * 治理事件接收主题 + */ + String NJCJ_APP_EVENT_TOPIC = "njcnAppEventTopic"; } diff --git a/pqs-common/common-mq/src/main/java/com/njcn/mq/message/AppAutoDataMessage.java b/pqs-common/common-mq/src/main/java/com/njcn/mq/message/AppAutoDataMessage.java new file mode 100644 index 000000000..d466cee31 --- /dev/null +++ b/pqs-common/common-mq/src/main/java/com/njcn/mq/message/AppAutoDataMessage.java @@ -0,0 +1,71 @@ +package com.njcn.mq.message; + +import com.njcn.middle.rocket.domain.BaseMessage; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/8/11 15:06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AllArgsConstructor +@NoArgsConstructor +public class AppAutoDataMessage extends BaseMessage { + + @ApiModelProperty("网络设备码") + private String id; + + private Integer mid; + + @ApiModelProperty("逻辑设备 治理逻辑设备为1 电能质量设备为2") + private Integer did; + + private Integer pri; + + private Integer type; + + private Msg msg; + + @Data + public static class Msg{ + + @ApiModelProperty("逻辑子设备 治理逻辑设备为0 电能质量设备为1、2") + private Integer clDid; + + private Integer dataType; + + @ApiModelProperty("数据属性:无-0、实时-1、统计-2") + private Integer dataAttr; + + private Integer dsNameIdx; + + private List dataArray; + } + + @Data + public static class DataArray{ + + @ApiModelProperty("数据属性 1-Max 2-Min 3-Avg 4-Cp95") + private Integer dataAttr; + + private Long dataTimeSec; + + private Integer dataTimeUSec; + + @ApiModelProperty("数据是否参与合格率统计") + private Integer dataTag; + + private String data; + } + +} diff --git a/pqs-common/common-mq/src/main/java/com/njcn/mq/template/AppAutoDataMessageTemplate.java b/pqs-common/common-mq/src/main/java/com/njcn/mq/template/AppAutoDataMessageTemplate.java new file mode 100644 index 000000000..10cf0edb0 --- /dev/null +++ b/pqs-common/common-mq/src/main/java/com/njcn/mq/template/AppAutoDataMessageTemplate.java @@ -0,0 +1,27 @@ +package com.njcn.mq.template; + +import com.njcn.middle.rocket.template.RocketMQEnhanceTemplate; +import com.njcn.mq.constant.BusinessTopic; +import com.njcn.mq.message.AppAutoDataMessage; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.stereotype.Component; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/8/11 15:28 + */ +@Component +public class AppAutoDataMessageTemplate extends RocketMQEnhanceTemplate { + + public AppAutoDataMessageTemplate(RocketMQTemplate template) { + super(template); + } + + public SendResult sendMember(AppAutoDataMessage appAutoDataMessage) { + return send(BusinessTopic.NJCJ_APP_AUTO_DATA_TOPIC, "CREATE", appAutoDataMessage); + } +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/constant/InfluxDBTableConstant.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/constant/InfluxDBTableConstant.java index 64409c25e..1318498f7 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/pojo/constant/InfluxDBTableConstant.java +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/constant/InfluxDBTableConstant.java @@ -151,4 +151,9 @@ public interface InfluxDBTableConstant { */ String END_TIME = " 23:59:59"; + /** + * 数据是否异常 + */ + String IS_ABNORMAL = "is_abnormal"; + } diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/api/EpdFeignClient.java b/pqs-system/system-api/src/main/java/com/njcn/system/api/EpdFeignClient.java index 9d2dfb88e..02b9ceec8 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/api/EpdFeignClient.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/api/EpdFeignClient.java @@ -1,20 +1,12 @@ package com.njcn.system.api; -import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; -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.system.api.fallback.EpdFeignClientFallbackFactory; +import com.njcn.system.pojo.dto.EpdDTO; import com.njcn.system.pojo.param.EleEpdPqdParam; import com.njcn.system.pojo.po.EleEpdPqd; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -53,4 +45,7 @@ public interface EpdFeignClient { @PostMapping("/findByParam") HttpResult findByParam(@RequestParam("name") String name, @RequestParam("dataType") String dataType, @RequestParam("phase") String phase); + + @PostMapping("/findAll") + HttpResult> findAll(); } diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/EpdFeignClientFallbackFactory.java b/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/EpdFeignClientFallbackFactory.java index 44e211e4f..c06159a46 100644 --- a/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/EpdFeignClientFallbackFactory.java +++ b/pqs-system/system-api/src/main/java/com/njcn/system/api/fallback/EpdFeignClientFallbackFactory.java @@ -4,6 +4,7 @@ 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.system.api.EpdFeignClient; +import com.njcn.system.pojo.dto.EpdDTO; import com.njcn.system.pojo.param.EleEpdPqdParam; import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.system.utils.SystemEnumUtil; @@ -81,6 +82,12 @@ public class EpdFeignClientFallbackFactory implements FallbackFactory> findAll() { + log.error("{}异常,降级处理,异常为:{}","查询所有字典数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } }; } } diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/dto/EpdDTO.java b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/dto/EpdDTO.java new file mode 100644 index 000000000..ef8613518 --- /dev/null +++ b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/dto/EpdDTO.java @@ -0,0 +1,22 @@ +package com.njcn.system.pojo.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/8/14 20:28 + */ +@Data +public class EpdDTO { + + @ApiModelProperty("指标名称") + private String dictName; + + @ApiModelProperty("inflxuDB表名") + private String tableName; + +} diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/EleEpdPqdController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/EleEpdPqdController.java index b5d8f3ec4..752ee81de 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/EleEpdPqdController.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/EleEpdPqdController.java @@ -8,6 +8,7 @@ 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.system.pojo.dto.EpdDTO; import com.njcn.system.pojo.param.EleEpdPqdParam; import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.system.pojo.vo.EleEpdPqdListVO; @@ -192,5 +193,15 @@ public class EleEpdPqdController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eleEpdPqd, methodDescribe); } + @PostMapping("/findAll") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询所有字典数据") + @ApiIgnore + public HttpResult> findAll(){ + String methodDescribe = getMethodDescribe("findAll"); + List list = eleEpdPqdService.findAll(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/EleEpdPqdMapper.java b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/EleEpdPqdMapper.java index fe0296197..9be6a1c91 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/EleEpdPqdMapper.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/EleEpdPqdMapper.java @@ -3,10 +3,13 @@ package com.njcn.system.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.system.pojo.dto.EpdDTO; import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.system.pojo.vo.EleEpdPqdVO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** *

* Mapper 接口 @@ -19,4 +22,6 @@ public interface EleEpdPqdMapper extends BaseMapper { Page page(@Param("page")Page page, @Param("ew") QueryWrapper queryWrapper); + List findAll(); + } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/EleEpdPqdMapper.xml b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/EleEpdPqdMapper.xml index 02cabcdd8..854cfbafb 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/EleEpdPqdMapper.xml +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/EleEpdPqdMapper.xml @@ -44,4 +44,15 @@ + diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IEleEpdPqdService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IEleEpdPqdService.java index 94bcdd4a9..be9c4d7fd 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IEleEpdPqdService.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IEleEpdPqdService.java @@ -2,6 +2,7 @@ package com.njcn.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.system.pojo.dto.EpdDTO; import com.njcn.system.pojo.param.EleEpdPqdParam; import com.njcn.system.pojo.po.EleEpdPqd; import com.njcn.system.pojo.vo.EleEpdPqdListVO; @@ -103,4 +104,10 @@ public interface IEleEpdPqdService extends IService { */ EleEpdPqd findByParam(String name, String dataType, String phase); + /** + * 查询指标和influxDB表关系 + * @return + */ + List findAll(); + } diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/EleEpdPqdServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/EleEpdPqdServiceImpl.java index bb9731cee..f93d4b696 100644 --- a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/EleEpdPqdServiceImpl.java +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/EleEpdPqdServiceImpl.java @@ -11,6 +11,7 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.db.constant.DbConstant; import com.njcn.system.enums.SystemResponseEnum; import com.njcn.system.mapper.EleEpdPqdMapper; +import com.njcn.system.pojo.dto.EpdDTO; import com.njcn.system.pojo.param.EleEpdPqdParam; import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.EleEpdPqd; @@ -206,6 +207,11 @@ public class EleEpdPqdServiceImpl extends ServiceImpl findAll() { + return this.baseMapper.findAll(); + } + /** * 校验参数, * 1.检查是否存在相同名称的菜单