From 03cc5b22817585c5fbee27c6c7fe6513153fe508 Mon Sep 17 00:00:00 2001 From: yuxianghui <1608204036@qq.com> Date: Thu, 3 Aug 2023 14:31:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=88=80=E5=85=B7=E7=BB=84=E8=A3=85=E5=AF=B9=E8=B1=A1=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E7=BB=84=E8=A3=85=E6=97=B6=E5=88=A0=E9=99=A4=E7=BB=84?= =?UTF-8?q?=E8=A3=85=E6=97=B6=E6=89=80=E5=88=9B=E5=BB=BA=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=88=80=E5=85=B7=E5=88=97=E8=A1=A8=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=8C=E5=88=A0=E9=99=A4=E4=BA=86=E5=8A=9F=E8=83=BD=E5=88=80?= =?UTF-8?q?=E5=85=B7=E7=BB=84=E8=A3=85=E5=AF=B9=E8=B1=A1=E7=BB=84=E8=A3=85?= =?UTF-8?q?=E6=97=B6=E5=88=9B=E5=BB=BA=E5=8A=9F=E8=83=BD=E5=88=80=E5=85=B7?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E3=80=81=E5=AE=9E=E6=97=B6=E5=88=86=E5=B8=83?= =?UTF-8?q?=E3=80=81=E5=87=BA=E5=85=A5=E5=BA=93=E8=AE=B0=E5=BD=95=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_tool_management/models/base.py | 38 +++++++++++-------- .../security/ir.model.access.csv | 6 +-- sf_tool_management/wizard/wizard.py | 27 +++++++------ sf_tool_management/wizard/wizard_view.xml | 3 +- 4 files changed, 42 insertions(+), 32 deletions(-) diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index 7f8b9323..33a489c3 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -591,6 +591,20 @@ class FunctionalToolAssembly(models.Model): 取消功能刀具组装 :return: """ + if self.new_former == '0': + # 如果是新刀,则删除功能刀具列表、 + self.env['sf.functional.cutting.tool.entity'].search([ + ('code', '=', self.functional_tool_code)]).unlink() + else: + pass + # # 删除功能刀具预警、实时分布、出入库记录的新记录 + # self.env['sf.functional.tool.warning'].search([ + # ('code', '=', self.functional_tool_code)]).unlink() + # self.env['sf.real.time.distribution.of.functional.tools'].search([ + # ('code', '=', self.functional_tool_code)]).unlink() + # self.env['sf.inbound.and.outbound.records.of.functional.tools'].search([ + # ('code', '=', self.functional_tool_code)]).unlink() + self.env['sf.functional.tool.assembly'].search([ ('machine_tool_name_id', '=', self.machine_tool_name_id.id), ('cutter_spacing_code', '=', self.cutter_spacing_code) @@ -639,28 +653,20 @@ class FunctionalToolAssembly(models.Model): """ self.env['sf.delivery.of.cargo.from.storage'].search([]).unlink() - vals = self.env['sf.functional.tool.assembly'].search([('check_box_1', '=', True),('assemble_status', '=', '1')]) - if vals: - for val in vals: - self.env['sf.delivery.of.cargo.from.storage'].create({ - 'functional_tool_code': val.functional_tool_code, + desc_1 = {'functional_tool_code': val.functional_tool_code, 'name': val.name.id, 'functional_tool_type_id': val.functional_tool_type_id.id, 'production_line_name_id': val.production_line_name_id.id, 'machine_tool_code': val.machine_tool_code, 'receive_person': val.receive_person, - 'receive_time': val.receive_time - }) + 'receive_time': val.receive_time} + + vals = self.env['sf.functional.tool.assembly'].search([('check_box_1', '=', True),('assemble_status', '=', '1')]) + if vals: + for val in vals: + self.env['sf.delivery.of.cargo.from.storage'].create(desc_1) else: - self.env['sf.delivery.of.cargo.from.storage'].create({ - 'functional_tool_code': self.functional_tool_code, - 'name': self.name.id, - 'functional_tool_type_id': self.functional_tool_type_id.id, - 'production_line_name_id': self.production_line_name_id.id, - 'machine_tool_code': self.machine_tool_code, - 'receive_person': self.receive_person, - 'receive_time': self.receive_time - }) + self.env['sf.delivery.of.cargo.from.storage'].create(desc_1) return { 'type': 'ir.actions.act_window', diff --git a/sf_tool_management/security/ir.model.access.csv b/sf_tool_management/security/ir.model.access.csv index 1cb5d1a0..fe606ac1 100644 --- a/sf_tool_management/security/ir.model.access.csv +++ b/sf_tool_management/security/ir.model.access.csv @@ -1,8 +1,8 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_sf_functional_cutting_tool_entity,sf.functional.cutting.tool.entity,model_sf_functional_cutting_tool_entity,base.group_user,1,1,1,1 -access_sf.functional.tool.warning,sf.functional.tool.warning,model_sf_functional_tool_warning,base.group_user,1,0,1,0 -access_sf.real.time.distribution.of.functional.tools,sf.real.time.distribution.of.functional.tools,model_sf_real_time_distribution_of_functional_tools,base.group_user,1,0,1,0 -access_sf.inbound.and.outbound.records.of.functional.tools,sf.inbound.and.outbound.records.of.functional.tools,model_sf_inbound_and_outbound_records_of_functional_tools,base.group_user,1,0,1,0 +access_sf.functional.tool.warning,sf.functional.tool.warning,model_sf_functional_tool_warning,base.group_user,1,1,1,1 +access_sf.real.time.distribution.of.functional.tools,sf.real.time.distribution.of.functional.tools,model_sf_real_time_distribution_of_functional_tools,base.group_user,1,1,1,1 +access_sf.inbound.and.outbound.records.of.functional.tools,sf.inbound.and.outbound.records.of.functional.tools,model_sf_inbound_and_outbound_records_of_functional_tools,base.group_user,1,1,1,1 access_sf_cam_work_order_program_knife_plan,sf.cam.work.order.program.knife.plan,model_sf_cam_work_order_program_knife_plan,base.group_user,1,1,1,1 access_sf_machine_table_tool_changing_apply,sf.machine.table.tool.changing.apply,model_sf_machine_table_tool_changing_apply,base.group_user,1,1,1,1 diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py index 7afdd536..2927ba63 100644 --- a/sf_tool_management/wizard/wizard.py +++ b/sf_tool_management/wizard/wizard.py @@ -176,10 +176,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel): 功能刀具组装 :return: """ - self.env['sf.functional.tool.assembly'].search([ - ('machine_tool_name_id', '=', self.machine_tool_name_id.id), - ('cutter_spacing_code', '=', self.cutter_spacing_code) - ]).write({ + desc_1 = { 'mrs_cutting_tool_integral_model_ids': self.mrs_cutting_tool_integral_model_ids.ids, 'integral_code': self.integral_code, 'integral_name': self.integral_name, @@ -214,10 +211,14 @@ class FunctionalToolAssemblyOrder(models.TransientModel): 'assemble_status': '1', 'tool_loading_person': self.env.user.name, 'tool_loading_time': fields.Datetime.now() - }) + } + self.env['sf.functional.tool.assembly'].search([ + ('machine_tool_name_id', '=', self.machine_tool_name_id.id), + ('cutter_spacing_code', '=', self.cutter_spacing_code) + ]).write(desc_1) # 封装功能刀具数据 - desc = { + desc_2 = { 'code': self.code, 'name': self.functional_tool_name_id.name, 'mrs_cutting_tool_type_id': self.functional_tool_type_id.id, @@ -239,14 +240,16 @@ class FunctionalToolAssemblyOrder(models.TransientModel): 'applicable_range': None, 'image': None, } - if self.new_former == '0': # 如果是新刀,则创建功能刀具列表、 - self.env['sf.functional.cutting.tool.entity'].create(desc) - # 创建功能刀具预警、实时分布、出入库记录的新记录 - self.env['sf.functional.tool.warning'].create(desc) - self.env['sf.real.time.distribution.of.functional.tools'].create(desc) - self.env['sf.inbound.and.outbound.records.of.functional.tools'].create(desc) + self.env['sf.functional.cutting.tool.entity'].create(desc_2) + else: + self.env['sf.functional.cutting.tool.entity'].search([ + ('code', '=', self.code)]).write(desc_2) + # # 创建功能刀具预警、实时分布、出入库记录的新记录 + # self.env['sf.functional.tool.warning'].create(desc) + # self.env['sf.real.time.distribution.of.functional.tools'].create(desc) + # self.env['sf.inbound.and.outbound.records.of.functional.tools'].create(desc) # 关闭弹出窗口 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 5f156eae..a8101f6d 100644 --- a/sf_tool_management/wizard/wizard_view.xml +++ b/sf_tool_management/wizard/wizard_view.xml @@ -189,7 +189,8 @@ - + From fe310de31d72441fc8bd4c9580c84f696490d645 Mon Sep 17 00:00:00 2001 From: yuxianghui <1608204036@qq.com> Date: Thu, 3 Aug 2023 17:29:26 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=88=80=E5=85=B7=E5=88=97=E8=A1=A8=E7=BC=93=E5=AD=98=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=EF=BC=8C=E6=96=B0=E5=A2=9E=E7=BB=84=E8=A3=85=E6=97=A7?= =?UTF-8?q?=E5=88=80=E6=98=AF=E5=88=9B=E5=BB=BA=E7=BC=93=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=8F=96=E6=B6=88=E7=BB=84?= =?UTF-8?q?=E8=A3=85=E6=97=B6=E6=B8=85=E9=99=A4=E7=BC=93=E5=AD=98=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_tool_management/models/base.py | 89 ++++++++++++++++--- .../security/ir.model.access.csv | 1 + sf_tool_management/wizard/wizard.py | 8 +- 3 files changed, 86 insertions(+), 12 deletions(-) diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index 33a489c3..675542f1 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -68,6 +68,59 @@ class FunctionalCuttingToolEntity(models.Model): return [(6, 0, functional_tool_model_ids)] +class FunctionalCuttingToolEntityCache(models.Model): + _name = 'sf.functional.cutting.tool.entity.cache' + _description = '功能刀具列表缓存' + + code = fields.Char('编码') + name = fields.Char('名称') + mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型') + mrs_cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='刀具型号') + + # 整体式刀具型号 + mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model', + 'sf_functional_cutting_tool_entity_cache_id', + string='整体式刀具型号', domain= + [('mrs_cutting_tool_material_name', '=', '整体式刀具')]) + # 刀片型号 + mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model', 'sf_functional_cutting_tool_entity_cache_id', + string='刀片型号', domain= + [('mrs_cutting_tool_material_name', '=', '刀片')]) + # 刀杆型号 + mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model', + 'sf_functional_cutting_tool_entity_cache_id', + string='刀杆型号', domain= + [('mrs_cutting_tool_material_name', '=', '刀杆')]) + # 刀盘型号 + mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model', + 'sf_functional_cutting_tool_entity_cache_id', + string='刀盘型号', domain= + [('mrs_cutting_tool_material_name', '=', '刀盘')]) + # 刀柄型号 + mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model', + 'sf_functional_cutting_tool_entity_cache_id', + string='刀柄型号', domain= + [('mrs_cutting_tool_material_name', '=', '刀柄')]) + # 夹头型号 + mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model', + 'sf_functional_cutting_tool_entity_cache_id', + string='夹头型号', domain= + [('mrs_cutting_tool_material_name', '=', '夹头')]) + + diameter = fields.Float('直径(mm)') + tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')], + string='刀具等级') + machining_accuracy = fields.Float('加工精度(mm)') + tool_length = fields.Float('装刀长') + blade_number = fields.Integer('刃数') + integral_blade_length = fields.Float('整体刃长(mm)') + effective_blade_length = fields.Float('有效刃长(mm)') + max_life = fields.Float('最大寿命值') + is_standard = fields.Boolean('是否标准刀') + applicable_range = fields.Char('适用范围') + image = fields.Binary('图片') + + class FunctionalToolWarning(models.Model): _name = 'sf.functional.tool.warning' _description = '功能刀具预警' @@ -596,7 +649,15 @@ class FunctionalToolAssembly(models.Model): self.env['sf.functional.cutting.tool.entity'].search([ ('code', '=', self.functional_tool_code)]).unlink() else: - pass + # 获取功能刀具缓存信息 + record = self.env['sf.functional.cutting.tool.entity.cache'].search([ + ('code', '=', self.functional_tool_code)]) + # 删除缓存信息 + record.unlink() + # 修改功能刀具列表信息 + self.env['sf.functional.cutting.tool.entity'].search([ + ('code', '=', self.functional_tool_code)]).write(record) + # # 删除功能刀具预警、实时分布、出入库记录的新记录 # self.env['sf.functional.tool.warning'].search([ # ('code', '=', self.functional_tool_code)]).unlink() @@ -653,20 +714,28 @@ class FunctionalToolAssembly(models.Model): """ self.env['sf.delivery.of.cargo.from.storage'].search([]).unlink() - desc_1 = {'functional_tool_code': val.functional_tool_code, - 'name': val.name.id, - 'functional_tool_type_id': val.functional_tool_type_id.id, - 'production_line_name_id': val.production_line_name_id.id, - 'machine_tool_code': val.machine_tool_code, - 'receive_person': val.receive_person, - 'receive_time': val.receive_time} + vals = self.env['sf.functional.tool.assembly'].search([('check_box_1', '=', True),('assemble_status', '=', '1')]) if vals: for val in vals: - self.env['sf.delivery.of.cargo.from.storage'].create(desc_1) + self.env['sf.delivery.of.cargo.from.storage'].create({ + 'functional_tool_code': val.functional_tool_code, + 'name': val.name.id, + 'functional_tool_type_id': val.functional_tool_type_id.id, + 'production_line_name_id': val.production_line_name_id.id, + 'machine_tool_code': val.machine_tool_code, + 'receive_person': val.receive_person, + 'receive_time': val.receive_time}) else: - self.env['sf.delivery.of.cargo.from.storage'].create(desc_1) + self.env['sf.delivery.of.cargo.from.storage'].create({ + 'functional_tool_code': self.functional_tool_code, + 'name': self.name.id, + 'functional_tool_type_id': self.functional_tool_type_id.id, + 'production_line_name_id': self.production_line_name_id.id, + 'machine_tool_code': self.machine_tool_code, + 'receive_person': self.receive_person, + 'receive_time': self.receive_time}) return { 'type': 'ir.actions.act_window', diff --git a/sf_tool_management/security/ir.model.access.csv b/sf_tool_management/security/ir.model.access.csv index fe606ac1..d95ad4c5 100644 --- a/sf_tool_management/security/ir.model.access.csv +++ b/sf_tool_management/security/ir.model.access.csv @@ -1,5 +1,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_sf_functional_cutting_tool_entity,sf.functional.cutting.tool.entity,model_sf_functional_cutting_tool_entity,base.group_user,1,1,1,1 +access_sf_functional_cutting_tool_entity_cache,sf.functional.cutting.tool.entity.cache,model_sf_functional_cutting_tool_entity_cache,base.group_user,1,1,1,1 access_sf.functional.tool.warning,sf.functional.tool.warning,model_sf_functional_tool_warning,base.group_user,1,1,1,1 access_sf.real.time.distribution.of.functional.tools,sf.real.time.distribution.of.functional.tools,model_sf_real_time_distribution_of_functional_tools,base.group_user,1,1,1,1 access_sf.inbound.and.outbound.records.of.functional.tools,sf.inbound.and.outbound.records.of.functional.tools,model_sf_inbound_and_outbound_records_of_functional_tools,base.group_user,1,1,1,1 diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py index 2927ba63..8973a8b8 100644 --- a/sf_tool_management/wizard/wizard.py +++ b/sf_tool_management/wizard/wizard.py @@ -244,8 +244,12 @@ class FunctionalToolAssemblyOrder(models.TransientModel): # 如果是新刀,则创建功能刀具列表、 self.env['sf.functional.cutting.tool.entity'].create(desc_2) else: - self.env['sf.functional.cutting.tool.entity'].search([ - ('code', '=', self.code)]).write(desc_2) + record = self.env['sf.functional.cutting.tool.entity'].search([ + ('code', '=', self.code)]) + # 创建功能刀具缓存信息 + self.env['sf.functional.cutting.tool.entity.cache'].create(record) + # 修改功能刀具列表信息 + record.write(desc_2) # # 创建功能刀具预警、实时分布、出入库记录的新记录 # self.env['sf.functional.tool.warning'].create(desc) # self.env['sf.real.time.distribution.of.functional.tools'].create(desc) From 7f6ea605d26220905d9c27ee4498e8521c6e8dc6 Mon Sep 17 00:00:00 2001 From: yuxianghui <1608204036@qq.com> Date: Fri, 4 Aug 2023 10:40:35 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BA=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=88=80=E5=85=B7=E7=BB=84=E8=A3=85=E5=87=BA=E5=BA=93?= =?UTF-8?q?bug=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BA=86=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=88=80=E5=85=B7=E7=BB=84=E8=A3=85=E5=AF=B9=E8=B1=A1=E7=BB=84?= =?UTF-8?q?=E8=A3=85=E6=97=A7=E5=88=80=E5=85=B7=E6=97=B6=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_tool_management/models/base.py | 30 ++++++++++++--- sf_tool_management/wizard/wizard.py | 57 ++++++++++++++++++++--------- 2 files changed, 64 insertions(+), 23 deletions(-) diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index 675542f1..0e25de4f 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -652,11 +652,33 @@ class FunctionalToolAssembly(models.Model): # 获取功能刀具缓存信息 record = self.env['sf.functional.cutting.tool.entity.cache'].search([ ('code', '=', self.functional_tool_code)]) - # 删除缓存信息 - record.unlink() # 修改功能刀具列表信息 self.env['sf.functional.cutting.tool.entity'].search([ - ('code', '=', self.functional_tool_code)]).write(record) + ('code', '=', self.functional_tool_code)]).write({ + '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, + }) + # 删除缓存信息 + record.unlink() # # 删除功能刀具预警、实时分布、出入库记录的新记录 # self.env['sf.functional.tool.warning'].search([ @@ -714,8 +736,6 @@ class FunctionalToolAssembly(models.Model): """ self.env['sf.delivery.of.cargo.from.storage'].search([]).unlink() - - vals = self.env['sf.functional.tool.assembly'].search([('check_box_1', '=', True),('assemble_status', '=', '1')]) if vals: for val in vals: diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py index 8973a8b8..2699cf89 100644 --- a/sf_tool_management/wizard/wizard.py +++ b/sf_tool_management/wizard/wizard.py @@ -214,7 +214,8 @@ class FunctionalToolAssemblyOrder(models.TransientModel): } self.env['sf.functional.tool.assembly'].search([ ('machine_tool_name_id', '=', self.machine_tool_name_id.id), - ('cutter_spacing_code', '=', self.cutter_spacing_code) + ('cutter_spacing_code', '=', self.cutter_spacing_code), + ('assemble_status', '=', '0'), ]).write(desc_1) # 封装功能刀具数据 @@ -244,10 +245,31 @@ class FunctionalToolAssemblyOrder(models.TransientModel): # 如果是新刀,则创建功能刀具列表、 self.env['sf.functional.cutting.tool.entity'].create(desc_2) else: - record = self.env['sf.functional.cutting.tool.entity'].search([ - ('code', '=', self.code)]) + record = self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]) # 创建功能刀具缓存信息 - self.env['sf.functional.cutting.tool.entity.cache'].create(record) + 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, + }) # 修改功能刀具列表信息 record.write(desc_2) # # 创建功能刀具预警、实时分布、出入库记录的新记录 @@ -281,26 +303,25 @@ class DeliveryOfCargoFromStorage(models.TransientModel): print(vals) if vals: for val in vals: - self.env['sf.functional.tool.assembly'].search([ + print(val) + record = self.env['sf.functional.tool.assembly'].search([ ('functional_tool_code', '=', val.functional_tool_code), - ('machine_tool_code', '=', val.machine_tool_code), - ('name', '=', val.name.id), - ('production_line_name_id', '=', val.production_line_name_id.id) - ]).write({ - 'assemble_status': '2', - 'receive_person': self.env.user.name, - 'receive_time': fields.Datetime.now() - }) - - tool_assembly = self.env['sf.functional.tool.assembly'].search([ - ('functional_tool_code', '=', val.functional_tool_code), - ('name', '=', val.name.id) + ('assemble_status', '=', '1') ]) # 判断装刀任务来源,如果来源于CAM装刀,则修改CAM装刀的计划执行状态 - if tool_assembly.loading_task_source == '0': + if record.loading_task_source == '0': self.env['sf.cam.work.order.program.knife.plan'].search([ ('functional_tool_code', '=', val.functional_tool_code), ('functional_tool_name_id', '=', val.name.id) ]).write({ 'plan_execute_status': '2' }) + + record.write({ + 'assemble_status': '2', + 'receive_person': self.env.user.name, + 'receive_time': fields.Datetime.now() + }) + + +