From c9378fc9fe13c417f6130d6b995bcb279653f47f Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Tue, 24 Sep 2024 09:50:44 +0800 Subject: [PATCH] =?UTF-8?q?CAM=E7=94=A8=E5=88=80=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E5=8D=95=E5=8F=B7=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96CNC=E7=A8=8B=E5=BA=8F=E7=94=A8=E5=88=80?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E7=BC=BA=E5=88=80=E7=94=9F=E6=88=90=E7=9A=84?= =?UTF-8?q?CAM=E7=94=A8=E5=88=80=E8=AE=A1=E5=88=92=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD=E6=9D=A1=E4=BB=B6=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96tree=E5=92=8Cform=E8=A7=86=E5=9B=BE=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_tool_management/models/base.py | 42 ++++++++++++-------- sf_tool_management/views/tool_base_views.xml | 13 +++--- 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index cbdc1d22..84460220 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -185,6 +185,7 @@ class CAMWorkOrderProgramKnifePlan(models.Model): _description = 'CAM工单程序用刀计划' name = fields.Char('工单任务编号') + programming_no = fields.Char('编程单号') cam_procedure_code = fields.Char('程序名') filename = fields.Char('文件') cam_cutter_spacing_code = fields.Char('刀号') @@ -317,23 +318,30 @@ class CAMWorkOrderProgramKnifePlan(models.Model): """ 根据传入的工单信息,查询是否有需要的功能刀具,如果没有则生成CAM工单程序用刀计划 """ - knife_plan = self.env['sf.cam.work.order.program.knife.plan'].sudo().create({ - 'name': cnc_processing.workorder_id.production_id.name, - 'cam_procedure_code': cnc_processing.program_name, - 'filename': cnc_processing.cnc_id.name, - 'functional_tool_name': cnc_processing.cutting_tool_name, - 'cam_cutter_spacing_code': cnc_processing.cutting_tool_no, - 'process_type': cnc_processing.processing_type, - 'margin_x_y': float(cnc_processing.margin_x_y), - 'margin_z': float(cnc_processing.margin_z), - 'finish_depth': float(cnc_processing.depth_of_processing_z), - 'extension_length': float(cnc_processing.cutting_tool_extension_length), - 'shank_model': cnc_processing.cutting_tool_handle_type, - 'estimated_processing_time': cnc_processing.estimated_processing_time, - }) - logging.info('CAM工单程序用刀计划创建成功!!!') - # 创建装刀请求 - knife_plan.apply_for_tooling() + + # 获取编程单号 + programming_no = cnc_processing.workorder_id.production_id.programming_no + if not self.env['sf.cam.work.order.program.knife.plan'].sudo().search( + [('programming_no', '=', programming_no), + ('functional_tool_name', '=', cnc_processing.cutting_tool_name)]): + knife_plan = self.env['sf.cam.work.order.program.knife.plan'].sudo().create({ + 'name': cnc_processing.workorder_id.production_id.name, + 'programming_no': programming_no, + 'cam_procedure_code': cnc_processing.program_name, + 'filename': cnc_processing.cnc_id.name, + 'functional_tool_name': cnc_processing.cutting_tool_name, + 'cam_cutter_spacing_code': cnc_processing.cutting_tool_no, + 'process_type': cnc_processing.processing_type, + 'margin_x_y': float(cnc_processing.margin_x_y), + 'margin_z': float(cnc_processing.margin_z), + 'finish_depth': float(cnc_processing.depth_of_processing_z), + 'extension_length': float(cnc_processing.cutting_tool_extension_length), + 'shank_model': cnc_processing.cutting_tool_handle_type, + 'estimated_processing_time': cnc_processing.estimated_processing_time, + }) + logging.info('CAM工单程序用刀计划创建成功!!!') + # 创建装刀请求 + knife_plan.apply_for_tooling() def unlink_cam_plan(self, production): for item in production: diff --git a/sf_tool_management/views/tool_base_views.xml b/sf_tool_management/views/tool_base_views.xml index 130936d8..b01f5b4c 100644 --- a/sf_tool_management/views/tool_base_views.xml +++ b/sf_tool_management/views/tool_base_views.xml @@ -283,21 +283,22 @@ - - + + + - + - - + + @@ -332,6 +333,7 @@ + @@ -388,6 +390,7 @@ sf.cam.work.order.program.knife.plan +