예제 #1
0
def pandas_rat_text(df_list):
    now_day = oas_n_day.NDay(datetime.date.today())
    title_text = ['', '正在执行中', '到期']
    text_list = []
    for i, item in enumerate(df_list):
        all_text = '2021年昆明供电局安全监管部(应急指挥中心)共有{0}条计划{17},截至{1},完成{2}条,未完成{3}条,完成率{4};'\
    '其中:安监科共有{5}条计划,完成{6}条,未完成{7}条,完成率{8}。'\
    '应急科共有{9}条计划,完成{10}条,未完成{11}条,完成率{12}。'\
    '党支部共有{13}条计划,完成{14}条,未完成{15}条,完成率{16}。'.format(item.loc[item['责任科室'] == '安监部', '合计'].values[0],
                                                   now_day.get_chinese_date()[3],
                                                   item.loc[item['责任科室'] == '安监部', '是'].values[0],
                                                   item.loc[item['责任科室'] == '安监部', '否'].values[0],
                                                   item.loc[item['责任科室'] == '安监部', '完成率'].values[0],
                                                   item.loc[item['责任科室'] == '安监科', '合计'].values[0],
                                                   item.loc[item['责任科室'] == '安监科', '是'].values[0],
                                                   item.loc[item['责任科室'] == '安监科', '否'].values[0],
                                                   item.loc[item['责任科室'] == '安监科', '完成率'].values[0],
                                                   item.loc[item['责任科室'] == '应急科', '合计'].values[0],
                                                   item.loc[item['责任科室'] == '应急科', '是'].values[0],
                                                   item.loc[item['责任科室'] == '应急科', '否'].values[0],
                                                   item.loc[item['责任科室'] == '应急科', '完成率'].values[0],
                                                   item.loc[item['责任科室'] == '党支部', '合计'].values[0],
                                                   item.loc[item['责任科室'] == '党支部', '是'].values[0],
                                                   item.loc[item['责任科室'] == '党支部', '否'].values[0],
                                                   item.loc[item['责任科室'] == '党支部', '完成率'].values[0],
                                                   title_text[i]
                                                   )
        text_list.append(all_text)
    return text_list
예제 #2
0
def write_pptx():
    now_day = oas_n_day.NDay(datetime.date.today())

    op = OasPptx(r'D:\JGY\600-Data\004-auxiliary辅助文件\南方电网logo(16,9)模板.pptx')

    first_page_text_list = [
        '{0}目标指标总体情况及{1}安全生产工作情况'.format(now_day.get_chinese_date()[0],
                                         now_day.get_chinese_date()[4]),
        '安全监管部(应急指挥中心)',
        now_day.get_chinese_date()[3]
    ]

    op.alter_csg_logo_first_page(first_page_text_list)
    contents_page_text_list = [
        '一、安全生产目标指标情况', '二、上月布置工作推进情况', '三、本月重点工作推进情况', '四、下月需要重点关注的工作'
    ]
    op.text_n('目录', font_bold=True)
    op.text_n(contents_page_text_list, textbox_top=12)
    op.page()
    op.text('1.1总体回顾')

    op.save_pptx(
        sfb_plan_save_path('pptx') + str(datetime.date.today()) + '.pptx')
    print(sfb_plan_save_path('pptx') + str(datetime.date.today()) + '.pptx')
