调整编程记录生成

This commit is contained in:
mgw
2025-01-14 11:12:07 +08:00
parent fa80d42fc0
commit 40603fea6a
3 changed files with 67 additions and 9 deletions

View File

@@ -111,12 +111,25 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
logging.info(f'对cnc工单的程序用刀进行校验报错{e}')
return json.JSONEncoder().encode(res)
productions_reprogram = ''
if productions:
productions_reprogram = ','.join(productions.mapped('name'))
# 更新编程记录
correct_record_ids_obj = None
correct_production_id = None
rework_record_ids_obj = None
rework_production_id = None
scrap_record_ids_obj = None
scrap_production_id = None
for production in productions:
record_ids_obj = production.programming_record_ids.filtered(
lambda r: r.current_programming_count == ret['reprogramming_num'])
if record_ids_obj:
record_ids_obj.write({'send_time': ret['send_time']})
record_ids_obj.write(
{'send_time': ret['send_time'], 'target_production_id': productions_reprogram})
correct_record_ids_obj = record_ids_obj
correct_production_id = production.id
if ret['reprogramming_num'] == 0:
production.programming_record_ids.create({
'number': 1,
@@ -124,7 +137,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
'reason': '首次下发',
'programming_method': ret['programme_way'],
'current_programming_count': ret['reprogramming_num'],
'target_production_id': ret['production_order_no'],
'target_production_id': productions_reprogram,
'apply_time': False,
'send_time': ret['send_time'],
})
@@ -135,7 +148,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
'reason': '重置状态',
'programming_method': ret['programme_way'],
'current_programming_count': ret['reprogramming_num'],
'target_production_id': ret['production_order_no'],
'target_production_id': productions_reprogram,
'apply_time': False,
'send_time': ret['send_time'],
})
@@ -146,10 +159,12 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
'reason': '返工',
'programming_method': ret['programme_way'],
'current_programming_count': ret['reprogramming_num'],
'target_production_id': ret['production_order_no'],
'target_production_id': productions_reprogram,
'apply_time': ret['trigger_time'],
'send_time': ret['send_time'],
})
rework_record_ids_obj = production.programming_record_ids
rework_production_id = production.id
elif ret['manufacturing_type'] == 'scrap':
production.programming_record_ids.create({
'number': len(production.programming_record_ids) + 1,
@@ -157,7 +172,7 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
'reason': '报废',
'programming_method': ret['programme_way'],
'current_programming_count': ret['reprogramming_num'],
'target_production_id': ret['production_order_no'],
'target_production_id': productions_reprogram,
'apply_time': ret['trigger_time'],
'send_time': ret['send_time'],
})
@@ -168,13 +183,44 @@ class Sf_Mrs_Connect(http.Controller, MultiInheritController):
'reason': '无效功能刀具',
'programming_method': ret['programme_way'],
'current_programming_count': ret['reprogramming_num'],
'target_production_id': ret['production_order_no'],
'target_production_id': productions_reprogram,
'apply_time': ret['trigger_time'],
'send_time': ret['send_time'],
})
else:
logging.info('无对应状态,不需更新编程记录')
for production in productions:
if correct_record_ids_obj:
if production.id == correct_production_id:
continue
else:
production.programming_record_ids.create({
'number': len(production.programming_record_ids) + 1,
'production_id': production.id,
'reason': correct_record_ids_obj.reason,
'programming_method': correct_record_ids_obj.programming_method,
'current_programming_count': correct_record_ids_obj.current_programming_count,
'target_production_id': correct_record_ids_obj.target_production_id,
'apply_time': correct_record_ids_obj.apply_time,
'send_time': correct_record_ids_obj.send_time,
})
if rework_record_ids_obj:
if production.id == rework_production_id:
continue
else:
production.programming_record_ids.create({
'number': len(production.programming_record_ids) + 1,
'production_id': production.id,
'reason': rework_record_ids_obj.reason,
'programming_method': rework_record_ids_obj.programming_method,
'current_programming_count': rework_record_ids_obj.current_programming_count,
'target_production_id': rework_record_ids_obj.target_production_id,
'apply_time': rework_record_ids_obj.apply_time,
'send_time': rework_record_ids_obj.send_time,
})
res.update({
'production_ids': productions.ids
})