B8ERP系统服务台数据批量导入的操作步骤发表时间:2023-02-10 16:37 自来水公司在使用同创B8ERP系统时,往往会遇到一些操作上的疑问。下面就给大家简单介绍一下B8ERP系统服务台数据批量导入的操作步骤: 一、把数据导出到EXECL,然后将EXECL的数据导入到数据库,对数据进行转换处理,因为很多数据(公司名称、受理单的状态描述、日期)都不统一,都需要把数据调整好,然后再导出。(这里例子用的是Navicat连接pgsql的方式做的操作步骤) 用Navicat导入execl的数据是有技巧的,如果某个字段的长度特别的长,导入的时候一定要设置字符的长度。如下操作步骤: ![]() ![]() ![]() ![]() 二、将整理好的EXECL表格数据导入到导数据的功能模块。受理单数据的状态“已完成”和“未完成“的需要分开两个execl数据进行导入,因为“未完成“的受理单是没有“关闭日期”的,所以“关闭日期”的这个数据列不需要导入。导入“已完成“状态的数据,“工时表说明“不能为空。 ![]() ![]() ![]() ![]() 三、导入完后,进入导列表的页面,随便点击一条数据,打开明细页面。Number可以输入当次导入的条数,服务器性能比较好的时候,最多可以导入2000条件,性能不好的时候只能导入200条。 ![]() 四、导入完的数据,会自动出现在服务台。 导入的附件格式如下: 五、导入数据的代码如下: # -*- coding: utf-8 -*- from odoo import models, fields, api import datetime from werkzeug import urls from io import BytesIO import base64
class fuwutai3(models.Model): _name = 'dsj.fuwutai3' _description = 'dsj.fuwutai3'
name = fields.Char(string='主题') team_id = fields.Char(string='服务台团队') partner_id = fields.Char(string='客户') user_id = fields.Char(string='分派给') project_id = fields.Char(string='项目') task_id = fields.Char(string='任务') ticket_type_id = fields.Char(string='工单类型') stage_id = fields.Char(string='阶段') description = fields.Char(string='说明') assign_date = fields.Datetime(string='首次分派日期') close_date = fields.Datetime(string='关闭日期') time_date = fields.Datetime(string='工时表/日期') employee_id = fields.Char(string='工时表/员工') time_name= fields.Char(string='工时表/说明') unit_amount= fields.Float(string='工时表/数量') account_id= fields.Char(string='工时表/分析账户') # create_uid= fields.Char(string='创建人') # create_date= fields.Datetime(string='创建时间') shoulidan_id= fields.Char(string='受理单id') number = fields.Integer(string='number',default=200) def piliangdaoru(self): ddsj=self.env['dsj.fuwutai3'].search([],limit=self.number) for record in ddsj: res_team_id= self.env['helpdesk.team'].search([('name', '=', record.team_id)], limit=1).id res_partner_id= self.env['res.partner'].search([('name', '=', record.partner_id)], limit=1).id res_user_id= self.env['res.users'].search([('name', '=', record.user_id)], limit=1).id res_project_id= self.env['project.project'].search([('name', '=', record.project_id)], limit=1).id res_task_id= self.env['project.task'].search([('name', '=', record.task_id)], limit=1).id res_ticket_type_id =self.env['helpdesk.ticket.type'].search([('name', '=', record.ticket_type_id)], limit=1).id res_stage_id= self.env['helpdesk.stage'].search([('name', '=', record.stage_id)], limit=1).id res_employee_id= self.env['hr.employee'].search([('name', '=', record.employee_id)], limit=1).id res_account_id= self.env['project.project'].search([('name', '=', record.account_id)], limit=1).id
vals = { 'name': record.name, 'team_id': res_team_id, 'partner_id': res_partner_id, 'user_id': res_user_id, 'project_id': res_project_id, 'task_id': res_task_id, 'ticket_type_id': res_ticket_type_id, 'stage_id': res_stage_id, 'description': record.description, 'assign_date': record.assign_date, 'close_date': record.close_date, 'partner_email': record.shoulidan_id } helpdesk_ticket_id = self.env['helpdesk.ticket'].sudo().create(vals) time_vals = { 'date': record.time_date, 'partner_id': res_partner_id, 'user_id': res_user_id, 'employee_id': res_employee_id, 'project_id': res_project_id, 'name': record.time_name, 'unit_amount': record.unit_amount, 'account_id': res_account_id, 'helpdesk_ticket_id':helpdesk_ticket_id.id } account_analytic_line_id = self.env['account.analytic.line'].sudo().create(time_vals) record.unlink() return '导入成功' 六、导入附件的代码如下: # -*- coding: utf-8 -*- from odoo import models, fields, api import datetime from werkzeug import urls from io import BytesIO import base64 import requests class fujian(models.Model): _name = 'dsj.fujian' _description = 'dsj.fujian' name = fields.Char(string='名称') partner_email = fields.Char(string='受理单id') filename = fields.Char(string='文件名') url = fields.Char(string='url') number = fields.Integer(string='number',default=200) def piliangdaoru(self): ddsj=self.env['dsj.fujian'].search([],limit=self.number) for record in ddsj: helpdesk_ticket_id =record.env['helpdesk.ticket'].search([('partner_email', '=', record.partner_email)],limit=1) response = requests.get(record.url) data = base64.b64encode(BytesIO(response.content).read()) vals = { 'name' : record.filename, 'datas_fname' : record.url, 'res_model' : 'helpdesk.ticket', 'type' : 'binary', 'datas' : data, 'res_id' : helpdesk_ticket_id, 'res_name' : record.partner_email } oa_attachment = self.env['ir.attachment'].sudo().create(vals) # print(oa_attachment) record.unlink() return '导入成功'
文章分类:
行业动态
|