diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index a30c1130..7b9c7174 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1511,8 +1511,8 @@ class ResMrpWorkOrder(models.Model): for workorder in record.production_id.workorder_ids: if workorder.processing_panel == record.processing_panel: rfid_code = workorder.rfid_code - workorder.write({'rfid_code_old': rfid_code, - 'rfid_code': False}) + workorder.filtered(lambda wo: wo.state != 'rework' or wo.rfid_code is not False).write( + {'rfid_code_old': rfid_code, 'rfid_code': False}) self.env['stock.lot'].sudo().search([('rfid', '=', rfid_code)]).write( {'tool_material_status': '可用'}) if workorder.rfid_code: @@ -1929,7 +1929,8 @@ class SfWorkOrderBarcodes(models.Model): self.write(val) workorder_rfid = self.env['mrp.workorder'].search( [('production_id', '=', workorder.production_id.id), - ('processing_panel', '=', workorder.processing_panel)]) + ('processing_panel', '=', workorder.processing_panel), + ('state', '!=', 'rework')]) if workorder_rfid: for item in workorder_rfid: item.write({'rfid_code': barcode}) diff --git a/sf_manufacturing/wizard/production_wizard.py b/sf_manufacturing/wizard/production_wizard.py index aa2a4075..fb835818 100644 --- a/sf_manufacturing/wizard/production_wizard.py +++ b/sf_manufacturing/wizard/production_wizard.py @@ -46,8 +46,11 @@ class ProductionWizard(models.TransientModel): mrp_workorder_list = self.mrp_production_id.workorder_ids.filtered(lambda kw: kw.rfid_code) for workorder in mrp_workorder_list: rfid_code = workorder.rfid_code - workorder.write({'rfid_code_old': rfid_code, - 'rfid_code': False}) + workorder.filtered(lambda wo: wo.routing_type == '装夹预调' and wo.rfid_code is not False).write( + {'rfid_code_old': rfid_code, 'rfid_code': False}) + workorder.filtered(lambda wo: wo.routing_type != '装夹预调' and wo.rfid_code is not False).write( + {'rfid_code_old': False, 'rfid_code': False}) + if self.is_remanufacture is True: ret = {'programming_list': [], 'is_reprogramming': self.is_reprogramming} if self.is_reprogramming is True: diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py index 237d5b91..40100a93 100644 --- a/sf_tool_management/models/base.py +++ b/sf_tool_management/models/base.py @@ -983,19 +983,19 @@ class FunctionalToolAssembly(models.Model): # 物料必填校验 if not self.handle_code_id: - raise ValidationError('缺少【刀柄】物料信息!') + raise ValidationError('请扫【刀柄】RFID,录入【刀柄】物料信息!') if self.integral_lot_id: if not self.integral_verify: - raise ValidationError('【整体式刀具】未进行验证!') + raise ValidationError('请扫【整体式刀具】的货位编码进行验证!') elif self.blade_lot_id: if not self.blade_verify: - raise ValidationError('【刀片】未进行验证!') + raise ValidationError('请扫【刀片】的货位编码进行验证!') if self.bar_lot_id: if not self.bar_verify: - raise ValidationError('【刀杆】未进行验证!') + raise ValidationError('请扫【刀杆】的货位编码进行验证!') elif self.pad_lot_id: if not self.pad_verify: - raise ValidationError('【刀盘】未进行验证!') + raise ValidationError('请扫【刀盘】的货位编码进行验证!') # 组装参数必填校验 if self.after_assembly_max_lifetime_value == 0: raise ValidationError('组装参数信息【最大寿命值】不能为0!')