1、重构工单工序的生成规则

This commit is contained in:
yuxianghui
2024-06-13 17:24:46 +08:00
parent 519c534a89
commit c1935e62b9

View File

@@ -484,15 +484,23 @@ class MrpProduction(models.Model):
def _reset_work_order_sequence(self): def _reset_work_order_sequence(self):
for rec in self: for rec in self:
sequence_list = {} sequence_list = {}
# 产品模型类型
model_type_id = rec.product_id.product_model_type_id model_type_id = rec.product_id.product_model_type_id
# 产品加工面板
model_processing_panel = rec.product_id.model_processing_panel
if model_type_id: if model_type_id:
if model_processing_panel:
tmpl_num = 1 tmpl_num = 1
panel_list = model_processing_panel.split(',')
for panel in panel_list:
panel_sequence_list = {}
# 成品工序 # 成品工序
product_routing_tmpl_ids = model_type_id.product_routing_tmpl_ids product_routing_tmpl_ids = model_type_id.product_routing_tmpl_ids
if product_routing_tmpl_ids: if product_routing_tmpl_ids:
for tmpl_id in product_routing_tmpl_ids: for tmpl_id in product_routing_tmpl_ids:
sequence_list.update({tmpl_id.route_workcenter_id.name: tmpl_num}) panel_sequence_list.update({tmpl_id.route_workcenter_id.name: tmpl_num})
tmpl_num += 1 tmpl_num += 1
sequence_list.update({panel: panel_sequence_list})
# 表面工艺工序 # 表面工艺工序
# 模型类型的表面工艺工序模版 # 模型类型的表面工艺工序模版
surface_tmpl_ids = model_type_id.surface_technics_routing_tmpl_ids surface_tmpl_ids = model_type_id.surface_technics_routing_tmpl_ids
@@ -518,12 +526,21 @@ class MrpProduction(models.Model):
for tmpl_id in embryo_routing_tmpl_ids: for tmpl_id in embryo_routing_tmpl_ids:
sequence_list.update({tmpl_id.route_workcenter_id.name: tmpl_num}) sequence_list.update({tmpl_id.route_workcenter_id.name: tmpl_num})
tmpl_num += 1 tmpl_num += 1
else:
raise ValidationError('该产品【加工面板】为空!')
else: else:
raise ValidationError('该产品没有选择【模版类型】!') raise ValidationError('该产品没有选择【模版类型】!')
for work in rec.workorder_ids: for work in rec.workorder_ids:
if sequence_list.get(work.name): if sequence_list.get(work.name):
work.sequence = sequence_list[work.name] work.sequence = sequence_list[work.name]
elif sequence_list.get(work.processing_panel):
processing_panel = sequence_list.get(work.processing_panel)
if processing_panel.get(work.name):
work.sequence = processing_panel[work.name]
else:
raise ValidationError('工序【%s】在产品选择的模版类型中不存在!' % work.name)
else: else:
raise ValidationError('工序【%s】在产品选择的模版类型中不存在!' % work.name) raise ValidationError('工序【%s】在产品选择的模版类型中不存在!' % work.name)
# if work.name == '获取CNC加工程序': # if work.name == '获取CNC加工程序':