diff --git a/pqs-prepare/harmonic-prepare/pom.xml b/pqs-prepare/harmonic-prepare/pom.xml index df35fad3a..2329377ca 100644 --- a/pqs-prepare/harmonic-prepare/pom.xml +++ b/pqs-prepare/harmonic-prepare/pom.xml @@ -14,8 +14,8 @@ 8 8 - 1.18.6 - 1.3.0.Final + 1.18.12 + 1.4.2.Final @@ -82,7 +82,7 @@ org.mapstruct - mapstruct-jdk8 + mapstruct ${org.mapstruct.version} @@ -91,6 +91,11 @@ mapstruct-processor ${org.mapstruct.version} + + org.projectlombok + lombok-mapstruct-binding + 0.2.0 + @@ -106,6 +111,31 @@ ${project.version} + + + me.tongfei + progressbar + 0.5.3 + + + + com.squareup.okhttp3 + okhttp + 4.8.1 + + + + io.minio + minio + 8.2.1 + + + com.squareup.okhttp3 + okhttp + + + + com.njcn prepare-api @@ -116,16 +146,20 @@ com.baomidou dynamic-datasource-spring-boot-starter + 3.5.1 + com.oracle.database.jdbc ojdbc8 + 21.6.0.0 com.oracle.database.nls orai18n + 21.1.0.0 @@ -160,7 +194,7 @@ build-image - ${docker.operate} + site build diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/AlgorithmParam.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/AlgorithmParam.java new file mode 100644 index 000000000..12d317785 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/AlgorithmParam.java @@ -0,0 +1,46 @@ +package com.njcn.prepare.harmonic.constant; + + +/** + * @author qijian + */ +public interface AlgorithmParam { + + /** + * 暂态/稳态 + */ + Integer TEMPORARY_STATE = 0; + Integer STEADY_STATE = 1; + + /** + * 主网/配网 + */ + Integer MAIN_NET = 1; + Integer DIS_NET = 2; + + /** + * 数据来源:Oracle/InfluxDB + */ + Integer ORACLE_DATA = 0; + Integer INFLUX_DATA = 1; + + + /** + * 监测点数据完整率 统计间隔 + */ + Integer TIME_INTERVAL = 15; + + /* + * 监测点暂态指标超标事件类型 + * 0:扰动,1:暂降,2:暂升,3:中断,4:其他,5:录波 + */ + Integer DISTURBANCE= 0; + Integer SAG= 1; + Integer RISE= 2; + Integer INTERRUPT= 3; + Integer other= 4; + Integer RECORDING_WAVE= 5; + + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/DictCache.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/DictCache.java new file mode 100644 index 000000000..2de68d1b1 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/DictCache.java @@ -0,0 +1,77 @@ +package com.njcn.prepare.harmonic.constant; + +import com.njcn.redis.utils.RedisUtil; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import java.util.List; +import java.util.Set; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 16:21【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + +@Component +@Slf4j +public class DictCache { + + public static final String NAME_KEY = "DicCache:"; + public static final String SPLIT_SIGN = "-"; + + private @Autowired + DicDataFeignClient dicDataFeignClient; + + private @Autowired + RedisUtil redisUtil; + private @Autowired + RedisTemplate redisTemplate; + + @PostConstruct + public void init(){ + log.info("系统启动中。。。加载dictDataMap"); + /*todo 后续将字典表全部加载*/ + List data = dicDataFeignClient.getDicDataByTypeCode (DicDataTypeEnum.LINE_STATE.getCode ( )).getData ( ); + List data2 = dicDataFeignClient.getDicDataByTypeCode (DicDataTypeEnum.DEV_STATUS.getCode ( )).getData ( ); + List data3 = dicDataFeignClient.getDicDataByTypeCode (DicDataTypeEnum.LINE_SORT.getCode ( )).getData ( ); + + /* + * key:NAME_KEY前缀(清缓存使用)+SPLIT_SIGN(拼接符号)+DicDataTypeEnum+SPLIT_SIGN(拼接符号)+Code + * Value:id + * */ + data.forEach (temp->{ + redisUtil.saveByKey (NAME_KEY+SPLIT_SIGN+DicDataTypeEnum.LINE_STATE.getCode ( )+SPLIT_SIGN+temp.getCode (),temp.getId ()); + }); + + data2.forEach (temp->{ + redisUtil.saveByKey (NAME_KEY+SPLIT_SIGN+DicDataTypeEnum.DEV_STATUS.getCode ( )+SPLIT_SIGN+temp.getCode (),temp.getId ()); + }); + + data3.forEach (temp->{ + redisUtil.saveByKey (NAME_KEY+SPLIT_SIGN+DicDataTypeEnum.LINE_SORT.getCode ( )+SPLIT_SIGN+temp.getCode (),temp.getId ()); + }); + + + } + + @PreDestroy + public void destroy(){ + log.info("系统运行结束"); + Set keys = redisTemplate.keys(NAME_KEY + "*"); + + redisTemplate.delete(keys); + + } + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/InfluxdbPOConverter.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/InfluxdbPOConverter.java index 80ca65c9a..8d48987af 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/InfluxdbPOConverter.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/InfluxdbPOConverter.java @@ -24,215 +24,215 @@ public interface InfluxdbPOConverter { InfluxdbPOConverter INFLUXDB_PO_CONVERTER = Mappers.getMapper (InfluxdbPOConverter.class); /*DataHarmRateVPO*/ - @Mapping(source = "v1", target = "fundamentalVoltageMax") - @Mapping(source = "v2", target = "harmonicVoltageContent2Max") - @Mapping(source = "v3", target = "harmonicVoltageContent3Max") - @Mapping(source = "v4", target = "harmonicVoltageContent4Max") - @Mapping(source = "v5", target = "harmonicVoltageContent5Max") - @Mapping(source = "v6", target = "harmonicVoltageContent6Max") - @Mapping(source = "v7", target = "harmonicVoltageContent7Max") - @Mapping(source = "v8", target = "harmonicVoltageContent8Max") - @Mapping(source = "v9", target = "harmonicVoltageContent9Max") - @Mapping(source = "v10", target = "harmonicVoltageContent10Max") - @Mapping(source = "v11", target = "harmonicVoltageContent11Max") - @Mapping(source = "v12", target = "harmonicVoltageContent12Max") - @Mapping(source = "v13", target = "harmonicVoltageContent13Max") - @Mapping(source = "v14", target = "harmonicVoltageContent14Max") - @Mapping(source = "v15", target = "harmonicVoltageContent15Max") - @Mapping(source = "v16", target = "harmonicVoltageContent16Max") - @Mapping(source = "v17", target = "harmonicVoltageContent17Max") - @Mapping(source = "v18", target = "harmonicVoltageContent18Max") - @Mapping(source = "v19", target = "harmonicVoltageContent19Max") - @Mapping(source = "v20", target = "harmonicVoltageContent20Max") - @Mapping(source = "v21", target = "harmonicVoltageContent21Max") - @Mapping(source = "v22", target = "harmonicVoltageContent22Max") - @Mapping(source = "v23", target = "harmonicVoltageContent23Max") - @Mapping(source = "v24", target = "harmonicVoltageContent24Max") - @Mapping(source = "v25", target = "harmonicVoltageContent25Max") - @Mapping(source = "v26", target = "harmonicVoltageContent26Max") - @Mapping(source = "v27", target = "harmonicVoltageContent27Max") - @Mapping(source = "v28", target = "harmonicVoltageContent28Max") - @Mapping(source = "v29", target = "harmonicVoltageContent29Max") - @Mapping(source = "v30", target = "harmonicVoltageContent30Max") - @Mapping(source = "v31", target = "harmonicVoltageContent31Max") - @Mapping(source = "v32", target = "harmonicVoltageContent32Max") - @Mapping(source = "v33", target = "harmonicVoltageContent33Max") - @Mapping(source = "v34", target = "harmonicVoltageContent34Max") - @Mapping(source = "v35", target = "harmonicVoltageContent35Max") - @Mapping(source = "v36", target = "harmonicVoltageContent36Max") - @Mapping(source = "v37", target = "harmonicVoltageContent37Max") - @Mapping(source = "v38", target = "harmonicVoltageContent38Max") - @Mapping(source = "v39", target = "harmonicVoltageContent39Max") - @Mapping(source = "v40", target = "harmonicVoltageContent40Max") - @Mapping(source = "v41", target = "harmonicVoltageContent41Max") - @Mapping(source = "v42", target = "harmonicVoltageContent42Max") - @Mapping(source = "v43", target = "harmonicVoltageContent43Max") - @Mapping(source = "v44", target = "harmonicVoltageContent44Max") - @Mapping(source = "v45", target = "harmonicVoltageContent45Max") - @Mapping(source = "v46", target = "harmonicVoltageContent46Max") - @Mapping(source = "v47", target = "harmonicVoltageContent47Max") - @Mapping(source = "v48", target = "harmonicVoltageContent48Max") - @Mapping(source = "v49", target = "harmonicVoltageContent49Max") - @Mapping(source = "v50", target = "harmonicVoltageContent50Max") + @Mapping(source = "v1", target = "fundamentalVoltageMax" ,numberFormat = "#.000") + @Mapping(source = "v2", target = "harmonicVoltageContent2Max" ,numberFormat = "#.000") + @Mapping(source = "v3", target = "harmonicVoltageContent3Max" ,numberFormat = "#.000") + @Mapping(source = "v4", target = "harmonicVoltageContent4Max" ,numberFormat = "#.000") + @Mapping(source = "v5", target = "harmonicVoltageContent5Max" ,numberFormat = "#.000") + @Mapping(source = "v6", target = "harmonicVoltageContent6Max" ,numberFormat = "#.000") + @Mapping(source = "v7", target = "harmonicVoltageContent7Max" ,numberFormat = "#.000") + @Mapping(source = "v8", target = "harmonicVoltageContent8Max" ,numberFormat = "#.000") + @Mapping(source = "v9", target = "harmonicVoltageContent9Max" ,numberFormat = "#.000") + @Mapping(source = "v10", target = "harmonicVoltageContent10Max" ,numberFormat = "#.000") + @Mapping(source = "v11", target = "harmonicVoltageContent11Max" ,numberFormat = "#.000") + @Mapping(source = "v12", target = "harmonicVoltageContent12Max" ,numberFormat = "#.000") + @Mapping(source = "v13", target = "harmonicVoltageContent13Max" ,numberFormat = "#.000") + @Mapping(source = "v14", target = "harmonicVoltageContent14Max" ,numberFormat = "#.000") + @Mapping(source = "v15", target = "harmonicVoltageContent15Max" ,numberFormat = "#.000") + @Mapping(source = "v16", target = "harmonicVoltageContent16Max" ,numberFormat = "#.000") + @Mapping(source = "v17", target = "harmonicVoltageContent17Max" ,numberFormat = "#.000") + @Mapping(source = "v18", target = "harmonicVoltageContent18Max" ,numberFormat = "#.000") + @Mapping(source = "v19", target = "harmonicVoltageContent19Max" ,numberFormat = "#.000") + @Mapping(source = "v20", target = "harmonicVoltageContent20Max" ,numberFormat = "#.000") + @Mapping(source = "v21", target = "harmonicVoltageContent21Max" ,numberFormat = "#.000") + @Mapping(source = "v22", target = "harmonicVoltageContent22Max" ,numberFormat = "#.000") + @Mapping(source = "v23", target = "harmonicVoltageContent23Max" ,numberFormat = "#.000") + @Mapping(source = "v24", target = "harmonicVoltageContent24Max" ,numberFormat = "#.000") + @Mapping(source = "v25", target = "harmonicVoltageContent25Max" ,numberFormat = "#.000") + @Mapping(source = "v26", target = "harmonicVoltageContent26Max" ,numberFormat = "#.000") + @Mapping(source = "v27", target = "harmonicVoltageContent27Max" ,numberFormat = "#.000") + @Mapping(source = "v28", target = "harmonicVoltageContent28Max" ,numberFormat = "#.000") + @Mapping(source = "v29", target = "harmonicVoltageContent29Max" ,numberFormat = "#.000") + @Mapping(source = "v30", target = "harmonicVoltageContent30Max" ,numberFormat = "#.000") + @Mapping(source = "v31", target = "harmonicVoltageContent31Max" ,numberFormat = "#.000") + @Mapping(source = "v32", target = "harmonicVoltageContent32Max" ,numberFormat = "#.000") + @Mapping(source = "v33", target = "harmonicVoltageContent33Max" ,numberFormat = "#.000") + @Mapping(source = "v34", target = "harmonicVoltageContent34Max" ,numberFormat = "#.000") + @Mapping(source = "v35", target = "harmonicVoltageContent35Max" ,numberFormat = "#.000") + @Mapping(source = "v36", target = "harmonicVoltageContent36Max" ,numberFormat = "#.000") + @Mapping(source = "v37", target = "harmonicVoltageContent37Max" ,numberFormat = "#.000") + @Mapping(source = "v38", target = "harmonicVoltageContent38Max" ,numberFormat = "#.000") + @Mapping(source = "v39", target = "harmonicVoltageContent39Max" ,numberFormat = "#.000") + @Mapping(source = "v40", target = "harmonicVoltageContent40Max" ,numberFormat = "#.000") + @Mapping(source = "v41", target = "harmonicVoltageContent41Max" ,numberFormat = "#.000") + @Mapping(source = "v42", target = "harmonicVoltageContent42Max" ,numberFormat = "#.000") + @Mapping(source = "v43", target = "harmonicVoltageContent43Max" ,numberFormat = "#.000") + @Mapping(source = "v44", target = "harmonicVoltageContent44Max" ,numberFormat = "#.000") + @Mapping(source = "v45", target = "harmonicVoltageContent45Max" ,numberFormat = "#.000") + @Mapping(source = "v46", target = "harmonicVoltageContent46Max" ,numberFormat = "#.000") + @Mapping(source = "v47", target = "harmonicVoltageContent47Max" ,numberFormat = "#.000") + @Mapping(source = "v48", target = "harmonicVoltageContent48Max" ,numberFormat = "#.000") + @Mapping(source = "v49", target = "harmonicVoltageContent49Max" ,numberFormat = "#.000") + @Mapping(source = "v50", target = "harmonicVoltageContent50Max" ,numberFormat = "#.000") public RMpHarmonicVRateReportD dataVPOTORMpHarmonicPReportDPOMax(DataHarmRateVPO dataVPO); - @Mapping(source = "v1", target = "fundamentalVoltageMin") - @Mapping(source = "v2", target = "harmonicVoltageContent2Min") - @Mapping(source = "v3", target = "harmonicVoltageContent3Min") - @Mapping(source = "v4", target = "harmonicVoltageContent4Min") - @Mapping(source = "v5", target = "harmonicVoltageContent5Min") - @Mapping(source = "v6", target = "harmonicVoltageContent6Min") - @Mapping(source = "v7", target = "harmonicVoltageContent7Min") - @Mapping(source = "v8", target = "harmonicVoltageContent8Min") - @Mapping(source = "v9", target = "harmonicVoltageContent9Min") - @Mapping(source = "v10", target = "harmonicVoltageContent10Min") - @Mapping(source = "v11", target = "harmonicVoltageContent11Min") - @Mapping(source = "v12", target = "harmonicVoltageContent12Min") - @Mapping(source = "v13", target = "harmonicVoltageContent13Min") - @Mapping(source = "v14", target = "harmonicVoltageContent14Min") - @Mapping(source = "v15", target = "harmonicVoltageContent15Min") - @Mapping(source = "v16", target = "harmonicVoltageContent16Min") - @Mapping(source = "v17", target = "harmonicVoltageContent17Min") - @Mapping(source = "v18", target = "harmonicVoltageContent18Min") - @Mapping(source = "v19", target = "harmonicVoltageContent19Min") - @Mapping(source = "v20", target = "harmonicVoltageContent20Min") - @Mapping(source = "v21", target = "harmonicVoltageContent21Min") - @Mapping(source = "v22", target = "harmonicVoltageContent22Min") - @Mapping(source = "v23", target = "harmonicVoltageContent23Min") - @Mapping(source = "v24", target = "harmonicVoltageContent24Min") - @Mapping(source = "v25", target = "harmonicVoltageContent25Min") - @Mapping(source = "v26", target = "harmonicVoltageContent26Min") - @Mapping(source = "v27", target = "harmonicVoltageContent27Min") - @Mapping(source = "v28", target = "harmonicVoltageContent28Min") - @Mapping(source = "v29", target = "harmonicVoltageContent29Min") - @Mapping(source = "v30", target = "harmonicVoltageContent30Min") - @Mapping(source = "v31", target = "harmonicVoltageContent31Min") - @Mapping(source = "v32", target = "harmonicVoltageContent32Min") - @Mapping(source = "v33", target = "harmonicVoltageContent33Min") - @Mapping(source = "v34", target = "harmonicVoltageContent34Min") - @Mapping(source = "v35", target = "harmonicVoltageContent35Min") - @Mapping(source = "v36", target = "harmonicVoltageContent36Min") - @Mapping(source = "v37", target = "harmonicVoltageContent37Min") - @Mapping(source = "v38", target = "harmonicVoltageContent38Min") - @Mapping(source = "v39", target = "harmonicVoltageContent39Min") - @Mapping(source = "v40", target = "harmonicVoltageContent40Min") - @Mapping(source = "v41", target = "harmonicVoltageContent41Min") - @Mapping(source = "v42", target = "harmonicVoltageContent42Min") - @Mapping(source = "v43", target = "harmonicVoltageContent43Min") - @Mapping(source = "v44", target = "harmonicVoltageContent44Min") - @Mapping(source = "v45", target = "harmonicVoltageContent45Min") - @Mapping(source = "v46", target = "harmonicVoltageContent46Min") - @Mapping(source = "v47", target = "harmonicVoltageContent47Min") - @Mapping(source = "v48", target = "harmonicVoltageContent48Min") - @Mapping(source = "v49", target = "harmonicVoltageContent49Min") - @Mapping(source = "v50", target = "harmonicVoltageContent50Min") + @Mapping(source = "v1", target = "fundamentalVoltageMin",numberFormat = "#.000") + @Mapping(source = "v2", target = "harmonicVoltageContent2Min",numberFormat = "#.000") + @Mapping(source = "v3", target = "harmonicVoltageContent3Min",numberFormat = "#.000") + @Mapping(source = "v4", target = "harmonicVoltageContent4Min",numberFormat = "#.000") + @Mapping(source = "v5", target = "harmonicVoltageContent5Min",numberFormat = "#.000") + @Mapping(source = "v6", target = "harmonicVoltageContent6Min",numberFormat = "#.000") + @Mapping(source = "v7", target = "harmonicVoltageContent7Min",numberFormat = "#.000") + @Mapping(source = "v8", target = "harmonicVoltageContent8Min",numberFormat = "#.000") + @Mapping(source = "v9", target = "harmonicVoltageContent9Min",numberFormat = "#.000") + @Mapping(source = "v10", target = "harmonicVoltageContent10Min",numberFormat = "#.000") + @Mapping(source = "v11", target = "harmonicVoltageContent11Min",numberFormat = "#.000") + @Mapping(source = "v12", target = "harmonicVoltageContent12Min",numberFormat = "#.000") + @Mapping(source = "v13", target = "harmonicVoltageContent13Min",numberFormat = "#.000") + @Mapping(source = "v14", target = "harmonicVoltageContent14Min",numberFormat = "#.000") + @Mapping(source = "v15", target = "harmonicVoltageContent15Min",numberFormat = "#.000") + @Mapping(source = "v16", target = "harmonicVoltageContent16Min",numberFormat = "#.000") + @Mapping(source = "v17", target = "harmonicVoltageContent17Min",numberFormat = "#.000") + @Mapping(source = "v18", target = "harmonicVoltageContent18Min",numberFormat = "#.000") + @Mapping(source = "v19", target = "harmonicVoltageContent19Min",numberFormat = "#.000") + @Mapping(source = "v20", target = "harmonicVoltageContent20Min",numberFormat = "#.000") + @Mapping(source = "v21", target = "harmonicVoltageContent21Min",numberFormat = "#.000") + @Mapping(source = "v22", target = "harmonicVoltageContent22Min",numberFormat = "#.000") + @Mapping(source = "v23", target = "harmonicVoltageContent23Min",numberFormat = "#.000") + @Mapping(source = "v24", target = "harmonicVoltageContent24Min",numberFormat = "#.000") + @Mapping(source = "v25", target = "harmonicVoltageContent25Min",numberFormat = "#.000") + @Mapping(source = "v26", target = "harmonicVoltageContent26Min",numberFormat = "#.000") + @Mapping(source = "v27", target = "harmonicVoltageContent27Min",numberFormat = "#.000") + @Mapping(source = "v28", target = "harmonicVoltageContent28Min",numberFormat = "#.000") + @Mapping(source = "v29", target = "harmonicVoltageContent29Min",numberFormat = "#.000") + @Mapping(source = "v30", target = "harmonicVoltageContent30Min",numberFormat = "#.000") + @Mapping(source = "v31", target = "harmonicVoltageContent31Min",numberFormat = "#.000") + @Mapping(source = "v32", target = "harmonicVoltageContent32Min",numberFormat = "#.000") + @Mapping(source = "v33", target = "harmonicVoltageContent33Min",numberFormat = "#.000") + @Mapping(source = "v34", target = "harmonicVoltageContent34Min",numberFormat = "#.000") + @Mapping(source = "v35", target = "harmonicVoltageContent35Min",numberFormat = "#.000") + @Mapping(source = "v36", target = "harmonicVoltageContent36Min",numberFormat = "#.000") + @Mapping(source = "v37", target = "harmonicVoltageContent37Min",numberFormat = "#.000") + @Mapping(source = "v38", target = "harmonicVoltageContent38Min",numberFormat = "#.000") + @Mapping(source = "v39", target = "harmonicVoltageContent39Min",numberFormat = "#.000") + @Mapping(source = "v40", target = "harmonicVoltageContent40Min",numberFormat = "#.000") + @Mapping(source = "v41", target = "harmonicVoltageContent41Min",numberFormat = "#.000") + @Mapping(source = "v42", target = "harmonicVoltageContent42Min",numberFormat = "#.000") + @Mapping(source = "v43", target = "harmonicVoltageContent43Min",numberFormat = "#.000") + @Mapping(source = "v44", target = "harmonicVoltageContent44Min",numberFormat = "#.000") + @Mapping(source = "v45", target = "harmonicVoltageContent45Min",numberFormat = "#.000") + @Mapping(source = "v46", target = "harmonicVoltageContent46Min",numberFormat = "#.000") + @Mapping(source = "v47", target = "harmonicVoltageContent47Min",numberFormat = "#.000") + @Mapping(source = "v48", target = "harmonicVoltageContent48Min",numberFormat = "#.000") + @Mapping(source = "v49", target = "harmonicVoltageContent49Min",numberFormat = "#.000") + @Mapping(source = "v50", target = "harmonicVoltageContent50Min",numberFormat = "#.000") public RMpHarmonicVRateReportD dataVPOTORMpHarmonicPReportDPOMin(DataHarmRateVPO dataVPO); - @Mapping(source = "v1", target = "fundamentalVoltageAvg") - @Mapping(source = "v2", target = "harmonicVoltageContent2Avg") - @Mapping(source = "v3", target = "harmonicVoltageContent3Avg") - @Mapping(source = "v4", target = "harmonicVoltageContent4Avg") - @Mapping(source = "v5", target = "harmonicVoltageContent5Avg") - @Mapping(source = "v6", target = "harmonicVoltageContent6Avg") - @Mapping(source = "v7", target = "harmonicVoltageContent7Avg") - @Mapping(source = "v8", target = "harmonicVoltageContent8Avg") - @Mapping(source = "v9", target = "harmonicVoltageContent9Avg") - @Mapping(source = "v10", target = "harmonicVoltageContent10Avg") - @Mapping(source = "v11", target = "harmonicVoltageContent11Avg") - @Mapping(source = "v12", target = "harmonicVoltageContent12Avg") - @Mapping(source = "v13", target = "harmonicVoltageContent13Avg") - @Mapping(source = "v14", target = "harmonicVoltageContent14Avg") - @Mapping(source = "v15", target = "harmonicVoltageContent15Avg") - @Mapping(source = "v16", target = "harmonicVoltageContent16Avg") - @Mapping(source = "v17", target = "harmonicVoltageContent17Avg") - @Mapping(source = "v18", target = "harmonicVoltageContent18Avg") - @Mapping(source = "v19", target = "harmonicVoltageContent19Avg") - @Mapping(source = "v20", target = "harmonicVoltageContent20Avg") - @Mapping(source = "v21", target = "harmonicVoltageContent21Avg") - @Mapping(source = "v22", target = "harmonicVoltageContent22Avg") - @Mapping(source = "v23", target = "harmonicVoltageContent23Avg") - @Mapping(source = "v24", target = "harmonicVoltageContent24Avg") - @Mapping(source = "v25", target = "harmonicVoltageContent25Avg") - @Mapping(source = "v26", target = "harmonicVoltageContent26Avg") - @Mapping(source = "v27", target = "harmonicVoltageContent27Avg") - @Mapping(source = "v28", target = "harmonicVoltageContent28Avg") - @Mapping(source = "v29", target = "harmonicVoltageContent29Avg") - @Mapping(source = "v30", target = "harmonicVoltageContent30Avg") - @Mapping(source = "v31", target = "harmonicVoltageContent31Avg") - @Mapping(source = "v32", target = "harmonicVoltageContent32Avg") - @Mapping(source = "v33", target = "harmonicVoltageContent33Avg") - @Mapping(source = "v34", target = "harmonicVoltageContent34Avg") - @Mapping(source = "v35", target = "harmonicVoltageContent35Avg") - @Mapping(source = "v36", target = "harmonicVoltageContent36Avg") - @Mapping(source = "v37", target = "harmonicVoltageContent37Avg") - @Mapping(source = "v38", target = "harmonicVoltageContent38Avg") - @Mapping(source = "v39", target = "harmonicVoltageContent39Avg") - @Mapping(source = "v40", target = "harmonicVoltageContent40Avg") - @Mapping(source = "v41", target = "harmonicVoltageContent41Avg") - @Mapping(source = "v42", target = "harmonicVoltageContent42Avg") - @Mapping(source = "v43", target = "harmonicVoltageContent43Avg") - @Mapping(source = "v44", target = "harmonicVoltageContent44Avg") - @Mapping(source = "v45", target = "harmonicVoltageContent45Avg") - @Mapping(source = "v46", target = "harmonicVoltageContent46Avg") - @Mapping(source = "v47", target = "harmonicVoltageContent47Avg") - @Mapping(source = "v48", target = "harmonicVoltageContent48Avg") - @Mapping(source = "v49", target = "harmonicVoltageContent49Avg") - @Mapping(source = "v50", target = "harmonicVoltageContent50Avg") + @Mapping(source = "v1", target = "fundamentalVoltageAvg",numberFormat = "#.000") + @Mapping(source = "v2", target = "harmonicVoltageContent2Avg",numberFormat = "#.000") + @Mapping(source = "v3", target = "harmonicVoltageContent3Avg",numberFormat = "#.000") + @Mapping(source = "v4", target = "harmonicVoltageContent4Avg",numberFormat = "#.000") + @Mapping(source = "v5", target = "harmonicVoltageContent5Avg",numberFormat = "#.000") + @Mapping(source = "v6", target = "harmonicVoltageContent6Avg",numberFormat = "#.000") + @Mapping(source = "v7", target = "harmonicVoltageContent7Avg",numberFormat = "#.000") + @Mapping(source = "v8", target = "harmonicVoltageContent8Avg",numberFormat = "#.000") + @Mapping(source = "v9", target = "harmonicVoltageContent9Avg",numberFormat = "#.000") + @Mapping(source = "v10", target = "harmonicVoltageContent10Avg",numberFormat = "#.000") + @Mapping(source = "v11", target = "harmonicVoltageContent11Avg",numberFormat = "#.000") + @Mapping(source = "v12", target = "harmonicVoltageContent12Avg",numberFormat = "#.000") + @Mapping(source = "v13", target = "harmonicVoltageContent13Avg",numberFormat = "#.000") + @Mapping(source = "v14", target = "harmonicVoltageContent14Avg",numberFormat = "#.000") + @Mapping(source = "v15", target = "harmonicVoltageContent15Avg",numberFormat = "#.000") + @Mapping(source = "v16", target = "harmonicVoltageContent16Avg",numberFormat = "#.000") + @Mapping(source = "v17", target = "harmonicVoltageContent17Avg",numberFormat = "#.000") + @Mapping(source = "v18", target = "harmonicVoltageContent18Avg",numberFormat = "#.000") + @Mapping(source = "v19", target = "harmonicVoltageContent19Avg",numberFormat = "#.000") + @Mapping(source = "v20", target = "harmonicVoltageContent20Avg",numberFormat = "#.000") + @Mapping(source = "v21", target = "harmonicVoltageContent21Avg",numberFormat = "#.000") + @Mapping(source = "v22", target = "harmonicVoltageContent22Avg",numberFormat = "#.000") + @Mapping(source = "v23", target = "harmonicVoltageContent23Avg",numberFormat = "#.000") + @Mapping(source = "v24", target = "harmonicVoltageContent24Avg",numberFormat = "#.000") + @Mapping(source = "v25", target = "harmonicVoltageContent25Avg",numberFormat = "#.000") + @Mapping(source = "v26", target = "harmonicVoltageContent26Avg",numberFormat = "#.000") + @Mapping(source = "v27", target = "harmonicVoltageContent27Avg",numberFormat = "#.000") + @Mapping(source = "v28", target = "harmonicVoltageContent28Avg",numberFormat = "#.000") + @Mapping(source = "v29", target = "harmonicVoltageContent29Avg",numberFormat = "#.000") + @Mapping(source = "v30", target = "harmonicVoltageContent30Avg",numberFormat = "#.000") + @Mapping(source = "v31", target = "harmonicVoltageContent31Avg",numberFormat = "#.000") + @Mapping(source = "v32", target = "harmonicVoltageContent32Avg",numberFormat = "#.000") + @Mapping(source = "v33", target = "harmonicVoltageContent33Avg",numberFormat = "#.000") + @Mapping(source = "v34", target = "harmonicVoltageContent34Avg",numberFormat = "#.000") + @Mapping(source = "v35", target = "harmonicVoltageContent35Avg",numberFormat = "#.000") + @Mapping(source = "v36", target = "harmonicVoltageContent36Avg",numberFormat = "#.000") + @Mapping(source = "v37", target = "harmonicVoltageContent37Avg",numberFormat = "#.000") + @Mapping(source = "v38", target = "harmonicVoltageContent38Avg",numberFormat = "#.000") + @Mapping(source = "v39", target = "harmonicVoltageContent39Avg",numberFormat = "#.000") + @Mapping(source = "v40", target = "harmonicVoltageContent40Avg",numberFormat = "#.000") + @Mapping(source = "v41", target = "harmonicVoltageContent41Avg",numberFormat = "#.000") + @Mapping(source = "v42", target = "harmonicVoltageContent42Avg",numberFormat = "#.000") + @Mapping(source = "v43", target = "harmonicVoltageContent43Avg",numberFormat = "#.000") + @Mapping(source = "v44", target = "harmonicVoltageContent44Avg",numberFormat = "#.000") + @Mapping(source = "v45", target = "harmonicVoltageContent45Avg",numberFormat = "#.000") + @Mapping(source = "v46", target = "harmonicVoltageContent46Avg",numberFormat = "#.000") + @Mapping(source = "v47", target = "harmonicVoltageContent47Avg",numberFormat = "#.000") + @Mapping(source = "v48", target = "harmonicVoltageContent48Avg",numberFormat = "#.000") + @Mapping(source = "v49", target = "harmonicVoltageContent49Avg",numberFormat = "#.000") + @Mapping(source = "v50", target = "harmonicVoltageContent50Avg",numberFormat = "#.000") public RMpHarmonicVRateReportD dataVPOTORMpHarmonicPReportDPOAvg(DataHarmRateVPO dataVPO); - @Mapping(source = "v1", target = "fundamentalVoltage95") - @Mapping(source = "v2", target = "harmonicVoltageContent295") - @Mapping(source = "v3", target = "harmonicVoltageContent395") - @Mapping(source = "v4", target = "harmonicVoltageContent495") - @Mapping(source = "v5", target = "harmonicVoltageContent595") - @Mapping(source = "v6", target = "harmonicVoltageContent695") - @Mapping(source = "v7", target = "harmonicVoltageContent795") - @Mapping(source = "v8", target = "harmonicVoltageContent895") - @Mapping(source = "v9", target = "harmonicVoltageContent995") - @Mapping(source = "v10", target = "harmonicVoltageContent1095") - @Mapping(source = "v11", target = "harmonicVoltageContent1195") - @Mapping(source = "v12", target = "harmonicVoltageContent1295") - @Mapping(source = "v13", target = "harmonicVoltageContent1395") - @Mapping(source = "v14", target = "harmonicVoltageContent1495") - @Mapping(source = "v15", target = "harmonicVoltageContent1595") - @Mapping(source = "v16", target = "harmonicVoltageContent1695") - @Mapping(source = "v17", target = "harmonicVoltageContent1795") - @Mapping(source = "v18", target = "harmonicVoltageContent1895") - @Mapping(source = "v19", target = "harmonicVoltageContent1995") - @Mapping(source = "v20", target = "harmonicVoltageContent2095") - @Mapping(source = "v21", target = "harmonicVoltageContent2195") - @Mapping(source = "v22", target = "harmonicVoltageContent2295") - @Mapping(source = "v23", target = "harmonicVoltageContent2395") - @Mapping(source = "v24", target = "harmonicVoltageContent2495") - @Mapping(source = "v25", target = "harmonicVoltageContent2595") - @Mapping(source = "v26", target = "harmonicVoltageContent2695") - @Mapping(source = "v27", target = "harmonicVoltageContent2795") - @Mapping(source = "v28", target = "harmonicVoltageContent2895") - @Mapping(source = "v29", target = "harmonicVoltageContent2995") - @Mapping(source = "v30", target = "harmonicVoltageContent3095") - @Mapping(source = "v31", target = "harmonicVoltageContent3195") - @Mapping(source = "v32", target = "harmonicVoltageContent3295") - @Mapping(source = "v33", target = "harmonicVoltageContent3395") - @Mapping(source = "v34", target = "harmonicVoltageContent3495") - @Mapping(source = "v35", target = "harmonicVoltageContent3595") - @Mapping(source = "v36", target = "harmonicVoltageContent3695") - @Mapping(source = "v37", target = "harmonicVoltageContent3795") - @Mapping(source = "v38", target = "harmonicVoltageContent3895") - @Mapping(source = "v39", target = "harmonicVoltageContent3995") - @Mapping(source = "v40", target = "harmonicVoltageContent4095") - @Mapping(source = "v41", target = "harmonicVoltageContent4195") - @Mapping(source = "v42", target = "harmonicVoltageContent4295") - @Mapping(source = "v43", target = "harmonicVoltageContent4395") - @Mapping(source = "v44", target = "harmonicVoltageContent4495") - @Mapping(source = "v45", target = "harmonicVoltageContent4595") - @Mapping(source = "v46", target = "harmonicVoltageContent4695") - @Mapping(source = "v47", target = "harmonicVoltageContent4795") - @Mapping(source = "v48", target = "harmonicVoltageContent4895") - @Mapping(source = "v49", target = "harmonicVoltageContent4995") - @Mapping(source = "v50", target = "harmonicVoltageContent5095") + @Mapping(source = "v1", target = "fundamentalVoltage95",numberFormat = "#.000") + @Mapping(source = "v2", target = "harmonicVoltageContent295",numberFormat = "#.000") + @Mapping(source = "v3", target = "harmonicVoltageContent395",numberFormat = "#.000") + @Mapping(source = "v4", target = "harmonicVoltageContent495",numberFormat = "#.000") + @Mapping(source = "v5", target = "harmonicVoltageContent595",numberFormat = "#.000") + @Mapping(source = "v6", target = "harmonicVoltageContent695",numberFormat = "#.000") + @Mapping(source = "v7", target = "harmonicVoltageContent795",numberFormat = "#.000") + @Mapping(source = "v8", target = "harmonicVoltageContent895",numberFormat = "#.000") + @Mapping(source = "v9", target = "harmonicVoltageContent995",numberFormat = "#.000") + @Mapping(source = "v10", target = "harmonicVoltageContent1095",numberFormat = "#.000") + @Mapping(source = "v11", target = "harmonicVoltageContent1195",numberFormat = "#.000") + @Mapping(source = "v12", target = "harmonicVoltageContent1295",numberFormat = "#.000") + @Mapping(source = "v13", target = "harmonicVoltageContent1395",numberFormat = "#.000") + @Mapping(source = "v14", target = "harmonicVoltageContent1495",numberFormat = "#.000") + @Mapping(source = "v15", target = "harmonicVoltageContent1595",numberFormat = "#.000") + @Mapping(source = "v16", target = "harmonicVoltageContent1695",numberFormat = "#.000") + @Mapping(source = "v17", target = "harmonicVoltageContent1795",numberFormat = "#.000") + @Mapping(source = "v18", target = "harmonicVoltageContent1895",numberFormat = "#.000") + @Mapping(source = "v19", target = "harmonicVoltageContent1995",numberFormat = "#.000") + @Mapping(source = "v20", target = "harmonicVoltageContent2095",numberFormat = "#.000") + @Mapping(source = "v21", target = "harmonicVoltageContent2195",numberFormat = "#.000") + @Mapping(source = "v22", target = "harmonicVoltageContent2295",numberFormat = "#.000") + @Mapping(source = "v23", target = "harmonicVoltageContent2395",numberFormat = "#.000") + @Mapping(source = "v24", target = "harmonicVoltageContent2495",numberFormat = "#.000") + @Mapping(source = "v25", target = "harmonicVoltageContent2595",numberFormat = "#.000") + @Mapping(source = "v26", target = "harmonicVoltageContent2695",numberFormat = "#.000") + @Mapping(source = "v27", target = "harmonicVoltageContent2795",numberFormat = "#.000") + @Mapping(source = "v28", target = "harmonicVoltageContent2895",numberFormat = "#.000") + @Mapping(source = "v29", target = "harmonicVoltageContent2995",numberFormat = "#.000") + @Mapping(source = "v30", target = "harmonicVoltageContent3095",numberFormat = "#.000") + @Mapping(source = "v31", target = "harmonicVoltageContent3195",numberFormat = "#.000") + @Mapping(source = "v32", target = "harmonicVoltageContent3295",numberFormat = "#.000") + @Mapping(source = "v33", target = "harmonicVoltageContent3395",numberFormat = "#.000") + @Mapping(source = "v34", target = "harmonicVoltageContent3495",numberFormat = "#.000") + @Mapping(source = "v35", target = "harmonicVoltageContent3595",numberFormat = "#.000") + @Mapping(source = "v36", target = "harmonicVoltageContent3695",numberFormat = "#.000") + @Mapping(source = "v37", target = "harmonicVoltageContent3795",numberFormat = "#.000") + @Mapping(source = "v38", target = "harmonicVoltageContent3895",numberFormat = "#.000") + @Mapping(source = "v39", target = "harmonicVoltageContent3995",numberFormat = "#.000") + @Mapping(source = "v40", target = "harmonicVoltageContent4095",numberFormat = "#.000") + @Mapping(source = "v41", target = "harmonicVoltageContent4195",numberFormat = "#.000") + @Mapping(source = "v42", target = "harmonicVoltageContent4295",numberFormat = "#.000") + @Mapping(source = "v43", target = "harmonicVoltageContent4395",numberFormat = "#.000") + @Mapping(source = "v44", target = "harmonicVoltageContent4495",numberFormat = "#.000") + @Mapping(source = "v45", target = "harmonicVoltageContent4595",numberFormat = "#.000") + @Mapping(source = "v46", target = "harmonicVoltageContent4695",numberFormat = "#.000") + @Mapping(source = "v47", target = "harmonicVoltageContent4795",numberFormat = "#.000") + @Mapping(source = "v48", target = "harmonicVoltageContent4895",numberFormat = "#.000") + @Mapping(source = "v49", target = "harmonicVoltageContent4995",numberFormat = "#.000") + @Mapping(source = "v50", target = "harmonicVoltageContent5095",numberFormat = "#.000") public RMpHarmonicVRateReportD dataVPOTORMpHarmonicPReportDPO95(DataHarmRateVPO dataVPO); @@ -1557,4 +1557,74 @@ public interface InfluxdbPOConverter { @Mapping(source = "cp952.pf", target = "spPowerFactor95") @Mapping(source = "cp952.df", target = "spFundamentalPowerFactor95") public RMpMeasurePhaseReportD RMpMeasurePhaseReportDPOConverterCp95(DataVPO cp95, DataIPO cp951, DataHarmPowerPPO cp952, DataHarmPowerSPO cp953, DataHarmPowerQPO cp954); + + + /*RMpMeasureReportDPO*/ + @Mapping(source = "max.freq", target = "frequencyMax") + @Mapping(source = "max.freqDev", target = "frequencyDeviationMax") + @Mapping(source = "max.VPos", target = "positiveSequenceVoltageMax") + @Mapping(source = "max.VNeg", target = "negativeSequenceVoltageMax") + @Mapping(source = "max.VZero", target = "zeroSequenceVoltageMax") + @Mapping(source = "max.VUnbalance", target = "negativeSequenceVoltageUnbalanceMax") + @Mapping(source = "max1.IPos", target = "positiveSequenceCurrentMax") + @Mapping(source = "max1.INeg", target = "negativeSequenceCurrentMax") + @Mapping(source = "max1.IZero", target = "zeroSequenceCurrentMax") + @Mapping(source = "max1.IUnbalance", target = "negativeSequenceCurrentUnbalanceMax") + @Mapping(source = "max2.p", target = "totalActivePowerMax") + @Mapping(source = "max2.pf", target = "tpPowerFactorMax") + @Mapping(source = "max2.df", target = "fundamentalPowerFactorMax") + @Mapping(source = "max4.q", target = "totalReactivePowerMax") + @Mapping(source = "max3.s", target = "totalApparentPowerMax") + public RMpMeasureReportD RMpMeasureReportDPOConverterMax(DataVPO max, DataIPO max1, DataHarmPowerPPO max2, DataHarmPowerSPO max3, DataHarmPowerQPO max4); + + @Mapping(source = "min.freq", target = "frequencyMin") + @Mapping(source = "min.freqDev", target = "frequencyDeviationMin") + @Mapping(source = "min.VPos", target = "positiveSequenceVoltageMin") + @Mapping(source = "min.VNeg", target = "negativeSequenceVoltageMin") + @Mapping(source = "min.VZero", target = "zeroSequenceVoltageMin") + @Mapping(source = "min.VUnbalance", target = "negativeSequenceVoltageUnbalanceMin") + @Mapping(source = "min1.IPos", target = "positiveSequenceCurrentMin") + @Mapping(source = "min1.INeg", target = "negativeSequenceCurrentMin") + @Mapping(source = "min1.IZero", target = "zeroSequenceCurrentMin") + @Mapping(source = "min1.IUnbalance", target = "negativeSequenceCurrentUnbalanceMin") + @Mapping(source = "min2.p", target = "totalActivePowerMin") + @Mapping(source = "min2.pf", target = "tpPowerFactorMin") + @Mapping(source = "min2.df", target = "fundamentalPowerFactorMin") + @Mapping(source = "min4.q", target = "totalReactivePowerMin") + @Mapping(source = "min3.s", target = "totalApparentPowerMin") + public RMpMeasureReportD RMpMeasureReportDPOConverterMin(DataVPO min, DataIPO min1, DataHarmPowerPPO min2, DataHarmPowerSPO min3, DataHarmPowerQPO min4); + + @Mapping(source = "avg.freq", target = "frequencyAvg") + @Mapping(source = "avg.freqDev", target = "frequencyDeviationAvg") + @Mapping(source = "avg.VPos", target = "positiveSequenceVoltageAvg") + @Mapping(source = "avg.VNeg", target = "negativeSequenceVoltageAvg") + @Mapping(source = "avg.VZero", target = "zeroSequenceVoltageAvg") + @Mapping(source = "avg.VUnbalance", target = "negativeSequenceVoltageUnbalanceAvg") + @Mapping(source = "avg1.IPos", target = "positiveSequenceCurrentAvg") + @Mapping(source = "avg1.INeg", target = "negativeSequenceCurrentAvg") + @Mapping(source = "avg1.IZero", target = "zeroSequenceCurrentAvg") + @Mapping(source = "avg1.IUnbalance", target = "negativeSequenceCurrentUnbalanceAvg") + @Mapping(source = "avg2.p", target = "totalActivePowerAvg") + @Mapping(source = "avg2.pf", target = "tpPowerFactorAvg") + @Mapping(source = "avg2.df", target = "fundamentalPowerFactorAvg") + @Mapping(source = "avg4.q", target = "totalReactivePowerAvg") + @Mapping(source = "avg3.s", target = "totalApparentPowerAvg") + public RMpMeasureReportD RMpMeasureReportDPOConverterAVg(DataVPO avg, DataIPO avg1, DataHarmPowerPPO avg2, DataHarmPowerSPO avg3, DataHarmPowerQPO avg4); + + @Mapping(source = "cp95.freq", target = "frequency95") + @Mapping(source = "cp95.freqDev", target = "frequencyDeviation95") + @Mapping(source = "cp95.VPos", target = "positiveSequenceVoltage95") + @Mapping(source = "cp95.VNeg", target = "negativeSequenceVoltage95") + @Mapping(source = "cp95.VZero", target = "zeroSequenceVoltage95") + @Mapping(source = "cp95.VUnbalance", target = "negativeSequenceVoltageUnbalance95") + @Mapping(source = "cp951.IPos", target = "positiveSequenceCurrent95") + @Mapping(source = "cp951.INeg", target = "negativeSequenceCurrent95") + @Mapping(source = "cp951.IZero", target = "zeroSequenceCurrent95") + @Mapping(source = "cp951.IUnbalance", target = "negativeSequenceCurrentUnbalance95") + @Mapping(source = "cp952.p", target = "totalActivePower95") + @Mapping(source = "cp952.pf", target = "tpPowerFactor95") + @Mapping(source = "cp952.df", target = "fundamentalPowerFactor95") + @Mapping(source = "cp954.q", target = "totalReactivePower95") + @Mapping(source = "cp953.s", target = "totalApparentPower95") + public RMpMeasureReportD RMpMeasureReportDPOConverterCp95(DataVPO cp95, DataIPO cp951, DataHarmPowerPPO cp952, DataHarmPowerSPO cp953, DataHarmPowerQPO cp954); } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/Param.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/Param.java deleted file mode 100644 index e88c680eb..000000000 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/Param.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.njcn.prepare.harmonic.constant; - - -/** - * @author qijian - */ -public interface Param { - - /** - * 稳态/固态 - */ - Integer SOLID_STATE = 0; - Integer STEADY_STATE = 1; - -} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/PqsPrepareExceptionEnum.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/PqsPrepareExceptionEnum.java new file mode 100644 index 000000000..e0b15eee8 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/constant/PqsPrepareExceptionEnum.java @@ -0,0 +1,29 @@ +package com.njcn.prepare.harmonic.constant; + +import lombok.Getter; + +/** + * 异常处理类 + * @author qijian + * @version 1.0.0 + * @date 2022年11月11日 09:56 + */ +@Getter +public enum PqsPrepareExceptionEnum { + + /** + * 过程监督异常响应码的范围: + * A00550 ~ A00649 + */ + REDIS_NULL_EXCEPTION("A0001","redis缓存异常,重新加载redis"), + ; + + private final String code; + + private final String message; + + PqsPrepareExceptionEnum(String code, String message) { + this.code = code; + this.message = message; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/AreaCountController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/AreaCountController.java new file mode 100644 index 000000000..d18789724 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/AreaCountController.java @@ -0,0 +1,76 @@ +package com.njcn.prepare.harmonic.controller.area; + +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.prepare.harmonic.pojo.param.PrimaryGridParam; +import com.njcn.prepare.harmonic.service.mysql.area.AreaCountService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +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.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/13 11:14【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Api(tags = "区域统计(r_stat_org_d表数据需要先生成r_stat_abnormal_d,r_mp_integrity_d表)") +@RestController +@RequestMapping("AreaCount") +@RequiredArgsConstructor +public class AreaCountController extends BaseController { + + private @Autowired + DeptFeignClient deptFeignClient; + + private @Autowired + AreaCountService areaCountService; + + @ApiOperation("区域统计有效接入监测点个数计算(r_stat_org_d表数据)") + @ApiImplicitParam(value = "primaryGridParam",name = "primaryGridParam",required = true) + @PostMapping("areaCountHanlder") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + public HttpResult areaCountHanlder(@RequestBody PrimaryGridParam primaryGridParam ){ + log.info(LocalDateTime.now()+"areaCountHanlder开始执行"); + String methodDescribe = getMethodDescribe("areaCountHanlder"); + Boolean result = true; + List orgIdList = new ArrayList<> (); + if(CollectionUtils.isEmpty (primaryGridParam.getOrgIdList ())){ + /*todo 不知道是否需要补招*/ + List dept = deptFeignClient.allDeptList().getData(); + orgIdList = dept.stream ( ).map (PvTerminalTreeVO::getId).collect (Collectors.toList ( )); + }else{ + orgIdList = primaryGridParam.getOrgIdList (); + } + primaryGridParam.setOrgIdList (orgIdList); + + areaCountService.areaCountHanlder (primaryGridParam); + if (result){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); + } + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/PrimaryGridDataController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/PrimaryGridDataController.java new file mode 100644 index 000000000..6f6befb15 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/PrimaryGridDataController.java @@ -0,0 +1,114 @@ +package com.njcn.prepare.harmonic.controller.area; + +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.device.pms.api.PmsTerminalClient; +import com.njcn.device.pms.pojo.po.PmsTerminal; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridDataIntegrityParam; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam; +import com.njcn.prepare.harmonic.service.mysql.area.PrimaryGridDataService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +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.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * Description:r_operating_index_d + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/24 14:31【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Api(tags = "主网单位数据统计(r_operating_index_d表数据需要先生成r_stat_abnormal_d,r_mp_integrity_d表)") +@RestController +@RequestMapping("primaryGridData") +@RequiredArgsConstructor +public class PrimaryGridDataController extends BaseController { + + private @Autowired + PrimaryGridDataService primaryGridDataService; + + private @Autowired + DeptFeignClient deptFeignClient; + + private @Autowired + PmsTerminalClient pmsTerminalClient; + + + @ApiOperation("主网单位数据同步(r_operating_index_d表数据)") + @ApiImplicitParam(value = "primaryGridParam",name = "primaryGridParam",required = true) + @PostMapping("primaryGridDataHanlder") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + public HttpResult primaryGridDataHanlder(@RequestBody PrimaryGridParam primaryGridParam ){ + log.info(LocalDateTime.now()+"primaryGridDataHanlder开始执行"); + String methodDescribe = getMethodDescribe("primaryGridDataHanlder"); + Boolean result = true; + List orgIdList = new ArrayList<> (); + if(CollectionUtils.isEmpty (primaryGridParam.getOrgIdList ())){ + /*todo 不知道是否需要补招*/ + List dept = deptFeignClient.allDeptList().getData(); + orgIdList = dept.stream ( ).map (PvTerminalTreeVO::getId).collect (Collectors.toList ( )); + }else{ + orgIdList = primaryGridParam.getOrgIdList (); + } + primaryGridParam.setOrgIdList (orgIdList); + + primaryGridDataService.primaryGridDataHanlder (primaryGridParam); + if (result){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); + } + } + + @ApiOperation("主网终端数据完整率月统计") + @ApiImplicitParam(value = "primaryGridDataIntegrityParam",name = "primaryGridDataIntegrityParam",required = true) + @PostMapping("primaryGridDataIntegrityHanlder") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + public HttpResult primaryGridDataIntegrityHanlder(@RequestBody PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam ){ + log.info(LocalDateTime.now()+"primaryGridDataIntegrityHanlder开始执行"); + String methodDescribe = getMethodDescribe("primaryGridDataIntegrityHanlder"); + Boolean result = true; + List orgIdList = new ArrayList<> (); + if(CollectionUtils.isEmpty (primaryGridDataIntegrityParam.getDeviceId ())){ + /*todo 不知道是否需要补招*/ + List data = pmsTerminalClient.getTerminalSelectList ( ).getData ( ); + orgIdList = data.stream ().map (PmsTerminal::getId).collect(Collectors.toList()); + }else{ + orgIdList = primaryGridDataIntegrityParam.getDeviceId (); + } + primaryGridDataIntegrityParam.setDeviceId (orgIdList); + + primaryGridDataService.primaryGridDataIntegrityHanlder (primaryGridDataIntegrityParam); + if (result){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); + } + } + + + + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/RStatAbnormalDDataHanlderController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/RStatAbnormalDDataHanlderController.java new file mode 100644 index 000000000..88cd3cf18 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/area/RStatAbnormalDDataHanlderController.java @@ -0,0 +1,68 @@ +package com.njcn.prepare.harmonic.controller.area; + +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.prepare.harmonic.pojo.param.PrimaryGridParam; +import com.njcn.prepare.harmonic.service.mysql.area.RStatAbnormalDPOService; +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.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/28 19:27【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Api(tags = "主网单位数据统计(r_stat_abnormal_d表数据)") +@RestController +@RequestMapping("AbnormalData") +@RequiredArgsConstructor +public class RStatAbnormalDDataHanlderController extends BaseController { + + private @Autowired + RStatAbnormalDPOService rStatAbnormalDPOService; + + @ApiOperation("主网单位数据同步(r_stat_abnormal_d表数据)") + @ApiImplicitParam(value = "primaryGridParam",name = "primaryGridParam",required = true) + @PostMapping("(rStatAbnormalDDataHanlder") + @OperateInfo(info = LogEnum.BUSINESS_MEDIUM) + public HttpResult rStatAbnormalDDataHanlder(@RequestBody PrimaryGridParam primaryGridParam ){ + log.info(LocalDateTime.now()+"rStatAbnormalDDataHanlder开始执行"); + String methodDescribe = getMethodDescribe("rStatAbnormalDDataHanlder"); + Boolean result = true; + List orgIdList = new ArrayList<> (); + if(CollectionUtils.isEmpty (primaryGridParam.getOrgIdList ())){ + /*todo 不知道是否需要补招*/ + //orgIdList = lineFeignClient.getLineList ( ).getData ( ); + }else{ + orgIdList = primaryGridParam.getOrgIdList (); + } + primaryGridParam.setOrgIdList (orgIdList); + rStatAbnormalDPOService.rStatAbnormalDDataHanlder(primaryGridParam); + if (result){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe); + } + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/AlarmDetailController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/AlarmDetailController.java new file mode 100644 index 000000000..3f4aea155 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/AlarmDetailController.java @@ -0,0 +1,51 @@ +package com.njcn.prepare.harmonic.controller.line; + +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.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.AlarmDetailService; +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.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author qijian + * @date 2022/12/28 + * 监测点指标告警明细 + */ +@Validated +@Slf4j +@RestController +@RequestMapping("/alarmDetail") +@Api(tags = "监测点指标告警明细") +@AllArgsConstructor +public class AlarmDetailController extends BaseController { + + private final AlarmDetailService alarmDetailService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/alarmDetailAlarm") + @ApiOperation("监测点指标告警日统计") + @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) + public HttpResult alarmDetailAlarm(@RequestBody @Validated LineParam lineParam) { + String methodDescribe = getMethodDescribe("alarmDetailAlarm"); + boolean res = alarmDetailService.alarmDetailAlarm(lineParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DataExceptionController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DataExceptionController.java new file mode 100644 index 000000000..5fedfebec --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DataExceptionController.java @@ -0,0 +1,53 @@ +package com.njcn.prepare.harmonic.controller.line; + +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.device.pq.enums.DeviceResponseEnum; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.DataExceptionService; +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.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author qijian + * @date 2022/10/26 + * 数据是否异常 + */ +@Validated +@Slf4j +@RestController +@RequestMapping("/dataException") +@Api(tags = "数据是否异常") +@AllArgsConstructor +public class DataExceptionController extends BaseController { + + private final DataExceptionService dataExceptionService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/lineDataException") + @ApiOperation("监测点数据是否异常") + @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) + public HttpResult lineDataException(@RequestBody @Validated LineParam lineParam) { + String methodDescribe = getMethodDescribe("lineDataException"); + DeviceResponseEnum deviceResponseEnum = dataExceptionService.lineDataException(lineParam); + if(deviceResponseEnum != null){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deviceResponseEnum.getMessage(), methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "不存在数据异常!", methodDescribe); + } + + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DataIntegrityRateController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DataIntegrityRateController.java new file mode 100644 index 000000000..531d09be0 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DataIntegrityRateController.java @@ -0,0 +1,52 @@ +package com.njcn.prepare.harmonic.controller.line; + +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.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.DataIntegrityRateService; +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.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author qijian + * @date 2022/10/26 + * 数据完整率算法 + */ +@Validated +@Slf4j +@RestController +@RequestMapping("/dataIntegrityRate") +@Api(tags = "数据完整率算法") +@AllArgsConstructor +public class DataIntegrityRateController extends BaseController { + + private final DataIntegrityRateService dataIntegrityRateService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/lineDataIntegrityRate") + @ApiOperation("监测点日数据完整率") + @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) + public HttpResult lineDataIntegrityRate(@RequestBody @Validated LineParam lineParam) { + String methodDescribe = getMethodDescribe("lineDataIntegrityRate"); + boolean res = dataIntegrityRateService.lineDataIntegrityRate(lineParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DistortionRateController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DistortionRateController.java index 0c8dd1963..3a504b52f 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DistortionRateController.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/DistortionRateController.java @@ -5,6 +5,7 @@ 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.device.pq.api.LineFeignClient; import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.service.mysql.line.DistortionRateService; import com.njcn.web.controller.BaseController; @@ -13,12 +14,17 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.util.CollectionUtils; 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.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + /** * @author xiaoyao * @version 1.0.0 @@ -32,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController; public class DistortionRateController extends BaseController { private final DistortionRateService distortionRateService; + private final LineFeignClient lineFeignClient; @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/distortionRate") @@ -42,4 +49,25 @@ public class DistortionRateController extends BaseController { distortionRateService.distortionRate(lineParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/distortionRateBySource") + @ApiOperation("谐波畸变率排名") + @ApiImplicitParam(name = "lineParam", value = "参数", required = true) + public HttpResult distortionRateBySource(@RequestBody @Validated LineParam lineParam){ + log.info(LocalDateTime.now()+"distortionRateBySource开始执行"); + String methodDescribe = getMethodDescribe("distortionRateBySource"); + List indexLists = new ArrayList<> (); + if(CollectionUtils.isEmpty (lineParam.getLineIds ())){ + indexLists = lineFeignClient.getLineList ( ).getData ( ); + }else{ + indexLists = lineParam.getLineIds (); + } + lineParam.setLineIds (indexLists); + + distortionRateService.distortionRateBySource (lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/PqsEventdetailController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/PqsEventdetailController.java new file mode 100644 index 000000000..2858ea90f --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/PqsEventdetailController.java @@ -0,0 +1,64 @@ +package com.njcn.prepare.harmonic.controller.line; + +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.device.pq.api.LineFeignClient; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.PqsEventdetailHandlerService; +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.util.CollectionUtils; +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.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 13:47【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Api(tags = "监测点暂态指标超标明细") +@RestController +@RequestMapping("/eventdetail") +@RequiredArgsConstructor +public class PqsEventdetailController extends BaseController { + + private final LineFeignClient lineFeignClient; + + private final PqsEventdetailHandlerService pqsEventdetailHandlerService; + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/eventdetailHandler") + @ApiOperation("监测点暂态指标处理") + @ApiImplicitParam(name = "lineParam", value = "参数", required = true) + public HttpResult eventdetailHandler(@RequestBody @Validated LineParam lineParam){ + log.info(LocalDateTime.now()+"eventdetailHandler始执行"); + String methodDescribe = getMethodDescribe("eventdetailHandler"); + List indexLists = new ArrayList<> (); + if(CollectionUtils.isEmpty (lineParam.getLineIds ())){ + indexLists = lineFeignClient.getLineList ( ).getData ( ); + }else{ + indexLists = lineParam.getLineIds (); + } + lineParam.setLineIds (indexLists); + + pqsEventdetailHandlerService.eventdetailHandler (lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/SteadyIndexExceedController.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/SteadyIndexExceedController.java new file mode 100644 index 000000000..c3855a219 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/controller/line/SteadyIndexExceedController.java @@ -0,0 +1,96 @@ +package com.njcn.prepare.harmonic.controller.line; + +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.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.SteadyIndexExceedService; +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.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author qijian + * @date 2022/12/02 + * 监测点稳态指标超标明细 + */ +@Validated +@Slf4j +@RestController +@RequestMapping("/steadyIndexExceed") +@Api(tags = "监测点稳态指标超标明细") +@AllArgsConstructor +public class SteadyIndexExceedController extends BaseController { + + private final SteadyIndexExceedService steadyIndexExceedService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/isValueExceedID") + @ApiOperation("日统计I、II、III类监测点是否超标限值") + @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) + public HttpResult isValueExceedID(@RequestBody @Validated LineParam lineParam) { + String methodDescribe = getMethodDescribe("isValueExceedID"); + boolean res = steadyIndexExceedService.isValueExceedID(lineParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/isValueExceedIID") + @ApiOperation("日统计I、II类监测点是否超标限值") + @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) + public HttpResult isValueExceedIID(@RequestBody @Validated LineParam lineParam) { + String methodDescribe = getMethodDescribe("isValueExceedIID"); + boolean res = steadyIndexExceedService.isValueExceedIID(lineParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/isValueExceedIM") + @ApiOperation("月统计I、II、III类监测点是否超标限值") + @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) + public HttpResult isValueExceedIM(@RequestBody @Validated LineParam lineParam) { + String methodDescribe = getMethodDescribe("isValueExceedIM"); + boolean res = steadyIndexExceedService.isValueExceedIM(lineParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/isValueExceedIIM") + @ApiOperation("月统计I、II类监测点是否超标限值") + @ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true) + public HttpResult isValueExceedIIM(@RequestBody @Validated LineParam lineParam) { + String methodDescribe = getMethodDescribe("isValueExceedIIM"); + boolean res = steadyIndexExceedService.isValueExceedIIM(lineParam); + if(res){ + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + }else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); + } + + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PmsMonitorPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PmsMonitorPOMapper.java new file mode 100644 index 000000000..3f43155da --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PmsMonitorPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.PmsMonitorPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 10:10【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface PmsMonitorPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PmsTerminalPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PmsTerminalPOMapper.java new file mode 100644 index 000000000..173f6cab2 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PmsTerminalPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.PmsTerminalPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 10:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface PmsTerminalPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PqsEventdetailMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PqsEventdetailMapper.java new file mode 100644 index 000000000..921bbdac5 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/PqsEventdetailMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.prepare.harmonic.pojo.oracle.PqsEventdetailPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 13:46【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface PqsEventdetailMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpDevEvaluateDetailPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpDevEvaluateDetailPOMapper.java new file mode 100644 index 000000000..4b3d10a11 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpDevEvaluateDetailPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/1 9:18【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RMpDevEvaluateDetailPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpIntegrityDPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpIntegrityDPOMapper.java new file mode 100644 index 000000000..f5944899c --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpIntegrityDPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RMpIntegrityDPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 14:33【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RMpIntegrityDPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpTargetWarnDMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpTargetWarnDMapper.java new file mode 100644 index 000000000..d6a682846 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RMpTargetWarnDMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/15 11:00【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RMpTargetWarnDMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexDPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexDPOMapper.java new file mode 100644 index 000000000..41c297b0d --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexDPOMapper.java @@ -0,0 +1,19 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.ROperatingIndexDPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 10:01【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface ROperatingIndexDPOMapper extends MppBaseMapper { + +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexMPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexMPOMapper.java new file mode 100644 index 000000000..b38ec550f --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexMPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.ROperatingIndexMPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 13:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface ROperatingIndexMPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexQPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexQPOMapper.java new file mode 100644 index 000000000..2460fa015 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexQPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.ROperatingIndexQPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 15:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface ROperatingIndexQPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexYPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexYPOMapper.java new file mode 100644 index 000000000..7d01d512d --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/ROperatingIndexYPOMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.ROperatingIndexYPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 15:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface ROperatingIndexYPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatAbnormalDPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatAbnormalDPOMapper.java new file mode 100644 index 000000000..d706167b2 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatAbnormalDPOMapper.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RStatAbnormalDPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/28 19:31【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RStatAbnormalDPOMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgDMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgDMapper.java new file mode 100644 index 000000000..be60d3c48 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgDMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RStatOrgDPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/13 15:39【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RStatOrgDMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgMMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgMMapper.java new file mode 100644 index 000000000..133e03ec3 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/RStatOrgMMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.area; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RStatOrgMPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/14 16:17【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RStatOrgMMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/PqsEventdetailMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/PqsEventdetailMapper.xml new file mode 100644 index 000000000..2567b4ef5 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/PqsEventdetailMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EVENTDETAIL_INDEX, LINEID, TIMEID, MS, "DESCRIBE", WAVETYPE, PERSISTTIME, EVENTVALUE, + EVENTREASON, EVENTTYPE, EVENTASS_INDEX, DQTIME, DEALTIME, DEALFLAG, NUM, FILEFLAG, + FIRSTTIME, FIRSTTYPE, FIRSTMS, WAVENAME, ENERGY, SEVERITY, SAGSOURCE + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpDevEvaluateDetailPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpDevEvaluateDetailPOMapper.xml new file mode 100644 index 000000000..9cdb25a16 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpDevEvaluateDetailPOMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + data_date, device_id, dev_target_rate, dev_data_rate, dev_score, dev_effective_rate + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpTargetWarnDMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpTargetWarnDMapper.xml new file mode 100644 index 000000000..8f1237fd7 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpTargetWarnDMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + measurement_point_id, data_date, is_effective, is_harmonic, is_event, is_warn, is_v_dev_warn, + is_freq_warn, is_unbalance_warn, is_v_warn, is_flicker_warn, is_sag_warn, is_interrupt_warn + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexMPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexMPOMapper.xml new file mode 100644 index 000000000..feb44edae --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexMPOMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_run_points, transit_measurement_points, effective_access_measurement_count, + online_measurement_points, online_measurement_count, should_count, should_point_coverage, + data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexQPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexQPOMapper.xml new file mode 100644 index 000000000..02fadbc05 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexQPOMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_run_points, transit_measurement_points, effective_access_measurement_count, + online_measurement_points, online_measurement_count, should_count, should_point_coverage, + data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexYPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexYPOMapper.xml new file mode 100644 index 000000000..3456db268 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/ROperatingIndexYPOMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_run_points, transit_measurement_points, effective_access_measurement_count, + online_measurement_points, online_measurement_count, should_count, should_point_coverage, + data_integrity_rate, data_right_rate, index_integrity_rate, is_unusual + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgDMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgDMapper.xml new file mode 100644 index 000000000..bffed23a1 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgDMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, data_type, all_count, effective_measurement, + harmonic_measurement, event_measurement, event_count, should_count, warn_count + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgMMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgMMapper.xml new file mode 100644 index 000000000..6f13fe981 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RStatOrgMMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org_no, data_date, measurement_type_class, all_count, effective_measurement_average, + effective_measurement_accrued, harmonic_measurement_average, harmonic_measurement_accrued, + harmonic_measurement_ratio_average, over_day_accrued, freq_pass_rate, v_dev_pass_rate, + flicker_pass_rate, event_measurement_average, event_measurement_accrued, event_measurement_ratio_average, + event_freq, event_count, should_count, warn_count, data_type + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsAbnormalRulesMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsAbnormalRulesMapper.java new file mode 100644 index 000000000..e725138ab --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsAbnormalRulesMapper.java @@ -0,0 +1,13 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pq.pojo.po.PmsAbnormalRules; + +/** + * PmsAbnormalRulesMapper + * + * @author qijian + * @date 2022/10/26 + */ +public interface PmsAbnormalRulesMapper extends BaseMapper { + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailDMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailDMapper.java new file mode 100644 index 000000000..7acad9319 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailDMapper.java @@ -0,0 +1,27 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RMpEventDetailDMapper extends MppBaseMapper { + + int getSagTimes(@Param("lineId") String lineId, @Param("date") LocalDate date); + + int getInterruptTimes(@Param("lineId") String lineId, @Param("date") LocalDate date); + +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailMMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailMMapper.java new file mode 100644 index 000000000..4798fb930 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailMMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RMpEventDetailMPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RMpEventDetailMMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailQMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailQMapper.java new file mode 100644 index 000000000..7994bfa33 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailQMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RMpEventDetailQPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RMpEventDetailQMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailYMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailYMapper.java new file mode 100644 index 000000000..cdecfa6ee --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpEventDetailYMapper.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.harmonic.pojo.po.RMpEventDetailYPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface RMpEventDetailYMapper extends MppBaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpHarmonicVRateReportDPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpHarmonicVRateReportDPOMapper.java index c99f4fe08..ee75fbda5 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpHarmonicVRateReportDPOMapper.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpHarmonicVRateReportDPOMapper.java @@ -2,6 +2,9 @@ package com.njcn.prepare.harmonic.mapper.mysql.line; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.harmonic.pojo.po.RMpHarmonicVRateReportD; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; /** * @@ -13,4 +16,7 @@ import com.njcn.harmonic.pojo.po.RMpHarmonicVRateReportD; * @version V1.0.0 */ public interface RMpHarmonicVRateReportDPOMapper extends MppBaseMapper { + + double getMaxVoltageHarmonicThd95(@Param("lineId") String lineId, @Param("date") LocalDate date); + } \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpIntegrityDMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpIntegrityDMapper.java new file mode 100644 index 000000000..75e9898b0 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpIntegrityDMapper.java @@ -0,0 +1,14 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pq.pojo.po.RMpIntegrityD; + +/** + * RMpIntegrityDMapper + * + * @author qijian + * @date 2022/10/26 + */ +public interface RMpIntegrityDMapper extends BaseMapper { + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasurePhaseReportDPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasurePhaseReportDPOMapper.java index 84b3f2f44..3c7a5019d 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasurePhaseReportDPOMapper.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasurePhaseReportDPOMapper.java @@ -2,9 +2,12 @@ package com.njcn.prepare.harmonic.mapper.mysql.line; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.harmonic.pojo.po.RMpMeasurePhaseReportD; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; /** - * + * * Description: * 接口文档访问地址:http://serverIP:port/swagger-ui.html * Date: 2022/10/28 10:53【需求编号】 @@ -13,4 +16,6 @@ import com.njcn.harmonic.pojo.po.RMpMeasurePhaseReportD; * @version V1.0.0 */ public interface RMpMeasurePhaseReportDPOMapper extends MppBaseMapper { + + double getMaxVDeUp(@Param("lineId") String lineId, @Param("date") LocalDate date); } \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasureReportDPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasureReportDPOMapper.java index c38b58f38..c76b210bf 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasureReportDPOMapper.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpMeasureReportDPOMapper.java @@ -2,6 +2,9 @@ package com.njcn.prepare.harmonic.mapper.mysql.line; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.harmonic.pojo.po.RMpMeasureReportD; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; /** * @@ -13,4 +16,8 @@ import com.njcn.harmonic.pojo.po.RMpMeasureReportD; * @version V1.0.0 */ public interface RMpMeasureReportDPOMapper extends MppBaseMapper { + + double getMaxFrequencyDeviation(@Param("lineId") String lineId, @Param("date") LocalDate date); + + double getMaxUnbalance95(@Param("lineId") String lineId, @Param("date") LocalDate date); } \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailDMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailDMapper.java new file mode 100644 index 000000000..88ac204da --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailDMapper.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; + +/** + * RMpPartHarmonicDetailDMapper + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/5 - 15:21 + */ +public interface RMpPartHarmonicDetailDMapper extends BaseMapper { + + RMpPartHarmonicDetailM getPartSumByData(@Param("lineId") String lineId, @Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailMMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailMMapper.java new file mode 100644 index 000000000..a30fafdde --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPartHarmonicDetailMMapper.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; + +/** + * RMpPartHarmonicDetailMMapper + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/12 - 15:21 + */ +public interface RMpPartHarmonicDetailMMapper extends BaseMapper { + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPltReportDPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPltReportDPOMapper.java index 4d448eb96..264a78cd5 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPltReportDPOMapper.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpPltReportDPOMapper.java @@ -2,6 +2,9 @@ package com.njcn.prepare.harmonic.mapper.mysql.line; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPltReportDPO; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; /** * @@ -13,4 +16,7 @@ import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPltReportDPO; * @version V1.0.0 */ public interface RMpPltReportDPOMapper extends MppBaseMapper { + + double getMaxFlashing(@Param("lineId") String lineId, @Param("date") LocalDate date); + } \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailDMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailDMapper.java new file mode 100644 index 000000000..3ad681390 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailDMapper.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM; +import org.apache.ibatis.annotations.Param; + +import java.time.LocalDate; + +/** + * RMpSurplusHarmonicDetailDMapper + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/8 - 15:21 + */ +public interface RMpSurplusHarmonicDetailDMapper extends BaseMapper { + + RMpSurplusHarmonicDetailM getSurplusSumByData(@Param("lineId") String lineId, @Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailMMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailMMapper.java new file mode 100644 index 000000000..e3f824a66 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RMpSurplusHarmonicDetailMMapper.java @@ -0,0 +1,15 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM; + +/** + * RMpSurplusHarmonicDetailMMapper + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/12 - 15:21 + */ +public interface RMpSurplusHarmonicDetailMMapper extends BaseMapper { + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RStatAbnormalDMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RStatAbnormalDMapper.java new file mode 100644 index 000000000..2e0f6780e --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/RStatAbnormalDMapper.java @@ -0,0 +1,14 @@ +package com.njcn.prepare.harmonic.mapper.mysql.line; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.device.pq.pojo.po.RStatAbnormalD; + +/** + * RStatAbnormalDMapper + * + * @author qijian + * @date 2022/10/26 + */ +public interface RStatAbnormalDMapper extends BaseMapper { + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ExcelRptTempMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ExcelRptTempMapper.xml index 45722ab87..dff7c3e7f 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ExcelRptTempMapper.xml +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/ExcelRptTempMapper.xml @@ -2,7 +2,7 @@ - SELECT DISTINCT t1.* FROM diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailDMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailDMapper.xml new file mode 100644 index 000000000..69d803928 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailDMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailMMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailMMapper.xml new file mode 100644 index 000000000..01b838a6d --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailMMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + measurement_point_id, data_date, swell_times, sag_times, interrupt_times + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailQMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailQMapper.xml new file mode 100644 index 000000000..f34b25fd5 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailQMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + measurement_point_id, data_date, swell_times, sag_times, interrupt_times + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailYMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailYMapper.xml new file mode 100644 index 000000000..bd396a6d3 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpEventDetailYMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + measurement_point_id, data_date, swell_times, sag_times, interrupt_times + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpHarmonicVRateReportDPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpHarmonicVRateReportDPOMapper.xml index 7d0ed252d..1507398d1 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpHarmonicVRateReportDPOMapper.xml +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpHarmonicVRateReportDPOMapper.xml @@ -1,286 +1,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - measurement_point_id, data_date, phase, voltage_harmonic_thd_max, voltage_harmonic_thd_min, - voltage_harmonic_thd_avg, voltage_harmonic_thd_95, fundamental_voltage_max, fundamental_voltage_min, - fundamental_voltage_avg, fundamental_voltage_95, harmonic_voltage_content_2_max, - harmonic_voltage_content_2_min, harmonic_voltage_content_2_avg, harmonic_voltage_content_2_95, - harmonic_voltage_content_3_max, harmonic_voltage_content_3_min, harmonic_voltage_content_3_avg, - harmonic_voltage_content_3_95, harmonic_voltage_content_4_max, harmonic_voltage_content_4_min, - harmonic_voltage_content_4_avg, harmonic_voltage_content_4_95, harmonic_voltage_content_5_max, - harmonic_voltage_content_5_min, harmonic_voltage_content_5_avg, harmonic_voltage_content_5_95, - harmonic_voltage_content_6_max, harmonic_voltage_content_6_min, harmonic_voltage_content_6_avg, - harmonic_voltage_content_6_95, harmonic_voltage_content_7_max, harmonic_voltage_content_7_min, - harmonic_voltage_content_7_avg, harmonic_voltage_content_7_95, harmonic_voltage_content_8_max, - harmonic_voltage_content_8_min, harmonic_voltage_content_8_avg, harmonic_voltage_content_8_95, - harmonic_voltage_content_9_max, harmonic_voltage_content_9_min, harmonic_voltage_content_9_avg, - harmonic_voltage_content_9_95, harmonic_voltage_content_10_max, harmonic_voltage_content_10_min, - harmonic_voltage_content_10_avg, harmonic_voltage_content_10_95, harmonic_voltage_content_11_max, - harmonic_voltage_content_11_min, harmonic_voltage_content_11_avg, harmonic_voltage_content_11_95, - harmonic_voltage_content_12_max, harmonic_voltage_content_12_min, harmonic_voltage_content_12_avg, - harmonic_voltage_content_12_95, harmonic_voltage_content_13_max, harmonic_voltage_content_13_min, - harmonic_voltage_content_13_avg, harmonic_voltage_content_13_95, harmonic_voltage_content_14_max, - harmonic_voltage_content_14_min, harmonic_voltage_content_14_avg, harmonic_voltage_content_14_95, - harmonic_voltage_content_15_max, harmonic_voltage_content_15_min, harmonic_voltage_content_15_avg, - harmonic_voltage_content_15_95, harmonic_voltage_content_16_max, harmonic_voltage_content_16_min, - harmonic_voltage_content_16_avg, harmonic_voltage_content_16_95, harmonic_voltage_content_17_max, - harmonic_voltage_content_17_min, harmonic_voltage_content_17_avg, harmonic_voltage_content_17_95, - harmonic_voltage_content_18_max, harmonic_voltage_content_18_min, harmonic_voltage_content_18_avg, - harmonic_voltage_content_18_95, harmonic_voltage_content_19_max, harmonic_voltage_content_19_min, - harmonic_voltage_content_19_avg, harmonic_voltage_content_19_95, harmonic_voltage_content_20_max, - harmonic_voltage_content_20_min, harmonic_voltage_content_20_avg, harmonic_voltage_content_20_95, - harmonic_voltage_content_21_max, harmonic_voltage_content_21_min, harmonic_voltage_content_21_avg, - harmonic_voltage_content_21_95, harmonic_voltage_content_22_max, harmonic_voltage_content_22_min, - harmonic_voltage_content_22_avg, harmonic_voltage_content_22_95, harmonic_voltage_content_23_max, - harmonic_voltage_content_23_min, harmonic_voltage_content_23_avg, harmonic_voltage_content_23_95, - harmonic_voltage_content_24_max, harmonic_voltage_content_24_min, harmonic_voltage_content_24_avg, - harmonic_voltage_content_24_95, harmonic_voltage_content_25_max, harmonic_voltage_content_25_min, - harmonic_voltage_content_25_avg, harmonic_voltage_content_25_95, harmonic_voltage_content_26_max, - harmonic_voltage_content_26_min, harmonic_voltage_content_26_avg, harmonic_voltage_content_26_95, - harmonic_voltage_content_27_max, harmonic_voltage_content_27_min, harmonic_voltage_content_27_avg, - harmonic_voltage_content_27_95, harmonic_voltage_content_28_max, harmonic_voltage_content_28_min, - harmonic_voltage_content_28_avg, harmonic_voltage_content_28_95, harmonic_voltage_content_29_max, - harmonic_voltage_content_29_min, harmonic_voltage_content_29_avg, harmonic_voltage_content_29_95, - harmonic_voltage_content_30_max, harmonic_voltage_content_30_min, harmonic_voltage_content_30_avg, - harmonic_voltage_content_30_95, harmonic_voltage_content_31_max, harmonic_voltage_content_31_min, - harmonic_voltage_content_31_avg, harmonic_voltage_content_31_95, harmonic_voltage_content_32_max, - harmonic_voltage_content_32_min, harmonic_voltage_content_32_avg, harmonic_voltage_content_32_95, - harmonic_voltage_content_33_max, harmonic_voltage_content_33_min, harmonic_voltage_content_33_avg, - harmonic_voltage_content_33_95, harmonic_voltage_content_34_max, harmonic_voltage_content_34_min, - harmonic_voltage_content_34_avg, harmonic_voltage_content_34_95, harmonic_voltage_content_35_max, - harmonic_voltage_content_35_min, harmonic_voltage_content_35_avg, harmonic_voltage_content_35_95, - harmonic_voltage_content_36_max, harmonic_voltage_content_36_min, harmonic_voltage_content_36_avg, - harmonic_voltage_content_36_95, harmonic_voltage_content_37_max, harmonic_voltage_content_37_min, - harmonic_voltage_content_37_avg, harmonic_voltage_content_37_95, harmonic_voltage_content_38_max, - harmonic_voltage_content_38_min, harmonic_voltage_content_38_avg, harmonic_voltage_content_38_95, - harmonic_voltage_content_39_max, harmonic_voltage_content_39_min, harmonic_voltage_content_39_avg, - harmonic_voltage_content_39_95, harmonic_voltage_content_40_max, harmonic_voltage_content_40_min, - harmonic_voltage_content_40_avg, harmonic_voltage_content_40_95, harmonic_voltage_content_41_max, - harmonic_voltage_content_41_min, harmonic_voltage_content_41_avg, harmonic_voltage_content_41_95, - harmonic_voltage_content_42_max, harmonic_voltage_content_42_min, harmonic_voltage_content_42_avg, - harmonic_voltage_content_42_95, harmonic_voltage_content_43_max, harmonic_voltage_content_43_min, - harmonic_voltage_content_43_avg, harmonic_voltage_content_43_95, harmonic_voltage_content_44_max, - harmonic_voltage_content_44_min, harmonic_voltage_content_44_avg, harmonic_voltage_content_44_95, - harmonic_voltage_content_45_max, harmonic_voltage_content_45_min, harmonic_voltage_content_45_avg, - harmonic_voltage_content_45_95, harmonic_voltage_content_46_max, harmonic_voltage_content_46_min, - harmonic_voltage_content_46_avg, harmonic_voltage_content_46_95, harmonic_voltage_content_47_max, - harmonic_voltage_content_47_min, harmonic_voltage_content_47_avg, harmonic_voltage_content_47_95, - harmonic_voltage_content_48_max, harmonic_voltage_content_48_min, harmonic_voltage_content_48_avg, - harmonic_voltage_content_48_95, harmonic_voltage_content_49_max, harmonic_voltage_content_49_min, - harmonic_voltage_content_49_avg, harmonic_voltage_content_49_95, harmonic_voltage_content_50_max, - harmonic_voltage_content_50_min, harmonic_voltage_content_50_avg, harmonic_voltage_content_50_95 - + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasurePhaseReportDPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasurePhaseReportDPOMapper.xml index b673dd5c1..eadcee0a6 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasurePhaseReportDPOMapper.xml +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasurePhaseReportDPOMapper.xml @@ -1,65 +1,16 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - measurement_point_id, data_date, phase, phase_voltage_effective_max, phase_voltage_effective_min, - phase_voltage_effective_avg, phase_voltage_effective_95, line_voltage_effective_max, - line_voltage_effective_min, line_voltage_effective_avg, line_voltage_effective_95, - v_de_up_max, v_de_up_min, v_de_up_avg, v_de_up_95, v_de_low_max, v_de_low_min, v_de_low_avg, - v_de_low_95, current_effective_max, current_effective_min, current_effective_avg, - current_effective_95, sp_active_power_max, sp_active_power_min, sp_active_power_avg, - sp_active_power_95, sp_reactive_power_max, sp_reactive_power_min, sp_reactive_power_avg, - sp_reactive_power_95, sp_apparent_power_max, sp_apparent_power_min, sp_apparent_power_avg, - sp_apparent_power_95, sp_power_factor_max, sp_power_factor_min, sp_power_factor_avg, - sp_power_factor_95, sp_fundamental_power_factor_max, sp_fundamental_power_factor_min, - sp_fundamental_power_factor_avg, sp_fundamental_power_factor_95 - + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasureReportDPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasureReportDPOMapper.xml index 095b8a30a..201585d06 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasureReportDPOMapper.xml +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpMeasureReportDPOMapper.xml @@ -1,135 +1,23 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - measurement_point_id, data_date, frequency_max, frequency_min, frequency_avg, frequency_95, - frequency_deviation_max, frequency_deviation_min, frequency_deviation_avg, frequency_deviation_95, - total_active_power_max, total_active_power_min, total_active_power_avg, total_active_power_95, - total_reactive_power_max, total_reactive_power_min, total_reactive_power_avg, total_reactive_power_95, - total_apparent_power_max, total_apparent_power_min, total_apparent_power_avg, total_apparent_power_95, - tp_power_factor_max, tp_power_factor_min, tp_power_factor_avg, tp_power_factor_95, - fundamental_power_factor_max, fundamental_power_factor_min, fundamental_power_factor_avg, - fundamental_power_factor_95, positive_sequence_voltage_max, positive_sequence_voltage_min, - positive_sequence_voltage_avg, positive_sequence_voltage_95, negative_sequence_voltage_max, - negative_sequence_voltage_min, negative_sequence_voltage_avg, negative_sequence_voltage_95, - zero_sequence_voltage_max, zero_sequence_voltage_min, zero_sequence_voltage_avg, - zero_sequence_voltage_95, negative_sequence_voltage_unbalance_max, negative_sequence_voltage_unbalance_min, - negative_sequence_voltage_unbalance_avg, negative_sequence_voltage_unbalance_95, - zero_sequence_voltage_unbalance_max, zero_sequence_voltage_unbalance_min, zero_sequence_voltage_unbalance_avg, - zero_sequence_voltage_unbalance_95, positive_sequence_current_max, positive_sequence_current_min, - positive_sequence_current_avg, positive_sequence_current_95, negative_sequence_current_max, - negative_sequence_current_min, negative_sequence_current_avg, negative_sequence_current_95, - zero_sequence_current_max, zero_sequence_current_min, zero_sequence_current_avg, - zero_sequence_current_95, negative_sequence_current_unbalance_max, negative_sequence_current_unbalance_min, - negative_sequence_current_unbalance_avg, negative_sequence_current_unbalance_95, - zero_sequence_current_imbalance_max, zero_sequence_current_imbalance_min, zero_sequence_current_imbalance_avg, - zero_sequence_current_imbalance_95, equivalent_apparent_power_max, equivalent_apparent_power_min, - equivalent_apparent_power_avg, equivalent_apparent_power_95, equivalent_power_factor_max, - equivalent_power_factor_min, equivalent_power_factor_avg, equivalent_power_factor_95, - fundamental_wave_rateo_max, fundamental_wave_rateo_min, fundamental_wave_rateo_avg, - fundamental_wave_rateo_95, fundamental_wave_apparent_max, fundamental_wave_apparent_min, - fundamental_wave_apparent_avg, fundamental_wave_apparent_95, nonfundamental_wave_rateo_max, - nonfundamental_wave_rateo_min, nonfundamental_wave_rateo_avg, nonfundamental_wave_rateo_95, - unbalanced_apparent_power_max, unbalanced_apparent_power_min, unbalanced_apparent_power_avg, - unbalanced_apparent_power_95 - + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPartHarmonicDetailDMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPartHarmonicDetailDMapper.xml new file mode 100644 index 000000000..bba508b66 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPartHarmonicDetailDMapper.xml @@ -0,0 +1,76 @@ + + + + + + + diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPltReportDPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPltReportDPOMapper.xml index 1507db064..256ed82c7 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPltReportDPOMapper.xml +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpPltReportDPOMapper.xml @@ -1,20 +1,16 @@ - - - - - - - - - - - - - - measurement_point_id, data_date, phase, long_time_flashing_max, long_time_flashing_min, - long_time_flashing_avg, long_time_flashing_95 - + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpSurplusHarmonicDetailDMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpSurplusHarmonicDetailDMapper.xml new file mode 100644 index 000000000..d0a06ac9a --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/mapping/RMpSurplusHarmonicDetailDMapper.xml @@ -0,0 +1,36 @@ + + + + + + + diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/DataFlickerOracleMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/DataFlickerOracleMapper.java new file mode 100644 index 000000000..cdfca13eb --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/DataFlickerOracleMapper.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.mapper.oracle; + +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.prepare.harmonic.pojo.oracle.DataFlickerOracle; +import com.njcn.prepare.harmonic.pojo.vo.DataFlickerOracleVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * DataFlickerOracleMapper + * + * @author qijian + * @date 2022/12/01 + */ +@Mapper +public interface DataFlickerOracleMapper extends BaseMapper { + + DataFlickerOracleVO getTwoCountForDataIntegrityRate(@Param("lineId") Integer lineId, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/DataVOraclePOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/DataVOraclePOMapper.java new file mode 100644 index 000000000..00664b531 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/DataVOraclePOMapper.java @@ -0,0 +1,24 @@ +package com.njcn.prepare.harmonic.mapper.oracle; + +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.prepare.harmonic.pojo.oracle.DataVOraclePO; +import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 11:45【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface DataVOraclePOMapper extends BaseMapper { + + DataVOracleVO getFiveItemsForDataException(@Param("lineId") Integer lineId, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); + + DataVOracleVO getFiveCountForDataIntegrityRate(@Param("lineId") Integer lineId, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/LimitRateOracleMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/LimitRateOracleMapper.java new file mode 100644 index 000000000..f8db6069f --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/LimitRateOracleMapper.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.mapper.oracle; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.prepare.harmonic.pojo.oracle.LimitRateOracle; +import org.apache.ibatis.annotations.Mapper; + +/** + * LimitRateOracleMapper + * + * @author qijian + * @date 2022/12/05 + */ +@Mapper +public interface LimitRateOracleMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/PqLinedetailPOMapper.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/PqLinedetailPOMapper.java new file mode 100644 index 000000000..39d509709 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/PqLinedetailPOMapper.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.mapper.oracle; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import org.apache.ibatis.annotations.Mapper; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 11:20【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Mapper +public interface PqLinedetailPOMapper extends BaseMapper { +} \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/DataFlickerOracleMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/DataFlickerOracleMapper.xml new file mode 100644 index 000000000..dc7469d7d --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/DataFlickerOracleMapper.xml @@ -0,0 +1,20 @@ + + + + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/DataVOraclePOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/DataVOraclePOMapper.xml new file mode 100644 index 000000000..6cd42b7a9 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/DataVOraclePOMapper.xml @@ -0,0 +1,66 @@ + + + + + + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/LimitRateOracleMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/LimitRateOracleMapper.xml new file mode 100644 index 000000000..56b991e7b --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/LimitRateOracleMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/PqLinedetailPOMapper.xml b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/PqLinedetailPOMapper.xml new file mode 100644 index 000000000..9b6f892cb --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/mapper/oracle/mapping/PqLinedetailPOMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/DataExceptionInfluxService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/DataExceptionInfluxService.java new file mode 100644 index 000000000..08bcf34b2 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/DataExceptionInfluxService.java @@ -0,0 +1,29 @@ +package com.njcn.prepare.harmonic.service.influxdb; + +import com.njcn.device.pq.pojo.po.DataV; + +import java.util.Date; + +/** + * 数据是否异常 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/28 - 10:09 + */ +public interface DataExceptionInfluxService { + + /** + * 取前四项指标(相别为A) + * @author qijian + * @date 2022/11/28 + */ + DataV getFirstFourItems(String lineId, Date date, Integer type); + + /** + * 取三相不平衡度(相别为T) + * @author qijian + * @date 2022/11/28 + */ + DataV getUnbalance(String lineId, Date date, Integer type); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/DataIntegrityRateInfluxService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/DataIntegrityRateInfluxService.java new file mode 100644 index 000000000..2102eb8a0 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/DataIntegrityRateInfluxService.java @@ -0,0 +1,29 @@ +package com.njcn.prepare.harmonic.service.influxdb; +import com.njcn.device.pq.pojo.po.DataV; +import com.njcn.prepare.harmonic.pojo.po.DataFlicker; + +import java.util.Date; + +/** + * 数据完整率算法 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/29 - 10:09 + */ +public interface DataIntegrityRateInfluxService { + + /** + * 获取data_v表五项稳态指标日数量 + * @author qijian + * @date 2022/11/29 + */ + DataV getFiveSteadyData(String lineId, Date date, Integer type); + + /** + * 根据data_flicker表获取两项闪变指标数量 + * @author qijian + * @date 2022/11/29 + */ + DataFlicker getTwoFlickerData(String lineId, Date date, Integer type); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/impl/DataExceptionInfluxServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/impl/DataExceptionInfluxServiceImpl.java new file mode 100644 index 000000000..dfe0a5457 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/impl/DataExceptionInfluxServiceImpl.java @@ -0,0 +1,98 @@ +package com.njcn.prepare.harmonic.service.influxdb.impl; + +import cn.hutool.core.date.DateTime; +import com.njcn.device.pq.pojo.po.DataV; +import com.njcn.influxdb.param.InfluxDBPublicParam; +import com.njcn.influxdb.param.InfluxDBSqlConstant; +import com.njcn.influxdb.param.InfluxDBTableConstant; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.prepare.harmonic.service.influxdb.DataExceptionInfluxService; +import com.njcn.prepare.harmonic.utils.PublicUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 数据是否异常 influxDB业务 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/28 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class DataExceptionInfluxServiceImpl implements DataExceptionInfluxService { + +// private final InfluxDbUtils influxDbUtils; + + private final InfluxDbUtils influxDbUtils = new InfluxDbUtils("admin", "njcnpqs", "http://192.168.1.18:8086", "pqsbase", ""); + + /** + * 取前四项指标(相别为A) + * @author qijian + * @date 2022/11/28 + */ + @Override + public DataV getFirstFourItems(String lineId, Date date, Integer type) { + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); + String searchSql = "MAX(freq) as freq_max,MIN(freq) as freq_min,MAX(rms) as rms_max,MIN(rms) as rms_min,MAX(rms_lvr) as rms_lvr_max,MIN(rms_lvr) as rms_lvr_min,MAX(v_thd) as v_thd_max,MIN(v_thd) as v_thd_min "; + String sql = getAppend(lineId, date, type, searchSql, "A"); + QueryResult query = influxDbUtils.query(sql); + List dataVS = resultMapper.toPOJO(query, DataV.class); + if (dataVS.size() > 0){ + DataV dataV = dataVS.get(0); + return dataV; + } + return null; + } + + /** + * 取三相不平衡度(相别为T) + * @author qijian + * @date 2022/11/28 + */ + @Override + public DataV getUnbalance(String lineId, Date date, Integer type) { + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); + String searchSql = "MAX(v_unbalance) as v_unbalance_max,MIN(v_unbalance) as v_unbalance_min "; + String sql = getAppend(lineId, date,type, searchSql, "T"); + QueryResult query = influxDbUtils.query(sql); + List dataVS = resultMapper.toPOJO(query, DataV.class); + if (dataVS.size() > 0){ + DataV dataV = dataVS.get(0); + return dataV; + } + return null; + } + + /** + * 拼装sql + * @param id,date,searchSql,tableName 参数 + * @return 结果 + */ + private String getAppend(String id, Date date, Integer type, String searchSql, String phase) { + StringBuilder stringBuilder = new StringBuilder(); + //根据类型获取日期的开始和结束 + Map beginAndEndByDate = PublicUtil.getBeginAndEndByDate(type, date); + //拼接 + stringBuilder.append(InfluxDBSqlConstant.SELECT).append(searchSql) + .append(InfluxDBSqlConstant.FROM).append(InfluxDBPublicParam.DATA_V) + .append(InfluxDBSqlConstant.WHERE).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.GE).append(InfluxDBSqlConstant.QM).append(beginAndEndByDate.get("startTime")).append(InfluxDBSqlConstant.QM) + .append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.LE).append(InfluxDBSqlConstant.QM).append(beginAndEndByDate.get("endTime")).append(InfluxDBSqlConstant.QM) + .append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(id).append(InfluxDBSqlConstant.QM) + .append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.AVG).append(InfluxDBSqlConstant.QM); + if (InfluxDBTableConstant.PHASE_TYPE_T.equals(phase)){ + stringBuilder.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.PHASE_TYPE_T).append(InfluxDBSqlConstant.QM); + }else{ + stringBuilder.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.PHASE_TYPE_A).append(InfluxDBSqlConstant.QM); + } + return stringBuilder.toString(); + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/impl/DataIntegrityRateInfluxServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/impl/DataIntegrityRateInfluxServiceImpl.java new file mode 100644 index 000000000..9ccd19090 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/influxdb/impl/DataIntegrityRateInfluxServiceImpl.java @@ -0,0 +1,101 @@ +package com.njcn.prepare.harmonic.service.influxdb.impl; + +import cn.hutool.core.date.DateTime; +import com.njcn.device.pq.pojo.po.DataV; +import com.njcn.influxdb.param.InfluxDBPublicParam; +import com.njcn.influxdb.param.InfluxDBSqlConstant; +import com.njcn.influxdb.param.InfluxDBTableConstant; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.prepare.harmonic.pojo.po.DataFlicker; +import com.njcn.prepare.harmonic.service.influxdb.DataIntegrityRateInfluxService; +import com.njcn.prepare.harmonic.utils.PublicUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.influxdb.dto.QueryResult; +import org.influxdb.impl.InfluxDBResultMapper; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 数据完整率 influxDB业务 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/29 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class DataIntegrityRateInfluxServiceImpl implements DataIntegrityRateInfluxService { + +// private final InfluxDbUtils influxDbUtils; + + private final InfluxDbUtils influxDbUtils = new InfluxDbUtils("admin", "njcnpqs", "http://192.168.1.18:8086", "pqsbase", ""); + + /** + * 获取data_v表五项稳态指标日数量 + * @author qijian + * @date 2022/11/29 + */ + @Override + public DataV getFiveSteadyData(String lineId, Date date, Integer type) { + //根据data_v表获取五项稳态指标日数量(count) + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); + String searchSql = "count(freq) as freq_count,count(rms) as rms_count,count(rms_lvr) as rms_lvr_count,count(v_thd) as v_thd_count,count(v_unbalance) as v_unbalance_count "; + String sql = getAppend(lineId, date,type, searchSql, InfluxDBPublicParam.DATA_V); + QueryResult query = influxDbUtils.query(sql); + List dataVS = resultMapper.toPOJO(query, DataV.class); + if (dataVS.size() > 0){ + DataV dataV = dataVS.get(0); + return dataV; + } + return null; + } + + /** + * 根据data_flicker表获取两项闪变指标数量 + * @author qijian + * @date 2022/11/29 + * @return + */ + @Override + public DataFlicker getTwoFlickerData(String lineId, Date date, Integer type) { + //根据data_v表获取五项稳态指标日数量(count) + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); + String searchSql = "count(pst) as pst_count,count(plt) as plt_count "; + String sql = getAppend(lineId, date,type, searchSql, InfluxDBPublicParam.DATA_FLICKER); + QueryResult query = influxDbUtils.query(sql); + List dataFlickers = resultMapper.toPOJO(query, DataFlicker.class); + if (dataFlickers.size() > 0){ + DataFlicker dataFlicker = dataFlickers.get(0); + return dataFlicker; + } + return null; + } + + /** + * 拼装sql + * @param id,date,searchSql,tableName 参数 + * @param type + * @return 结果 + */ + private String getAppend(String id, Date date, Integer type, String searchSql, String tableName) { + StringBuilder stringBuilder = new StringBuilder(); + //根据类型获取日期的开始和结束 + Map beginAndEndByDate = PublicUtil.getBeginAndEndByDate(type, date); + //拼接 + stringBuilder.append(InfluxDBSqlConstant.SELECT).append(searchSql) + .append(InfluxDBSqlConstant.FROM).append(tableName) + .append(InfluxDBSqlConstant.WHERE).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.GE).append(InfluxDBSqlConstant.QM).append(beginAndEndByDate.get("startTime")).append(InfluxDBSqlConstant.QM) + .append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.TIME).append(InfluxDBSqlConstant.LE).append(InfluxDBSqlConstant.QM).append(beginAndEndByDate.get("endTime")).append(InfluxDBSqlConstant.QM) + .append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(id).append(InfluxDBSqlConstant.QM) + .append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.PHASE_TYPE_A).append(InfluxDBSqlConstant.QM); + if (InfluxDBPublicParam.DATA_V.equals(tableName)){ + stringBuilder.append(InfluxDBSqlConstant.AND).append(InfluxDBPublicParam.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(InfluxDBTableConstant.AVG).append(InfluxDBSqlConstant.QM); + } + return stringBuilder.toString(); + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/AreaCountServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/AreaCountServiceImpl.java new file mode 100644 index 000000000..19a01a440 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/AreaCountServiceImpl.java @@ -0,0 +1,322 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.device.pms.api.DistributionMonitorClient; +import com.njcn.device.pms.pojo.po.DistributionMonitor; +import com.njcn.harmonic.pojo.po.PmsMonitorPO; +import com.njcn.harmonic.pojo.po.RStatAbnormalDPO; +import com.njcn.harmonic.pojo.po.RStatOrgDPO; +import com.njcn.harmonic.pojo.po.RStatOrgMPO; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; +import com.njcn.prepare.harmonic.constant.DictCache; +import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatAbnormalDPOMapper; +import com.njcn.prepare.harmonic.pojo.dto.MonitorDataIntegrityDTO; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam; +import com.njcn.prepare.harmonic.service.mysql.area.*; +import com.njcn.redis.utils.RedisUtil; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/13 14:34【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class AreaCountServiceImpl implements AreaCountService { + + + private @Autowired + PmsMonitorPOService pmsMonitorPOService; + + + private @Autowired + RMpIntegrityDPOService rMpIntegrityDPOService; + + + private @Autowired + RStatAbnormalDPOMapper rStatAbnormalDPOMapper; + + private @Autowired + DistributionMonitorClient distributionMonitorClient; + + private @Autowired + RStatOrgDService rStatOrgDService; + + private @Autowired + RStatOrgMService rStatOrgMService; + + + private @Autowired + RMpTargetWarnDService rMpTargetWarnDService; + + + private @Autowired + RedisUtil redisUtil; + + @Override + @Async("asyncExecutor") + public void areaCountHanlder(PrimaryGridParam primaryGridParam) { + if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.ORACLE_DATA)) { + this.hanlderOracleData (primaryGridParam); + } else if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.INFLUX_DATA)) { + this.hanlderInfludxbData (primaryGridParam); + } + } + + /** + * @Description: 处理influxdb数据 todo 本次不做处理 + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + private void hanlderInfludxbData(PrimaryGridParam primaryGridParam) { + } + + /** + * @Description: hanlderOracleData 目前只处理日表 + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/12/13 + */ + private void hanlderOracleData(PrimaryGridParam primaryGridParam) { + + Integer type = primaryGridParam.getType ( ); + switch (type) { +// case 1: +// this.hanlderOracleYear (primaryGridParam); +// break; +// case 2: +// this.hanlderOracleQtr (primaryGridParam); +// break; + case 3: + this.hanlderOracleMonth (primaryGridParam); + break; + case 5: + this.hanlderOracleDay (primaryGridParam); + break; + default: + break; + } + } + @SneakyThrows + private void hanlderOracleMonth(PrimaryGridParam primaryGridParam) { + List orgIdList = primaryGridParam.getOrgIdList ( ); + String dataDate = primaryGridParam.getDataDate ( ); + List rStatOrgMPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + /*在运的字典表id,配网1,2,3类监测点字典表id用于for循环中过滤*/ + String lineTypeOneId = redisUtil.getStringByKey (DictCache.NAME_KEY + + DictCache.SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + + DictCache.SPLIT_SIGN + DicDataEnum.LINE_ONE.getCode ( )); + String lineTypeTwoId = redisUtil.getStringByKey (DictCache.NAME_KEY + + DictCache.SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + + DictCache.SPLIT_SIGN + DicDataEnum.LINE_TWO.getCode ( )); + String lineTypeThreeId = redisUtil.getStringByKey (DictCache.NAME_KEY + + DictCache.SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + + DictCache.SPLIT_SIGN + DicDataEnum.LINE_THREE.getCode ( )); + if ( + StringUtils.isEmpty (lineTypeOneId) || + StringUtils.isEmpty (lineTypeTwoId) || + StringUtils.isEmpty (lineTypeThreeId)) { + throw new BusinessException (PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION); + } + orgIdList.forEach (orgid -> { + /*1.2.2.1. 主网区域分类有效接入监测点数*/ + /*主网在运监测点*/ + List pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid); + /* 根据监测点对象类型分组获取监测点*/ + Map> collect = pmsMonitorPOS.stream ( ).collect (Collectors.groupingBy (PmsMonitorPO::getMonitorObjectType)); + for (Map.Entry> entry : collect.entrySet ( )) { + /*计算出当前机构不同监测点对象类型累计稳态超标监测点数*/ + List monitorIdList = entry.getValue ( ).stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( )); + Integer integer = rMpTargetWarnDService.queryHarmonicMeasurementAccrued (monitorIdList, dataDate); + RStatOrgMPO rStatOrgMPO = new RStatOrgMPO ( ); + rStatOrgMPO.setOrgNo (orgid); + rStatOrgMPO.setMeasurementTypeClass (entry.getKey ( )); + rStatOrgMPO.setDataDate (tempDate); + rStatOrgMPO.setDataType ("01"); + rStatOrgMPO.setHarmonicMeasurementAccrued (integer); + rStatOrgMPOList.add (rStatOrgMPO); + } + /* 配网区域分类1.2.3类有效接入监测点数*/ + /*monitorSort=""获取配网监1,2,3类测点全部数据*/ + RStatOrgMPO rStatOrgMPOOne = packageRStatOrgMPO (orgid, lineTypeOneId, dataDate); + RStatOrgMPO rStatOrgMPOTwo = packageRStatOrgMPO (orgid, lineTypeTwoId, dataDate); + RStatOrgMPO rStatOrgMPOThree = packageRStatOrgMPO (orgid, lineTypeThreeId, dataDate); + + rStatOrgMPOList.add (rStatOrgMPOOne); + rStatOrgMPOList.add (rStatOrgMPOTwo); + rStatOrgMPOList.add (rStatOrgMPOThree); + } + + ); + rStatOrgMService.saveOrUpdateBatchByMultiId (rStatOrgMPOList,500); + } + + + /** + * @Description: hanlderOracleDay + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/12/13 + */ + @SneakyThrows + private void hanlderOracleDay(PrimaryGridParam primaryGridParam) { + + List orgIdList = primaryGridParam.getOrgIdList ( ); + String dataDate = primaryGridParam.getDataDate ( ); + List rStatOrgDPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + /*在运的字典表id,配网1,2,3类监测点字典表id用于for循环中过滤*/ + String lineTypeOneId = redisUtil.getStringByKey (DictCache.NAME_KEY + + DictCache.SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + + DictCache.SPLIT_SIGN + DicDataEnum.LINE_ONE.getCode ( )); + String lineTypeTwoId = redisUtil.getStringByKey (DictCache.NAME_KEY + + DictCache.SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + + DictCache.SPLIT_SIGN + DicDataEnum.LINE_TWO.getCode ( )); + String lineTypeThreeId = redisUtil.getStringByKey (DictCache.NAME_KEY + + DictCache.SPLIT_SIGN + DicDataTypeEnum.LINE_SORT.getCode ( ) + + DictCache.SPLIT_SIGN + DicDataEnum.LINE_THREE.getCode ( )); + if ( + StringUtils.isEmpty (lineTypeOneId) || + StringUtils.isEmpty (lineTypeTwoId) || + StringUtils.isEmpty (lineTypeThreeId)) { + throw new BusinessException (PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION); + } + orgIdList.forEach (orgid -> { + /*1.2.2.1. 主网区域分类有效接入监测点数*/ + /*主网在运监测点*/ + List pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid); + /* 根据监测点对象类型分组获取监测点*/ + Map> collect = pmsMonitorPOS.stream ( ).collect (Collectors.groupingBy (PmsMonitorPO::getMonitorObjectType)); + for (Map.Entry> entry : collect.entrySet ( )) { + /*计算出当前监测点对象类型有效接入监测点个数*/ + List monitorIdList = entry.getValue ( ).stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( )); + Integer integer = this.queryEffectiveAccessMeasurementCount (monitorIdList, dataDate); + RStatOrgDPO rStatOrgDPO = new RStatOrgDPO ( ); + rStatOrgDPO.setOrgNo (orgid); + rStatOrgDPO.setMeasurementTypeClass (entry.getKey ( )); + rStatOrgDPO.setDataDate (tempDate); + rStatOrgDPO.setDataType ("01"); + rStatOrgDPO.setEffectiveMeasurement (integer); + rStatOrgDPOList.add (rStatOrgDPO); + } + /* 配网区域分类1.2.3类有效接入监测点数*/ + /*monitorSort=""获取配网监1,2,3类测点全部数据*/ + RStatOrgDPO rStatOrgDPOOne = packageRStatOrgDPO (orgid, lineTypeOneId, dataDate); + RStatOrgDPO rStatOrgDPOTwo = packageRStatOrgDPO (orgid, lineTypeTwoId, dataDate); + RStatOrgDPO rStatOrgDPOThree = packageRStatOrgDPO (orgid, lineTypeThreeId, dataDate); + + rStatOrgDPOList.add (rStatOrgDPOOne); + rStatOrgDPOList.add (rStatOrgDPOTwo); + rStatOrgDPOList.add (rStatOrgDPOThree); + } + + ); + rStatOrgDService.saveOrUpdateBatchByMultiId (rStatOrgDPOList,500); + + + } + + @SneakyThrows + private RStatOrgMPO packageRStatOrgMPO(String orgid, String lineTypeId, String dataDate) { + RStatOrgMPO rStatOrgMPO = new RStatOrgMPO ( ); + List distributionMonitorList = distributionMonitorClient.distributionMonitorListByCondition (orgid, lineTypeId).getData ( ); + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + + /*计算出当前监测点对象类型有效接入监测点个数*/ + List monitorIdList = distributionMonitorList.stream ( ).map (DistributionMonitor::getMonitorId).collect (Collectors.toList ( )); + + Integer integer = rMpTargetWarnDService.queryHarmonicMeasurementAccrued (monitorIdList, dataDate); + rStatOrgMPO.setOrgNo (orgid); + rStatOrgMPO.setMeasurementTypeClass (lineTypeId); + rStatOrgMPO.setDataDate (tempDate); + rStatOrgMPO.setDataType ("02"); + rStatOrgMPO.setHarmonicMeasurementAccrued (integer); + return rStatOrgMPO; + } + + /** + * @Description: 计算1,2,3类配网有效接入监测 后包装成RStatOrgDPO + * @Param: [orgid, lineTypeId, dataDate] + * @return: com.njcn.prepare.harmonic.pojo.mysql.po.RStatOrgDPO + * @Author: clam + * @Date: 2022/12/14 + */ + @SneakyThrows + private RStatOrgDPO packageRStatOrgDPO(String orgid, String lineTypeId, String dataDate) { + RStatOrgDPO rStatOrgDPO = new RStatOrgDPO ( ); + List distributionMonitorList = distributionMonitorClient.distributionMonitorListByCondition (orgid, lineTypeId).getData ( ); + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + + /*计算出当前监测点对象类型有效接入监测点个数*/ + List monitorIdList = distributionMonitorList.stream ( ).map (DistributionMonitor::getMonitorId).collect (Collectors.toList ( )); + Integer integer = this.queryEffectiveAccessMeasurementCount (monitorIdList, dataDate); + rStatOrgDPO.setOrgNo (orgid); + rStatOrgDPO.setMeasurementTypeClass (lineTypeId); + rStatOrgDPO.setDataDate (tempDate); + rStatOrgDPO.setDataType ("02"); + rStatOrgDPO.setEffectiveMeasurement (integer); + + return rStatOrgDPO; + } + + /** + * @Description: 有效接入监测点个数 + * 1.获取pms_monitor表中监测点状态为投运的监测点id列表 + * 2.根据id查询r_mp_integrity_d表中当天各项指标个数,采用以下公式计算数据完整率 + * 3.〖数据完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100% + * 判定监测点数据完整率是否大于95% + * 4、根据id查询r_stat_abnormal_d表,value_alarm为1。 + * 5、以上两个条件满足表明该监测点为有效监测点。 + * 6、统计有效监测点个数 + * @Param: [indexlist, dataDate] + * @return: java.lang.String + * @Author: clam + * @Date: 2022/11/25 + */ + private Integer queryEffectiveAccessMeasurementCount(List indexlist, String dataDate) { + + /*获取监测点的数据完整性*/ + List monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (indexlist, dataDate); + /*获取完整率>0.95的监测点id*/ + List collect = monitorDataIntegrityDTOList.stream ( ). + filter (temp -> temp.getDataIntegrity ( ).compareTo (new BigDecimal (0.95)) == 1 + ).map (MonitorDataIntegrityDTO::getId).collect (Collectors.toList ( )); + /*获取完整率>0.95条件下value_alarm为1的监测点id*/ + if (CollectionUtils.isEmpty (collect)) { + return 0; + } + QueryWrapper rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper ( ); + rStatAbnormalDPOLambdaQueryWrapper.select ("measurement_point_id"). + in ("measurement_point_id", collect). + eq ("value_alarm", 1). + eq ("DATE_FORMAT( data_date ,'%Y-%m-%d')", dataDate); + List rStatAbnormalDPOS = rStatAbnormalDPOMapper.selectList (rStatAbnormalDPOLambdaQueryWrapper); + + return rStatAbnormalDPOS.size ( ); + + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PmsMonitorPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PmsMonitorPOServiceImpl.java new file mode 100644 index 000000000..ceed435ea --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PmsMonitorPOServiceImpl.java @@ -0,0 +1,69 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.harmonic.pojo.po.PmsMonitorPO; +import com.njcn.prepare.harmonic.constant.DictCache; +import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum; +import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.PmsMonitorPOService; +import com.njcn.redis.utils.RedisUtil; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.user.api.DeptFeignClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 15:32【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class PmsMonitorPOServiceImpl extends ServiceImpl implements PmsMonitorPOService{ + + private @Autowired + RedisUtil redisUtil; + + private @Autowired + PmsMonitorPOMapper pmsMonitorPOMapper; + + private @Autowired + DeptFeignClient deptFeignClient; + + /** + * @Description: 在运监测点集合 + * @Param: [orgid] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/11/25 + */ + @Override + public List qurymeasurementRunPoints(String orgid) { + + LambdaQueryWrapper monitorPOLambdaQueryWrapper = new LambdaQueryWrapper ( ); + /*获取当前部门及子部门*/ + List deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(orgid).getData(); + + monitorPOLambdaQueryWrapper.in (PmsMonitorPO::getOrgId, deptIds); +// List data = dicDataFeignClient.getDicDataByTypeCode (DicDataTypeEnum.LINE_STATE.getCode ( )).getData ( ); +// List collect = data.stream ( ).filter (temp -> Objects.equals (temp.getCode ( ), DicDataEnum.RUN.getCode ())).collect (Collectors.toList ( )); + String state = redisUtil.getStringByKey (DictCache.NAME_KEY+ + DictCache.SPLIT_SIGN+ DicDataTypeEnum.LINE_STATE.getCode ( )+ + DictCache.SPLIT_SIGN+ DicDataEnum.RUN.getCode ( )); + if(StringUtils.isEmpty (state)){ + throw new BusinessException (PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION); + } + monitorPOLambdaQueryWrapper.eq (PmsMonitorPO::getMonitorState, state); + List pmsMonitorPOS = pmsMonitorPOMapper.selectList (monitorPOLambdaQueryWrapper); + return pmsMonitorPOS; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PmsTerminalPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PmsTerminalPOServiceImpl.java new file mode 100644 index 000000000..254d2427e --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PmsTerminalPOServiceImpl.java @@ -0,0 +1,51 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.po.PmsTerminalPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.PmsTerminalPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.PmsTerminalPOService; +import com.njcn.user.api.DeptFeignClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 15:53【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class PmsTerminalPOServiceImpl extends ServiceImpl implements PmsTerminalPOService{ + + + private @Autowired + PmsTerminalPOMapper pmsTerminalPOMapper; + private @Autowired + DeptFeignClient deptFeignClient; + /** + * @Description: 监测终端集合 + * @Param: [orgid] + * @return: java.util.List + * @Author: clam + * @Date: 2022/11/25 + */ + @Override + public List queryOnlineMeasurementPoints(String orgid) { + List list = new ArrayList<> (); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper ( ); + /*获取当前部门及子部门*/ + List deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(orgid).getData(); + + wrapper.in (PmsTerminalPO::getOrgId, deptIds); + list = pmsTerminalPOMapper.selectList (wrapper); + + return list; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java new file mode 100644 index 000000000..c07fd2d6d --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java @@ -0,0 +1,538 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.harmonic.pojo.po.*; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; +import com.njcn.prepare.harmonic.constant.DictCache; +import com.njcn.prepare.harmonic.constant.PqsPrepareExceptionEnum; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatAbnormalDPOMapper; +import com.njcn.prepare.harmonic.pojo.dto.MonitorDataIntegrityDTO; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridDataIntegrityParam; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam; +import com.njcn.prepare.harmonic.service.mysql.area.*; +import com.njcn.prepare.harmonic.service.oracle.DataVOraclePOService; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; +import com.njcn.redis.utils.RedisUtil; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 8:54【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class PrimaryGridDataServiceImpl implements PrimaryGridDataService { + + private @Autowired + PmsMonitorPOService pmsMonitorPOService; + + private @Autowired + PmsTerminalPOService pmsTerminalPOService; + + + + private @Autowired + PqLinedetailPOService pqLinedetailPOService; + + private @Autowired + DataVOraclePOService dataVOraclePOService; + + private @Autowired + RMpIntegrityDPOService rMpIntegrityDPOService; + + private @Autowired + RStatAbnormalDPOMapper rStatAbnormalDPOMapper; + + private @Autowired + ROperatingIndexDPOService rOperatingIndexDPOService; + + private @Autowired + ROperatingIndexMPOService rOperatingIndexMPOService; + + private @Autowired + ROperatingIndexQPOService rOperatingIndexQPOService; + + private @Autowired + ROperatingIndexYPOService rOperatingIndexYPOService; + + private @Autowired + RMpDevEvaluateDetailPOService rMpDevEvaluateDetailPOService; + + private @Autowired + RedisUtil redisUtil; + + /** + * @param primaryGridParam + * @Description: primaryGridDataHanlder + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + @Override + @Async("asyncExecutor") + public void primaryGridDataHanlder(PrimaryGridParam primaryGridParam) { + if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.ORACLE_DATA)) { + hanlderOracleData (primaryGridParam); + } else if (Objects.equals (primaryGridParam.getDataSource ( ), AlgorithmParam.INFLUX_DATA)) { + hanlderInfludxbData (primaryGridParam); + } + + } + + /** + * @param primaryGridDataIntegrityParam + * @Description: 主网终端数据完整率月统计只做月统计,且重mysql查数据不分数据源 + * @Param: [primaryGridDataIntegrityParam] + * @return: void + * @Author: clam + * @Date: 2022/11/30 + */ + @Override + @Async + @SneakyThrows + public void primaryGridDataIntegrityHanlder(PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam) { + List deviceIds = primaryGridDataIntegrityParam.getDeviceId (); + String dataDate = primaryGridDataIntegrityParam.getDataDate ( ); + List rMpDevEvaluateDetailPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate); + + deviceIds.forEach (deviceId->{ + double dev_data_rate=0.00; + /*获取终端下的监测点集合*/ + QueryWrapper queryWrapper = new QueryWrapper<> (); + String state = redisUtil.getStringByKey (DictCache.NAME_KEY+ + DictCache.SPLIT_SIGN+ DicDataTypeEnum.LINE_STATE.getCode ( )+ + DictCache.SPLIT_SIGN+ DicDataEnum.RUN.getCode ( )); + if(StringUtils.isEmpty (state)){ + throw new BusinessException (PqsPrepareExceptionEnum.REDIS_NULL_EXCEPTION); + } + queryWrapper.lambda ().eq (PmsMonitorPO::getTerminalId, deviceId). + eq (PmsMonitorPO::getMonitorState, state); + List list = pmsMonitorPOService.list (queryWrapper); + List mysqlIndexList = list.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( )); + /*获取检测点的月平均数据完整率*/ + List monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateMouthDataIntegrity (mysqlIndexList, dataDate); + /*求平均值*/ + if(!CollectionUtils.isEmpty (monitorDataIntegrityDTOList)){ + dev_data_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (monitorDataIntegrityDTO -> { + return monitorDataIntegrityDTO.getDataIntegrity ( ).doubleValue ( ); + }).average ( ).getAsDouble ( ); + } + RMpDevEvaluateDetailPO rMpDevEvaluateDetailPO = new RMpDevEvaluateDetailPO(); + rMpDevEvaluateDetailPO.setDeviceId (deviceId); + rMpDevEvaluateDetailPO.setDataDate (tempDate); + rMpDevEvaluateDetailPO.setDevDataRate (dev_data_rate); + rMpDevEvaluateDetailPOList.add (rMpDevEvaluateDetailPO); + }); + rMpDevEvaluateDetailPOService.saveOrUpdateBatchByMultiId (rMpDevEvaluateDetailPOList,500); + } + + /** + * @Description: 处理influxdb数据 todo 本次不做处理 + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + private void hanlderInfludxbData(PrimaryGridParam primaryGridParam) { + } + + /** + * @Description: 处理Oracle数据 + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + private void hanlderOracleData(PrimaryGridParam primaryGridParam) { + Integer type = primaryGridParam.getType ( ); + switch (type) { + case 1: + this.hanlderOracleYear (primaryGridParam); + break; + case 2: + this.hanlderOracleQtr (primaryGridParam); + break; + case 3: + this.hanlderOracleMonth (primaryGridParam); + break; + case 5: + this.hanlderOracleDay (primaryGridParam); + break; + default: + break; + } + + + } + + /** + * @Description: hanlderOracleMonth + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + @SneakyThrows + private void hanlderOracleMonth(PrimaryGridParam primaryGridParam) { + + List orgIdList = primaryGridParam.getOrgIdList ( ); + String dataDate = primaryGridParam.getDataDate ( ); + List rOperatingIndexMPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate); + orgIdList.forEach (orgid -> { + /*查询day表数据生成月表数据*/ + List list = rOperatingIndexDPOService.queryOneMothData(orgid,dataDate); + /*求平均值*/ + int measurement_run_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getMeasurementRunPoints ( )). + average ( ). + getAsDouble ( )); + int transit_measurement_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getTransitMeasurementPoints ()). + average ( ). + getAsDouble ( )); + int effective_access_measurement_count =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()). + average ( ). + getAsDouble ( )); + int online_measurement_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getOnlineMeasurementPoints ()). + average ( ). + getAsDouble ( )); + + int online_measurement_count =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getOnlineMeasurementCount ()). + average ( ). + getAsDouble ( )); + /*double保留2位小数*/ + Double data_integrity_rate =Math.round (list.stream ( ). + mapToDouble (temp -> temp.getDataIntegrityRate ()). + average ( ). + getAsDouble ( )*100)*0.01; + /*看day表is_unusual时候存在1存在返回1,数据否异常(0:正常 1:异常)*/ + Integer is_unusual =list.stream (). + map (ROperatingIndexDPO::getIsUnusual). + collect (Collectors.toList ()) + .contains (1)?1:0; + + + ROperatingIndexMPO rOperatingIndexMPO = new ROperatingIndexMPO( ); + rOperatingIndexMPO.setOrgNo (orgid); + rOperatingIndexMPO.setDataDate (tempDate); + rOperatingIndexMPO.setMeasurementRunPoints (measurement_run_points); + rOperatingIndexMPO.setTransitMeasurementPoints (transit_measurement_points); + rOperatingIndexMPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); + rOperatingIndexMPO.setOnlineMeasurementPoints (online_measurement_points); + rOperatingIndexMPO.setOnlineMeasurementCount (online_measurement_count); + rOperatingIndexMPO.setDataIntegrityRate (data_integrity_rate); + rOperatingIndexMPO.setIsUnusual (is_unusual); + rOperatingIndexMPOList.add (rOperatingIndexMPO); + }); + if(!CollectionUtils.isEmpty (rOperatingIndexMPOList)){ + rOperatingIndexMPOService.saveOrUpdateBatchByMultiId (rOperatingIndexMPOList,30); + } + } + + /** + * @Description: hanlderOracleDay + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + @SneakyThrows + private void hanlderOracleDay(PrimaryGridParam primaryGridParam) { + List orgIdList = primaryGridParam.getOrgIdList ( ); + String dataDate = primaryGridParam.getDataDate ( ); + List rOperatingIndexDPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate); + + orgIdList.forEach (orgid -> { + + /*measurement_run_points:在运监测点个数*/ + List pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid); + Integer measurement_run_points = pmsMonitorPOS.size ( ); + /*获取mysql与Oracle监测点id对应关系*/ + List mysqlIndexList = pmsMonitorPOS.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( )); + + List pqLinedetailPOS = pqLinedetailPOService.queryOracleIndexIdByMysqlIndexId (mysqlIndexList); + List oracleIndexlist = pqLinedetailPOS.stream ( ).map (PqLinedetailPO::getLineIndex).collect (Collectors.toList ( )); + + /*主网单位在线监测点数 transit_measurement_points*/ + Integer transit_measurement_points = dataVOraclePOService.queryTransitMeasurementPoints(oracleIndexlist,primaryGridParam.getDataDate ()); + + /*主网单位有效接入监测点个数 effective_access_measurement_count*/ + Integer effective_access_measurement_count = this.queryEffectiveAccessMeasurementCount(mysqlIndexList,primaryGridParam.getDataDate ()); + + /*监测终端数量 online_measurement_points*/ + List pmsTerminalPOS = pmsTerminalPOService.queryOnlineMeasurementPoints(orgid); + Integer online_measurement_points = pmsTerminalPOS.size (); + + /*在运监测终端个数 online_measurement_count*/ + String state = redisUtil.getStringByKey (DictCache.NAME_KEY+ + DictCache.SPLIT_SIGN+ DicDataTypeEnum.DEV_STATUS.getCode ( )+ + DictCache.SPLIT_SIGN+ DicDataEnum.RUNNING.getCode ( )); + Integer online_measurement_count = Integer.valueOf (pmsTerminalPOS.stream ( ).filter (temp -> Objects.equals (temp.getTerminalState ( ),state)).count ( )+""); + + /*主网单位数据完整率 data_integrity_rate*/ + double data_integrity_rate=0.00; + List monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (mysqlIndexList, dataDate); + /*求平均值*/ + if(!CollectionUtils.isEmpty (monitorDataIntegrityDTOList)){ + data_integrity_rate = monitorDataIntegrityDTOList.stream ( ).mapToDouble (temp -> { + return temp.getDataIntegrity ( ).doubleValue ( ); + }).average ( ).getAsDouble ( ); + } + + + /*主网单位数据异常监测点数日统计 is_unusual*/ + Integer is_unusual =this.queryIsUnusualCount(mysqlIndexList,primaryGridParam.getDataDate ()); + + ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO( ); + rOperatingIndexDPO.setOrgNo (orgid); + rOperatingIndexDPO.setDataDate (tempDate); + rOperatingIndexDPO.setMeasurementRunPoints (measurement_run_points); + rOperatingIndexDPO.setTransitMeasurementPoints (transit_measurement_points); + rOperatingIndexDPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); + rOperatingIndexDPO.setOnlineMeasurementPoints (online_measurement_points); + rOperatingIndexDPO.setOnlineMeasurementCount (online_measurement_count); + rOperatingIndexDPO.setDataIntegrityRate (data_integrity_rate); + rOperatingIndexDPO.setIsUnusual (is_unusual>0?1:0); + rOperatingIndexDPOList.add (rOperatingIndexDPO); + }); + if(!CollectionUtils.isEmpty (rOperatingIndexDPOList)){ + rOperatingIndexDPOService.saveOrUpdateBatchByMultiId (rOperatingIndexDPOList,30); + } + + } + /** + * @Description: queryIsUnusualCount :用监测点id在r_stat_abnormal_d表中查找value_alarm为0的监测点个数 + * @Param: [mysqlIndexList, dataDate] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/11/28 + */ + private Integer queryIsUnusualCount(List mysqlIndexList, String dataDate) { + + if(CollectionUtils.isEmpty (mysqlIndexList)){ + return 0; + } + + QueryWrapper rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper ( ); + rStatAbnormalDPOLambdaQueryWrapper. + in ("measurement_point_id",mysqlIndexList). + eq ("value_alarm", 0). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + Integer integer = rStatAbnormalDPOMapper.selectCount (rStatAbnormalDPOLambdaQueryWrapper); + + return integer; + } + + + + /** + * @Description: 主网单位有效接入监测点个数 + * 1.获取pms_monitor表中监测点状态为投运的监测点id列表 + * 2.根据id查询r_mp_integrity_d表中当天各项指标个数,采用以下公式计算数据完整率 + * 3.〖数据完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100% + * 判定监测点数据完整率是否大于95% + * 4、根据id查询r_stat_abnormal_d表,value_alarm为1。 + * 5、以上两个条件满足表明该监测点为有效监测点。 + * 6、统计有效监测点个数 + * @Param: [indexlist, dataDate] + * @return: java.lang.String + * @Author: clam + * @Date: 2022/11/25 + */ + private Integer queryEffectiveAccessMeasurementCount(List indexlist, String dataDate) { + + /*获取监测点的数据完整性*/ + List monitorDataIntegrityDTOList = rMpIntegrityDPOService.calculateDataIntegrity (indexlist, dataDate); + /*获取完整率>0.95的监测点id*/ + List collect = monitorDataIntegrityDTOList.stream ( ). + filter (temp -> temp.getDataIntegrity ().compareTo (new BigDecimal (0.95)) == 1 + ).map (MonitorDataIntegrityDTO::getId).collect (Collectors.toList ( )); + /*获取完整率>0.95条件下value_alarm为1的监测点id*/ + if(CollectionUtils.isEmpty (collect)){ + return 0; + } + QueryWrapper rStatAbnormalDPOLambdaQueryWrapper = new QueryWrapper ( ); + rStatAbnormalDPOLambdaQueryWrapper.select ("measurement_point_id"). + in ("measurement_point_id",collect). + eq ("value_alarm", 1). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + List rStatAbnormalDPOS = rStatAbnormalDPOMapper.selectList (rStatAbnormalDPOLambdaQueryWrapper); + + return rStatAbnormalDPOS.size (); + + } + + + + + + /** + * @Description: hanlderOracleQtr + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + @SneakyThrows + private void hanlderOracleQtr(PrimaryGridParam primaryGridParam) { + + List orgIdList = primaryGridParam.getOrgIdList ( ); + String dataDate = primaryGridParam.getDataDate ( ); + List rOperatingIndexQPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate); + orgIdList.forEach (orgid -> { + /*查询Mouth表数据生成季表数据*/ + List list = rOperatingIndexMPOService.queryOneQtrData(orgid,dataDate); + /*求平均值*/ + int measurement_run_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getMeasurementRunPoints ( )). + average ( ). + getAsDouble ( )); + int transit_measurement_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getTransitMeasurementPoints ()). + average ( ). + getAsDouble ( )); + int effective_access_measurement_count =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()). + average ( ). + getAsDouble ( )); + int online_measurement_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getOnlineMeasurementPoints ()). + average ( ). + getAsDouble ( )); + + int online_measurement_count =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getOnlineMeasurementCount ()). + average ( ). + getAsDouble ( )); + /*double保留2位小数*/ + Double data_integrity_rate =Math.round (list.stream ( ). + mapToDouble (temp -> temp.getDataIntegrityRate ()). + average ( ). + getAsDouble ( )*100)*0.01; + /*看day表is_unusual时候存在1存在返回1,数据否异常(0:正常 1:异常)*/ + Integer is_unusual =list.stream (). + map (ROperatingIndexMPO::getIsUnusual). + collect (Collectors.toList ()) + .contains (1)?1:0; + + + ROperatingIndexQPO rOperatingIndexQPO = new ROperatingIndexQPO( ); + rOperatingIndexQPO.setOrgNo (orgid); + rOperatingIndexQPO.setDataDate (tempDate); + rOperatingIndexQPO.setMeasurementRunPoints (measurement_run_points); + rOperatingIndexQPO.setTransitMeasurementPoints (transit_measurement_points); + rOperatingIndexQPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); + rOperatingIndexQPO.setOnlineMeasurementPoints (online_measurement_points); + rOperatingIndexQPO.setOnlineMeasurementCount (online_measurement_count); + rOperatingIndexQPO.setDataIntegrityRate (data_integrity_rate); + rOperatingIndexQPO.setIsUnusual (is_unusual); + rOperatingIndexQPOList.add (rOperatingIndexQPO); + }); + if(!CollectionUtils.isEmpty (rOperatingIndexQPOList)){ + rOperatingIndexQPOService.saveOrUpdateBatchByMultiId (rOperatingIndexQPOList,30); + } + } + + /** + * @Description: hanlderOracleYear + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + @SneakyThrows + private void hanlderOracleYear(PrimaryGridParam primaryGridParam) { + + List orgIdList = primaryGridParam.getOrgIdList ( ); + String dataDate = primaryGridParam.getDataDate ( ); + List rOperatingIndexYPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse(dataDate); + orgIdList.forEach (orgid -> { + /*查询Mouth表数据生成年表数据*/ + List list = rOperatingIndexMPOService.queryOneYearData(orgid,dataDate); + /*求平均值*/ + int measurement_run_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getMeasurementRunPoints ( )). + average ( ). + getAsDouble ( )); + int transit_measurement_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getTransitMeasurementPoints ()). + average ( ). + getAsDouble ( )); + int effective_access_measurement_count =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getEffectiveAccessMeasurementCount ()). + average ( ). + getAsDouble ( )); + int online_measurement_points =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getOnlineMeasurementPoints ()). + average ( ). + getAsDouble ( )); + + int online_measurement_count =(int) Math.round (list.stream ( ). + mapToDouble (temp -> temp.getOnlineMeasurementCount ()). + average ( ). + getAsDouble ( )); + /*double保留2位小数*/ + Double data_integrity_rate =Math.round (list.stream ( ). + mapToDouble (temp -> temp.getDataIntegrityRate ()). + average ( ). + getAsDouble ( )*100)*0.01; + /*看day表is_unusual时候存在1存在返回1,数据否异常(0:正常 1:异常)*/ + Integer is_unusual =list.stream (). + map (ROperatingIndexMPO::getIsUnusual). + collect (Collectors.toList ()) + .contains (1)?1:0; + + + ROperatingIndexYPO rOperatingIndexYPO = new ROperatingIndexYPO( ); + rOperatingIndexYPO.setOrgNo (orgid); + rOperatingIndexYPO.setDataDate (tempDate); + rOperatingIndexYPO.setMeasurementRunPoints (measurement_run_points); + rOperatingIndexYPO.setTransitMeasurementPoints (transit_measurement_points); + rOperatingIndexYPO.setEffectiveAccessMeasurementCount (effective_access_measurement_count); + rOperatingIndexYPO.setOnlineMeasurementPoints (online_measurement_points); + rOperatingIndexYPO.setOnlineMeasurementCount (online_measurement_count); + rOperatingIndexYPO.setDataIntegrityRate (data_integrity_rate); + rOperatingIndexYPO.setIsUnusual (is_unusual); + rOperatingIndexYPOList.add (rOperatingIndexYPO); + }); + if(!CollectionUtils.isEmpty (rOperatingIndexYPOList)){ + rOperatingIndexYPOService.saveOrUpdateBatchByMultiId (rOperatingIndexYPOList,30); + } + + } + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpDevEvaluateDetailPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpDevEvaluateDetailPOServiceImpl.java new file mode 100644 index 000000000..7c689b98d --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpDevEvaluateDetailPOServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RMpDevEvaluateDetailPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.RMpDevEvaluateDetailPOService; +import org.springframework.stereotype.Service; +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/1 9:18【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RMpDevEvaluateDetailPOServiceImpl extends MppServiceImpl implements RMpDevEvaluateDetailPOService{ + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpIntegrityDPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpIntegrityDPOServiceImpl.java new file mode 100644 index 000000000..d7a53b6a0 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpIntegrityDPOServiceImpl.java @@ -0,0 +1,105 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.po.RMpIntegrityDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RMpIntegrityDPOMapper; +import com.njcn.prepare.harmonic.pojo.dto.MonitorDataIntegrityDTO; +import com.njcn.prepare.harmonic.service.mysql.area.RMpIntegrityDPOService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 15:38【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RMpIntegrityDPOServiceImpl extends ServiceImpl implements RMpIntegrityDPOService{ + + private @Autowired + RMpIntegrityDPOMapper rMpIntegrityDPOMapper; + /** + * @Description: 获取监测点的数据完整性(日) + * @Param: 〖数据完整率〗_日统计=(频率+相电压+线电压+畸变率+不平衡度)/(有效值数据个数*5)*100% + * @return: com.njcn.prepare.harmonic.pojo.dto.MonitorDataIntegrityDTO + * @Author: clam + * @Date: 2022/11/28 + */ + @Override + public List calculateDataIntegrity(List indexlist, String dataDate){ + + List monitorDataIntegrityDTOList = new ArrayList<> (); + QueryWrapper wrapper = new QueryWrapper ( ); + if(CollectionUtils.isEmpty (indexlist)){ + return monitorDataIntegrityDTOList; + } + wrapper.in ("measurement_point_id",indexlist). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",dataDate); + + List rMpIntegrityDPOS = rMpIntegrityDPOMapper.selectList (wrapper); + monitorDataIntegrityDTOList = rMpIntegrityDPOS.stream ( ). + map (temp -> { + MonitorDataIntegrityDTO monitorDataIntegrityDTO = new MonitorDataIntegrityDTO(); + + Integer molecular = temp.getFreqCount ( ) + temp.getPhaseVoltageCount ( ) + + temp.getLineVoltageCount ( ) + temp.getVThdCount ( ) + + temp.getUnbalanceCount ( ); + Integer denominator = 5 * temp.getEffectiveMinuteCount ( ); + BigDecimal b = new BigDecimal ((float) molecular / denominator); + BigDecimal dataIntegrity = b.setScale (2, BigDecimal.ROUND_HALF_UP); + monitorDataIntegrityDTO.setId (temp.getMeasurementPointId ()); + monitorDataIntegrityDTO.setDataIntegrity (dataIntegrity); + return monitorDataIntegrityDTO; + }).collect (Collectors.toList ()); + + return monitorDataIntegrityDTOList; + + } + /** + * @Description: 获取监测点的数据完整性(月平均值) + * @Param: [indexlist, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/12/1 + */ + @Override + public List calculateMouthDataIntegrity(List indexlist, String dataDate) { + List monitorDataIntegrityDTOList = new ArrayList<> (); + QueryWrapper wrapper = new QueryWrapper ( ); + if(CollectionUtils.isEmpty (indexlist)){ + return monitorDataIntegrityDTOList; + } + wrapper.in ("measurement_point_id",indexlist). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7)); + + List rMpIntegrityDPOS = rMpIntegrityDPOMapper.selectList (wrapper); + monitorDataIntegrityDTOList = rMpIntegrityDPOS.stream ( ). + map (temp -> { + MonitorDataIntegrityDTO monitorDataIntegrityDTO = new MonitorDataIntegrityDTO(); + + Integer molecular = temp.getFreqCount ( ) + temp.getPhaseVoltageCount ( ) + + temp.getLineVoltageCount ( ) + temp.getVThdCount ( ) + + temp.getUnbalanceCount ( ); + Integer denominator = 5 * temp.getEffectiveMinuteCount ( ); + BigDecimal b = new BigDecimal ((float) molecular / denominator); + BigDecimal dataIntegrity = b.setScale (2, BigDecimal.ROUND_HALF_UP); + monitorDataIntegrityDTO.setId (temp.getMeasurementPointId ()); + monitorDataIntegrityDTO.setDataIntegrity (dataIntegrity); + return monitorDataIntegrityDTO; + }).collect (Collectors.toList ()); + + return monitorDataIntegrityDTOList; + } + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpTargetWarnDServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpTargetWarnDServiceImpl.java new file mode 100644 index 000000000..b20dcdb6c --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RMpTargetWarnDServiceImpl.java @@ -0,0 +1,54 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper; +import com.njcn.prepare.harmonic.service.mysql.area.RMpTargetWarnDService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/15 11:00【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@DS("master") +public class RMpTargetWarnDServiceImpl extends MppServiceImpl implements RMpTargetWarnDService { + + + private @Autowired + RMpTargetWarnDMapper rMpTargetWarnDMapper; + /** + * @param monitorIdList + * @param dataDate + * @Description: 计算出当前机构累计稳态超标监测点数(当月) + * @Param: [monitorIdList, dataDate] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/12/15 + */ + @Override + public Integer queryHarmonicMeasurementAccrued(List monitorIdList, String dataDate) { + Integer result = 0; + + QueryWrapper wrapper = new QueryWrapper ( ); + if(CollectionUtils.isEmpty (monitorIdList)){ + return result; + } + wrapper.select ("distinct measurement_point_id "). + in ("measurement_point_id",monitorIdList). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7)). + eq ("is_harmonic",1); + result = rMpTargetWarnDMapper.selectCount (wrapper); + return result; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexDPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexDPOServiceImpl.java new file mode 100644 index 000000000..e07cfba44 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexDPOServiceImpl.java @@ -0,0 +1,50 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.ROperatingIndexDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexDPOService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 10:01【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class ROperatingIndexDPOServiceImpl extends MppServiceImpl implements ROperatingIndexDPOService{ + + + private @Autowired + ROperatingIndexDPOMapper rOperatingIndexDPOMapper; + /** + * @param orgid + * @param dataDate + * @Description: 查询day表一个月的数据数据生成月表数据 + * @Param: [orgid, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/11/30 + */ + @Override + public List queryOneMothData(String orgid, String dataDate) { + + + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq ("org_no", orgid). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7)); + List list = rOperatingIndexDPOMapper.selectList (queryWrapper); + + + + return list; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexMPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexMPOServiceImpl.java new file mode 100644 index 000000000..0b5ab66cb --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexMPOServiceImpl.java @@ -0,0 +1,69 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.ROperatingIndexMPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexMPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexMPOService; +import com.njcn.prepare.harmonic.utils.PublicUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 13:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class ROperatingIndexMPOServiceImpl extends MppServiceImpl implements ROperatingIndexMPOService{ + + private @Autowired + ROperatingIndexMPOMapper rOperatingIndexMPOMapper; + /** + * @param orgid + * @param dataDate + * @Description: queryOneQtrData 查询一季度Mouth表数据 + * @Param: [orgid, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/11/30 + */ + @Override + public List queryOneQtrData(String orgid, String dataDate) { + + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq ("org_no", orgid). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List list = rOperatingIndexMPOMapper.selectList (queryWrapper); + + + + return list; + } + + /** + * @param orgid + * @param dataDate + * @Description: queryOneYearData 查询一年Mouth表数据 + * @Param: [orgid, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/11/30 + */ + @Override + public List queryOneYearData(String orgid, String dataDate) { + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq ("org_no", orgid). + eq("YEAR( data_date )",dataDate.substring (0, 4)); + List list = rOperatingIndexMPOMapper.selectList (queryWrapper); + + return list; + } + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexQPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexQPOServiceImpl.java new file mode 100644 index 000000000..80f860dbb --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexQPOServiceImpl.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.ROperatingIndexQPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexQPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexQPOService; +import org.springframework.stereotype.Service; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 15:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class ROperatingIndexQPOServiceImpl extends MppServiceImpl implements ROperatingIndexQPOService{ + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexYPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexYPOServiceImpl.java new file mode 100644 index 000000000..e627d8843 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/ROperatingIndexYPOServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.ROperatingIndexYPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexYPOMapper; +import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexYPOService; +import org.springframework.stereotype.Service; +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 15:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class ROperatingIndexYPOServiceImpl extends MppServiceImpl implements ROperatingIndexYPOService{ + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatAbnormalDPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatAbnormalDPOServiceImpl.java new file mode 100644 index 000000000..b60288f06 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatAbnormalDPOServiceImpl.java @@ -0,0 +1,109 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.PmsMonitorPO; +import com.njcn.harmonic.pojo.po.ROperatingIndexDPO; +import com.njcn.harmonic.pojo.po.RStatAbnormalDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatAbnormalDPOMapper; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam; +import com.njcn.prepare.harmonic.service.mysql.area.PmsMonitorPOService; +import com.njcn.prepare.harmonic.service.mysql.area.RStatAbnormalDPOService; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; +import lombok.SneakyThrows; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/28 19:31【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatAbnormalDPOServiceImpl extends MppServiceImpl implements RStatAbnormalDPOService { + + + + private @Autowired + RStatAbnormalDPOMapper rStatAbnormalDPOMapper; + + private @Autowired + PmsMonitorPOService pmsMonitorPOService; + + + private @Autowired + PqLinedetailPOService pqLinedetailPOService; + + /** + * @param primaryGridParam + * @Description: rStatAbnormalDDataHanlder + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/28 + */ + @Override + @Async("asyncExecutor") + public void rStatAbnormalDDataHanlder(PrimaryGridParam primaryGridParam) { + if (Objects.equals (primaryGridParam.getDataSource ( ), 0)) { + this.hanlderOracleData (primaryGridParam); + } else if (Objects.equals (primaryGridParam.getDataSource ( ), 1)) { + this.hanlderInfludxbData (primaryGridParam); + } + } + /** + * @Description: 处理influxdb数据 todo 本次不做处理 + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + private void hanlderInfludxbData(PrimaryGridParam primaryGridParam) { + } + + /** + * @Description: 处理Oracle数据目前只有日表数据处理 + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + @SneakyThrows + private void hanlderOracleData(PrimaryGridParam primaryGridParam) { + + List orgIdList = primaryGridParam.getOrgIdList ( ); + String dataDate = primaryGridParam.getDataDate ( ); + List rOperatingIndexDPOList = new ArrayList<> ( ); + + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd ").parse(dataDate); + + orgIdList.forEach (orgid -> { + + /*measurement_run_points:在运监测点个数*/ + /*measurement_run_points:在运监测点个数*/ + List pmsMonitorPOS = pmsMonitorPOService.qurymeasurementRunPoints (orgid); + /*获取mysql与Oracle监测点id对应关系*/ + List mysqlIndexList = pmsMonitorPOS.stream ( ).map (PmsMonitorPO::getId).collect (Collectors.toList ( )); + + List pqLinedetailPOS = pqLinedetailPOService.queryOracleIndexIdByMysqlIndexId (mysqlIndexList); + List oracleIndexlist = pqLinedetailPOS.stream ( ).map (PqLinedetailPO::getLineIndex).collect (Collectors.toList ( )); + + + + }); + + + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgDServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgDServiceImpl.java new file mode 100644 index 000000000..de0b46399 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgDServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RStatOrgDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper; +import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgDService; +import org.springframework.stereotype.Service; +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/13 15:39【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatOrgDServiceImpl extends MppServiceImpl implements RStatOrgDService{ + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgMServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgMServiceImpl.java new file mode 100644 index 000000000..2c74cdbdd --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgMServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.area; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RStatOrgMPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper; +import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgMService; +import org.springframework.stereotype.Service; +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/14 16:17【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RStatOrgMServiceImpl extends MppServiceImpl implements RStatOrgMService{ + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/AlarmDetailServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/AlarmDetailServiceImpl.java new file mode 100644 index 000000000..d36e8f48a --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/AlarmDetailServiceImpl.java @@ -0,0 +1,423 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.device.pms.api.DistributionMonitorClient; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.po.DistributionMonitor; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO; +import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.*; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.AlarmDetailService; +import com.njcn.system.api.DicDataFeignClient; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.List; +import java.util.Objects; + +/** + * 数据是否异常 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/29 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class AlarmDetailServiceImpl implements AlarmDetailService { + + private final DistributionMonitorClient distributionMonitorClient; + + private final MonitorClient monitorClient; + + private final DicDataFeignClient dicDataFeignClient; + + private final RMpTargetWarnDMapper rMpTargetWarnDMapper; + + private final RMpMeasurePhaseReportDPOMapper rMpMeasurePhaseReportDPOMapper; + + private final RMpMeasureReportDPOMapper rMpMeasureReportDPOMapper; + + private final RMpHarmonicVRateReportDPOMapper rMpHarmonicVRateReportDPOMapper; + + private final RMpEventDetailDMapper rMpEventDetailDMapper; + + private final RMpPltReportDPOMapper rMpPltReportDPOMapper; + + /** + * 电压偏差告警日统计 + * @author qijian + * @date 2022/12/28 + * @return + */ + @Override + @Async("asyncExecutor") + public boolean alarmDetailAlarm(LineParam lineParam) { + //初始化 + String date = lineParam.getDataDate(); + List lineIds = lineParam.getLineIds(); + Integer type = lineParam.getType(); + + //获取监测点数据,进行业务操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + processVoltageDeviationAlarm(date,type, monitor.getLineId()); + processFrequencyDeviationAlarm(date,type, monitor.getLineId()); + processUnbalance95Alarm(date,type, monitor.getLineId()); + processVoltageHarmonicThd95Alarm(date,type, monitor.getLineId()); + processFlashingAlarm(date,type, monitor.getLineId()); + processSagTimesAlarm(date,type, monitor.getLineId()); + processInterruptTimesAlarm(date,type, monitor.getLineId()); + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + processVoltageDeviationAlarm(date,type, distributionMonitor.getMonitorId()); + processFrequencyDeviationAlarm(date,type, distributionMonitor.getMonitorId()); + processUnbalance95Alarm(date,type, distributionMonitor.getMonitorId()); + processVoltageHarmonicThd95Alarm(date,type, distributionMonitor.getMonitorId()); + processFlashingAlarm(date,type, distributionMonitor.getMonitorId()); + processSagTimesAlarm(date,type, distributionMonitor.getMonitorId()); + processInterruptTimesAlarm(date,type, distributionMonitor.getMonitorId()); + } + } else { + //根据监测点类型取数据 + for (String lineId : lineIds) { + processVoltageDeviationAlarm(date,type, lineId); + processFrequencyDeviationAlarm(date,type, lineId); + processUnbalance95Alarm(date,type, lineId); + processVoltageHarmonicThd95Alarm(date,type, lineId); + processFlashingAlarm(date,type, lineId); + processSagTimesAlarm(date,type, lineId); + processInterruptTimesAlarm(date,type, lineId); + } + } + return true; + } + + /** + * 处理数据(电压偏差告警日统计) + * @author qijian + * @date 2022/12/28 + */ + private void processVoltageDeviationAlarm(String date, Integer type, String lineId) { + //日期条件(取前天、昨天、今天) + LocalDate localDate = LocalDate.parse(date); + LocalDate yesterday = localDate.plusDays(-1); + LocalDate beforeYesterday = yesterday.plusDays(-1); + double localMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, localDate); + double yesterdayMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, yesterday); + double beforeYesterdayMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, beforeYesterday); + + //计算RM和CL值 + double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2; + double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3; + + //计算RL和UCL值 + double rl = rm * 3.3; + double ucl = cl + rm * 3; + + //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警 + if (localMax > ucl && localMax > yesterdayMax){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsVDevWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + + //如果本日>昨日>前日,且前日的值超过RL值,则告警 + if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsVDevWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + } + + /** + * 处理数据(频率偏差告警日统计) + * @author qijian + * @date 2022/12/29 + */ + private void processFrequencyDeviationAlarm(String date, Integer type, String lineId) { + //日期条件(取前天、昨天、今天) + LocalDate localDate = LocalDate.parse(date); + LocalDate yesterday = localDate.plusDays(-1); + LocalDate beforeYesterday = yesterday.plusDays(-1); + double localMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, localDate); + double yesterdayMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, yesterday); + double beforeYesterdayMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, beforeYesterday); + + //计算RM和CL值 + double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2; + double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3; + + //计算RL和UCL值 + double rl = rm * 3.3; + double ucl = cl + rm * 3; + + //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警 + if (localMax > ucl && localMax > yesterdayMax){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsFreqWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + + //如果本日>昨日>前日,且前日的值超过RL值,则告警 + if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsFreqWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + } + + /** + * 处理数据(三相电压不平衡告警日统计) + * @author qijian + * @date 2022/12/29 + */ + private void processUnbalance95Alarm(String date, Integer type, String lineId) { + //日期条件(取前天、昨天、今天) + LocalDate localDate = LocalDate.parse(date); + LocalDate yesterday = localDate.plusDays(-1); + LocalDate beforeYesterday = yesterday.plusDays(-1); + double localMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, localDate); + double yesterdayMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, yesterday); + double beforeYesterdayMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, beforeYesterday); + + //计算RM和CL值 + double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2; + double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3; + + //计算RL和UCL值 + double rl = rm * 3.3; + double ucl = cl + rm * 3; + + //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警 + if (localMax > ucl && localMax > yesterdayMax){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsUnbalanceWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + + //如果本日>昨日>前日,且前日的值超过RL值,则告警 + if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsUnbalanceWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + } + + /** + * 处理数据(谐波电压告警日统计) + * @author qijian + * @date 2022/12/29 + */ + private void processVoltageHarmonicThd95Alarm(String date, Integer type, String lineId) { + //日期条件(取前天、昨天、今天) + LocalDate localDate = LocalDate.parse(date); + LocalDate yesterday = localDate.plusDays(-1); + LocalDate beforeYesterday = yesterday.plusDays(-1); + double localMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, localDate); + double yesterdayMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, yesterday); + double beforeYesterdayMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, beforeYesterday); + + //计算RM和CL值 + double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2; + double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3; + + //计算RL和UCL值 + double rl = rm * 3.3; + double ucl = cl + rm * 3; + + //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警 + if (localMax > ucl && localMax > yesterdayMax){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsVWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + + //如果本日>昨日>前日,且前日的值超过RL值,则告警 + if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsVWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + } + + /** + * 处理数据(长时电压闪变告警日统计) + * @author qijian + * @date 2022/12/30 + */ + private void processFlashingAlarm(String date, Integer type, String lineId) { + //日期条件(取前天、昨天、今天) + LocalDate localDate = LocalDate.parse(date); + LocalDate yesterday = localDate.plusDays(-1); + LocalDate beforeYesterday = yesterday.plusDays(-1); + double localMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, localDate); + double yesterdayMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, yesterday); + double beforeYesterdayMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, beforeYesterday); + + //计算RM和CL值 + double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2; + double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3; + + //计算RL和UCL值 + double rl = rm * 3.3; + double ucl = cl + rm * 3; + + //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警 + if (localMax > ucl && localMax > yesterdayMax){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsFlickerWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + + //如果本日>昨日>前日,且前日的值超过RL值,则告警 + if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsFlickerWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + } + + /** + * 处理数据(电压暂降告警日统计) + * @author qijian + * @date 2022/12/29 + */ + private void processSagTimesAlarm(String date, Integer type, String lineId) { + //日期条件(取前天、昨天、今天) + LocalDate localDate = LocalDate.parse(date); + LocalDate yesterday = localDate.plusDays(-1); + LocalDate beforeYesterday = yesterday.plusDays(-1); + int localMax = rMpEventDetailDMapper.getSagTimes(lineId, localDate); + int yesterdayMax = rMpEventDetailDMapper.getSagTimes(lineId, yesterday); + int beforeYesterdayMax = rMpEventDetailDMapper.getSagTimes(lineId, beforeYesterday); + + //计算RM和CL值 + double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2; + double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3; + + //计算RL和UCL值 + double rl = rm * 3.3; + double ucl = cl + rm * 3; + + //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警 + if (localMax > ucl && localMax > yesterdayMax){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsSagWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + + //如果本日>昨日>前日,且前日的值超过RL值,则告警 + if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsSagWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + } + + /** + * 处理数据(电压短时中断告警日统计) + * @author qijian + * @date 2022/12/29 + */ + private void processInterruptTimesAlarm(String date, Integer type, String lineId) { + //日期条件(取前天、昨天、今天) + LocalDate localDate = LocalDate.parse(date); + LocalDate yesterday = localDate.plusDays(-1); + LocalDate beforeYesterday = yesterday.plusDays(-1); + int localMax = rMpEventDetailDMapper.getInterruptTimes(lineId, localDate); + int yesterdayMax = rMpEventDetailDMapper.getInterruptTimes(lineId, yesterday); + int beforeYesterdayMax = rMpEventDetailDMapper.getInterruptTimes(lineId, beforeYesterday); + + //计算RM和CL值 + double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2; + double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3; + + //计算RL和UCL值 + double rl = rm * 3.3; + double ucl = cl + rm * 3; + + //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警 + if (localMax > ucl && localMax > yesterdayMax){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsInterruptWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + + //如果本日>昨日>前日,且前日的值超过RL值,则告警 + if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){ + RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO(); + rMpTargetWarnD.setMeasurementPointId(lineId); + rMpTargetWarnD.setDataDate(DateUtil.parse(date)); + rMpTargetWarnD.setIsInterruptWarn(1); + addAlarmData(rMpTargetWarnD); + return; + } + } + + /** + * 存入数据库 + * @author qijian + * @date 2022/12/28 + */ + private void addAlarmData(RMpTargetWarnDPO rMpTargetWarnD) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RMpTargetWarnDPO::getMeasurementPointId, rMpTargetWarnD.getMeasurementPointId()).eq(RMpTargetWarnDPO::getDataDate, rMpTargetWarnD.getDataDate()); + RMpTargetWarnDPO rMpTargetWarnDOne = rMpTargetWarnDMapper.selectOne(lambdaQueryWrapper); + if (Objects.nonNull(rMpTargetWarnDOne)) { + rMpTargetWarnDMapper.update(rMpTargetWarnD, lambdaQueryWrapper); + } else { + rMpTargetWarnDMapper.insert(rMpTargetWarnD); + } + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DataExceptionServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DataExceptionServiceImpl.java new file mode 100644 index 000000000..0a4fac4b3 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DataExceptionServiceImpl.java @@ -0,0 +1,398 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.device.pms.api.DistributionMonitorClient; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.po.DistributionMonitor; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pq.constant.Param; +import com.njcn.device.pq.enums.DeviceResponseEnum; +import com.njcn.device.pq.pojo.po.DataV; +import com.njcn.device.pq.pojo.po.PmsAbnormalRules; +import com.njcn.device.pq.pojo.po.RStatAbnormalD; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; +import com.njcn.prepare.harmonic.mapper.mysql.line.PmsAbnormalRulesMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RStatAbnormalDMapper; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO; +import com.njcn.prepare.harmonic.service.influxdb.DataExceptionInfluxService; +import com.njcn.prepare.harmonic.service.mysql.line.DataExceptionService; +import com.njcn.prepare.harmonic.service.oracle.DataVOraclePOService; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Objects; + +/** + * 数据是否异常 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/29 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class DataExceptionServiceImpl implements DataExceptionService { + + private final PmsAbnormalRulesMapper pmsAbnormalRulesMapper; + + private final RStatAbnormalDMapper rStatAbnormalDMapper; + + private final DistributionMonitorClient distributionMonitorClient; + + private final MonitorClient monitorClient; + + private final DicDataFeignClient dicDataFeignClient; + + private final DataExceptionInfluxService dataExceptionInfluxService; + + private final DataVOraclePOService dataVOraclePOService; + + private final PqLinedetailPOService pqLinedetailPOService; + + /** + * 监测点数据是否异常(日统计) + * @author qijian + * @date 2022/11/29 + * @return + */ + @Override + @Async("asyncExecutor") + public DeviceResponseEnum lineDataException(LineParam lineParam) { + DeviceResponseEnum deviceResponseEnum = null; + if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.ORACLE_DATA)) { + deviceResponseEnum = hanlderOracleData(lineParam); + } else if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.INFLUX_DATA)) { + deviceResponseEnum = hanlderInfluxData (lineParam); + } + return deviceResponseEnum; + } + + /** + * 处理数据(influx>mysql) + * @author qijian + * @date 2022/11/29 + */ + private DeviceResponseEnum hanlderInfluxData(LineParam lineParam) { + //初始化 + Date date = DateUtil.parse(lineParam.getDataDate()); + List lineIds = lineParam.getLineIds(); + Integer type = lineParam.getType(); + Integer lineType = lineParam.getLineType(); + + //1、取出规则 + List pmsAbnormalRules = pmsAbnormalRulesMapper.selectList(null); + + //2、取出电压字典 + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_VOLTAGE.getName()).getData(); + + //3、获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + Double voltage = getVoltage(monitor.getVoltageLevel(), dictDataList); + DeviceResponseEnum deviceResponseEnum = processInfluxData(monitor.getLineId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + Double voltage = getVoltage(distributionMonitor.getVoltageLevel(), dictDataList); + DeviceResponseEnum deviceResponseEnum = processInfluxData(distributionMonitor.getMonitorId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + } else { + //根据监测点类型取数据 + if (AlgorithmParam.MAIN_NET.equals(lineType)){ + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + Double voltage = getVoltage(monitor.getVoltageLevel(), dictDataList); + DeviceResponseEnum deviceResponseEnum = processInfluxData(monitor.getLineId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + }else{ + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + Double voltage = getVoltage(distributionMonitor.getVoltageLevel(), dictDataList); + DeviceResponseEnum deviceResponseEnum = processInfluxData(distributionMonitor.getMonitorId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + } + } + + return null; + } + + /** + * 处理数据(influx>mysql) + * @author qijian + * @date 2022/11/29 + * @return + */ + private DeviceResponseEnum processInfluxData(String lineId, Double voltage, Date date, Integer type, List pmsAbnormalRules) { + //取前四项进行比较(相别为A) + DataV dataV = dataExceptionInfluxService.getFirstFourItems(lineId,date,type); + //查不到数据为null,直接返回 + if (Objects.isNull(dataV)){ + return null; + } + + DeviceResponseEnum harmonicResponseEnum = null; + + //根据规则表进行判断 + for (PmsAbnormalRules pmsAbnormalRule : pmsAbnormalRules) { + //每项数据进行上下限比较(MAX和MIN),若有一项不在数据范围内,则为异常 + switch (pmsAbnormalRule.getTarget()) { + case Param.TARGET_FREQ: + //频率:正常比较 + if (dataV.getFrepMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getFrepMAX() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_FREP_RULE; + } + break; + case Param.TARGET_RMS: + //相电压有效值特殊处理:在【0.85p.u.,1.2p.u.】之间;p.u=电压等级/1.732 + pmsAbnormalRule.setLowerLimit((pmsAbnormalRule.getLowerLimit() * (voltage / 1.732))); + pmsAbnormalRule.setUpperLimit((pmsAbnormalRule.getUpperLimit() * (voltage / 1.732))); + if (dataV.getRmsMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getRmsMAX() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_RMS_RULE; + } + break; + case Param.TARGET_RMS_LVR: + //线电压有效值特殊处理:在【0.85p.u.,1.2p.u.】之间;p.u=电压等级 + pmsAbnormalRule.setLowerLimit((pmsAbnormalRule.getLowerLimit() * voltage)); + pmsAbnormalRule.setUpperLimit((pmsAbnormalRule.getUpperLimit() * voltage)); + if (dataV.getRmsLvrMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getRmsLvrMAX() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_RMS_LVR_RULE; + } + break; + case Param.TARGET_V_THD: + //电压总谐波畸变率:正常比较 + if (dataV.getVThdMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getVThdMAX() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_V_THD_RULE; + } + break; + case Param.TARGET_V_UNBALANCE: + //三相不平衡度:正常比较(相别为T) + dataV = dataExceptionInfluxService.getUnbalance(lineId,date,type); + //InfluxDB查不到数据为null,所以直接返回 + if (Objects.isNull(dataV)){ + return null; + } + if (dataV.getVUnbalanceMIN() < pmsAbnormalRule.getLowerLimit() || dataV.getVUnbalanceMAX() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_V_UNBALANCE_RULE; + } + break; + default: + break; + } + + //有异常抛出并入库 + if (harmonicResponseEnum != null){ + addData(lineId, date); + return harmonicResponseEnum; + } + + } + return null; + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/11/29 + * @return + */ + private DeviceResponseEnum hanlderOracleData(LineParam lineParam) { + //初始化 + Date date = DateUtil.parse(lineParam.getDataDate()); + List lineIds = lineParam.getLineIds(); + Integer type = lineParam.getType(); + Integer lineType = lineParam.getLineType(); + + //1、取出规则 + List pmsAbnormalRules = pmsAbnormalRulesMapper.selectList(null); + + //2、取出电压字典 + List dictDataList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.DEV_VOLTAGE.getName()).getData(); + + //3、获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + //根据电压字典获取电压等级 + Double voltage = getVoltage(monitor.getVoltageLevel(),dictDataList); + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(monitor.getLineId()); + //处理数据(oracle>mysql) + DeviceResponseEnum deviceResponseEnum = processOracleData(pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex(), monitor.getLineId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + //根据电压字典获取电压等级 + Double voltage = getVoltage(distributionMonitor.getVoltageLevel(),dictDataList); + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(distributionMonitor.getMonitorId()); + //处理数据(oracle>mysql) + DeviceResponseEnum deviceResponseEnum = processOracleData(pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex(),distributionMonitor.getMonitorId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + } else { + //根据监测点类型取数据 + if (AlgorithmParam.MAIN_NET.equals(lineType)){ + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + //根据电压字典获取电压等级 + Double voltage = getVoltage(monitor.getVoltageLevel(),dictDataList); + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(monitor.getLineId()); + //处理数据(oracle>mysql) + DeviceResponseEnum deviceResponseEnum = processOracleData(pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex(),monitor.getLineId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + }else{ + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + //根据电压字典获取电压等级 + Double voltage = getVoltage(distributionMonitor.getVoltageLevel(),dictDataList); + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(distributionMonitor.getMonitorId()); + //处理数据(oracle>mysql) + DeviceResponseEnum deviceResponseEnum = processOracleData(pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex(),distributionMonitor.getMonitorId(), voltage, date, type, pmsAbnormalRules); + if (deviceResponseEnum != null){ + return deviceResponseEnum; + } + } + } + } + return null; + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/11/29 + */ + private DeviceResponseEnum processOracleData(Integer lineId, String monitorId, Double voltage, Date date, Integer type, List pmsAbnormalRules) { + //取五项进行比较 + DataVOracleVO dataVOracleVO = dataVOraclePOService.getFiveItemsForDataException(lineId, date, type); + //查不到数据为null,直接返回 + if (Objects.isNull(dataVOracleVO)){ + return null; + } + + DeviceResponseEnum harmonicResponseEnum = null; + + //根据规则表进行判断 + for (PmsAbnormalRules pmsAbnormalRule : pmsAbnormalRules) { + //每项数据进行上下限比较(MAX和MIN),若有一项不在数据范围内,则为异常 + switch (pmsAbnormalRule.getTarget()) { + case Param.TARGET_FREQ: + //频率:正常比较 + if (dataVOracleVO.getFreqMin() < pmsAbnormalRule.getLowerLimit() || dataVOracleVO.getFreqMax() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_FREP_RULE; + } + break; + case Param.TARGET_RMS: + //相电压有效值特殊处理:在【0.85p.u.,1.2p.u.】之间;p.u=电压等级/1.732 + pmsAbnormalRule.setLowerLimit((pmsAbnormalRule.getLowerLimit() * (voltage / 1.732))); + pmsAbnormalRule.setUpperLimit((pmsAbnormalRule.getUpperLimit() * (voltage / 1.732))); + if (dataVOracleVO.getRmsMin() < pmsAbnormalRule.getLowerLimit() || dataVOracleVO.getRmsMax() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_RMS_RULE; + } + break; + case Param.TARGET_RMS_LVR: + //线电压有效值特殊处理:在【0.85p.u.,1.2p.u.】之间;p.u=电压等级 + pmsAbnormalRule.setLowerLimit((pmsAbnormalRule.getLowerLimit() * voltage)); + pmsAbnormalRule.setUpperLimit((pmsAbnormalRule.getUpperLimit() * voltage)); + if (dataVOracleVO.getRmsLvrMin() < pmsAbnormalRule.getLowerLimit() || dataVOracleVO.getRmsLvrMax() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_RMS_LVR_RULE; + } + break; + case Param.TARGET_V_THD: + //电压总谐波畸变率:正常比较 + if (dataVOracleVO.getVThdMin() < pmsAbnormalRule.getLowerLimit() || dataVOracleVO.getVThdMax() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_V_THD_RULE; + } + break; + case Param.TARGET_V_UNBALANCE: + //三相不平衡度:正常比较 + if (dataVOracleVO.getVUnbalanceMin() < pmsAbnormalRule.getLowerLimit() || dataVOracleVO.getVUnbalanceMax() > pmsAbnormalRule.getUpperLimit()){ + harmonicResponseEnum = DeviceResponseEnum.ALGORITHM_V_UNBALANCE_RULE; + } + break; + default: + break; + } + + //有异常抛出并入库 + if (harmonicResponseEnum != null){ + addData(monitorId, date); + return harmonicResponseEnum; + } + } + return null; + } + + /** + * 有异常抛出并入库 + * @author qijian + * @date 2022/11/29 + */ + private void addData(String lineId, Date date) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RStatAbnormalD::getMeasurementPointId, lineId).eq(RStatAbnormalD::getDataDate, date); + RStatAbnormalD rStatAbnormalDOne = rStatAbnormalDMapper.selectOne(lambdaQueryWrapper); + if (Objects.isNull(rStatAbnormalDOne)){ + RStatAbnormalD rStatAbnormalD = new RStatAbnormalD(); + rStatAbnormalD.setDataDate(date); + rStatAbnormalD.setMeasurementPointId(lineId); + rStatAbnormalD.setValueAlarm(0); + rStatAbnormalDMapper.insert(rStatAbnormalD); + } + } + + + /** + * 根据电压字典获取电压等级 + * @author qijian + * @date 2022/11/29 + */ + private Double getVoltage(String id, List dictDataList){ + for (DictData dictData : dictDataList) { + if (dictData.getId().equals(id)){ + Double result = Double.valueOf(dictData.getValue()); + return result; + } + } + return null; + } + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DataIntegrityRateServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DataIntegrityRateServiceImpl.java new file mode 100644 index 000000000..f99069aba --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DataIntegrityRateServiceImpl.java @@ -0,0 +1,227 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.device.pms.api.DistributionMonitorClient; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.po.DistributionMonitor; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.device.pq.pojo.po.DataV; +import com.njcn.device.pq.pojo.po.RMpIntegrityD; +import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpIntegrityDMapper; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.pojo.po.DataFlicker; +import com.njcn.prepare.harmonic.pojo.vo.DataFlickerOracleVO; +import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO; +import com.njcn.prepare.harmonic.service.influxdb.DataIntegrityRateInfluxService; +import com.njcn.prepare.harmonic.service.mysql.line.DataIntegrityRateService; +import com.njcn.prepare.harmonic.service.oracle.DataFlickerOracleService; +import com.njcn.prepare.harmonic.service.oracle.DataVOraclePOService; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Objects; + +/** + * 数据完整率算法 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/11/29 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class DataIntegrityRateServiceImpl implements DataIntegrityRateService { + + private final InfluxDbUtils influxDbUtils; + + private final RMpIntegrityDMapper rMpIntegrityDMapper; + + private final DistributionMonitorClient distributionMonitorClient; + + private final MonitorClient monitorClient; + + private final DataIntegrityRateInfluxService dataIntegrityRateInfluxService; + + private final PqLinedetailPOService pqLinedetailPOService; + + private final DataVOraclePOService dataVOraclePOService; + + private final DataFlickerOracleService dataFlickerOracleService; + + /** + * 监测点日数据完整率 + * @author qijian + * @date 2022/11/29 + */ + @Override + @Async("asyncExecutor") + public boolean lineDataIntegrityRate(LineParam lineParam) { + if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.ORACLE_DATA)) { + hanlderOracleData(lineParam); + } else if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.INFLUX_DATA)) { + hanlderInfluxData(lineParam); + } + return true; + + } + + /** + * 处理数据(influxDB>mysql) + * @author qijian + * @date 2022/12/01 + */ + private void hanlderInfluxData(LineParam lineParam) { + //初始化 + Date date = DateUtil.parse(lineParam.getDataDate()); + List lineIds = lineParam.getLineIds(); + Integer lineType = lineParam.getLineType(); + Integer type = lineParam.getType(); + //有效接入分钟数量:根据监测点编号获取统计间隔(15),1440 / 15 = 有效接入分钟数量 + Integer effectiveMinuteCount = 1440 / AlgorithmParam.TIME_INTERVAL; + + //获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + processInfluxData(date,type,effectiveMinuteCount, monitor.getLineId()); + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + processInfluxData(date,type,effectiveMinuteCount, distributionMonitor.getMonitorId()); + } + } else { + //根据监测点类型取数据 + for (String lineId : lineIds) { + processInfluxData(date,type,effectiveMinuteCount, lineId); + } + } + } + + /** + * 处理数据(influxDB>mysql) + * @author qijian + * @date 2022/12/01 + */ + private void processInfluxData(Date date, Integer type, Integer effectiveMinuteCount, String lineId) { + RMpIntegrityD rMpIntegrityD = new RMpIntegrityD(); + rMpIntegrityD.setEffectiveMinuteCount(effectiveMinuteCount); + rMpIntegrityD.setMeasurementPointId(lineId); + rMpIntegrityD.setDataDate(date); + + //1、根据data_v表获取五项稳态指标日数量 + DataV dataV = dataIntegrityRateInfluxService.getFiveSteadyData(lineId, date,type); + + rMpIntegrityD.setFreqCount(dataV == null ? 0 : dataV.getFreqCount()); + rMpIntegrityD.setPhaseVoltageCount(dataV == null ? 0 : dataV.getRmsCount()); + rMpIntegrityD.setLineVoltageCount(dataV == null ? 0 : dataV.getRmsLvrCount()); + rMpIntegrityD.setVThdCount(dataV == null ? 0 : dataV.getVThdCount()); + rMpIntegrityD.setUnbalanceCount(dataV == null ? 0 : dataV.getVUnbalanceCount()); + + //2、根据data_flicker表获取两项闪变指标数量 + DataFlicker dataFlicker = dataIntegrityRateInfluxService.getTwoFlickerData(lineId, date,type); + rMpIntegrityD.setPstCount(dataFlicker == null ? 0 : dataFlicker.getPstCount()); + rMpIntegrityD.setPltCount(dataFlicker == null ? 0 : dataFlicker.getPltCount()); + + //3、存库 + addData(rMpIntegrityD); + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/12/01 + */ + private void hanlderOracleData(LineParam lineParam) { + //初始化 + Date date = DateUtil.parse(lineParam.getDataDate()); + List lineIds = lineParam.getLineIds(); + Integer lineType = lineParam.getLineType(); + Integer type = lineParam.getType(); + //有效接入分钟数量:根据监测点编号获取统计间隔(15),1440 / 15 = 有效接入分钟数量 + Integer effectiveMinuteCount = 1440 / AlgorithmParam.TIME_INTERVAL; + + //获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(monitor.getLineId()); + //处理数据(oracle>mysql) + processOracleData(date,type,effectiveMinuteCount, monitor.getLineId(),pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(distributionMonitor.getMonitorId()); + //处理数据(oracle>mysql) + processOracleData(date,type,effectiveMinuteCount, distributionMonitor.getMonitorId(),pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + } else { + //根据监测点类型取数据 + for (String lineId : lineIds) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(lineId); + //处理数据(oracle>mysql) + processOracleData(date,type,effectiveMinuteCount, lineId, pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + } + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/12/01 + */ + private void processOracleData(Date date, Integer type, Integer effectiveMinuteCount, String lineId, Integer lineIndex) { + RMpIntegrityD rMpIntegrityD = new RMpIntegrityD(); + rMpIntegrityD.setEffectiveMinuteCount(effectiveMinuteCount); + rMpIntegrityD.setMeasurementPointId(lineId); + rMpIntegrityD.setDataDate(date); + + //1、根据data_v表获取五项稳态指标日数量 + DataVOracleVO dataVOracleVO = dataVOraclePOService.getFiveCountForDataIntegrityRate(lineIndex, date, type); + rMpIntegrityD.setFreqCount(dataVOracleVO == null ? 0 : dataVOracleVO.getFreqCount()); + rMpIntegrityD.setPhaseVoltageCount(dataVOracleVO == null ? 0 : dataVOracleVO.getRmsCount()); + rMpIntegrityD.setLineVoltageCount(dataVOracleVO == null ? 0 : dataVOracleVO.getRmsLvrCount()); + rMpIntegrityD.setVThdCount(dataVOracleVO == null ? 0 : dataVOracleVO.getVThdCount()); + rMpIntegrityD.setUnbalanceCount(dataVOracleVO == null ? 0 : dataVOracleVO.getVUnbalanceCount()); + + //2、根据data_flicker表获取两项闪变指标数量 + DataFlickerOracleVO dataFlickerOracleVO = dataFlickerOracleService.getTwoCountForDataIntegrityRate(lineIndex, date, type); + rMpIntegrityD.setPstCount(dataFlickerOracleVO == null ? 0 : dataFlickerOracleVO.getPstCount()); + rMpIntegrityD.setPltCount(dataFlickerOracleVO == null ? 0 : dataFlickerOracleVO.getPltCount()); + + //3、存库 + addData(rMpIntegrityD); + } + + /** + * 存入数据库 + * @author qijian + * @date 2022/12/01 + */ + private void addData(RMpIntegrityD rMpIntegrityD) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RMpIntegrityD::getMeasurementPointId, rMpIntegrityD.getMeasurementPointId()).eq(RMpIntegrityD::getDataDate, rMpIntegrityD.getDataDate()); + RMpIntegrityD rMpIntegrityDOne = rMpIntegrityDMapper.selectOne(lambdaQueryWrapper); + if (Objects.nonNull(rMpIntegrityDOne)) { + rMpIntegrityDMapper.update(rMpIntegrityD, lambdaQueryWrapper); + } else { + rMpIntegrityDMapper.insert(rMpIntegrityD); + } + } + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java index 23b1402fa..60ae0f9e8 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java @@ -55,6 +55,8 @@ public class DayDataServiceImpl implements DayDataService { private final RMpInharmonicIMagReportDPOService rMpInharmonicIMagReportDPOService; private final RMpInharmonicVRateReportDPOService rMpInharmonicVRateReportDPOService; private final RMpHarmonicPReportDPOService rMpHarmonicPReportDPOService; + private final RMpMeasurePhaseReportDPOService rMpMeasurePhaseReportDPOService; + private final RMpMeasureReportDPOService rMpMeasureReportDPOService; private final InfluxDbUtils influxDbUtils; @@ -113,6 +115,7 @@ public class DayDataServiceImpl implements DayDataService { List rMpInharmonicVRateReportDPOList = new ArrayList<> (); List rMpHarmonicPReportDPOList = new ArrayList<> (); List rMpMeasurePhaseReportDPOArrayList = new ArrayList<> (); + List rMpMeasureReportDPOArrayList = new ArrayList<> (); @@ -221,18 +224,18 @@ public class DayDataServiceImpl implements DayDataService { // if(!CollectionUtils.isEmpty (dataV)&&!CollectionUtils.isEmpty (dataHarmRateVPO)){ // /*转成mysql对应po*/ // /*dataVPO.getPhaseType ()="A"数据*/ -// RMpHarmonicVRateReportDPO rMpHarmonicVRateReportDPOA = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO,"A"); +// RMpHarmonicVRateReportD rMpHarmonicVRateReportDPOA = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO,"A",instant); // Optional.ofNullable (rMpHarmonicVRateReportDPOA).ifPresent (temp ->rMpHarmonicVRateReportDPOList.add (temp)); // /*dataVPO.getPhaseType ()="B"数据*/ -// RMpHarmonicVRateReportDPO rMpHarmonicVRateReportDPOB = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO,"B"); +// RMpHarmonicVRateReportD rMpHarmonicVRateReportDPOB = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO,"B",instant); // Optional.ofNullable (rMpHarmonicVRateReportDPOB).ifPresent (temp ->rMpHarmonicVRateReportDPOList.add (temp)); // // /*dataVPO.getPhaseType ()="C"数据*/ -// RMpHarmonicVRateReportDPO rMpHarmonicVRateReportDPOC = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO, "C"); +// RMpHarmonicVRateReportD rMpHarmonicVRateReportDPOC = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO, "C",instant); // Optional.ofNullable (rMpHarmonicVRateReportDPOC).ifPresent (temp ->rMpHarmonicVRateReportDPOList.add (temp)); // // /*dataVPO.getPhaseType ()="T"数据*/ -// RMpHarmonicVRateReportDPO rMpHarmonicVRateReportDPOT = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO,"T"); +// RMpHarmonicVRateReportD rMpHarmonicVRateReportDPOT = packageRMpHarmonicVRateReportDPO (dataV, dataHarmRateVPO,"T",instant); // Optional.ofNullable (rMpHarmonicVRateReportDPOT).ifPresent (temp ->rMpHarmonicVRateReportDPOList.add (temp)); // // @@ -242,16 +245,16 @@ public class DayDataServiceImpl implements DayDataService { // // /*转成mysql对应po*/ // /*dataI.getPhaseType ()="A"数据*/ -// RMpHarmonicIMagReportDPO a = packageRMpHarmonicIMagReportDPO (dataI, "A"); +// RMpHarmonicIMagReportD a = packageRMpHarmonicIMagReportDPO (dataI, "A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpHarmonicIMagReportDPOList.add (temp)); // /*dataI.getPhaseType ()="B"数据*/ -// RMpHarmonicIMagReportDPO b = packageRMpHarmonicIMagReportDPO(dataI,"B"); +// RMpHarmonicIMagReportD b = packageRMpHarmonicIMagReportDPO(dataI,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpHarmonicIMagReportDPOList.add (temp)); // /*dataI.getPhaseType ()="C"数据*/ -// RMpHarmonicIMagReportDPO c = packageRMpHarmonicIMagReportDPO(dataI,"C"); +// RMpHarmonicIMagReportD c = packageRMpHarmonicIMagReportDPO(dataI,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpHarmonicIMagReportDPOList.add (temp)); // /*dataI.getPhaseType ()="T"数据*/ -// RMpHarmonicIMagReportDPO t = packageRMpHarmonicIMagReportDPO(dataI,"T"); +// RMpHarmonicIMagReportD t = packageRMpHarmonicIMagReportDPO(dataI,"T",instant); // Optional.ofNullable (t).ifPresent (temp ->rMpHarmonicIMagReportDPOList.add (temp)); // // @@ -260,17 +263,17 @@ public class DayDataServiceImpl implements DayDataService { // if(!CollectionUtils.isEmpty (dataFlickerPO)){ // /*生成dayFlicker表*/ // /*dataFlickerPO.getPhaseType ()="A"数据*/ -// RMpFlickerReportDPO a = packageRMpFlickerReportDPOPO (dataFlickerPO, "A"); +// RMpFlickerReportDPO a = packageRMpFlickerReportDPOPO (dataFlickerPO, "A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpFlickerReportDPOList.add (temp)); // // /*dataFlickerPO.getPhaseType ()="B"数据*/ -// RMpFlickerReportDPO b = packageRMpFlickerReportDPOPO(dataFlickerPO,"B"); +// RMpFlickerReportDPO b = packageRMpFlickerReportDPOPO(dataFlickerPO,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpFlickerReportDPOList.add (temp)); // // /*dataFlickerPO.getPhaseType ()="C"数据*/ -// RMpFlickerReportDPO c = packageRMpFlickerReportDPOPO(dataFlickerPO,"C"); +// RMpFlickerReportDPO c = packageRMpFlickerReportDPOPO(dataFlickerPO,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpFlickerReportDPOList.add (temp)); -// +// /*无T项数据*/ //// /*dataFlickerPO.getPhaseType ()="T"数据*/ //// RMpFlickerReportDPO t = packageRMpFlickerReportDPOPO(dataFlickerPO,"T"); // @@ -279,13 +282,13 @@ public class DayDataServiceImpl implements DayDataService { // if(!CollectionUtils.isEmpty (dataPlt)){ // /*转成mysql对应po*/ // /*DataPltPO.getPhaseType ()="A"数据*/ -// RMpPltReportDPO a = packageRMpPltReportDPO (dataPlt, "A"); +// RMpPltReportDPO a = packageRMpPltReportDPO (dataPlt, "A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpPltReportDPOList.add (temp)); // /*DataPltPO.getPhaseType ()="B"数据*/ -// RMpPltReportDPO b = packageRMpPltReportDPO(dataPlt,"B"); +// RMpPltReportDPO b = packageRMpPltReportDPO(dataPlt,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpPltReportDPOList.add (temp)); // /*DataPltPO.getPhaseType ()="C"数据*/ -// RMpPltReportDPO c = packageRMpPltReportDPO(dataPlt,"C"); +// RMpPltReportDPO c = packageRMpPltReportDPO(dataPlt,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpPltReportDPOList.add (temp)); //// /*DataPltPO.getPhaseType ()="T"数据*/ //// RMpPltReportDPO t = packageRMpPltReportDPO(dataPlt,"T"); @@ -293,38 +296,38 @@ public class DayDataServiceImpl implements DayDataService { // if(!CollectionUtils.isEmpty (dataHarmRateI)) { // /*转成mysql对应po*/ // /*DataHarmRateIPO.getPhaseType ()="A"数据*/ -// RMpHarmonicIRateReportDPO a = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "A"); +// RMpHarmonicIRateReportD a = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "A",instant); // Optional.ofNullable (a).ifPresent (temp -> rMpHarmonicIRateReportDPOList.add (temp)); // // /*DataHarmRateIPO.getPhaseType ()="B"数据*/ -// RMpHarmonicIRateReportDPO b = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "B"); +// RMpHarmonicIRateReportD b = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "B",instant); // Optional.ofNullable (b).ifPresent (temp -> rMpHarmonicIRateReportDPOList.add (temp)); // // /*DataHarmRateIPO.getPhaseType ()="C"数据*/ -// RMpHarmonicIRateReportDPO c = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "C"); +// RMpHarmonicIRateReportD c = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "C",instant); // Optional.ofNullable (c).ifPresent (temp -> rMpHarmonicIRateReportDPOList.add (temp)); // // /*DataInHarmRateIPO.getPhaseType ()="T"数据*/ -// RMpHarmonicIRateReportDPO t = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "T"); +// RMpHarmonicIRateReportD t = packageRMpHarmonicIRateReportDPO (dataHarmRateI, "T",instant); // Optional.ofNullable (t).ifPresent (temp -> rMpHarmonicIRateReportDPOList.add (temp)); // } // // if(!CollectionUtils.isEmpty (dataInHarmRateIPO)){ // /*转成mysql对应po*/ // /*DataInHarmRateIPO.getPhaseType ()="A"数据*/ -// RMpInharmonicIRateReportDPO a = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO, "A"); +// RMpInharmonicIRateReportD a = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO, "A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpInharmonicIRateReportDPOList.add (temp)); // // /*DataInHarmRateIPO.getPhaseType ()="B"数据*/ -// RMpInharmonicIRateReportDPO b = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO,"B"); +// RMpInharmonicIRateReportD b = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpInharmonicIRateReportDPOList.add (temp)); // // /*DataInHarmRateIPO.getPhaseType ()="C"数据*/ -// RMpInharmonicIRateReportDPO c = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO,"C"); +// RMpInharmonicIRateReportD c = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpInharmonicIRateReportDPOList.add (temp)); // // /*DataInHarmRateIPO.getPhaseType ()="T"数据*/ -// RMpInharmonicIRateReportDPO t = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO,"T"); +// RMpInharmonicIRateReportD t = packageRMpInharmonicIRateReportDPO(dataInHarmRateIPO,"T",instant); // Optional.ofNullable (t).ifPresent (temp ->rMpInharmonicIRateReportDPOList.add (temp)); // // @@ -333,32 +336,32 @@ public class DayDataServiceImpl implements DayDataService { // if(!CollectionUtils.isEmpty (dataInHarmIPO)){ // /*转成mysql对应po*/ // /*dataInHarmIPO.getPhaseType ()="A"数据*/ -// RMpInharmonicIMagReportDPO a = packageRMpInharmonicIMagReportDPO(dataInHarmIPO, "A"); +// RMpInharmonicIMagReportDPO a = packageRMpInharmonicIMagReportDPO(dataInHarmIPO, "A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpInharmonicIMagReportDPOList.add (temp)); // /*dataInHarmIPO.getPhaseType ()="B"数据*/ -// RMpInharmonicIMagReportDPO b = packageRMpInharmonicIMagReportDPO(dataInHarmIPO,"B"); +// RMpInharmonicIMagReportDPO b = packageRMpInharmonicIMagReportDPO(dataInHarmIPO,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpInharmonicIMagReportDPOList.add (temp)); // /*dataInHarmIPO.getPhaseType ()="C"数据*/ -// RMpInharmonicIMagReportDPO c = packageRMpInharmonicIMagReportDPO(dataInHarmIPO,"C"); +// RMpInharmonicIMagReportDPO c = packageRMpInharmonicIMagReportDPO(dataInHarmIPO,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpInharmonicIMagReportDPOList.add (temp)); // /*dataInHarmIPO.getPhaseType ()="T"数据*/ -// RMpInharmonicIMagReportDPO t = packageRMpInharmonicIMagReportDPO(dataInHarmIPO,"T"); +// RMpInharmonicIMagReportDPO t = packageRMpInharmonicIMagReportDPO(dataInHarmIPO,"T",instant); // Optional.ofNullable (t).ifPresent (temp ->rMpInharmonicIMagReportDPOList.add (temp)); // // } // if(!CollectionUtils.isEmpty (dataInHarmRateVPO)){ // /*转成mysql对应po*/ // /*dataInHarmRateVPO.getPhaseType ()="A"数据*/ -// RMpInharmonicVRateReportDPO a = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO, "A"); +// RMpInharmonicVRateReportD a = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO, "A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpInharmonicVRateReportDPOList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="B"数据*/ -// RMpInharmonicVRateReportDPO b = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO,"B"); +// RMpInharmonicVRateReportD b = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpInharmonicVRateReportDPOList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="C"数据*/ -// RMpInharmonicVRateReportDPO c = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO,"C"); +// RMpInharmonicVRateReportD c = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpInharmonicVRateReportDPOList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="T"数据*/ -// RMpInharmonicVRateReportDPO t = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO,"T"); +// RMpInharmonicVRateReportD t = packageRMpInharmonicVRateReportDPO(dataInHarmRateVPO,"T",instant); // Optional.ofNullable (t).ifPresent (temp ->rMpInharmonicVRateReportDPOList.add (temp)); // // } @@ -366,48 +369,59 @@ public class DayDataServiceImpl implements DayDataService { // if(!CollectionUtils.isEmpty (dataHarmPowerPPO)&&!CollectionUtils.isEmpty (dataHarmPowerQPO)){ // /*转成mysql对应po*/ // /*dataInHarmRateVPO.getPhaseType ()="A"数据*/ -// RMpHarmonicPReportDPO a = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO, "A"); +// RMpHarmonicPReportDPO a = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO, "A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpHarmonicPReportDPOList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="B"数据*/ -// RMpHarmonicPReportDPO b = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO,"B"); +// RMpHarmonicPReportDPO b = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpHarmonicPReportDPOList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="C"数据*/ -// RMpHarmonicPReportDPO c = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO,"C"); +// RMpHarmonicPReportDPO c = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpHarmonicPReportDPOList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="T"数据*/ -// RMpHarmonicPReportDPO t = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO,"T"); +// RMpHarmonicPReportDPO t = packageRMpHarmonicPReportDPO(dataHarmPowerPPO,dataHarmPowerQPO,"T",instant); // Optional.ofNullable (t).ifPresent (temp ->rMpHarmonicPReportDPOList.add (temp)); // // } - +// // // if (!CollectionUtils.isEmpty (dataV) && -// !CollectionUtils.isEmpty (dataI) && -// !CollectionUtils.isEmpty (dataHarmPowerPPO) && -// !CollectionUtils.isEmpty (dataHarmPowers) && -// !CollectionUtils.isEmpty (dataHarmPowerQPO)) { +// !CollectionUtils.isEmpty (dataI) && +// !CollectionUtils.isEmpty (dataHarmPowerPPO) && +// !CollectionUtils.isEmpty (dataHarmPowers) && +// !CollectionUtils.isEmpty (dataHarmPowerQPO)) { // /*转成mysql对应po*/ // /*dataInHarmRateVPO.getPhaseType ()="A"数据*/ -// RMpMeasurePhaseReportDPO a = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"A"); +// RMpMeasurePhaseReportD a = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"A",instant); // Optional.ofNullable (a).ifPresent (temp ->rMpMeasurePhaseReportDPOArrayList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="B"数据*/ -// RMpMeasurePhaseReportDPO b = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"B"); +// RMpMeasurePhaseReportD b = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"B",instant); // Optional.ofNullable (b).ifPresent (temp ->rMpMeasurePhaseReportDPOArrayList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="C"数据*/ -// RMpMeasurePhaseReportDPO c = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"C"); +// RMpMeasurePhaseReportD c = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"C",instant); // Optional.ofNullable (c).ifPresent (temp ->rMpMeasurePhaseReportDPOArrayList.add (temp)); // /*dataInHarmRateVPO.getPhaseType ()="T"数据*/ -// RMpMeasurePhaseReportDPO t = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"T"); +// RMpMeasurePhaseReportD t = packageRMpMeasurePhaseReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"T",instant); // Optional.ofNullable (t).ifPresent (temp ->rMpMeasurePhaseReportDPOArrayList.add (temp)); // // } - /* todo - * r_mp_measure_phase_report_d - * r_mp_measure_report_d - * */ - +// /* todo +// * r_mp_measure_report_d +// * */ +// if (!CollectionUtils.isEmpty (dataV) && +// !CollectionUtils.isEmpty (dataI) && +// !CollectionUtils.isEmpty (dataHarmPowerPPO) && +// !CollectionUtils.isEmpty (dataHarmPowers) && +// !CollectionUtils.isEmpty (dataHarmPowerQPO)) { +// /*转成mysql对应po*/ +// /*稳态监测点非谐波不带相位指标即是T项指标*/ +// RMpMeasureReportD t = packageRMpMeasureReportDPO(dataV,dataI,dataHarmPowerPPO,dataHarmPowers,dataHarmPowerQPO,"T",instant); +// Optional.ofNullable (t).ifPresent (temp ->rMpMeasureReportDPOArrayList.add (temp)); +// +// } } + + /*插入mysql*/ // if (!CollectionUtils.isEmpty(rMpHarmonicVRateReportDPOList)){ // rMpHarmonicVRateReportDPOService.saveOrUpdateBatchByMultiId (rMpHarmonicVRateReportDPOList, 50); @@ -441,8 +455,11 @@ public class DayDataServiceImpl implements DayDataService { // rMpInharmonicVRateReportDPOService.saveOrUpdateBatchByMultiId (rMpInharmonicVRateReportDPOList, 50); // } // -// if (!CollectionUtils.isEmpty(rMpHarmonicPReportDPOList)){ -// rMpHarmonicPReportDPOService.saveOrUpdateBatchByMultiId (rMpHarmonicPReportDPOList, 50); +// if (!CollectionUtils.isEmpty(rMpMeasurePhaseReportDPOArrayList)){ +// rMpMeasurePhaseReportDPOService.saveOrUpdateBatchByMultiId (rMpMeasurePhaseReportDPOArrayList, 50); +// } +// if (!CollectionUtils.isEmpty(rMpMeasureReportDPOArrayList)){ +// rMpMeasureReportDPOService.saveOrUpdateBatchByMultiId (rMpMeasureReportDPOArrayList, 50); // } @@ -2828,7 +2845,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/25 */ - private RMpHarmonicVRateReportD packageRMpHarmonicVRateReportDPO(List dataV, List dataHarmRateVPOList, String PhaseType){ + private RMpHarmonicVRateReportD packageRMpHarmonicVRateReportDPO(List dataV,List dataHarmRateVPOList,String PhaseType,Instant instant){ RMpHarmonicVRateReportD result = null; @@ -2843,7 +2860,7 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpHarmonicVRateReportD(); result.setPhase (PhaseType); result.setMeasurementPointId (dataV.get (0).getLineId ()); - result.setDataDate (Date.from (dataV.get (0).getTime ())); + result.setDataDate (Date.from (instant)); for (int i = 0; i dataI, String PhaseType){ + private RMpHarmonicIMagReportD packageRMpHarmonicIMagReportDPO(List dataI, String PhaseType,Instant instant){ RMpHarmonicIMagReportD result = null; @@ -2911,7 +2928,7 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpHarmonicIMagReportD(); result.setPhase (PhaseType); result.setMeasurementPointId (dataI.get (0).getLineId ()); - result.setDataDate (Date.from (dataI.get (0).getTime ())); + result.setDataDate (Date.from (instant)); } for (int j = 0; j < a.size (); j++) { DataIPO dataIPO = a.get (j); @@ -2943,7 +2960,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/26 */ - private RMpFlickerReportDPO packageRMpFlickerReportDPOPO(List dataFlickerPO, String PhaseType) { + private RMpFlickerReportDPO packageRMpFlickerReportDPOPO(List dataFlickerPO, String PhaseType,Instant instant) { RMpFlickerReportDPO result = null; @@ -2956,7 +2973,7 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpFlickerReportDPO(); result.setPhase (PhaseType); result.setMeasurementPointId (dataFlickerPO.get (0).getLineId ()); - result.setDataDate (Date.from (dataFlickerPO.get (0).getTime ())); + result.setDataDate (Date.from (instant)); } for (int j = 0; j < a.size (); j++) { @@ -2989,7 +3006,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/26 */ - private RMpPltReportDPO packageRMpPltReportDPO(List dataPlt, String PhaseType) { + private RMpPltReportDPO packageRMpPltReportDPO(List dataPlt, String PhaseType,Instant instant) { RMpPltReportDPO result = null; @@ -3002,7 +3019,7 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpPltReportDPO(); result.setPhase (PhaseType); result.setMeasurementPointId (dataPlt.get (0).getLineId ()); - result.setDataDate (Date.from (dataPlt.get (0).getTime ())); + result.setDataDate (Date.from (instant)); } for (int j = 0; j < a.size (); j++) { @@ -3034,7 +3051,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/26 */ - private RMpHarmonicIRateReportD packageRMpHarmonicIRateReportDPO(List dataHarmRateIPOList, String PhaseType) { + private RMpHarmonicIRateReportD packageRMpHarmonicIRateReportDPO(List dataHarmRateIPOList, String PhaseType,Instant instant) { RMpHarmonicIRateReportD result =null; @@ -3047,7 +3064,7 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpHarmonicIRateReportD(); result.setPhase (PhaseType); result.setMeasurementPointId (dataHarmRateIPOList.get (0).getLineId ()); - result.setDataDate (Date.from (dataHarmRateIPOList.get (0).getTime ())); + result.setDataDate (Date.from (instant)); } for (int j = 0; j < a.size (); j++) { @@ -3080,7 +3097,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/26 */ - private RMpInharmonicIRateReportD packageRMpInharmonicIRateReportDPO(List dataInHarmRateIPO, String PhaseType) { + private RMpInharmonicIRateReportD packageRMpInharmonicIRateReportDPO(List dataInHarmRateIPO, String PhaseType,Instant instant) { RMpInharmonicIRateReportD result = null; List a = dataInHarmRateIPO.stream ( ). @@ -3092,33 +3109,33 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpInharmonicIRateReportD(); result.setPhase (PhaseType); result.setMeasurementPointId (dataInHarmRateIPO.get (0).getLineId ()); - result.setDataDate (Date.from (dataInHarmRateIPO.get (0).getTime ())); + result.setDataDate (Date.from (instant)); + } + for (int j = 0; j < a.size ( ); j++) { + DataInHarmRateIPO temp = a.get (j); + if (Objects.equals (temp.getValueType ( ), "MIN")) { + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverterMin (temp); + BeanUtils.copyProperties (covertBean, result, getNullPropertyNames (covertBean)); + } + if (Objects.equals (temp.getValueType ( ), "MAX")) { + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverterMax (temp); + BeanUtils.copyProperties (covertBean, result, getNullPropertyNames (covertBean)); + } + if (Objects.equals (temp.getValueType ( ), "AVG")) { + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverterAvg (temp); + BeanUtils.copyProperties (covertBean, result, getNullPropertyNames (covertBean)); + } + if (Objects.equals (temp.getValueType ( ), "CP95")) { + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverter95 (temp); + BeanUtils.copyProperties (covertBean, result, getNullPropertyNames (covertBean)); + } + } + + + return result; + } - for (int j = 0; j < a.size (); j++) { - DataInHarmRateIPO temp = a.get (j); - if(Objects.equals (temp.getValueType (), "MIN")){ - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverterMin (temp); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); - } - if(Objects.equals (temp.getValueType (), "MAX")){ - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverterMax (temp); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); - } - if(Objects.equals (temp.getValueType (), "AVG")){ - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverterAvg (temp); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); - } - if(Objects.equals (temp.getValueType (), "CP95")){ - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpInharmonicIRateReportDPOConverter95 (temp); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); - } - } - - - return result ; - - } /** * @Description: packageRMpInharmonicIMagReportDPO * @Param: [dataInHarmIPO, PhaseType] @@ -3126,7 +3143,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/27 */ - private RMpInharmonicIMagReportDPO packageRMpInharmonicIMagReportDPO(List dataInHarmIPO, String PhaseType) { + private RMpInharmonicIMagReportDPO packageRMpInharmonicIMagReportDPO(List dataInHarmIPO, String PhaseType,Instant instant) { RMpInharmonicIMagReportDPO result = null; @@ -3135,13 +3152,12 @@ public class DayDataServiceImpl implements DayDataService { collect (Collectors.toList ( )); RMpInharmonicIMagReportDPO covertBean = new RMpInharmonicIMagReportDPO(); - if(!CollectionUtils.isEmpty (a)){ - result = new RMpInharmonicIMagReportDPO(); + if(!CollectionUtils.isEmpty (a)) { + result = new RMpInharmonicIMagReportDPO ( ); result.setPhase (PhaseType); - result.setMeasurementPointId (dataInHarmIPO.get (0).getLineId ()); - result.setDataDate (Date.from (dataInHarmIPO.get (0).getTime ())); + result.setMeasurementPointId (dataInHarmIPO.get (0).getLineId ( )); + result.setDataDate (Date.from (instant)); } - for (int j = 0; j < a.size (); j++) { DataInHarmIPO temp = a.get (j); if(Objects.equals (temp.getValueType (), "MIN")){ @@ -3174,7 +3190,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/27 */ - private RMpInharmonicVRateReportD packageRMpInharmonicVRateReportDPO(List dataInHarmRateVPO, String PhaseType) { + private RMpInharmonicVRateReportD packageRMpInharmonicVRateReportDPO(List dataInHarmRateVPO, String PhaseType,Instant instant) { RMpInharmonicVRateReportD result = null ; @@ -3187,7 +3203,7 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpInharmonicVRateReportD(); result.setPhase (PhaseType); result.setMeasurementPointId (dataInHarmRateVPO.get (0).getLineId ()); - result.setDataDate (Date.from (dataInHarmRateVPO.get (0).getTime ())); + result.setDataDate (Date.from (instant)); } for (int j = 0; j < a.size (); j++) { @@ -3221,7 +3237,7 @@ public class DayDataServiceImpl implements DayDataService { * @Author: clam * @Date: 2022/10/28 */ - private RMpHarmonicPReportDPO packageRMpHarmonicPReportDPO(List dataHarmPowerPPO, List dataHarmPowerQPO, String PhaseType) { + private RMpHarmonicPReportDPO packageRMpHarmonicPReportDPO(List dataHarmPowerPPO, List dataHarmPowerQPO, String PhaseType,Instant instant) { RMpHarmonicPReportDPO result = null ; @@ -3238,7 +3254,7 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpHarmonicPReportDPO(); result.setPhase (PhaseType); result.setMeasurementPointId (dataHarmPowerPPO.get (0).getLineId ()); - result.setDataDate (Date.from (dataHarmPowerPPO.get (0).getTime ())); + result.setDataDate (Date.from (instant)); } for (int j = 0; j < b.size (); j++) { @@ -3287,7 +3303,7 @@ public class DayDataServiceImpl implements DayDataService { - private RMpMeasurePhaseReportD packageRMpMeasurePhaseReportDPO(List dataV, List dataI, List dataHarmPowerPPO, List dataHarmPowers, List dataHarmPowerQPO, String PhaseType) { + private RMpMeasurePhaseReportD packageRMpMeasurePhaseReportDPO(List dataV, List dataI, List dataHarmPowerPPO, List dataHarmPowers, List dataHarmPowerQPO, String PhaseType,Instant instant) { RMpMeasurePhaseReportD result = null ; List a = dataV.stream ( ). @@ -3315,91 +3331,276 @@ public class DayDataServiceImpl implements DayDataService { result = new RMpMeasurePhaseReportD(); result.setPhase (PhaseType); result.setMeasurementPointId (dataHarmPowerPPO.get (0).getLineId ()); - result.setDataDate (Date.from (dataHarmPowerPPO.get (0).getTime ())); + result.setDataDate (Date.from (instant)); } //todo 非空判断 /*max*/ - DataVPO max = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Max")). - collect (Collectors.toList ( )).get (0); - DataIPO max1 = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Max")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerPPO max2 = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Max")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerSPO max3 = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Max")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerQPO max4 = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Max")). - collect (Collectors.toList ( )).get (0); - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterMax (max,max1,max2,max3,max4); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + List maxList = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max1List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max2List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max3List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max4List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + if(!CollectionUtils.isEmpty (maxList) + &&!CollectionUtils.isEmpty (max1List) + &&!CollectionUtils.isEmpty (max2List) + &&!CollectionUtils.isEmpty (max3List) + &&!CollectionUtils.isEmpty (max4List)){ + DataVPO max = maxList.get (0); + DataIPO max1 = max1List.get (0); + DataHarmPowerPPO max2 = max2List.get (0); + DataHarmPowerSPO max3 = max3List.get (0); + DataHarmPowerQPO max4 = max4List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterMax (max,max1,max2,max3,max4); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } + /*min*/ - DataVPO min = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Min")). - collect (Collectors.toList ( )).get (0); - DataIPO min1 = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Min")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerPPO min2 = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Min")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerSPO min3 = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Min")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerQPO min4 = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Min")). - collect (Collectors.toList ( )).get (0); - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterMin (min,min1,min2,min3,min4); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + List minList = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min1List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min2List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min3List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min4List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + if(!CollectionUtils.isEmpty (minList) + &&!CollectionUtils.isEmpty (min1List) + &&!CollectionUtils.isEmpty (min2List) + &&!CollectionUtils.isEmpty (min3List) + &&!CollectionUtils.isEmpty (min4List)){ + DataVPO min = minList.get (0); + DataIPO min1 = min1List.get (0); + DataHarmPowerPPO min2 = min2List.get (0); + DataHarmPowerSPO min3 = min3List.get (0); + DataHarmPowerQPO min4 = min4List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterMin (min,min1,min2,min3,min4); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } + /*avg*/ - DataVPO avg = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Avg")). - collect (Collectors.toList ( )).get (0); - DataIPO avg1 = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Avg")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerPPO avg2 = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Avg")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerSPO avg3 = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Avg")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerQPO avg4 = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "Avg")). - collect (Collectors.toList ( )).get (0); - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterAVg (avg,avg1,avg2,avg3,avg4); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + List avgList = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg1List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg2List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg3List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg4List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + + if(!CollectionUtils.isEmpty (avgList) + &&!CollectionUtils.isEmpty (avg1List) + &&!CollectionUtils.isEmpty (avg2List) + &&!CollectionUtils.isEmpty (avg3List) + &&!CollectionUtils.isEmpty (avg4List)){ + DataVPO avg = avgList.get (0); + DataIPO avg1 = avg1List.get (0); + DataHarmPowerPPO avg2 = avg2List.get (0); + DataHarmPowerSPO avg3 = avg3List.get (0); + DataHarmPowerQPO avg4 = avg4List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterAVg (avg,avg1,avg2,avg3,avg4); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } + /*cp95*/ - DataVPO cp95 = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). - collect (Collectors.toList ( )).get (0); - DataIPO cp951 = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerPPO cp952 = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerSPO cp953 = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). - collect (Collectors.toList ( )).get (0); - DataHarmPowerQPO cp954 = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). - collect (Collectors.toList ( )).get (0); - covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterCp95 (cp95,cp951,cp952,cp953,cp954); - BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + List cp95List = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp951List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp952List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp953List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp954List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + if(!CollectionUtils.isEmpty (cp95List) + &&!CollectionUtils.isEmpty (cp951List) + &&!CollectionUtils.isEmpty (cp952List) + &&!CollectionUtils.isEmpty (cp953List) + &&!CollectionUtils.isEmpty (cp954List)){ + DataVPO cp95 = cp95List.get (0); + DataIPO cp951 = cp951List.get (0); + DataHarmPowerPPO cp952 = cp952List.get (0); + DataHarmPowerSPO cp953 = cp953List.get (0); + DataHarmPowerQPO cp954 = cp954List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasurePhaseReportDPOConverterCp95 (cp95,cp951,cp952,cp953,cp954); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } + + + return result; + + } + private RMpMeasureReportD packageRMpMeasureReportDPO(List dataV, List dataI, List dataHarmPowerPPO, List dataHarmPowers, List dataHarmPowerQPO, String PhaseType,Instant instant) { + RMpMeasureReportD result = null ; + + List a = dataV.stream ( ). + filter (temp -> Objects.equals (temp.getPhaseType ( ), PhaseType)). + collect (Collectors.toList ( )); + + List b = dataI.stream ( ). + filter (temp -> Objects.equals (temp.getPhaseType ( ), PhaseType)). + collect (Collectors.toList ( )); + + List c = dataHarmPowerPPO.stream ( ). + filter (temp -> Objects.equals (temp.getPhaseType ( ), PhaseType)). + collect (Collectors.toList ( )); + + List d = dataHarmPowers.stream ( ). + filter (temp -> Objects.equals (temp.getPhaseType ( ), PhaseType)). + collect (Collectors.toList ( )); + + List e = dataHarmPowerQPO.stream ( ). + filter (temp -> Objects.equals (temp.getPhaseType ( ), PhaseType)). + collect (Collectors.toList ( )); + RMpMeasureReportD covertBean = new RMpMeasureReportD(); + + if(!CollectionUtils.isEmpty (a)&&!CollectionUtils.isEmpty (b)){ + result = new RMpMeasureReportD(); + result.setMeasurementPointId (dataHarmPowerPPO.get (0).getLineId ()); + result.setDataDate (Date.from (instant)); + } + //todo 非空判断 + /*max*/ + List maxList = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max1List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max2List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max3List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + List max4List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MAX")). + collect (Collectors.toList ( )); + if(!CollectionUtils.isEmpty (maxList) + &&!CollectionUtils.isEmpty (max1List) + &&!CollectionUtils.isEmpty (max2List) + &&!CollectionUtils.isEmpty (max3List) + &&!CollectionUtils.isEmpty (max4List)){ + DataVPO max = maxList.get (0); + DataIPO max1 = max1List.get (0); + DataHarmPowerPPO max2 = max2List.get (0); + DataHarmPowerSPO max3 = max3List.get (0); + DataHarmPowerQPO max4 = max4List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasureReportDPOConverterMax (max,max1,max2,max3,max4); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } + + + /*min*/ + List minList = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min1List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min2List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min3List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + List min4List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "MIN")). + collect (Collectors.toList ( )); + if(!CollectionUtils.isEmpty (minList) + &&!CollectionUtils.isEmpty (min1List) + &&!CollectionUtils.isEmpty (min2List) + &&!CollectionUtils.isEmpty (min3List) + &&!CollectionUtils.isEmpty (min4List)){ + DataVPO min = minList.get (0); + DataIPO min1 = min1List.get (0); + DataHarmPowerPPO min2 = min2List.get (0); + DataHarmPowerSPO min3 = min3List.get (0); + DataHarmPowerQPO min4 = min4List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasureReportDPOConverterMin (min,min1,min2,min3,min4); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } + + + /*avg*/ + List avgList = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg1List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg2List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg3List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + List avg4List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "AVG")). + collect (Collectors.toList ( )); + + if(!CollectionUtils.isEmpty (avgList) + &&!CollectionUtils.isEmpty (avg1List) + &&!CollectionUtils.isEmpty (avg2List) + &&!CollectionUtils.isEmpty (avg3List) + &&!CollectionUtils.isEmpty (avg4List)){ + DataVPO avg = avgList.get (0); + DataIPO avg1 = avg1List.get (0); + DataHarmPowerPPO avg2 = avg2List.get (0); + DataHarmPowerSPO avg3 = avg3List.get (0); + DataHarmPowerQPO avg4 = avg4List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasureReportDPOConverterAVg (avg,avg1,avg2,avg3,avg4); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } + + + /*cp95*/ + List cp95List = a.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp951List = b.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp952List = c.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp953List = d.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + List cp954List = e.stream ( ).filter (temp -> Objects.equals (temp.getValueType ( ), "CP95")). + collect (Collectors.toList ( )); + if(!CollectionUtils.isEmpty (cp95List) + &&!CollectionUtils.isEmpty (cp951List) + &&!CollectionUtils.isEmpty (cp952List) + &&!CollectionUtils.isEmpty (cp953List) + &&!CollectionUtils.isEmpty (cp954List)){ + DataVPO cp95 = cp95List.get (0); + DataIPO cp951 = cp951List.get (0); + DataHarmPowerPPO cp952 = cp952List.get (0); + DataHarmPowerSPO cp953 = cp953List.get (0); + DataHarmPowerQPO cp954 = cp954List.get (0); + covertBean = InfluxdbPOConverter.INFLUXDB_PO_CONVERTER.RMpMeasureReportDPOConverterCp95 (cp95,cp951,cp952,cp953,cp954); + BeanUtils.copyProperties (covertBean, result,getNullPropertyNames(covertBean)); + } return result; } + /** + * 获取所有字段为null的属性名 + * @param source + * @return + */ + public String[] getNullPropertyNames (Object source) { + final BeanWrapper src = new BeanWrapperImpl (source); + java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors ( ); - - /** - * 获取所有字段为null的属性名 - * @param source - * @return - */ - public String[] getNullPropertyNames (Object source) { - final BeanWrapper src = new BeanWrapperImpl (source); - java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors ( ); - - Set emptyNames = new HashSet ( ); - for (java.beans.PropertyDescriptor pd : pds) { - Object srcValue = src.getPropertyValue (pd.getName ( )); - if (srcValue == null){ - emptyNames.add (pd.getName ( )); + Set emptyNames = new HashSet ( ); + for (java.beans.PropertyDescriptor pd : pds) { + Object srcValue = src.getPropertyValue (pd.getName ( )); + if (srcValue == null){ + emptyNames.add (pd.getName ( )); + } } - } - String[] result = new String[emptyNames.size ( )]; - return emptyNames.toArray (result); + String[] result = new String[emptyNames.size ( )]; + return emptyNames.toArray (result); + + } - } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DistortionRateServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DistortionRateServiceImpl.java index a03e9dad1..dd3a5a3b6 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DistortionRateServiceImpl.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DistortionRateServiceImpl.java @@ -4,23 +4,27 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.LocalDateTimeUtil; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.po.Overlimit; +import com.njcn.harmonic.pojo.po.RMpVThd; import com.njcn.influxdb.utils.InfluxDbUtils; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; import com.njcn.prepare.harmonic.mapper.mysql.line.RMpVThdMapper; -import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.pojo.influxdb.po.DataVPO; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.service.mysql.line.DistortionRateService; +import com.njcn.prepare.harmonic.service.oracle.DataVOraclePOService; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; import lombok.AllArgsConstructor; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.influxdb.dto.QueryResult; import org.influxdb.impl.InfluxDBResultMapper; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -39,38 +43,102 @@ public class DistortionRateServiceImpl implements DistortionRateService { private final RMpVThdMapper rMpVThdMapper; + private final + PqLinedetailPOService pqLinedetailPOService; + private final + DataVOraclePOService dataVOraclePOService; @Override @Async("asyncExecutor") public void distortionRate(LineParam lineParam) { List lineIdOutList; - if (CollUtil.isEmpty(lineParam.getLineIds())){ - List overLimitList = getAllLineOutData(); - lineIdOutList = overLimitList.stream().map(Overlimit::getId).collect(Collectors.toList()); - }else { - lineIdOutList = new ArrayList<>(lineParam.getLineIds()); + if (CollUtil.isEmpty (lineParam.getLineIds ( ))) { + List overLimitList = getAllLineOutData ( ); + lineIdOutList = overLimitList.stream ( ).map (Overlimit::getId).collect (Collectors.toList ( )); + } else { + lineIdOutList = new ArrayList<> (lineParam.getLineIds ( )); } - LocalDateTime local = LocalDateTimeUtil.parse(lineParam.getDataDate() + "T00:00:00"); - for (String lineId : lineIdOutList){ - List rateOut = getDistortionRateInfluxDb(lineId,lineParam.getDataDate()); - if (rateOut.size() > 0){ - Map inMap = new HashMap<>(); - inMap.put("lineId",lineId); - inMap.put("dataType","0"); - inMap.put("dataDate",local); - inMap.put("vThd",rateOut.get(0).getVThd()); - rMpVThdMapper.insertRate(inMap); + LocalDateTime local = LocalDateTimeUtil.parse (lineParam.getDataDate ( ) + "T00:00:00"); + for (String lineId : lineIdOutList) { + List rateOut = getDistortionRateInfluxDb (lineId, lineParam.getDataDate ( )); + if (rateOut.size ( ) > 0) { + Map inMap = new HashMap<> ( ); + inMap.put ("lineId", lineId); + inMap.put ("dataType", "0"); + inMap.put ("dataDate", local); + inMap.put ("vThd", rateOut.get (0).getVThd ( )); + rMpVThdMapper.insertRate (inMap); } } } - private List getDistortionRateInfluxDb(String lineId, String date){ - String processParam = " and line_id = '"+lineId+"' and time >= '"+date+" 00:00:00' and time <= '"+date+" 23:59:59' tz('Asia/Shanghai')"; - QueryResult result = influxDbUtils.query("SELECT line_id, max(v_thd) as v_thd FROM data_v WHERE phasic_type != 'T' and value_type = 'MAX'"+processParam); - InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); - return resultMapper.toPOJO(result, DataVPO.class); + + private List getDistortionRateInfluxDb(String lineId, String date) { + String processParam = " and line_id = '" + lineId + "' and time >= '" + date + " 00:00:00' and time <= '" + date + " 23:59:59' tz('Asia/Shanghai')"; + QueryResult result = influxDbUtils.query ("SELECT line_id, max(v_thd) as v_thd FROM data_v WHERE phasic_type != 'T' and value_type = 'MAX'" + processParam); + InfluxDBResultMapper resultMapper = new InfluxDBResultMapper ( ); + return resultMapper.toPOJO (result, DataVPO.class); } private List getAllLineOutData() { - return lineFeignClient.getAllLineOverLimit("harmonic-boot","").getData(); + return lineFeignClient.getAllLineOverLimit ("harmonic-boot", "").getData ( ); + } + + @Override + public void distortionRateBySource(LineParam lineParam) { + + if (Objects.equals (lineParam.getDataSource ( ), AlgorithmParam.ORACLE_DATA)) { + hanlderOracleData (lineParam); + } else if (Objects.equals (lineParam.getDataSource ( ), AlgorithmParam.INFLUX_DATA)) { + distortionRate (lineParam); + } + + } + + private void hanlderOracleData(LineParam lineParam) { + Integer type = lineParam.getType ( ); + switch (type) { +// case 1: +// this.hanlderOracleYear (lineParam); +// break; +// case 2: +// this.hanlderOracleQtr (lineParam); +// break; +// case 3: +// this.hanlderOracleMonth (lineParam); +// break; + case 5: + this.hanlderOracleDay (lineParam); + break; + default: + break; + } + } + + @SneakyThrows + private void hanlderOracleDay(LineParam lineParam) { + List lineIds = lineParam.getLineIds ( ); + String dataDate = lineParam.getDataDate ( ); + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + List rMpVThdList = new ArrayList<> ( ); + + + lineIds.forEach (lineId -> { + RMpVThd rMpVThd = new RMpVThd(); + /*获取mysql与Oracle监测点id对应关系*/ + + PqLinedetailPO oracleIndexIdByMonitorId = pqLinedetailPOService.getOracleIndexIdByMonitorId (lineId); + Double vThdMAx = dataVOraclePOService.queryVThdMax(oracleIndexIdByMonitorId.getLineIndex(),dataDate); + + Map inMap = new HashMap<> ( ); + inMap.put ("lineId", lineId); + inMap.put ("dataType", lineParam.getType ()+""); + inMap.put ("dataDate", tempDate); + inMap.put ("vThd", vThdMAx); + rMpVThdMapper.insertRate (inMap); +// rMpVThd.setMeasurementPointId (lineId); +// rMpVThd.setDataType (lineParam.getType ()+""); +// rMpVThd.setDataDate (tempDate); +// rMpVThd.setVThd (vThdMAx); + }); } } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/NormalLimitServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/NormalLimitServiceImpl.java index 17ee9b8b9..15c58abb5 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/NormalLimitServiceImpl.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/NormalLimitServiceImpl.java @@ -20,7 +20,6 @@ import com.njcn.prepare.harmonic.pojo.param.LineParam; import com.njcn.prepare.harmonic.pojo.vo.AbnormalVO; import com.njcn.prepare.harmonic.service.mysql.line.NormalLimitService; import com.njcn.user.api.DeptFeignClient; -import com.njcn.user.api.UserFeignClient; import com.njcn.user.pojo.po.Dept; import lombok.AllArgsConstructor; import org.influxdb.dto.QueryResult; @@ -53,16 +52,16 @@ public class NormalLimitServiceImpl extends ServiceImpl lineIds = new ArrayList<>(); List all = new ArrayList<>(); - Dept dept = deptFeignClient.getRootDept().getData(); + + if (CollectionUtils.isEmpty(lineParam.getLineIds())) { + Dept dept = deptFeignClient.getRootDept().getData(); DeviceInfoParam deviceInfoParam = new DeviceInfoParam(); deviceInfoParam.setDeptIndex(dept.getId()); deviceInfoParam.setPowerFlag(2); diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/PqsEventdetailHandlerServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/PqsEventdetailHandlerServiceImpl.java new file mode 100644 index 000000000..08f4543d3 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/PqsEventdetailHandlerServiceImpl.java @@ -0,0 +1,209 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; +import com.njcn.harmonic.pojo.po.RMpEventDetailMPO; +import com.njcn.harmonic.pojo.po.RMpEventDetailQPO; +import com.njcn.harmonic.pojo.po.RMpEventDetailYPO; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.*; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; +import com.njcn.prepare.harmonic.service.oracle.PqsEventdetailService; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:11【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Slf4j +@Service +@AllArgsConstructor +public class PqsEventdetailHandlerServiceImpl implements PqsEventdetailHandlerService { + + private final PqLinedetailPOService pqLinedetailPOService; + + + private final PqsEventdetailService pqsEventdetailService; + + private final RMpEventDetailDService rMpEventDetailDService; + + private final RMpEventDetailMService rMpEventDetailMService; + + private final RMpEventDetailQService rMpEventDetailQService; + + private final RMpEventDetailYService rMpEventDetailYService; + + + + @Override + @Async("asyncExecutor") + public void eventdetailHandler(LineParam lineParam) { + if (Objects.equals (lineParam.getDataSource ( ), AlgorithmParam.ORACLE_DATA)) { + hanlderOracleData (lineParam); + } else if (Objects.equals (lineParam.getDataSource ( ), AlgorithmParam.INFLUX_DATA)) { + hanlderInfludxbData (lineParam); + } + } + /** + * @Description: hanlderInfludxbData + * @Param: [lineParam] + * @return: void + * @Author: clam + * @Date: 2022/12/28 + */ + private void hanlderInfludxbData(LineParam lineParam) { + } + /** + * @Description: hanlderOracleData + * @Param: [lineParam] + * @return: void + * @Author: clam + * @Date: 2022/12/28 + */ + private void hanlderOracleData(LineParam lineParam) { + Integer type = lineParam.getType ( ); + switch (type) { + case 1: + this.hanlderOracleYear (lineParam); + break; + case 2: + this.hanlderOracleQtr (lineParam); + break; + case 3: + this.hanlderOracleMonth (lineParam); + break; + case 5: + this.hanlderOracleDay (lineParam); + break; + default: + break; + } + } + @SneakyThrows + private void hanlderOracleYear(LineParam lineParam) { + List lineIds = lineParam.getLineIds ( ); + String dataDate = lineParam.getDataDate ( ); + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + List rMpEventDetailYPOList = new ArrayList<> ( ); + + lineIds.forEach (lineId -> { + /*查询月表数据生成年表数据*/ + List rMpEventDetailMPOList = rMpEventDetailMService.queryOneYearData(lineId,dataDate); + int sagCount = rMpEventDetailMPOList.stream ( ).mapToInt (RMpEventDetailMPO::getSagTimes).sum ( ); + int riseCount = rMpEventDetailMPOList.stream ( ).mapToInt (RMpEventDetailMPO::getSwellTimes).sum ( ); + int interruptCount = rMpEventDetailMPOList.stream ( ).mapToInt (RMpEventDetailMPO::getInterruptTimes).sum ( ); + + RMpEventDetailYPO rMpEventDetailYPO = new RMpEventDetailYPO(); + rMpEventDetailYPO.setMeasurementPointId (lineId); + rMpEventDetailYPO.setDataDate (tempDate); + rMpEventDetailYPO.setSagTimes (sagCount); + rMpEventDetailYPO.setSwellTimes (riseCount); + rMpEventDetailYPO.setInterruptTimes (interruptCount); + rMpEventDetailYPOList.add (rMpEventDetailYPO); + + }); + + rMpEventDetailYService.saveOrUpdateBatchByMultiId (rMpEventDetailYPOList,500); + + + } + @SneakyThrows + private void hanlderOracleQtr(LineParam lineParam) { + List lineIds = lineParam.getLineIds ( ); + String dataDate = lineParam.getDataDate ( ); + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + List rMpEventDetailQPOList = new ArrayList<> ( ); + + lineIds.forEach (lineId -> { + /*查询月表数据生成季表数据*/ + List rMpEventDetailMPOList = rMpEventDetailMService.queryOneQtrData(lineId,dataDate); + int sagCount = rMpEventDetailMPOList.stream ( ).mapToInt (RMpEventDetailMPO::getSagTimes).sum ( ); + int riseCount = rMpEventDetailMPOList.stream ( ).mapToInt (RMpEventDetailMPO::getSwellTimes).sum ( ); + int interruptCount = rMpEventDetailMPOList.stream ( ).mapToInt (RMpEventDetailMPO::getInterruptTimes).sum ( ); + + RMpEventDetailQPO rMpEventDetailQPO = new RMpEventDetailQPO(); + rMpEventDetailQPO.setMeasurementPointId (lineId); + rMpEventDetailQPO.setDataDate (tempDate); + rMpEventDetailQPO.setSagTimes (sagCount); + rMpEventDetailQPO.setSwellTimes (riseCount); + rMpEventDetailQPO.setInterruptTimes (interruptCount); + rMpEventDetailQPOList.add (rMpEventDetailQPO); + + }); + + rMpEventDetailQService.saveOrUpdateBatchByMultiId (rMpEventDetailQPOList,500); + } + + @SneakyThrows + private void hanlderOracleMonth(LineParam lineParam) { + List lineIds = lineParam.getLineIds ( ); + String dataDate = lineParam.getDataDate ( ); + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + List rMpEventDetailMPOList = new ArrayList<> ( ); + + lineIds.forEach (lineId -> { + /*查询day表数据生成月表数据*/ + List rMpEventDetailDPOList = rMpEventDetailDService.queryOneMothData(lineId,dataDate); + int sagCount = rMpEventDetailDPOList.stream ( ).mapToInt (RMpEventDetailDPO::getSagTimes).sum ( ); + int riseCount = rMpEventDetailDPOList.stream ( ).mapToInt (RMpEventDetailDPO::getSwellTimes).sum ( ); + int interruptCount = rMpEventDetailDPOList.stream ( ).mapToInt (RMpEventDetailDPO::getInterruptTimes).sum ( ); + + RMpEventDetailMPO rMpEventDetailMPO = new RMpEventDetailMPO(); + rMpEventDetailMPO.setMeasurementPointId (lineId); + rMpEventDetailMPO.setDataDate (tempDate); + rMpEventDetailMPO.setSagTimes (sagCount); + rMpEventDetailMPO.setSwellTimes (riseCount); + rMpEventDetailMPO.setInterruptTimes (interruptCount); + rMpEventDetailMPOList.add (rMpEventDetailMPO); + + }); + + rMpEventDetailMService.saveOrUpdateBatchByMultiId (rMpEventDetailMPOList,500); + + } + @SneakyThrows + private void hanlderOracleDay(LineParam lineParam) { + + List lineIds = lineParam.getLineIds ( ); + String dataDate = lineParam.getDataDate ( ); + final Date tempDate = new SimpleDateFormat ("yyyy-MM-dd").parse (dataDate); + List rMpEventDetailDPOList = new ArrayList<> ( ); + + + lineIds.forEach (lineId -> { + + /*获取mysql与Oracle监测点id对应关系*/ + + PqLinedetailPO oracleIndexIdByMonitorId = pqLinedetailPOService.getOracleIndexIdByMonitorId (lineId); + + Integer sagCount = pqsEventdetailService.queryByCondition (oracleIndexIdByMonitorId.getLineIndex(),dataDate,AlgorithmParam.SAG); + Integer riseCount = pqsEventdetailService.queryByCondition (oracleIndexIdByMonitorId.getLineIndex(),dataDate,AlgorithmParam.RISE); + Integer interruptCount = pqsEventdetailService.queryByCondition (oracleIndexIdByMonitorId.getLineIndex(),dataDate,AlgorithmParam.INTERRUPT); + RMpEventDetailDPO rMpEventDetailDPO = new RMpEventDetailDPO(); + rMpEventDetailDPO.setMeasurementPointId (lineId); + rMpEventDetailDPO.setDataDate (tempDate); + rMpEventDetailDPO.setSagTimes (sagCount); + rMpEventDetailDPO.setSwellTimes (riseCount); + rMpEventDetailDPO.setInterruptTimes (interruptCount); + + rMpEventDetailDPOList.add (rMpEventDetailDPO); + }); + + rMpEventDetailDService.saveOrUpdateBatchByMultiId (rMpEventDetailDPOList,500); + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailDServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailDServiceImpl.java new file mode 100644 index 000000000..9ca842794 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailDServiceImpl.java @@ -0,0 +1,47 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper; +import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailDService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@AllArgsConstructor +public class RMpEventDetailDServiceImpl extends MppServiceImpl implements RMpEventDetailDService{ + + + private final RMpEventDetailDMapper rMpEventDetailDMapper; + + /** + * @param lineId + * @param dataDate + * @Description: queryOneMothData + * @Param: [lineId, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/12/28 + */ + @Override + public List queryOneMothData(String lineId, String dataDate) { + + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq ("measurement_point_id", lineId). + eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7)); + List list = rMpEventDetailDMapper.selectList (queryWrapper); + return list; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailMServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailMServiceImpl.java new file mode 100644 index 000000000..999c82085 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailMServiceImpl.java @@ -0,0 +1,65 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RMpEventDetailMPO; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailMMapper; +import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailMService; +import com.njcn.prepare.harmonic.utils.PublicUtil; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@AllArgsConstructor +public class RMpEventDetailMServiceImpl extends MppServiceImpl implements RMpEventDetailMService{ + + private final RMpEventDetailMMapper rMpEventDetailMMapper; + + /** + * @param lineId + * @param dataDate + * @Description: queryOneQtrData 查询一季度Mouth表数据 + * @Param: [lineId, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/12/28 + */ + @Override + public List queryOneQtrData(String lineId, String dataDate) { + + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq ("measurement_point_id", lineId). + eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate)); + List list = rMpEventDetailMMapper.selectList (queryWrapper); + return list; + } + + /** + * @param lineId + * @param dataDate + * @Description: queryOneYearData 查询一年Mouth表数据 + * @Param: [lineId, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/12/28 + */ + @Override + public List queryOneYearData(String lineId, String dataDate) { + QueryWrapper queryWrapper = new QueryWrapper<> (); + queryWrapper.eq ("measurement_point_id", lineId). + eq("YEAR( data_date )",dataDate.substring (0, 4)); + List list = rMpEventDetailMMapper.selectList (queryWrapper); + return list; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailQServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailQServiceImpl.java new file mode 100644 index 000000000..aa6621e84 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailQServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RMpEventDetailQPO; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailQMapper; +import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailQService; +import org.springframework.stereotype.Service; +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RMpEventDetailQServiceImpl extends MppServiceImpl implements RMpEventDetailQService{ + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailYServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailYServiceImpl.java new file mode 100644 index 000000000..c3aeb4987 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/RMpEventDetailYServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.harmonic.pojo.po.RMpEventDetailYPO; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailYMapper; +import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailYService; +import org.springframework.stereotype.Service; +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +public class RMpEventDetailYServiceImpl extends MppServiceImpl implements RMpEventDetailYService{ + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java index a969852d5..4d4e80f43 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ReportServiceImpl.java @@ -22,7 +22,7 @@ import com.njcn.influxdb.utils.InfluxDbUtils; import com.njcn.minio.bo.MinIoUploadResDTO; import com.njcn.minio.config.MinIoProperties; import com.njcn.minio.utils.MinIoUtils; -import com.njcn.prepare.harmonic.constant.Param; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; import com.njcn.prepare.harmonic.mapper.mysql.line.ExcelRptMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.ExcelRptTempMapper; import com.njcn.prepare.harmonic.pojo.param.LineParam; @@ -87,7 +87,7 @@ public class ReportServiceImpl implements ReportService { List list = reportParam.getLineIds(); if (CollUtil.isEmpty(list)){ list = new ArrayList<>(); - Map> map = deptLineFeignClient.getLineByDeptRelation(Param.STEADY_STATE).getData(); + Map> map = deptLineFeignClient.getLineByDeptRelation(AlgorithmParam.STEADY_STATE).getData(); Collection> values = map.values(); for (List value : values) { list.addAll(value); @@ -291,21 +291,18 @@ public class ReportServiceImpl implements ReportService { }else{ sql.append(method).append(InfluxDBSqlConstant.LBK).append(data.getTemplateName()).append(InfluxDBSqlConstant.RBK).append(InfluxDBSqlConstant.AS_VALUE); } - + sql.append(InfluxDBSqlConstant.FROM).append(data.getClassId()).append(InfluxDBSqlConstant.WHERE).append(InfluxDBTableConstant.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(lineId).append(InfluxDBSqlConstant.QM); //相别特殊处理 - if (InfluxDBTableConstant.NO_PHASE.equals(data.getPhase())) { - sql.append(InfluxDBSqlConstant.FROM).append(data.getClassId()) - .append(InfluxDBSqlConstant.WHERE).append(InfluxDBTableConstant.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(lineId).append(InfluxDBSqlConstant.QM) - .append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getStatMethod()).append(InfluxDBSqlConstant.QM) - .append(InfluxDBSqlConstant.TZ); - } else { - sql.append(InfluxDBSqlConstant.FROM).append(data.getClassId()) - .append(InfluxDBSqlConstant.WHERE).append(InfluxDBTableConstant.LINE_ID).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(lineId).append(InfluxDBSqlConstant.QM) - .append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getStatMethod()).append(InfluxDBSqlConstant.QM) - .append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getPhase()).append(InfluxDBSqlConstant.QM) - .append(InfluxDBSqlConstant.TZ); + if (!InfluxDBTableConstant.NO_PHASE.equals(data.getPhase())) { + sql.append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.PHASIC_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getPhase()).append(InfluxDBSqlConstant.QM); } + //data_flicker、data_fluc、data_plt 无 value_type + if (!InfluxDBTableConstant.DATA_FLICKER.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_FLUC.equals(data.getClassId()) && !InfluxDBTableConstant.DATA_PLT.equals(data.getClassId())){ + sql.append(InfluxDBSqlConstant.AND).append(InfluxDBTableConstant.VALUE_TYPE).append(InfluxDBSqlConstant.EQ).append(InfluxDBSqlConstant.QM).append(data.getStatMethod()).append(InfluxDBSqlConstant.QM); + } + sql.append(InfluxDBSqlConstant.TZ); + //根据不同的库表赋值 QueryResult queryResult = influxDbUtils.query(String.valueOf(sql)); diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/SteadyIndexExceedServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/SteadyIndexExceedServiceImpl.java new file mode 100644 index 000000000..68638c930 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/SteadyIndexExceedServiceImpl.java @@ -0,0 +1,635 @@ +package com.njcn.prepare.harmonic.service.mysql.Impl.line; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.device.pms.api.DistributionMonitorClient; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.po.DistributionMonitor; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM; +import com.njcn.prepare.harmonic.constant.AlgorithmParam; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper; +import com.njcn.prepare.harmonic.pojo.oracle.LimitRateOracle; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.pojo.param.LineParam; +import com.njcn.prepare.harmonic.service.mysql.line.SteadyIndexExceedService; +import com.njcn.prepare.harmonic.service.oracle.LimitRateOracleService; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.temporal.TemporalAdjusters; +import java.util.List; +import java.util.Objects; + +/** + * 数据完整率算法 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/02 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class SteadyIndexExceedServiceImpl implements SteadyIndexExceedService { + + private final DistributionMonitorClient distributionMonitorClient; + + private final MonitorClient monitorClient; + + private final PqLinedetailPOService pqLinedetailPOService; + + private final LimitRateOracleService limitRateOracleService; + + private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; + + private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper; + + private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper; + + private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper; + + /** + * 日统计I、II、III类监测点是否超标限值 + * @author qijian + * @date 2022/12/02 + */ + @Override + @Async("asyncExecutor") + public boolean isValueExceedID(LineParam lineParam) { + if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.ORACLE_DATA)) { + hanlderOracleDataI(lineParam); + } else if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.INFLUX_DATA)) { + hanlderInfluxDataI(lineParam); + } + return true; + + } + + /** + * 日统计I、II类监测点是否超标限值 + * @author qijian + * @date 2022/12/02 + */ + @Override + @Async("asyncExecutor") + public boolean isValueExceedIID(LineParam lineParam) { + if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.ORACLE_DATA)) { + hanlderOracleDataII(lineParam); + } else if (Objects.equals(lineParam.getDataSource(), AlgorithmParam.INFLUX_DATA)) { + hanlderInfluxDataII(lineParam); + } + return true; + + } + + /** + * 月统计I、II、III类监测点是否超标限值 + * @author qijian + * @date 2022/12/12 + */ + @Override + @Async("asyncExecutor") + public boolean isValueExceedIM(LineParam lineParam) { + //初始化 + String date = lineParam.getDataDate(); + List lineIds = lineParam.getLineIds(); + + //获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + //处理数据 + processDataIM(date,monitor.getLineId()); + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + //处理数据 + processDataIM(date,distributionMonitor.getMonitorId()); + } + } else { + //根据监测点类型取数据 + for (String lineId : lineIds) { + //处理数据 + processDataIM(date,lineId); + } + } + + return true; + } + + + /** + * 月统计I、II类监测点是否超标限值 + * @author qijian + * @date 2022/12/12 + */ + @Override + @Async("asyncExecutor") + public boolean isValueExceedIIM(LineParam lineParam) { + //初始化 + String date = lineParam.getDataDate(); + List lineIds = lineParam.getLineIds(); + + //获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + //处理数据 + processDataIIM(date,monitor.getLineId()); + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + //处理数据 + processDataIIM(date,distributionMonitor.getMonitorId()); + } + } else { + //根据监测点类型取数据 + for (String lineId : lineIds) { + //处理数据 + processDataIIM(date,lineId); + } + } + + return true; + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/12/02 + */ + private void hanlderOracleDataI(LineParam lineParam) { + //初始化 +// Date date = DateUtil.parse(lineParam.getDataDate()); + String date = lineParam.getDataDate(); + List lineIds = lineParam.getLineIds(); + Integer lineType = lineParam.getLineType(); + Integer type = lineParam.getType(); + + //获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(monitor.getLineId()); + //处理数据(oracle>mysql) + processOracleDataI(date,type, monitor.getLineId(),pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(distributionMonitor.getMonitorId()); + //处理数据(oracle>mysql) + processOracleDataI(date,type, distributionMonitor.getMonitorId(),pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + } else { + //根据监测点类型取数据 + for (String lineId : lineIds) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(lineId); + //处理数据(oracle>mysql) + processOracleDataI(date,type, lineId, pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + } + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/12/05 + */ + private void processOracleDataI(String date, Integer type, String lineId, int lineIndex) { + RMpPartHarmonicDetailD rMpPartHarmonicDetailD = new RMpPartHarmonicDetailD(); + rMpPartHarmonicDetailD.setMeasurementPointId(lineId); + rMpPartHarmonicDetailD.setDataDate(LocalDate.parse(date)); + rMpPartHarmonicDetailD.setIsVDevLow(0); + rMpPartHarmonicDetailD.setIsVDevUp(0); + + //1、根据limit_rate表获取数据 + LimitRateOracle limitRateOracle = limitRateOracleService.getOneByData(date, lineIndex); + if (limitRateOracle == null){ + return; + } + + //2、填入数据(大于0则为超标) + //频率偏差越限次数 + rMpPartHarmonicDetailD.setIsFreq(limitRateOracle.getFreqDevOvertime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setFreqTimes(limitRateOracle.getFreqDevOvertime()); + //电压偏差越限次数 + rMpPartHarmonicDetailD.setIsVDev(limitRateOracle.getVoltageDevOvertime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setVDevTimes(limitRateOracle.getVoltageDevOvertime()); + //电压不平衡度越限次数 + rMpPartHarmonicDetailD.setIsUnbalance(limitRateOracle.getUbalanceOvertime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setUnbalanceTimes(limitRateOracle.getUbalanceOvertime()); + //电压谐波畸变率越限次数 + rMpPartHarmonicDetailD.setIsVThd(limitRateOracle.getUaberranceOvertime() > 0 ? 1 : 0); + //电压谐波含有率越限总次数 + rMpPartHarmonicDetailD.setIsV(CalculateSumV(limitRateOracle) > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setVTimes(CalculateSumV(limitRateOracle)); + //电流谐波含有率越限总次数 + rMpPartHarmonicDetailD.setIsI(CalculateSumI(limitRateOracle) > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setITimes(CalculateSumI(limitRateOracle)); + //负序电流超标次数(建表挖的坑:null值特殊处理) + Integer iNegOvertime = limitRateOracle.getINegOvertime() == null ? 0 : limitRateOracle.getINegOvertime(); + rMpPartHarmonicDetailD.setIsINeg(iNegOvertime > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setINegTimes(iNegOvertime); + //稳态指标是否超标 + if (limitRateOracle.getFreqDevOvertime() > 0 || limitRateOracle.getVoltageDevOvertime() > 0 || limitRateOracle.getUbalanceOvertime() > 0 || limitRateOracle.getUaberranceOvertime() > 0 || iNegOvertime > 0 || CalculateSumV(limitRateOracle) > 0 || CalculateSumI(limitRateOracle) > 0 ){ + rMpPartHarmonicDetailD.setIsHarmonic(1); + }else{ + rMpPartHarmonicDetailD.setIsHarmonic(0); + } + + //电压谐波含有率越限次数 + rMpPartHarmonicDetailD.setIsV2(limitRateOracle.getUharm2Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV3(limitRateOracle.getUharm3Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV4(limitRateOracle.getUharm4Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV5(limitRateOracle.getUharm5Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV6(limitRateOracle.getUharm6Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV7(limitRateOracle.getUharm7Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV8(limitRateOracle.getUharm8Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV9(limitRateOracle.getUharm9Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV10(limitRateOracle.getUharm10Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV11(limitRateOracle.getUharm11Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV12(limitRateOracle.getUharm12Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV13(limitRateOracle.getUharm13Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV14(limitRateOracle.getUharm14Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV15(limitRateOracle.getUharm15Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV16(limitRateOracle.getUharm16Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV17(limitRateOracle.getUharm17Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV18(limitRateOracle.getUharm18Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV19(limitRateOracle.getUharm19Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV20(limitRateOracle.getUharm20Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV21(limitRateOracle.getUharm21Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV22(limitRateOracle.getUharm22Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV23(limitRateOracle.getUharm23Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV24(limitRateOracle.getUharm24Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsV25(limitRateOracle.getUharm25Overtime() > 0 ? 1 : 0); + //电流谐波含有率越限次数 + rMpPartHarmonicDetailD.setIsI2(limitRateOracle.getIharm2Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI3(limitRateOracle.getIharm3Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI4(limitRateOracle.getIharm4Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI5(limitRateOracle.getIharm5Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI6(limitRateOracle.getIharm6Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI7(limitRateOracle.getIharm7Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI8(limitRateOracle.getIharm8Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI9(limitRateOracle.getIharm9Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI10(limitRateOracle.getIharm10Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI11(limitRateOracle.getIharm11Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI12(limitRateOracle.getIharm12Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI13(limitRateOracle.getIharm13Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI14(limitRateOracle.getIharm14Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI15(limitRateOracle.getIharm15Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI16(limitRateOracle.getIharm16Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI17(limitRateOracle.getIharm17Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI18(limitRateOracle.getIharm18Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI19(limitRateOracle.getIharm19Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI20(limitRateOracle.getIharm20Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI21(limitRateOracle.getIharm21Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI22(limitRateOracle.getIharm22Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI23(limitRateOracle.getIharm23Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI24(limitRateOracle.getIharm24Overtime() > 0 ? 1 : 0); + rMpPartHarmonicDetailD.setIsI25(limitRateOracle.getIharm25Overtime() > 0 ? 1 : 0); + + //3、存库 + addDataI(rMpPartHarmonicDetailD); + } + + /** + * 处理数据(influxDB>mysql) + * @author qijian + * @date 2022/12/02 + */ + private void hanlderInfluxDataI(LineParam lineParam) { + + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/12/02 + */ + private void hanlderOracleDataII(LineParam lineParam) { + //初始化 +// Date date = DateUtil.parse(lineParam.getDataDate()); + String date = lineParam.getDataDate(); + List lineIds = lineParam.getLineIds(); + Integer lineType = lineParam.getLineType(); + Integer type = lineParam.getType(); + + //获取监测点数据,进行入库操作 + if (CollUtil.isEmpty(lineIds)){ + //先获取主网的监测点信息,再获取配网的监测点信息 + List monitorList = monitorClient.getMonitorList(lineIds).getData(); + for (Monitor monitor : monitorList) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(monitor.getLineId()); + //处理数据(oracle>mysql) + processOracleDataII(date,type, monitor.getLineId(),pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + List distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData(); + for (DistributionMonitor distributionMonitor : distributionMonitorList) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(distributionMonitor.getMonitorId()); + //处理数据(oracle>mysql) + processOracleDataII(date,type, distributionMonitor.getMonitorId(),pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + } else { + //根据监测点类型取数据 + for (String lineId : lineIds) { + //根据mysql监测点取oracle监测点信息 + PqLinedetailPO pqLinedetailPO = pqLinedetailPOService.getOracleIndexIdByMonitorId(lineId); + //处理数据(oracle>mysql) + processOracleDataII(date,type, lineId, pqLinedetailPO == null ? 0 : pqLinedetailPO.getLineIndex()); + } + } + } + + /** + * 处理数据(oracle>mysql) + * @author qijian + * @date 2022/12/08 + */ + private void processOracleDataII(String date, Integer type, String lineId, int lineIndex) { + RMpSurplusHarmonicDetailD rMpSurplusHarmonicDetailD = new RMpSurplusHarmonicDetailD(); + rMpSurplusHarmonicDetailD.setMeasurementPointId(lineId); + rMpSurplusHarmonicDetailD.setDataDate(LocalDate.parse(date)); + + //1、根据limit_rate表获取数据 + LimitRateOracle limitRateOracle = limitRateOracleService.getOneByData(date, lineIndex); + if (limitRateOracle == null){ + return; + } + + //2、填入数据(大于0则为超标) + //闪变发生次数(建表挖的坑:null值特殊处理) + Integer flickerOvertime = limitRateOracle.getFlickerOvertime() == null ? 0 : limitRateOracle.getFlickerOvertime(); + rMpSurplusHarmonicDetailD.setIsFlicker(flickerOvertime > 0 ? 1 : 0); + rMpSurplusHarmonicDetailD.setFlickerTimes(flickerOvertime); + //谐波电流含有率越限总次数(建表挖的坑:null值特殊处理) + rMpSurplusHarmonicDetailD.setIsInuharm(CalculateSumInuharm(limitRateOracle) > 0 ? 1 : 0); + rMpSurplusHarmonicDetailD.setInuharmTimes(CalculateSumInuharm(limitRateOracle)); + + //谐波电流含有率越限次数(建表挖的坑:null值特殊处理) + Integer harm1Overtime = limitRateOracle.getInuharm1Overtime() == null ? 0 : limitRateOracle.getInuharm1Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm1(harm1Overtime > 0 ? 1 : 0); + Integer harm2Overtime = limitRateOracle.getInuharm2Overtime() == null ? 0 : limitRateOracle.getInuharm2Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm2(harm2Overtime > 0 ? 1 : 0); + Integer harm3Overtime = limitRateOracle.getInuharm3Overtime() == null ? 0 : limitRateOracle.getInuharm3Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm3(harm3Overtime > 0 ? 1 : 0); + Integer harm4Overtime = limitRateOracle.getInuharm4Overtime() == null ? 0 : limitRateOracle.getInuharm4Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm4(harm4Overtime > 0 ? 1 : 0); + Integer harm5Overtime = limitRateOracle.getInuharm5Overtime() == null ? 0 : limitRateOracle.getInuharm5Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm5(harm5Overtime > 0 ? 1 : 0); + Integer harm6Overtime = limitRateOracle.getInuharm6Overtime() == null ? 0 : limitRateOracle.getInuharm6Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm6(harm6Overtime > 0 ? 1 : 0); + Integer harm7Overtime = limitRateOracle.getInuharm7Overtime() == null ? 0 : limitRateOracle.getInuharm7Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm7(harm7Overtime > 0 ? 1 : 0); + Integer harm8Overtime = limitRateOracle.getInuharm8Overtime() == null ? 0 : limitRateOracle.getInuharm8Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm8(harm8Overtime > 0 ? 1 : 0); + Integer harm9Overtime = limitRateOracle.getInuharm9Overtime() == null ? 0 : limitRateOracle.getInuharm9Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm9(harm9Overtime > 0 ? 1 : 0); + Integer harm10Overtime = limitRateOracle.getInuharm10Overtime() == null ? 0 : limitRateOracle.getInuharm10Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm10(harm10Overtime > 0 ? 1 : 0); + Integer harm11Overtime = limitRateOracle.getInuharm11Overtime() == null ? 0 : limitRateOracle.getInuharm11Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm11(harm11Overtime > 0 ? 1 : 0); + Integer harm12Overtime = limitRateOracle.getInuharm12Overtime() == null ? 0 : limitRateOracle.getInuharm12Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm12(harm12Overtime > 0 ? 1 : 0); + Integer harm13Overtime = limitRateOracle.getInuharm13Overtime() == null ? 0 : limitRateOracle.getInuharm13Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm13(harm13Overtime > 0 ? 1 : 0); + Integer harm14Overtime = limitRateOracle.getInuharm14Overtime() == null ? 0 : limitRateOracle.getInuharm14Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm14(harm14Overtime > 0 ? 1 : 0); + Integer harm15Overtime = limitRateOracle.getInuharm15Overtime() == null ? 0 : limitRateOracle.getInuharm15Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm15(harm15Overtime > 0 ? 1 : 0); + Integer harm16Overtime = limitRateOracle.getInuharm16Overtime() == null ? 0 : limitRateOracle.getInuharm16Overtime(); + rMpSurplusHarmonicDetailD.setIsInuharm16(harm16Overtime > 0 ? 1 : 0); + + //3、存库 + addDataII(rMpSurplusHarmonicDetailD); + } + + + /** + * 处理数据(influxDB>mysql) + * @author qijian + * @date 2022/12/02 + */ + private void hanlderInfluxDataII(LineParam lineParam) { + + } + + /** + * 处理数据 + * @author qijian + * @date 2022/12/12 + */ + private void processDataIM(String date, String lineId) { + LocalDate parseDate = LocalDate.parse(date); + //获取当前月的第一天 + LocalDate firstDay = parseDate.with(TemporalAdjusters.firstDayOfMonth()); + //获取当前月的最后一天 + LocalDate lastDay = parseDate.with(TemporalAdjusters.lastDayOfMonth()); + //Day表取累计数据,塞入Month表 + RMpPartHarmonicDetailM sumData = rMpPartHarmonicDetailDMapper.getPartSumByData(lineId, firstDay, lastDay); + if (sumData == null){ + return; + } + + //存库 + sumData.setDataDate(firstDay); + addDataIM(sumData); + } + + /** + * 处理数据 + * @author qijian + * @date 2022/12/12 + */ + private void processDataIIM(String date, String lineId) { + LocalDate parseDate = LocalDate.parse(date); + //获取当前月的第一天 + LocalDate firstDay = parseDate.with(TemporalAdjusters.firstDayOfMonth()); + //获取当前月的最后一天 + LocalDate lastDay = parseDate.with(TemporalAdjusters.lastDayOfMonth()); + //Day表取累计数据,塞入Month表 + RMpSurplusHarmonicDetailM sumData = rMpSurplusHarmonicDetailDMapper.getSurplusSumByData(lineId, firstDay, lastDay); + if (sumData == null){ + return; + } + + //存库 + sumData.setDataDate(firstDay); + addDataIIM(sumData); + } + + /** + * 计算求和(谐波电流含有率越限次数) + * @author qijian + * @date 2022/12/08 + */ + private Integer CalculateSumInuharm(LimitRateOracle limitRateOracle) { + return (limitRateOracle.getInuharm1Overtime() == null ? 0 : limitRateOracle.getInuharm1Overtime()) + + (limitRateOracle.getInuharm2Overtime() == null ? 0 : limitRateOracle.getInuharm2Overtime()) + + (limitRateOracle.getInuharm3Overtime() == null ? 0 : limitRateOracle.getInuharm3Overtime()) + + (limitRateOracle.getInuharm4Overtime() == null ? 0 : limitRateOracle.getInuharm4Overtime()) + + (limitRateOracle.getInuharm5Overtime() == null ? 0 : limitRateOracle.getInuharm5Overtime()) + + (limitRateOracle.getInuharm6Overtime() == null ? 0 : limitRateOracle.getInuharm6Overtime()) + + (limitRateOracle.getInuharm7Overtime() == null ? 0 : limitRateOracle.getInuharm7Overtime()) + + (limitRateOracle.getInuharm8Overtime() == null ? 0 : limitRateOracle.getInuharm8Overtime()) + + (limitRateOracle.getInuharm9Overtime() == null ? 0 : limitRateOracle.getInuharm9Overtime()) + + (limitRateOracle.getInuharm10Overtime() == null ? 0 : limitRateOracle.getInuharm10Overtime()) + + (limitRateOracle.getInuharm11Overtime() == null ? 0 : limitRateOracle.getInuharm11Overtime()) + + (limitRateOracle.getInuharm12Overtime() == null ? 0 : limitRateOracle.getInuharm12Overtime()) + + (limitRateOracle.getInuharm13Overtime() == null ? 0 : limitRateOracle.getInuharm13Overtime()) + + (limitRateOracle.getInuharm14Overtime() == null ? 0 : limitRateOracle.getInuharm14Overtime()) + + (limitRateOracle.getInuharm15Overtime() == null ? 0 : limitRateOracle.getInuharm15Overtime()) + + (limitRateOracle.getInuharm16Overtime() == null ? 0 : limitRateOracle.getInuharm16Overtime()); + } + + /** + * 计算求和(电压谐波含有率越限次数) + * @author qijian + * @date 2022/12/05 + */ + private Integer CalculateSumV(LimitRateOracle limitRateOracle) { + return limitRateOracle.getUharm2Overtime() + + limitRateOracle.getUharm3Overtime() + + limitRateOracle.getUharm4Overtime() + + limitRateOracle.getUharm5Overtime() + + limitRateOracle.getUharm6Overtime() + + limitRateOracle.getUharm7Overtime() + + limitRateOracle.getUharm8Overtime() + + limitRateOracle.getUharm9Overtime() + + limitRateOracle.getUharm10Overtime() + + limitRateOracle.getUharm11Overtime() + + limitRateOracle.getUharm12Overtime() + + limitRateOracle.getUharm13Overtime() + + limitRateOracle.getUharm14Overtime() + + limitRateOracle.getUharm15Overtime() + + limitRateOracle.getUharm16Overtime() + + limitRateOracle.getUharm17Overtime() + + limitRateOracle.getUharm18Overtime() + + limitRateOracle.getUharm19Overtime() + + limitRateOracle.getUharm20Overtime() + + limitRateOracle.getUharm21Overtime() + + limitRateOracle.getUharm22Overtime() + + limitRateOracle.getUharm23Overtime() + + limitRateOracle.getUharm24Overtime() + + limitRateOracle.getUharm25Overtime(); + } + + /** + * 计算求和(电流谐波含有率越限次数) + * @author qijian + * @date 2022/12/05 + */ + private Integer CalculateSumI(LimitRateOracle limitRateOracle) { + return limitRateOracle.getIharm2Overtime() + + limitRateOracle.getIharm3Overtime() + + limitRateOracle.getIharm4Overtime() + + limitRateOracle.getIharm5Overtime() + + limitRateOracle.getIharm6Overtime() + + limitRateOracle.getIharm7Overtime() + + limitRateOracle.getIharm8Overtime() + + limitRateOracle.getIharm9Overtime() + + limitRateOracle.getIharm10Overtime() + + limitRateOracle.getIharm11Overtime() + + limitRateOracle.getIharm12Overtime() + + limitRateOracle.getIharm13Overtime() + + limitRateOracle.getIharm14Overtime() + + limitRateOracle.getIharm15Overtime() + + limitRateOracle.getIharm16Overtime() + + limitRateOracle.getIharm17Overtime() + + limitRateOracle.getIharm18Overtime() + + limitRateOracle.getIharm19Overtime() + + limitRateOracle.getIharm20Overtime() + + limitRateOracle.getIharm21Overtime() + + limitRateOracle.getIharm22Overtime() + + limitRateOracle.getIharm23Overtime() + + limitRateOracle.getIharm24Overtime() + + limitRateOracle.getIharm25Overtime(); + } + + /** + * 存入数据库 + * @author qijian + * @date 2022/12/05 + */ + private void addDataI(RMpPartHarmonicDetailD rMpPartHarmonicDetailD) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RMpPartHarmonicDetailD::getMeasurementPointId, rMpPartHarmonicDetailD.getMeasurementPointId()) + .eq(RMpPartHarmonicDetailD::getDataDate, rMpPartHarmonicDetailD.getDataDate()); + RMpPartHarmonicDetailD rMpPartHarmonicDetailDOne = rMpPartHarmonicDetailDMapper.selectOne(lambdaQueryWrapper); + if (Objects.nonNull(rMpPartHarmonicDetailDOne)) { + rMpPartHarmonicDetailDMapper.update(rMpPartHarmonicDetailD, lambdaQueryWrapper); + } else { + rMpPartHarmonicDetailDMapper.insert(rMpPartHarmonicDetailD); + } + } + + /** + * 存入数据库 + * @author qijian + * @date 2022/12/05 + */ + private void addDataII(RMpSurplusHarmonicDetailD rMpSurplusHarmonicDetailD) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RMpSurplusHarmonicDetailD::getMeasurementPointId, rMpSurplusHarmonicDetailD.getMeasurementPointId()) + .eq(RMpSurplusHarmonicDetailD::getDataDate, rMpSurplusHarmonicDetailD.getDataDate()); + RMpSurplusHarmonicDetailD rMpSurplusHarmonicDetailDOne = rMpSurplusHarmonicDetailDMapper.selectOne(lambdaQueryWrapper); + if (Objects.nonNull(rMpSurplusHarmonicDetailDOne)) { + rMpSurplusHarmonicDetailDMapper.update(rMpSurplusHarmonicDetailD, lambdaQueryWrapper); + } else { + rMpSurplusHarmonicDetailDMapper.insert(rMpSurplusHarmonicDetailD); + } + } + + /** + * 存入数据库 + * @author qijian + * @date 2022/12/12 + */ + private void addDataIM(RMpPartHarmonicDetailM sumData) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RMpPartHarmonicDetailM::getMeasurementPointId, sumData.getMeasurementPointId()) + .eq(RMpPartHarmonicDetailM::getDataDate, sumData.getDataDate()); + RMpPartHarmonicDetailM rMpPartHarmonicDetailMOne = rMpPartHarmonicDetailMMapper.selectOne(lambdaQueryWrapper); + if (Objects.nonNull(rMpPartHarmonicDetailMOne)) { + rMpPartHarmonicDetailMMapper.update(sumData, lambdaQueryWrapper); + } else { + rMpPartHarmonicDetailMMapper.insert(sumData); + } + } + + /** + * 存入数据库 + * @author qijian + * @date 2022/12/12 + */ + private void addDataIIM(RMpSurplusHarmonicDetailM sumData) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(RMpSurplusHarmonicDetailM::getMeasurementPointId, sumData.getMeasurementPointId()) + .eq(RMpSurplusHarmonicDetailM::getDataDate, sumData.getDataDate()); + RMpSurplusHarmonicDetailM rMpSurplusHarmonicDetailMOne = rMpSurplusHarmonicDetailMMapper.selectOne(lambdaQueryWrapper); + if (Objects.nonNull(rMpSurplusHarmonicDetailMOne)) { + rMpSurplusHarmonicDetailMMapper.update(sumData, lambdaQueryWrapper); + } else { + rMpSurplusHarmonicDetailMMapper.insert(sumData); + } + } + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/AreaCountService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/AreaCountService.java new file mode 100644 index 000000000..b31798c4c --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/AreaCountService.java @@ -0,0 +1,16 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/13 14:33【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface AreaCountService { + + void areaCountHanlder(PrimaryGridParam primaryGridParam); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PmsMonitorPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PmsMonitorPOService.java new file mode 100644 index 000000000..80c0e455e --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PmsMonitorPOService.java @@ -0,0 +1,27 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.po.PmsMonitorPO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 15:32【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PmsMonitorPOService extends IService{ + + /** + * @Description: 在运监测点集合 + * @Param: [orgid] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/11/25 + */ + public List qurymeasurementRunPoints(String orgid); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PmsTerminalPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PmsTerminalPOService.java new file mode 100644 index 000000000..8174077a0 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PmsTerminalPOService.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.po.PmsTerminalPO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 15:53【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PmsTerminalPOService extends IService{ + + List queryOnlineMeasurementPoints(String orgid); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PrimaryGridDataService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PrimaryGridDataService.java new file mode 100644 index 000000000..4d11e0566 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/PrimaryGridDataService.java @@ -0,0 +1,31 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridDataIntegrityParam; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 8:46【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PrimaryGridDataService { + /** + * @Description: primaryGridDataHanlder + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/25 + */ + void primaryGridDataHanlder(PrimaryGridParam primaryGridParam); + /** + * @Description: 主网终端数据完整率月统计 + * @Param: [primaryGridDataIntegrityParam] + * @return: void + * @Author: clam + * @Date: 2022/11/30 + */ + void primaryGridDataIntegrityHanlder(PrimaryGridDataIntegrityParam primaryGridDataIntegrityParam); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpDevEvaluateDetailPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpDevEvaluateDetailPOService.java new file mode 100644 index 000000000..79adcecd3 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpDevEvaluateDetailPOService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RMpDevEvaluateDetailPO; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/1 9:18【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RMpDevEvaluateDetailPOService extends IMppService { + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpIntegrityDPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpIntegrityDPOService.java new file mode 100644 index 000000000..5bf5aa27c --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpIntegrityDPOService.java @@ -0,0 +1,24 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.po.RMpIntegrityDPO; +import com.njcn.prepare.harmonic.pojo.dto.MonitorDataIntegrityDTO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 15:38【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RMpIntegrityDPOService extends IService{ + + + List calculateDataIntegrity(List indexlist, String dataDate); + + List calculateMouthDataIntegrity(List mysqlIndexList, String dataDate); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpTargetWarnDService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpTargetWarnDService.java new file mode 100644 index 000000000..63cd4ab49 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RMpTargetWarnDService.java @@ -0,0 +1,27 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/15 11:00【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RMpTargetWarnDService extends IMppService { + + /** + * @Description: 计算出当前机构累计稳态超标监测点数(当月) + * @Param: [monitorIdList, dataDate] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/12/15 + */ + Integer queryHarmonicMeasurementAccrued(List monitorIdList, String dataDate); + } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexDPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexDPOService.java new file mode 100644 index 000000000..516cf852e --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexDPOService.java @@ -0,0 +1,27 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.ROperatingIndexDPO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/25 10:01【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ROperatingIndexDPOService extends IMppService { + + /** + * @Description: 查询day表一个月的数据数据生成月表数据 + * @Param: [orgid, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/11/30 + */ + List queryOneMothData(String orgid, String dataDate); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexMPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexMPOService.java new file mode 100644 index 000000000..81c70c46a --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexMPOService.java @@ -0,0 +1,35 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.ROperatingIndexMPO; + +import java.util.List; + +/** + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 13:59【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ROperatingIndexMPOService extends IMppService { + + /** + * @Description: queryOneQtrData 查询一季度Mouth表数据 + * @Param: [orgid, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/11/30 + */ + List queryOneQtrData(String orgid, String dataDate); + + /** + * @Description: queryOneYearData 查询一年Mouth表数据 + * @Param: [orgid, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/11/30 + */ + List queryOneYearData(String orgid, String dataDate); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexQPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexQPOService.java new file mode 100644 index 000000000..901c64aae --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexQPOService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.ROperatingIndexQPO; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 15:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ROperatingIndexQPOService extends IMppService { + + + } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexYPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexYPOService.java new file mode 100644 index 000000000..efc87a84e --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/ROperatingIndexYPOService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.ROperatingIndexYPO; + /** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/30 15:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface ROperatingIndexYPOService extends IMppService { + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatAbnormalDPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatAbnormalDPOService.java new file mode 100644 index 000000000..b75335639 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatAbnormalDPOService.java @@ -0,0 +1,26 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RStatAbnormalDPO; +import com.njcn.prepare.harmonic.pojo.param.PrimaryGridParam; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/28 19:31【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatAbnormalDPOService extends IMppService{ + + /** + * @Description: rStatAbnormalDDataHanlder + * @Param: [primaryGridParam] + * @return: void + * @Author: clam + * @Date: 2022/11/28 + */ + void rStatAbnormalDDataHanlder(PrimaryGridParam primaryGridParam); + } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgDService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgDService.java new file mode 100644 index 000000000..5b45b41cd --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgDService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RStatOrgDPO; + /** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/13 15:39【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatOrgDService extends IMppService { + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgMService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgMService.java new file mode 100644 index 000000000..58fd1d727 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/area/RStatOrgMService.java @@ -0,0 +1,17 @@ +package com.njcn.prepare.harmonic.service.mysql.area; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RStatOrgMPO; + /** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/14 16:17【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatOrgMService extends IMppService { + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/AlarmDetailService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/AlarmDetailService.java new file mode 100644 index 000000000..f279f5b38 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/AlarmDetailService.java @@ -0,0 +1,21 @@ +package com.njcn.prepare.harmonic.service.mysql.line; + +import com.njcn.prepare.harmonic.pojo.param.LineParam; + +/** + * 监测点指标告警明细 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/28 - 13:51 + */ +public interface AlarmDetailService { + + /** + * 监测点指标告警日统计 + * @author qijian + * @date 2022/12/28 + * @return + */ + boolean alarmDetailAlarm(LineParam lineParam); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DataExceptionService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DataExceptionService.java new file mode 100644 index 000000000..60b77d618 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DataExceptionService.java @@ -0,0 +1,23 @@ +package com.njcn.prepare.harmonic.service.mysql.line; + + +import com.njcn.device.pq.enums.DeviceResponseEnum; +import com.njcn.prepare.harmonic.pojo.param.LineParam; + +/** + * 数据是否异常 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/10/26 - 10:09 + */ +public interface DataExceptionService { + + /** + * 监测点数据是否异常 + * @author qijian + * @date 2022/10/26 + * @return + */ + DeviceResponseEnum lineDataException(LineParam lineParam); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DataIntegrityRateService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DataIntegrityRateService.java new file mode 100644 index 000000000..4b1689807 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DataIntegrityRateService.java @@ -0,0 +1,19 @@ +package com.njcn.prepare.harmonic.service.mysql.line; +import com.njcn.prepare.harmonic.pojo.param.LineParam; + +/** + * 数据完整率算法 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/10/26 - 10:09 + */ +public interface DataIntegrityRateService { + + /** + * 监测点日数据完整率 + * @author qijian + * @date 2022/10/26 + */ + boolean lineDataIntegrityRate(LineParam lineParam); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DistortionRateService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DistortionRateService.java index 9e5fa3a02..5a08560dc 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DistortionRateService.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/DistortionRateService.java @@ -10,4 +10,6 @@ import com.njcn.prepare.harmonic.pojo.param.LineParam; public interface DistortionRateService { void distortionRate(LineParam lineParam); + + void distortionRateBySource(LineParam lineParam); } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/NormalLimitService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/NormalLimitService.java index 6a8e98a18..8697ec457 100644 --- a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/NormalLimitService.java +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/NormalLimitService.java @@ -12,6 +12,7 @@ import com.njcn.prepare.harmonic.pojo.param.LineParam; public interface NormalLimitService extends IService { + Boolean AbnormalLineData(LineParam lineParam); diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/PqsEventdetailHandlerService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/PqsEventdetailHandlerService.java new file mode 100644 index 000000000..fd7abe946 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/PqsEventdetailHandlerService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.line; + +import com.njcn.prepare.harmonic.pojo.param.LineParam; + +/** +* +* Description: +* 接口文档访问地址:http://serverIP:port/swagger-ui.html +* Date: 2022/12/28 13:46【需求编号】 +* +* @author clam +* @version V1.0.0 +*/ +public interface PqsEventdetailHandlerService { + + + void eventdetailHandler(LineParam lineParam); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailDService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailDService.java new file mode 100644 index 000000000..7d80b3040 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailDService.java @@ -0,0 +1,27 @@ +package com.njcn.prepare.harmonic.service.mysql.line; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RMpEventDetailDPO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RMpEventDetailDService extends IMppService { + + /** + * @Description: queryOneMothData + * @Param: [lineId, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/12/28 + */ + List queryOneMothData(String lineId, String dataDate); + } diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailMService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailMService.java new file mode 100644 index 000000000..009ff27a7 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailMService.java @@ -0,0 +1,35 @@ +package com.njcn.prepare.harmonic.service.mysql.line; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RMpEventDetailMPO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RMpEventDetailMService extends IMppService { + + /** + * @Description: queryOneQtrData 查询一季度Mouth表数据 + * @Param: [lineId, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/12/28 + */ + List queryOneQtrData(String lineId, String dataDate); + /** + * @Description: queryOneYearData 查询一年Mouth表数据 + * @Param: [lineId, dataDate] + * @return: java.util.List + * @Author: clam + * @Date: 2022/12/28 + */ + List queryOneYearData(String lineId, String dataDate); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailQService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailQService.java new file mode 100644 index 000000000..7ad7adae7 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailQService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.line; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RMpEventDetailQPO; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RMpEventDetailQService extends IMppService { + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailYService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailYService.java new file mode 100644 index 000000000..b267d00cf --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/RMpEventDetailYService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.line; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.harmonic.pojo.po.RMpEventDetailYPO; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 14:58【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RMpEventDetailYService extends IMppService { + + +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/SteadyIndexExceedService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/SteadyIndexExceedService.java new file mode 100644 index 000000000..d09f1d1ce --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/SteadyIndexExceedService.java @@ -0,0 +1,40 @@ +package com.njcn.prepare.harmonic.service.mysql.line; +import com.njcn.prepare.harmonic.pojo.param.LineParam; + +/** + * 监测点稳态指标超标明细 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/02 - 10:09 + */ +public interface SteadyIndexExceedService { + + /** + * 日统计I、II、III类监测点是否超标限值 + * @author qijian + * @date 2022/12/02 + */ + boolean isValueExceedID(LineParam lineParam); + + /** + * 日统计I、II类监测点是否超标限值 + * @author qijian + * @date 2022/12/02 + */ + boolean isValueExceedIID(LineParam lineParam); + + /** + * 月统计I、II、III类监测点是否超标限值 + * @author qijian + * @date 2022/12/12 + */ + boolean isValueExceedIM(LineParam lineParam); + + /** + * 月统计I、II类监测点是否超标限值 + * @author qijian + * @date 2022/12/12 + */ + boolean isValueExceedIIM(LineParam lineParam); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/DataFlickerOracleService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/DataFlickerOracleService.java new file mode 100644 index 000000000..60367fb01 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/DataFlickerOracleService.java @@ -0,0 +1,22 @@ +package com.njcn.prepare.harmonic.service.oracle; + + +import com.njcn.prepare.harmonic.pojo.vo.DataFlickerOracleVO; + +import java.util.Date; + +/** + * DataFlicker service层 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/01 - 10:09 + */ +public interface DataFlickerOracleService{ + /** + * 取两项闪变指标数量(数据完整性) + * @author qijian + * @date 2022/12/01 + */ + DataFlickerOracleVO getTwoCountForDataIntegrityRate(Integer lineId, Date date, Integer type); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/DataVOraclePOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/DataVOraclePOService.java new file mode 100644 index 000000000..2a7e487d6 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/DataVOraclePOService.java @@ -0,0 +1,43 @@ +package com.njcn.prepare.harmonic.service.oracle; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.oracle.DataVOraclePO; +import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO; + +import java.util.Date; +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 11:45【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface DataVOraclePOService extends IService{ + + Integer queryTransitMeasurementPoints(List indexlist, String datadate); + + /** + * 取五项指标(数据异常) + * @author qijian + * @date 2022/11/30 + */ + DataVOracleVO getFiveItemsForDataException(Integer lineId, Date date, Integer type); + + /** + * 取五项指标数量(数据完整性) + * @author qijian + * @date 2022/12/01 + */ + DataVOracleVO getFiveCountForDataIntegrityRate(Integer lineId, Date date, Integer type); + + /** + * 电压总谐波畸变率最大值求最大值 + * @param lineId + * @return + */ + Double queryVThdMax(Integer lineId,String datadate); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/DataFlickerOracleServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/DataFlickerOracleServiceImpl.java new file mode 100644 index 000000000..b3e6e8c25 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/DataFlickerOracleServiceImpl.java @@ -0,0 +1,45 @@ +package com.njcn.prepare.harmonic.service.oracle.Impl; + +import cn.hutool.core.date.DateTime; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.njcn.prepare.harmonic.mapper.oracle.DataFlickerOracleMapper; +import com.njcn.prepare.harmonic.pojo.vo.DataFlickerOracleVO; +import com.njcn.prepare.harmonic.service.oracle.DataFlickerOracleService; +import com.njcn.prepare.harmonic.utils.PublicUtil; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.Map; + +/** + * DataFlicker service层 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/01 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +@DS("oracle") +public class DataFlickerOracleServiceImpl implements DataFlickerOracleService { + + private final DataFlickerOracleMapper dataFlickerOracleMapper; + + /** + * 取两项闪变指标数量(数据完整性) + * @author qijian + * @date 2022/12/01 + */ + @Override + public DataFlickerOracleVO getTwoCountForDataIntegrityRate(Integer lineId, Date date, Integer type) { + //根据类型获取日期的开始和结束 + Map beginAndEndByDate = PublicUtil.getBeginAndEndByDate(type, date); + DateTime startTime = beginAndEndByDate.get("startTime"); + DateTime endTime = beginAndEndByDate.get("endTime"); + DataFlickerOracleVO dataFlickerOracleVO = dataFlickerOracleMapper.getTwoCountForDataIntegrityRate(lineId,startTime,endTime); + return dataFlickerOracleVO; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/DataVOraclePOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/DataVOraclePOServiceImpl.java new file mode 100644 index 000000000..ab0949e35 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/DataVOraclePOServiceImpl.java @@ -0,0 +1,112 @@ +package com.njcn.prepare.harmonic.service.oracle.Impl; + +import cn.hutool.core.date.DateTime; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.mapper.oracle.DataVOraclePOMapper; +import com.njcn.prepare.harmonic.pojo.oracle.DataVOraclePO; +import com.njcn.prepare.harmonic.pojo.vo.DataVOracleVO; +import com.njcn.prepare.harmonic.service.oracle.DataVOraclePOService; +import com.njcn.prepare.harmonic.utils.PublicUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 11:45【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@DS("oracle") +public class DataVOraclePOServiceImpl extends ServiceImpl implements DataVOraclePOService{ + + private @Autowired + DataVOraclePOMapper dataVOraclePOMapper; + /** + * @Description: 主网单位在线监测点数 :3、在Oracle库的data_v表中查询当天RMS数据数量,数量大于1则该监测点为在线监测点 + * line_id 监测点编号 + * timeid 时间 + * phasic_type = A 相别 + * RMS 电压有效值数据个数 + * @Param: [indexlist] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/11/25 + */ + @Override + public Integer queryTransitMeasurementPoints(List indexlist, String datadate) { + Integer temp =0; + if(CollectionUtils.isEmpty (indexlist)){ + return temp; + } + QueryWrapper monitorPOLambdaQueryWrapper = new QueryWrapper ( ); + monitorPOLambdaQueryWrapper.select ("distinct lineid"). + in ("LINEID",indexlist). + eq ("PHASIC_TYPE","A"). + gt ("RMS", 1). + eq("TO_CHAR(timeid, 'yyyy-mm-dd')",datadate); + + temp = dataVOraclePOMapper.selectCount (monitorPOLambdaQueryWrapper); + return temp; + } + + /** + * 取五项指标(数据异常) + * @author qijian + * @date 2022/11/30 + */ + @Override + public DataVOracleVO getFiveItemsForDataException(Integer lineId, Date date, Integer type) { + //根据类型获取日期的开始和结束 + Map beginAndEndByDate = PublicUtil.getBeginAndEndByDate(type, date); + DateTime startTime = beginAndEndByDate.get("startTime"); + DateTime endTime = beginAndEndByDate.get("endTime"); + DataVOracleVO dataVOracleVO = dataVOraclePOMapper.getFiveItemsForDataException(lineId,startTime,endTime); + return dataVOracleVO; + } + + /** + * 取五项指标数量(数据完整性) + * @author qijian + * @date 2022/12/01 + */ + @Override + public DataVOracleVO getFiveCountForDataIntegrityRate(Integer lineId, Date date, Integer type) { + //根据类型获取日期的开始和结束 + Map beginAndEndByDate = PublicUtil.getBeginAndEndByDate(type, date); + DateTime startTime = beginAndEndByDate.get("startTime"); + DateTime endTime = beginAndEndByDate.get("endTime"); + DataVOracleVO dataVOracleVO = dataVOraclePOMapper.getFiveCountForDataIntegrityRate(lineId,startTime,endTime); + return dataVOracleVO; + } + + /** + * 电压总谐波畸变率最大值求最大值 + * + * @param lineId + * @return + */ + @Override + public Double queryVThdMax(Integer lineId,String datadate) { + QueryWrapper dataVOraclePOQueryWrapper = new QueryWrapper ( ); + dataVOraclePOQueryWrapper.select ("max(V_THD_MAX) as V_THD_MAX"). + eq ("LINEID", lineId). + in ("PHASIC_TYPE", Stream.of ("A","B","C" ).collect(Collectors.toList())). + eq("TO_CHAR(TIMEID, 'yyyy-mm-dd')",datadate); + DataVOraclePO dataVOraclePO = dataVOraclePOMapper.selectOne (dataVOraclePOQueryWrapper); + Double vThdMax = dataVOraclePO.getVThdMax ( ); + return vThdMax; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/LimitRateOracleServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/LimitRateOracleServiceImpl.java new file mode 100644 index 000000000..479e467f6 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/LimitRateOracleServiceImpl.java @@ -0,0 +1,43 @@ +package com.njcn.prepare.harmonic.service.oracle.Impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.prepare.harmonic.mapper.oracle.LimitRateOracleMapper; +import com.njcn.prepare.harmonic.pojo.oracle.LimitRateOracle; +import com.njcn.prepare.harmonic.service.oracle.LimitRateOracleService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * LimitRate service层 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/05 - 10:09 + */ +@Service +@RequiredArgsConstructor +@Slf4j +@DS("oracle") +public class LimitRateOracleServiceImpl implements LimitRateOracleService { + + private final LimitRateOracleMapper limitRateOracleMapper; + + /** + * 根据条件获取单条数据 + * @author qijian + * @date 2022/12/05 + */ + @Override + public LimitRateOracle getOneByData(String date, Integer lineIndex) { + DateTime parseDate = DateUtil.parse(date + " 00:00:00", "yyyy-MM-dd HH:mm:ss"); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(LimitRateOracle::getTimeid, parseDate) + .eq(LimitRateOracle::getMyindex, lineIndex) + .eq(LimitRateOracle::getPhasicType, "T"); + return limitRateOracleMapper.selectOne(lambdaQueryWrapper); + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/PqLinedetailPOServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/PqLinedetailPOServiceImpl.java new file mode 100644 index 000000000..c44be3482 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/PqLinedetailPOServiceImpl.java @@ -0,0 +1,66 @@ +package com.njcn.prepare.harmonic.service.oracle.Impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.prepare.harmonic.mapper.oracle.PqLinedetailPOMapper; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; +import com.njcn.prepare.harmonic.service.oracle.PqLinedetailPOService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 11:20【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@DS("oracle") +public class PqLinedetailPOServiceImpl extends ServiceImpl implements PqLinedetailPOService{ + + private @Autowired + PqLinedetailPOMapper pqLinedetailPOMapper; + /** + * @param mysqlIndexs + * @Description: 通过mysql监测点id查询Oracle监测点Id + * @Param: [mysqlIndexs] + * @return: com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO + * @Author: clam + * @Date: 2022/11/29 + */ + @Override + public List queryOracleIndexIdByMysqlIndexId(List mysqlIndexs) { + + List pqLinedetailPOS = new ArrayList<> (); + if(CollectionUtils.isEmpty (mysqlIndexs)){ + return pqLinedetailPOS; + } + LambdaQueryWrapper monitorPOLambdaQueryWrapper = new LambdaQueryWrapper ( ); + monitorPOLambdaQueryWrapper.select (PqLinedetailPO::getMonitorId,PqLinedetailPO::getLineIndex). + in (PqLinedetailPO::getMonitorId,mysqlIndexs); + pqLinedetailPOS = pqLinedetailPOMapper.selectList (monitorPOLambdaQueryWrapper); + + return pqLinedetailPOS; + } + + /** + * 根据mysql监测点取oracle监测点信息 + * @author qijian + * @date 2022/12/01 + */ + @Override + public PqLinedetailPO getOracleIndexIdByMonitorId(String lineId) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(PqLinedetailPO::getMonitorId, lineId); + PqLinedetailPO pqLinedetailPO = pqLinedetailPOMapper.selectOne(lambdaQueryWrapper); + return pqLinedetailPO; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/PqsEventdetailServiceImpl.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/PqsEventdetailServiceImpl.java new file mode 100644 index 000000000..2b7c71184 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/Impl/PqsEventdetailServiceImpl.java @@ -0,0 +1,53 @@ +package com.njcn.prepare.harmonic.service.oracle.Impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.prepare.harmonic.mapper.mysql.area.PqsEventdetailMapper; +import com.njcn.prepare.harmonic.pojo.oracle.PqsEventdetailPO; +import com.njcn.prepare.harmonic.service.oracle.PqsEventdetailService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 13:46【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@DS ("oracle") +@RequiredArgsConstructor +public class PqsEventdetailServiceImpl extends MppServiceImpl implements PqsEventdetailService{ + + + + private final + PqsEventdetailMapper pqsEventdetailMapper; + + /** + * @param lineId + * @param dataDate + * @param sag + * @Description: 根据条件查询监测点超标次数 + * @Param: [lineId, dataDate, sag] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/12/28 + */ + @Override + public Integer queryByCondition(Integer lineId, String dataDate, Integer sag) { + QueryWrapper queryWrapper = new QueryWrapper ( ); + queryWrapper.select ("1"). + eq ("lineid", lineId). + eq ("WAVETYPE",sag). + eq("TO_CHAR(TIMEID, 'yyyy-mm-dd')",dataDate); + + Integer integer = pqsEventdetailMapper.selectCount (queryWrapper); + + + return integer; + } +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/LimitRateOracleService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/LimitRateOracleService.java new file mode 100644 index 000000000..0d2fe0f61 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/LimitRateOracleService.java @@ -0,0 +1,20 @@ +package com.njcn.prepare.harmonic.service.oracle; + + +import com.njcn.prepare.harmonic.pojo.oracle.LimitRateOracle; + +/** + * LimitRate service层 + * + * @author qijian + * @version 1.0.0 + * @createTime 2022/12/05 - 10:09 + */ +public interface LimitRateOracleService { + /** + * 根据条件获取单条数据 + * @author qijian + * @date 2022/12/05 + */ + LimitRateOracle getOneByData(String date, Integer lineIndex); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/PqLinedetailPOService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/PqLinedetailPOService.java new file mode 100644 index 000000000..a68589756 --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/PqLinedetailPOService.java @@ -0,0 +1,33 @@ +package com.njcn.prepare.harmonic.service.oracle; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO; + +import java.util.List; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/29 11:20【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqLinedetailPOService extends IService{ + /** + * @Description: 通过mysql监测点id查询Oracle监测点Id + * @Param: [mysqlIndexs] + * @return: com.njcn.prepare.harmonic.pojo.oracle.PqLinedetailPO + * @Author: clam + * @Date: 2022/11/29 + */ + List queryOracleIndexIdByMysqlIndexId(List mysqlIndexs); + + /** + * 根据mysql监测点取oracle监测点信息 + * @author qijian + * @date 2022/12/01 + */ + PqLinedetailPO getOracleIndexIdByMonitorId(String lineId); +} diff --git a/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/PqsEventdetailService.java b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/PqsEventdetailService.java new file mode 100644 index 000000000..93e67859c --- /dev/null +++ b/pqs-prepare/harmonic-prepare/src/main/java/com/njcn/prepare/harmonic/service/oracle/PqsEventdetailService.java @@ -0,0 +1,24 @@ +package com.njcn.prepare.harmonic.service.oracle; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.prepare.harmonic.pojo.oracle.PqsEventdetailPO; + /** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/12/28 13:46【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface PqsEventdetailService extends IMppService { + + /** + * @Description: 根据条件查询监测点超标次数 + * @Param: [lineId, dataDate, sag] + * @return: java.lang.Integer + * @Author: clam + * @Date: 2022/12/28 + */ + Integer queryByCondition(Integer lineId, String dataDate, Integer sag); + }