优化制造订单的获取cnc程序

This commit is contained in:
jinling.yang
2024-05-09 18:29:30 +08:00
parent 6a4fd4d922
commit 3d56e54fb2
5 changed files with 56 additions and 42 deletions

View File

@@ -154,7 +154,7 @@ class MrpProduction(models.Model):
production.maintenance_count = len(production.request_ids)
# cnc程序获取
def fetchCNC(self):
def fetchCNC(self, production_names):
cnc = self.env['mrp.production'].search([('id', '=', self.id)])
quick_order = self.env['quick.easy.order'].search(
[('name', '=', cnc.product_id.default_code.rsplit('-', 1)[0])])
@@ -166,8 +166,8 @@ class MrpProduction(models.Model):
if quick_order:
programme_way = 'manual operation'
try:
res = {'model_code': '' if not cnc.product_id.model_code else cnc.product_id.model_code,
'production_no': cnc.name,
res = {'model_code': cnc.product_id.name,
'production_no': production_names,
'machine_tool_code': "",
'material_code': self.env['sf.production.materials'].search(
[('id', '=', cnc.product_id.materials_id.id)]).materials_no,
@@ -185,7 +185,10 @@ class MrpProduction(models.Model):
'model_file': '' if not cnc.product_id.model_file else base64.b64encode(
cnc.product_id.model_file).decode('utf-8')
}
logging.info('res:%s' % res)
# 打印出除了 model_file 之外的所有键值对
for key, value in res.items():
if key != 'model_file':
logging.info('%s: %s' % (key, value))
configsettings = self.env['res.config.settings'].get_values()
config_header = Common.get_headers(self, configsettings['token'], configsettings['sf_secret_key'])
url = '/api/intelligent_programming/create'
@@ -263,15 +266,15 @@ class MrpProduction(models.Model):
# 其他规则限制: 默认只分配给工作中心状态为非故障的工作中心;
def _create_workorder3(self):
production_names = [production.name for production in self if production.product_id.categ_id.type == '成品']
programming_no = None
product_id_new = None
production_ids = []
product_first = None
for production in self:
if not production.bom_id or not production.product_id:
continue
workorders_values = []
if product_id_new is None:
product_id_new = production.product_id
if product_first is None:
product_first = production.product_id
product_qty = production.product_uom_id._compute_quantity(production.product_qty,
production.bom_id.product_uom_id)
@@ -296,16 +299,13 @@ class MrpProduction(models.Model):
'state': 'pending',
}]
if production.product_id.categ_id.type == '成品':
if production_ids is None:
production_ids.append({production.name})
if programming_no is None:
production.fetchCNC()
production.fetchCNC(production_names)
programming_no = production.programming_no
else:
if production.product_id == product_id_new:
if production.product_id == product_first:
if not production.programming_no:
production.write({'programming_no': programming_no, 'programming_state': '编程中'})
# 根据加工面板的面数及对应的工序模板生成工单
i = 0
processing_panel_len = len(production.product_id.model_processing_panel.split(','))