|
@@ -38,10 +38,10 @@ public class SingleAnalysisService {
|
|
|
|
|
|
if (StringUtils.notEmp(wpId) && StringUtils.notEmp(beginDate) && StringUtils.notEmp(endDate)) {
|
|
|
|
|
|
- Map<String, List<Inputoroutputspeedtotal>> iomap=getInputoroutputspeedtotalMap(wpId, beginDate, endDate);
|
|
|
- Map<String, List<WindTurbineInfoDay>> wtdaymap=getWindturbineinfodayMap(wpId, beginDate, endDate);
|
|
|
- Map<String, List<WindTurbineInfoDay2>> wtday2map=getWindturbineinfoday2Map(wpId, beginDate, endDate);
|
|
|
- Map<String, List<Windturbineinfoday3>> wtday3map=getWindturbineinfoday3Map(wpId, beginDate, endDate);
|
|
|
+ Map<String, SingleAnalysisVo> iomap=getInputoroutputspeedtotalMap(wpId, beginDate, endDate);
|
|
|
+ Map<String, SingleAnalysisVo> wtdaymap=getWindturbineinfodayMap(wpId, beginDate, endDate);
|
|
|
+ Map<String, SingleAnalysisVo> wtday2map=getWindturbineinfoday2Map(wpId, beginDate, endDate);
|
|
|
+ Map<String, SingleAnalysisVo> wtday3map=getWindturbineinfoday3Map(wpId, beginDate, endDate);
|
|
|
|
|
|
|
|
|
|
|
@@ -77,21 +77,21 @@ public class SingleAnalysisService {
|
|
|
double fdl=0;
|
|
|
if(wtdaymap.containsKey(wt.getId()))
|
|
|
{
|
|
|
- List<WindTurbineInfoDay> wtdls=wtdaymap.get(wt.getId());
|
|
|
-
|
|
|
- fdl=wtdls.stream().mapToDouble(WindTurbineInfoDay::getGeneratingcapacity).sum();//风机发电量合计
|
|
|
- double yxxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getRunhours).sum();//风机运行小时合计
|
|
|
- double gzxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getFaulthours).sum();//风机故障小时合计
|
|
|
- double jxxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getMaintainhours).sum();//风机检修小时合计
|
|
|
- double tjxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getStophours).sum();//风机停机小时合计
|
|
|
- double zdxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getInterrupthours).sum();//风机中断小时合计
|
|
|
- double rlxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getDaycalendarhours).sum();//风机日历小时合计
|
|
|
-
|
|
|
- double fs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getBuyelectricity).average().getAsDouble();//风机平均风速
|
|
|
- double sbklyl=wtdls.stream().mapToDouble(WindTurbineInfoDay::getDaysbklyl).average().getAsDouble();//风机平均设备可利用率
|
|
|
- double dxklyxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getDaydxkyxs).average().getAsDouble();//风机平均等效可利用系数
|
|
|
- double lyxs=wtdls.stream().mapToDouble(WindTurbineInfoDay::getDaylyxs).average().getAsDouble();//风机平均利用小时
|
|
|
- double yxfss=wtdls.stream().mapToDouble(WindTurbineInfoDay::getWindhours).average().getAsDouble();//风机平均有效风时速
|
|
|
+ SingleAnalysisVo wtd=wtdaymap.get(wt.getId());
|
|
|
+
|
|
|
+ fdl=null!=wtd.getFdl()?wtd.getFdl():0.0;//风机发电量合计
|
|
|
+ double yxxs=null!=wtd.getYxxs()?wtd.getYxxs():0.0;//风机运行小时合计
|
|
|
+ double gzxs=null!=wtd.getGzxs()?wtd.getGzxs():0.0;//风机故障小时合计
|
|
|
+ double jxxs=null!=wtd.getJxxs()?wtd.getJxxs():0.0;//风机检修小时合计
|
|
|
+ double tjxs=null!=wtd.getTjxs()?wtd.getTjxs():0.0;//风机停机小时合计
|
|
|
+ double zdxs=null!=wtd.getZdxs()?wtd.getZdxs():0.0;//风机中断小时合计
|
|
|
+ double rlxs=null!=wtd.getRlxs()?wtd.getRlxs():0.0;//风机日历小时合计
|
|
|
+ double fs=null!=wtd.getFs()?wtd.getFs():0.0;//风机平均风速
|
|
|
+ double sbklyl=null!=wtd.getSbklyl()?wtd.getSbklyl():0.0;//风机平均设备可利用率
|
|
|
+ double dxklyxs=null!=wtd.getDxklyxs()?wtd.getDxklyxs():0.0;//风机平均等效可利用系数
|
|
|
+ double lyxs=null!=wtd.getLyxs()?wtd.getLyxs():0.0;//风机平均利用小时
|
|
|
+ double yxfss=null!=wtd.getYxfss()?wtd.getYxfss():0.0;//风机平均有效风时速
|
|
|
+
|
|
|
|
|
|
vo.setFdl(StringUtils.round(fdl,2));
|
|
|
vo.setYxxs(StringUtils.round(yxxs,2));
|
|
@@ -110,27 +110,22 @@ public class SingleAnalysisService {
|
|
|
|
|
|
if(wtday2map.containsKey(wt.getId()))
|
|
|
{
|
|
|
- List<WindTurbineInfoDay2> wtdls=wtday2map.get(wt.getId());
|
|
|
+ SingleAnalysisVo wtd=wtday2map.get(wt.getId());
|
|
|
|
|
|
- double glyzxxs=wtdls.stream().mapToDouble(WindTurbineInfoDay2::getMonthcoefficient).average().getAsDouble();//风机平均功率一致性系数
|
|
|
+ double glyzxxs=null!=wtd.getGlyzxxs()?wtd.getGlyzxxs():0.0;//风机平均功率一致性系数
|
|
|
vo.setGlyzxxs(StringUtils.round(glyzxxs,2));
|
|
|
}
|
|
|
|
|
|
if(wtday3map.containsKey(wt.getId()))
|
|
|
{
|
|
|
- List<Windturbineinfoday3> wtdls=wtday3map.get(wt.getId());
|
|
|
+ SingleAnalysisVo wtd=wtday3map.get(wt.getId());
|
|
|
|
|
|
- double gzss=wtdls.stream().mapToDouble(Windturbineinfoday3::getDaynhgzssdl).sum();//风机故障损失合计
|
|
|
- double jxss=wtdls.stream().mapToDouble(Windturbineinfoday3::getDaynhwhssdl).sum();//风机检修损失合计
|
|
|
- double xdss=wtdls.stream().mapToDouble(Windturbineinfoday3::getDaynhxdssdl).sum();//风机限电损失合计
|
|
|
- double xnss=wtdls.stream().mapToDouble(Windturbineinfoday3::getDaynhqfdl).sum();//风机性能损失时合计
|
|
|
- double slss=wtdls.stream().mapToDouble(Windturbineinfoday3::getDaynhcfdl).sum();//风机受累损失合计
|
|
|
+ double gzss=null!=wtd.getGzss()?wtd.getGzss():0.0;//风机故障损失合计
|
|
|
+ double jxss=null!=wtd.getJxss()?wtd.getJxss():0.0;//风机检修损失合计
|
|
|
+ double xdss=null!=wtd.getXdss()?wtd.getXdss():0.0;//风机限电损失合计
|
|
|
+ double xnss=null!=wtd.getXnss()?wtd.getXnss():0.0;//风机性能损失时合计
|
|
|
+ double slss=null!=wtd.getSlss()?wtd.getSlss():0.0;//风机受累损失合计
|
|
|
|
|
|
- gzss =new BigDecimal(gzss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- jxss =new BigDecimal(jxss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- xdss =new BigDecimal(xdss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- xnss =new BigDecimal(xnss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- slss =new BigDecimal(slss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
|
|
|
double llfdl=fdl+gzss+jxss+xdss+xnss+slss;
|
|
|
|
|
@@ -145,13 +140,14 @@ public class SingleAnalysisService {
|
|
|
|
|
|
if(iomap.containsKey(wt.getId()))
|
|
|
{
|
|
|
- List<Inputoroutputspeedtotal>iols=iomap.get(wt.getId());
|
|
|
+ SingleAnalysisVo wtd=iomap.get(wt.getId());
|
|
|
|
|
|
- double xfqr=iols.stream().mapToDouble(Inputoroutputspeedtotal::getDayinputsmall).average().getAsDouble();//风机小风切入
|
|
|
- double xfqrhgl=iols.stream().mapToDouble(Inputoroutputspeedtotal::getDayinputsmallratio).average().getAsDouble();//风机小风切入合格率
|
|
|
+ double xfqr=null!=wtd.getXfqr()?wtd.getXfqr():0.0;//风机小风切入
|
|
|
+ double xfqrhgl=null!=wtd.getXfqrhgl()?wtd.getXfqrhgl():0.0;//风机小风切入合格率
|
|
|
vo.setXfqr(StringUtils.round(xfqr,2));
|
|
|
vo.setXfqrhgl(StringUtils.round(xfqrhgl,2));
|
|
|
}
|
|
|
+ vos.add(vo);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -168,20 +164,136 @@ public class SingleAnalysisService {
|
|
|
vo.setSwdl(StringUtils.round(swdl, 2));
|
|
|
vo.setGwdl(StringUtils.round(gwdl, 2));
|
|
|
|
|
|
- double fdl = vos.stream().mapToDouble(SingleAnalysisVo::getFdl).sum();//风机发电量合计
|
|
|
- double yxxs = vos.stream().mapToDouble(SingleAnalysisVo::getYxxs).sum();//风机运行小时合计
|
|
|
- double gzxs = vos.stream().mapToDouble(SingleAnalysisVo::getGzxs).sum();//风机故障小时合计
|
|
|
- double jxxs = vos.stream().mapToDouble(SingleAnalysisVo::getJxxs).sum();//风机检修小时合计
|
|
|
- double tjxs = vos.stream().mapToDouble(SingleAnalysisVo::getTjxs).sum();//风机停机小时合计
|
|
|
- double zdxs = vos.stream().mapToDouble(SingleAnalysisVo::getZdxs).sum();//风机中断小时合计
|
|
|
- double rlxs = vos.stream().mapToDouble(SingleAnalysisVo::getRlxs).sum();//风机日历小时合计
|
|
|
+ double fdl = 0.0;//风机发电量合计
|
|
|
+ double yxxs = 0.0;//风机运行小时合计
|
|
|
+ double gzxs =0.0;//风机故障小时合计
|
|
|
+ double jxxs =0.0;//风机检修小时合计
|
|
|
+ double tjxs =0.0;//风机停机小时合计
|
|
|
+ double zdxs =0.0;//风机中断小时合计
|
|
|
+ double rlxs = 0.0;//风机日历小时合计
|
|
|
+
|
|
|
+ double fs = 0.0;//风机平均风速
|
|
|
+ double sbklyl = 0.0;//风机平均设备可利用率
|
|
|
+ double dxklyxs =0.0;//风机平均等效可利用系数
|
|
|
+ double lyxs =0.0;//风机平均利用小时
|
|
|
+ double yxfss = 0.0;//风机平均有效风时速
|
|
|
+ double glyzxxs = 0.0;//风机平均功率一致性系数
|
|
|
+
|
|
|
+ double xfqr=0.0;//风机小风切入
|
|
|
+ double xfqrhgl = 0.0;//风机小风切入合格率
|
|
|
+
|
|
|
+ int xfqrnum=0;
|
|
|
+ int xfqrhglnum=0;
|
|
|
+
|
|
|
+ int fsnum=0;
|
|
|
+ int sbklylnum=0;
|
|
|
+ int dxklyxsnum=0;
|
|
|
+ int lyxsnum=0;
|
|
|
+ int yxfssnum=0;
|
|
|
+ int glyzxxsnum=0;
|
|
|
+
|
|
|
+ for(SingleAnalysisVo wtd:vos)
|
|
|
+ {
|
|
|
+ double temp=null!=wtd.getFdl()?wtd.getFdl():0.0;//风机发电量合计
|
|
|
+ fdl=fdl+temp;
|
|
|
+ temp=null!=wtd.getYxxs()?wtd.getYxxs():0.0;//风机运行小时合计
|
|
|
+ yxxs=yxxs+temp;
|
|
|
+ temp=null!=wtd.getGzxs()?wtd.getGzxs():0.0;//风机故障小时合计
|
|
|
+ gzxs=gzxs+temp;
|
|
|
+ temp=null!=wtd.getJxxs()?wtd.getJxxs():0.0;//风机检修小时合计
|
|
|
+ jxxs=jxxs+temp;
|
|
|
+ temp=null!=wtd.getTjxs()?wtd.getTjxs():0.0;//风机停机小时合计
|
|
|
+ tjxs=tjxs+temp;
|
|
|
+ temp=null!=wtd.getZdxs()?wtd.getZdxs():0.0;//风机中断小时合计
|
|
|
+ zdxs=zdxs+temp;
|
|
|
+ temp=null!=wtd.getRlxs()?wtd.getRlxs():0.0;//风机日历小时合计
|
|
|
+ rlxs=rlxs+temp;
|
|
|
+
|
|
|
+ temp=null!=wtd.getFs()?wtd.getFs():0.0;//风机平均风速
|
|
|
+ fs=fs+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getFs()))
|
|
|
+ {
|
|
|
+ fsnum++;
|
|
|
+ }
|
|
|
+ temp=null!=wtd.getSbklyl()?wtd.getSbklyl():0.0;//风机平均设备可利用率
|
|
|
+ sbklyl=sbklyl+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getSbklyl()))
|
|
|
+ {
|
|
|
+ sbklylnum++;
|
|
|
+ }
|
|
|
+ temp=null!=wtd.getDxklyxs()?wtd.getDxklyxs():0.0;//风机平均等效可利用系数
|
|
|
+ dxklyxs=dxklyxs+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getDxklyxs()))
|
|
|
+ {
|
|
|
+ dxklyxsnum++;
|
|
|
+ }
|
|
|
+ temp=null!=wtd.getLyxs()?wtd.getLyxs():0.0;//风机平均利用小时
|
|
|
+ lyxs=lyxs+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getLyxs()))
|
|
|
+ {
|
|
|
+ lyxsnum++;
|
|
|
+ }
|
|
|
+ temp=null!=wtd.getYxfss()?wtd.getYxfss():0.0;//风机平均有效风时速
|
|
|
+ yxfss=yxfss+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getYxfss()))
|
|
|
+ {
|
|
|
+ yxfssnum++;
|
|
|
+ }
|
|
|
+ temp=null!=wtd.getGlyzxxs()?wtd.getGlyzxxs():0.0;//风机平均功率一致性系数
|
|
|
+ glyzxxs=glyzxxs+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getGlyzxxs()))
|
|
|
+ {
|
|
|
+ glyzxxsnum++;
|
|
|
+ }
|
|
|
|
|
|
- double fs = vos.stream().mapToDouble(SingleAnalysisVo::getFs).average().getAsDouble();//风机平均风速
|
|
|
- double sbklyl = vos.stream().mapToDouble(SingleAnalysisVo::getSbklyl).average().getAsDouble();//风机平均设备可利用率
|
|
|
- double dxklyxs = vos.stream().mapToDouble(SingleAnalysisVo::getDxklyxs).average().getAsDouble();//风机平均等效可利用系数
|
|
|
- double lyxs = vos.stream().mapToDouble(SingleAnalysisVo::getLyxs).average().getAsDouble();//风机平均利用小时
|
|
|
- double yxfss = vos.stream().mapToDouble(SingleAnalysisVo::getYxfss).average().getAsDouble();//风机平均有效风时速
|
|
|
- double glyzxxs = vos.stream().mapToDouble(SingleAnalysisVo::getGlyzxxs).average().getAsDouble();//风机平均功率一致性系数
|
|
|
+ temp=null!=wtd.getXfqr()?wtd.getXfqr():0.0;//风机小风切入
|
|
|
+ xfqr=xfqr+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getXfqr()))
|
|
|
+ {
|
|
|
+ xfqrnum++;
|
|
|
+ }
|
|
|
+ temp=null!=wtd.getXfqrhgl()?wtd.getXfqrhgl():0.0;//风机小风切入合格率
|
|
|
+ xfqrhgl=xfqrhgl+temp;
|
|
|
+ if(StringUtils.notEmp(wtd.getXfqrhgl()))
|
|
|
+ {
|
|
|
+ xfqrhglnum++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(fsnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(fs).divide(new BigDecimal(fsnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setFs(temp);
|
|
|
+ }
|
|
|
+ if(sbklylnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(sbklyl).divide(new BigDecimal(sbklylnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setSbklyl(temp);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(dxklyxsnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(dxklyxs).divide(new BigDecimal(dxklyxsnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setDxklyxs(temp);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(lyxsnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(lyxs).divide(new BigDecimal(lyxsnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setLyxs(temp);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(yxfssnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(yxfss).divide(new BigDecimal(yxfssnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setYxfss(temp);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(glyzxxsnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(glyzxxs).divide(new BigDecimal(glyzxxsnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setGlyzxxs(temp);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
vo.setFdl(StringUtils.round(fdl, 2));
|
|
@@ -212,10 +324,21 @@ public class SingleAnalysisService {
|
|
|
vo.setSlss(StringUtils.round(slss, 2));
|
|
|
vo.setLlfdl(StringUtils.round(llfdl, 2));
|
|
|
|
|
|
- double xfqr = vos.stream().mapToDouble(SingleAnalysisVo::getXfqr).average().getAsDouble();//风机小风切入
|
|
|
- double xfqrhgl = vos.stream().mapToDouble(SingleAnalysisVo::getXfqrhgl).average().getAsDouble();//风机小风切入合格率
|
|
|
- vo.setXfqr(xfqr);
|
|
|
- vo.setXfqrhgl(xfqrhgl);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(xfqrnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(xfqr).divide(new BigDecimal(xfqrnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setXfqr(temp);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(xfqrhglnum!=0)
|
|
|
+ {
|
|
|
+ double temp=new BigDecimal(xfqrhgl).divide(new BigDecimal(xfqrhglnum), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ vo.setXfqrhgl(temp);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
vos.add(vo);
|
|
|
}
|
|
@@ -225,17 +348,28 @@ public class SingleAnalysisService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public List<SingleAnalysisVo> SingleAnalysisList(String wpId, Date beginDate, Date endDate) {
|
|
|
+
|
|
|
+ List<SingleAnalysisVo> vos =new ArrayList<>();
|
|
|
+
|
|
|
+ if (StringUtils.notEmp(wpId) && StringUtils.notEmp(beginDate) && StringUtils.notEmp(endDate)) {
|
|
|
+
|
|
|
+ vos=inputoroutputspeedtotalService.getInputoroutputspeedtotalMapper(wpId, beginDate, endDate);
|
|
|
+ }
|
|
|
+ return vos;
|
|
|
+ }
|
|
|
+
|
|
|
public SingleAnalysisVo SingleAnalysisListByWtId(String wtId,Date beginDate,Date endDate) {
|
|
|
|
|
|
SingleAnalysisVo vo=new SingleAnalysisVo();
|
|
|
|
|
|
if (StringUtils.notEmp(wtId) && StringUtils.notEmp(beginDate) && StringUtils.notEmp(endDate)) {
|
|
|
|
|
|
- List<Inputoroutputspeedtotal> iols=inputoroutputspeedtotalService.getInputoroutputspeedtotal(wtId, beginDate,endDate);
|
|
|
- List<WindTurbineInfoDay> wtdayls=windturbineinfodayService.getWindturbineinfodayList(wtId, beginDate,endDate);
|
|
|
- List<WindTurbineInfoDay2> wtday2ls=WindTurbineInfoDay2Service.getWindturbineinfoday2List(wtId, beginDate,endDate);
|
|
|
- List<Windturbineinfoday3> wtday3ls=windturbineinfoday3Service.getWindturbineinfoday3List(wtId, beginDate,endDate);
|
|
|
- List<Windturbinethewindinfo> wtdls = windturbinethewindinfoService.getWindturbinethewindinfo(wtId, beginDate,endDate);
|
|
|
+ List<SingleAnalysisVo> iols=inputoroutputspeedtotalService.getInputoroutputspeedtotalMapperByWtId(wtId, beginDate,endDate);
|
|
|
+ List<SingleAnalysisVo> wtdayls=windturbineinfodayService.getWindTurbineInfoDayMapper(wtId, beginDate,endDate);
|
|
|
+ List<SingleAnalysisVo> wtday2ls=WindTurbineInfoDay2Service.getWindTurbineInfoDay2Mapper(wtId, beginDate,endDate);
|
|
|
+ List<SingleAnalysisVo> wtday3ls=windturbineinfoday3Service.getWindTurbineInfoDay3Mapper(wtId, beginDate,endDate);
|
|
|
+ List<SingleAnalysisVo> wtdls = windturbinethewindinfoService.getWindturbinethewindinfoMapperByWtId(wtId, beginDate,endDate);
|
|
|
|
|
|
Windturbine wt= InitialRunner.wtmap.get(wtId);
|
|
|
Windpowerstation wp= InitialRunner.wpmap.get(wt.getWindpowerstationid());
|
|
@@ -264,19 +398,21 @@ public class SingleAnalysisService {
|
|
|
if(StringUtils.notEmp(wtdayls) && !wtdayls.isEmpty())
|
|
|
{
|
|
|
|
|
|
- fdl=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getGeneratingcapacity).sum();//风机发电量合计
|
|
|
- double yxxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getRunhours).sum();//风机运行小时合计
|
|
|
- double gzxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getFaulthours).sum();//风机故障小时合计
|
|
|
- double jxxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getMaintainhours).sum();//风机检修小时合计
|
|
|
- double tjxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getStophours).sum();//风机停机小时合计
|
|
|
- double zdxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getInterrupthours).sum();//风机中断小时合计
|
|
|
- double rlxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getDaycalendarhours).sum();//风机日历小时合计
|
|
|
+ SingleAnalysisVo wtd=wtdayls.get(0);
|
|
|
+
|
|
|
+ fdl=null!=wtd.getFdl()?wtd.getFdl():0.0;//风机发电量合计
|
|
|
+ double yxxs=null!=wtd.getYxxs()?wtd.getYxxs():0.0;//风机运行小时合计
|
|
|
+ double gzxs=null!=wtd.getGzxs()?wtd.getGzxs():0.0;//风机故障小时合计
|
|
|
+ double jxxs=null!=wtd.getJxxs()?wtd.getJxxs():0.0;//风机检修小时合计
|
|
|
+ double tjxs=null!=wtd.getTjxs()?wtd.getTjxs():0.0;//风机停机小时合计
|
|
|
+ double zdxs=null!=wtd.getZdxs()?wtd.getZdxs():0.0;//风机中断小时合计
|
|
|
+ double rlxs=null!=wtd.getRlxs()?wtd.getRlxs():0.0;//风机日历小时合计
|
|
|
+ double fs=null!=wtd.getFs()?wtd.getFs():0.0;//风机平均风速
|
|
|
+ double sbklyl=null!=wtd.getSbklyl()?wtd.getSbklyl():0.0;//风机平均设备可利用率
|
|
|
+ double dxklyxs=null!=wtd.getDxklyxs()?wtd.getDxklyxs():0.0;//风机平均等效可利用系数
|
|
|
+ double lyxs=null!=wtd.getLyxs()?wtd.getLyxs():0.0;//风机平均利用小时
|
|
|
+ double yxfss=null!=wtd.getYxfss()?wtd.getYxfss():0.0;//风机平均有效风时速
|
|
|
|
|
|
- double fs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getBuyelectricity).average().getAsDouble();//风机平均风速
|
|
|
- double sbklyl=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getDaysbklyl).average().getAsDouble();//风机平均设备可利用率
|
|
|
- double dxklyxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getDaydxkyxs).average().getAsDouble();//风机平均等效可利用系数
|
|
|
- double lyxs=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getDaylyxs).average().getAsDouble();//风机平均利用小时
|
|
|
- double yxfss=wtdayls.stream().mapToDouble(WindTurbineInfoDay::getWindhours).average().getAsDouble();//风机平均有效风时速
|
|
|
|
|
|
vo.setFdl(StringUtils.round(fdl,2));
|
|
|
vo.setYxxs(StringUtils.round(yxxs,2));
|
|
@@ -293,27 +429,25 @@ public class SingleAnalysisService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
if(StringUtils.notEmp(wtday2ls) && !wtday2ls.isEmpty())
|
|
|
{
|
|
|
-
|
|
|
- double glyzxxs=wtday2ls.stream().mapToDouble(WindTurbineInfoDay2::getMonthcoefficient).average().getAsDouble();//风机平均功率一致性系数
|
|
|
+ SingleAnalysisVo wtd=wtday2ls.get(0);
|
|
|
+ double glyzxxs=null!=wtd.getGlyzxxs()?wtd.getGlyzxxs():0.0;//风机平均功率一致性系数
|
|
|
vo.setGlyzxxs(StringUtils.round(glyzxxs,2));
|
|
|
}
|
|
|
|
|
|
if(StringUtils.notEmp(wtday3ls) && !wtday3ls.isEmpty())
|
|
|
{
|
|
|
-
|
|
|
- double gzss=wtday3ls.stream().mapToDouble(Windturbineinfoday3::getDaynhgzssdl).sum();//风机故障损失合计
|
|
|
- double jxss=wtday3ls.stream().mapToDouble(Windturbineinfoday3::getDaynhwhssdl).sum();//风机检修损失合计
|
|
|
- double xdss=wtday3ls.stream().mapToDouble(Windturbineinfoday3::getDaynhxdssdl).sum();//风机限电损失合计
|
|
|
- double xnss=wtday3ls.stream().mapToDouble(Windturbineinfoday3::getDaynhqfdl).sum();//风机性能损失时合计
|
|
|
- double slss=wtday3ls.stream().mapToDouble(Windturbineinfoday3::getDaynhcfdl).sum();//风机受累损失合计
|
|
|
-
|
|
|
- gzss =new BigDecimal(gzss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- jxss =new BigDecimal(jxss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- xdss =new BigDecimal(xdss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- xnss =new BigDecimal(xnss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
- slss =new BigDecimal(slss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP).doubleValue();
|
|
|
+ SingleAnalysisVo wtd=wtday3ls.get(0);
|
|
|
+ double gzss=null!=wtd.getGzss()?wtd.getGzss():0.0;//风机故障损失合计
|
|
|
+ double jxss=null!=wtd.getJxss()?wtd.getJxss():0.0;//风机检修损失合计
|
|
|
+ double xdss=null!=wtd.getXdss()?wtd.getXdss():0.0;//风机限电损失合计
|
|
|
+ double xnss=null!=wtd.getXnss()?wtd.getXnss():0.0;//风机性能损失时合计
|
|
|
+ double slss=null!=wtd.getSlss()?wtd.getSlss():0.0;//风机受累损失合计
|
|
|
|
|
|
double llfdl=fdl+gzss+jxss+xdss+xnss+slss;
|
|
|
|
|
@@ -328,16 +462,17 @@ public class SingleAnalysisService {
|
|
|
|
|
|
if(StringUtils.notEmp(iols) && !iols.isEmpty())
|
|
|
{
|
|
|
-
|
|
|
- double xfqr=iols.stream().mapToDouble(Inputoroutputspeedtotal::getDayinputsmall).average().getAsDouble();//风机小风切入
|
|
|
- double xfqrhgl=iols.stream().mapToDouble(Inputoroutputspeedtotal::getDayinputsmallratio).average().getAsDouble();//风机小风切入合格率
|
|
|
+ SingleAnalysisVo wtd=iols.get(0);
|
|
|
+ double xfqr=null!=wtd.getXfqr()?wtd.getXfqr():0.0;//风机小风切入
|
|
|
+ double xfqrhgl=null!=wtd.getXfqrhgl()?wtd.getXfqrhgl():0.0;//风机小风切入合格率
|
|
|
vo.setXfqr(StringUtils.round(xfqr,2));
|
|
|
vo.setXfqrhgl(StringUtils.round(xfqrhgl,2));
|
|
|
}
|
|
|
|
|
|
if(StringUtils.notEmp(wtdls) && !wtdls.isEmpty())
|
|
|
{
|
|
|
- double jfpl=wtdls.stream().mapToDouble(Windturbinethewindinfo::getCb).average().getAsDouble();//风机小风切入
|
|
|
+ SingleAnalysisVo wtd=wtdayls.get(0);
|
|
|
+ double jfpl=null!=wtd.getJfpl()?wtd.getJfpl():0.0;//静风频率
|
|
|
vo.setJfpl(StringUtils.round(jfpl,2));
|
|
|
}
|
|
|
}
|
|
@@ -415,93 +550,66 @@ public class SingleAnalysisService {
|
|
|
return vo;
|
|
|
}
|
|
|
|
|
|
- private Map<String, List<Windturbineinfoday3>> getWindturbineinfoday3Map(String wpId, Date beginDate, Date endDate) {
|
|
|
- Map<String, List<Windturbineinfoday3>> wtdaymap=new HashMap<>();
|
|
|
- List<Windturbineinfoday3> wtdayls=windturbineinfoday3Service.getWindturbineinfoday3List(wpId, beginDate,endDate);
|
|
|
+ private Map<String, SingleAnalysisVo> getWindturbineinfoday3Map(String wpId, Date beginDate, Date endDate) {
|
|
|
+ Map<String, SingleAnalysisVo> wtdaymap=new HashMap<>();
|
|
|
+ List<SingleAnalysisVo> wtdayls=windturbineinfoday3Service.getWindTurbineInfoDay3Mapper(wpId, beginDate,endDate);
|
|
|
|
|
|
if(!wtdayls.isEmpty())
|
|
|
{
|
|
|
- for (Windturbineinfoday3 wtday :wtdayls)
|
|
|
+ if(!wtdayls.isEmpty())
|
|
|
{
|
|
|
- if(wtdaymap.containsKey(wtday.getWindturbineid()))
|
|
|
+ for (SingleAnalysisVo io :wtdayls)
|
|
|
{
|
|
|
- List<Windturbineinfoday3> ls=wtdaymap.get(wtday.getWindturbineid());
|
|
|
- ls.add(wtday);
|
|
|
- }else
|
|
|
- {
|
|
|
- List<Windturbineinfoday3> ls=wtdaymap.get(wtday.getWindturbineid());
|
|
|
- ls.add(wtday);
|
|
|
- wtdaymap.put(wtday.getWindturbineid(),ls);
|
|
|
+ wtdaymap.put(io.getWindturbineid(),io);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return wtdaymap;
|
|
|
}
|
|
|
|
|
|
- private Map<String, List<WindTurbineInfoDay2>> getWindturbineinfoday2Map(String wpId, Date beginDate, Date endDate) {
|
|
|
- Map<String, List<WindTurbineInfoDay2>> wtdaymap=new HashMap<>();
|
|
|
- List<WindTurbineInfoDay2> wtdayls=WindTurbineInfoDay2Service.getWindturbineinfoday2List(wpId, beginDate,endDate);
|
|
|
+ private Map<String, SingleAnalysisVo> getWindturbineinfoday2Map(String wpId, Date beginDate, Date endDate) {
|
|
|
+ Map<String, SingleAnalysisVo> wtdaymap=new HashMap<>();
|
|
|
+ List<SingleAnalysisVo> wtdayls=WindTurbineInfoDay2Service.getWindTurbineInfoDay2Mapper(wpId, beginDate,endDate);
|
|
|
|
|
|
if(!wtdayls.isEmpty())
|
|
|
{
|
|
|
- for (WindTurbineInfoDay2 wtday :wtdayls)
|
|
|
+ if(!wtdayls.isEmpty())
|
|
|
{
|
|
|
- if(wtdaymap.containsKey(wtday.getWindturbineid()))
|
|
|
- {
|
|
|
- List<WindTurbineInfoDay2> ls=wtdaymap.get(wtday.getWindturbineid());
|
|
|
- ls.add(wtday);
|
|
|
- }else
|
|
|
+ for (SingleAnalysisVo io :wtdayls)
|
|
|
{
|
|
|
- List<WindTurbineInfoDay2> ls=wtdaymap.get(wtday.getWindturbineid());
|
|
|
- ls.add(wtday);
|
|
|
- wtdaymap.put(wtday.getWindturbineid(),ls);
|
|
|
+ wtdaymap.put(io.getWindturbineid(),io);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return wtdaymap;
|
|
|
}
|
|
|
|
|
|
- private Map<String, List<WindTurbineInfoDay>> getWindturbineinfodayMap(String wpId, Date beginDate, Date endDate) {
|
|
|
- Map<String, List<WindTurbineInfoDay>> wtdaymap=new HashMap<>();
|
|
|
- List<WindTurbineInfoDay> wtdayls=windturbineinfodayService.getWindturbineinfodayList(wpId, beginDate,endDate);
|
|
|
+ private Map<String, SingleAnalysisVo> getWindturbineinfodayMap(String wpId, Date beginDate, Date endDate) {
|
|
|
+ Map<String, SingleAnalysisVo> wtdaymap=new HashMap<>();
|
|
|
+ List<SingleAnalysisVo> wtdayls=windturbineinfodayService.getWindTurbineInfoDayMapper(wpId, beginDate,endDate);
|
|
|
|
|
|
if(!wtdayls.isEmpty())
|
|
|
{
|
|
|
- for (WindTurbineInfoDay wtday :wtdayls)
|
|
|
+ if(!wtdayls.isEmpty())
|
|
|
{
|
|
|
- if(wtdaymap.containsKey(wtday.getWindturbineid()))
|
|
|
+ for (SingleAnalysisVo io :wtdayls)
|
|
|
{
|
|
|
- List<WindTurbineInfoDay> ls=wtdaymap.get(wtday.getWindturbineid());
|
|
|
- ls.add(wtday);
|
|
|
- }else
|
|
|
- {
|
|
|
- List<WindTurbineInfoDay> ls=wtdaymap.get(wtday.getWindturbineid());
|
|
|
- ls.add(wtday);
|
|
|
- wtdaymap.put(wtday.getWindturbineid(),ls);
|
|
|
+ wtdaymap.put(io.getWindturbineid(),io);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return wtdaymap;
|
|
|
}
|
|
|
|
|
|
- private Map<String, List<Inputoroutputspeedtotal>> getInputoroutputspeedtotalMap(String wpId, Date beginDate, Date endDate) {
|
|
|
- Map<String, List<Inputoroutputspeedtotal>> iomap=new HashMap<>();
|
|
|
- List<Inputoroutputspeedtotal> iols=inputoroutputspeedtotalService.getInputoroutputspeedtotal(wpId, beginDate,endDate);
|
|
|
+ private Map<String, SingleAnalysisVo> getInputoroutputspeedtotalMap(String wpId, Date beginDate, Date endDate) {
|
|
|
+ Map<String, SingleAnalysisVo> iomap=new HashMap<>();
|
|
|
+ List<SingleAnalysisVo> iols=inputoroutputspeedtotalService.getInputoroutputspeedtotalMapper(wpId, beginDate,endDate);
|
|
|
|
|
|
if(!iols.isEmpty())
|
|
|
{
|
|
|
- for (Inputoroutputspeedtotal io :iols)
|
|
|
+ for (SingleAnalysisVo io :iols)
|
|
|
{
|
|
|
- if(iomap.containsKey(io.getWindturbineid()))
|
|
|
- {
|
|
|
- List<Inputoroutputspeedtotal> ls=iomap.get(io.getWindturbineid());
|
|
|
- ls.add(io);
|
|
|
- }else
|
|
|
- {
|
|
|
- List<Inputoroutputspeedtotal> ls=iomap.get(io.getWindturbineid());
|
|
|
- ls.add(io);
|
|
|
- iomap.put(io.getWindturbineid(),ls);
|
|
|
- }
|
|
|
+ iomap.put(io.getWindturbineid(),io);
|
|
|
}
|
|
|
}
|
|
|
return iomap;
|