|
@@ -70,8 +70,9 @@ public class PowerCurveFittingByTimeService {
|
|
|
|
|
|
Date begin = DateUtils.addDays(end, -6);
|
|
Date begin = DateUtils.addDays(end, -6);
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ proEconWtCurveFittingService.deleteProEconWtCurveFittingByDay(DateUtils.truncate(recordDate));
|
|
|
|
+ proEconCurveFittingMainService.deleteProEconCurveFittingMainByDay(DateUtils.truncate(recordDate));
|
|
|
|
+ proEconCurveFittingSubService.deleteProEconCurveFittingSubByDay(DateUtils.truncate(recordDate));
|
|
Map<String, CureFittingVo> windMap = new HashMap<>();
|
|
Map<String, CureFittingVo> windMap = new HashMap<>();
|
|
|
|
|
|
//初始化风机装机容量
|
|
//初始化风机装机容量
|
|
@@ -160,6 +161,7 @@ public class PowerCurveFittingByTimeService {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+ List<ProEconCurveFittingMain> mainls=new ArrayList<>();
|
|
for (String key : windMap.keySet()) {
|
|
for (String key : windMap.keySet()) {
|
|
|
|
|
|
Double modelpower = 1500.0;
|
|
Double modelpower = 1500.0;
|
|
@@ -254,22 +256,23 @@ public class PowerCurveFittingByTimeService {
|
|
//日---实际/标杆实际
|
|
//日---实际/标杆实际
|
|
cfmday.setStandardDeviationRate(pcl(windMap.get(key).getRsjglPoints(), dayStandardPoints, modelpower));
|
|
cfmday.setStandardDeviationRate(pcl(windMap.get(key).getRsjglPoints(), dayStandardPoints, modelpower));
|
|
|
|
|
|
-
|
|
|
|
- proEconCurveFittingMainService.save(cfmday);
|
|
|
|
|
|
+ mainls.add(cfmday);
|
|
|
|
+ //proEconCurveFittingMainService.save(cfmday);
|
|
//*********************************************当日曲线偏差记录**********************************************************/
|
|
//*********************************************当日曲线偏差记录**********************************************************/
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 3, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 4, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 5, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 6, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 7, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 8, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 9, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 10, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 11, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 12, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
- pLCBuild(key, recordDate, windMap, modelpower, 13, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ List<ProEconCurveFittingSub> subls=new ArrayList<>();
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 3, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 4, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 5, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 6, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 7, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 8, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 9, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 10, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 11, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 12, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, recordDate, windMap, modelpower, 13, bzglpowerPoints, dayLastMonthPoints, dayLastYearPoints, dayStandardPoints));
|
|
|
|
+
|
|
|
|
+ proEconCurveFittingSubService.saveBatch(subls);
|
|
|
|
|
|
insertPoints(recordDate, windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), key);
|
|
insertPoints(recordDate, windMap.get(key).getRsjglPoints(), windMap.get(key).getRzyglPoints(), key);
|
|
|
|
|
|
@@ -279,9 +282,10 @@ public class PowerCurveFittingByTimeService {
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ proEconCurveFittingMainService.saveBatch(mainls);
|
|
}
|
|
}
|
|
|
|
|
|
- public void cureFittingMonth(Date recordDate) throws Exception {
|
|
|
|
|
|
+ public void cureFittingMonth(Date recordDate,String type) throws Exception {
|
|
//日期变为昨天
|
|
//日期变为昨天
|
|
Date end = DateUtils.addDays(DateUtils.truncate(recordDate), -1);
|
|
Date end = DateUtils.addDays(DateUtils.truncate(recordDate), -1);
|
|
|
|
|
|
@@ -290,6 +294,10 @@ public class PowerCurveFittingByTimeService {
|
|
int day_year = c.get(Calendar.YEAR);
|
|
int day_year = c.get(Calendar.YEAR);
|
|
int day_month = c.get(Calendar.MONTH) + 1;
|
|
int day_month = c.get(Calendar.MONTH) + 1;
|
|
|
|
|
|
|
|
+
|
|
|
|
+ proEconWtCurveFittingMonthService.deleteProEconWtCurveFittingByMonth(String.valueOf(day_year),String.valueOf(day_month));
|
|
|
|
+ proEconCurveFittMonthMainService.deleteProEconCurveFittMonthMainByMonth(String.valueOf(day_year),String.valueOf(day_month));
|
|
|
|
+ proEconCurveFittMonthSubService.deleteProEconCurveFittMonthSubByMonth(String.valueOf(day_year),String.valueOf(day_month));
|
|
c.set(Calendar.DAY_OF_MONTH, 1);
|
|
c.set(Calendar.DAY_OF_MONTH, 1);
|
|
Date begin = c.getTime();
|
|
Date begin = c.getTime();
|
|
|
|
|
|
@@ -385,7 +393,7 @@ public class PowerCurveFittingByTimeService {
|
|
windMap.get(key).setYzyglPoints(vos);
|
|
windMap.get(key).setYzyglPoints(vos);
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ List<ProEconCurveFittMonthMain> mainls=new ArrayList<>();
|
|
for (String key : windMap.keySet()) {
|
|
for (String key : windMap.keySet()) {
|
|
|
|
|
|
Double modelpower = 1500.0;
|
|
Double modelpower = 1500.0;
|
|
@@ -488,27 +496,31 @@ public class PowerCurveFittingByTimeService {
|
|
//月---实际/标杆实际
|
|
//月---实际/标杆实际
|
|
cfmmonth.setStandardDeviationRate(pcl(windMap.get(key).getYsjglPoints(), monthStandardPoints, modelpower));
|
|
cfmmonth.setStandardDeviationRate(pcl(windMap.get(key).getYsjglPoints(), monthStandardPoints, modelpower));
|
|
|
|
|
|
-
|
|
|
|
- proEconCurveFittMonthMainService.save(cfmmonth);
|
|
|
|
|
|
+ mainls.add(cfmmonth);
|
|
|
|
+ // proEconCurveFittMonthMainService.save(cfmmonth);
|
|
|
|
|
|
//*********************************************当月曲线偏差记录**********************************************************/
|
|
//*********************************************当月曲线偏差记录**********************************************************/
|
|
-
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 3, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 4, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 5, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 6, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 7, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 8, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 9, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 10, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 11, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 12, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 13, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ List<ProEconCurveFittMonthSub> subls=new ArrayList<>();
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 3, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 4, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 5, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 6, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 7, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 8, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 9, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 10, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 11, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 12, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, stringmonth, windMap, modelpower, 13, bzglpowerPoints, monthLastMonthPoints, monthLastYearPoints, monthStandardPoints));
|
|
|
|
+
|
|
|
|
+ proEconCurveFittMonthSubService.saveBatch(subls);
|
|
insertPoints(stringyear, stringmonth, windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
|
|
insertPoints(stringyear, stringmonth, windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
|
|
|
|
|
|
- insertPoints2( windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
|
|
|
|
|
|
+ if(type.equals("1"))
|
|
|
|
+ {
|
|
|
|
+ insertPoints2( windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), key);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
logger.info(key);
|
|
logger.info(key);
|
|
//
|
|
//
|
|
@@ -516,7 +528,7 @@ public class PowerCurveFittingByTimeService {
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ proEconCurveFittMonthMainService.saveBatch(mainls);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -530,6 +542,9 @@ public class PowerCurveFittingByTimeService {
|
|
int day_year = c.get(Calendar.YEAR);
|
|
int day_year = c.get(Calendar.YEAR);
|
|
|
|
|
|
|
|
|
|
|
|
+ proEconWtCurveFittingYearService.deleteProEconWtCurveFittingByYear(String.valueOf(day_year));
|
|
|
|
+ proEconCurveFittYearMainService.deleteProEconCurveFittYearMainByYear(String.valueOf(day_year));
|
|
|
|
+ proEconCurveFittYearSubService.deleteProEconCurveFittYearSubByYear(String.valueOf(day_year));
|
|
c.set(Calendar.DAY_OF_MONTH, 1);
|
|
c.set(Calendar.DAY_OF_MONTH, 1);
|
|
c.set(Calendar.MONTH, 0);
|
|
c.set(Calendar.MONTH, 0);
|
|
Date begin = c.getTime();
|
|
Date begin = c.getTime();
|
|
@@ -608,21 +623,46 @@ public class PowerCurveFittingByTimeService {
|
|
windMap.get(key).setNsjglPoints(new ArrayList<>());
|
|
windMap.get(key).setNsjglPoints(new ArrayList<>());
|
|
windMap.get(key).setNzyglPoints(new ArrayList<>());
|
|
windMap.get(key).setNzyglPoints(new ArrayList<>());
|
|
|
|
|
|
- if (windMap.get(key).getPointIdGL() == null || windMap.get(key).getPointIdFS() == null || windMap.get(key).getPointIdZT() == null) {
|
|
|
|
- logger.info(key);
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
|
|
+// if (windMap.get(key).getPointIdGL() == null || windMap.get(key).getPointIdFS() == null || windMap.get(key).getPointIdZT() == null) {
|
|
|
|
+// logger.info(key);
|
|
|
|
+// continue;
|
|
|
|
+// }
|
|
|
|
|
|
|
|
|
|
//拟合年功率曲线
|
|
//拟合年功率曲线
|
|
- curveFittingBuilder(begin, end, dimension, scale, windMap.get(key).getPointIdGL(), windMap.get(key).getPointIdFS(), windMap.get(key).getPointIdZT(), windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
|
|
|
|
- List<PointVo> vos = windMap.get(key).getNsjglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
|
|
|
|
- windMap.get(key).setNsjglPoints(vos);
|
|
|
|
- vos = windMap.get(key).getNzyglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
|
|
|
|
- windMap.get(key).setNzyglPoints(vos);
|
|
|
|
- }
|
|
|
|
|
|
+ // curveFittingBuilder(begin, end, dimension, scale, windMap.get(key).getPointIdGL(), windMap.get(key).getPointIdFS(), windMap.get(key).getPointIdZT(), windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
|
|
|
|
+
|
|
|
|
+ List<ProEconWtPowerCurveFitting> wtpowerls= proEconWtPowerCurveFittingService.list().stream().filter(i->i.getWindturbineId().equals(key)).sorted(Comparator.comparing(ProEconWtPowerCurveFitting::getSpeed)).collect(Collectors.toList());
|
|
|
|
+
|
|
|
|
+ List<PointVo> zyglls=new ArrayList<>();
|
|
|
|
+ List<PointVo> sjglls=new ArrayList<>();
|
|
|
|
+ if(!wtpowerls.isEmpty())
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ for(ProEconWtPowerCurveFitting wtp:wtpowerls)
|
|
|
|
+ {
|
|
|
|
+ PointVo zyvo=new PointVo();
|
|
|
|
+ zyvo.setX(wtp.getSpeed());
|
|
|
|
+ zyvo.setY(wtp.getOptimalPower());
|
|
|
|
+ zyglls.add(zyvo);
|
|
|
|
+
|
|
|
|
+ PointVo sjvo=new PointVo();
|
|
|
|
+ sjvo.setX(wtp.getSpeed());
|
|
|
|
+ sjvo.setY(wtp.getActualPower());
|
|
|
|
+ sjglls.add(sjvo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+// List<PointVo> vos = windMap.get(key).getNsjglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
|
|
|
|
+// windMap.get(key).setNsjglPoints(vos);
|
|
|
|
+// vos = windMap.get(key).getNzyglPoints().stream().filter(it -> it.getX() >= 0 && it.getX() <= 25).sorted(Comparator.comparing(PointVo::getX)).collect(Collectors.toList());
|
|
|
|
+// windMap.get(key).setNzyglPoints(vos);
|
|
|
|
|
|
|
|
|
|
|
|
+ windMap.get(key).setNsjglPoints(sjglls);
|
|
|
|
+ windMap.get(key).setNzyglPoints(zyglls);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<ProEconCurveFittYearMain> mainls=new ArrayList<>();
|
|
for (String key : windMap.keySet()) {
|
|
for (String key : windMap.keySet()) {
|
|
|
|
|
|
Double modelpower = 1500.0;
|
|
Double modelpower = 1500.0;
|
|
@@ -722,24 +762,24 @@ public class PowerCurveFittingByTimeService {
|
|
//年---实际/标杆实际
|
|
//年---实际/标杆实际
|
|
cfmyear.setStandardDeviationRate(pcl(windMap.get(key).getNsjglPoints(), yearStandardPoints, modelpower));
|
|
cfmyear.setStandardDeviationRate(pcl(windMap.get(key).getNsjglPoints(), yearStandardPoints, modelpower));
|
|
|
|
|
|
-
|
|
|
|
- proEconCurveFittYearMainService.save(cfmyear);
|
|
|
|
|
|
+ mainls.add(cfmyear);
|
|
|
|
+ // proEconCurveFittYearMainService.save(cfmyear);
|
|
|
|
|
|
//*********************************************当年曲线偏差记录**********************************************************/
|
|
//*********************************************当年曲线偏差记录**********************************************************/
|
|
-
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 3, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 4, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 5, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 6, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 7, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 8, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 9, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 10, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 11, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 12, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
- pLCBuild(key, stringyear, windMap, modelpower, 13, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ List<ProEconCurveFittYearSub> subls=new ArrayList<>();
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 3, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 4, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 5, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 6, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 7, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 8, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 9, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 10, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 11, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 12, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+ subls.add(pLCBuild(key, stringyear, windMap, modelpower, 13, bzglpowerPoints, yearLastMonthPoints, yearLastYearPoints, yearStandardPoints));
|
|
|
|
+
|
|
|
|
+ proEconCurveFittYearSubService.saveBatch(subls);
|
|
insertPoints(stringyear, windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
|
|
insertPoints(stringyear, windMap.get(key).getNsjglPoints(), windMap.get(key).getNzyglPoints(), key);
|
|
|
|
|
|
logger.info(key);
|
|
logger.info(key);
|
|
@@ -748,10 +788,11 @@ public class PowerCurveFittingByTimeService {
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ proEconCurveFittYearMainService.saveBatch(mainls);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- public void pLCBuild(String key, Date current, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
|
|
|
|
|
|
+ public ProEconCurveFittingSub pLCBuild(String key, Date current, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
|
|
List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
|
|
List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
|
|
) {
|
|
) {
|
|
|
|
|
|
@@ -788,11 +829,13 @@ public class PowerCurveFittingByTimeService {
|
|
//日---实际/标杆实际
|
|
//日---实际/标杆实际
|
|
cfms.setStandardDeviationRate(pcl2(windMap.get(key).getRsjglPoints(), lastStandardPoints, modelpower, speed));
|
|
cfms.setStandardDeviationRate(pcl2(windMap.get(key).getRsjglPoints(), lastStandardPoints, modelpower, speed));
|
|
|
|
|
|
- proEconCurveFittingSubService.save(cfms);
|
|
|
|
|
|
+ return cfms;
|
|
|
|
+
|
|
|
|
+ //proEconCurveFittingSubService.save(cfms);
|
|
//*********************************************当日曲线偏差子表记录**********************************************************/
|
|
//*********************************************当日曲线偏差子表记录**********************************************************/
|
|
}
|
|
}
|
|
|
|
|
|
- public void pLCBuild(String key, String stringyear, String stringmonth, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
|
|
|
|
|
|
+ public ProEconCurveFittMonthSub pLCBuild(String key, String stringyear, String stringmonth, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
|
|
List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
|
|
List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
|
|
) {
|
|
) {
|
|
String speedStr = String.valueOf(speed);
|
|
String speedStr = String.valueOf(speed);
|
|
@@ -833,11 +876,13 @@ public class PowerCurveFittingByTimeService {
|
|
//月---实际/标杆实际
|
|
//月---实际/标杆实际
|
|
cfmsmonth.setStandardDeviationRate(pcl2(windMap.get(key).getYsjglPoints(), lastStandardPoints, modelpower, speed));
|
|
cfmsmonth.setStandardDeviationRate(pcl2(windMap.get(key).getYsjglPoints(), lastStandardPoints, modelpower, speed));
|
|
|
|
|
|
- proEconCurveFittMonthSubService.save(cfmsmonth);
|
|
|
|
|
|
+// proEconCurveFittMonthSubService.save(cfmsmonth);
|
|
|
|
+
|
|
|
|
+ return cfmsmonth;
|
|
//*********************************************当月曲线偏差子表记录**********************************************************/
|
|
//*********************************************当月曲线偏差子表记录**********************************************************/
|
|
}
|
|
}
|
|
|
|
|
|
- public void pLCBuild(String key, String stringyear, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
|
|
|
|
|
|
+ public ProEconCurveFittYearSub pLCBuild(String key, String stringyear, Map<String, CureFittingVo> windMap, Double modelpower, double speed,
|
|
List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
|
|
List<PointVo> bzglpowerPoints, List<PointVo> lastMonthPoints, List<PointVo> lastYearPoints, List<PointVo> lastStandardPoints
|
|
) {
|
|
) {
|
|
String speedStr = String.valueOf(speed);
|
|
String speedStr = String.valueOf(speed);
|
|
@@ -861,7 +906,7 @@ public class PowerCurveFittingByTimeService {
|
|
cfmsyear.setYear(stringyear);
|
|
cfmsyear.setYear(stringyear);
|
|
cfmsyear.setSpeed(String.valueOf(speed));
|
|
cfmsyear.setSpeed(String.valueOf(speed));
|
|
|
|
|
|
- proEconCurveFittYearSubService.save(cfmsyear);
|
|
|
|
|
|
+ // proEconCurveFittYearSubService.save(cfmsyear);
|
|
|
|
|
|
//年---实际/最优
|
|
//年---实际/最优
|
|
cfmsyear.setDeviationRate1(pcl2(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower, speed));
|
|
cfmsyear.setDeviationRate1(pcl2(windMap.get(key).getYsjglPoints(), windMap.get(key).getYzyglPoints(), modelpower, speed));
|
|
@@ -876,7 +921,8 @@ public class PowerCurveFittingByTimeService {
|
|
//年---实际/标杆实际
|
|
//年---实际/标杆实际
|
|
cfmsyear.setStandardDeviationRate(pcl2(windMap.get(key).getYsjglPoints(), lastStandardPoints, modelpower, speed));
|
|
cfmsyear.setStandardDeviationRate(pcl2(windMap.get(key).getYsjglPoints(), lastStandardPoints, modelpower, speed));
|
|
|
|
|
|
- proEconCurveFittYearSubService.save(cfmsyear);
|
|
|
|
|
|
+// proEconCurveFittYearSubService.save(cfmsyear);
|
|
|
|
+ return cfmsyear;
|
|
//*********************************************当年曲线偏差子表记录**********************************************************/
|
|
//*********************************************当年曲线偏差子表记录**********************************************************/
|
|
}
|
|
}
|
|
|
|
|
|
@@ -884,14 +930,15 @@ public class PowerCurveFittingByTimeService {
|
|
private void insertPoints(Date current, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
|
|
private void insertPoints(Date current, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
|
|
|
|
|
|
//*********************************************当日曲线偏差记录**********************************************************/
|
|
//*********************************************当日曲线偏差记录**********************************************************/
|
|
- List<Long> wtcfidls = proEconWtCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
|
|
|
|
- i.getRecordDate().compareTo(current) == 0).map(ProEconWtCurveFitting::getId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- for (int i = 0; i < wtcfidls.size(); i++) {
|
|
|
|
- proEconWtCurveFittingService.removeByIds(wtcfidls);
|
|
|
|
- }
|
|
|
|
|
|
+// List<Long> wtcfidls = proEconWtCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
|
|
|
|
+// i.getRecordDate().compareTo(current) == 0).map(ProEconWtCurveFitting::getId).collect(Collectors.toList());
|
|
|
|
+//
|
|
|
|
+//
|
|
|
|
+// for (int i = 0; i < wtcfidls.size(); i++) {
|
|
|
|
+// proEconWtCurveFittingService.removeByIds(wtcfidls);
|
|
|
|
+// }
|
|
|
|
|
|
|
|
+ List<ProEconWtCurveFitting> wtcfls=new ArrayList<>();
|
|
if (sjglls.size() == zyglls.size()) {
|
|
if (sjglls.size() == zyglls.size()) {
|
|
for (int i = 0; i < sjglls.size(); i++) {
|
|
for (int i = 0; i < sjglls.size(); i++) {
|
|
ProEconWtCurveFitting item = new ProEconWtCurveFitting();
|
|
ProEconWtCurveFitting item = new ProEconWtCurveFitting();
|
|
@@ -916,7 +963,8 @@ public class PowerCurveFittingByTimeService {
|
|
item.setOptimalPower(zyglls.get(i).getY());
|
|
item.setOptimalPower(zyglls.get(i).getY());
|
|
item.setRecordDate(DateUtils.truncate(current));
|
|
item.setRecordDate(DateUtils.truncate(current));
|
|
|
|
|
|
- proEconWtCurveFittingService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ //proEconWtCurveFittingService.save(item);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -953,26 +1001,29 @@ public class PowerCurveFittingByTimeService {
|
|
|
|
|
|
item.setActualPower(sjglls.get(i).getY());
|
|
item.setActualPower(sjglls.get(i).getY());
|
|
item.setRecordDate(current);
|
|
item.setRecordDate(current);
|
|
- proEconWtCurveFittingService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ //proEconWtCurveFittingService.save(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
//*********************************************当日曲线偏差记录**********************************************************/
|
|
//*********************************************当日曲线偏差记录**********************************************************/
|
|
}
|
|
}
|
|
|
|
+ proEconWtCurveFittingService.saveBatch(wtcfls);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
private void insertPoints(String year, String month, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
|
|
private void insertPoints(String year, String month, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
|
|
|
|
|
|
//*********************************************当月曲线偏差记录**********************************************************/
|
|
//*********************************************当月曲线偏差记录**********************************************************/
|
|
- List<Long> wtcfmmonthidls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
|
|
|
|
- i.getYear().equals(year) && i.getMonth().equals(month)).map(ProEconWtCurveFittingMonth::getId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- for (int i = 0; i < wtcfmmonthidls.size(); i++) {
|
|
|
|
- proEconWtCurveFittingMonthService.removeByIds(wtcfmmonthidls);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+// List<Long> wtcfmmonthidls = proEconWtCurveFittingMonthService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
|
|
|
|
+// i.getYear().equals(year) && i.getMonth().equals(month)).map(ProEconWtCurveFittingMonth::getId).collect(Collectors.toList());
|
|
|
|
+//
|
|
|
|
+//
|
|
|
|
+// for (int i = 0; i < wtcfmmonthidls.size(); i++) {
|
|
|
|
+// proEconWtCurveFittingMonthService.removeByIds(wtcfmmonthidls);
|
|
|
|
+// }
|
|
|
|
+ List<ProEconWtCurveFittingMonth> wtcfls=new ArrayList<>();
|
|
if (sjglls.size() == zyglls.size()) {
|
|
if (sjglls.size() == zyglls.size()) {
|
|
for (int i = 0; i < sjglls.size(); i++) {
|
|
for (int i = 0; i < sjglls.size(); i++) {
|
|
ProEconWtCurveFittingMonth item = new ProEconWtCurveFittingMonth();
|
|
ProEconWtCurveFittingMonth item = new ProEconWtCurveFittingMonth();
|
|
@@ -991,8 +1042,8 @@ public class PowerCurveFittingByTimeService {
|
|
item.setOptimalPower(zyglls.get(i).getY());
|
|
item.setOptimalPower(zyglls.get(i).getY());
|
|
item.setYear(String.valueOf(year));
|
|
item.setYear(String.valueOf(year));
|
|
item.setMonth(String.valueOf(month));
|
|
item.setMonth(String.valueOf(month));
|
|
-
|
|
|
|
- proEconWtCurveFittingMonthService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ // proEconWtCurveFittingMonthService.save(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -1026,26 +1077,26 @@ public class PowerCurveFittingByTimeService {
|
|
|
|
|
|
item.setYear(String.valueOf(year));
|
|
item.setYear(String.valueOf(year));
|
|
item.setMonth(String.valueOf(month));
|
|
item.setMonth(String.valueOf(month));
|
|
-
|
|
|
|
- proEconWtCurveFittingMonthService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ //proEconWtCurveFittingMonthService.save(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//*********************************************当月曲线偏差记录**********************************************************/
|
|
//*********************************************当月曲线偏差记录**********************************************************/
|
|
|
|
|
|
-
|
|
|
|
|
|
+ proEconWtCurveFittingMonthService.saveBatch(wtcfls);
|
|
}
|
|
}
|
|
|
|
|
|
private void insertPoints(String year, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
|
|
private void insertPoints(String year, List<PointVo> sjglls, List<PointVo> zyglls, String windturbineId) {
|
|
//*********************************************当年曲线偏差记录**********************************************************/
|
|
//*********************************************当年曲线偏差记录**********************************************************/
|
|
- List<Long> wtcfmyearidls = proEconWtCurveFittingYearService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
|
|
|
|
- i.getYear().equals(year)).map(ProEconWtCurveFittingYear::getId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
- for (int i = 0; i < wtcfmyearidls.size(); i++) {
|
|
|
|
- proEconWtCurveFittingYearService.removeByIds(wtcfmyearidls);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+// List<Long> wtcfmyearidls = proEconWtCurveFittingYearService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId) &&
|
|
|
|
+// i.getYear().equals(year)).map(ProEconWtCurveFittingYear::getId).collect(Collectors.toList());
|
|
|
|
+//
|
|
|
|
+// for (int i = 0; i < wtcfmyearidls.size(); i++) {
|
|
|
|
+// proEconWtCurveFittingYearService.removeByIds(wtcfmyearidls);
|
|
|
|
+// }
|
|
|
|
+ List<ProEconWtCurveFittingYear> wtcfls=new ArrayList<>();
|
|
if (sjglls.size() == zyglls.size()) {
|
|
if (sjglls.size() == zyglls.size()) {
|
|
for (int i = 0; i < sjglls.size(); i++) {
|
|
for (int i = 0; i < sjglls.size(); i++) {
|
|
ProEconWtCurveFittingYear item = new ProEconWtCurveFittingYear();
|
|
ProEconWtCurveFittingYear item = new ProEconWtCurveFittingYear();
|
|
@@ -1063,8 +1114,8 @@ public class PowerCurveFittingByTimeService {
|
|
item.setActualPower(sjglls.get(i).getY());
|
|
item.setActualPower(sjglls.get(i).getY());
|
|
item.setOptimalPower(zyglls.get(i).getY());
|
|
item.setOptimalPower(zyglls.get(i).getY());
|
|
item.setYear(String.valueOf(year));
|
|
item.setYear(String.valueOf(year));
|
|
-
|
|
|
|
- proEconWtCurveFittingYearService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ // proEconWtCurveFittingYearService.save(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -1097,26 +1148,31 @@ public class PowerCurveFittingByTimeService {
|
|
}
|
|
}
|
|
|
|
|
|
item.setYear(String.valueOf(year));
|
|
item.setYear(String.valueOf(year));
|
|
-
|
|
|
|
- proEconWtCurveFittingYearService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ //proEconWtCurveFittingYearService.save(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//*********************************************当年曲线偏差记录**********************************************************/
|
|
//*********************************************当年曲线偏差记录**********************************************************/
|
|
|
|
|
|
-
|
|
|
|
|
|
+ proEconWtCurveFittingYearService.saveBatch(wtcfls);
|
|
}
|
|
}
|
|
private void insertPoints2(List<PointVo> monthSjglls, List<PointVo> monthZyglls, String windturbineId) {
|
|
private void insertPoints2(List<PointVo> monthSjglls, List<PointVo> monthZyglls, String windturbineId) {
|
|
|
|
|
|
|
|
|
|
- List<Integer> wtpcfidls = proEconWtPowerCurveFittingService.list().stream().filter(i -> i.getWindturbineId().equals(windturbineId)).map(ProEconWtPowerCurveFitting::getId).collect(Collectors.toList());
|
|
|
|
-
|
|
|
|
|
|
+// List<Integer> wtpcfidls = proEconWtPowerCurveFittingService.list()
|
|
|
|
+// .stream().filter(i -> i.getWindturbineId().equals(windturbineId))
|
|
|
|
+// .map(ProEconWtPowerCurveFitting::getId).collect(Collectors.toList());
|
|
|
|
+//
|
|
|
|
+//
|
|
|
|
+// for (int i = 0; i < wtpcfidls.size(); i++) {
|
|
|
|
+// proEconWtPowerCurveFittingService.removeByIds(wtpcfidls);
|
|
|
|
+// }
|
|
|
|
|
|
- for (int i = 0; i < wtpcfidls.size(); i++) {
|
|
|
|
- proEconWtPowerCurveFittingService.removeByIds(wtpcfidls);
|
|
|
|
- }
|
|
|
|
|
|
+ proEconWtPowerCurveFittingService.deleteProEconWtPowerCurveFitting();
|
|
|
|
|
|
|
|
+ List<ProEconWtPowerCurveFitting> wtcfls=new ArrayList<>();
|
|
if (monthSjglls.size() == monthZyglls.size()) {
|
|
if (monthSjglls.size() == monthZyglls.size()) {
|
|
for (int i = 0; i < monthSjglls.size(); i++) {
|
|
for (int i = 0; i < monthSjglls.size(); i++) {
|
|
ProEconWtPowerCurveFitting item = new ProEconWtPowerCurveFitting();
|
|
ProEconWtPowerCurveFitting item = new ProEconWtPowerCurveFitting();
|
|
@@ -1141,8 +1197,8 @@ public class PowerCurveFittingByTimeService {
|
|
item.setActualPower(monthSjglls.get(i).getY());
|
|
item.setActualPower(monthSjglls.get(i).getY());
|
|
item.setOptimalPower(monthZyglls.get(i).getY());
|
|
item.setOptimalPower(monthZyglls.get(i).getY());
|
|
|
|
|
|
-
|
|
|
|
- proEconWtPowerCurveFittingService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ //proEconWtPowerCurveFittingService.save(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -1180,12 +1236,14 @@ public class PowerCurveFittingByTimeService {
|
|
item.setOptimalPower(0.0);
|
|
item.setOptimalPower(0.0);
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- proEconWtPowerCurveFittingService.save(item);
|
|
|
|
|
|
+ wtcfls.add(item);
|
|
|
|
+ //proEconWtPowerCurveFittingService.save(item);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ proEconWtPowerCurveFittingService.saveBatch(wtcfls);
|
|
}
|
|
}
|
|
|
|
|
|
private void yearBuildPoints(List<ProEconWtCurveFittingYear> data, List<PointVo> points) {
|
|
private void yearBuildPoints(List<ProEconWtCurveFittingYear> data, List<PointVo> points) {
|
|
@@ -1284,97 +1342,115 @@ public class PowerCurveFittingByTimeService {
|
|
}
|
|
}
|
|
|
|
|
|
//todo-sl 添加数据筛选
|
|
//todo-sl 添加数据筛选
|
|
- private boolean filterData(PointData gl, PointData fs, PointData zt, double maxvalue, String windturbineId) throws Exception {
|
|
|
|
-// if (StringUtils.notEmp(gl)) {
|
|
|
|
-// //判定功率是否超过最大值
|
|
|
|
-// if (gl.getPointValueInDouble() > maxvalue) {
|
|
|
|
-// return false;
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// if (StringUtils.notEmp(fs)) {
|
|
|
|
-// //判定功率是否超过最大值
|
|
|
|
-// if (fs.getPointValueInDouble() > 25) {
|
|
|
|
-// return false;
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //判定状态不为运行的进行过滤
|
|
|
|
-// if (zt.getPointValueInDouble() != 2) {
|
|
|
|
-// return false;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-// //设置时间为10分钟前,10钟前有停机事件数据进行过滤
|
|
|
|
-// Calendar c = Calendar.getInstance();
|
|
|
|
-// c.setTimeInMillis(zt.getPointTime());
|
|
|
|
-// Date end = c.getTime();
|
|
|
|
-// c.add(Calendar.MINUTE, -10);
|
|
|
|
-// Date bedin = c.getTime();
|
|
|
|
-// List<PointData> points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
|
|
|
|
-// if (!points.isEmpty()) {
|
|
|
|
-// for (PointData p : points) {
|
|
|
|
-// if (p.getPointValueInDouble() == 4) {
|
|
|
|
-//
|
|
|
|
-// return false;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //设置时间为10分钟后,运行后10分钟数据进行过滤
|
|
|
|
-// c = Calendar.getInstance();
|
|
|
|
-// c.setTimeInMillis(zt.getPointTime());
|
|
|
|
-// bedin = c.getTime();
|
|
|
|
-// c.add(Calendar.MINUTE, 10);
|
|
|
|
-// end = c.getTime();
|
|
|
|
-// points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
|
|
|
|
-// if (!points.isEmpty()) {
|
|
|
|
-// for (PointData p : points) {
|
|
|
|
-// if (p.getPointValueInDouble() != 2) {
|
|
|
|
-// return false;
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-// Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
|
|
|
|
-// Map<String, ProBasicEquipmentPoint> wtpointmap = wtpAimap.get(windturbineId);
|
|
|
|
-// //与保证功率进行对比,偏差大于25%的进行过滤
|
|
|
|
-// List<String> pointid = new ArrayList<>();
|
|
|
|
-//
|
|
|
|
-// pointid.add(wtpointmap.get(ContantXk.BZGL).getNemCode());
|
|
|
|
-// List<PointData> value = edosUtil.getHistMatrix(pointid, gl.getPointTime() / 1000);
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-// if (null != value && value.size() > 0) {
|
|
|
|
-// double bzgl = value.get(0).getPointValueInDouble();
|
|
|
|
-// double sjgl = gl.getPointValueInDouble();
|
|
|
|
-//
|
|
|
|
-// double temp = Math.abs(sjgl - bzgl);
|
|
|
|
-// if (temp > sjgl * 0.25) {
|
|
|
|
-// return false;
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //欠发状态大于2过滤掉
|
|
|
|
-// pointid = new ArrayList<>();
|
|
|
|
-//
|
|
|
|
-// pointid.add(wtpointmap.get(ContantXk.LSQFZT).getNemCode());
|
|
|
|
-// value = edosUtil.getHistMatrix(pointid, gl.getPointTime() / 1000);
|
|
|
|
-// if (null != value && value.size() > 0) {
|
|
|
|
-// double qfzt = value.get(0).getPointValueInDouble();
|
|
|
|
-//
|
|
|
|
-// return !(qfzt > 2);
|
|
|
|
-// }
|
|
|
|
|
|
+ private boolean filterData(PointData gl, PointData fs, PointData zt, double maxPower,double maxSpeed, String windturbineId) throws Exception {
|
|
|
|
+ if (StringUtils.notEmp(gl)) {
|
|
|
|
+ //判定功率是否超过最大值
|
|
|
|
+ if (gl.getPointValueInDouble() > maxPower) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (StringUtils.notEmp(fs)) {
|
|
|
|
+ //判定功率是否超过最大值
|
|
|
|
+ if (fs.getPointValueInDouble() > maxSpeed) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //判定状态不为运行的进行过滤
|
|
|
|
+ if (zt.getPointValueInDouble() != 2) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //设置时间为10分钟前,10钟前有停机事件数据进行过滤
|
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
|
+ c.setTimeInMillis(zt.getPointTime());
|
|
|
|
+ Date end = c.getTime();
|
|
|
|
+ c.add(Calendar.MINUTE, -10);
|
|
|
|
+ Date bedin = c.getTime();
|
|
|
|
+ List<PointData> points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
|
|
|
|
+ if (!points.isEmpty()) {
|
|
|
|
+ for (PointData p : points) {
|
|
|
|
+ if (p.getPointValueInDouble() == 4) {
|
|
|
|
+
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //设置时间为10分钟后,运行后10分钟数据进行过滤
|
|
|
|
+
|
|
|
|
+ points = edosUtil.getHistoryDatasSnap(zt.getEdnaId(), bedin.getTime() / 1000, end.getTime() / 1000);
|
|
|
|
+ if (!points.isEmpty()) {
|
|
|
|
+ for (PointData p : points) {
|
|
|
|
+ if (p.getPointValueInDouble() != 2) {
|
|
|
|
+ return false;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
|
|
|
|
+ Map<String, ProBasicEquipmentPoint> wtpointmap = wtpAimap.get(windturbineId);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List<PointVo> bzPointls=new ArrayList<>();
|
|
|
|
+ List<PointVo> sjPointls=new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ double modelpower=0.0;
|
|
|
|
+ if (CacheContext.wtmap.containsKey(windturbineId)) {
|
|
|
|
+ String modelid = CacheContext.wtmap.get(windturbineId).getModelId();
|
|
|
|
+ if (StringUtils.notEmp(modelid)) {
|
|
|
|
+ //获取保证功率曲线中的风速和功率
|
|
|
|
+ if (CacheContext.theoreticalPowerMap.containsKey(modelid)) {
|
|
|
|
+ Map<Double,ProBasicModelPowerRd> theoreticalMap= CacheContext.theoreticalPowerMap.get(modelid);
|
|
|
|
+
|
|
|
|
+ PointVo point = new PointVo();
|
|
|
|
+ double speed=StringUtils.round(fs.getPointValueInDouble(),2);
|
|
|
|
+ point.setX(speed);
|
|
|
|
+ point.setY(theoreticalMap.get(speed).getEnsurePower());
|
|
|
|
+ modelpower=point.getY();
|
|
|
|
+ bzPointls.add(point);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ PointVo point = new PointVo();
|
|
|
|
+ double speed=StringUtils.round(fs.getPointValueInDouble(),2);
|
|
|
|
+ double power=StringUtils.round(gl.getPointValueInDouble(),2);
|
|
|
|
+ point.setX(speed);
|
|
|
|
+ point.setY(power);
|
|
|
|
+ sjPointls.add(point);
|
|
|
|
+
|
|
|
|
+ //与保证功率进行对比,偏差大于25%的进行过滤
|
|
|
|
+ double value= pcl2( sjPointls, bzPointls, modelpower, speed);
|
|
|
|
+
|
|
|
|
+ if (value > Math.abs(0.25)) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<String> pointid = new ArrayList<>();
|
|
|
|
+ //欠发状态大于2过滤掉
|
|
|
|
+ pointid.add(wtpointmap.get(ContantXk.LSQFZT).getNemCode());
|
|
|
|
+ List<PointData> values = edosUtil.getHistMatrix(pointid, gl.getPointTime() / 1000);
|
|
|
|
+ if (null != values && values.size() > 0) {
|
|
|
|
+ double qfzt = values.get(0).getPointValueInDouble();
|
|
|
|
+
|
|
|
|
+ return !(qfzt > 2);
|
|
|
|
+ }
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
//功率曲线拟合
|
|
//功率曲线拟合
|
|
public void curveFittingBuilder(Date begin, Date end, int dimension, double scale, String pointIdGL, String pointIdFS, String pointIdZT, List<PointVo> sjglPoints, List<PointVo> zyglPoints, String windturbineId) throws Exception {
|
|
public void curveFittingBuilder(Date begin, Date end, int dimension, double scale, String pointIdGL, String pointIdFS, String pointIdZT, List<PointVo> sjglPoints, List<PointVo> zyglPoints, String windturbineId) throws Exception {
|
|
double maxPower = windturbineCapacity.get(windturbineId) * 1.3;
|
|
double maxPower = windturbineCapacity.get(windturbineId) * 1.3;
|
|
|
|
+ double maxSpeed = 25;
|
|
List<PointfVo> sjglnhpoints = new ArrayList<>();
|
|
List<PointfVo> sjglnhpoints = new ArrayList<>();
|
|
Map<Double, PointfVo> zyglnhpoints = new HashMap<>();
|
|
Map<Double, PointfVo> zyglnhpoints = new HashMap<>();
|
|
|
|
|
|
@@ -1390,7 +1466,7 @@ public class PowerCurveFittingByTimeService {
|
|
List<PointData> ztpoints = new ArrayList<>();
|
|
List<PointData> ztpoints = new ArrayList<>();
|
|
if (!glpointstemp.isEmpty() && !fspointstemp.isEmpty() && !ztpointstemp.isEmpty() && glpointstemp.size() == fspointstemp.size() && fspointstemp.size() == ztpointstemp.size()) {
|
|
if (!glpointstemp.isEmpty() && !fspointstemp.isEmpty() && !ztpointstemp.isEmpty() && glpointstemp.size() == fspointstemp.size() && fspointstemp.size() == ztpointstemp.size()) {
|
|
for (int i = 0; i < glpointstemp.size(); i++) {
|
|
for (int i = 0; i < glpointstemp.size(); i++) {
|
|
- if (filterData(glpointstemp.get(i), fspointstemp.get(i), ztpointstemp.get(i), maxPower, windturbineId)) {
|
|
|
|
|
|
+ if (filterData(glpointstemp.get(i), fspointstemp.get(i), ztpointstemp.get(i), maxPower,maxSpeed, windturbineId)) {
|
|
glpoints.add(glpointstemp.get(i));
|
|
glpoints.add(glpointstemp.get(i));
|
|
fspoints.add(fspointstemp.get(i));
|
|
fspoints.add(fspointstemp.get(i));
|
|
ztpoints.add(ztpointstemp.get(i));
|
|
ztpoints.add(ztpointstemp.get(i));
|
|
@@ -1525,11 +1601,11 @@ public class PowerCurveFittingByTimeService {
|
|
sjglnhpoints.add(new PointfVo(0.0, 0.0));
|
|
sjglnhpoints.add(new PointfVo(0.0, 0.0));
|
|
|
|
|
|
sjglnhpoints = sjglnhpoints.stream().filter(it -> it.getX() >= 3).sorted(Comparator.comparing(PointfVo::getX)).collect(Collectors.toList());
|
|
sjglnhpoints = sjglnhpoints.stream().filter(it -> it.getX() >= 3).sorted(Comparator.comparing(PointfVo::getX)).collect(Collectors.toList());
|
|
- if (sjglnhpoints.stream().min(Comparator.comparing(PointfVo::getX)).isPresent()) {
|
|
|
|
- double Xmax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getX();
|
|
|
|
- double Ymax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getY();
|
|
|
|
- System.out.println("");
|
|
|
|
- }
|
|
|
|
|
|
+// if (sjglnhpoints.stream().min(Comparator.comparing(PointfVo::getX)).isPresent()) {
|
|
|
|
+// double Xmax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getX();
|
|
|
|
+// double Ymax = sjglnhpoints.stream().max(Comparator.comparing(PointfVo::getX)).get().getY();
|
|
|
|
+// System.out.println("");
|
|
|
|
+// }
|
|
|
|
|
|
List<PointVo> temp = LineUtil.buildLine(sjglnhpoints.stream().mapToDouble(PointfVo::getX).toArray(), sjglnhpoints.stream().mapToDouble(PointfVo::getY).toArray(), sjglnhpoints.size(), dimension, scale);
|
|
List<PointVo> temp = LineUtil.buildLine(sjglnhpoints.stream().mapToDouble(PointfVo::getX).toArray(), sjglnhpoints.stream().mapToDouble(PointfVo::getY).toArray(), sjglnhpoints.size(), dimension, scale);
|
|
|
|
|