Exemplo n.º 1
0
def job_every_month():
    from k.manager.FinManager import FinManager
    from k.puller.SharePuller import SharePuller
    from k.manager.Kmanager import KManager
    from k.util.Logger import logger
    from k.util.DateUtil import DateUtil
    from k.util.PandasToMysql import pm

    if (isWeekDay()):
        return

    sp = SharePuller()
    sp.pull()

    FinManager.pull_data()
    FinManager.count_kpi()
Exemplo n.º 2
0
def main(argv):
    create_db = False
    pull_list = False
    pull_k_data = False
    pull_k_h_data = False
    pull_f_data = False
    pull_m_k_data = False
    kpi_k = False
    kpi_f = False
    retry = False
    start_date = datetime.datetime.now().strftime('%Y-%m-%d')
    start_code = None

    try:
        opts, args = getopt.getopt(argv, 'hcfkrs:',
                                   ['pl', 'pk', 'ph', 'pf', 'pmk', 'sc='])
    except getopt.GetoptError:

        print_help()
        sys.exit(2)

    for opt, arg in opts:
        if opt == '-h':
            print_help()
            sys.exit()
        elif opt == '-c':
            create_db = True
        elif opt == '--pl':
            pull_list = True
        elif opt == '--pk':
            pull_k_data = True
        elif opt == '--ph':
            pull_k_h_data = True
        elif opt == '--pf':
            pull_f_data = True
        elif opt == '-k':
            kpi_k = True
        elif opt == '-f':
            kpi_f = True
        elif opt in ("-s", "--sdate"):
            start_date = arg
        elif opt == '-r':
            retry = True
        elif opt == '--sc':
            start_code = arg
        elif opt == '--pmk':
            pull_m_k_data = True

    from k.util.DbCreator import DbCreator
    from k.manager.Kmanager import KManager
    from k.manager.FinManager import FinManager
    from k.puller.SharePuller import SharePuller
    from GlobalConfig import ConfigDict

    if (retry):

        df = pd.DataFrame()
        if os.path.exists(ConfigDict['k_fail_log']):
            df = pd.read_csv(ConfigDict['k_fail_log'],
                             index_col=0,
                             dtype={
                                 'code': np.str,
                                 'type': np.str
                             })
            print(df)
            if os.path.exists(ConfigDict['k_fail_log'] + '.pre'):
                os.remove(ConfigDict['k_fail_log'] + '.pre')
            os.rename(ConfigDict['k_fail_log'],
                      ConfigDict['k_fail_log'] + '.pre')
            new_df = pd.DataFrame(data=None, columns=['type', 'code'])
            new_df.to_csv(ConfigDict['k_fail_log'], mode='w')

        for i in range(df.shape[0]):
            if (df.loc[i, 'type'] == 'pd'):
                K_RETRY['pd'].append(df.loc[i, 'code'])
            elif (df.loc[i, 'type'] == 'ph'):
                K_RETRY['ph'].append(df.loc[i, 'code'])
            elif (df.loc[i, 'type'] == 'ks'):
                K_RETRY['ks'].append(df.loc[i, 'code'])
            elif (df.loc[i, 'type'] == 'km'):
                K_RETRY['km'].append(df.loc[i, 'code'])
        print(K_RETRY)

    if (not os.path.exists(ConfigDict['k_fail_log'])):
        new_df = pd.DataFrame(data=None, columns=['date', 'type', 'code'])
        new_df.to_csv(ConfigDict['k_fail_log'], mode='w')

    if (create_db):
        dc = DbCreator()
        dc.init_create_table()

    if (pull_list):
        sp = SharePuller()
        sp.pull()

    if (pull_k_data):
        KManager.pull_data(start_date,
                           start_code=start_code,
                           retry=retry,
                           retryDict=K_RETRY)
        KManager.pull_data_hk(start_date,
                              start_code=start_code,
                              retry=retry,
                              retryDict=K_RETRY)

    if (pull_k_h_data):
        KManager.pull_data_hk(start_date,
                              start_code=start_code,
                              retry=retry,
                              retryDict=K_RETRY)

    if (pull_m_k_data):
        KManager.pull_data_month_and_month_kpi(start_date,
                                               start_code=start_code,
                                               retry=retry,
                                               retryDict=K_RETRY)

    if (kpi_k):
        KManager.count_kpi(start_date,
                           start_code=start_code,
                           retry=retry,
                           retryDict=K_RETRY)

    if (pull_f_data):
        FinManager.pull_data()
    if (kpi_f):
        FinManager.count_kpi()

    print('finish OK')