consolidator
58 строк · 3.0 Кб
1import os2import sys3import pandas as pd4import datetime5from MainConsolidator import MainConsolidator6
7class handler(object):8@staticmethod9def module_name():10return 'Труба обсадная ТЭСЦ-1'11@staticmethod12def handle(row:pd.Series,consolidator:MainConsolidator)->pd.Series:13product_up=None14try:15product = row["Первичный продукт"]16diametr = row["Диаметр, мм <Производство>"]17vm_code = row['Вид материала в SAP ERP'][:4]18steel_mark = row["Марка стали <Производство>"]19carving = row["Тип резьбы <Производство>"]20strength = consolidator.strength_by_steel(steel_mark) if pd.isna(row["Класс прочности <Производство>"]) else row["Класс прочности <Производство>"]21pipe_type = consolidator.scalar_in_guid("Виды материалов ТЭСЦ-1",f"`Код`=='{vm_code}'","Тип трубы")22carving_led= "БР" if pd.isna(carving) else consolidator.scalar_in_guid("Резьба",f"`Исх резьба`=='{carving}'","Результ Резьба")23diametr_led = consolidator.nearest_in_guid("Параметры по Продукту ТЭСЦ-5",f"`Производство`=='Труба обсадная ТЭСЦ-1'","Доп параметр1",diametr,"Доп параметр1")24diametr_led_s = str(diametr_led).replace(".0","")25strength_group = consolidator.scalar_in_guid("Группа по классу прочности для труб ТЭСЦ-1",f"`Марка стали`=='{strength}'","Группа прочности")26# if pd.isna(strength_group):27print(f"{diametr_led_s};{strength_group};{carving_led}")28product_up=f"{product}{diametr_led_s} ГО {strength_group} {carving_led}"29row["error"] = pd.NA30except Exception as exp:31row["error"] = f"{exp}"32finally:33row["Продукт УП"]=product_up34row["Время укрупнения"]=datetime.datetime.now()35return row36
37def debug_handle(self,inputDf:pd.DataFrame,consolidator:MainConsolidator,module:str=None)->pd.DataFrame:38try:39if module is None: return inputDf.apply(lambda row: self.handle(row,consolidator), axis=1)40else: return inputDf[inputDf["Производство2"]==module].apply(lambda row: self.handle(row,consolidator), axis=1)41except: raise42
43def get_compiled(self):44code:str=f"print('{__file__}')"45try:46with open(__file__,encoding="utf-8",mode="r") as f:47code=f.read()48except Exception as exp:49code=f"print('error: {exp}')"50finally:51cc = compile(code,"","exec")52return cc53
54if __name__=="__pipe_casing_t1__":55consolidator:MainConsolidator56record:pd.Series57result:pd.Series58result = handler.handle(record,consolidator)59
60