예제 #3
0
def write_pptx(sql):
    now_day = oas_n_day.NDay(datetime.date.today())

    op = OasPptx(r'D:\JGY\600-Data\004-auxiliary辅助文件\南方电网logo(16,9)模板.pptx')
    text_list = ['昆明供电局2021年安全监管重点工作计划执行情况',
                 '安全监管部(应急指挥中心)',
                 now_day.get_chinese_date()[3]]
    op.alter_csg_logo_first_page(text_list)
    correct_tex = "昆明供电局2021年安全监管重点工作计共有{0}条数据,以下数据不完善:{1}" \
        .format(analysis_null(sql)[0], analysis_null(sql)[3])
    op.text_n('一、数据总体情况', font_bold=True)
    op.text_n(correct_tex, textbox_top=12)
    op.page()
    op.text('二、周期事项事项')
    s_columns = ['开始时间', '完成时间', '是否完成']
    h_columns = ['关键任务', '行动计划', '开始时间', '完成时间', '是否完成', '责任科室', '责任人员', '配合人员', '目前推进情况']
    analysis_list = analysis_section(sql, s_columns, h_columns, '否', '2021-1-1')
    df_all = analysis_all(sql, ['开始时间', '完成时间'], '2021-1-1')
    df_table = []
    for i in range(len(df_all)):
        df_table.append(pandas_rat(df_all[i])[0])
    all_text = pandas_rat_text(df_table)
    op.text_n(all_text[0], textbox_top=12)
    df_table_chart = []
    for i in range(len(df_all)):
        df_table_duty_person = sfb_plan_piovt_table(df_all[i],
                                                    piovt_index=['责任人员'],
                                                    piovt_columns=['是否完成'],
                                                    piovt_values=['业务领域'],
                                                    table_columns=['责任人员', '否', '是', '合计']
                                                    )
        df_table_chart.append(df_table_duty_person)
    op.chart(df_table_chart[0][['责任人员', '否', '是', '合计']], chart_class='bar', top=35)
    op.page()
    op.text('全部计划科室完成情况表')
    op.p_table(df_table[0])
    op.page()
    op.text('全部计划个人完成情况表')
    op.p_table(df_table_chart[0])
    op.page()
    op.text('二、周期事项事项')
    op.text_n(all_text[1], textbox_top=12)

    op.chart(df_table_chart[1][['责任人员', '否', '是', '合计']], chart_class='bar', top=35)
    op.page()
    op.text('执行中计划科室完成情况表')
    op.p_table(df_table[1])
    op.page()
    op.text('执行中计划个人完成情况表')
    op.p_table(df_table_chart[1])
    op.page()
    op.text('二、周期事项事项')
    op.text_n(all_text[2], textbox_top=12)
    op.chart(df_table_chart[2][['责任人员', '否', '是', '合计']], chart_class='bar', top=35)
    op.page()
    op.text('到期计划科室完成情况表')
    op.p_table(df_table[2])
    op.page()
    op.text('到期计划个人完成情况表')
    op.p_table(df_table_chart[2])
    op.page()
    duty_name = list(set(df_all[2]['责任人员'].tolist()))
    duty_name.sort()
    op.text('到期个人计划明细')
    op.text_n(duty_name, textbox_top=12)
    op.page()

    s_columns = ['关键任务', '行动计划', '开始时间', '完成时间', '是否完成', '责任科室', '责任人员', '配合人员', '目前推进情况']
    j = 1
    for name in duty_name:
        analysis_name_df = df_all[2][(df_all[2]['责任人员'] == name)&(df_all[2]['是否完成'] == '否')][s_columns]
        pa = PandasAnalysis(analysis_name_df)
        analysis_name_list = pa.df_iter(analysis_name_df, num=False)

        if analysis_name_list == []:
            op.text_n('(' + oas_func.number_to_chinese_number(j) + ')' + name)
            op.text_n('无异常', textbox_top=12)
            op.page()
        else:
            i = 1
            for item in analysis_name_list:
                op.text_n('({0}){1}'.format(oas_func.number_to_chinese_number(j), name))
                op.text_n('{0}.未完成事项{1}'.format(i, oas_func.number_to_chinese_number(i)), textbox_top=12)
                x = item.split('\n')
                z = []
                for k, y in enumerate(x):
                    z.append(y)

                op.text_n(z, textbox_top=22)
                i += 1
                op.page()

        j += 1

    dm = DataFrameBothMysql()
    df = dm.select_mysql(sql)
    duty_name = list(set(df['责任人员'].tolist()))
    duty_name.sort()
    s_columns = ['开始时间', '完成时间', '是否完成', '责任人员']
    op.text('正在执行中个人计划明细')
    duty_name_list = ['('+oas_func.number_to_chinese_number(i+1)+')'+item for i, item in enumerate(duty_name)]
    op.text_n(duty_name_list, textbox_top=12)
    op.page()
    j = 1
    for name in duty_name:
        analysis_name_list = analysis_name(sql, name, s_columns, h_columns, '否', '2020-1-1')
        #op.text_n('({0}){1}'.format(digital_to_chinese(j), name))
        if not analysis_name_list:
            op.text_n('(' + oas_func.number_to_chinese_number(j) + ')' + name)
            op.text_n('无异常', textbox_top=12)
            op.page()
        else:
            i = 1
            for item in analysis_name_list:
                op.text_n('({0}){1}'.format(oas_func.number_to_chinese_number(j), name))
                op.text_n('{0}.未完成事项{1}'.format(i, digital_to_chinese(i)),textbox_top=12)
                x = item.split('\n')
                z = []
                for k, y in enumerate(x):
                    z.append(y)

                op.text_n(z, textbox_top=22)
                i += 1
                op.page()

        j += 1
    op.save_pptx(sfb_plan_save_path('pptx'))
