撤回_run_manufacturing方法
This commit is contained in:
@@ -740,6 +740,86 @@ class MrpProduction(models.Model):
|
||||
logging.info('change_programming_state error:%s' % e)
|
||||
raise UserError("修改编程单状态失败,请联系管理员")
|
||||
|
||||
# cnc程序获取
|
||||
def fetchCNC(self, production_names):
|
||||
cnc = self.env['mrp.production'].search([('id', '=', self.id)])
|
||||
quick_order = False
|
||||
if cnc.product_id.default_code:
|
||||
quick_order = self.env['quick.easy.order'].search(
|
||||
[('name', '=', cnc.product_id.default_code.rsplit('-', 1)[0])])
|
||||
programme_way = False
|
||||
if cnc.manual_quotation is True:
|
||||
programme_way = 'manual operation'
|
||||
else:
|
||||
programme_way = 'auto'
|
||||
if cnc.production_type == '人工线下加工':
|
||||
programme_way = 'manual operation'
|
||||
if quick_order:
|
||||
programme_way = 'manual operation'
|
||||
try:
|
||||
res = {
|
||||
'production_no': production_names,
|
||||
'machine_tool_code': '',
|
||||
'product_name': cnc.product_id.name,
|
||||
'remanufacture_type': '',
|
||||
'model_code': cnc.product_id.model_code,
|
||||
'material_code': self.env['sf.production.materials'].search(
|
||||
[('id', '=', cnc.product_id.materials_id.id)]).materials_no,
|
||||
'material_type_code': self.env['sf.materials.model'].search(
|
||||
[('id', '=', cnc.product_id.materials_type_id.id)]).materials_no,
|
||||
'machining_processing_panel': cnc.product_id.model_processing_panel,
|
||||
'machining_precision': '',
|
||||
'embryo_long': cnc.product_id.bom_ids[0].bom_line_ids.product_id.length,
|
||||
'embryo_height': cnc.product_id.bom_ids[0].bom_line_ids.product_id.height,
|
||||
'embryo_width': cnc.product_id.bom_ids[0].bom_line_ids.product_id.width,
|
||||
'order_no': cnc.origin,
|
||||
'model_order_no': cnc.product_id.default_code,
|
||||
'user': cnc.env.user.name,
|
||||
'programme_way': programme_way,
|
||||
# 'model_file': '' if not cnc.product_id.model_file else base64.b64encode(
|
||||
# cnc.product_id.model_file).decode('utf-8'),
|
||||
# 'glb_url': cnc.product_id.glb_url,
|
||||
'part_name': cnc.product_id.part_name,
|
||||
'part_number': cnc.product_id.part_number,
|
||||
'machining_drawings': base64.b64encode(cnc.product_id.machining_drawings).decode(
|
||||
'utf-8') if cnc.product_id.machining_drawings else '',
|
||||
'machining_drawings_name': cnc.product_id.machining_drawings_name,
|
||||
'machining_drawings_mimetype': cnc.product_id.machining_drawings_mimetype,
|
||||
# 'model_id': cnc.product_id.model_id,
|
||||
}
|
||||
# 打印出除了 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'
|
||||
config_url = configsettings['sf_url'] + url
|
||||
res['token'] = configsettings['token']
|
||||
# res_str = json.dumps(res)
|
||||
ret = requests.post(config_url, json={}, data=res, headers=config_header)
|
||||
ret = ret.json()
|
||||
logging.info('fetchCNC-ret:%s' % ret)
|
||||
if ret['status'] == 1:
|
||||
self.write(
|
||||
{'programming_no': ret['programming_no'], 'programming_state': '编程中', 'work_state': '编程中'})
|
||||
# 生成编程记录
|
||||
self.programming_record_ids.create({
|
||||
'number': len(self.programming_record_ids) + 1,
|
||||
'production_id': self.id,
|
||||
'reason': '首次下发',
|
||||
'programming_method': False,
|
||||
'current_programming_count': False,
|
||||
'target_production_id': False,
|
||||
'apply_time': fields.Datetime.now(),
|
||||
'send_time': False,
|
||||
})
|
||||
else:
|
||||
raise UserError(ret['message'])
|
||||
except Exception as e:
|
||||
logging.info('fetchCNC error:%s' % e)
|
||||
raise UserError("cnc程序获取编程单失败,请联系管理员")
|
||||
|
||||
# 维修模块按钮
|
||||
def button_maintenance_req(self):
|
||||
self.ensure_one()
|
||||
@@ -1630,77 +1710,7 @@ class MrpProduction(models.Model):
|
||||
else:
|
||||
vals['procurement_group_id'] = is_custemer_group_id[key]
|
||||
|
||||
productions = super(MrpProduction, self).create(vals_list)
|
||||
|
||||
# 查询成品工序排序(自动化产线加工),供后续使用
|
||||
product_model_type_routing_sorts = self.env['sf.product.model.type.routing.sort'].search([], order='sequence asc')
|
||||
# 查询成品工序排序(人工线下加工),供后续使用
|
||||
manual_product_model_type_routing_sorts = self.env['sf.manual.product.model.type.routing.sort'].search([], order='sequence asc')
|
||||
# 查询坯料工序排序,供后续使用
|
||||
embryo_model_type_routing_sorts = self.env['sf.embryo.model.type.routing.sort'].search([], order='sequence asc')
|
||||
|
||||
for production in productions:
|
||||
# 生成序列号
|
||||
production.action_generate_serial()
|
||||
# 创建工序模板
|
||||
technology_design_values = []
|
||||
i = 0
|
||||
if production.product_id.categ_id.type == '成品':
|
||||
# 根据加工面板的面数及成品工序模板生成工序设计
|
||||
if production.production_type == '自动化产线加工':
|
||||
product_routing_workcenter = product_model_type_routing_sorts.filtered(
|
||||
lambda s: s.product_model_type_id.id == production.product_id.product_model_type_id.id
|
||||
)
|
||||
else:
|
||||
product_routing_workcenter = manual_product_model_type_routing_sorts.filtered(
|
||||
lambda s: s.manual_product_model_type_id.id == production.product_id.product_model_type_id.id
|
||||
)
|
||||
if production.production_type == '自动化产线加工':
|
||||
if production.product_id.model_processing_panel:
|
||||
for k in (production.product_id.model_processing_panel.split(',')):
|
||||
for route in product_routing_workcenter:
|
||||
i += 1
|
||||
technology_design_values.append(
|
||||
self.env['sf.technology.design'].json_technology_design_str(k, route, i, False)
|
||||
)
|
||||
elif production.production_type == '人工线下加工':
|
||||
for route in product_routing_workcenter:
|
||||
i += 1
|
||||
technology_design_values.append(
|
||||
self.env['sf.technology.design'].json_technology_design_str('ZM', route, i, False)
|
||||
)
|
||||
else:
|
||||
for route in product_routing_workcenter:
|
||||
i += 1
|
||||
technology_design_values.append(
|
||||
self.env['sf.technology.design'].json_technology_design_str(False, route, i, False)
|
||||
)
|
||||
elif production.product_id.categ_id.type == '坯料':
|
||||
embryo_routing_workcenter = embryo_model_type_routing_sorts.filtered(
|
||||
lambda s: s.embryo_model_type_id.id == production.product_id.embryo_model_type_id.id
|
||||
)
|
||||
for route_embryo in embryo_routing_workcenter:
|
||||
i += 1
|
||||
technology_design_values.append(
|
||||
self.env['sf.technology.design'].json_technology_design_str(False, route_embryo, i, False)
|
||||
)
|
||||
# 处理表面工艺
|
||||
for item in production.product_id.product_model_type_id.surface_technics_routing_tmpl_ids:
|
||||
if item.route_workcenter_id.surface_technics_id.id:
|
||||
for process_param in production.product_id.model_process_parameters_ids:
|
||||
if item.route_workcenter_id.surface_technics_id == process_param.process_id:
|
||||
technology_design_values.append(
|
||||
self.env['sf.technology.design'].json_technology_design_str(
|
||||
False,
|
||||
item.route_workcenter_id,
|
||||
i,
|
||||
process_param
|
||||
)
|
||||
)
|
||||
production.technology_design_ids = technology_design_values
|
||||
# 设置制造订单状态为待工艺确认
|
||||
productions.write({'state': 'technology_to_confirmed'})
|
||||
return productions
|
||||
return super(MrpProduction, self).create(vals_list)
|
||||
|
||||
@api.depends('procurement_group_id.stock_move_ids.created_purchase_line_id.order_id',
|
||||
'procurement_group_id.stock_move_ids.move_orig_ids.purchase_line_id.order_id')
|
||||
|
||||
Reference in New Issue
Block a user