consolidator
/
debugSingleHandler.py
79 строк · 3.7 Кб
1import os2from typing import Any3import pandas as pd4import pandas_xlwt # не убирать!5from MyLogger import MyLogger6from MyConfig import MyConfig7from MainConsolidator import MainConsolidator8from OraWorker import OraWorker9import sys10###########################
11from handlers2.strips_t2 import handler12###########################
13
14check:bool = True15module:str = handler.module_name()16cur_path = os.path.dirname(os.path.realpath(__file__))17conf = f"{cur_path}\\consolidation.json"18logger = MyLogger(name="debug",log_file="debug_single.log",outStream=sys.stdout,mode="w")19cfg = MyConfig(conf)20hlist:list = cfg.get("handlers",None)21# hdict:dict = cfg.get("level2 handlers",None)
22hdict={}23for item in hlist:24hdict[item["key"]]=item["module"]25h = handler()26cc = h.get_compiled()27
28ora = OraWorker("manage_dw","ufyjwhb","172.17.80.116/scpora",".\\ora")29
30def handler_cc(rec:pd.Series,consolidator:MainConsolidator)->pd.Series:31try:32result:pd.Series={"f1":0}33module_name=f"__{hdict[rec['Производство2']]}__"34logger.info(f"module {module_name}")35namespace={"consolidator":consolidator , "record":rec, "result":result,"__name__":module_name}36exec(cc,namespace)37return namespace["result"]38except Exception as exp:39logger.error("handler2 error",exc_info=True)40
41def check_handler(rec:pd.Series)->pd.Series:42check = ora.product_check(str(rec["Продукт УП"]),str(rec["ID в SAP ERP VMZ"]))43# rec["exists"] = ora.product_exists(str(rec["Продукт УП"]))44# rec["ok"]=rec["Продукт УП"]==rec["Название продукта УП"]45rec["ID в SAP ERP VMZ"]=str(rec["ID в SAP ERP VMZ"])46rec["Есть в УП"] = check[1]47rec["Уже укрупнено"] = check[2]48rec["Уже укрупнено в"] = check[0]49print(check)50return rec51
52if __name__=="__main__":53try:54df = pd.read_excel(f"{cur_path}\\output\\input_data.xlsx",sheet_name="Sheet1")55logger.info("input data loaded")56consolidator = MainConsolidator(f"{cur_path}\\debug_single.log",logStream=sys.stdout)57consolidator.load_guids_x(".\\guids")58cols=df.columns.to_list() #+["Продукт УП","error","Время укрупнения"]59df1 = h.debug_handle(df[df["Производство2"]==module],consolidator,module)60logger.info("handler applied")61df1[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
67if 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)73df3= df1[["ID в SAP ERP VMZ","Полное наименование материала","Вид материала в SAP ERP","Продукт УП"]]74df_checked = df3.apply(check_handler,axis=1)75df_checked.to_excel(f"{cur_path}\\output\\checked.xls",index=False,engine="xlwt")76logger.info("checked")77ora.close()78except:79logger.error("error",exc_info=True)80
81
82
83
84
85
86
87
88