Jelajahi Sumber

单回路监测查询

jichaobo 3 tahun lalu
induk
melakukan
860d84961a

+ 12 - 0
fiveep-controller/src/main/java/com/bizmatics/controller/web/RtAnalogDataController.java

@@ -4,6 +4,7 @@ package com.bizmatics.controller.web;
 import com.bizmatics.common.core.bean.ApiResult;
 import com.bizmatics.service.RtAnalogDataService;
 import com.bizmatics.service.vo.RadCountVO;
+import com.bizmatics.service.vo.RealScoreOneVO;
 import com.bizmatics.service.vo.RealScoreVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -73,6 +74,17 @@ public class RtAnalogDataController {
         return ApiResult.success(rtAnalogDataService.realScore(deviceCode));
     }
 
+    /**
+     * 电能质量(单回路监测)
+     *
+     * @param deviceCode 设备编号
+     * @return
+     */
+    @GetMapping("realScoreOne")
+    public ApiResult<RealScoreOneVO> realScoreOne(@RequestParam String deviceCode) {
+        return ApiResult.success(rtAnalogDataService.realScoreOne(deviceCode));
+    }
+
     /**
      * 伍继PC1.0-数据报表
      *

+ 10 - 0
fiveep-service/src/main/java/com/bizmatics/service/RtAnalogDataService.java

@@ -5,6 +5,7 @@ import com.bizmatics.model.DeviceAttribute;
 import com.bizmatics.model.RtAnalogData;
 import com.bizmatics.model.SiteDynamicProperties;
 import com.bizmatics.service.vo.RadCountVO;
+import com.bizmatics.service.vo.RealScoreOneVO;
 import com.bizmatics.service.vo.RealScoreVO;
 
 import java.util.Date;
@@ -49,6 +50,13 @@ public interface RtAnalogDataService extends CrudService<RtAnalogData> {
      */
     RealScoreVO realScore(String deviceCode);
 
+    /**
+     * 电能质量(单回路监测)
+     * @param deviceCode
+     * @return
+     */
+    RealScoreOneVO realScoreOne(String deviceCode);
+
     /**
      * 填充数据
      * @param rtAnalogData
@@ -58,6 +66,8 @@ public interface RtAnalogDataService extends CrudService<RtAnalogData> {
      */
     RealScoreVO fillRealScoreData(RtAnalogData rtAnalogData, SiteDynamicProperties siteDynamicProperties, DeviceAttribute deviceAttribute);
 
