From 4ef82ee7cff77d2a0cb1039253de8e98e0985540 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Tue, 24 Oct 2023 10:29:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/models/auto_quatotion_common.py | 24 +++++++++++------------ sf_sale/models/quick_easy_order.py | 26 ++++++++++++------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/sf_sale/models/auto_quatotion_common.py b/sf_sale/models/auto_quatotion_common.py index 2d34a76e..09ea3f0f 100644 --- a/sf_sale/models/auto_quatotion_common.py +++ b/sf_sale/models/auto_quatotion_common.py @@ -2,7 +2,7 @@ import logging from odoo.modules import get_resource_path from odoo import fields, models, api -#from quatotion import readSql, feature_recognize, auto_quatotion +from quatotion import readSql, feature_recognize, auto_quatotion __author__ = 'jinling.yang' _logger = logging.getLogger(__name__) @@ -24,14 +24,14 @@ class AutoQuatotion(models.Model): def get_process_time_db_path(self): return get_resource_path('sf_sale', 'models', 'process_time.db') - # def get_auto_quatotion(self, stp_url, feature_full_path, process_time_db_path, model_code): - # ''' - # 通过打包好的.so库, - # 以调用autoQuatotion库中Quatotion类, - # 初始化后调用类的analyseShape方法对模型文件进行价格预测 - # ''' - # # 初始化自动报价类(输入特征数据库和加工时间数据库) - # reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path) - # # 获取价格、加工时间、尺寸、XYZ、翻面次数 - # feature_info = reader.analyseShape(stp_url, InfoJson={}) - # return feature_info + def get_auto_quatotion(self, stp_url, feature_full_path, process_time_db_path, model_code): + ''' + 通过打包好的.so库, + 以调用autoQuatotion库中Quatotion类, + 初始化后调用类的analyseShape方法对模型文件进行价格预测 + ''' + # 初始化自动报价类(输入特征数据库和加工时间数据库) + reader = auto_quatotion.Quatotion(feature_full_path, process_time_db_path) + # 获取价格、加工时间、尺寸、XYZ、翻面次数 + feature_info = reader.analyseShape(stp_url, InfoJson={}) + return feature_info diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py index 0ce0b6d1..54c37cc2 100644 --- a/sf_sale/models/quick_easy_order.py +++ b/sf_sale/models/quick_easy_order.py @@ -89,10 +89,10 @@ class QuickEasyOrder(models.Model): # 将attach的datas内容转为glb文件 def transition_glb_file(self, report_path, model_code): - # output_file = os.path.join('C:/Users/43484/Desktop/机企猫工作文档', str(model_code) + '.stl') + shapes = read_step_file(report_path) output_file = os.path.join('/tmp', str(model_code) + '.stl') + write_stl_file(shapes, output_file, 'binary', 0.03, 0.5) # 转化为glb - # output_glb_file = os.path.join('C:/Users/43484/Desktop/机企猫工作文档', str(model_code) + '.glb') output_glb_file = os.path.join('/tmp', str(model_code) + '.glb') util_path = get_resource_path('sf_dlm', 'static/util') cmd = 'python3 %s/stl2gltf.py %s %s -b' % (util_path, output_file, output_glb_file) @@ -120,17 +120,17 @@ class QuickEasyOrder(models.Model): model_code = hashlib.sha1(base64_datas.encode('utf-8')).hexdigest() logging.info("模型编码: %s" % model_code) item.model_file = self.transition_glb_file(report_path, model_code) - # ret = self.feature_recognition(report_path, model_code) - # logging.info("自动报价返回值: %s" % ret) - # boxshape = ret['boxshape'].tolist() - # logging.info("自动报价boxshape: %s" % boxshape) - # logging.info('自动报价feature_infos:%s' % ret['feature_infos']) - # item.model_length = boxshape[0] # 长 单位mm - # item.model_width = boxshape[1] # 宽 - # item.model_height = boxshape[2] # 高 - # item.model_volume = boxshape[0] * boxshape[1] * boxshape[2] - # item.model_feature = json.dumps(ret['feature_infos'], ensure_ascii=False) - # self._get_price(item) + ret = self.feature_recognition(report_path, model_code) + logging.info("自动报价返回值: %s" % ret) + boxshape = ret['boxshape'].tolist() + logging.info("自动报价boxshape: %s" % boxshape) + logging.info('自动报价feature_infos:%s' % ret['feature_infos']) + item.model_length = boxshape[0] # 长 单位mm + item.model_width = boxshape[1] # 宽 + item.model_height = boxshape[2] # 高 + item.model_volume = boxshape[0] * boxshape[1] * boxshape[2] + item.model_feature = json.dumps(ret['feature_infos'], ensure_ascii=False) + self._get_price(item) else: item.model_file = False item.model_feature = False From acff814e9b8e6f1d015935bca05cfcf0bbe6cee9 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Tue, 24 Oct 2023 11:23:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_sale/models/quick_easy_order.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py index 54c37cc2..94f70f0a 100644 --- a/sf_sale/models/quick_easy_order.py +++ b/sf_sale/models/quick_easy_order.py @@ -83,6 +83,7 @@ class QuickEasyOrder(models.Model): obj = super(QuickEasyOrder, self).create(vals) # self.model_coloring(obj) + logging.info('---------开始派单到工厂-------') self.distribute_to_factory(obj) obj.state = '待接单' return obj @@ -145,6 +146,7 @@ class QuickEasyOrder(models.Model): :return: """ try: + logging.info('---------派单到工厂-------') res = {'bfm_process_order_list': []} for item in obj: attachment = item.upload_model_file[0] @@ -185,6 +187,7 @@ class QuickEasyOrder(models.Model): i = 1 # 给sale_order的default_code字段赋值 aa = self.env['sale.order'].sudo().search([('name', '=', order_id.name)]) + logging.info('---------aa------- %s' % aa.name) aa.default_code = obj.name for item in res['bfm_process_order_list']: product = self.env['product.template'].sudo().product_create(product_id, item, order_id,