没有model_id的制造订单不请求编程

This commit is contained in:
胡尧
2025-06-26 09:29:02 +08:00
parent 8123885c71
commit 885064fb12

View File

@@ -18,10 +18,13 @@ class MrpProduction(models.Model):
生成编程单 生成编程单
""" """
productions = super().create(vals_list) productions = super().create(vals_list)
# 定义变量存储编程单 # 定义变量存储编程单
grouped_product_programming_no = {} grouped_product_programming_no = {}
# 定义产品拼接成的制造订单名称 # 定义产品拼接成的制造订单名称
grouped_product_production_name = {} grouped_product_production_name = {}
if productions and productions[0].origin:
# 查出所有的制造订单,为了适配通过补货生成的制造订单 # 查出所有的制造订单,为了适配通过补货生成的制造订单
all_productions = self.env['mrp.production'].search([('origin', '=', productions[0].origin)]) all_productions = self.env['mrp.production'].search([('origin', '=', productions[0].origin)])
# 将不同产品的制造订单进行分组 # 将不同产品的制造订单进行分组
@@ -37,6 +40,12 @@ class MrpProduction(models.Model):
grouped_product_production_name[product_id] = ','.join(list(map(lambda p:p.name, grouped_productions))) grouped_product_production_name[product_id] = ','.join(list(map(lambda p:p.name, grouped_productions)))
# 同一个产品的制造订单只请求一次CNC编程 # 同一个产品的制造订单只请求一次CNC编程
for production in productions: for production in productions:
# 如果是委外产生的制造订单,则不请求编程
if production.subcontractor_id:
continue
# 没有模型ID的制造订单不请求编程
if not production.model_id:
continue
if not production.programming_no and production.production_type in ['自动化产线加工','人工线下加工']: if not production.programming_no and production.production_type in ['自动化产线加工','人工线下加工']:
if production.product_id.id not in grouped_product_programming_no: if production.product_id.id not in grouped_product_programming_no:
production.fetchCNC(grouped_product_production_name[production.product_id.id]) production.fetchCNC(grouped_product_production_name[production.product_id.id])