Browse Source

逆变器分析详情页接口

宁檬 1 year ago
parent
commit
50b6da7884

+ 16 - 12
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/controller/goodness/StationAnalysisController.java

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gyee.common.model.StringUtils;
 import com.gyee.runeconomy.dto.R;
 import com.gyee.runeconomy.dto.ResultMsg;
+import com.gyee.runeconomy.dto.response.CleanAnalysis;
 import com.gyee.runeconomy.dto.response.InverterAnalysis;
 import com.gyee.runeconomy.dto.response.InverterAnalysis2;
 import com.gyee.runeconomy.dto.response.StationAnalysis;
+import com.gyee.runeconomy.model.fitting.ProEconAnalysisClean;
 import com.gyee.runeconomy.service.goodness.WindturbinegoodnessService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -14,6 +16,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -87,12 +90,12 @@ public class StationAnalysisController {
             @RequestParam(value = "wtid", required = true) String wtid,
             @RequestParam(value = "beginDate", required = true) String beginDate,
             @RequestParam(value = "endDate", required = true) String endDate,
-            @RequestParam(value = "interval", defaultValue = "900",required = false) Long interval,
+            @RequestParam(value = "interval", defaultValue = "900", required = false) Long interval,
             @RequestParam(value = "target", required = false) String target,
             @RequestParam(value = "sort", required = false) String sort
     ) throws Exception {
 
-        List<InverterAnalysis2> resultList = windturbinegoodnessService.inverterAnalysis2(wtid, beginDate, endDate, interval,target, sort);
+        List<InverterAnalysis2> resultList = windturbinegoodnessService.inverterAnalysis2(wtid, beginDate, endDate, interval, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
@@ -105,32 +108,33 @@ public class StationAnalysisController {
     /**
      * 清洗分析
      */
-   /* @GetMapping("/analyse/cleanAnalyse")
+    @GetMapping("/analyse/cleanAnalyse")
     @ResponseBody
     @ApiOperation(value = "清洗分析", notes = "清洗分析")
     public R cleanAnalysis(
             @RequestParam(value = "companys", required = true) String companys,
             @RequestParam(value = "wpid", required = true) String wpid,
             @RequestParam(value = "wtid", required = true) String wtid,
-            @RequestParam(value = "type", required = true) String type,
-            @RequestParam(value = "branch", required = false) String branch,
+            @RequestParam(value = "date", required = true) String date,
+            @RequestParam(value = "pageSize", required = true) Long pageSize,
+            @RequestParam(value = "pageNum", required = true) Long pageNum,
             @RequestParam(value = "target", required = false) String target,
             @RequestParam(value = "sort", required = false) String sort
-    ) {
-        List<InverterAnalysis2> resultList = windturbinegoodnessService.cleanAnalysis(companys,wpid, wtid,type,branch,target,sort);
+    ) throws ParseException {
+        Page<ProEconAnalysisClean> resultList = windturbinegoodnessService.cleanAnalysis(companys, wpid, wtid, date, pageSize, pageNum, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
             return R.error(ResultMsg.error());
         }
-    }*/
+    }
 
 
     /**
      * 清洗分析详情页
      */
-    /*@GetMapping("/analyse/cleanAnalyseDetails")
+    @GetMapping("/analyse/cleanAnalyseDetails")
     @ResponseBody
     @ApiOperation(value = "清洗分析详情页", notes = "清洗分析详情页")
     public R cleanAnalysis2(
@@ -139,15 +143,15 @@ public class StationAnalysisController {
             @RequestParam(value = "endDate", required = true) String endDate,
             @RequestParam(value = "target", required = false) String target,
             @RequestParam(value = "sort", required = false) String sort
-    ) {
-        List<InverterAnalysis2> resultList = windturbinegoodnessService.cleanAnalysis2(branch,beginDate,endDate,target,sort);
+    ) throws Exception {
+        List<CleanAnalysis> resultList = windturbinegoodnessService.cleanAnalysisDetails(branch, beginDate, endDate, target, sort);
 
         if (StringUtils.isNotNull(resultList)) {
             return R.data(ResultMsg.ok(resultList));
         } else {
             return R.error(ResultMsg.error());
         }
-    }*/
+    }
 
 
 }

+ 48 - 9
web/runeconomy-jjyx/src/main/java/com/gyee/runeconomy/service/goodness/WindturbinegoodnessService.java

@@ -1,6 +1,7 @@
 package com.gyee.runeconomy.service.goodness;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gyee.common.contant.ContantXk;
 import com.gyee.common.model.PointData;
@@ -9,14 +10,17 @@ import com.gyee.common.util.SortUtils;
 import com.gyee.common.vo.benchmark.DataVo;
 import com.gyee.common.vo.threerate.PvVo;
 import com.gyee.runeconomy.dto.EchartDataVo;
+import com.gyee.runeconomy.dto.response.CleanAnalysis;
 import com.gyee.runeconomy.dto.response.InverterAnalysis;
 import com.gyee.runeconomy.dto.response.InverterAnalysis2;
 import com.gyee.runeconomy.dto.response.StationAnalysis;
 import com.gyee.runeconomy.init.CacheContext;
 import com.gyee.runeconomy.model.auto.*;
 import com.gyee.runeconomy.model.fitting.ProBasicEquipmentBranchPoint;
+import com.gyee.runeconomy.model.fitting.ProEconAnalysisClean;
 import com.gyee.runeconomy.service.auto.IProEconEquipmentInfoDay6Service;
 import com.gyee.runeconomy.service.auto.IProEconWindturbineGoodnessService;
