优化制造订单和生成工单逻辑

This commit is contained in:
jinling.yang
2024-06-19 17:35:13 +08:00
parent b390712308
commit 67b48814f6
6 changed files with 87 additions and 152 deletions

View File

@@ -24,6 +24,7 @@ class Sf_Mrs_Connect(http.Controller):
ret = json.loads(datas)
ret = json.loads(ret['result'])
logging.info('下发编程单:%s' % ret)
all_production = None
is_delete_file = False
# 查询状态为进行中且类型为获取CNC加工程序的工单
cnc_production = request.env['mrp.production'].with_user(
@@ -83,26 +84,35 @@ class Sf_Mrs_Connect(http.Controller):
logging.info('cnc_processing111:%s' % cnc_processing)
if cnc_processing:
cnc_processing_arr.append(cnc_processing._json_cnc_processing(cnc_processing))
if (cnc_program and cnc_processing_arr) or (not cnc_program and cnc_processing_arr):
cnc_production.workorder_ids.filtered(lambda g: g.routing_type == '装夹预调').write(
{'processing_drawing': cnc_production.workorder_ids.filtered(
lambda g1: g1.routing_type == 'CNC加工').cnc_worksheet})
if cnc_program and cnc_processing_arr:
cnc_program.write({'programming_state': '已编程', 'work_state': '已编程'})
cnc_program.workorder_ids.filtered(lambda d: d.routing_type == '装夹预调').write(
{'processing_drawing': cnc_production.workorder_ids.filtered(
lambda d1: d1.routing_type == 'CNC加工').cnc_worksheet})
cnc_program.workorder_ids.filtered(lambda b: b.routing_type == 'CNC加工').write(
{'cnc_ids': cnc_processing_arr, 'cnc_worksheet': cnc_production.workorder_ids.filtered(
lambda b1: b1.routing_type == 'CNC加工').cnc_worksheet})
cnc_program |= cnc_production
if not cnc_program and cnc_processing_arr:
cnc_program = cnc_production
cnc_program_ids = [item.id for item in cnc_program]
workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
[('production_id', 'in', cnc_program_ids)])
if workpiece_delivery:
workpiece_delivery.write({'is_cnc_program_down': True})
productions = request.env['mrp.production'].with_user(
request.env.ref("base.user_admin")).search(
[('programming_no', '=', cnc_production.programming_no)])
if productions:
if not productions.workorder_ids:
productions.product_id.model_processing_panel = ret['processing_panel']
productions._create_workorder(ret)
# cnc_workorder = productions.workorder_ids.filtered(lambda g: g.routing_type == '装夹预调')
# cnc_production.workorder_ids.filtered(lambda g: g.routing_type == '装夹预调').write(
# {'processing_drawing': cnc_production.workorder_ids.filtered(
# lambda g1: g1.routing_type == 'CNC加工').cnc_worksheet})
# if cnc_program and cnc_processing_arr:
# cnc_program.write({'programming_state': '已编程', 'work_state': '已编程'})
# cnc_program.workorder_ids.filtered(lambda d: d.routing_type == '装夹预调').write(
# {'processing_drawing': cnc_production.workorder_ids.filtered(
# lambda d1: d1.routing_type == 'CNC加工').cnc_worksheet})
# cnc_program.workorder_ids.filtered(lambda b: b.routing_type == 'CNC加工').write(
# {'cnc_ids': cnc_processing_arr, 'cnc_worksheet': cnc_production.workorder_ids.filtered(
# lambda b1: b1.routing_type == 'CNC加工').cnc_worksheet})
# cnc_program |= cnc_production
# if not cnc_program and cnc_processing_arr:
# cnc_program = cnc_production
# cnc_program_ids = [item.id for item in cnc_program]
# workpiece_delivery = request.env['sf.workpiece.delivery'].sudo().search(
# [('production_id', 'in', cnc_program_ids)])
# if workpiece_delivery:
# workpiece_delivery.write({'is_cnc_program_down': True})
return json.JSONEncoder().encode(res)
else:
res = {'status': 0, 'message': '该制造订单暂未开始'}