From e258e43b51ec67400af928516d822b6eb535efd7 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 5 Jun 2024 16:09:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=A4=9A=E6=AC=A1=E7=BC=96?= =?UTF-8?q?=E7=A8=8B=E5=8D=95=E4=B8=8B=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_mrs_connect/controllers/controllers.py | 18 ++++++++++++++---- sf_tool_management/models/base.py | 11 +++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/sf_mrs_connect/controllers/controllers.py b/sf_mrs_connect/controllers/controllers.py index 7498ec75..ddaa6fd5 100644 --- a/sf_mrs_connect/controllers/controllers.py +++ b/sf_mrs_connect/controllers/controllers.py @@ -30,6 +30,14 @@ class Sf_Mrs_Connect(http.Controller): cnc_program = request.env['mrp.production'].with_user( request.env.ref("base.user_admin")).search( [('programming_no', '=', cnc_production.programming_no), ('id', '!=', cnc_production.id)]) + if cnc_production.workorder_ids.filtered(lambda a: a.routing_type == 'CNC加工').cnc_ids: + cnc_production.workorder_ids.filtered( + lambda a1: a1.routing_type == 'CNC加工').cnc_ids.sudo().unlink() + request.env['sf.cam.work.order.program.knife.plan'].sudo().unlink_cam_plan(cnc_production) + if cnc_program.workorder_ids.filtered(lambda c: c.routing_type == 'CNC加工').cnc_ids: + cnc_program.workorder_ids.filtered( + lambda c1: c1.routing_type == 'CNC加工').cnc_ids.sudo().unlink() + request.env['sf.cam.work.order.program.knife.plan'].sudo().unlink_cam_plan(cnc_program) # cnc_program = request.env['mrp.production'].with_user( # request.env.ref("base.user_admin")).search([('programming_no', '=', cnc_production.programming_no)]) logging.info('制造订单号:%s' % cnc_production.name) @@ -64,15 +72,17 @@ class Sf_Mrs_Connect(http.Controller): if cnc_processing: cnc_processing_arr.append(cnc_processing._json_cnc_processing(cnc_processing)) if (cnc_program and cnc_processing_arr) or (not cnc_program and cnc_processing_arr): - logging.info('cnc_processing_arr:%s' % cnc_processing_arr) + cnc_production.workorder_ids.filtered(lambda g: g.routing_type == '装夹预调').write( + {'processing_drawing': cnc_production.workorder_ids.filtered( + lambda g1: g1.routing_type == 'CNC加工').cnc_worksheet}) if cnc_program and cnc_processing_arr: cnc_program.write({'programming_state': '已编程', 'work_state': '已编程'}) - cnc_program.workorder_ids.filtered(lambda b1: b1.routing_type == '装夹预调').write( + cnc_program.workorder_ids.filtered(lambda d: d.routing_type == '装夹预调').write( {'processing_drawing': cnc_production.workorder_ids.filtered( - lambda b1: b1.routing_type == 'CNC加工').cnc_worksheet}) + lambda d1: d1.routing_type == 'CNC加工').cnc_worksheet}) cnc_program.workorder_ids.filtered(lambda b: b.routing_type == 'CNC加工').write( {'cnc_ids': cnc_processing_arr, 'cnc_worksheet': cnc_production.workorder_ids.filtered( - lambda b: b.routing_type == 'CNC加工').cnc_worksheet}) + lambda b1: b1.routing_type == 'CNC加工').cnc_worksheet}) cnc_program |= cnc_production if not cnc_program and cnc_processing_arr: cnc_program = cnc_production diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index 4a440df6..3125cf01 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -347,6 +347,17 @@ class CAMWorkOrderProgramKnifePlan(models.Model): else: logging.info('功能刀具【%s】满足CNC用刀需求!!!' % cnc_processing.cutting_tool_name) + def unlink_cam_plan(self, production): + for item in production: + cam_plan_ids = self.env['sf.cam.work.order.program.knife.plan'].search([('name', '=', item.name)]) + for cam_plan_id in cam_plan_ids: + assembly_id = cam_plan_id.sf_functional_tool_assembly_id + if assembly_id.assemble_status == 0 and not assembly_id.start_preset_bool: + logging.info('%s删除成功!!!' % assembly_id) + assembly_id.sudo().unlink() + logging.info('unlink_cam_plan成功!!!') + cam_plan_ids.sudo().unlink() + class FunctionalToolAssembly(models.Model): _name = 'sf.functional.tool.assembly'