+    RealScoreOneVO fillRealScoreDataOne(RtAnalogData rtAnalogData, SiteDynamicProperties siteDynamicProperties);
+
     /**
      *
      * @param siteId

+ 79 - 0
fiveep-service/src/main/java/com/bizmatics/service/impl/RtAnalogDataServiceImpl.java

@@ -18,6 +18,7 @@ import com.bizmatics.service.RtAnalogDataService;
 import com.bizmatics.service.SiteDynamicPropertiesService;
 import com.bizmatics.service.util.SecurityUtils;
 import com.bizmatics.service.vo.RadCountVO;
+import com.bizmatics.service.vo.RealScoreOneVO;
 import com.bizmatics.service.vo.RealScoreVO;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -167,6 +168,84 @@ public class RtAnalogDataServiceImpl extends AbstractCrudService<RtAnalogDataMap
         return  fillRealScoreData(rtAnalogData,siteDynamicProperties,deviceAttribute);
     }
 
+    @Override
+    public RealScoreOneVO realScoreOne(String deviceCode) {
+        LambdaQueryWrapper<RtAnalogData> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(RtAnalogData::getDeviceName,deviceCode);
+        RtAnalogData rtAnalogData = getOne(queryWrapper);
+        Optional.ofNullable(rtAnalogData).orElseThrow(() -> new BusinessException("设备实时信息不存在"));
+        //查询设备
+        LambdaQueryWrapper<Device> deviceQuery = Wrappers.lambdaQuery();
+        deviceQuery.eq(Device::getDeviceCode,deviceCode);
+        Device device = deviceService.getOne(deviceQuery);
+        Optional.ofNullable(device).orElseThrow(() -> new BusinessException("设备不存在"));
+        //查询sd
+        LambdaQueryWrapper<SiteDynamicProperties> sdQuery = Wrappers.lambdaQuery();
+        sdQuery.eq(SiteDynamicProperties::getSiteId,device.getSiteId());
+        SiteDynamicProperties siteDynamicProperties = siteDynamicPropertiesService.getOne(sdQuery);
+        Optional.ofNullable(siteDynamicProperties).orElseThrow(() -> new BusinessException("sd不存在"));
+        return  fillRealScoreDataOne(rtAnalogData,siteDynamicProperties);
+    }
+
+    @Override
+    public RealScoreOneVO fillRealScoreDataOne(RtAnalogData rtAnalogData, SiteDynamicProperties siteDynamicProperties){
+        List<Double> checkList = new ArrayList<>();
+        RealScoreOneVO realScoreVo = BeanMapperUtils.map(rtAnalogData, RealScoreOneVO.class);
+
+        checkList.add(realScoreVo.getIa());
+        checkList.add(realScoreVo.getIb());
+        checkList.add(realScoreVo.getIc());
+
+        //电流不平衡
+        realScoreVo.setElBalun(checkBalun(checkList));
+
+        checkList.clear();
+        checkList.add(realScoreVo.getUa());
+        checkList.add(realScoreVo.getUb());
+        checkList.add(realScoreVo.getUc());
+        //ABC三相电压占比
+        Double max = checkList.stream().max(Double::compareTo).get();
+        if(max==0.00){
+            realScoreVo.setUaPercentage(0.00);
+            realScoreVo.setUbPercentage(0.00);
+            realScoreVo.setUcPercentage(0.00);
+        }else {
+            realScoreVo.setUaPercentage(Arith.div(realScoreVo.getUa(),(max/100*20+max)*100));
+            realScoreVo.setUbPercentage(Arith.div(realScoreVo.getUb(),(max/100*20+max)*100));
+            realScoreVo.setUcPercentage(Arith.div(realScoreVo.getUc(),(max/100*20+max)*100));
+        }
+
+
+        //电压不平衡
+        realScoreVo.setVtBalun(checkBalun(checkList));
+        //当前频率
+        realScoreVo.setF(realScoreVo.getF());
+        //频率偏差
+        if (realScoreVo.getF()==0.00){
+            realScoreVo.setFdeviation(0.00);
+        }else {
+            checkList.clear();
+            checkList.add(50.00);
+            checkList.add(realScoreVo.getF());
+            Double max1 = checkList.stream().max(Double::compareTo).get();
+            Double min1 = checkList.stream().min(Double::compareTo).get();
+            realScoreVo.setFdeviation(Arith.sub(max1,min1)/50*100);
+        }
+        if (realScoreVo.getP()==0.00){
+            realScoreVo.setPpercentage(0.00);
+        }else {
+            realScoreVo.setPpercentage(Arith.div(realScoreVo.getP(),realScoreVo.getP()/100*20+realScoreVo.getP()));
+        }
+        if (realScoreVo.getQ()==0.00){
+            realScoreVo.setQpercentage(0.00);
+        }else {
+            realScoreVo.setQpercentage(Arith.div(realScoreVo.getQ(),realScoreVo.getQ()/100*20+realScoreVo.getQ()));
+        }
+
+        realScoreVo.setVoltageLevel(siteDynamicProperties.getVoltageLevel());
+        return realScoreVo;
+    }
+
     /**
      * 填充实时数据
      */

+ 109 - 0
fiveep-service/src/main/java/com/bizmatics/service/vo/RealScoreOneVO.java

@@ -0,0 +1,109 @@
+package com.bizmatics.service.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 实时评分
+ * @author yq
+ * @date 2021/10/22 16:50
+ */
+@Data
+public class RealScoreOneVO {
+
+    /**
+     * A相电流
+     */
+    private Double Ia;
+
+    /**
+     * B相电流
+     */
+    private Double Ib;
+
+    /**
+     * C相电流
+     */
+    private Double Ic;
+
+
+    /**
+     * A相电压
+     */
+    private Double Ua;
+
+    /**
+     * B相电压
+     */
+    private Double Ub;
+
+    /**
+     * C相电压
+     */
+    private Double Uc;
+
+    /**
+     * 电流不平衡
+     */
+    private Double elBalun;
+    /**
+     * 电压不平衡
+     */
+    private Double vtBalun;
+
+    /**
+     * 时间
+     */
+    private Date dataTime;
+
+    /**
+     * 频率
+     */
+    private Double F;
+
+    /**
+     * 三相总有功功率
+     */
+    private Double P;
+
+    /**
+     * 三相总无功功率
+     */
+    private Double Q;
+
+    /**
+     * A相电压占比
+     */
+    private Double UaPercentage;
+
+    /**
+     * B相电压占比
+     */
+    private Double UbPercentage;
+
+    /**
+     * C相电压占比
+     */
+    private Double UcPercentage;
+
+    /**
+     * 频率偏差
+     */
+    private Double Fdeviation;
+
+    /**
+     * 三相总有功功率占比
+     */
+    private Double Ppercentage;
+
+    /**
+     * 三相总无功功率占比
+     */
+    private Double Qpercentage;
+
+    /**
+     * 额定电压
+     */
+    private String voltageLevel;
+}