|
@@ -2,21 +2,30 @@ package com.bizmatics.service.job;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.bizmatics.common.core.util.BeanMapperUtils;
|
|
|
+import com.bizmatics.common.core.util.DateUtils;
|
|
|
+import com.bizmatics.common.core.util.JsonMapper;
|
|
|
+import com.bizmatics.common.spring.util.JsonUtils;
|
|
|
import com.bizmatics.model.AlarmPower;
|
|
|
+import com.bizmatics.model.HadDataLog;
|
|
|
import com.bizmatics.model.HtAnalogData;
|
|
|
import com.bizmatics.model.RtAnalogData;
|
|
|
import com.bizmatics.model.es.RtAnalog;
|
|
|
+import com.bizmatics.persistence.mapper.HadDataLogMapper;
|
|
|
import com.bizmatics.persistence.mapper.HtAnalogDataMapper;
|
|
|
import com.bizmatics.persistence.mapper.RtAnalogDataMapper;
|
|
|
+import com.bizmatics.service.HadDataLogService;
|
|
|
import com.bizmatics.service.es.RtAnalogService;
|
|
|
import com.bizmatics.service.util.SessionLocal;
|
|
|
+import com.bizmatics.service.vo.HadDataLogVO;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.poi.ss.usermodel.DateUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author yq
|
|
@@ -29,24 +38,66 @@ public class RatAnalogTask {
|
|
|
|
|
|
@Autowired
|
|
|
private HtAnalogDataMapper htAnalogDataMapper;
|
|
|
- @Autowired
|
|
|
- private RtAnalogService rtAnalogService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private HadDataLogMapper hadDataLogMapper;
|
|
|
|
|
|
public void addAll(){
|
|
|
List<HtAnalogData> list = null;
|
|
|
Integer id = 0;
|
|
|
Integer index = 1;
|
|
|
+ Date startTime = null;
|
|
|
+ Date endTime = null;
|
|
|
+ List<HadDataLogVO> hadVoList = new ArrayList<>();
|
|
|
do {
|
|
|
Page<HtAnalogData> page = new Page<>(index, 2000);
|
|
|
page = htAnalogDataMapper.page(page, null,null,id);
|
|
|
list = page.getRecords();
|
|
|
if (!CollectionUtils.isEmpty(list)){
|
|
|
- rtAnalogService.saveAll(BeanMapperUtils.mapList(list, HtAnalogData.class, RtAnalog.class));
|
|
|
+ if (id == 0){
|
|
|
+ startTime = DateUtils.getDayStartTime(list.get(0).getDataTime());
|
|
|
+ endTime = DateUtils.getDayEndTime(list.get(0).getDataTime());
|
|
|
+ }
|
|
|
id = list.get(list.size()-1).getId();
|
|
|
index++;
|
|
|
+ for (HtAnalogData htAnalogData:list) {
|
|
|
+ if (htAnalogData.getDataTime().after(startTime) && htAnalogData.getDataTime().before(endTime)){
|
|
|
+ insertList(hadVoList,htAnalogData,startTime);
|
|
|
+ }else {
|
|
|
+ List<HadDataLogVO> collect = hadVoList.stream().sorted(Comparator.comparing(HadDataLogVO::getSiteId)).collect(Collectors.toList());
|
|
|
+ List<List<HadDataLogVO>> rsList = Lists.partition(collect, 2000);
|
|
|
+ for (List<HadDataLogVO> logVOS:rsList) {
|
|
|
+ HadDataLog hadDataLog = new HadDataLog();
|
|
|
+ hadDataLog.setDataTime(startTime);
|
|
|
+ hadDataLog.setMinId(logVOS.get(0).getSiteId());
|
|
|
+ hadDataLog.setMaxId(logVOS.get(logVOS.size()-1).getSiteId());
|
|
|
+ hadDataLog.setHadData(JsonUtils.toJson(logVOS));
|
|
|
+ hadDataLogMapper.insert(hadDataLog);
|
|
|
+ }
|
|
|
+ startTime = DateUtils.getDayStartTime(htAnalogData.getDataTime());
|
|
|
+ endTime = DateUtils.getDayEndTime(htAnalogData.getDataTime());
|
|
|
+ hadVoList = new ArrayList<>();
|
|
|
+ insertList(hadVoList,htAnalogData,startTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
log.info("处理到最大id"+id);
|
|
|
}while (!CollectionUtils.isEmpty(list));
|
|
|
}
|
|
|
+
|
|
|
+ public void insertList(List<HadDataLogVO> hadVoList,HtAnalogData htAnalogData,Date startTime){
|
|
|
+ HadDataLogVO hadDataLogVO = HadDataLogVO.builder()
|
|
|
+ .dataTime(startTime)
|
|
|
+ .deviceCode(htAnalogData.getDeviceName())
|
|
|
+ .epp(htAnalogData.getEpp())
|
|
|
+ .ia(htAnalogData.getIa())
|
|
|
+ .ib(htAnalogData.getIb())
|
|
|
+ .ic(htAnalogData.getIc())
|
|
|
+ .ua(htAnalogData.getUa())
|
|
|
+ .ub(htAnalogData.getUb())
|
|
|
+ .uc(htAnalogData.getUc())
|
|
|
+ .siteId(htAnalogData.getSiteId())
|
|
|
+ .build();
|
|
|
+ hadVoList.add(hadDataLogVO);
|
|
|
+ }
|
|
|
}
|