|
@@ -20,9 +20,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Comparator;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -50,12 +48,13 @@ public class ETAFacadeServiceImpl implements ETAFacadeService {
|
|
|
|
|
|
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
|
|
|
List<DWIndexDataDTO> dataList = dwIndexFrameService.getIndexData(indexCode);
|
|
|
+ dataList.sort(Comparator.comparingLong(o -> o.getDate().getTime()));
|
|
|
+// dataList.stream().sorted(Comparator.comparing(DWIndexDataDTO::getDate)).collect(Collectors.toList());
|
|
|
dwIndexDTO.setDataList(dataList);
|
|
|
//api数据发送
|
|
|
if (dwIndexDTO.getDataList().size() > ETAConstants.ETA_PUSH_DATA_LIMIT) {
|
|
|
log.info("数据量超过限制,分批推送");
|
|
|
- List<DWIndexDataDTO> sortList = dwIndexDTO.getDataList().stream().sorted(Comparator.comparing(DWIndexDataDTO::getDate)).collect(Collectors.toList());
|
|
|
- Lists.partition(sortList, ETAConstants.ETA_PUSH_DATA_CHUNK).forEach(list -> {
|
|
|
+ Lists.partition(dataList, ETAConstants.ETA_PUSH_DATA_CHUNK).forEach(list -> {
|
|
|
Date latestDataDate = list.stream().map(DWIndexDataDTO::getDate).max(Comparator.comparing(Date::getTime)).get();
|
|
|
//防止数据漏更新,先推送,再更新本地任务记录,下游做好冗余和幂等
|
|
|
DWIndexDTO dataDTO = new DWIndexDTO();
|
|
@@ -66,7 +65,7 @@ public class ETAFacadeServiceImpl implements ETAFacadeService {
|
|
|
dataDTO.setSourceName(dwIndexDTO.getSourceName());
|
|
|
dataDTO.setUnit(dwIndexDTO.getUnit());
|
|
|
dataDTO.setDataList(list);
|
|
|
- List<?> result = apiServiceHolder.runApi(ETAInterfaceEnum.PUSH_ETA_INDEX, dataDTO);
|
|
|
+ List<?> result = apiServiceHolder.runApi(ETAInterfaceEnum.PUSH_ETA_INDEX, dataDTO);
|
|
|
if (result == null) {
|
|
|
log.error("调用ETA接口失败,停止更新");
|
|
|
throw new ETAException(ErrorEnum.PUSH_TO_ETA_ERROR);
|
|
@@ -92,10 +91,10 @@ public class ETAFacadeServiceImpl implements ETAFacadeService {
|
|
|
apiServiceHolder.runApi(ETAInterfaceEnum.PUSH_ETA_INDEX, dwIndexDTO);
|
|
|
}
|
|
|
}).thenRun(() -> {
|
|
|
- log.info("更新指标任务表完成");
|
|
|
+ log.info("同步指标任务表完成");
|
|
|
});
|
|
|
future.exceptionally(exception -> {
|
|
|
- log.error("更新指标任务表失败:", exception);
|
|
|
+ log.error("同步指标任务表失败:", exception);
|
|
|
return null;
|
|
|
});
|
|
|
|