Sfoglia il codice sorgente

复位及时率和消缺及时率重新计算

wangb 1 mese fa
parent
commit
34ba01a2fc

+ 4 - 4
runeconomy-xk/src/main/java/com/gyee/runeconomy/controller/threerate/ThreeRateController.java

@@ -52,7 +52,8 @@ public class ThreeRateController {
             @RequestParam(value = "endDate", required = true) String endDate
     ) {
 
-        List<FwjslDTO> resultlist = threeRateService.getResetTimelyRateInfo(companyId, windpowerstationId, beginDate, endDate);
+//        List<FwjslDTO> resultlist = threeRateService.getResetTimelyRateInfo(companyId, windpowerstationId, beginDate, endDate);
+        List<FwjslDTO> resultlist = proEconBrownoutsEvent2Service.getResetTimelyRateInfo(companyId, windpowerstationId, beginDate, endDate);
         if (StringUtils.isNotNull(resultlist)) {
             return R.data(ResultMsg.ok(resultlist));
         } else {
@@ -102,9 +103,8 @@ public class ThreeRateController {
             @RequestParam(value = "beginDate", required = true) String beginDate,
             @RequestParam(value = "endDate", required = true) String endDate
     ) {
-        List<QxjslDTO> resultlist = threeRateService.getDefectsEliminatRateList(companyId, windpowerstationId, beginDate, endDate);
-//        QxjslDTO resultlist = proEconBrownoutsEvent2Service.getDefectsEliminatRateList(companyId, windpowerstationId, beginDate, endDate);
-
+//        List<QxjslDTO> resultlist = threeRateService.getDefectsEliminatRateList(companyId, windpowerstationId, beginDate, endDate);
+        List<QxjslDTO> resultlist = proEconBrownoutsEvent2Service.getDefectsEliminatRateList(companyId, windpowerstationId, beginDate, endDate);
         if (StringUtils.isNotNull(resultlist)) {
             return R.data(ResultMsg.ok(resultlist));
         } else {

+ 7 - 1
runeconomy-xk/src/main/java/com/gyee/runeconomy/service/auto/IProEconBrownoutsEvent2Service.java

@@ -1,9 +1,12 @@
 package com.gyee.runeconomy.service.auto;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.runeconomy.dto.response.FwjslDTO;
 import com.gyee.runeconomy.dto.response.QxjslDTO;
 import com.gyee.runeconomy.model.auto.ProEconBrownoutsEvent2;
 
+import java.util.List;
+
 /**
  * <p>
  * 与停机事件关联(限电停机时),数据库中无关联,程序控制 服务类
@@ -15,7 +18,10 @@ import com.gyee.runeconomy.model.auto.ProEconBrownoutsEvent2;
 public interface IProEconBrownoutsEvent2Service extends IService<ProEconBrownoutsEvent2> {
 
 
-    QxjslDTO getDefectsEliminatRateList(String companyId, String windpowerstationId, String beginDate, String endDate);
+    List<QxjslDTO> getDefectsEliminatRateList(String companyId, String windpowerstationId, String beginDate, String endDate);
+
+
+    List<FwjslDTO> getResetTimelyRateInfo(String companyId, String windpowerstationId, String beginDate, String endDate);
 
 
 }

+ 96 - 5
runeconomy-xk/src/main/java/com/gyee/runeconomy/service/auto/impl/ProEconBrownoutsEvent2ServiceImpl.java

@@ -1,7 +1,11 @@
 package com.gyee.runeconomy.service.auto.impl;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.runeconomy.dto.response.FwjslDTO;
 import com.gyee.runeconomy.dto.response.QxjslDTO;
 import com.gyee.runeconomy.init.CacheContext;
 import com.gyee.runeconomy.mapper.auto.ProEconBrownoutsEvent2Mapper;
@@ -9,6 +13,7 @@ import com.gyee.runeconomy.model.auto.ProEconBrownoutsEvent2;
 import com.gyee.runeconomy.service.auto.IProEconBrownoutsEvent2Service;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -23,12 +28,89 @@ import java.util.List;
 public class ProEconBrownoutsEvent2ServiceImpl extends ServiceImpl<ProEconBrownoutsEvent2Mapper, ProEconBrownoutsEvent2> implements IProEconBrownoutsEvent2Service {
 
     @Override
-    public QxjslDTO getDefectsEliminatRateList(String companyId, String windpowerstationId, String beginDate, String endDate) {
+    public List<FwjslDTO> getResetTimelyRateInfo(String companyId, String windpowerstationId, String beginDate, String endDate) {
+        DateTime begin = DateUtil.parse(beginDate, "yyyy-MM-dd");
+        DateTime end = DateUtil.parse(endDate, "yyyy-MM-dd");
+
+        List<FwjslDTO> fwList = new ArrayList<>();
+        FwjslDTO fw = new FwjslDTO();
+        fw.setOrdernum(1);
+        fw.setWpid(CacheContext.wpls.get(0).getName());
+
+        fw.setWfz(0.0);
+        fw.setWfzfwl(0.0);
+        fw.setSfz(0.0);
+        fw.setSfzfwl(0.0);
+        fw.setSwfz(0.0);
+        fw.setSwfzfwl(0.0);
+        fw.setEsfz(0.0);
+        fw.setEsfzfwl(0.0);
+        fw.setYfwcs(0.0);
+
         QueryWrapper<ProEconBrownoutsEvent2> qw = new QueryWrapper<>();
-        qw.lambda().eq(ProEconBrownoutsEvent2::getStopTypeId, "故障停机")
-                .between(ProEconBrownoutsEvent2::getStartTime, beginDate, endDate);
+        qw.lambda().eq(ProEconBrownoutsEvent2::getStopTypeId, "维护")
+                .between(ProEconBrownoutsEvent2::getStartTime, DateUtil.beginOfDay(begin), DateUtil.beginOfDay(end));
         List<ProEconBrownoutsEvent2> brownouts = list(qw);
 
+        if (null != brownouts && !brownouts.isEmpty()) {
+            fw.setYfwcs(brownouts.size());
+            int wfz = 0, sfz = 0, swfz = 0, esfz = 0;
+            for (ProEconBrownoutsEvent2 bro : brownouts) {
+
+                if (bro.getStopHours() <= 0.08) {
+                    wfz++;
+                    sfz++;
+                    swfz++;
+                    esfz++;
+                }else if(bro.getStopHours() <= 0.17){
+                    sfz++;
+                    swfz++;
+                    esfz++;
+                }else if(bro.getStopHours() <= 0.25){
+                    swfz++;
+                    esfz++;
+                }else if(bro.getStopHours() <= 0.33){
+                    esfz++;
+                }
+            }
+            fw.setWfz(wfz);
+            fw.setWfzfwl(NumberUtil.round(wfz/fw.getYfwcs(),2).doubleValue());
+            fw.setSfz(sfz);
+            fw.setSfzfwl(NumberUtil.round(sfz/fw.getYfwcs(),2).doubleValue());
+            fw.setSwfz(swfz);
+            fw.setSwfzfwl(NumberUtil.round(swfz/fw.getYfwcs(),2).doubleValue());
+            fw.setEsfz(esfz);
+            fw.setEsfzfwl(NumberUtil.round(esfz/fw.getYfwcs(),2).doubleValue());
+        }
+
+        FwjslDTO fw2 = new FwjslDTO();
+        fw2.setOrdernum(2);
+        fw2.setWpid("合计");
+
+        fw2.setWfz(0.0);
+        fw2.setWfzfwl(0.0);
+        fw2.setSfz(0.0);
+        fw2.setSfzfwl(0.0);
+        fw2.setSwfz(0.0);
+        fw2.setSwfzfwl(0.0);
+        fw2.setEsfz(0.0);
+        fw2.setEsfzfwl(0.0);
+        fw2.setYfwcs(0.0);
+
+        fwList.add(fw);
+        fwList.add(fw2);
+        return fwList;
+    }
+
+    @Override
+    public List<QxjslDTO> getDefectsEliminatRateList(String companyId, String windpowerstationId, String beginDate, String endDate) {
+        DateTime begin = DateUtil.parse(beginDate, "yyyy-MM-dd");
+        DateTime end = DateUtil.parse(endDate, "yyyy-MM-dd");
+        QueryWrapper<ProEconBrownoutsEvent2> qw = new QueryWrapper<>();
+        qw.lambda().eq(ProEconBrownoutsEvent2::getStopTypeId, "故障")
+                .between(ProEconBrownoutsEvent2::getStartTime, DateUtil.beginOfDay(begin), DateUtil.beginOfDay(end));
+        List<ProEconBrownoutsEvent2> brownouts = list(qw);
+        List<QxjslDTO> xqList = new ArrayList<>();
         QxjslDTO qx = new QxjslDTO();
         qx.setOrdernum(1);
         qx.setWpid(CacheContext.wpls.get(0).getName());
@@ -44,10 +126,19 @@ public class ProEconBrownoutsEvent2ServiceImpl extends ServiceImpl<ProEconBrowno
                 }
             }
             qx.setXqCount(xqcs);
-            qx.setXqjsl((xqcs / (double) brownouts.size() * 100));
+            qx.setXqjsl(NumberUtil.round((xqcs / (double) brownouts.size() * 100),2).doubleValue());
         }
 
-        return qx;
+        QxjslDTO qx2 = new QxjslDTO();
+        qx2.setOrdernum(2);
+        qx2.setWpid("合计");
+        qx2.setGzCount(qx.getGzCount());
+        qx2.setXqCount(qx.getXqCount());
+        qx2.setXqjsl(qx.getXqjsl());
+
+        xqList.add(qx);
+        xqList.add(qx2);
+        return xqList;
     }