修复返工bug

This commit is contained in:
jinling.yang
2024-07-19 17:25:51 +08:00
parent 9d3c4f8163
commit 8a0c968b10
6 changed files with 134 additions and 60 deletions

View File

@@ -738,7 +738,10 @@ class ResMrpWorkOrder(models.Model):
if re_work:
if workorder.routing_type == '装夹预调' and workorder.state not in ['done', 'rework',
'cancel'] and workorder.is_rework is False:
workorder.state = 'waiting'
if workorder.production_id.programming_state == '已编程':
workorder.state = 'ready'
else:
workorder.state = 'waiting'
if workorder.routing_type == 'CNC加工' and workorder.state not in ['done', 'rework', 'cancel']:
pre_workorder = self.env['mrp.workorder'].search(
[('production_id', '=', workorder.production_id.id),
@@ -750,7 +753,8 @@ class ResMrpWorkOrder(models.Model):
cnc_workorder = self.env['mrp.workorder'].search(
[('production_id', '=', workorder.production_id.id),
('processing_panel', '=', workorder.processing_panel),
('routing_type', '=', 'CNC加工'), ('state', '=', 'done')])
('routing_type', '=', 'CNC加工'), ('state', '=', 'done'),
('test_results', '=', '返工')])
if cnc_workorder:
workorder.state = 'waiting'
elif workorder.production_id.state == 'progress':
@@ -759,14 +763,13 @@ class ResMrpWorkOrder(models.Model):
logging.info('状态:%s' % workorder.state)
logging.info('is_rework:%s' % workorder.is_rework)
logging.info('面:%s' % workorder.processing_panel)
logging.info('reprogramming_num:%s' % workorder.production_id.reprogramming_num)
logging.info('编程状态:%s' % workorder.production_id.programming_state)
logging.info('制造状态:%s' % workorder.production_id.state)
if workorder.routing_type == '装夹预调' and workorder.production_id.programming_state == '已编程' and \
workorder.is_rework is False and workorder.state not in [
'done', 'rework',
'cancel']:
if re_work:
if re_work and workorder.production_id.is_rework is False:
workorder.state = 'ready'
# else:
# if workorder.state not in ['cancel', 'rework']:
@@ -916,16 +919,15 @@ class ResMrpWorkOrder(models.Model):
record.process_state = '待解除装夹'
# record.write({'process_state': '待加工'})
record.production_id.process_state = '待解除装夹'
if record.test_results in ['返工', '报废']:
record.production_id.write({'detection_result_ids': [(0, 0, {
'rework_reason': record.reason,
'detailed_reason': record.detailed_reason,
'processing_panel': record.processing_panel,
'routing_type': record.routing_type,
'handle_result': '待处理' if record.test_results == '返工' or record.is_rework is True else '',
'test_results': record.test_results,
'test_report': record.detection_report})],
'is_scrap': True if record.test_results == '报废' else False})
record.production_id.write({'detection_result_ids': [(0, 0, {
'rework_reason': record.reason,
'detailed_reason': record.detailed_reason,
'processing_panel': record.processing_panel,
'routing_type': record.routing_type,
'handle_result': '待处理' if record.test_results == '返工' or record.is_rework is True else '',
'test_results': record.test_results,
'test_report': record.detection_report})],
'is_scrap': True if record.test_results == '报废' else False})
if record.routing_type == '解除装夹':
'''
记录结束时间
@@ -980,10 +982,12 @@ class ResMrpWorkOrder(models.Model):
# record.production_id.workorder_ids.write({'rfid_code': False, 'rfid_code_old': record.rfid_code})
# if record.is_remanufacture is True:
# record.recreateManufacturingOrWorkerOrder()
is_production_id = True
for workorder in record.production_id.workorder_ids:
if workorder.state != 'done':
is_production_id = False
is_production_id = False
rework_workorder = record.production_id.workorder_ids.filtered(lambda p: p.state == 'rework')
done_workorder = record.production_id.workorder_ids.filtered(lambda p1: p1.state == 'done')
if (len(rework_workorder) + len(done_workorder) == len(record.production_id.workorder_ids)) or (
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加工']):