|
@@ -21,6 +21,7 @@ import com.gyee.ghost.service.auto.IProEconStatusmxService;
|
|
|
import com.gyee.ghost.service.auto.IProEconWindturbineStatus2Service;
|
|
|
import com.gyee.ghost.util.realtimesource.IEdosUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import oracle.sql.Datum;
|
|
|
import org.apache.ibatis.annotations.Update;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -53,20 +54,25 @@ public class RealtimeService {
|
|
|
// Date befroeDate = DateUtils.addSeconds(currentDate, -1);
|
|
|
Date befroeDate = DateUtils.addMinutes(currentDate,-5);
|
|
|
|
|
|
+ Date startOfDay = DateUtils.getStartOfDay(currentDate);
|
|
|
+ Date endOfDay = DateUtils.getEndOfDay(currentDate);
|
|
|
+
|
|
|
wtls.stream().forEach(wt->{
|
|
|
|
|
|
Map<String, Windturbinetestingpointai> stringWindturbinetestingpointaiMap = wtpAimap.get(wt.getId());
|
|
|
Windturbinetestingpointai windturbinetestingpointai = stringWindturbinetestingpointaiMap.get(Contant.ZTMX);
|
|
|
Windturbinetestingpointai windturbinetestingpointaifs = stringWindturbinetestingpointaiMap.get(Contant.AI022);
|
|
|
+
|
|
|
try {
|
|
|
- PointData realData = edosUtil.getRealData(windturbinetestingpointai);
|
|
|
+ PointData realData = edosUtil.getSectionData(windturbinetestingpointai,currentDate.getTime());
|
|
|
|
|
|
double aDouble = realData.getPointValueInDouble();
|
|
|
|
|
|
PointData sectionData = edosUtil.getSectionData(windturbinetestingpointai, befroeDate.getTime());
|
|
|
double tempDouble = sectionData.getPointValueInDouble();
|
|
|
double speed = edosUtil.getRealData(windturbinetestingpointaifs).getPointValueInDouble();
|
|
|
- if (aDouble != tempDouble){
|
|
|
+
|
|
|
+ if (currentDate.equals(startOfDay) || aDouble != tempDouble){
|
|
|
ProEconWindturbineStatus2 proEconWindturbineStatus2 = new ProEconWindturbineStatus2();
|
|
|
proEconWindturbineStatus2.setId(CommonUtils.getUUID());
|
|
|
proEconWindturbineStatus2.setWindpowerstationId(wt.getWindpowerstationid());
|
|
@@ -86,29 +92,34 @@ public class RealtimeService {
|
|
|
|
|
|
QueryWrapper<ProEconWindturbineStatus2> qw = new QueryWrapper<>();
|
|
|
qw.eq("windTurbine_Id",wt.getId());
|
|
|
- qw.orderByDesc("start_Time");
|
|
|
- ProEconWindturbineStatus2 proEconWindturbineStatus21 = proEconWindturbineStatus2Service.getBaseMapper().selectOne(qw);
|
|
|
- if (StringUtils.isNotNull(proEconWindturbineStatus21)){
|
|
|
- proEconWindturbineStatus21.setStopTime(DateUtils.parseLongToDate(realData.getPointTime()*1000));
|
|
|
- proEconWindturbineStatus21.setLossPower(0.0);
|
|
|
- proEconWindturbineStatus21.setSpeed(speed);
|
|
|
- proEconWindturbineStatus21.setAvgSpeed(0.0);
|
|
|
- resultList.add(proEconWindturbineStatus21);
|
|
|
+ Date beforeFive = DateUtils.addMinutes(currentDate, -5);
|
|
|
+ qw.eq("stop_Time",beforeFive);
|
|
|
+ Optional<ProEconWindturbineStatus2> first = proEconWindturbineStatus2Service.list(qw).stream().findFirst();
|
|
|
+ if (first.isPresent()){
|
|
|
+ ProEconWindturbineStatus2 proEconWindturbineStatus = first.get();
|
|
|
+ proEconWindturbineStatus.setStopTime(DateUtils.parseLongToDate(realData.getPointTime()*1000));
|
|
|
+ proEconWindturbineStatus.setStopHours(DateUtils.hoursDiff2(proEconWindturbineStatus.getStopTime(), proEconWindturbineStatus.getStartTime()));
|
|
|
+ proEconWindturbineStatus.setLossPower(0.0);
|
|
|
+ proEconWindturbineStatus.setSpeed(speed);
|
|
|
+ proEconWindturbineStatus.setAvgSpeed(0.0);
|
|
|
+ resultList.add(proEconWindturbineStatus2);
|
|
|
}
|
|
|
|
|
|
}else {
|
|
|
QueryWrapper<ProEconWindturbineStatus2> qw = new QueryWrapper<>();
|
|
|
qw.eq("windTurbine_Id",wt.getId());
|
|
|
- qw.orderByDesc("start_Time");
|
|
|
- ProEconWindturbineStatus2 proEconWindturbineStatus21 = proEconWindturbineStatus2Service.getBaseMapper().selectOne(qw);
|
|
|
- if (StringUtils.isNotNull(proEconWindturbineStatus21)){
|
|
|
- proEconWindturbineStatus21.setStopTime(DateUtils.parseLongToDate(realData.getPointTime()*1000));
|
|
|
- proEconWindturbineStatus21.setStopHours(DateUtils.hoursDiff2(proEconWindturbineStatus21.getStopTime(), proEconWindturbineStatus21.getStartTime()));
|
|
|
- proEconWindturbineStatus21.setLossPower(0.0);
|
|
|
- proEconWindturbineStatus21.setSpeed(speed);
|
|
|
- proEconWindturbineStatus21.setAvgSpeed(0.0);
|
|
|
- resultList.add(proEconWindturbineStatus21);
|
|
|
- }else{
|
|
|
+ Date beforeFive = DateUtils.addMinutes(currentDate, -5);
|
|
|
+ qw.eq("stop_Time",beforeFive);
|
|
|
+ Optional<ProEconWindturbineStatus2> first = proEconWindturbineStatus2Service.list(qw).stream().findFirst();
|
|
|
+ if (first.isPresent()){
|
|
|
+ ProEconWindturbineStatus2 proEconWindturbineStatus2 = first.get();
|
|
|
+ proEconWindturbineStatus2.setStopTime(DateUtils.parseLongToDate(realData.getPointTime()*1000));
|
|
|
+ proEconWindturbineStatus2.setStopHours(DateUtils.hoursDiff2(proEconWindturbineStatus2.getStopTime(), proEconWindturbineStatus2.getStartTime()));
|
|
|
+ proEconWindturbineStatus2.setLossPower(0.0);
|
|
|
+ proEconWindturbineStatus2.setSpeed(speed);
|
|
|
+ proEconWindturbineStatus2.setAvgSpeed(0.0);
|
|
|
+ resultList.add(proEconWindturbineStatus2);
|
|
|
+ }else {
|
|
|
ProEconWindturbineStatus2 proEconWindturbineStatus2 = new ProEconWindturbineStatus2();
|
|
|
proEconWindturbineStatus2.setId(CommonUtils.getUUID());
|
|
|
proEconWindturbineStatus2.setWindpowerstationId(wt.getWindpowerstationid());
|
|
@@ -125,12 +136,9 @@ public class RealtimeService {
|
|
|
String statusName = statusmxMap.get(new Double(aDouble).intValue());
|
|
|
proEconWindturbineStatus2.setStatusDesc(statusName);
|
|
|
resultList.add(proEconWindturbineStatus2);
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -142,106 +150,94 @@ public class RealtimeService {
|
|
|
}
|
|
|
|
|
|
public void saveWindstationStatus(String beginDate,String endDate) {
|
|
|
+
|
|
|
List<ProEconStationStatusmx> resultList = new ArrayList<>();
|
|
|
List<String> days = DateUtils.getDays(beginDate, endDate);
|
|
|
List<Windturbine> wtls = CacheContext.wtls;
|
|
|
Map<Integer, String> statusmxMap = CacheContext.statusmxMap;
|
|
|
Set<Integer> status = statusmxMap.keySet();
|
|
|
|
|
|
- Map<String, Map<String, Windturbinetestingpointai>> wtpAimap = CacheContext.wtpAimap;
|
|
|
+ days.stream().forEach(day->{
|
|
|
+ Date date = DateUtils.parseDate1(day);
|
|
|
+ Date addDays = DateUtils.addDays(date, 1);
|
|
|
+ Map<String,Object> delMap = new HashMap<>();
|
|
|
+ delMap.put("recorddate",date);
|
|
|
+ proEconStationStatusmxService.removeByMap(delMap);
|
|
|
|
|
|
- Date samedayZero = DateUtils.getSamedayZero();
|
|
|
- Date currentDate = DateUtils.getCurrentDate();
|
|
|
-// Date befroeDate = DateUtils.addSeconds(currentDate,-1);
|
|
|
-// Date befroeDate = DateUtils.addMinutes(currentDate,-5);
|
|
|
- days.forEach(day->{
|
|
|
- Date date = DateUtils.parseDate(day);
|
|
|
- Date addday = DateUtils.addDays(date, 1);
|
|
|
wtls.stream().forEach(wt->{
|
|
|
- Map<String, Windturbinetestingpointai> stringWindturbinetestingpointaiMap = wtpAimap.get(wt.getId());
|
|
|
- Windturbinetestingpointai windturbinetestingpointai = stringWindturbinetestingpointaiMap.get(Contant.ZTMX);
|
|
|
- Windturbinetestingpointai windturbinetestingpointaifs = stringWindturbinetestingpointaiMap.get(Contant.AI022);
|
|
|
- try {
|
|
|
- List<PointData> historyDatasSnap = edosUtil.getHistoryDatasSnap(windturbinetestingpointai, date.getTime() / 1000, addday.getTime() / 1000, null, 60l);
|
|
|
- status.stream().forEach(sta->{
|
|
|
- int minutes = historyDatasSnap.stream().filter(i -> i.getPointValueInDouble() == sta).collect(Collectors.toList()).size();
|
|
|
- ProEconStationStatusmx proEconStationStatusmx = new ProEconStationStatusmx();
|
|
|
- proEconStationStatusmx.setId(CommonUtils.getUUID());
|
|
|
- proEconStationStatusmx.setProjectId(wt.getProjectid());
|
|
|
- proEconStationStatusmx.setWindpowerstationId(wt.getWindpowerstationid());
|
|
|
- proEconStationStatusmx.setWindturbineId(wt.getId());
|
|
|
- proEconStationStatusmx.setRecorddate(date);
|
|
|
- proEconStationStatusmx.setStopHours(DoubleUtils.keepPrecision(new Double(minutes)/60,2));
|
|
|
- proEconStationStatusmx.setLossPower(0.0);
|
|
|
- proEconStationStatusmx.setSatusCode(sta);
|
|
|
- proEconStationStatusmx.setStatusDesc(statusmxMap.get(sta));
|
|
|
- proEconStationStatusmx.setAvgSpeed(0.0);
|
|
|
-// proEconStationStatusmxService.save(proEconStationStatusmx);
|
|
|
- resultList.add(proEconStationStatusmx);
|
|
|
- });
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
+ QueryWrapper<ProEconWindturbineStatus2> qw = new QueryWrapper<>();
|
|
|
+ qw.eq("windTurbine_Id",wt.getId());
|
|
|
+ qw.le("stop_Time",addDays).ge("start_Time",date);
|
|
|
+ List<ProEconWindturbineStatus2> windturbineStatus2s = proEconWindturbineStatus2Service.list(qw);
|
|
|
+ status.stream().forEach(sta->{
|
|
|
+ ProEconStationStatusmx proEconStationStatusmx = new ProEconStationStatusmx();
|
|
|
+ proEconStationStatusmx.setId(CommonUtils.getUUID());
|
|
|
+ proEconStationStatusmx.setProjectId(wt.getProjectid());
|
|
|
+ proEconStationStatusmx.setWindpowerstationId(wt.getWindpowerstationid());
|
|
|
+ proEconStationStatusmx.setWindturbineId(wt.getId());
|
|
|
+ proEconStationStatusmx.setRecorddate(date);
|
|
|
+ proEconStationStatusmx.setStopHours(windturbineStatus2s.stream().filter(i->i.getSatusCode().equals(sta)).mapToDouble(ProEconWindturbineStatus2::getStopHours).sum());
|
|
|
+ proEconStationStatusmx.setLossPower(0.0);
|
|
|
+ proEconStationStatusmx.setSatusCode(sta);
|
|
|
+ proEconStationStatusmx.setStatusDesc(statusmxMap.get(sta));
|
|
|
+ proEconStationStatusmx.setAvgSpeed(0.0);
|
|
|
+ resultList.add(proEconStationStatusmx);
|
|
|
+ });
|
|
|
});
|
|
|
+ proEconStationStatusmxService.saveBatch(resultList);
|
|
|
});
|
|
|
|
|
|
- proEconStationStatusmxService.saveBatch(resultList);
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+// List<ProEconStationStatusmx> resultList = new ArrayList<>();
|
|
|
+// List<String> days = DateUtils.getDays(beginDate, endDate);
|
|
|
// List<Windturbine> wtls = CacheContext.wtls;
|
|
|
// Map<Integer, String> statusmxMap = CacheContext.statusmxMap;
|
|
|
// Set<Integer> status = statusmxMap.keySet();
|
|
|
-// List<String> days = DateUtils.getDays(beginDate, endDate);
|
|
|
-// days.forEach(day->{
|
|
|
-// Date date = DateUtils.parseDate1(day);
|
|
|
-// Date addDay = DateUtils.addDays(date, 1);
|
|
|
//
|
|
|
+// Map<String, Map<String, Windturbinetestingpointai>> wtpAimap = CacheContext.wtpAimap;
|
|
|
+//
|
|
|
+// Date samedayZero = DateUtils.getSamedayZero();
|
|
|
+// Date currentDate = DateUtils.getCurrentDate();
|
|
|
+//// Date befroeDate = DateUtils.addSeconds(currentDate,-1);
|
|
|
+//// Date befroeDate = DateUtils.addMinutes(currentDate,-5);
|
|
|
+// days.forEach(day->{
|
|
|
+// Date date = DateUtils.parseDate(day);
|
|
|
+// Date addday = DateUtils.addDays(date, 1);
|
|
|
// wtls.stream().forEach(wt->{
|
|
|
-// QueryWrapper<ProEconWindturbineStatus2> qw = new QueryWrapper<>();
|
|
|
-// qw.eq("windTurbine_Id",wt.getId());
|
|
|
-// qw.ge("start_Time",date).lt("start_Time",addDay);
|
|
|
-// List<ProEconWindturbineStatus2> proEconWindturbineStatus2s = proEconWindturbineStatus2Service.list(qw);
|
|
|
-// if (StringUtils.isNotNull(proEconWindturbineStatus2s)){
|
|
|
+// Map<String, Windturbinetestingpointai> stringWindturbinetestingpointaiMap = wtpAimap.get(wt.getId());
|
|
|
+// Windturbinetestingpointai windturbinetestingpointai = stringWindturbinetestingpointaiMap.get(Contant.ZTMX);
|
|
|
+// Windturbinetestingpointai windturbinetestingpointaifs = stringWindturbinetestingpointaiMap.get(Contant.AI022);
|
|
|
+// try {
|
|
|
+// List<PointData> historyDatasSnap = edosUtil.getHistoryDatasSnap(windturbinetestingpointai, date.getTime() / 1000, addday.getTime() / 1000, null, 60l);
|
|
|
// status.stream().forEach(sta->{
|
|
|
-// List<ProEconWindturbineStatus2> collect = proEconWindturbineStatus2s.stream().filter(i -> i.getSatusCode() == sta).collect(Collectors.toList());
|
|
|
-// if (StringUtils.isNotNull(collect)){
|
|
|
-// double sum = collect.stream().mapToDouble(ProEconWindturbineStatus2::getStopHours).sum();
|
|
|
-// ProEconStationStatusmx proEconStationStatusmx = new ProEconStationStatusmx();
|
|
|
-// proEconStationStatusmx.setId(CommonUtils.getUUID());
|
|
|
-// proEconStationStatusmx.setProjectId(wt.getProjectid());
|
|
|
-// proEconStationStatusmx.setWindpowerstationId(wt.getWindpowerstationid());
|
|
|
-// proEconStationStatusmx.setWindturbineId(wt.getId());
|
|
|
-// proEconStationStatusmx.setRecorddate(date);
|
|
|
-// proEconStationStatusmx.setStopHours(sum);
|
|
|
-// proEconStationStatusmx.setLossPower(0.0);
|
|
|
-// proEconStationStatusmx.setSatusCode(sta);
|
|
|
-// proEconStationStatusmx.setStatusDesc(statusmxMap.get(sta));
|
|
|
-// proEconStationStatusmx.setAvgSpeed(0.0);
|
|
|
-// }else{
|
|
|
-//
|
|
|
-// }
|
|
|
+// int minutes = historyDatasSnap.stream().filter(i -> i.getPointValueInDouble() == sta).collect(Collectors.toList()).size();
|
|
|
+// ProEconStationStatusmx proEconStationStatusmx = new ProEconStationStatusmx();
|
|
|
+// proEconStationStatusmx.setId(CommonUtils.getUUID());
|
|
|
+// proEconStationStatusmx.setProjectId(wt.getProjectid());
|
|
|
+// proEconStationStatusmx.setWindpowerstationId(wt.getWindpowerstationid());
|
|
|
+// proEconStationStatusmx.setWindturbineId(wt.getId());
|
|
|
+// proEconStationStatusmx.setRecorddate(date);
|
|
|
+// proEconStationStatusmx.setStopHours(DoubleUtils.keepPrecision(new Double(minutes)/60,2));
|
|
|
+// proEconStationStatusmx.setLossPower(0.0);
|
|
|
+// proEconStationStatusmx.setSatusCode(sta);
|
|
|
+// proEconStationStatusmx.setStatusDesc(statusmxMap.get(sta));
|
|
|
+// proEconStationStatusmx.setAvgSpeed(0.0);
|
|
|
+//// proEconStationStatusmxService.save(proEconStationStatusmx);
|
|
|
+// resultList.add(proEconStationStatusmx);
|
|
|
// });
|
|
|
-// }else{
|
|
|
-//
|
|
|
+// } catch (Exception e) {
|
|
|
+// e.printStackTrace();
|
|
|
// }
|
|
|
-// qw.clear();
|
|
|
-// qw.eq("windTurbine_Id",wt.getId());
|
|
|
-// qw.ge("stop_Time",date).lt("start_Time",addDay);
|
|
|
-//
|
|
|
-// proEconWindturbineStatus2s.stream().forEach(data->{
|
|
|
-//
|
|
|
-// });
|
|
|
-//
|
|
|
//
|
|
|
// });
|
|
|
-//
|
|
|
// });
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+//
|
|
|
+// proEconStationStatusmxService.saveBatch(resultList);
|
|
|
|
|
|
|
|
|
}
|