|
|
@@ -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;
|
|
|
}
|
|
|
|
|
|
|