|
@@ -0,0 +1,489 @@
|
|
|
|
+package com.gyee.frame.service.app.index;
|
|
|
|
+
|
|
|
|
+import com.gyee.frame.common.conf.redis.CacheContext;
|
|
|
|
+import com.gyee.frame.common.spring.Constant;
|
|
|
|
+import com.gyee.frame.common.spring.InitialRunner;
|
|
|
|
+import com.gyee.frame.common.spring.SpringUtils;
|
|
|
|
+import com.gyee.frame.model.auto.*;
|
|
|
|
+import com.gyee.frame.model.custom.DataVo;
|
|
|
|
+import com.gyee.frame.model.custom.PointData;
|
|
|
|
+import com.gyee.frame.model.enumeration.Messagetype;
|
|
|
|
+import com.gyee.frame.netty.websocket.util.SocketToolService;
|
|
|
|
+import com.gyee.frame.service.ForecastwindspeedamendedService;
|
|
|
|
+import com.gyee.frame.service.WindpowerinfodayService;
|
|
|
|
+import com.gyee.frame.util.DateUtils;
|
|
|
|
+import com.gyee.frame.util.StringUtils;
|
|
|
|
+import com.gyee.frame.util.golden.EdosUtil;
|
|
|
|
+import com.gyee.frame.util.golden.IEdosUtil;
|
|
|
|
+import com.gyee.frame.util.golden.StringUtil;
|
|
|
|
+import com.gyee.frame.util.mongodb.IMongodbUtil;
|
|
|
|
+import com.gyee.frame.util.mongodb.MongodbUtilImpl;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.math.RoundingMode;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.*;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+@Service
|
|
|
|
+public class IndexDetailService extends SocketToolService{
|
|
|
|
+ @Autowired
|
|
|
|
+ private InitialRunner initialRunner;
|
|
|
|
+ private static int decimal_digit = 0;
|
|
|
|
+ IEdosUtil mongodb = new EdosUtil();
|
|
|
|
+ @Resource
|
|
|
|
+ private WindpowerinfodayService windpowerinfodayService;
|
|
|
|
+ @Resource
|
|
|
|
+ private FocastpowerService focastpowerService;
|
|
|
|
+
|
|
|
|
+ public void index_curve_columnar_windSpeed_power() throws Exception {
|
|
|
|
+
|
|
|
|
+ Map<String, List<DataVo>> pointDataMap = new HashMap();
|
|
|
|
+
|
|
|
|
+ List<Windpowerstation> wpls = new ArrayList<>();
|
|
|
|
+ for (Windpowerstation wp : InitialRunner.wpls) {
|
|
|
|
+ wpls.add(wp);
|
|
|
|
+ }
|
|
|
|
+ Windpowerstation windpowerstationAll = new Windpowerstation();
|
|
|
|
+ windpowerstationAll.setId("0");
|
|
|
|
+ wpls.add(windpowerstationAll);
|
|
|
|
+
|
|
|
|
+ String[] ycPoints = Constant.TPOINT_WP_FGLYC.split(",");
|
|
|
|
+ String[] ycPoints2 = Constant.TPOINT_WP_FGLYC2.split(",");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
|
+ Date endDate = c.getTime();
|
|
|
|
+ c.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
+ c.set(Calendar.MINUTE, 0);
|
|
|
|
+ c.set(Calendar.SECOND, 0);
|
|
|
|
+ Date beginDate = c.getTime();
|
|
|
|
+ long num = DateUtils.hoursDiff(beginDate, endDate);
|
|
|
|
+ Map<String, Map<String, WindPowerStationTestingPoint2>> stationPointmap = InitialRunner.stationPointmap;
|
|
|
|
+
|
|
|
|
+ for (Windpowerstation windpowerstation : wpls) {
|
|
|
|
+
|
|
|
|
+ List<DataVo> vos = new ArrayList<DataVo>();
|
|
|
|
+ int length = 24;
|
|
|
|
+ for (int i = 0; i < length; i++) {
|
|
|
|
+ DataVo vo = new DataVo();
|
|
|
|
+
|
|
|
|
+ vo.setValue1(0.0);// 预测功率
|
|
|
|
+ vo.setValue2(0.0);// 理论功率
|
|
|
|
+ vo.setValue3(0.0);// 实发功率
|
|
|
|
+ vo.setValue4(0.0);// 平均风速
|
|
|
|
+ vos.add(vo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Map<String, WindPowerStationTestingPoint2> map = stationPointmap.get(windpowerstation.getId());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ WindPowerStationTestingPoint2 sjgl = map.get(Constant.TPOINT_WP_SJGL);
|
|
|
|
+ WindPowerStationTestingPoint2 llgl = map.get(Constant.TPOINT_WP_ZLLGL);
|
|
|
|
+ WindPowerStationTestingPoint2 pjfs = map.get(Constant.TPOINT_WP_SSFS);
|
|
|
|
+
|
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
|
+ //理论功率
|
|
|
|
+ WindPowerStationTestingPoint2 ycgl1 = stationPointmap.get(map).get(ycPoints[0]);
|
|
|
|
+ Date tempdate = null;
|
|
|
|
+ if (num > 0) {
|
|
|
|
+ List<PointData> datas = mongodb.getHistoryDatasSnap(ycgl1, beginDate.getTime() / 1000, endDate.getTime() / 1000, num, 3600L);
|
|
|
|
+
|
|
|
|
+ for (int j = 0; j < datas.size(); j++) {
|
|
|
|
+
|
|
|
|
+ vos.get(j).setTime(datas.get(j).getPointTime() * 1000);
|
|
|
|
+ vos.get(j).setValue1(StringUtils.round(datas.get(j).getPointValueInDouble(), 2));
|
|
|
|
+ if (j == datas.size() - 1) {
|
|
|
|
+ tempdate = new Date(datas.get(j).getPointTime() * 1000);
|
|
|
|
+ cal.setTime(tempdate);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ int subresult = 0;
|
|
|
|
+ int total = 0;
|
|
|
|
+ if (length > datas.size()) {
|
|
|
|
+ subresult = length - datas.size();
|
|
|
|
+ if (subresult >= 8) {
|
|
|
|
+ subresult = 8;
|
|
|
|
+ }
|
|
|
|
+ for (int i = 0; i < subresult; i++) {
|
|
|
|
+ cal.add(Calendar.MINUTE, 30);
|
|
|
|
+ vos.get(datas.size() + i).setTime(cal.getTime().getTime());
|
|
|
|
+ WindPowerStationTestingPoint2 ycgl = map.get(ycPoints2[i]);
|
|
|
|
+ vos.get(datas.size() + i).setValue1(StringUtils.round(mongodb.getRealData(ycgl).getPointValueInDouble(), 2));
|
|
|
|
+ }
|
|
|
|
+ total = datas.size() + subresult;
|
|
|
|
+ subresult = length - (total);
|
|
|
|
+
|
|
|
|
+ if (subresult > 0)
|
|
|
|
+ for (int i = 0; i < subresult; i++) {
|
|
|
|
+ cal.add(Calendar.MINUTE, 30);
|
|
|
|
+ vos.get(total + i).setTime(cal.getTime().getTime());
|
|
|
|
+ vos.get(total + i).setValue1(null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ WindPowerStationTestingPoint2 gdsjgl = InitialRunner.stationPointmap.get("-2").get(Constant.TPOINT_WP_SJGL);
|
|
|
|
+ List<PointData> gdsjglls = mongodb.getHistoryDatasSnap(gdsjgl, beginDate.getTime() / 1000, endDate.getTime() / 1000, (long) length, 3600L);
|
|
|
|
+
|
|
|
|
+ //实际功率
|
|
|
|
+ try {
|
|
|
|
+ if (null != llgl) {
|
|
|
|
+ List<PointData> llglls = mongodb.getHistoryDatasSnap(llgl, beginDate.getTime() / 1000, endDate.getTime() / 1000, (long) length, 3600L);
|
|
|
|
+
|
|
|
|
+ int count = 0;
|
|
|
|
+ double temp1 = 0;
|
|
|
|
+ double temp2 = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+
|
|
|
|
+ if (i < llglls.size() && StringUtils.isNotNull(llglls.get(i).getPointTime())) {
|
|
|
|
+
|
|
|
|
+ if (vos.get(i).getTime() <= new Date().getTime()) {
|
|
|
|
+ temp1 = llglls.get(i).getPointValueInDouble();
|
|
|
|
+ temp2 = gdsjglls.get(i).getPointValueInDouble();
|
|
|
|
+ temp1 = new BigDecimal(temp1).divide(new BigDecimal(100000), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
|
|
|
|
+ // temp2 = new BigDecimal(temp2).divide(
|
|
|
|
+ // new BigDecimal(100000), 2,
|
|
|
|
+ // RoundingMode.HALF_EVEN).multiply(
|
|
|
|
+ // new BigDecimal(100)).doubleValue();
|
|
|
|
+
|
|
|
|
+ if (Math.abs(temp1) < 10000) {
|
|
|
|
+
|
|
|
|
+ if (windpowerstation.getId().equals("0")) {
|
|
|
|
+ vos.get(i).setValue2(StringUtils.round(temp1 + temp2, 2));// 理论功率
|
|
|
|
+ } else {
|
|
|
|
+ vos.get(i).setValue2(StringUtils.round(temp1, 2));// 理论功率
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ count++;
|
|
|
|
+ } else {
|
|
|
|
+ vos.get(i).setValue2(0d);// 理论功率
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // for(int i=0;i<vos.size();i++){
|
|
|
|
+ // vos.get(i).setValue8((double)count);
|
|
|
|
+ // }
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (null != sjgl) {
|
|
|
|
+ List<PointData> sjglls = mongodb.getHistoryDatasSnap(sjgl, beginDate.getTime() / 1000, endDate.getTime() / 1000, (long) length, 3600L);
|
|
|
|
+ int count = 0;
|
|
|
|
+ double temp = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+
|
|
|
|
+ if (i < sjglls.size() && StringUtils.isNotNull(sjglls.get(i).getPointTime())) {
|
|
|
|
+
|
|
|
|
+ if (vos.get(i).getTime() <= new Date().getTime()) {
|
|
|
|
+ temp = sjglls.get(i).getPointValueInDouble();
|
|
|
|
+ if (Math.abs(temp) < 10000) {
|
|
|
|
+ vos.get(i).setValue3(StringUtils.round(temp, 2));// 实际功率
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ count++;
|
|
|
|
+ } else {
|
|
|
|
+ vos.get(i).setValue3(0d);// 实际功率
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+ vos.get(i).setValue3((double) count);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ if (null != pjfs) {
|
|
|
|
+ List<PointData> pjfsls = mongodb.getHistoryDatasSnap(pjfs, beginDate.getTime() / 1000, endDate.getTime() / 1000, (long) length, 3600L);
|
|
|
|
+
|
|
|
|
+ double temp = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+
|
|
|
|
+ if (i < pjfsls.size() && StringUtils.isNotNull(pjfsls.get(i).getPointTime())) {
|
|
|
|
+
|
|
|
|
+ if (vos.get(i).getTime() <= new Date().getTime()) {
|
|
|
|
+ temp = pjfsls.get(i).getPointValueInDouble();
|
|
|
|
+
|
|
|
|
+ if (Math.abs(temp) < 10000) {
|
|
|
|
+ vos.get(i).setValue4(StringUtils.round(temp, 2));// 平均风速
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ vos.get(i).setValue4(0d);// 平均风速
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ pointDataMap.put(windpowerstation.getId(),vos);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.pushToWeb("pageNumber_6", "functionNumber_6", pointDataMap, Messagetype.MESSAGE);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void index_curve_columnar_five_loss() throws Exception {
|
|
|
|
+
|
|
|
|
+ Map<String, List<DataVo>> pointDataMap = new HashMap();
|
|
|
|
+
|
|
|
|
+ List<Windpowerstation> wpls = new ArrayList<>();
|
|
|
|
+ for (Windpowerstation wp : InitialRunner.wpls) {
|
|
|
|
+ wpls.add(wp);
|
|
|
|
+ }
|
|
|
|
+ Windpowerstation windpowerstationAll = new Windpowerstation();
|
|
|
|
+ windpowerstationAll.setId("0");
|
|
|
|
+ wpls.add(windpowerstationAll);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
|
+ Date endDate = c.getTime();
|
|
|
|
+ c.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
|
+ c.set(Calendar.MINUTE, 0);
|
|
|
|
+ c.set(Calendar.SECOND, 0);
|
|
|
|
+ Date beginDate = c.getTime();
|
|
|
|
+
|
|
|
|
+ Map<String, Map<String, WindPowerStationTestingPoint2>> stationPointmap = InitialRunner.stationPointmap;
|
|
|
|
+
|
|
|
|
+ for (Windpowerstation windpowerstation : wpls) {
|
|
|
|
+
|
|
|
|
+ List<DataVo> vos = new ArrayList<DataVo>();
|
|
|
|
+ long length = 7;
|
|
|
|
+ for (int i = 0; i < length; i++) {
|
|
|
|
+ DataVo vo = new DataVo();
|
|
|
|
+
|
|
|
|
+ vo.setValue1(0.0);// 发电量
|
|
|
|
+ vo.setValue2(0.0);// 故障损失
|
|
|
|
+ vo.setValue3(0.0);// 检修损失
|
|
|
|
+ vo.setValue4(0.0);// 限电损失
|
|
|
|
+ vo.setValue5(0.0);// 性能损失
|
|
|
|
+ vo.setValue6(0.0);// 受累损失
|
|
|
|
+ vo.setValue7(0.0);// 应发电量
|
|
|
|
+ vos.add(vo);
|
|
|
|
+ }
|
|
|
|
+ Map<String, WindPowerStationTestingPoint2> map = stationPointmap.get(windpowerstation.getId());
|
|
|
|
+
|
|
|
|
+// public static final String RGZZSDL = "RGZZSDL";// 故障
|
|
|
|
+// public static final String RSZZSDL = "RSZZSDL";// 故障
|
|
|
|
+// public static final String RJXZSDL = "RJXZSDL";// 维护
|
|
|
|
+// public static final String RLZZSDL = "RLZZSDL";// 维护
|
|
|
|
+// public static final String RQFZSDL = "RQFZSDL";// 性能
|
|
|
|
+// public static final String RXDZSDL = "RXDZSDL";// 限电
|
|
|
|
+// public static final String RWZZSDL = "RWZZSDL";// 受累
|
|
|
|
+// public static final String RTZZSDL = "RTZZSDL";// 受累
|
|
|
|
+
|
|
|
|
+ WindPowerStationTestingPoint2 fdl = map.get(Constant.TPOINT_WP_RFDL);
|
|
|
|
+
|
|
|
|
+ WindPowerStationTestingPoint2 gzss = map.get(Constant.RGZZSDL);
|
|
|
|
+ WindPowerStationTestingPoint2 gzsl = map.get(Constant.RSZZSDL);
|
|
|
|
+
|
|
|
|
+ WindPowerStationTestingPoint2 jxss = map.get(Constant.RJXZSDL);
|
|
|
|
+ WindPowerStationTestingPoint2 jxsl = map.get(Constant.RLZZSDL);
|
|
|
|
+
|
|
|
|
+ WindPowerStationTestingPoint2 xnss = map.get(Constant.RQFZSDL);
|
|
|
|
+ WindPowerStationTestingPoint2 xdss = map.get(Constant.RXDZSDL);
|
|
|
|
+
|
|
|
|
+ WindPowerStationTestingPoint2 slss = map.get(Constant.RWZZSDL);
|
|
|
|
+ WindPowerStationTestingPoint2 slsl = map.get(Constant.RTZZSDL);
|
|
|
|
+
|
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
|
+ //发电量
|
|
|
|
+ List<PointData> fdlls = mongodb.getHistoryDatasSnap(fdl, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+
|
|
|
|
+ for (int j = 0; j < fdlls.size(); j++) {
|
|
|
|
+
|
|
|
|
+ vos.get(j).setTime(fdlls.get(j).getPointTime() * 1000);
|
|
|
|
+ vos.get(j).setValue1(StringUtils.round(fdlls.get(j).getPointValueInDouble(),2));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+
|
|
|
|
+ //故障损失
|
|
|
|
+ List<PointData> gzssls = mongodb.getHistoryDatasSnap(gzss, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+ //故障受累失
|
|
|
|
+ List<PointData> gzslls = mongodb.getHistoryDatasSnap(gzsl, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+
|
|
|
|
+ double temp1 = 0;
|
|
|
|
+ double temp2 = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+
|
|
|
|
+ temp1 = new BigDecimal(gzssls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ temp2 = new BigDecimal(gzslls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ vos.get(i).setValue4(StringUtils.round(temp1+temp2, 2));// 故障损失
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ //检修损失
|
|
|
|
+ List<PointData> jxssls = mongodb.getHistoryDatasSnap(jxss, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+ //检修受累
|
|
|
|
+ List<PointData> jxslls = mongodb.getHistoryDatasSnap(jxsl, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+
|
|
|
|
+ double temp1 = 0;
|
|
|
|
+ double temp2 = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+
|
|
|
|
+ temp1 = new BigDecimal(jxssls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ temp2 = new BigDecimal(jxslls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ vos.get(i).setValue3(StringUtils.round(temp1+temp2, 2));// 检修损失
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ //限电损失
|
|
|
|
+ List<PointData> xdssls = mongodb.getHistoryDatasSnap(xdss, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+
|
|
|
|
+ double temp = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+ temp = new BigDecimal(xdssls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ vos.get(i).setValue4(temp);// 限电损失
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+ try {
|
|
|
|
+ //性能损失
|
|
|
|
+ List<PointData> xnssls = mongodb.getHistoryDatasSnap(xnss, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+
|
|
|
|
+ double temp = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+ temp = new BigDecimal(xnssls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ vos.get(i).setValue5(temp);// 性能损失
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ //天气受累
|
|
|
|
+ List<PointData> slssls = mongodb.getHistoryDatasSnap(slss, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+ //电网受累
|
|
|
|
+ List<PointData> slslls = mongodb.getHistoryDatasSnap(slsl, beginDate.getTime() / 1000, endDate.getTime() / 1000, length, 3600*24L);
|
|
|
|
+
|
|
|
|
+ double temp1 = 0;
|
|
|
|
+ double temp2 = 0;
|
|
|
|
+ for (int i = 0; i < vos.size(); i++) {
|
|
|
|
+
|
|
|
|
+ temp1 = new BigDecimal(slssls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ temp2 = new BigDecimal(slslls.get(i).getPointValueInDouble()).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ vos.get(i).setValue6(StringUtils.round(temp1+temp2, 2));// 受累损失
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for(DataVo vo:vos)
|
|
|
|
+ {
|
|
|
|
+ vo.setValue7(StringUtils.round(vo.getValue1()+vo.getValue2()+vo.getValue3()+vo.getValue4()+vo.getValue5()+vo.getValue6(), 2));
|
|
|
|
+ }
|
|
|
|
+ pointDataMap.put(windpowerstation.getId(),vos);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.pushToWeb("pageNumber_6", "functionNumber_7", pointDataMap, Messagetype.MESSAGE);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public void index_windStation_card() throws Exception {
|
|
|
|
+
|
|
|
|
+ Map<String, Map<String, WindPowerStationTestingPoint2>> stationPointmap = InitialRunner.stationPointmap;
|
|
|
|
+ List<Windpowerstation> wpls = new ArrayList<>();
|
|
|
|
+ for(Windpowerstation wp:InitialRunner.wpls){
|
|
|
|
+ wpls.add(wp);
|
|
|
|
+ }
|
|
|
|
+ Windpowerstation windpowerstationAll = new Windpowerstation();
|
|
|
|
+ windpowerstationAll.setId("0");
|
|
|
|
+ wpls.add(windpowerstationAll);
|
|
|
|
+
|
|
|
|
+ Map<String,Map<String,Object>> windpowerstationpointDataMap = new HashMap();
|
|
|
|
+
|
|
|
|
+ for(Windpowerstation windpowerstation:wpls){
|
|
|
|
+
|
|
|
|
+ Map<String,Object> pointDataMap = new HashMap();
|
|
|
|
+ double rfdl = 0;
|
|
|
|
+ double ycdl = 0;
|
|
|
|
+ double ssgl = 0;
|
|
|
|
+ double ssfs = 0;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ //日发电量
|
|
|
|
+ PointData rfdl_real = mongodb.getRealData(stationPointmap.get(windpowerstation.getId()).get(Constant.TPOINT_WP_RFDL).getCode());
|
|
|
|
+ rfdl = new BigDecimal(rfdl_real.getPointValueInDouble()).setScale(decimal_digit, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ pointDataMap.put("rfdl_real",rfdl_real);
|
|
|
|
+ pointDataMap.put("rfdl",rfdl);
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ System.out.println(e.getMessage());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ //实时功率
|
|
|
|
+
|
|
|
|
+ PointData ssgl_real = mongodb.getRealData(stationPointmap.get(windpowerstation.getId()).get(Constant.TPOINT_WP_SJGL).getCode());
|
|
|
|
+ ssgl = new BigDecimal(ssgl_real.getPointValueInDouble()).setScale(decimal_digit, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ pointDataMap.put("ssgl",ssgl);
|
|
|
|
+ pointDataMap.put("ssgl_real",ssgl_real);
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ System.out.println(e.getMessage());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ try{
|
|
|
|
+ //实时风速
|
|
|
|
+ PointData ssfs_real=mongodb.getRealData(stationPointmap.get(windpowerstation.getId()).get(Constant.TPOINT_WP_SSFS).getCode());
|
|
|
|
+ ssfs = new BigDecimal(ssfs_real.getPointValueInDouble()).setScale(decimal_digit, RoundingMode.HALF_EVEN).doubleValue();
|
|
|
|
+ pointDataMap.put("ssfs",ssfs);
|
|
|
|
+ pointDataMap.put("ssfs_real",ssfs_real);
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ System.out.println(e.getMessage());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //预测发电量
|
|
|
|
+ ycdl=focastpowerService.focastpower(windpowerstation.getId());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ pointDataMap.put("ycdl",ycdl);
|
|
|
|
+
|
|
|
|
+ windpowerstationpointDataMap.put(windpowerstation.getId(),pointDataMap);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ this.pushToWeb("pageNumber_6","functionNumber_8",windpowerstationpointDataMap, Messagetype.MESSAGE);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|