!10179 添加功能

Merge pull request !10179 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2026-03-24 12:00:24 +00:00
committed by Gitee
@@ -11,7 +11,7 @@ class PropertyStatementsWizard(models.Model):
_name = 'property.statements.wizard'
_description = '银行流水向导弹窗'
selection_bank = fields.Selection([('js', '建设银行'), ('gs', '工商银行'), ('sh', '农商'), ('ms', '民生'), ('zc', '广州银行(中城)'), ('dj', '农商行(东进)'), ('xy', '工商银行(兴源)')], string="选择银行")
selection_bank = fields.Selection([('js', '建设银行'), ('gs', '工商银行'), ('sh', '农商'), ('ms', '民生'), ('zc', '广州银行(中城)'), ('dj', '农商行(东进)')], string="选择银行")
excel_file = fields.Binary(string="上传Excel表")
excel_name = fields.Char(string="文件名")
@@ -40,20 +40,23 @@ class PropertyStatementsWizard(models.Model):
row = sh.row(rx)
self.property_bank_statements_dj_data(row, your_own_account)
else:
first_round = True
book = xlrd.open_workbook(file_contents=file_content)
sh = book.sheet_by_index(0)
for rx in range(1, sh.nrows):
row = sh.row(rx)
if self.selection_bank == 'gs':
if first_round:
first_round = False
continue
if self.selection_bank == 'js':
self.property_bank_statements_jh_data(row)
elif self.selection_bank == 'gs':
self.property_bank_statements_gc_data(row)
elif self.selection_bank == 'sh':
self.property_bank_statements_sh_data(row)
elif self.selection_bank == 'ms':
self.property_bank_statements_ms_data(row)
elif self.selection_bank == 'xy':
self.property_bank_statements_xy_data(row)
elif self.selection_bank == 'gs':
self.property_bank_statements_gc_data(row)
return {
'type': 'ir.actions.client',
@@ -66,43 +69,6 @@ class PropertyStatementsWizard(models.Model):
}
}
def property_bank_statements_gc_data(self, row):
if row[0].value:
start_time = datetime.strptime(row[0].value, '%Y-%m-%d %H:%M:%S')
else:
start_time = None
name = row[4].value
name_account = row[1].value
remake = row[2].value
original_amount = row[3].value
your_own_account = row[6].value
cleaned_amount = original_amount.replace(',', '')
float_amount = float(cleaned_amount)
your_own_unit = self.classify_by_last_four(your_own_account)
if your_own_unit in ['天河投资', '天投城建']:
company_id = self.env['res.company'].search([('name', '=', '集团本部')], limit=1)
elif your_own_unit in ['天河物管']:
company_id = self.env['res.company'].search([('name', '=', '天河物管')], limit=1)
elif your_own_unit in ['天河粮储']:
company_id = self.env['res.company'].search([('name', '=', '天河粮储')], limit=1)
sequence_number = row[5].value
bank_data = {
'name': name,
'your_own_unit': your_own_unit,
'original_amount': float_amount,
'company_id': company_id.id,
'sequence_number': sequence_number,
'start_time': start_time - timedelta(hours=8),
'your_own_account': your_own_account,
'name_account': name_account,
'remake': remake,
}
existing_record = self.env['property.bank.statements'].search(
[('sequence_number', '=', sequence_number)], limit=1
)
if not existing_record:
self.env['property.bank.statements'].create(bank_data)
def property_bank_statements_jh_data(self, row):
your_own_account = row[0].value
if row[1].value:
@@ -378,7 +344,7 @@ class PropertyStatementsWizard(models.Model):
existing_record.write(bank_data)
def property_bank_statements_xy_data(self, row):
def property_bank_statements_gc_data(self, row):
"""工商银行(兴苑)解析:数据从第2行开始,列结构(共34列):
0:交易时间, 1:对方单位, 2:摘要, 7:借贷标志, 8:发生额,
9:对方账号, 16:本方账号, 22:对方行名, 31:顺序号