feat: 更新日线数据增加进度
This commit is contained in:
@@ -56,39 +56,42 @@ public class UpdateDailyTask extends TaskRunner {
|
|||||||
var existsTradeDates = dailyRepository.findDistinctTradeDate();
|
var existsTradeDates = dailyRepository.findDistinctTradeDate();
|
||||||
var nowDate = LocalDate.now();
|
var nowDate = LocalDate.now();
|
||||||
var stocksMap = stockRepository.findAll().stream().collect(Collectors.toMap(Stock::getCode, stock -> stock));
|
var stocksMap = stockRepository.findAll().stream().collect(Collectors.toMap(Stock::getCode, stock -> stock));
|
||||||
tradeDates.parallelStream()
|
var targetTradeDates = tradeDates.stream()
|
||||||
.filter(date -> date.isBefore(nowDate) || date.isEqual(nowDate))
|
.filter(date -> date.isBefore(nowDate) || date.isEqual(nowDate))
|
||||||
.filter(date -> !existsTradeDates.contains(date))
|
.filter(date -> !existsTradeDates.contains(date))
|
||||||
.forEach(tradeDate -> {
|
.toList();
|
||||||
var factorResponse = tuShareService.factorList(tradeDate);
|
for (int index = 0, total = targetTradeDates.size(); index < total; index++) {
|
||||||
var factorMap = new HashMap<String, Double>();
|
var tradeDate = targetTradeDates.get(index);
|
||||||
for (List<String> item : factorResponse.data().items()) {
|
var factorResponse = tuShareService.factorList(tradeDate);
|
||||||
factorMap.put(item.get(0), Double.valueOf(item.get(2)));
|
var factorMap = new HashMap<String, Double>();
|
||||||
}
|
for (List<String> item : factorResponse.data().items()) {
|
||||||
|
factorMap.put(item.get(0), Double.valueOf(item.get(2)));
|
||||||
|
}
|
||||||
|
|
||||||
var response = tuShareService.dailyList(tradeDate);
|
var response = tuShareService.dailyList(tradeDate);
|
||||||
for (List<String> item : response.data().items()) {
|
for (List<String> item : response.data().items()) {
|
||||||
var code = item.get(0);
|
var code = item.get(0);
|
||||||
if (stocksMap.containsKey(code)) {
|
if (stocksMap.containsKey(code)) {
|
||||||
var stock = stocksMap.get(code);
|
var stock = stocksMap.get(code);
|
||||||
var factor = factorMap.get(code);
|
var factor = factorMap.get(code);
|
||||||
var daily = new Daily();
|
var daily = new Daily();
|
||||||
daily.setTradeDate(tradeDate);
|
daily.setTradeDate(tradeDate);
|
||||||
daily.setOpen(NumberHelper.parseDouble(item.get(2)));
|
daily.setOpen(NumberHelper.parseDouble(item.get(2)));
|
||||||
daily.setHigh(NumberUtil.parseDouble(item.get(3)));
|
daily.setHigh(NumberUtil.parseDouble(item.get(3)));
|
||||||
daily.setLow(NumberUtil.parseDouble(item.get(4)));
|
daily.setLow(NumberUtil.parseDouble(item.get(4)));
|
||||||
daily.setClose(NumberUtil.parseDouble(item.get(5)));
|
daily.setClose(NumberUtil.parseDouble(item.get(5)));
|
||||||
daily.setPreviousClose(NumberUtil.parseDouble(item.get(6)));
|
daily.setPreviousClose(NumberUtil.parseDouble(item.get(6)));
|
||||||
daily.setPriceChangeAmount(NumberUtil.parseDouble(item.get(7)));
|
daily.setPriceChangeAmount(NumberUtil.parseDouble(item.get(7)));
|
||||||
daily.setPriceFluctuationRange(NumberUtil.parseDouble(item.get(8)));
|
daily.setPriceFluctuationRange(NumberUtil.parseDouble(item.get(8)));
|
||||||
daily.setVolume(NumberUtil.parseDouble(item.get(9)));
|
daily.setVolume(NumberUtil.parseDouble(item.get(9)));
|
||||||
daily.setTurnover(NumberUtil.parseDouble(item.get(10)));
|
daily.setTurnover(NumberUtil.parseDouble(item.get(10)));
|
||||||
daily.setFactor(factor);
|
daily.setFactor(factor);
|
||||||
daily.setStock(stock);
|
daily.setStock(stock);
|
||||||
dailyRepository.save(daily);
|
dailyRepository.save(daily);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
updater.update(index * 1.0 / total);
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user