diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index e148c581..fce19e16 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -761,6 +761,10 @@ class ResMrpWorkOrder(models.Model): [('production_id', '=', workorder.production_id.id), ('processing_panel', '=', workorder.processing_panel), ('routing_type', '=', 'CNC加工'), ('state', 'in', ['pending'])]) + unclamp_workorder = self.env['mrp.workorder'].search( + [('production_id', '=', workorder.production_id.id), + ('sequence', '=', workorder.sequence - 1), + ('state', 'in', ['done'])]) if workorder.state not in ['cancel', 'progress', 'rework']: if workorder.production_id.state == 'rework': logging.info('len(re_work):%s' % len(re_work)) @@ -819,13 +823,12 @@ class ResMrpWorkOrder(models.Model): workorder.is_rework is False and workorder.state not in [ 'done', 'rework', 'cancel']: - if (re_work or cnc_workorder) and workorder.production_id.is_rework is False: - workorder.state = 'ready' + if workorder.production_id.is_rework is False: + if re_work or cnc_workorder or unclamp_workorder: + workorder.state = 'ready' + # if (re_work or cnc_workorder) and workorder.production_id.is_rework is False: + # workorder.state = 'ready' if workorder.routing_type == '表面工艺' and workorder.state not in ['done', 'progress']: - unclamp_workorder = self.env['mrp.workorder'].search( - [('production_id', '=', workorder.production_id.id), - ('sequence', '=', workorder.sequence - 1), - ('state', 'in', ['done'])]) if unclamp_workorder: workorder.state = 'ready' # else: @@ -835,7 +838,6 @@ class ResMrpWorkOrder(models.Model): if workorder.routing_type == '装夹预调' and workorder.state in ['ready', 'waiting']: if workorder.production_id.tool_state in ['1', '2']: workorder.state = 'waiting' - logging.info('工序:%s' % workorder.sequence) logging.info('工单最终状态:%s' % workorder.state)