diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index 749ceafe..66ae92f9 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -870,46 +870,46 @@ class MrpProduction(models.Model): [('programming_no', '=', self.programming_no), ('state', 'not in', ('cancel', 'done'))]) logging.info('get_new_program productions:%s' % productions) if productions: - workorder_ids = set() for production in productions: - for workorder in production.workorder_ids: - if workorder.processing_panel == processing_panel and workorder.routing_type == 'CNC加工' and workorder.state not in ( - 'rework', 'done'): - workorder_ids.add(workorder.id) - panel_workorder = self.env['mrp.workorder'].search([('id', 'in', list(workorder_ids))]) - logging.info('get_new_program panel_workorder:%s' % panel_workorder) - if panel_workorder: - if panel_workorder.cnc_ids: + panel_workorder = production.workorder_ids.filtered(lambda + pw: pw.processing_panel == processing_panel and pw.routing_type == 'CNC加工' and pw.state not in ( + 'rework', 'done')) + logging.info('get_new_program panel_workorder:%s' % panel_workorder) + if panel_workorder: logging.info('get_new_program 1') - panel_workorder.cmm_ids.sudo().unlink() - panel_workorder.cnc_ids.sudo().unlink() - logging.info('get_new_program 2') - self.env['sf.cam.work.order.program.knife.plan'].sudo().unlink_cam_plan( - productions) - logging.info('get_new_program 3') - # program_path_tmp_panel = os.path.join('C://Users//43484//Desktop//fsdownload//test', - # processing_panel) - logging.info('program_path_tmp_panel:%s' % program_path_tmp_panel) - files_panel = os.listdir(program_path_tmp_panel) - if files_panel: - for file in files_panel: - file_extension = os.path.splitext(file)[1] - if file_extension.lower() == '.pdf': - panel_file_path = os.path.join(program_path_tmp_panel, file) - logging.info('panel_file_path:%s' % panel_file_path) - logging.info('get_new_program 4') - panel_workorder.write( - {'cnc_ids': panel_workorder.cnc_ids.sudo()._json_cnc_processing(processing_panel, result), - 'cmm_ids': panel_workorder.cmm_ids.sudo()._json_cmm_program(processing_panel, result), - 'cnc_worksheet': base64.b64encode(open(panel_file_path, 'rb').read())}) - logging.info('get_new_program 5') - pre_workorder = productions.workorder_ids.filtered(lambda - ap: ap.routing_type == '装夹预调' and ap.processing_panel == processing_panel and ap.state != 'rework') - logging.info('get_new_program 6') - if pre_workorder: - pre_workorder.write( - {'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())}) - logging.info('get_new_program 7') + if panel_workorder.cmm_ids: + panel_workorder.cmm_ids.sudo().unlink() + if panel_workorder.cnc_ids: + panel_workorder.cnc_ids.sudo().unlink() + logging.info('get_new_program 2') + self.env['sf.cam.work.order.program.knife.plan'].sudo().unlink_cam_plan( + production) + logging.info('get_new_program 3') + # program_path_tmp_panel = os.path.join('C://Users//43484//Desktop//fsdownload//test', + # processing_panel) + logging.info('program_path_tmp_panel:%s' % program_path_tmp_panel) + files_panel = os.listdir(program_path_tmp_panel) + if files_panel: + for file in files_panel: + file_extension = os.path.splitext(file)[1] + if file_extension.lower() == '.pdf': + panel_file_path = os.path.join(program_path_tmp_panel, file) + logging.info('panel_file_path:%s' % panel_file_path) + logging.info('get_new_program 4') + panel_workorder.write( + {'cnc_ids': panel_workorder.cnc_ids.sudo()._json_cnc_processing(processing_panel, + result), + 'cmm_ids': panel_workorder.cmm_ids.sudo()._json_cmm_program(processing_panel, result), + 'cnc_worksheet': base64.b64encode(open(panel_file_path, 'rb').read())}) + logging.info('get_new_program 5') + pre_workorder = production.workorder_ids.filtered(lambda + ap: ap.routing_type == '装夹预调' and ap.processing_panel == processing_panel and ap.state not in ( + 'rework', 'done')) + logging.info('get_new_program 6') + if pre_workorder: + pre_workorder.write( + {'processing_drawing': base64.b64encode(open(panel_file_path, 'rb').read())}) + logging.info('get_new_program 7') else: raise UserError(result['message']) except Exception as e: