天天看點

B8ERP系統服務台資料批量導入的操作步驟

自來水公司在使用同創B8ERP系統時,往往會遇到一些操作上的疑問。下面就給大家簡單介紹一下B8ERP系統服務台資料批量導入的操作步驟:

一、把資料導出到EXECL,然後将EXECL的資料導入到資料庫,對資料進行轉換處理,因為很多資料(公司名稱、受理單的狀态描述、日期)都不統一,都需要把資料調整好,然後再導出。(這裡例子用的是Navicat連接配接pgsql的方式做的操作步驟)

用Navicat導入execl的資料是有技巧的,如果某個字段的長度特别的長,導入的時候一定要設定字元的長度。如下操作步驟:

B8ERP系統服務台資料批量導入的操作步驟
B8ERP系統服務台資料批量導入的操作步驟
B8ERP系統服務台資料批量導入的操作步驟
B8ERP系統服務台資料批量導入的操作步驟
B8ERP系統服務台資料批量導入的操作步驟

二、将整理好的EXECL表格資料導入到導資料的功能子產品。受理單資料的狀态“已完成”和“未完成“的需要分開兩個execl資料進行導入,因為“未完成“的受理單是沒有“關閉日期”的,是以“關閉日期”的這個資料列不需要導入。導入“已完成“狀态的資料,“工時表說明“不能為空。

B8ERP系統服務台資料批量導入的操作步驟
B8ERP系統服務台資料批量導入的操作步驟
B8ERP系統服務台資料批量導入的操作步驟
B8ERP系統服務台資料批量導入的操作步驟

三、導入完後,進入導清單的頁面,随便點選一條資料,打開明細頁面。Number可以輸入當次導入的條數,伺服器性能比較好的時候,最多可以導入2000條件,性能不好的時候隻能導入200條。

B8ERP系統服務台資料批量導入的操作步驟

四、導入完的資料,會自動出現在服務台。

導入的附件格式如下:

B8ERP系統服務台資料批量導入的操作步驟

五、導入資料的代碼如下:

# -*- 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 '導入成功'           
上一篇: Log4j文檔

繼續閱讀