예제 #4
0
def write_docx(sql):
    now_day = oas_n_day.NDay(datetime.date.today())
    doc = OasDocx()
    doc.hd('昆明供电局2021年安全监管重点工作计划执行情况', font_size=22)
    correct_tex = "昆明供电局2021年安全监管重点工作计共有{0}条数据,以下数据不完善:{1}"\
        .format(analysis_null(sql)[0], analysis_null(sql)[3])
    doc.par('一、数据总体情况', bold=True)
    doc.par(correct_tex)

    doc.par('二、未安排事项', bold=True)
    no_arrange_list = analysis_no_arrange(sql)
    i = 1
    for item in no_arrange_list:
        doc.par('({0})未安排{0}'.format(digital_to_chinese(i)))
        x = item.split('\n')
        for y in x:
            doc.par(y)
        i += 1
    doc.par('三、周期事项事项', bold=True)
    s_columns = ['开始时间', '完成时间', '是否完成']
    h_columns = ['关键任务', '行动计划',  '开始时间', '完成时间', '是否完成', '责任科室', '责任人员', '配合人员', '目前推进情况']
    #analysis_list = analysis_section(sql, s_columns, h_columns, '否', '2021-1-1')
    df_all = analysis_all(sql, ['开始时间', '完成时间'], '2021-1-1')
    df_table = []
    for i in range(len(df_all)):
        df_table.append(pandas_rat(df_all[i])[0])
    all_text = pandas_rat_text(df_table)
    doc.par(all_text[0])
    doc.d_table(df_table[0])
    doc.par(all_text[1])
    doc.d_table(df_table[1])
    doc.par(all_text[2])
    doc.d_table(df_table[2])

    doc.par('四、个人正在开展事项', bold=True)
    df_table = []
    for i in range(len(df_all)):
        df_table.append(pandas_rat(df_all[i])[1])
    doc.par('个人正在开展事项', bold=True)
    doc.d_table(df_table[1])
    doc.par('个人超期事项', bold=True)
    doc.d_table(df_table[2])
    dm = DataFrameBothMysql()
    df = dm.select_mysql(sql)
    duty_name = list(set(df['责任人员'].tolist()))
    duty_name.sort()
    s_columns = ['开始时间', '完成时间', '是否完成', '责任人员']
    j = 1
    for name in duty_name:
        analysis_name_list = analysis_name(sql, name, s_columns, h_columns, '否', '2020-1-1')
        doc.par('({0}){1}'.format(oas_func.number_to_chinese_number(j), name))
        if analysis_name_list == []:
            doc.par('无异常')
        else:
            i = 1
            for item in analysis_name_list:
                doc.par('{0}.未完成事项{1}'.format(i, oas_func.number_to_chinese_number(i)))
                x = item.split('\n')
                for y in x:
                    doc.par(y)
                i += 1

        j += 1

    doc.save_docx(sfb_plan_save_path('docx'))