Browse Source

TurbineInfoDay

xushili 9 months ago
parent
commit
199fbf876b

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/runner/LoadDataSourceRunner.java

@@ -95,7 +95,7 @@ public class LoadDataSourceRunner implements CommandLineRunner {
             //字符串类型转换为list月拟合曲线集合
             List<ProEconWtCurveFittingMonth> powerList = JSONObject.parseObject(o, new TypeReference<List<ProEconWtCurveFittingMonth>>() {});
             Map<Double, Double> collect = powerList.stream().collect(Collectors.toMap(ProEconWtCurveFittingMonth::getSpeed, ProEconWtCurveFittingMonth::getActualPower));
-            CalcCache.wtCurveFittingMonthMap.put(powerList.get(0).getWindturbineId(), collect);
+            CalcCache.wtMcfMap.put(powerList.get(0).getWindturbineId(), collect);
         }
         factory.setDatabase(5);
     }

+ 67 - 7
ruoyi-admin/src/test/java/com/ruoyi/JavaFunctionJobHandler.java

@@ -36,6 +36,8 @@ public class JavaFunctionJobHandler extends IJobHandler {
     private RedisTemplate redisTemplate;
     @Resource
     private IEquipmentModelService equipmentModelService;
+    @Resource
+    private ITurbineInfoDayService turbineInfoDayService;
 
     @Override
     public void execute() throws Exception {
@@ -306,9 +308,10 @@ public class JavaFunctionJobHandler extends IJobHandler {
         stationInfoDayService.saveOrUpdateBatch(infoDays);
     }
 
-    public void calcTurbine5s(){
+    public void calcTurbine5s() {
 
     }
+
     //此处加公式
     public void calcTurbineSsztAi(Date date) {
         PointInfo pi = new PointInfo();
@@ -352,7 +355,8 @@ public class JavaFunctionJobHandler extends IJobHandler {
         //redisTemplate.opsForHash().put("state_point",key,value);
 
     }
-    public void calcStationXd(boolean priorRation){
+
+    public void calcStationXd(boolean priorRation) {
         //限电状态
         PointInfo piAgc = new PointInfo();
         //AGC
@@ -415,7 +419,7 @@ public class JavaFunctionJobHandler extends IJobHandler {
     }
 
 
-    public void calcNhglZs(boolean priorRation){
+    public void calcNhglZs(boolean priorRation) {
         //拟合功率(自算)
         //实时风速
         PointInfo piFs = new PointInfo();
@@ -445,13 +449,13 @@ public class JavaFunctionJobHandler extends IJobHandler {
         List<DoubleStatData> statFs5;
         PointData avg;
         List<PointData> avgs = new ArrayList<>();
-        double value,v;
+        double value, v;
         for (Map.Entry<String, List<PointInfo>> entry : collect.entrySet()) {
-            double stV=0;
+            double stV = 0;
             for (PointInfo info : entry.getValue()) {
                 //todo
                 statFs5 = adapter.getHistoryStat(goldenUri(), info.getPointKey(), time5.getTime(), time.getTime());
-                if(CollUtil.isNotEmpty(statFs5)){
+                if (CollUtil.isNotEmpty(statFs5)) {
                     //todo
                     value = statFs5.get(0).getAvg().getValue();
                     avg = new PointData();
@@ -472,7 +476,63 @@ public class JavaFunctionJobHandler extends IJobHandler {
         }
     }
 
-    public URI goldenUri(){
+    public URI goldenUri() {
         return URI.create("http://172.16.12.103:8011/ts");
     }
+
+    public void calcTurbineRFDL(Date date) {
+        //date当天零点
+        DateTime time = DateUtil.beginOfDay(date);
+        //date昨天零点
+        DateTime time0 = DateUtil.offsetDay(time, -1);
+        //date当天零点加三分钟
+        DateTime time2 = DateUtil.offsetMinute(time, 3);
+        //date昨天零点加三分钟
+        DateTime time1 = DateUtil.offsetMinute(time0, 3);
+
+        PointInfo pi = new PointInfo();
+        pi.setUniformCode("AI121");
+        pi.setInstitutionType("turbine");
+        List<PointInfo> entity = pointService.getByEntity(pi);
+        Map<String, String> turMap = entity.stream().collect(Collectors.toMap(PointInfo::getTurbineId, PointInfo::getPointKey));
+
+        String keys = pointInfos2Keys(entity);
+
+        Map<String, PointData> swdlL2 = adapter.getHistorySection(goldenUri(), keys, time2.getTime());
+        Map<String, PointData> swdlL1 = adapter.getHistorySection(goldenUri(), keys, time1.getTime());
+
+        List<TurbineInfoDay> byDate = getTurbineinfoByDate(time0.toJdkDate());
+        Map<String, TurbineInfoDay> collect = new HashMap<>();
+        if (byDate.size() > 0) {
+            collect = byDate.stream().collect(Collectors.toMap(TurbineInfoDay::getLineId, Function.identity()));
+        }
+        TurbineInfoDay infoDay;
+        String turbineId, key;
+        List<TurbineInfoDay> infoDays = new ArrayList<>();
+        for (PointInfo info : entity) {
+            turbineId = info.getTurbineId();
+            if (byDate.isEmpty()) {
+                infoDay = new TurbineInfoDay();
+                infoDay.setStationId(info.getStationId());
+                infoDay.setProjectId(info.getProjectId());
+                infoDay.setLineId(info.getLineId());
+                infoDay.setTurbineId(turbineId);
+                infoDay.setRecordDate(time0.toJdkDate());
+            } else {
+                infoDay = collect.get(turbineId);
+            }
+            key = turMap.get(turbineId);
+            double v = (swdlL2.get(key).getValue() - swdlL2.get(key).getValue()) * info.getCoef();
+            if (v < 0 || v > 1000000) v = 0;
+            infoDay.setRfdl(v);
+            infoDays.add(infoDay);
+        }
+        turbineInfoDayService.saveOrUpdateBatch(infoDays);
+    }
+
+    public List<TurbineInfoDay> getTurbineinfoByDate(Date date) {
+        QueryWrapper<TurbineInfoDay> wrapper = new QueryWrapper<>();
+        wrapper.eq("record_date", date);
+        return turbineInfoDayService.list(wrapper);
+    }
 }

+ 106 - 0
universal-computing-platform/src/main/java/com/ruoyi/ucp/entity/TurbineInfoDay.java

@@ -0,0 +1,106 @@
+package com.ruoyi.ucp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gfhd
+ * @since 2024-05-29
+ */
+@TableName("turbine_info_day")
+public class TurbineInfoDay implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String stationId;
+
+    private String projectId;
+
+    private String lineId;
+
+    private String turbineId;
+
+    private Date recordDate;
+
+    private Double rfdl;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getStationId() {
+        return stationId;
+    }
+
+    public void setStationId(String stationId) {
+        this.stationId = stationId;
+    }
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public String getLineId() {
+        return lineId;
+    }
+
+    public void setLineId(String lineId) {
+        this.lineId = lineId;
+    }
+
+    public String getTurbineId() {
+        return turbineId;
+    }
+
+    public void setTurbineId(String turbineId) {
+        this.turbineId = turbineId;
+    }
+
+    public Date getRecordDate() {
+        return recordDate;
+    }
+
+    public void setRecordDate(Date recordDate) {
+        this.recordDate = recordDate;
+    }
+
+    public Double getRfdl() {
+        return rfdl;
+    }
+
+    public void setRfdl(Double rfdl) {
+        this.rfdl = rfdl;
+    }
+
+    @Override
+    public String toString() {
+        return "TurbineInfoDay{" +
+            "id = " + id +
+            ", stationId = " + stationId +
+            ", projectId = " + projectId +
+            ", lineId = " + lineId +
+            ", turbineId = " + turbineId +
+            ", recordDate = " + recordDate +
+            ", rfdl = " + rfdl +
+        "}";
+    }
+}

+ 3 - 3
universal-computing-platform/src/main/java/com/ruoyi/ucp/feign/AdapterApi.java

@@ -31,7 +31,7 @@ public interface AdapterApi {
                                   @RequestParam("endTs") long endTs,
                                   @RequestParam("interval") int interval);
 
-    @GetMapping("/history/stat")
+    @GetMapping("/history/stat2")
     List<DoubleStatData> getHistoryStat(URI baseUri, @RequestParam("tagName") String tagName,
                                         @RequestParam("startTs") long startTs,
                                         @RequestParam("endTs") long endTs);
@@ -45,9 +45,9 @@ public interface AdapterApi {
     List<PointData> getHistorySection2(URI baseUri, @RequestParam("tagName") String tagName,
                                              @RequestParam("ts") long ts);
 
-    @PostMapping("/latest")
+    @PostMapping("/latest2")
     Boolean writeHistory(URI baseUri, @RequestBody PointData tsData);
 
-    @PostMapping("/latest/batch")
+    @PostMapping("/latest/batch2")
     Boolean writeHistoryBatch(URI baseUri, @RequestBody List<PointData> tsData);
 }

+ 16 - 0
universal-computing-platform/src/main/java/com/ruoyi/ucp/mapper/TurbineInfoDayMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.ucp.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.ucp.entity.TurbineInfoDay;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gfhd
+ * @since 2024-05-29
+ */
+public interface TurbineInfoDayMapper extends BaseMapper<TurbineInfoDay> {
+
+}

+ 16 - 0
universal-computing-platform/src/main/java/com/ruoyi/ucp/service/ITurbineInfoDayService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.ucp.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.ucp.entity.TurbineInfoDay;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author gfhd
+ * @since 2024-05-29
+ */
+public interface ITurbineInfoDayService extends IService<TurbineInfoDay> {
+
+}

+ 20 - 0
universal-computing-platform/src/main/java/com/ruoyi/ucp/service/impl/TurbineInfoDayServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ruoyi.ucp.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.ucp.entity.TurbineInfoDay;
+import com.ruoyi.ucp.mapper.TurbineInfoDayMapper;
+import com.ruoyi.ucp.service.ITurbineInfoDayService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author gfhd
+ * @since 2024-05-29
+ */
+@Service
+public class TurbineInfoDayServiceImpl extends ServiceImpl<TurbineInfoDayMapper, TurbineInfoDay> implements ITurbineInfoDayService {
+
+}