# -*- coding: utf-8 -*- import json import base64 import logging import os from datetime import date, timedelta from odoo import http from odoo.http import request class Sf_Mrs_Connect(http.Controller): @http.route('/api/cnc_processing/create', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False, cors="*") def get_cnc_processing_create(self, **kw): """ 获取mrs下发的编程单 :param kw: :return: """ logging.info('get_cnc_processing_create:%s' % kw) try: datas = request.httprequest.data ret = json.loads(datas) ret = json.loads(ret['result']) for obj in ret: cnc = request.env['sf.cnc.processing'].with_user( request.env.ref("base.user_admin")).cnc_processing_create(obj) # # 从ftp拉取对应的文件 model_code = cnc.workorder_id.product_id.barcode processing_panel = cnc.workorder_id.processing_panel logging.info('model_code:%s' % model_code) server_dir = cnc.with_user(request.env.ref("base.user_admin")).download_file_tmp(model_code, processing_panel) cnc_file_path = os.path.join(server_dir, cnc.program_name + '.NC') logging.info('cnc_file_path:%s' % cnc_file_path) cnc.with_user(request.env.ref("base.user_admin")).write_file(cnc_file_path, cnc) # logging.info('get_cnc_processing_create:%s' % '111111111111111') # for root, dirs, files in os.walk(server_dir): # for file in files: # if os.path.splitext(file)[1] == '.xlsx' or os.path.splitext(file)[1] == ".xls": # pdf_path = os.path.splitext(file)[1] + '.PDF' # cnc_pdf_path = request.env['sf.cnc.processing'].with_user( # request.env.ref("base.user_admin")).to_pdf(os.path.join(root, file), pdf_path) # if pdf_path != False: # if not cnc.workorder_id.cnc_worksheet: # cnc.workorder_id.cnc_worksheet = base64.b64encode(open(cnc_pdf_path, 'rb').read()) # else: # logging.info('break:%s' % 'break') # break except Exception as e: logging.info('get_cnc_processing_create error:%s' % e)