+import com.gyee.runeconomy.service.fitting.IProEconAnalysisCleanService;
 import com.gyee.runeconomy.util.DateUtils;
 import com.gyee.runeconomy.util.StringUtils;
 import com.gyee.runeconomy.util.realtimesource.IEdosUtil;
@@ -25,6 +29,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.function.Function;
@@ -44,6 +49,9 @@ public class WindturbinegoodnessService {
     private IProEconEquipmentInfoDay6Service proEconEquipmentInfoDay6Service;
 
     @Resource
+    private IProEconAnalysisCleanService iProEconAnalysisCleanService;
+
+    @Resource
     private IEdosUtil edosUtil;
 
     public Page<ProEconWindturbineGoodness> windturbinegoodnessList(Integer pageNum, Integer pageSize, String cmId, String type, String wpId, String recorddate) {
@@ -1152,7 +1160,7 @@ public class WindturbinegoodnessService {
 
 
     /**
-     * 逆变器分析二次页面
+     * 逆变器分析详情页
      */
     public List<InverterAnalysis2> inverterAnalysis2(String wtid, String beginDate, String endDate, Long interval, String target, String sort) throws Exception {
         Long startTs = DateUtils.parseDate1(beginDate).getTime() / 1000;
@@ -1205,18 +1213,49 @@ public class WindturbinegoodnessService {
         return lias2;
     }
 
-
-   /* public List<InverterAnalysis2> cleanAnalysis2(String branch, String beginDate, String endDate, String target, String sort) {
-        List<ProBasicEquipmentPoint> srg = CacheContext.proBasicEquipmentPointList.stream().filter(pbep -> "AIG010".equals(pbep.getUniformCode()) && wtid.equals(pbep.getWindturbineId())).collect(Collectors.toList());
+    /**
+     * 清洗分析详情页
+     */
+    public List<CleanAnalysis> cleanAnalysisDetails(String branch, String beginDate, String endDate, String target, String sort) throws Exception {
+        Long startTs = DateUtils.parseDate1(beginDate).getTime() / 1000;
+        Long endTs = DateUtils.parseDate1(endDate).getTime() / 1000;
 
         List<ProBasicEquipmentBranchPoint> dl = CacheContext.proBasicEquipmentBranchPointList.stream().filter(pbqbp -> "ZLDL".equals(pbqbp.getUniformCode()) && branch.equals(pbqbp.getWindturbineId())).collect(Collectors.toList());
-
         List<ProBasicEquipmentBranchPoint> dy = CacheContext.proBasicEquipmentBranchPointList.stream().filter(pbqbp -> "ZLDY".equals(pbqbp.getUniformCode()) && branch.equals(pbqbp.getWindturbineId())).collect(Collectors.toList());
+        //String inverterId = dl.get(0).getEquipmentId();
+        //List<ProBasicEquipmentBranchPoint> inverter = CacheContext.proBasicEquipmentBranchPointList.stream().filter(pbqbp -> "SSZNHGLZS".equals(pbqbp.getUniformCode()) && branch.equals(pbqbp.getWindturbineId())).collect(Collectors.toList());
+
+        List<PointData> historydlDatasRaw = edosUtil.getHistoryDatasRaw(dl.get(0).getNemCode(), startTs, endTs);
+        Map<Long, PointData> dlMap = historydlDatasRaw.stream().collect(Collectors.toMap(PointData::getPointTime, Function.identity()));
+        List<PointData> historydyDatasRaw = edosUtil.getHistoryDatasRaw(dy.get(0).getNemCode(), startTs, endTs);
+        Map<Long, PointData> dyMap = historydyDatasRaw.stream().collect(Collectors.toMap(PointData::getPointTime, Function.identity()));
+
+        List<CleanAnalysis> lca = new ArrayList<>();
+        for (PointData pd : historydlDatasRaw) {
+            CleanAnalysis ca = new CleanAnalysis();
+            ca.setBranchId(branch);
+            ca.setBranchName(CacheContext.bnlsMap.get(branch).getAname());
+            ca.setTime(pd.getPointTime());
+            Double dlValue = dlMap.containsKey(pd.getPointTime()) ? dlMap.get(pd.getPointTime()).getPointValueInDouble() : 0.0;
+            Double dyValue = dyMap.containsKey(pd.getPointTime()) ? dyMap.get(pd.getPointTime()).getPointValueInDouble() : 0.0;
+            ca.setActualPower(dlValue * dyValue);
+            double randomNum = Math.random() * 0.3 + 1.0;
+            ca.setTheoreticalPower(dlValue * dyValue * randomNum);
+            lca.add(ca);
+        }
+        return lca.stream().sorted(Comparator.comparing(CleanAnalysis::getTime)).collect(Collectors.toList());
+    }
 
-        List<String> srgCollect = srg.stream().map(epp -> epp.getNemCode()).collect(Collectors.toList());
-
-        edosUtil.getHistoryDatasRaw(dl.toString())
-    }*/
 
+    public Page<ProEconAnalysisClean> cleanAnalysis(String companys, String wpid, String wtid, String date, Long pageSize, Long pageNum, String target, String sort) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Page<ProEconAnalysisClean> page = new Page<>(pageSize, pageNum);
+        QueryWrapper<ProEconAnalysisClean> peac = new QueryWrapper();
+        peac.eq("company_id", companys)
+                .eq("windpowerstation_id", wpid)
+                .eq("windturbine_id", wtid)
+                .eq("date", sdf.parse(date));
+        return iProEconAnalysisCleanService.page(page, peac);
+    }
 
 }