Commit ef7cb0cd authored by jichao's avatar jichao

修复业绩时间去值遇到节假日情况

parent 876fa964
...@@ -2,7 +2,7 @@ from datetime import datetime as dt ...@@ -2,7 +2,7 @@ from datetime import datetime as dt
from typing import List from typing import List
import pandas as pd import pandas as pd
from py_jftech import component, autowired, get_config, format_date from py_jftech import component, autowired, get_config, format_date, filter_weekend
from api import RoboReportor from api import RoboReportor
...@@ -29,8 +29,10 @@ class FixedRangeReport(RoboReportor): ...@@ -29,8 +29,10 @@ class FixedRangeReport(RoboReportor):
if not datas.empty: if not datas.empty:
result = pd.DataFrame(columns=datas.columns) result = pd.DataFrame(columns=datas.columns)
for range in self.range_dates: for range in self.range_dates:
row_name = f"{format_date(range['start'])}~{format_date(range['end'])}" start = filter_weekend(range['start'])
result.loc[row_name] = datas[range['start']:range['end']].values[-1] / datas[range['start']:range['end']].values[0] - 1 end = filter_weekend(range['end'])
row_name = f"{format_date(start)}~{format_date(end)}"
result.loc[row_name] = datas[start:end].values[-1] / datas[start:end].values[0] - 1
result = round(result, 4) * 100 result = round(result, 4) * 100
result.reset_index(inplace=True) result.reset_index(inplace=True)
result.rename(columns={'index': 'range-date'}, inplace=True) result.rename(columns={'index': 'range-date'}, inplace=True)
......
...@@ -3,7 +3,7 @@ from typing import List ...@@ -3,7 +3,7 @@ from typing import List
import pandas as pd import pandas as pd
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from py_jftech import component, autowired, get_config, format_date from py_jftech import component, autowired, get_config, format_date, filter_weekend
from api import RoboReportor from api import RoboReportor
...@@ -32,9 +32,10 @@ class RelativeRangeReport(RoboReportor): ...@@ -32,9 +32,10 @@ class RelativeRangeReport(RoboReportor):
for range in self.range_dates: for range in self.range_dates:
kwargs = range.copy() kwargs = range.copy()
del kwargs['name'] del kwargs['name']
start = max_date - relativedelta(**kwargs) start = filter_weekend(max_date - relativedelta(**kwargs))
row_name = f"{range['name']}({format_date(start)}~{format_date(max_date)})" end = filter_weekend(max_date)
result.loc[row_name] = datas[start:max_date].values[-1] / datas[start:max_date].values[0] - 1 row_name = f"{range['name']}({format_date(start)}~{format_date(end)})"
result.loc[row_name] = datas[start:end].values[-1] / datas[start:end].values[0] - 1
result = round(result, 4) * 100 result = round(result, 4) * 100
result.reset_index(inplace=True) result.reset_index(inplace=True)
result.rename(columns={'index': 'range-date'}, inplace=True) result.rename(columns={'index': 'range-date'}, inplace=True)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment