Baum Zeigt manipulierte Daten in orange an. nicht benutzte Methoden von caditem auskommentiert. 0

Delete
Document Number	-
Revision	-
Project Name	-
Teamcenter Item Type	-
Part Type	-
TC_ImportTime	-
Last Saved Version	-
Subject	-
Category	-
Keywords	-
Teilenummer	400102274
Title	Gefällebogen 30° beschnitten
Bezeichnung4
Author	m.stangl
StartRevision	A
Aus Halbzeug
Fertigungsart	Einzelteil
Mengeneinheit	Stck
Halbzeug
TOS-Gruppe	Schönenberger Produkt
TOS_Schoenenberger_Produkt	ILS IntraLogistikSystem
TOS_ILS	ILS 2.0
TOS_ILS_2	Gefälle
Dispogruppe	Förderer
Dispolaufgruppe	Intra Logistic System + alt-HFS
ZusaetzlicheInformationen
	0
Delete
Document Number	-
Revision	-
Project Name	-
Teamcenter Item Type	-
Part Type	-
TC_ImportTime	-
Last Saved Version	-
Subject	-
Category	-
Keywords	-
Teilenummer	400102274
Title	Gefällebogen 30° beschnitten
Bezeichnung4
Author	m.stangl
StartRevision	A
Aus Halbzeug
Fertigungsart	Einzelteil
Mengeneinheit	Stck
Halbzeug
TOS-Gruppe	Schönenberger Produkt
TOS_Schoenenberger_Produkt	ILS IntraLogistikSystem
TOS_ILS	ILS 2.0
TOS_ILS_2	Gefälle
Dispogruppe	Förderer
Dispolaufgruppe	Intra Logistic System + alt-HFS
ZusaetzlicheInformationen
  Export
