Merge branch 'hotfix/优化多次编程单下发' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into release/release_1.4

This commit is contained in:
jinling.yang
2024-06-05 17:15:00 +08:00
2 changed files with 36 additions and 37 deletions

View File

@@ -1039,10 +1039,8 @@ class CNCprocessing(models.Model):
for f in files: for f in files:
if os.path.splitext(f)[1] == ".pdf": if os.path.splitext(f)[1] == ".pdf":
full_path = os.path.join(serverdir, root, f) full_path = os.path.join(serverdir, root, f)
if full_path is not False: cnc_processing.workorder_id.cnc_worksheet = base64.b64encode(
if not cnc_processing.workorder_id.cnc_worksheet: open(full_path, 'rb').read())
cnc_processing.workorder_id.cnc_worksheet = base64.b64encode(
open(full_path, 'rb').read())
else: else:
if f in program_path: if f in program_path:
# if cnc_processing.program_name == f.split('.')[0]: # if cnc_processing.program_name == f.split('.')[0]:

View File

@@ -311,48 +311,49 @@ 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): def create_cam_work_plan(self, cnc_processing_ids):
""" """
根据传入的工单信息查询是否有需要的功能刀具如果没有则生成CAM工单程序用刀计划 根据传入的工单信息查询是否有需要的功能刀具如果没有则生成CAM工单程序用刀计划
""" """
status = False for cnc_processing in cnc_processing_ids:
if cnc_processing.cutting_tool_name: status = False
functional_tools = self.env['sf.real.time.distribution.of.functional.tools'].sudo().search( if cnc_processing.cutting_tool_name:
[('name', '=', cnc_processing.cutting_tool_name)]) functional_tools = self.env['sf.real.time.distribution.of.functional.tools'].sudo().search(
if functional_tools: [('name', '=', cnc_processing.cutting_tool_name)])
for functional_tool in functional_tools: if functional_tools:
if functional_tool.on_tool_stock_num == 0: for functional_tool in functional_tools:
if functional_tool.tool_stock_num == 0 and functional_tool.side_shelf_num == 0: if functional_tool.on_tool_stock_num == 0:
status = True if functional_tool.tool_stock_num == 0 and functional_tool.side_shelf_num == 0:
else: status = True
status = True else:
if status: status = True
knife_plan = self.env['sf.cam.work.order.program.knife.plan'].sudo().create({ if status:
'name': cnc_processing.workorder_id.production_id.name, knife_plan = self.env['sf.cam.work.order.program.knife.plan'].sudo().create({
'cam_procedure_code': cnc_processing.program_name, 'name': cnc_processing.workorder_id.production_id.name,
'filename': cnc_processing.cnc_id.name, 'cam_procedure_code': cnc_processing.program_name,
'functional_tool_name': cnc_processing.cutting_tool_name, 'filename': cnc_processing.cnc_id.name,
'cam_cutter_spacing_code': cnc_processing.cutting_tool_no, 'functional_tool_name': cnc_processing.cutting_tool_name,
'process_type': cnc_processing.processing_type, 'cam_cutter_spacing_code': cnc_processing.cutting_tool_no,
'margin_x_y': float(cnc_processing.margin_x_y), 'process_type': cnc_processing.processing_type,
'margin_z': float(cnc_processing.margin_z), 'margin_x_y': float(cnc_processing.margin_x_y),
'finish_depth': float(cnc_processing.depth_of_processing_z), 'margin_z': float(cnc_processing.margin_z),
'extension_length': float(cnc_processing.cutting_tool_extension_length), 'finish_depth': float(cnc_processing.depth_of_processing_z),
'shank_model': cnc_processing.cutting_tool_handle_type, 'extension_length': float(cnc_processing.cutting_tool_extension_length),
'estimated_processing_time': cnc_processing.estimated_processing_time, 'shank_model': cnc_processing.cutting_tool_handle_type,
}) 'estimated_processing_time': cnc_processing.estimated_processing_time,
logging.info('CAM工单程序用刀计划创建成功') })
# 创建装刀请求 logging.info('CAM工单程序用刀计划创建成功')
knife_plan.apply_for_tooling() # 创建装刀请求
else: knife_plan.apply_for_tooling()
logging.info('功能刀具【%s】满足CNC用刀需求' % cnc_processing.cutting_tool_name) else:
logging.info('功能刀具【%s】满足CNC用刀需求' % cnc_processing.cutting_tool_name)
def unlink_cam_plan(self, production): def unlink_cam_plan(self, production):
for item in production: for item in production:
cam_plan_ids = self.env['sf.cam.work.order.program.knife.plan'].search([('name', '=', item.name)]) cam_plan_ids = self.env['sf.cam.work.order.program.knife.plan'].search([('name', '=', item.name)])
for cam_plan_id in cam_plan_ids: for cam_plan_id in cam_plan_ids:
assembly_id = cam_plan_id.sf_functional_tool_assembly_id assembly_id = cam_plan_id.sf_functional_tool_assembly_id
if assembly_id.assemble_status == 0 and not assembly_id.start_preset_bool: if assembly_id.assemble_status in ('0', '待组装') and not assembly_id.start_preset_bool:
logging.info('%s删除成功!!!' % assembly_id) logging.info('%s删除成功!!!' % assembly_id)
assembly_id.sudo().unlink() assembly_id.sudo().unlink()
logging.info('unlink_cam_plan成功') logging.info('unlink_cam_plan成功')