public void countAndSaved(String stockId) { List<StockPriceVO> priceList = stockPriceTable.getStockPriceById(stockId); if (priceList.size() <= 20) { // System.out.println("StockPrice data is less than 20, skip " + // stockId); return; } // update price based on chuQuanChuXi event chuQuanChuXiPriceHelper.updatePrice(stockId, priceList); // list is order by date int length = priceList.size(); double[] var1 = new double[length]; int index = 0; for (StockPriceVO vo : priceList) { var1[index++] = (2 * vo.close + vo.open + vo.high + vo.low) / 5; } double[][] mai1mai2 = mai1mai2Helper.getMai1Mai2List(var1); Mai1Mai2VO vo = new Mai1Mai2VO(); vo.setSd(Strings.convert2ScaleDecimal(mai1mai2[0][length - 1])); vo.setSk(Strings.convert2ScaleDecimal(mai1mai2[1][length - 1])); vo.setStockId(stockId); vo.setDate(priceList.get(length - 1).date); this.deleteMai1Mai2(stockId, vo.date); mai1mai2Table.insert(vo); }
public class DailyMai1Mai2CountAndSaveDBRunner implements Runnable { protected StockPriceTableHelper stockPriceTable = StockPriceTableHelper.getInstance(); protected IndMai1Mai2TableHelper mai1mai2Table = IndMai1Mai2TableHelper.getInstance(); private Mai1Mai2Helper mai1mai2Helper = new Mai1Mai2Helper(); protected ChuQuanChuXiPriceHelper chuQuanChuXiPriceHelper = new ChuQuanChuXiPriceHelper(); protected CompanyInfoFileHelper stockConfig = CompanyInfoFileHelper.getInstance(); protected MultThreadRunner parentRunner; public DailyMai1Mai2CountAndSaveDBRunner() {} public DailyMai1Mai2CountAndSaveDBRunner(MultThreadRunner parentRunner) { this.parentRunner = parentRunner; this.parentRunner.newTaskInfo(this.getClass().getSimpleName()); } public void deleteMai1Mai2(String stockId, String date) { mai1mai2Table.delete(stockId, date); } public void deleteMai1Mai2(String stockId) { mai1mai2Table.delete(stockId); } public void deleteMai1Mai2(List<String> stockIds) { int index = 0; for (String stockId : stockIds) { System.out.println( "Delete Mai1Mai2 for " + stockId + " " + (++index) + "/" + stockIds.size()); this.deleteMai1Mai2(stockId); } } public void countAndSaved(String stockId) { List<StockPriceVO> priceList = stockPriceTable.getStockPriceById(stockId); if (priceList.size() <= 20) { // System.out.println("StockPrice data is less than 20, skip " + // stockId); return; } // update price based on chuQuanChuXi event chuQuanChuXiPriceHelper.updatePrice(stockId, priceList); // list is order by date int length = priceList.size(); double[] var1 = new double[length]; int index = 0; for (StockPriceVO vo : priceList) { var1[index++] = (2 * vo.close + vo.open + vo.high + vo.low) / 5; } double[][] mai1mai2 = mai1mai2Helper.getMai1Mai2List(var1); Mai1Mai2VO vo = new Mai1Mai2VO(); vo.setSd(Strings.convert2ScaleDecimal(mai1mai2[0][length - 1])); vo.setSk(Strings.convert2ScaleDecimal(mai1mai2[1][length - 1])); vo.setStockId(stockId); vo.setDate(priceList.get(length - 1).date); this.deleteMai1Mai2(stockId, vo.date); mai1mai2Table.insert(vo); } public void countAndSaved(List<String> stockIds) { int index = 0; for (String stockId : stockIds) { if (index++ % 500 == 0) { System.out.println( "Mai1Mai2 countAndSaved: " + stockId + " " + (index) + "/" + stockIds.size()); } this.countAndSaved(stockId); } } public void run() { this.parentRunner.startTaskInfo(this.getClass().getSimpleName()); countAndSaved(stockConfig.getAllStockId()); this.parentRunner.stopTaskInfo(this.getClass().getSimpleName()); } // TODO Auto-generated method stub public static void main(String[] args) { CompanyInfoFileHelper stockConfig = CompanyInfoFileHelper.getInstance(); DailyMai1Mai2CountAndSaveDBRunner runner = new DailyMai1Mai2CountAndSaveDBRunner(); runner.countAndSaved(stockConfig.getAllStockId()); // runner.countAndSaved("600084"); } }