diff --git a/sf_manufacturing/views/mrp_production_addional_change.xml b/sf_manufacturing/views/mrp_production_addional_change.xml index b326f288..186ebc1c 100644 --- a/sf_manufacturing/views/mrp_production_addional_change.xml +++ b/sf_manufacturing/views/mrp_production_addional_change.xml @@ -28,6 +28,9 @@ + + + diff --git a/sf_plan/models/custom_plan.py b/sf_plan/models/custom_plan.py index 15af211a..064a1e20 100644 --- a/sf_plan/models/custom_plan.py +++ b/sf_plan/models/custom_plan.py @@ -180,9 +180,11 @@ class sf_production_plan(models.Model): print(workorder_time) self.date_planned_finished = self.date_planned_start + timedelta(minutes=workorder_time) self.state = 'done' + aa.schedule_state = '已排' else: - self.date_planned_finished = self.date_planned_start + timedelta(days=3) - self.state = 'done' + raise ValidationError("未找到工单") + # self.date_planned_finished = self.date_planned_start + timedelta(days=3) + # self.state = 'done' return { 'name': '排程甘特图', 'type': 'ir.actions.act_window', @@ -224,6 +226,8 @@ class sf_production_plan(models.Model): def cancel_production_schedule(self): self.date_planned_finished = False self.state = 'draft' + aa = self.env['mrp.production'].sudo().search([('name', '=', self.name)]) + aa.schedule_state = '未排' return self.date_planned_finished def liucheng_cs(self): diff --git a/sf_plan/views/view.xml b/sf_plan/views/view.xml index f7c22624..49a42c5f 100644 --- a/sf_plan/views/view.xml +++ b/sf_plan/views/view.xml @@ -31,7 +31,7 @@
-
@@ -1201,32 +1118,56 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py index 1c7c8e52..c33df86c 100644 --- a/sf_tool_management/wizard/wizard.py +++ b/sf_tool_management/wizard/wizard.py @@ -1,4 +1,5 @@ from odoo import fields, models, api +from odoo.exceptions import ValidationError class ToolChangeRequirementInformation(models.TransientModel): @@ -136,54 +137,196 @@ class FunctionalToolAssemblyOrder(models.TransientModel): # 功能刀具组装信息 # 整体式刀具型号 - mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', - 'sf_functional_tool_assembly_order_id', - string='整体式刀具型号', readonly=False, domain= - [('cutting_tool_type', '=', '整体式刀具')]) - integral_code = fields.Char('整体式刀具序列号', readonly=True, - compute='_compute_mrs_cutting_tool_integral_model_ids') - integral_name = fields.Char('整体式刀具名称', readonly=True) - sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌', readonly=True) + cutting_tool_integral_model_id = fields.Many2one('sf.tool.material.search', string='整体式刀具型号', readonly=False, + domain=[('cutting_tool_type', '=', '整体式刀具')]) + integral_code = fields.Char('整体式刀具序列号', readonly=True, compute='_compute_integral_code') + integral_name = fields.Char('整体式刀具名称', readonly=True, compute='_compute_integral_name') + sf_tool_brand_id_1 = fields.Many2one('sf.machine.brand', '整体式刀具品牌', readonly=True, + compute='_compute_sf_tool_brand_id_1') + + @api.depends('cutting_tool_integral_model_id') + def _compute_integral_code(self): + for record in self: + if record.cutting_tool_integral_model_id: + self.integral_code = record.cutting_tool_integral_model_id.code + else: + self.integral_code = None + + @api.depends('cutting_tool_integral_model_id') + def _compute_integral_name(self): + for record in self: + if record.cutting_tool_integral_model_id: + self.integral_name = record.cutting_tool_integral_model_id.name + else: + self.integral_name = None + + @api.depends('cutting_tool_integral_model_id') + def _compute_sf_tool_brand_id_1(self): + for record in self: + if record.cutting_tool_integral_model_id: + self.sf_tool_brand_id_1 = record.cutting_tool_integral_model_id.mrs_machine_brand_id.id + else: + self.sf_tool_brand_id_1 = None + # 刀片型号 - mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_tool_assembly_order_id', - string='刀片型号', readonly=False, domain= - [('cutting_tool_type', '=', '刀片')]) - blade_code = fields.Char('刀片序列号', readonly=True, compute='_compute_mrs_cutting_tool_blade_model_ids') - blade_name = fields.Char('刀片名称', readonly=True) - sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌', readonly=True) + cutting_tool_blade_model_id = fields.Many2one('sf.tool.material.search', string='刀片型号', readonly=False, + domain=[('cutting_tool_type', '=', '刀片')]) + blade_code = fields.Char('刀片序列号', readonly=True, compute='_compute_blade_code') + blade_name = fields.Char('刀片名称', readonly=True, compute='_compute_blade_name') + sf_tool_brand_id_2 = fields.Many2one('sf.machine.brand', '刀片品牌', readonly=True, + compute='_compute_sf_tool_brand_id_2') + + @api.depends('cutting_tool_blade_model_id') + def _compute_blade_code(self): + for record in self: + if record.cutting_tool_blade_model_id: + self.blade_code = self.cutting_tool_blade_model_id.code + else: + self.blade_code = None + + @api.depends('cutting_tool_blade_model_id') + def _compute_blade_name(self): + for record in self: + if record.cutting_tool_blade_model_id: + self.blade_name = self.cutting_tool_blade_model_id.name + else: + self.blade_name = None + + @api.depends('cutting_tool_blade_model_id') + def _compute_sf_tool_brand_id_2(self): + for record in self: + if record.cutting_tool_blade_model_id: + self.sf_tool_brand_id_2 = self.cutting_tool_blade_model_id.mrs_machine_brand_id.id + else: + self.sf_tool_brand_id_2 = None + # 刀杆型号 - mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model', - 'sf_functional_tool_assembly_order_id', - string='刀杆型号', readonly=False, domain= - [('cutting_tool_type', '=', '刀杆')]) - bar_code = fields.Char('刀杆序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterbar_model_ids') - bar_name = fields.Char('刀杆名称', readonly=True) - sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌', readonly=True) + cutting_tool_cutterbar_model_id = fields.Many2one('sf.tool.material.search', string='刀杆型号', readonly=False, + domain=[('cutting_tool_type', '=', '刀杆')]) + bar_code = fields.Char('刀杆序列号', readonly=True, compute='_compute_bar_code') + bar_name = fields.Char('刀杆名称', readonly=True, compute='_compute_bar_name') + sf_tool_brand_id_3 = fields.Many2one('sf.machine.brand', '刀杆品牌', readonly=True, + compute='_compute_sf_tool_brand_id_3') + + @api.depends('cutting_tool_cutterbar_model_id') + def _compute_bar_code(self): + for record in self: + if record.cutting_tool_cutterbar_model_id: + self.bar_code = self.cutting_tool_cutterbar_model_id.code + else: + self.bar_code = None + + @api.depends('cutting_tool_cutterbar_model_id') + def _compute_bar_name(self): + for record in self: + if record.cutting_tool_cutterbar_model_id: + self.bar_name = self.cutting_tool_cutterbar_model_id.name + else: + self.bar_name = None + + @api.depends('cutting_tool_cutterbar_model_id') + def _compute_sf_tool_brand_id_3(self): + for record in self: + if record.cutting_tool_cutterbar_model_id: + self.sf_tool_brand_id_3 = self.cutting_tool_cutterbar_model_id.mrs_machine_brand_id.id + else: + self.sf_tool_brand_id_3 = None + # 刀盘型号 - mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model', - 'sf_functional_tool_assembly_order_id', - string='刀盘型号', readonly=False, domain= - [('cutting_tool_type', '=', '刀盘')]) - pad_code = fields.Char('刀盘序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterpad_model_ids') - pad_name = fields.Char('刀盘名称', readonly=True) - sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌', readonly=True) + cutting_tool_cutterpad_model_id = fields.Many2one('sf.tool.material.search', string='刀盘型号', readonly=False, + domain=[('cutting_tool_type', '=', '刀盘')]) + pad_code = fields.Char('刀盘序列号', readonly=True, compute='_compute_pad_code') + pad_name = fields.Char('刀盘名称', readonly=True, compute='_compute_pad_name') + sf_tool_brand_id_4 = fields.Many2one('sf.machine.brand', '刀盘品牌', readonly=True, + compute='_compute_sf_tool_brand_id_4') + + @api.depends('cutting_tool_cutterpad_model_id') + def _compute_pad_code(self): + for record in self: + if record.cutting_tool_cutterpad_model_id: + self.pad_code = self.cutting_tool_cutterpad_model_id.code + else: + self.pad_code = None + + @api.depends('cutting_tool_cutterpad_model_id') + def _compute_pad_name(self): + for record in self: + if record.cutting_tool_cutterpad_model_id: + self.pad_name = self.cutting_tool_cutterpad_model_id.name + else: + self.pad_name = None + + @api.depends('cutting_tool_cutterpad_model_id') + def _compute_sf_tool_brand_id_4(self): + for record in self: + if record.cutting_tool_cutterpad_model_id: + self.sf_tool_brand_id_4 = self.cutting_tool_cutterpad_model_id.mrs_machine_brand_id.id + else: + self.sf_tool_brand_id_4 = None # 刀柄型号 - mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model', - 'sf_functional_tool_assembly_order_id', - string='刀柄型号', readonly=False, domain= - [('cutting_tool_type', '=', '刀柄')]) - handle_code = fields.Char('刀柄序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterhandle_model_ids') - handle_name = fields.Char('刀柄名称', readonly=True) - sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌', readonly=True) + cutting_tool_cutterhandle_model_id = fields.Many2one('sf.tool.material.search', string='刀柄型号', readonly=False, + domain=[('cutting_tool_type', '=', '刀柄')]) + handle_code = fields.Char('刀柄序列号', readonly=True, compute='_compute_handle_code') + handle_name = fields.Char('刀柄名称', readonly=True, compute='_compute_handle_name') + sf_tool_brand_id_5 = fields.Many2one('sf.machine.brand', '刀柄品牌', readonly=True, + compute='_compute_sf_tool_brand_id_5') + + @api.depends('cutting_tool_cutterhandle_model_id') + def _compute_handle_code(self): + for record in self: + if record.cutting_tool_cutterhandle_model_id: + self.handle_code = self.cutting_tool_cutterhandle_model_id.code + else: + self.handle_code = None + + @api.depends('cutting_tool_cutterhandle_model_id') + def _compute_handle_name(self): + for record in self: + if record.cutting_tool_cutterhandle_model_id: + self.handle_name = self.cutting_tool_cutterhandle_model_id.name + else: + self.handle_name = None + + @api.depends('cutting_tool_cutterhandle_model_id') + def _compute_sf_tool_brand_id_5(self): + for record in self: + if record.cutting_tool_cutterhandle_model_id: + self.sf_tool_brand_id_5 = self.cutting_tool_cutterhandle_model_id.mrs_machine_brand_id.id + else: + self.sf_tool_brand_id_5 = None + # 夹头型号 - mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model', - 'sf_functional_tool_assembly_order_id', - string='夹头型号', readonly=False, domain= - [('cutting_tool_type', '=', '夹头')]) - chuck_code = fields.Char('夹头序列号', readonly=True, compute='_compute_mrs_cutting_tool_cutterhead_model_ids') - chuck_name = fields.Char('夹头名称', readonly=True) - sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True) + cutting_tool_cutterhead_model_id = fields.Many2one('sf.tool.material.search', string='夹头型号', readonly=False, + domain=[('cutting_tool_type', '=', '夹头')]) + chuck_code = fields.Char('夹头序列号', readonly=True, compute='_compute_chuck_code') + chuck_name = fields.Char('夹头名称', readonly=True, compute='_compute_chuck_name') + sf_tool_brand_id_6 = fields.Many2one('sf.machine.brand', '夹头品牌', readonly=True, + compute='_compute_sf_tool_brand_id_6') + + @api.depends('cutting_tool_cutterhead_model_id') + def _compute_chuck_code(self): + for record in self: + if record.cutting_tool_cutterhead_model_id: + self.chuck_code = self.cutting_tool_cutterhead_model_id.code + else: + self.chuck_code = None + + @api.depends('cutting_tool_cutterhead_model_id') + def _compute_chuck_name(self): + for record in self: + if record.cutting_tool_cutterhead_model_id: + self.chuck_name = self.cutting_tool_cutterhead_model_id.name + else: + self.chuck_name = None + + @api.depends('cutting_tool_cutterhead_model_id') + def _compute_sf_tool_brand_id_6(self): + for record in self: + if record.cutting_tool_cutterhead_model_id: + self.sf_tool_brand_id_6 = self.cutting_tool_cutterhead_model_id.mrs_machine_brand_id.id + else: + self.sf_tool_brand_id_6 = None coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', default='1') tool_loading_length = fields.Char(string='装刀长') @@ -193,93 +336,33 @@ class FunctionalToolAssemblyOrder(models.TransientModel): cut_length = fields.Char(string='已切削长度') cut_number = fields.Char(string='已切削次数') - @api.depends('mrs_cutting_tool_integral_model_ids') - def _compute_mrs_cutting_tool_integral_model_ids(self): - if not self.mrs_cutting_tool_integral_model_ids: - self.integral_code = None - for val in self.mrs_cutting_tool_integral_model_ids: - if val: - self.integral_code = val.code - self.integral_name = val.name - self.sf_tool_brand_id_1 = val.brand_id.id - - @api.depends('mrs_cutting_tool_blade_model_ids') - def _compute_mrs_cutting_tool_blade_model_ids(self): - if not self.mrs_cutting_tool_blade_model_ids: - self.blade_code = None - for val in self.mrs_cutting_tool_blade_model_ids: - if val: - self.blade_code = val.code - self.blade_name = val.name - self.sf_tool_brand_id_2 = val.brand_id.id - - @api.depends('mrs_cutting_tool_cutterbar_model_ids') - def _compute_mrs_cutting_tool_cutterbar_model_ids(self): - if not self.mrs_cutting_tool_cutterbar_model_ids: - self.bar_code = None - for val in self.mrs_cutting_tool_cutterbar_model_ids: - if val: - self.bar_code = val.code - self.bar_name = val.name - self.sf_tool_brand_id_3 = val.brand_id.id - - @api.depends('mrs_cutting_tool_cutterpad_model_ids') - def _compute_mrs_cutting_tool_cutterpad_model_ids(self): - if not self.mrs_cutting_tool_cutterpad_model_ids: - self.pad_code = None - for val in self.mrs_cutting_tool_cutterpad_model_ids: - if val: - self.pad_code = val.code - self.pad_name = val.name - self.sf_tool_brand_id_4 = val.brand_id.id - - @api.depends('mrs_cutting_tool_cutterhandle_model_ids') - def _compute_mrs_cutting_tool_cutterhandle_model_ids(self): - if not self.mrs_cutting_tool_cutterhandle_model_ids: - self.handle_code = None - for val in self.mrs_cutting_tool_cutterhandle_model_ids: - if val: - self.handle_code = val.code - self.handle_name = val.name - self.sf_tool_brand_id_5 = val.brand_id.id - - @api.depends('mrs_cutting_tool_cutterhead_model_ids') - def _compute_mrs_cutting_tool_cutterhead_model_ids(self): - if not self.mrs_cutting_tool_cutterhead_model_ids: - self.chuck_code = None - for val in self.mrs_cutting_tool_cutterhead_model_ids: - if val: - self.chuck_code = val.code - self.chuck_name = val.name - self.sf_tool_brand_id_6 = val.brand_id.id - def functional_tool_assembly(self): """ 功能刀具组装 :return: """ desc_1 = { - 'mrs_cutting_tool_integral_model_ids': self.mrs_cutting_tool_integral_model_ids.ids, + 'cutting_tool_integral_model_id': self.cutting_tool_integral_model_id.id, 'integral_code': self.integral_code, 'integral_name': self.integral_name, 'sf_tool_brand_id_1': self.sf_tool_brand_id_1, - 'mrs_cutting_tool_blade_model_ids': self.mrs_cutting_tool_blade_model_ids.ids, + 'cutting_tool_blade_model_id': self.cutting_tool_blade_model_id.id, 'blade_code': self.blade_code, 'blade_name': self.blade_name, 'sf_tool_brand_id_2': self.sf_tool_brand_id_2, - 'mrs_cutting_tool_cutterbar_model_ids': self.mrs_cutting_tool_cutterbar_model_ids.ids, + 'cutting_tool_cutterbar_model_id': self.cutting_tool_cutterbar_model_id.id, 'bar_code': self.bar_code, 'bar_name': self.bar_name, 'sf_tool_brand_id_3': self.sf_tool_brand_id_3, - 'mrs_cutting_tool_cutterpad_model_ids': self.mrs_cutting_tool_cutterpad_model_ids.ids, + 'cutting_tool_cutterpad_model_id': self.cutting_tool_cutterpad_model_id.id, 'pad_code': self.pad_code, 'pad_name': self.pad_name, 'sf_tool_brand_id_4': self.sf_tool_brand_id_4, - 'mrs_cutting_tool_cutterhandle_model_ids': self.mrs_cutting_tool_cutterhandle_model_ids.ids, + 'cutting_tool_cutterhandle_model_id': self.cutting_tool_cutterhandle_model_id.id, 'handle_code': self.handle_code, 'handle_name': self.handle_name, 'sf_tool_brand_id_5': self.sf_tool_brand_id_5, - 'mrs_cutting_tool_cutterhead_model_ids': self.mrs_cutting_tool_cutterhead_model_ids.ids, + 'cutting_tool_cutterhead_model_id': self.cutting_tool_cutterhead_model_id.id, 'chuck_code': self.chuck_code, 'chuck_name': self.chuck_name, 'sf_tool_brand_id_6': self.sf_tool_brand_id_6, @@ -300,19 +383,20 @@ class FunctionalToolAssemblyOrder(models.TransientModel): ('assemble_status', '=', '0'), ]) - print('功能刀具组装id:',functional_tool_assembly.id) + # print('功能刀具组装id:', functional_tool_assembly.id) + # print('整体式物料信息:', self.cutting_tool_integral_model_id.id) # 封装功能刀具数据 desc_2 = { 'code': self.code, 'name': self.functional_tool_name_id.name, 'mrs_cutting_tool_type_id': self.functional_tool_type_id.id, - 'mrs_cutting_tool_integral_model_ids': self.mrs_cutting_tool_integral_model_ids.ids, - 'mrs_cutting_tool_blade_model_ids': self.mrs_cutting_tool_blade_model_ids.ids, - 'mrs_cutting_tool_cutterbar_model_ids': self.mrs_cutting_tool_cutterbar_model_ids.ids, - 'mrs_cutting_tool_cutterpad_model_ids': self.mrs_cutting_tool_cutterpad_model_ids.ids, - 'mrs_cutting_tool_cutterhandle_model_ids': self.mrs_cutting_tool_cutterhandle_model_ids.ids, - 'mrs_cutting_tool_cutterhead_model_ids': self.mrs_cutting_tool_cutterhead_model_ids.ids, + 'cutting_tool_integral_model_id': self.cutting_tool_integral_model_id.id, + 'cutting_tool_blade_model_id': self.cutting_tool_blade_model_id.id, + 'cutting_tool_cutterbar_model_id': self.cutting_tool_cutterbar_model_id.id, + 'cutting_tool_cutterpad_model_id': self.cutting_tool_cutterpad_model_id.id, + 'cutting_tool_cutterhandle_model_id': self.cutting_tool_cutterhandle_model_id.id, + 'cutting_tool_cutterhead_model_id': self.cutting_tool_cutterhead_model_id.id, 'diameter': self.functional_tool_diameter, 'tool_grade': None, 'machining_accuracy': None, @@ -326,50 +410,59 @@ class FunctionalToolAssemblyOrder(models.TransientModel): 'image': None, } if self.new_former == '0': - # 如果是新刀,则创建功能刀具列表、功能刀具预警、功能刀具实时分布 - record_1 = self.env['sf.functional.cutting.tool.entity'].create(desc_2) - self.env['sf.functional.tool.warning'].create({ - 'functional_cutting_tool_id': record_1.id, - 'functional_tool_assembly_id': functional_tool_assembly.id, - 'machine_table_name_id': self.machine_tool_name_id.id, - }) - self.env['sf.real.time.distribution.of.functional.tools'].create({ - 'functional_cutting_tool_id': record_1.id - }) - self.env['sf.inbound.and.outbound.records.of.functional.tools'].create({ - 'functional_cutting_tool_id': record_1.id - }) + record = self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]) + if record: + raise ValidationError("该编码的功能刀具已存在!") + else: + # 如果是新刀,则创建功能刀具列表、功能刀具预警、功能刀具实时分布、功能刀具出入库记录 + record_1 = self.env['sf.functional.cutting.tool.entity'].create(desc_2) + self.env['sf.functional.tool.warning'].create({ + 'functional_cutting_tool_id': record_1.id, + 'functional_tool_assembly_id': functional_tool_assembly.id, + 'machine_table_name_id': self.machine_tool_name_id.id, + }) + self.env['sf.real.time.distribution.of.functional.tools'].create({ + 'functional_cutting_tool_id': record_1.id + }) + self.env['sf.inbound.and.outbound.records.of.functional.tools'].create({ + 'functional_cutting_tool_id': record_1.id + }) else: record = self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]) - # 创建功能刀具缓存信息 - self.env['sf.functional.cutting.tool.entity.cache'].create({ - 'code': record.code, - 'name': record.name, - 'mrs_cutting_tool_type_id': record.mrs_cutting_tool_type_id.id, - 'mrs_cutting_tool_model_id': record.mrs_cutting_tool_model_id.id, - 'mrs_cutting_tool_integral_model_ids': record.mrs_cutting_tool_integral_model_ids.ids, - 'mrs_cutting_tool_blade_model_ids': record.mrs_cutting_tool_blade_model_ids.ids, - 'mrs_cutting_tool_cutterbar_model_ids': record.mrs_cutting_tool_cutterbar_model_ids.ids, - 'mrs_cutting_tool_cutterpad_model_ids': record.mrs_cutting_tool_cutterpad_model_ids.ids, - 'mrs_cutting_tool_cutterhandle_model_ids': record.mrs_cutting_tool_cutterhandle_model_ids.ids, - 'mrs_cutting_tool_cutterhead_model_ids': record.mrs_cutting_tool_cutterhead_model_ids.ids, - 'diameter': record.diameter, - 'tool_grade': record.tool_grade, - 'machining_accuracy': record.machining_accuracy, - 'tool_length': record.tool_length, - 'blade_number': record.blade_number, - 'integral_blade_length': record.integral_blade_length, - 'effective_blade_length': record.effective_blade_length, - 'max_life': record.max_life, - 'is_standard': record.is_standard, - 'applicable_range': record.applicable_range, - 'image': record.image, - }) - # 删除功能刀具列表信息 - self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).unlink() - # 创建功能刀具列表信息 - self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).create(desc_2) - + if not record: + raise ValidationError("该编码的功能刀具不存在!!!") + else: + # 创建功能刀具缓存信息 + record1 = self.env['sf.functional.cutting.tool.entity.cache'].create({ + 'code': record.code, + 'name': record.name, + 'mrs_cutting_tool_type_id': record.mrs_cutting_tool_type_id.id, + 'mrs_cutting_tool_model_id': record.mrs_cutting_tool_model_id.id, + 'cutting_tool_integral_model_id': record.cutting_tool_integral_model_id.id, + 'cutting_tool_blade_model_id': record.cutting_tool_blade_model_id.id, + 'cutting_tool_cutterbar_model_id': record.cutting_tool_cutterbar_model_id.id, + 'cutting_tool_cutterpad_model_id': record.cutting_tool_cutterpad_model_id.id, + 'cutting_tool_cutterhandle_model_id': record.cutting_tool_cutterhandle_model_id.id, + 'cutting_tool_cutterhead_model_id': record.cutting_tool_cutterhead_model_id.id, + 'diameter': record.diameter, + 'tool_grade': record.tool_grade, + 'machining_accuracy': record.machining_accuracy, + 'tool_length': record.tool_length, + 'blade_number': record.blade_number, + 'integral_blade_length': record.integral_blade_length, + 'effective_blade_length': record.effective_blade_length, + 'max_life': record.max_life, + 'is_standard': record.is_standard, + 'applicable_range': record.applicable_range, + 'image': record.image, + }) + # # 删除功能刀具列表信息 + # self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).unlink() + # # 创建功能刀具列表信息 + # self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).create(desc_2) + # 修改功能刀具列表信息 + self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).write(desc_2) + # 修改功能刀具组装信息 functional_tool_assembly.write(desc_1) # 关闭弹出窗口 return {'type': 'ir.actions.act_window_close'} diff --git a/sf_tool_management/wizard/wizard_view.xml b/sf_tool_management/wizard/wizard_view.xml index 2c7f1bed..7f4c175d 100644 --- a/sf_tool_management/wizard/wizard_view.xml +++ b/sf_tool_management/wizard/wizard_view.xml @@ -142,34 +142,48 @@ - - - - - - - - - + + + + + + + + + - + - - - - - - - - + + + + + + + +