From f9e4b73fb0342a452a0a6f49a7b0578f57c088ee Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 23 Aug 2023 17:34:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/base.py | 3 +- sf_mrs_connect/models/sync_common.py | 8 +-- sf_sale/__manifest__.py | 5 +- sf_sale/models/__init__.py | 3 + sf_sale/models/quick_easy_order.py | 26 ++++++++ sf_sale/views/quick_easy_order_view.xml | 88 +++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 7 deletions(-) create mode 100644 sf_sale/models/quick_easy_order.py create mode 100644 sf_sale/views/quick_easy_order_view.xml diff --git a/sf_base/models/base.py b/sf_base/models/base.py index 02c569ba..168272c6 100644 --- a/sf_base/models/base.py +++ b/sf_base/models/base.py @@ -312,7 +312,8 @@ class MachineToolType(models.Model): machine_tool_type_ids = [] for item in machine_tool_type_code: machine_tool_type = self.search([('code', '=', item)]) - machine_tool_type_ids.append(machine_tool_type.id) + if machine_tool_type: + machine_tool_type_ids.append(machine_tool_type.id) return [(6, 0, machine_tool_type_ids)] diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index 892a2eed..8ab2384a 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -1520,7 +1520,7 @@ class SyncFixtureModel(models.Model): [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], "apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids( - item['apply_machine_tool_type_code']).id, + item['apply_machine_tool_type_code']), "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], "active": item['active'], @@ -1550,7 +1550,7 @@ class SyncFixtureModel(models.Model): [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], "apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids( - item['apply_machine_tool_type_code']).id, + item['apply_machine_tool_type_code']), "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], "active": item['active'], @@ -1602,7 +1602,7 @@ class SyncFixtureModel(models.Model): [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], "apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids( - item['apply_machine_tool_type_code']).id, + item['apply_machine_tool_type_code']), "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], "active": item['active'], @@ -1632,7 +1632,7 @@ class SyncFixtureModel(models.Model): [('materials_no', '=', item['materials_model_code'])]).id, "driving_way": item['driving_way'], "apply_machine_tool_type_ids": self.env['sf.machine_tool.type'].sudo()._get_ids( - item['apply_machine_tool_type_code']).id, + item['apply_machine_tool_type_code']), "through_hole_size": item['through_hole_size'], "screw_size": item['screw_size'], "active": item['active'], diff --git a/sf_sale/__manifest__.py b/sf_sale/__manifest__.py index 159f9085..19a102e9 100644 --- a/sf_sale/__manifest__.py +++ b/sf_sale/__manifest__.py @@ -10,9 +10,10 @@ """, 'category': 'sf', 'website': 'https://www.sf.jikimo.com', - 'depends': ['sale', 'sale_management', 'web_widget_model_viewer'], + 'depends': ['sale', 'sale_management', 'point_of_sale', 'web_widget_model_viewer'], 'data': [ - 'views/sale_order_view.xml' + 'views/sale_order_view.xml', + 'views/quick_easy_order_view.xml', ], 'demo': [ ], diff --git a/sf_sale/models/__init__.py b/sf_sale/models/__init__.py index b358ccc1..577497ab 100644 --- a/sf_sale/models/__init__.py +++ b/sf_sale/models/__init__.py @@ -1 +1,4 @@ from. import sale_order +from. import quick_easy_order + + diff --git a/sf_sale/models/quick_easy_order.py b/sf_sale/models/quick_easy_order.py new file mode 100644 index 00000000..c39b3fc5 --- /dev/null +++ b/sf_sale/models/quick_easy_order.py @@ -0,0 +1,26 @@ +from odoo import models, fields +import datetime +import base64 + + +class QuickEasyOrder(models.Model): + _name = 'quick.easy.order' + _description = '简易下单' + + name = fields.Char('订单编号', default=lambda self: self.env['ir.sequence'].next_by_code('quick.easy.order')) + machining_precision = fields.Selection([ + ('0.10', '±0.10mm'), + ('0.05', '±0.05mm'), + ('0.03', '±0.03mm'), + ('0.02', '±0.02mm'), + ('0.01', '±0.01mm')], string='加工精度') + material_id = fields.Many2one('sf.production.materials', '材料') + material_model_id = fields.Many2one('sf.materials.model', '型号') + process_id = fields.Many2one('sf.production.process', string='表面工艺') + parameter_ids = fields.One2many('sf.production.process.parameter', 'process_id', string='可选参数') + quantity = fields.Integer('数量') + price = fields.Float('总价') + model_file = fields.Binary('模型文件') + upload_model_file = fields.Many2many('ir.attachment', 'upload_qf_model_file_attachment_ref', string='上传模型文件') + delivery_time = fields.Date('交货日期') + customer_id = fields.Many2one('res.partner', string='客户', default=lambda self: self.env.user.partner_id.id) diff --git a/sf_sale/views/quick_easy_order_view.xml b/sf_sale/views/quick_easy_order_view.xml new file mode 100644 index 00000000..ad254b6d --- /dev/null +++ b/sf_sale/views/quick_easy_order_view.xml @@ -0,0 +1,88 @@ + + + + + 快速订单编码规则 + quick.easy.order + FP-%(year)s-%(month)s%(day)s- + 4 + + + # ---------- 快速订单 ------------ + + + tree.quick.easy.order + quick.easy.order + + + + + + + + + + + + + + + + form.quick.easy.order + quick.easy.order + +
+ + +
+
+
+ + + search.quick.easy.order + quick.easy.order + + + + + + + + + + + 快速订单 + quick.easy.order + tree,form + [] + {} + +

+ [便捷订单] 还没有哦!点左上角的[创建]按钮,沙发归你了! +

+

+

+
+
+ + +
+
\ No newline at end of file From 5de04449e47575af039ada20aebaf89f840584e6 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Fri, 25 Aug 2023 10:39:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=AF=B9=E6=A8=A1=E5=9E=8B=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E4=B8=8A=E8=89=B2=E5=92=8C=E7=89=B9=E5=BE=81=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E5=8F=8A=E8=87=AA=E5=8A=A8=E6=8A=A5=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_mrs_connect/models/res_config_setting.py | 4 + .../views/res_config_settings_views.xml | 14 ++ sf_sale/models/auto_quatotion_common.py | 37 +++++ sf_sale/models/feature.sqlite | Bin 0 -> 32768 bytes sf_sale/models/price.sqlite | Bin 0 -> 32768 bytes sf_sale/models/process_time.db | Bin 0 -> 106496 bytes sf_sale/models/quick_easy_order.py | 142 +++++++++++++++--- sf_sale/views/quick_easy_order_view.xml | 25 ++- 8 files changed, 195 insertions(+), 27 deletions(-) create mode 100644 sf_sale/models/auto_quatotion_common.py create mode 100644 sf_sale/models/feature.sqlite create mode 100644 sf_sale/models/price.sqlite create mode 100644 sf_sale/models/process_time.db diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py index d3aa687a..c158ab09 100644 --- a/sf_mrs_connect/models/res_config_setting.py +++ b/sf_mrs_connect/models/res_config_setting.py @@ -13,6 +13,7 @@ class ResConfigSettings(models.TransientModel): token = fields.Char(string='TOKEN', default='b811ac06-3f00-11ed-9aed-0242ac110003') sf_secret_key = fields.Char(string='密钥', default='wBmxej38OkErKhD6') sf_url = fields.Char(string='访问地址', default='https://sf.cs.jikimo.com') + bfm_url = fields.Char(string='业务平台后端访问地址', default='https://bfm.jikimo.com') ftp_host = fields.Char(string='FTP的ip') ftp_port = fields.Char(string='FTP端口') ftp_user = fields.Char(string='FTP用户') @@ -81,6 +82,7 @@ class ResConfigSettings(models.TransientModel): token = config.get_param('token', default='') sf_secret_key = config.get_param('sf_secret_key', default='') sf_url = config.get_param('sf_url', default='') + bfm_url = config.get_param('bfm_url', default='') ftp_host = config.get_param('ftp_host', default='') ftp_port = config.get_param('ftp_port', default='') ftp_user = config.get_param('ftp_user', default='') @@ -90,6 +92,7 @@ class ResConfigSettings(models.TransientModel): token=token, sf_secret_key=sf_secret_key, sf_url=sf_url, + bfm_url=bfm_url, ftp_host=ftp_host, ftp_port=ftp_port, ftp_user=ftp_user, @@ -103,6 +106,7 @@ class ResConfigSettings(models.TransientModel): ir_config.set_param("token", self.token or "") ir_config.set_param("sf_secret_key", self.sf_secret_key or "") ir_config.set_param("sf_url", self.sf_url or "") + ir_config.set_param("bfm_url", self.bfm_url or "") ir_config.set_param("ftp_host", self.ftp_host or "") ir_config.set_param("ftp_port", self.ftp_port or "") ir_config.set_param("ftp_user", self.ftp_user or "") diff --git a/sf_mrs_connect/views/res_config_settings_views.xml b/sf_mrs_connect/views/res_config_settings_views.xml index e8d81453..bc829b2f 100644 --- a/sf_mrs_connect/views/res_config_settings_views.xml +++ b/sf_mrs_connect/views/res_config_settings_views.xml @@ -60,6 +60,20 @@ +
+

业务平台参数配置

+
+
+
+
+
+
+
+
+
+
diff --git a/sf_sale/models/auto_quatotion_common.py b/sf_sale/models/auto_quatotion_common.py new file mode 100644 index 00000000..09ea3f0f --- /dev/null +++ b/sf_sale/models/auto_quatotion_common.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +import logging +from odoo.modules import get_resource_path +from odoo import fields, models, api +from quatotion import readSql, feature_recognize, auto_quatotion + +__author__ = 'jinling.yang' +_logger = logging.getLogger(__name__) + + +class AutoQuatotion(models.Model): + _name = 'sf.auto_quatotion.common' + _description = u'自动报价公用类' + + # 获取feature.sqlite的地址 + def get_feature_full_path(self): + return get_resource_path('sf_sale', 'models', 'feature.sqlite') + + # 获取price.sqlite的地址 + def get_price_full_path(self): + return get_resource_path('sf_sale', 'models', 'price.sqlite') + + # 获取price.sqlite的地址 + 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 diff --git a/sf_sale/models/feature.sqlite b/sf_sale/models/feature.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..f03f3437c3e32e29f8bb95b6d285b5fbc604f486 GIT binary patch literal 32768 zcmeI4O>7%Q6vubH>yNd)J26!iQ6Y5+RB32Tyt}s7&IuD)C2BsJ;HU&tS&p*_4o;jV zwn(XZNV(A?962CP6{uLy0 z%;$53yk5w?I+fRlx~>oD7sJX>WqC-MoGIil=jZjA*@8Z^Fg2xLou8b}%`fU#@{4+I zp)fl+1Gc8~GX;HNW^!&JKMEalxy!|JZP^)83i&snAMd+&2OnMi<|f>=UxeD=ca*E8 z?d^Sr!XsDZz~H4z;-c&C_Khlh04;7iHyX}H+1Xe1clf&R;>C^9x-$wrN8r=sOGlga zTskngFeVC>jb&%YvsY@=Yi_;R#jopr_42U2MHhnB!C2v01`j~ zNB{{S0VIF~kie-SFma$K@$S~M&q!lp*Z=>==y&tQl)I{SUi+SWrmc{y`mK63`ct$N zeJ=7zWQE)a|DoIshr&DECb0zxAOR$R1dsp{KmthMSOjj7fUrBKSi^7KN{s8NQQa8V zleb58T1&EOW>h!Fbttprx|#5;? zQl+}F9N(_i>T3fa9v3}v=nLYeCtxJpD#(C1Gi&inmaB3=HEE|aASF4~YGt!tDVO4# z@Lgc8me$m?ofzm{5e?>Svcp*`?N-4w=z-(y&L-j3j=DG0y;jpqS%zuZ*))}Jx!O|S z(m*+qi3m||nubK=pLr)vyMk15WS{-<6o6d&oaVF{)D#{=@ z+lH0-XL$BoGfiz-+3fY<;@h>V^Iil-JFTR81ckwdyDtik5EW)RX(y5p5gj2>g|9+$ z2dz(p{X#=|o=Gz@e6%oj@PyYo#%@q^ORg2_z?Sk@+%VmMn?(}m`&is&GGQATs^wB{ z%`*+=n;{xpCj!kf>|`>VF%M(*ZV;qr#Y+qt3uKNb#TKy%A=_F=CTD0vK+(YFb$+uK z@3h%S8ZcpII-ST|ANI98E;p8Hm1V6t9{}ky%6TTuMZLxAnel?nIJC+_ueDev#9ko) zUhv^^IeLymOtpsqxv(h1&@PD2dQ`koc&p9me56<`5cngd`zF)0lQsq5`c2jZvIa#^ z4XJBBkg>%PFJk!v@&J_dnR*1`Ryv!_T9#oLRIj$aS#@^eOn1!h7p{qCL8@&ba2oAr z=qk~L0PhX-s{?J-FRUK$C}^|N!Ls!vC`j(~zQCMI@tI^X<-H|vunb}AskT?mv`r0N zDS8-&6eAxCFlB6i^=l}41A^JD@hO9?oksnkmd|xX@KT!XYUahX2Bj^`4~&(kb-z7zA+#bxmI4d&6HHPF zz9#RU@nm?!KUG3PU_`n`?X-nj`yM;p&Zl+QYxmE|kZIs~#`nX$8GgD%1G&wKV{N-j fZ_1FJz=me@IXS_W8j5GRV?o05JZ!PKsQ~{1kF|cs literal 0 HcmV?d00001 diff --git a/sf_sale/models/price.sqlite b/sf_sale/models/price.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..50faad92d5e6d44cb3d3b7d169e1b9b039eb4d40 GIT binary patch literal 32768 zcmeI4O>7%Q6vubH>yNd)J26#=P%Cu_RB32TJiCrRa>7JbiJFflbyNbX9LL!N2PaM) zTclJRQjR^skptpX(F$?kgoMN?LIQ+Z35gRYBm^8xqIvd(sj*Vc(ibb$l|oH7g)Tu9g_m?)5QO9K48W5=((p#+4R{rs-gkO? zTzK)sr>eFk_`^2^t)^bn?vXFTH^~MuI}O2pB!C2v01`j~NB{{S0VIF~b|avbJ#X&T z|8MqbTb}qK=xJM`^Y?RSXPdc{zlT!s+J#zSzHBX8g<8F8<=3jEqLr@}YPC<>&rgqzXQpTMbJJ!Gch_flO2G8++pp?nl-27vaiBeK7RYG?HSG~6Eox4>CutKX~F)@%8*)jz!%r z0$dtr6w8J6^&O6a{pV$0&zUpgtR3(ArfnL$w~tu9y_uD?RPR+v;`AT0gi|KCXheC-~$OD0VIF~kN^@u0!RP}AOR$R1dsp{_`eef zcx0hlSua;=iU{w-H!5Yz8-%Dlv~` zRsi7C|KAqKFXZ-<3@^x52fv)#&&O%(gaOXGi4@XvDl@)VyRlJmkZVCe5t&;5M>)e%UvKI6*IZA;TOBA|Cpq)xE$ zmSD|<-2~U52Z1*S8;4U{+U``hdktgAq=uPHCzyOA)P{Oh1Lcg;qRb;TAVvrrG(p)> zO1P1l00D$~({La==vil!#!`v2*@CySX06&0r@~&Lr1U_rO<0}ysO!IRrI{}?oxaqU zXZv$+hhVnj%FrH3L7nOD$byH+3L_Cu#^R6>Eh$lkpF*=It&aq~LS1>*k#@-N*}~i* z65eW=J7wk8j3*fYJ8rTpkYzA_HJ~ngKqe{nyBW)Gkh`E{ z_tb|VZYI*{v}saGnO-U>$^wyV`a$)pTjtO3_*Ue}sHsfB&D{BfpZL z$dBX)a)*3Fw#b*{bMhJagxnw>!72Da0!RP}AOR$R1dsp{Kmter2_OL^fCP?!0Q;7H zB*JW07qf>7*)tDzo7*v!M{P!637W!fYVGtl!V9&&RCS%d9LjD@n|5fB!!cyd{MH zB43e}P$cx7Y6fp<`SAPdd!Z%ryn0`|qumG(h6_g!Ai6{XNB{{S0VIF~kN^@u0(%fx zkfCD0+5Uq4OV}{u8)b)BFc6uMp$x(iaZ3yMPTK*hAi9?1%_-Nbvth@lez=7lBrk7f zS`an%01u_IL8HO+g%J+g*B1hUx@oYV?qc6OvM0aXq&zNLZeo J7MooP@DH2_4ebB` literal 0 HcmV?d00001 diff --git a/sf_sale/models/process_time.db b/sf_sale/models/process_time.db new file mode 100644 index 0000000000000000000000000000000000000000..0b48a3daa60d423d8934187911b3e0da73f45a37 GIT binary patch literal 106496 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 NGq1F;JxSF5{{VI*w=n - + @@ -49,9 +49,24 @@ - + + @@ -80,7 +95,7 @@ {}

- [便捷订单] 还没有哦!点左上角的[创建]按钮,沙发归你了! + [快速订单] 还没有哦!点左上角的[创建]按钮,沙发归你了!

@@ -91,9 +106,9 @@ - \ No newline at end of file