This commit is contained in:
2024-03-18 13:50:40 +01:00
parent 1eb42b2366
commit 198a9a1d62
4 changed files with 77 additions and 45 deletions
-1
View File
@@ -9,7 +9,6 @@ import argparse
import os import os
class Environment: class Environment:
def __init__(self): def __init__(self):
+44 -22
View File
@@ -274,10 +274,10 @@ class CadItem(DataModel):
def set_red_ids(self, red_ids): def set_red_ids(self, red_ids):
""" these ids are not yet known by the PDM""" """ these ids are not yet known by the PDM"""
self._red_ids = red_ids self._red_ids = red_ids
def get_red_ids(self): def get_red_ids(self):
return self._red_ids return self._red_ids
# Methoden um die Verwendbarkeit einzelner Schalter auszugrauen # Methoden um die Verwendbarkeit einzelner Schalter auszugrauen
def set_read_only_dict(self, data:dict): def set_read_only_dict(self, data:dict):
for k,v in data: for k,v in data:
@@ -293,21 +293,21 @@ class CadItem(DataModel):
return self._read_only_items return self._read_only_items
# Daten zum Impfen merken # Daten zum Impfen merken
def set_data_dict(self, data:dict): # def set_data_dict(self, data:dict):
for k,v in data: # for k,v in data:
self.set_data(k,v) # self.set_data(k,v)
def set_data(self, key, val): # def set_data(self, key, val):
if key not in self.data_keys: # if key not in self.data_keys:
raise Exception("this data can not be set "+ key) # raise Exception("this data can not be set "+ key)
else: # else:
self._data[key] = val # self._data[key] = val
def get_data(self, key): # def get_data(self, key):
""" gibt ein Datenstück zurück """ # """ gibt ein Datenstück zurück """
return self._data[key] # return self._data[key]
def get_all_data(self): # def get_all_data(self):
""" gibt alle enthaltenen Daten zurück """ # """ gibt alle enthaltenen Daten zurück """
return self._data # return self._data
# Daten die in der GUI gespeichert werden sollen # Daten die in der GUI gespeichert werden sollen
def set_gui_dict(self, data:dict): def set_gui_dict(self, data:dict):
@@ -846,13 +846,34 @@ class CadItem(DataModel):
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool\ # New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool\
# ELSE: # ELSE:
# New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool # New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool
zielpfad = self._config.Pfade.get('Zielpfade', datenbank ) zielpfad = self._controller.get_config().Pfade.get('Zielpfade', datenbank )
username = os.environ.get("USERNAME") if os.path.exists(zielpfad):
userpfad = os.path.join(zielpfad, username) # nur den Usernamen dazu bauen, wenn auch der konfigurierte Pfad existiert.
# Wenn User, der migriert, noch keinen Ordner im Ziel besitzt, username = os.environ.get("USERNAME")
# soll dieser automatisch beim Klick auf "Migrieren" angelegt werden. userpfad = os.path.join(zielpfad, username)
if not os.path.exists(userpfad): # Wenn User, der migriert, noch keinen Ordner im Ziel besitzt,
os.mkdir(userpfad) # soll dieser automatisch beim Klick auf "Migrieren" angelegt werden.
if not os.path.exists(userpfad):
os.mkdir(userpfad)
current_id = self.get_current_item_id()
target_path = os.path.join(self._controller.get_env('out'), str(current_id) + '.xlsx')
# cms = [ "Author", "Teilenummer", "StartRevision",
# "Bezeichnung1", "Bezeichnung2", "Bezeichnung4", "KategorieNE",
# "BeschaffungsartNE", "TOS-Gruppe_ERP", "Dispogruppe",
# "Dispolaufgruppe", "WerkstofftypNE", "WerkstoffNE",
# "Oberflaechenbehandlung", "Farbe", "KalkulationsartNE",
# "RuestcodeAusw", "Fertigungsart", "Allgemeintoleranz",
# "HalbzeugInternAngabe", "Halbzeug", "HalbzeugOhneSaegeliste",
# "EinheitNE", "FOS-GruppeNE", "Hersteller", "HerstellerTeilenummer",
# "Serien-Status", "Kantennorm", "Oberflaechennorm", "Massnorm",
# "Tolerierungsnorm","Änderungsbeschreibung",
# "Freigabevermerk", "ZusaetzlicheInformationen"]
df = pd.DataFrame.from_dict(data, orient='index')
df = (df.T)
df.to_excel(target_path, index=True)
def tos_to_dict(self, tosgruppe, num2refId, num2child): def tos_to_dict(self, tosgruppe, num2refId, num2child):
tosstr = str(tosgruppe) tosstr = str(tosgruppe)
@@ -1032,6 +1053,7 @@ class CadItem(DataModel):
zusatzinfos_auto_text = self.get_gui_data("zusatzinfos_auto_text") zusatzinfos_auto_text = self.get_gui_data("zusatzinfos_auto_text")
zusatzinfos_bendef_text = self.get_gui_data("zusatzinfos_bendef_text") zusatzinfos_bendef_text = self.get_gui_data("zusatzinfos_bendef_text")
data["ZusaetzlicheInformationen"] = zusatzinfos_auto_text + zusatzinfos_bendef_text data["ZusaetzlicheInformationen"] = zusatzinfos_auto_text + zusatzinfos_bendef_text
return data
+22 -14
View File
@@ -90,6 +90,14 @@ class Controller(Observer):
def get_config(self): def get_config(self):
return self._config return self._config
def get_orange_ids(self, red_ids):
"""just check which files have already been worked with, so data has been added"""
orange = dict()
work = self.get_env('out')
for red in red_ids:
if os.path.exists(os.path.join(work, red +'.json')):
orange[red] = True
return orange
def get_csv_files_of_asm(self, asmid, uselocal): def get_csv_files_of_asm(self, asmid, uselocal):
""" sich die Einzelteile als .csv und den Aufbau des Assemblies als .json holen """ """ sich die Einzelteile als .csv und den Aufbau des Assemblies als .json holen """
@@ -156,6 +164,7 @@ class Controller(Observer):
"""lädt alle nötigen Daten für diese ID """ """lädt alle nötigen Daten für diese ID """
# falls eine .json Datei davon im Work Ordner existiert, dann diese zuerst versuchen ins Modell zu laden # falls eine .json Datei davon im Work Ordner existiert, dann diese zuerst versuchen ins Modell zu laden
self._view.clear_rightframes() self._view.clear_rightframes()
self._model.clear()
isok = self._model.from_json_file(self.get_env("out"), cid) isok = self._model.from_json_file(self.get_env("out"), cid)
if isok == False: if isok == False:
# ansonsten die .csv Datei mit den SIVAS Infos aus data holen # ansonsten die .csv Datei mit den SIVAS Infos aus data holen
@@ -164,7 +173,6 @@ class Controller(Observer):
print("no file found "+ cid) print("no file found "+ cid)
else: else:
# und diese in der Gui setzen # und diese in der Gui setzen
self._model.clear()
set_data = self._model.csv2guidata(loaded) set_data = self._model.csv2guidata(loaded)
self.set_gui_dict(set_data) self.set_gui_dict(set_data)
self._model.set_gui_defaults() self._model.set_gui_defaults()
@@ -180,19 +188,19 @@ class Controller(Observer):
def get_parent_children(self): def get_parent_children(self):
return self._model.get_parent_children() return self._model.get_parent_children()
# merkt sich die reinen Daten zum Impfen # # merkt sich die reinen Daten zum Impfen
def set_data_dict(self, data:dict): # def set_data_dict(self, data:dict):
"""merken der Daten zum Impfen""" # """merken der Daten zum Impfen"""
for k,v in data: # for k,v in data:
self.set_data(k,v) # self.set_data(k,v)
def set_data(self, key, value): # def set_data(self, key, value):
"""merken der Daten zum Impfen""" # """merken der Daten zum Impfen"""
self._model.set_data(key, value) # self._model.set_data(key, value)
def get_data(self, key): # def get_data(self, key):
return self._model.get_data(key) # return self._model.get_data(key)
def get_all_data(self): # def get_all_data(self):
return self._model.get_all_data() # return self._model.get_all_data()
# merkt sich die Nutzereingaben, bzw. Daten für die GUI # merkt sich die Nutzereingaben, bzw. Daten für die GUI
def set_gui_dict(self, data:dict): def set_gui_dict(self, data:dict):
@@ -284,7 +292,7 @@ class Controller(Observer):
ok = self._model.check_content() ok = self._model.check_content()
if ok == True: if ok == True:
data = self._model.create_migration_data() data = self._model.create_migration_data()
#self._model.create_migration_file(data) self._model.create_migration_file(data)
def zuruecksetzen(self): def zuruecksetzen(self):
cid = self.get_current_item_id() cid = self.get_current_item_id()
+11 -8
View File
@@ -73,9 +73,9 @@ class TreeView():
def set_controller(self, controller): def set_controller(self, controller):
self._controller = controller self._controller = controller
def refresh(self, parent_children_mapping, red_ids): def refresh(self, parent_children_mapping, red_ids, orange_ids):
self.clear() self.clear()
self.create(parent_children_mapping, red_ids) self.create(parent_children_mapping, red_ids, orange_ids)
def clear(self): def clear(self):
for c in self.tree.get_children(): for c in self.tree.get_children():
@@ -88,13 +88,14 @@ class TreeView():
return True return True
return False return False
def create(self, parent_children_mapping, red_ids): def create(self, parent_children_mapping, red_ids, orange_ids):
pool = dict() pool = dict()
for parent, children in parent_children_mapping.items(): for parent, children in parent_children_mapping.items():
# parent erzeugen, falls es diese nicht schon gibt (check der pool ids) # parent erzeugen, falls es diese nicht schon gibt (check der pool ids)
if parent not in pool: if parent not in pool:
if parent not in red_ids: rowtags = ('good') if parent not in red_ids: rowtags = ('good')
else: rowtags = ('missing') elif parent in orange_ids: rowtags = ('orange')
else: rowtags = ('missing')
parent_id = self.tree.insert('', tk.END, text=parent, tags=rowtags, open=True) parent_id = self.tree.insert('', tk.END, text=parent, tags=rowtags, open=True)
self.trid2sivasId[parent_id] = parent # merken für Doppelklick self.trid2sivasId[parent_id] = parent # merken für Doppelklick
@@ -103,8 +104,9 @@ class TreeView():
parent_id = pool[parent] parent_id = pool[parent]
for child in children: for child in children:
if child not in red_ids: rowtags = ('good') if child not in red_ids: rowtags = ('good')
else: rowtags = ('missing') elif child in orange_ids: rowtags = ('orange')
else: rowtags = ('missing')
if self._has_childs(child, parent_children_mapping) == True: if self._has_childs(child, parent_children_mapping) == True:
# wenn das Objekt ein Kind hat, könnte es bereits erzeugt worden sein # wenn das Objekt ein Kind hat, könnte es bereits erzeugt worden sein
@@ -131,7 +133,8 @@ class TreeView():
def data_from_model(self): def data_from_model(self):
parent_children_mapping = self._controller.get_parent_children() parent_children_mapping = self._controller.get_parent_children()
red_ids = self._controller.get_red_ids() red_ids = self._controller.get_red_ids()
self.refresh(parent_children_mapping, red_ids) orange_ids = self._controller.get_orange_ids(red_ids)
self.refresh(parent_children_mapping, red_ids, orange_ids)
def item_selected(self, event): def item_selected(self, event):
"""callback of TK if an item in the tree has been selected """callback of TK if an item in the tree has been selected