consolidator

Форк
0
/
debugSingleHandler.py 
79 строк · 3.7 Кб
1
import os
2
from typing import Any
3
import pandas as pd
4
import pandas_xlwt # не убирать!
5
from MyLogger import MyLogger
6
from MyConfig import MyConfig
7
from MainConsolidator import MainConsolidator
8
from OraWorker import OraWorker
9
import sys
10
###########################
11
from handlers2.strips_t2 import handler
12
###########################
13

14
check:bool = True
15
module:str = handler.module_name()
16
cur_path = os.path.dirname(os.path.realpath(__file__))
17
conf = f"{cur_path}\\consolidation.json"
18
logger = MyLogger(name="debug",log_file="debug_single.log",outStream=sys.stdout,mode="w")
19
cfg = MyConfig(conf)
20
hlist:list = cfg.get("handlers",None)
21
# hdict:dict = cfg.get("level2 handlers",None)
22
hdict={}
23
for item in hlist:
24
    hdict[item["key"]]=item["module"]
25
h = handler()
26
cc = h.get_compiled()
27

28
ora = OraWorker("manage_dw","ufyjwhb","172.17.80.116/scpora",".\\ora")
29

30
def handler_cc(rec:pd.Series,consolidator:MainConsolidator)->pd.Series:
31
    try:
32
        result:pd.Series={"f1":0}
33
        module_name=f"__{hdict[rec['Производство2']]}__"
34
        logger.info(f"module {module_name}")
35
        namespace={"consolidator":consolidator , "record":rec, "result":result,"__name__":module_name}
36
        exec(cc,namespace)
37
        return namespace["result"]
38
    except Exception as exp: 
39
        logger.error("handler2 error",exc_info=True)
40

41
def check_handler(rec:pd.Series)->pd.Series:
42
    check = ora.product_check(str(rec["Продукт УП"]),str(rec["ID в SAP ERP VMZ"]))
43
    # rec["exists"] = ora.product_exists(str(rec["Продукт УП"]))
44
    # rec["ok"]=rec["Продукт УП"]==rec["Название продукта УП"]
45
    rec["ID в SAP ERP VMZ"]=str(rec["ID в SAP ERP VMZ"])
46
    rec["Есть в УП"] = check[1]
47
    rec["Уже укрупнено"] = check[2]
48
    rec["Уже укрупнено в"] = check[0]
49
    print(check)
50
    return rec
51

52
if __name__=="__main__":
53
    try:
54
        df = pd.read_excel(f"{cur_path}\\output\\input_data.xlsx",sheet_name="Sheet1")
55
        logger.info("input data loaded")
56
        consolidator = MainConsolidator(f"{cur_path}\\debug_single.log",logStream=sys.stdout)
57
        consolidator.load_guids_x(".\\guids")
58
        cols=df.columns.to_list() #+["Продукт УП","error","Время укрупнения"]
59
        df1 = h.debug_handle(df[df["Производство2"]==module],consolidator,module)
60
        logger.info("handler applied")
61
        df1[cols].to_excel(f"{cur_path}\\output\\single_debug.xlsx",index=False)
62
        # df1[cols].to_excel(f"{cur_path}\\output\\single_debug2.xls",index=False,engine="xlwt")
63
        # df2=df[df["Производство2"]==module].apply(lambda row: handler_cc(row,consolidator),axis=1)
64
        # df2[cols].to_excel(f"{cur_path}\\output\\single_debug_cc.xlsx",index=False) 
65
        # logger.info("cc handler applied")
66

67
        if check:
68
            # check_df = pd.read_excel(f"{cur_path}\\misc\\check_SAP.xlsx")[["Код продукта SAP","Полное название продукта SAP","Название продукта УП"]]
69
            # logger.info("check data loaded")
70
            # df3= df1[["ID в SAP ERP VMZ","Продукт УП"]]
71
            # df_checked = df3.merge(check_df,how="left",left_on="ID в SAP ERP VMZ",right_on="Код продукта SAP")
72
            # df_checked = df_checked.apply(check_handler,axis=1)
73
            df3= df1[["ID в SAP ERP VMZ","Полное наименование материала","Вид материала в SAP ERP","Продукт УП"]]
74
            df_checked = df3.apply(check_handler,axis=1)
75
            df_checked.to_excel(f"{cur_path}\\output\\checked.xls",index=False,engine="xlwt")
76
            logger.info("checked")
77
            ora.close()
78
    except:
79
        logger.error("error",exc_info=True)
80

81

82

83

84

85

86

87

88

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.