|
@@ -53,10 +53,11 @@ public class AlarmCountPartsHandler {
|
|
|
@Autowired
|
|
|
private AlarmHistoryService alarmHistoryService;
|
|
|
|
|
|
- @XxlJob("AlarmCountParts")
|
|
|
+ @XxlJob("alarmCountParts")
|
|
|
public boolean doTask() {
|
|
|
|
|
|
try {
|
|
|
+ log.info("调度任务开始执行");
|
|
|
List<AlarmSnap> snapList = alarmSnapService.queryAll(null, null, "windturbine", null, null, null, null, null, null, null);
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String strDate = sdf.format(DateUtil.addDays(new Date(),-1));
|
|
@@ -79,6 +80,7 @@ public class AlarmCountPartsHandler {
|
|
|
}
|
|
|
map.put(listEntry.getKey(),alarmHistories);
|
|
|
}
|
|
|
+ log.info("得到部件分组");
|
|
|
//遍历map(key:windturbined,value:history),得到部件
|
|
|
for (Map.Entry<String,List<AlarmHistory>> entry : map.entrySet()){
|
|
|
Map<String,String> map1 = new HashMap<>();
|
|
@@ -86,10 +88,10 @@ public class AlarmCountPartsHandler {
|
|
|
if (value.size()>0) {
|
|
|
for (AlarmHistory alarmHistory : value) {
|
|
|
AlarmSnap alarmSnap = alarmSnapService.queryById(alarmHistory.getSnapId());
|
|
|
- Warning2 warning2 = warning2Service.selectByEdnvalue(alarmSnap.getAlertValue());
|
|
|
- if (warning2 != null){
|
|
|
+ List<Warning2> warning2s = warning2Service.selectByEdnvalue(alarmSnap.getAlertValue());
|
|
|
+ if (warning2s.size() > 0){
|
|
|
String id = alarmHistory.getId() + "_" + alarmHistory.getSnapId();
|
|
|
- map1.put(id, warning2.getRelatedParts());
|
|
|
+ map1.put(id, warning2s.get(0).getRelatedParts());
|
|
|
}
|
|
|
}
|
|
|
//分组转化为key:parts,value:snapId
|
|
@@ -102,10 +104,10 @@ public class AlarmCountPartsHandler {
|
|
|
String[] split = map2.getKey().split("_");
|
|
|
long l = Long.parseLong(split[1]);
|
|
|
AlarmSnap alarmSnap = alarmSnapService.queryById(l);
|
|
|
- Warning2 warning2 = warning2Service.selectByEdnvalue(alarmSnap.getAlertValue());
|
|
|
+ List<Warning2> warning2 = warning2Service.selectByEdnvalue(alarmSnap.getAlertValue());
|
|
|
String tbName = tableNameService.getAlarmHistoryTableName(alarmSnap.getStationId(), dtStart);
|
|
|
count = count + alarmHistoryService.selectAlarmSnapCount(tbName,Long.parseLong(split[0]));
|
|
|
- list.add(warning2.getId());
|
|
|
+ list.add(warning2.get(0).getId());
|
|
|
}
|
|
|
Map<String, Integer> mapCount = list.stream().collect(Collectors.toMap(key -> key, values -> 1, (value1, value2) -> value1 + value2));
|
|
|
for (Map.Entry<String, Integer> entryString : mapCount.entrySet()) {
|
|
@@ -117,7 +119,7 @@ public class AlarmCountPartsHandler {
|
|
|
windturbineAlarmIdCount.setRulesId(entryString.getKey());
|
|
|
windturbineAlarmIdCount.setCount(entryString.getValue());
|
|
|
windturbineAlarmIdCount.setWindturbineId(entry.getKey());
|
|
|
- windturbineAlarmIdCount.setPartsName(DataDictionaryCache.getPartName(entry1.getKey()));
|
|
|
+ windturbineAlarmIdCount.setPartsName(DataDictionaryCache.getWinturbinePartName(entry1.getKey()));
|
|
|
windturbineAlarmIdCount.setWindpowerstationId(windturbineService.selectWindturbineByWindturbineid(entry.getKey()).getWindpowerstationid());
|
|
|
alarmRuleCounts.add(windturbineAlarmIdCount);
|
|
|
}
|
|
@@ -128,7 +130,7 @@ public class AlarmCountPartsHandler {
|
|
|
windturbineAlarmPartsCount.setAlarmDate(dtStart);
|
|
|
windturbineAlarmPartsCount.setParts(entry1.getKey());
|
|
|
windturbineAlarmPartsCount.setCount(count);
|
|
|
- windturbineAlarmPartsCount.setPartsName(DataDictionaryCache.getPartName(entry1.getKey()));
|
|
|
+ windturbineAlarmPartsCount.setPartsName(DataDictionaryCache.getWinturbinePartName(entry1.getKey()));
|
|
|
windturbineAlarmPartsCount.setWindturbineId(entry.getKey());
|
|
|
windturbineAlarmPartsCount.setWindpowerstationId(windturbineService.selectWindturbineByWindturbineid(entry.getKey()).getWindpowerstationid());
|
|
|
acList.add(windturbineAlarmPartsCount);
|
|
@@ -137,10 +139,24 @@ public class AlarmCountPartsHandler {
|
|
|
}
|
|
|
}
|
|
|
if (alarmRuleCounts.size() > 0) {
|
|
|
- windturbineAlarmIdCountMapper.batchInsert(alarmRuleCounts);
|
|
|
+ if (alarmRuleCounts.size() <= 500) {
|
|
|
+ windturbineAlarmIdCountMapper.batchInsert(alarmRuleCounts);
|
|
|
+ } else {
|
|
|
+ int times = (int) Math.ceil(alarmRuleCounts.size() / 500.0);
|
|
|
+ for (int i = 0; i < times; i++) {
|
|
|
+ windturbineAlarmIdCountMapper.batchInsert(alarmRuleCounts.subList(i * 500, Math.min((i + 1) * 500, alarmRuleCounts.size())));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if (acList.size() > 0) {
|
|
|
- windturbineAlarmPartsCountMapper.batchInsert(acList);
|
|
|
+ if(acList.size()<=500){
|
|
|
+ windturbineAlarmPartsCountMapper.batchInsert(acList);
|
|
|
+ }else{
|
|
|
+ int times = (int)Math.ceil( acList.size()/500.0 );
|
|
|
+ for(int i=0; i<times; i++ ){
|
|
|
+ windturbineAlarmPartsCountMapper.batchInsert(acList.subList(i * 500, Math.min((i + 1) * 500, acList.size())));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
dtStart = dtEnd;
|
|
|
dtEnd = DateUtil.addDays(dtStart, 1);
|