文件写入cnc关联的attach里面
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
from datetime import date, timedelta
|
||||
from odoo import http
|
||||
from odoo.http import request
|
||||
@@ -23,9 +24,12 @@ class Sf_Mrs_Connect(http.Controller):
|
||||
ret = json.loads(ret['result'])
|
||||
for obj in ret:
|
||||
cnc = request.env['sf.cnc.processing'].with_user(request.env.ref("base.user_admin")).CNCprocessing_create(obj)
|
||||
logging.info('cnc:%s' % cnc)
|
||||
# 从ftp拉取对应的文件
|
||||
model_code = cnc.workorder_id.product_id.barcode
|
||||
processing_panel = cnc.workorder_id.processing_panel
|
||||
cnc.with_user(request.env.ref("base.user_admin")).download_file_tmp(model_code, processing_panel)
|
||||
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')
|
||||
cnc.with_user(request.env.ref("base.user_admin")).write_file(cnc_file_path, cnc)
|
||||
except Exception as e:
|
||||
logging.info('get_cnc_processing_create error:%s' % e)
|
||||
|
||||
@@ -27,27 +27,19 @@ class FtpController():
|
||||
def download_file_tree(self, remotepath, serverdir):
|
||||
if not os.path.exists(serverdir):
|
||||
os.makedirs(serverdir)
|
||||
logging.info("remotepath: %s" % remotepath)
|
||||
self.ftp.cwd(remotepath)
|
||||
logging.info("serverdir: %s" % serverdir)
|
||||
remotenames = self.ftp.nlst()
|
||||
logging.info("remotenames: %s" % remotenames)
|
||||
for file in remotenames:
|
||||
server = os.path.join(serverdir, file)
|
||||
if file.find(".") == -1:
|
||||
if not os.path.exists(serverdir):
|
||||
os.makedirs(serverdir)
|
||||
self.download_file_tree(server, file)
|
||||
else:
|
||||
logging.info("server: %s" % server)
|
||||
self.download_file(server, file)
|
||||
self.ftp.cwd("..")
|
||||
return True
|
||||
self.ftp.cwd(remotepath)
|
||||
remotenames = self.ftp.nlst()
|
||||
for file in remotenames:
|
||||
server = os.path.join(serverdir, file)
|
||||
if file.find(".") != -1:
|
||||
self.download_file(server, file)
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
def download_file(self, serverfile, remotefile): # 下载指定目录下的指定文件
|
||||
# 下载指定目录下的指定文件
|
||||
def download_file(self, serverfile, remotefile):
|
||||
file_handler = open(serverfile, 'wb')
|
||||
logging.info("file_handler: %s" % file_handler)
|
||||
self.ftp.retrbinary('RETR ' + remotefile, file_handler.write)
|
||||
file_handler.close()
|
||||
return True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user