From bdac1e7460e13f915ed5b065f754e378c8b985f0 Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Fri, 20 Dec 2024 11:06:41 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A4=84=E7=90=86=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=BF=94=E5=B7=A5=E6=97=B6=E5=B0=B1=E8=A7=A3=E9=99=A4rfid?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E9=97=AE=E9=A2=98=EF=BC=9B2=E3=80=81?= =?UTF-8?q?=E5=90=8C=E6=AD=A5bfm=E7=9A=84=E8=AE=A2=E5=8D=95=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=88=B0=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_bf_connect/models/jd_eclp.py | 6 +++++ sf_manufacturing/models/mrp_workorder.py | 3 +-- sf_manufacturing/wizard/rework_wizard.py | 32 +++++++++++++----------- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/sf_bf_connect/models/jd_eclp.py b/sf_bf_connect/models/jd_eclp.py index 58691ca0..aa27736c 100644 --- a/sf_bf_connect/models/jd_eclp.py +++ b/sf_bf_connect/models/jd_eclp.py @@ -151,6 +151,12 @@ class JdEclp(models.Model): _logger.info('准备调接口1') url1 = config['bfm_url_new'] + '/api/create/jd/order' requests.post(url1, json=json1, data=None) + # ===============修改销售订单状态为【物流中】=================== + item = self.env['sale.order'].sudo().search([('name', '=', self.origin)]) + if not item: + raise ValidationError('没有查询到订单号为【%s】的销售订单!' % self.origin) + else: + item.write({'state': 'physical_distribution'}) _logger.info('调用成功1') _logger.info('准备调接口2') json2 = { diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index e9a5c5d9..52fa30c8 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1423,8 +1423,7 @@ class ResMrpWorkOrder(models.Model): len(done_workorder) == len(record.production_id.workorder_ids)): is_production_id = True if record.routing_type in ['解除装夹'] or ( - record.is_rework is True and record.routing_type in ['装夹预调']) or ( - record.test_results in ['返工', '报废'] and record.routing_type in ['CNC加工']): + record.is_rework is True and record.routing_type in ['装夹预调']): for workorder in record.production_id.workorder_ids: if workorder.processing_panel == record.processing_panel: rfid_code = workorder.rfid_code diff --git a/sf_manufacturing/wizard/rework_wizard.py b/sf_manufacturing/wizard/rework_wizard.py index 1352e84d..fcafd490 100644 --- a/sf_manufacturing/wizard/rework_wizard.py +++ b/sf_manufacturing/wizard/rework_wizard.py @@ -85,7 +85,8 @@ class ReworkWizard(models.TransientModel): # 2、当FM工单在CNC工单进行选择返工,并将已全部完成的ZM面工序全部勾选上时,FM工单上所有的已完成的工单(装夹预调工单)也必须进行勾选 if not wk_ids.filtered(lambda wk: wk.name == '装夹预调' and wk.processing_panel == panel): if wk_ids.filtered(lambda wk: wk.name == 'CNC加工' and wk.processing_panel == panel): - sequence_max = wk_ids.filtered(lambda wk: wk.name == 'CNC加工' and wk.processing_panel == panel).sequence + sequence_max = wk_ids.filtered( + lambda wk: wk.name == 'CNC加工' and wk.processing_panel == panel).sequence for wk_id in wk_ids.filtered(lambda wk: wk.sequence < sequence_max): if len(wk_ids.filtered(lambda wk: wk.processing_panel == wk_id.processing_panel)) == 3: raise ValidationError( @@ -114,19 +115,17 @@ class ReworkWizard(models.TransientModel): else: raise ValidationError('请选择返工工单!!!') if rework_workorder_ids: - clamp_workorder_ids = None - if rework_workorder_ids: - # 限制 - # 1、单独返工CNC工单则不解绑托盘RFID,如单独返工装夹预调工单,则自动解绑托盘RFID; - # 2、返工CNC工单和装夹预调工单则自动解绑RFID - clamp_workorder_ids = rework_workorder_ids.filtered(lambda rp: rp.routing_type == '装夹预调') - if clamp_workorder_ids: - for clamp_workorder_id in clamp_workorder_ids: - self.production_id.workorder_ids.filtered( - lambda wk: wk.processing_panel == clamp_workorder_id.processing_panel).write( - {'rfid_code': None}) - # 返工工单状态设置为【返工】 - rework_workorder_ids.write({'state': 'rework'}) + # 限制 + # 1、单独返工CNC工单则不解绑托盘RFID,如单独返工装夹预调工单,则自动解绑托盘RFID; + # 2、返工CNC工单和装夹预调工单则自动解绑RFID + clamp_workorder_ids = rework_workorder_ids.filtered(lambda rp: rp.routing_type == '装夹预调') + if clamp_workorder_ids: + for clamp_workorder_id in clamp_workorder_ids: + self.production_id.workorder_ids.filtered( + lambda wk: wk.processing_panel == clamp_workorder_id.processing_panel).write( + {'rfid_code': None}) + # 返工工单状态设置为【返工】 + rework_workorder_ids.write({'state': 'rework'}) # 查询返工工单对应的工艺设计记录,并调用方法拼接数据,用于创建新的工单 workorders_values = [] for work in rework_workorder_ids: @@ -147,6 +146,11 @@ class ReworkWizard(models.TransientModel): new_pre_workorder_ids = self.production_id.workorder_ids.filtered( lambda kw: kw.routing_type == '装夹预调' and kw.sequence == 0) self.production_id._reset_work_order_sequence() + # ====新工单绑定rfid=== + for new_work_id in new_work_ids: + if new_work_id.routing_type in ['CNC加工', '解除装夹']: + new_work_id.write({'rfid_code': self.production_id.workorder_ids.filtered( + lambda wk: wk.sequence == new_work_id.sequence - 1).rfid_code}) self.production_id.detection_result_ids.filtered( lambda ap1: ap1.handle_result == '待处理').write({'handle_result': '已处理'}) panels = [] # 返工的加工面