瀏覽代碼

农信银行又添加了新行芙蓉支行

dongguoliang 1 月之前
父節點
當前提交
89c8d0952c
共有 4 個文件被更改,包括 14 次插入12 次删除
  1. 1 1
      gui.py
  2. 4 3
      journal_generator.py
  3. 2 2
      nongxin_parser.py
  4. 7 6
      parser_factory.py

+ 1 - 1
gui.py

@@ -37,7 +37,7 @@ class JournalGeneratorGUI:
         frame_bank.pack(fill=tk.X)
         ttk.Label(frame_bank, text="开户银行:").pack(side=tk.LEFT)
         bank_combo = ttk.Combobox(frame_bank, textvariable=self.bank_var, state="readonly")
-        bank_combo["values"] = ["建设银行", "中国银行", "农业银行", "微众银行", "农信银行"]
+        bank_combo["values"] = ["建设银行", "中国银行", "农业银行", "微众银行", "农信银行", "农信银行芙蓉支行"]
         bank_combo.pack(side=tk.LEFT, padx=5)
         
         frame_param = ttk.Frame(self.root, padding="10")

+ 4 - 3
journal_generator.py

@@ -39,7 +39,8 @@ class JournalGenerator:
                 "中国银行": "中国银行",
                 "农业银行": "农业银行",
                 "建设银行": "建设银行",
-                "农信银行": "小枧支行"
+                "农信银行": "小枧支行",
+                "农信银行芙蓉支行": "芙蓉支行"
             }
             
             bank_keyword = bank_keyword_mapping.get(bank_name, bank_name)
@@ -66,8 +67,8 @@ class JournalGenerator:
                 transaction_time = row["交易时间"]
                 opponent_name = str(row["对方户名"]).strip()
                 summary = str(row["摘要"]).strip()
-                income = pd.to_numeric(row["收入"], errors="coerce")
-                expense = pd.to_numeric(row["支出"], errors="coerce")
+                income = pd.to_numeric(str(row["收入"]).replace(',', '') if str(row["收入"]).strip() != '' else '0', errors="coerce")
+                expense = pd.to_numeric(str(row["支出"]).replace(',', '') if str(row["支出"]).strip() != '' else '0', errors="coerce")
                 balance = str(row["余额"]).strip()
                 
                 if pd.isna(income):

+ 2 - 2
nongxin_parser.py

@@ -27,8 +27,8 @@ class NongxinFlowParser(FlowParserBase):
                     
                     shouzhi_type = str(row[2]).strip()
                     
-                    income_amount = pd.to_numeric(row[3], errors='coerce')
-                    expense_amount = pd.to_numeric(row[4], errors='coerce')
+                    income_amount = pd.to_numeric(str(row[3]).replace(',', '') if not pd.isna(row[3]) else '0', errors='coerce')
+                    expense_amount = pd.to_numeric(str(row[4]).replace(',', '') if not pd.isna(row[4]) else '0', errors='coerce')
                     
                     if pd.isna(income_amount):
                         income_amount = 0

+ 7 - 6
parser_factory.py

@@ -10,12 +10,13 @@ class ParserFactory:
     
     def __init__(self):
         self.parsers = {
-            "建设银行": CCBFlowParser(),
-            "中国银行": BOCFlowParser(),
-            "农业银行": ABCFlowParser(),
-            "微众银行": WeChatFlowParser(),
-            "农信银行": NongxinFlowParser()
-        }
+                "建设银行": CCBFlowParser(),
+                "中国银行": BOCFlowParser(),
+                "农业银行": ABCFlowParser(),
+                "微众银行": WeChatFlowParser(),
+                "农信银行": NongxinFlowParser(),
+                "农信银行芙蓉支行": NongxinFlowParser()
+            }
     
     def get_parser(self, bank_name):
         """根据银行名称获取对应的解析器"""