1、获取mrs编程接口优化,重新编程接口优化,创建CAM方法优化,cnc用刀校验逻辑优化
This commit is contained in:
@@ -297,7 +297,7 @@ class MrpProduction(models.Model):
|
|||||||
def update_programming_state(self):
|
def update_programming_state(self):
|
||||||
try:
|
try:
|
||||||
manufacturing_type = 'rework'
|
manufacturing_type = 'rework'
|
||||||
if self.is_scrap is False:
|
if self.is_scrap:
|
||||||
manufacturing_type = 'scrap'
|
manufacturing_type = 'scrap'
|
||||||
elif self.tool_state == '2':
|
elif self.tool_state == '2':
|
||||||
manufacturing_type = 'invalid_tool_rework'
|
manufacturing_type = 'invalid_tool_rework'
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ class Sf_Mrs_Connect(http.Controller):
|
|||||||
ret = json.loads(ret['result'])
|
ret = json.loads(ret['result'])
|
||||||
logging.info('下发编程单:%s' % ret)
|
logging.info('下发编程单:%s' % ret)
|
||||||
domain = [('programming_no', '=', ret['programming_no'])]
|
domain = [('programming_no', '=', ret['programming_no'])]
|
||||||
if ret['manufacturing_type'] == 'scrap':
|
if ret['manufacturing_type'] in ('scrap', 'invalid_tool_rework'):
|
||||||
domain += [('state', 'not in', ['done', 'scrap', 'cancel'])]
|
domain += [('state', 'not in', ['done', 'scrap', 'cancel'])]
|
||||||
productions = request.env['mrp.production'].with_user(
|
productions = request.env['mrp.production'].with_user(
|
||||||
request.env.ref("base.user_admin")).search(domain)
|
request.env.ref("base.user_admin")).search(domain)
|
||||||
|
|||||||
@@ -314,27 +314,28 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
|
|||||||
'applicant': None,
|
'applicant': None,
|
||||||
'sf_functional_tool_assembly_id': None})
|
'sf_functional_tool_assembly_id': None})
|
||||||
|
|
||||||
def create_cam_work_plan(self, cnc_processing, missing_tools):
|
def create_cam_work_plan(self, cnc_ids):
|
||||||
"""
|
"""
|
||||||
根据传入的工单信息,查询是否有需要的功能刀具,如果没有则生成CAM工单程序用刀计划
|
根据传入的工单信息,查询是否有需要的功能刀具,如果没有则生成CAM工单程序用刀计划
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# 获取编程单号
|
# 获取编程单号
|
||||||
programming_no = cnc_processing.workorder_id.production_id.programming_no
|
programming_no = cnc_ids[0].workorder_id.production_id.programming_no
|
||||||
logging.info(f'编程单号:{programming_no}')
|
logging.info(f'编程单号:{programming_no}')
|
||||||
for missing_tool in missing_tools:
|
for cnc_processing in cnc_ids:
|
||||||
|
tool_name = cnc_processing.cutting_tool_name
|
||||||
cam_id = self.env['sf.cam.work.order.program.knife.plan'].sudo().search(
|
cam_id = self.env['sf.cam.work.order.program.knife.plan'].sudo().search(
|
||||||
[('programming_no', '=', programming_no),
|
[('programming_no', '=', programming_no),
|
||||||
('functional_tool_name', '=', missing_tool)])
|
('functional_tool_name', '=', tool_name)])
|
||||||
if cam_id:
|
if cam_id:
|
||||||
logging.info(f'CAM装刀计划:{cam_id}')
|
logging.info(f'编程单号{programming_no}功能刀具名称{tool_name}已存在CAM装刀计划:{cam_id}')
|
||||||
else:
|
else:
|
||||||
knife_plan = self.env['sf.cam.work.order.program.knife.plan'].sudo().create({
|
knife_plan = self.env['sf.cam.work.order.program.knife.plan'].sudo().create({
|
||||||
'name': cnc_processing.workorder_id.production_id.name,
|
'name': cnc_processing.workorder_id.production_id.name,
|
||||||
'programming_no': programming_no,
|
'programming_no': programming_no,
|
||||||
'cam_procedure_code': cnc_processing.program_name,
|
'cam_procedure_code': cnc_processing.program_name,
|
||||||
'filename': cnc_processing.cnc_id.name,
|
'filename': cnc_processing.cnc_id.name,
|
||||||
'functional_tool_name': missing_tool,
|
'functional_tool_name': tool_name,
|
||||||
'cam_cutter_spacing_code': cnc_processing.cutting_tool_no,
|
'cam_cutter_spacing_code': cnc_processing.cutting_tool_no,
|
||||||
'process_type': cnc_processing.processing_type,
|
'process_type': cnc_processing.processing_type,
|
||||||
'margin_x_y': float(cnc_processing.margin_x_y),
|
'margin_x_y': float(cnc_processing.margin_x_y),
|
||||||
@@ -344,9 +345,10 @@ class CAMWorkOrderProgramKnifePlan(models.Model):
|
|||||||
'shank_model': cnc_processing.cutting_tool_handle_type,
|
'shank_model': cnc_processing.cutting_tool_handle_type,
|
||||||
'estimated_processing_time': cnc_processing.estimated_processing_time,
|
'estimated_processing_time': cnc_processing.estimated_processing_time,
|
||||||
})
|
})
|
||||||
logging.info('CAM工单程序用刀计划创建成功!!!')
|
logging.info(f'创建CAM工单程序用刀计划:{knife_plan}')
|
||||||
# 创建装刀请求
|
# 创建装刀请求
|
||||||
knife_plan.apply_for_tooling()
|
knife_plan.apply_for_tooling()
|
||||||
|
logging.info('CAM工单程序用刀计划创建已完成!!!')
|
||||||
|
|
||||||
def unlink_cam_plan(self, production):
|
def unlink_cam_plan(self, production):
|
||||||
for item in production:
|
for item in production:
|
||||||
|
|||||||
@@ -192,6 +192,7 @@ class MrpProduction(models.Model):
|
|||||||
'handle_result': '待处理'
|
'handle_result': '待处理'
|
||||||
})
|
})
|
||||||
# 自动调用重新获取编程的方法
|
# 自动调用重新获取编程的方法
|
||||||
|
logging.info('cnc用刀校验到无效刀自动调用重新编程方法:update_programming_state()')
|
||||||
self[0].update_programming_state()
|
self[0].update_programming_state()
|
||||||
# 修改制造订单 编程状态变为“编程中”
|
# 修改制造订单 编程状态变为“编程中”
|
||||||
self.write({'programming_state': '编程中', 'work_state': '编程中'})
|
self.write({'programming_state': '编程中', 'work_state': '编程中'})
|
||||||
@@ -203,10 +204,10 @@ class MrpProduction(models.Model):
|
|||||||
cnc_ids.write({'tool_state': '1'})
|
cnc_ids.write({'tool_state': '1'})
|
||||||
if missing_tool_2 and not invalid_tool:
|
if missing_tool_2 and not invalid_tool:
|
||||||
# 调用CAM工单程序用刀计划创建方法
|
# 调用CAM工单程序用刀计划创建方法
|
||||||
logging.info('调用CAM工单程序用刀计划创建方法!!!')
|
|
||||||
cnc_ids = self.env['sf.cnc.processing'].sudo().search(
|
cnc_ids = self.env['sf.cnc.processing'].sudo().search(
|
||||||
[('workorder_id', 'in', workorder_ids.ids), ('cutting_tool_name', 'in', missing_tool_2)])
|
[('workorder_id', 'in', workorder_ids.filtered(lambda a: a.production_id == self[0].id).ids),
|
||||||
|
('cutting_tool_name', 'in', missing_tool_2)])
|
||||||
if cnc_ids:
|
if cnc_ids:
|
||||||
self.env['sf.cam.work.order.program.knife.plan'].sudo().create_cam_work_plan(cnc_ids[0], list(
|
logging.info('调用CAM工单程序用刀计划创建方法!!!')
|
||||||
set(missing_tool_2)))
|
self.env['sf.cam.work.order.program.knife.plan'].sudo().create_cam_work_plan(cnc_ids)
|
||||||
logging.info('工单cnc程序用刀校验完成!!!')
|
logging.info('工单cnc程序用刀校验完成!!!')
|
||||||
|
|||||||
Reference in New Issue
Block a user