Browse Source

小修小补

Joey 5 months ago
parent
commit
9de70d6612
2 changed files with 5 additions and 5 deletions
  1. 3 3
      modules/navCalculator.dos
  2. 2 2
      modules/task_portfolioPerformance.dos

+ 3 - 3
modules/navCalculator.dos

@@ -106,10 +106,10 @@ def convert_transaction_to_snapshot(portfolio_ids, end_day) {
     // 在各证券持仓时段中,填充所有无净值的但其它证券有净值的合理日期
     // 比如 2024-01-10 ~ 2024-01-20区间,组合持有基金A和基金B,基金A有每日净值
     // 而基金B只有01-12和01-19两期周五净值,那么基金B需要填充除这两天以外的所有日期
-    // TODO: 待查,如果有共享的子基金,但日期不同,会不会出BUG
-    tb_holding_date_range = SELECT p.portfolio_id, p.sec_id, n.price_date.min() AS oldest_date, n.price_date.max() AS latest_date
+    tb_holding_date_range = SELECT p.portfolio_id, p.sec_id, n.price_date.max() AS oldest_date, today() AS latest_date
                             FROM portfolio_info p 
                             INNER JOIN tb_nav n ON n.sec_id = p.sec_id
+                            WHERE n.price_date < p.start_cal_date
                             GROUP BY p.portfolio_id, p.sec_id;
     // 所有净值日期+前值日期
     tb_date = SELECT DISTINCT dr.portfolio_id, n.price_date
@@ -184,7 +184,7 @@ def convert_transaction_to_snapshot(portfolio_ids, end_day) {
                        GROUP BY portfolio_id, price_date;
 
     // 取组合净值前值
-    s_json = (SELECT portfolio_id, price_date.min() AS price_date
+    s_json = (SELECT portfolio_id, price_date.max() AS price_date
               FROM ej(tb_portfolio_ret, tb_port_first_cal_date, 'portfolio_id')
               WHERE tb_portfolio_ret.price_date < tb_port_first_cal_date.first_cal_date
               GROUP BY portfolio_id).toStdJson();

+ 2 - 2
modules/task_portfolioPerformance.dos

@@ -48,8 +48,8 @@ def calPortfolioPerformance(date) {
                          WHERE portfolio_id IN all_portfolio_id[i : min(all_portfolio_id.size(), i+batch_size)];
 
         if(portfolio_info.isVoid() || portfolio_info.size() == 0) break;
-portfolio_info = select * from tb_cal_ports where portfolio_id in (143109, 145041)
-        // 16 sec
+
+        // 30 sec
         tb_ret = fundit::navCalculator::cal_portfolio_nav(portfolio_info);
 
         INSERT INTO tb_portfolio_nav SELECT portfolio_id$STRING, price_date, nav FROM tb_ret;