bugfix
This commit is contained in:
@@ -1023,10 +1023,10 @@ class DataProcessor:
|
|||||||
|
|
||||||
self.logger.info(f"Re-Evaluierung abgeschlossen. {processed_count_actual} Zeilen verarbeitet.")
|
self.logger.info(f"Re-Evaluierung abgeschlossen. {processed_count_actual} Zeilen verarbeitet.")
|
||||||
|
|
||||||
def process_fsm_pitch_generation(self, start_sheet_row=None, end_sheet_row=None, limit=None):
|
def process_fsm_pitch(self, start_sheet_row=None, end_sheet_row=None, limit=None):
|
||||||
"""
|
"""
|
||||||
Generiert FSM-Pitches für alle Zeilen, bei denen dieser fehlt, aber die
|
Generiert FSM-Pitches für alle Zeilen, bei denen der FSM Pitch Timestamp fehlt,
|
||||||
notwendigen Daten vorhanden sind.
|
aber die notwendigen Daten vorhanden sind.
|
||||||
"""
|
"""
|
||||||
self.logger.info(f"Starte Modus 'fsm_pitch'. Bereich: {start_sheet_row or 'Start'}-{end_sheet_row or 'Ende'}, Limit: {limit or 'Unbegrenzt'}")
|
self.logger.info(f"Starte Modus 'fsm_pitch'. Bereich: {start_sheet_row or 'Start'}-{end_sheet_row or 'Ende'}, Limit: {limit or 'Unbegrenzt'}")
|
||||||
|
|
||||||
@@ -1048,10 +1048,10 @@ class DataProcessor:
|
|||||||
break
|
break
|
||||||
|
|
||||||
row_data = all_data[i]
|
row_data = all_data[i]
|
||||||
fsm_pitch = self._get_cell_value_safe(row_data, "FSM Pitch").strip()
|
# NEUE PRÜFUNG: Nur Zeilen ohne Timestamp verarbeiten
|
||||||
|
timestamp = self._get_cell_value_safe(row_data, "FSM Pitch Timestamp").strip()
|
||||||
|
|
||||||
# Bedingung: Pitch fehlt, aber Name und Branche sind vorhanden
|
if not timestamp:
|
||||||
if not fsm_pitch:
|
|
||||||
company_name = self._get_cell_value_safe(row_data, "CRM Name").strip()
|
company_name = self._get_cell_value_safe(row_data, "CRM Name").strip()
|
||||||
branche = self._get_cell_value_safe(row_data, "Chat Vorschlag Branche").strip() or self._get_cell_value_safe(row_data, "CRM Branche").strip()
|
branche = self._get_cell_value_safe(row_data, "Chat Vorschlag Branche").strip() or self._get_cell_value_safe(row_data, "CRM Branche").strip()
|
||||||
|
|
||||||
@@ -1066,6 +1066,7 @@ class DataProcessor:
|
|||||||
|
|
||||||
all_sheet_updates = []
|
all_sheet_updates = []
|
||||||
processed_count = 0
|
processed_count = 0
|
||||||
|
now_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
row_num = task['row_num']
|
row_num = task['row_num']
|
||||||
@@ -1074,7 +1075,7 @@ class DataProcessor:
|
|||||||
self.logger.debug(f"Verarbeite FSM-Pitch für Zeile {row_num}...")
|
self.logger.debug(f"Verarbeite FSM-Pitch für Zeile {row_num}...")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Extrahiere alle notwendigen Daten für den Pitch
|
# ... (Logik zur Extraktion der Daten für den Pitch bleibt gleich) ...
|
||||||
company_name = self._get_cell_value_safe(row_data, "CRM Name")
|
company_name = self._get_cell_value_safe(row_data, "CRM Name")
|
||||||
branche = self._get_cell_value_safe(row_data, "Chat Vorschlag Branche") or self._get_cell_value_safe(row_data, "CRM Branche")
|
branche = self._get_cell_value_safe(row_data, "Chat Vorschlag Branche") or self._get_cell_value_safe(row_data, "CRM Branche")
|
||||||
website_summary = self._get_cell_value_safe(row_data, "Website Zusammenfassung")
|
website_summary = self._get_cell_value_safe(row_data, "Website Zusammenfassung")
|
||||||
@@ -1086,23 +1087,32 @@ class DataProcessor:
|
|||||||
company_name, branche, website_summary, wiki_absatz, final_ma_val, crm_techniker_val
|
company_name, branche, website_summary, wiki_absatz, final_ma_val, crm_techniker_val
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Update für den Pitch
|
||||||
all_sheet_updates.append({
|
all_sheet_updates.append({
|
||||||
'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["FSM Pitch"] + 1)}{row_num}',
|
'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["FSM Pitch"] + 1)}{row_num}',
|
||||||
'values': [[fsm_pitch_text]]
|
'values': [[fsm_pitch_text]]
|
||||||
})
|
})
|
||||||
processed_count += 1
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"FEHLER bei FSM-Pitch-Generierung für Zeile {row_num}: {e}")
|
self.logger.error(f"FEHLER bei FSM-Pitch-Generierung für Zeile {row_num}: {e}")
|
||||||
|
# Update für den Pitch mit Fehlermeldung
|
||||||
all_sheet_updates.append({
|
all_sheet_updates.append({
|
||||||
'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["FSM Pitch"] + 1)}{row_num}',
|
'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["FSM Pitch"] + 1)}{row_num}',
|
||||||
'values': [['k.A. (Fehler bei Generierung)']]
|
'values': [['k.A. (Fehler bei Generierung)']]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# IMMER den Timestamp setzen, um eine erneute Verarbeitung zu verhindern
|
||||||
|
all_sheet_updates.append({
|
||||||
|
'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["FSM Pitch Timestamp"] + 1)}{row_num}',
|
||||||
|
'values': [[now_timestamp]]
|
||||||
|
})
|
||||||
|
processed_count += 1
|
||||||
|
|
||||||
if all_sheet_updates:
|
if all_sheet_updates:
|
||||||
self.logger.info(f"Sende Batch-Update für {processed_count} generierte FSM-Pitches...")
|
self.logger.info(f"Sende Batch-Update für {processed_count} generierte FSM-Pitches und Timestamps...")
|
||||||
self.sheet_handler.batch_update_cells(all_sheet_updates)
|
self.sheet_handler.batch_update_cells(all_sheet_updates)
|
||||||
|
|
||||||
self.logger.info(f"FSM-Pitch-Generierung abgeschlossen. {processed_count} Pitches erstellt.")
|
self.logger.info(f"FSM-Pitch-Generierung abgeschlossen. {processed_count} Zeilen bearbeitet.")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user