From 2dc12d6a8c17ebc4619c178b110c10954a1f8131 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 5 Jun 2024 16:59:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dcreate=5Fcam=5Fwork=5Fplan?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_tool_management/models/base.py | 70 ++++++++++++++++--------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index e840224f..b903188c 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -311,41 +311,42 @@ class CAMWorkOrderProgramKnifePlan(models.Model): 'applicant': None, 'sf_functional_tool_assembly_id': None}) - def create_cam_work_plan(self, cnc_processing): + def create_cam_work_plan(self, cnc_processing_ids): """ 根据传入的工单信息,查询是否有需要的功能刀具,如果没有则生成CAM工单程序用刀计划 """ - status = False - if cnc_processing.cutting_tool_name: - functional_tools = self.env['sf.real.time.distribution.of.functional.tools'].sudo().search( - [('name', '=', cnc_processing.cutting_tool_name)]) - if functional_tools: - for functional_tool in functional_tools: - if functional_tool.on_tool_stock_num == 0: - if functional_tool.tool_stock_num == 0 and functional_tool.side_shelf_num == 0: - status = True - else: - status = True - if status: - 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() - else: - logging.info('功能刀具【%s】满足CNC用刀需求!!!' % cnc_processing.cutting_tool_name) + for cnc_processing in cnc_processing_ids: + status = False + if cnc_processing.cutting_tool_name: + functional_tools = self.env['sf.real.time.distribution.of.functional.tools'].sudo().search( + [('name', '=', cnc_processing.cutting_tool_name)]) + if functional_tools: + for functional_tool in functional_tools: + if functional_tool.on_tool_stock_num == 0: + if functional_tool.tool_stock_num == 0 and functional_tool.side_shelf_num == 0: + status = True + else: + status = True + if status: + 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() + else: + logging.info('功能刀具【%s】满足CNC用刀需求!!!' % cnc_processing.cutting_tool_name) class FunctionalToolAssembly(models.Model): @@ -543,7 +544,8 @@ class FunctionalToolAssembly(models.Model): after_assembly_functional_tool_name = fields.Char(string='组装后功能刀具名称', readonly=True) after_assembly_functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='组装后功能刀具类型', readonly=True) - after_assembly_functional_tool_diameter = fields.Float(string='组装后功能刀具直径(mm)', readonly=True, digits=(10, 3)) + after_assembly_functional_tool_diameter = fields.Float(string='组装后功能刀具直径(mm)', readonly=True, + digits=(10, 3)) after_assembly_knife_tip_r_angle = fields.Float(string='组装后刀尖R角(mm)', readonly=True, digits=(10, 3)) after_assembly_new_former = fields.Selection([('0', '新'), ('1', '旧')], string='组装后新/旧', readonly=True) cut_time = fields.Integer(string='已切削时间(min)', readonly=True) @@ -557,7 +559,7 @@ class FunctionalToolAssembly(models.Model): after_assembly_alarm_value = fields.Integer(string='组装后报警值(min)', readonly=True) after_assembly_used_value = fields.Integer(string='组装后已使用值(min)', readonly=True) after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)', readonly=True, digits=(10, 3)) - after_assembly_handle_length = fields.Float(string='组装后刀柄长度(mm)',readonly=True, digits=(10, 3)) + after_assembly_handle_length = fields.Float(string='组装后刀柄长度(mm)', readonly=True, digits=(10, 3)) after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True, digits=(10, 3)) after_assembly_effective_length = fields.Float(string='组装后有效长(mm)', readonly=True) L_D_number = fields.Float(string='L/D值(mm)', readonly=True)