diff --git a/pom.xml b/pom.xml
index 092453741..4cc0cc0eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,6 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
-
com.njcn
pqs
@@ -21,6 +20,7 @@
pqs-job
pqs-job/job-api
pqs-quality
+ pqs-advance
pom
灿能微服务生态系统
@@ -40,12 +40,12 @@
192.168.1.13
- 192.168.1.111
+ 192.168.1.130
${middle.server.url}:18848
- fd74182b-1fce-4dba-afa7-2623b0376205
+ 722a16dc-6988-419e-96e9-de885508296b
${middle.server.url}:8080
@@ -93,7 +93,6 @@
1.2.7
4.4.0
-
@@ -291,7 +290,6 @@
xxl-job-core
${xxl-job.version}
-
com.github.tocrhz
mqtt-spring-boot-starter
@@ -304,7 +302,6 @@
-
@@ -316,7 +313,6 @@
true
-
org.apache.maven.plugins
maven-compiler-plugin
@@ -340,4 +336,4 @@
-
+
\ No newline at end of file
diff --git a/pqs-advance/advance-api/pom.xml b/pqs-advance/advance-api/pom.xml
new file mode 100644
index 000000000..5c1eb04b4
--- /dev/null
+++ b/pqs-advance/advance-api/pom.xml
@@ -0,0 +1,19 @@
+
+
+
+ pqs-advance
+ com.njcn
+ 1.0.0
+
+ 4.0.0
+
+ advance-api
+
+
+ 8
+ 8
+
+
+
\ No newline at end of file
diff --git a/pqs-advance/advance-boot/pom.xml b/pqs-advance/advance-boot/pom.xml
new file mode 100644
index 000000000..258498f1c
--- /dev/null
+++ b/pqs-advance/advance-boot/pom.xml
@@ -0,0 +1,124 @@
+
+
+
+ pqs-advance
+ com.njcn
+ 1.0.0
+
+ 4.0.0
+
+
+
+ com.njcn
+ common-web
+ ${project.version}
+
+
+ com.njcn
+ common-swagger
+ ${project.version}
+
+
+ com.njcn
+ event-api
+ ${project.version}
+
+
+ com.njcn
+ device-api
+ ${project.version}
+
+
+ com.njcn
+ system-api
+ ${project.version}
+
+
+ com.njcn
+ user-api
+ 1.0.0
+ compile
+
+
+ com.njcn
+ common-influxDB
+ 1.0.0
+ compile
+
+
+
+ advance-boot
+
+
+ 8
+ 8
+
+
+
+ advanceboot
+
+
+ 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
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pqs-advance/advance-boot/src/main/java/com/njcn/advance/AdvanceBootApplication.java b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/AdvanceBootApplication.java
new file mode 100644
index 000000000..dcfd58792
--- /dev/null
+++ b/pqs-advance/advance-boot/src/main/java/com/njcn/advance/AdvanceBootApplication.java
@@ -0,0 +1,22 @@
+package com.njcn.advance;
+/**
+ * @author denghuajun
+ * @version 1.0.0
+ * @date 2022年08月18日 09:33
+ */
+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;
+
+@Slf4j
+@MapperScan("com.njcn.**.mapper")
+@EnableFeignClients(basePackages = "com.njcn")
+@SpringBootApplication(scanBasePackages = "com.njcn")
+public class
+AdvanceBootApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(AdvanceBootApplication.class, args);
+ }
+}
diff --git a/pqs-advance/advance-boot/src/main/resources/bootstrap.yml b/pqs-advance/advance-boot/src/main/resources/bootstrap.yml
new file mode 100644
index 000000000..d112d0ad1
--- /dev/null
+++ b/pqs-advance/advance-boot/src/main/resources/bootstrap.yml
@@ -0,0 +1,53 @@
+#当前服务的基本信息
+microservice:
+ ename: @artifactId@
+ name: '@name@'
+ version: @version@
+ sentinel:
+ url: @sentinel.url@
+ gateway:
+ url: @gateway.url@
+server:
+ port: 10210
+#feign接口开启服务熔断降级处理
+feign:
+ sentinel:
+ enabled: true
+
+spring:
+ application:
+ name: @artifactId@
+ #nacos注册中心以及配置中心的指定
+ cloud:
+ nacos:
+ discovery:
+ ip: @service.server.url@
+ server-addr: @nacos.url@
+ namespace: @nacos.namespace@
+ config:
+ server-addr: @nacos.url@
+ 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
+ level:
+ root: info
+
+
+#mybatis配置信息
+mybatis-plus:
+ #别名扫描
+ type-aliases-package: com.njcn.advance.pojo
+
+mqtt:
+ client-id: @artifactId@${random.value}
diff --git a/pqs-advance/advance-boot/src/main/resources/qvvr_balance.dll b/pqs-advance/advance-boot/src/main/resources/qvvr_balance.dll
new file mode 100644
index 000000000..97efdf160
Binary files /dev/null and b/pqs-advance/advance-boot/src/main/resources/qvvr_balance.dll differ
diff --git a/pqs-advance/advance-boot/src/main/resources/qvvr_dll.dll b/pqs-advance/advance-boot/src/main/resources/qvvr_dll.dll
new file mode 100644
index 000000000..60d74a998
Binary files /dev/null and b/pqs-advance/advance-boot/src/main/resources/qvvr_dll.dll differ
diff --git a/pqs-advance/advance-boot/src/main/resources/qvvr_dll_cause.dll b/pqs-advance/advance-boot/src/main/resources/qvvr_dll_cause.dll
new file mode 100644
index 000000000..95328f1aa
Binary files /dev/null and b/pqs-advance/advance-boot/src/main/resources/qvvr_dll_cause.dll differ
diff --git a/pqs-advance/pom.xml b/pqs-advance/pom.xml
new file mode 100644
index 000000000..8bca4d039
--- /dev/null
+++ b/pqs-advance/pom.xml
@@ -0,0 +1,24 @@
+
+
+
+ pqs
+ com.njcn
+ 1.0.0
+
+ 4.0.0
+
+ pqs-advance
+ pom
+
+ advance-api
+ advance-boot
+
+
+
+ 8
+ 8
+
+
+
\ No newline at end of file
diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/AbnomalCommuncateVO.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/AbnomalCommuncateVO.java
new file mode 100644
index 000000000..5511a82b5
--- /dev/null
+++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/AbnomalCommuncateVO.java
@@ -0,0 +1,27 @@
+package com.njcn.device.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author denghuajun
+ * @version 1.0.0
+ * @date 2022年08月15日 14:03
+ */
+@Data
+public class AbnomalCommuncateVO implements Serializable {
+
+ @ApiModelProperty("年份")
+ private String year;
+
+ @ApiModelProperty("月份")
+ private String month;
+
+ @ApiModelProperty("日期")
+ private String day;
+
+ @ApiModelProperty("异常次数")
+ private String abnormalTimes;
+}
diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/DeviceAbnormalVO.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/DeviceAbnormalVO.java
new file mode 100644
index 000000000..fb4d55378
--- /dev/null
+++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/DeviceAbnormalVO.java
@@ -0,0 +1,25 @@
+package com.njcn.device.pojo.vo;
+
+import com.njcn.common.pojo.constant.PatternRegex;
+import com.njcn.device.pojo.param.DeviceInfoParam;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.Pattern;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author denghuajun
+ * @date 2022/8/14
+ *
+ */
+@Data
+public class DeviceAbnormalVO implements Serializable {
+ @ApiModelProperty("是否有下级")
+ private Boolean isPid;
+
+ @ApiModelProperty("数值")
+ private List data;
+}
diff --git a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/DeviceOnlineDataVO.java b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/DeviceOnlineDataVO.java
index 70ac730ae..ed0ec9c78 100644
--- a/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/DeviceOnlineDataVO.java
+++ b/pqs-device/device-api/src/main/java/com/njcn/device/pojo/vo/DeviceOnlineDataVO.java
@@ -21,6 +21,9 @@ public class DeviceOnlineDataVO implements Serializable {
@ApiModelProperty("月")
private String month;
+ @ApiModelProperty("日")
+ private String day;
+
@ApiModelProperty("在线率")
private Float onlineRate;
}
diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/OperationContrController.java b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/OperationContrController.java
index 7d3788fd1..64aa7de1c 100644
--- a/pqs-device/device-boot/src/main/java/com/njcn/device/controller/OperationContrController.java
+++ b/pqs-device/device-boot/src/main/java/com/njcn/device/controller/OperationContrController.java
@@ -97,5 +97,14 @@ public class OperationContrController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON)
+ @PostMapping("/getComunicateStatics")
+ @ApiOperation("获取中断异常统计")
+ @ApiImplicitParam(name = "conditionBusinessParam", value = "实体", required = true)
+ public HttpResult getComunicateStatics(@RequestBody @Validated DeviceInfoParam.ConditionBusinessParam conditionBusinessParam) {
+ String methodDescribe = getMethodDescribe("getComunicateStatics");
+ DeviceAbnormalVO result = lineService.getComunicateStatics(conditionBusinessParam);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
+ }
}
diff --git a/pqs-device/device-boot/src/main/java/com/njcn/device/service/LineService.java b/pqs-device/device-boot/src/main/java/com/njcn/device/service/LineService.java
index a5db41aa3..80b924bec 100644
--- a/pqs-device/device-boot/src/main/java/com/njcn/device/service/LineService.java
+++ b/pqs-device/device-boot/src/main/java/com/njcn/device/service/LineService.java
@@ -141,5 +141,11 @@ public interface LineService {
*/
List getBaseLineList(List lineIndex);
+ /**
+ * 获取终端异常数据
+ * @param deviceInfoParam 参数
+ * @return 结果
+ */
+ DeviceAbnormalVO getComunicateStatics(DeviceInfoParam.ConditionBusinessParam deviceInfoParam);
}
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 73223d9b9..9cf7b2272 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
@@ -23,6 +23,8 @@ import com.njcn.device.pojo.param.DeviceInfoParam;
import com.njcn.device.pojo.po.*;
import com.njcn.device.pojo.vo.*;
import com.njcn.device.service.LineService;
+import com.njcn.device.utils.PublicDateUtil;
+import com.njcn.event.pojo.po.EventDetail;
import com.njcn.influxdb.param.InfluxDBPublicParam;
import com.njcn.influxdb.utils.InfluxDbUtils;
import com.njcn.system.api.AreaFeignClient;
@@ -42,7 +44,6 @@ import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.Instant;
-import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -73,8 +74,6 @@ public class LineServiceImpl extends ServiceImpl implements Li
private final SubstationMapper substationMapper;
- private final CommunicateMapper communicateMapper;
-
private final GeneralDeviceService generalDeviceService;
private final LineMapper lineMapper;
@@ -158,7 +157,7 @@ public class LineServiceImpl extends ServiceImpl implements Li
@Override
public CommunicateVO getComFlagInfoData(String id, String searchBeginTime, String searchEndTime) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- List communicateList = getCommunicate(id,searchBeginTime,searchEndTime);
+ List communicateList = getCommunicate(id, searchBeginTime, searchEndTime);
CommunicateVO communicateVOList = new CommunicateVO();
List updateTime = new ArrayList<>();
List comType = new ArrayList<>();
@@ -260,24 +259,23 @@ 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.setName(generalDeviceDTO.getName());
lineDistributionVO.setValue(generalDeviceDTO.getLineIndexes().size());
lineDistributionVOList.add(lineDistributionVO);
}
- List result =new ArrayList();
+ List result = new ArrayList();
Map map = new HashMap();
- for(LineDistributionVO lineDistributionVO:lineDistributionVOList){
+ for (LineDistributionVO lineDistributionVO : lineDistributionVOList) {
if (map.containsKey(lineDistributionVO.getName())) {
- map.put(lineDistributionVO.getName(), map.get(lineDistributionVO.getName())+lineDistributionVO.getValue());
+ 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()));
+ result.add(new LineDistributionVO(entry.getKey(), entry.getValue()));
}
return result;
}
@@ -383,9 +381,9 @@ public class LineServiceImpl extends ServiceImpl implements Li
//根据监测点id获取终端id
String devIndex = lineMapper.getDevIndex(lineId);
//获取在线率
- List onlineRateValue = getDevOnline(devIndex,startTime,endTime);
+ List onlineRateValue = getDevOnline(devIndex, startTime, endTime);
//获取数据完整性
- List integrityValue = getInegrity(lineId,startTime,endTime);
+ List integrityValue = getInegrity(lineId, startTime, endTime);
//获取流量占比
List flowMealValue = new ArrayList<>();
//组装
@@ -415,8 +413,8 @@ public class LineServiceImpl extends ServiceImpl implements Li
for (LineFlowMealDetailVO lineFlowMealDetailVO : monitorList) {
for (LineInfluxDbInegrityVO lineInfluxDbInegrity : lineInfluxDbInegrityVO) {
if (lineFlowMealDetailVO.getId().equals(lineInfluxDbInegrity.getLineId())) {
- BigDecimal flow =new BigDecimal(lineInfluxDbInegrity.getIntegrity().floatValue());
- lineFlowMealDetailVO.setIntegrity(flow.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
+ BigDecimal flow = new BigDecimal(lineInfluxDbInegrity.getIntegrity().floatValue());
+ lineFlowMealDetailVO.setIntegrity(flow.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
}
}
}
@@ -426,18 +424,18 @@ public class LineServiceImpl extends ServiceImpl implements Li
List deviceList = lineMapper.getFlowLineRunStatistics(busBarList.stream().map(LineFlowMealDetailVO::getPid).distinct().collect(Collectors.toList()), DateUtil.endOfDay(DateUtil.parse(steadyParam.getSearchBeginTime())), DateUtil.beginOfDay(DateUtil.parse(steadyParam.getSearchEndTime())));
for (LineFlowMealDetailVO lineFlowMealDetailVO : deviceList) {
System.out.println(lineFlowMealDetailVO.getId());
- Float staticsValue = getStatisValueFlow(lineFlowMealDetailVO.getId(),steadyParam);
- BigDecimal b = new BigDecimal(staticsValue);
- float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
+ Float staticsValue = getStatisValueFlow(lineFlowMealDetailVO.getId(), steadyParam);
+ BigDecimal b = new BigDecimal(staticsValue);
+ float f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
lineFlowMealDetailVO.setStatisValue(f1);
- BigDecimal flow =new BigDecimal(f1/lineFlowMealDetailVO.getFlowMeal()*100);
+ BigDecimal flow = new BigDecimal(f1 / lineFlowMealDetailVO.getFlowMeal() * 100);
//获取流量占比
- lineFlowMealDetailVO.setFlowProportion(flow.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
+ lineFlowMealDetailVO.setFlowProportion(flow.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
for (LineInfluxDbOnlineVO lineInfluxDbOnline : lineInfluxDbOnlineVO) {
if (lineFlowMealDetailVO.getId().equals(lineInfluxDbOnline.getDevIndex())) {
- BigDecimal flowValue =new BigDecimal(lineInfluxDbOnline.getOnlineRate().floatValue());
- lineFlowMealDetailVO.setOnlineRate(flowValue.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
+ BigDecimal flowValue = new BigDecimal(lineInfluxDbOnline.getOnlineRate().floatValue());
+ lineFlowMealDetailVO.setOnlineRate(flowValue.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
}
}
}
@@ -589,7 +587,7 @@ public class LineServiceImpl extends ServiceImpl implements Li
if (!CollectionUtils.isEmpty(list)) {
List> listData = list.get(0).getValues();
for (int i = 0; i < listData.size(); i++) {
- LineStaticsValueVO lineStaticsValueVO =new LineStaticsValueVO();
+ LineStaticsValueVO lineStaticsValueVO = new LineStaticsValueVO();
List