From a1678f76c25030a1604e7b592003dfb565e3ee1e Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Mon, 12 Jun 2023 13:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=96=B9=E6=B3=95=E5=9F=BA?= =?UTF-8?q?=E6=9C=AC=E5=AE=8C=E6=88=90=EF=BC=8C=E4=BC=98=E5=8C=96=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/__manifest__.py | 11 +- sf_base/models/tool_base.py | 12 +- sf_base/static/src/scss/format_img.scss | 22 ++ sf_mrs_connect/models/res_config_setting.py | 4 +- sf_mrs_connect/models/sync_common.py | 287 +++++++++++++++----- 5 files changed, 252 insertions(+), 84 deletions(-) create mode 100644 sf_base/static/src/scss/format_img.scss diff --git a/sf_base/__manifest__.py b/sf_base/__manifest__.py index 045692f4..21f4d41d 100644 --- a/sf_base/__manifest__.py +++ b/sf_base/__manifest__.py @@ -23,8 +23,15 @@ ], 'demo': [ ], - 'qweb': [ - ], + 'assets': { + + 'web.assets_qweb': [ + ], + 'web.assets_backend': [ + 'sf_base/static/src/scss/format_img.scss', + ], + + }, 'license': 'LGPL-3', 'installable': True, 'application': False, diff --git a/sf_base/models/tool_base.py b/sf_base/models/tool_base.py index 6f8c7a1f..b41a1075 100644 --- a/sf_base/models/tool_base.py +++ b/sf_base/models/tool_base.py @@ -65,7 +65,7 @@ class IntegralCuttingTool(models.Model): front_angle = fields.Float('前角(°)') rear_angle = fields.Float('后角(°)') main_included_angle = fields.Float('主偏角(°)') - material_model = fields.Many2one('sf.production.materials', '材料型号') + material_model = fields.Many2one('sf.materials.model', '材料型号') nut = fields.Float('配对螺母(mm)') # 适用夹头型号可以多选 chuck_model = fields.Many2many('sf.chuck', string='适用夹头型号') @@ -102,7 +102,7 @@ class Blade(models.Model): rear_angle = fields.Float('后角(°)') main_included_angle = fields.Float('主偏角(°)') r_angle = fields.Float('R角(°)') - material_model = fields.Many2one('sf.production.materials', '材料型号') + material_model = fields.Many2one('sf.materials.model', '材料型号') hardness = fields.Char('加工硬度') nut = fields.Float('配对螺母(mm)') # 适用刀杆型号可以多选 @@ -138,7 +138,7 @@ class CutterBar(models.Model): brand = fields.Many2one('sf.machine.brand', '品牌') c_diameter = fields.Float('C柄径(mm)') total_length = fields.Float('L总长(mm)') - material_model = fields.Many2one('sf.production.materials', '材料型号') + material_model = fields.Many2one('sf.materials.model', '材料型号') blade_number = fields.Integer('刃数') d_diameter = fields.Float('D刃径(mm)') blade = fields.Many2many('sf.blade', string='适用刀片型号') @@ -174,7 +174,7 @@ class CutterPad(models.Model): brand = fields.Many2one('sf.machine.brand', '品牌') c_diameter = fields.Float('C柄径(mm)') total_length = fields.Float('L总长(mm)') - material_model = fields.Many2one('sf.production.materials', '材料型号') + material_model = fields.Many2one('sf.materials.model', '材料型号') blade_number = fields.Integer('刃数') d_diameter = fields.Float('D刃径(mm)') blade = fields.Many2many('sf.blade', string='适用刀片型号') @@ -212,7 +212,7 @@ class Handle(models.Model): length1 = fields.Float('L1(mm)') diameter1 = fields.Float('D1(mm)') weight = fields.Float('重量(kg)') - material_model = fields.Many2one('sf.production.materials', '材料型号') + material_model = fields.Many2one('sf.materials.model', '材料型号') body_accuracy = fields.Float('本体精度(mm)') nut = fields.Float('配对螺母(mm)') chuck_model = fields.Many2many('sf.chuck.model', string='适用夹头型号') @@ -248,7 +248,7 @@ class Chuck(models.Model): diameter = fields.Float('外径(mm)') inner_diameter = fields.Float('内径(mm)') height = fields.Float('高度(mm)') - material_model = fields.Many2one('sf.production.materials', '材料型号') + material_model = fields.Many2one('sf.materials.model', '材料型号') nut = fields.Float('配对螺母(mm)') handle_model = fields.Many2many('sf.handle.model', string='适用刀柄型号') clamping_range = fields.Float('夹持范围(mm)') diff --git a/sf_base/static/src/scss/format_img.scss b/sf_base/static/src/scss/format_img.scss new file mode 100644 index 00000000..97b0975f --- /dev/null +++ b/sf_base/static/src/scss/format_img.scss @@ -0,0 +1,22 @@ +.o_data_row .w-100 { + width: 40px !important; + height: 40px !important; + display: block !important; +} + +.o_list_renderer .o_list_table tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell):not(.o_list_button):not(.o_list_record_remove) { + vertical-align: middle !important; +} + +.o_list_record_selector { + vertical-align: middle; +} + +.img-fluid { + max-width: unset !important; +} + +.o_inner_group .img-fluid { + width: 133px !important; + height: 133px !important; +} \ No newline at end of file diff --git a/sf_mrs_connect/models/res_config_setting.py b/sf_mrs_connect/models/res_config_setting.py index a5422703..b32aef57 100644 --- a/sf_mrs_connect/models/res_config_setting.py +++ b/sf_mrs_connect/models/res_config_setting.py @@ -126,10 +126,10 @@ class ResConfigSettings(models.TransientModel): self.env['sf.integral.cutting.tool'].sync_all_integral_cutting_tool() _logger.info("同步所有整体式刀具完成") _logger.info("同步每日同步功能刀具列表...") - self.env['sf.function.cutting.tool'].sync_function_cutting_tool() + self.env['sf.functional.cutting.tool'].sync_functional_cutting_tool() _logger.info("同步每日功能刀具列表完成") _logger.info("同步所有功能刀具列表...") - self.env['sf.function.cutting.tool'].sync_all_function_cutting_tool() + self.env['sf.functional.cutting.tool'].sync_all_functional_cutting_tool() _logger.info("同步所有功能刀具列表完成") except Exception as e: diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index 02a73c45..0bafad65 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -1112,12 +1112,16 @@ class sfSyncFunctional_cutting_tool(models.Model): if item: brand = self.env['sf.functional.cutting.tool'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: self.env['sf.functional.cutting.tool'].create({ "name": item['name'], "code": item['code'], # 功能刀具类型 - "functional_model_number": self.env['sf.functiona`l.cutting.tool.model'].search( + "functional_model_number": self.env['sf.functional.cutting.tool.model'].search( [('code', '=', item['functional_model_number'])]).id, # 整体刀具型号 "integral_model_number": self.env['sf.integral.cutting.tool'].search( @@ -1147,7 +1151,7 @@ class sfSyncFunctional_cutting_tool(models.Model): "max_life": item['max_life'], "is_standard": item['is_standard'], "applicable_range": item['applicable_range'], - "image": item['image'], + "image": image, }) else: @@ -1185,7 +1189,7 @@ class sfSyncFunctional_cutting_tool(models.Model): "max_life": item['max_life'], "is_standard": item['is_standard'], "applicable_range": item['applicable_range'], - "image": item['image'], + "image": image, }) else: @@ -1209,6 +1213,10 @@ class sfSyncFunctional_cutting_tool(models.Model): if item: brand = self.env['sf.functional.cutting.tool'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: self.env['sf.functional.cutting.tool'].create({ "name": item['name'], @@ -1244,9 +1252,46 @@ class sfSyncFunctional_cutting_tool(models.Model): "max_life": item['max_life'], "is_standard": item['is_standard'], "applicable_range": item['applicable_range'], - "image": item['image'], + "image": image, }) + else: + brand.write({ + "name": item['name'], + "code": item['code'], + # 功能刀具类型 + "functional_model_number": self.env['sf.functional.cutting.tool.model'].search( + [('code', '=', item['functional_model_number'])]).id, + # 整体刀具型号 + "integral_model_number": self.env['sf.integral.cutting.tool'].search( + [('code', '=', item['integral_model_number'])]).id, + # 刀片型号 + "blade_model_number": self.env['sf.blade'].search( + [('code', '=', item['blade_model_number'])]).id, + # 刀杆型号 + "cutterbar_model_number": self.env['sf.cutter.bar'].search( + [('code', '=', item['cutterbar_model_number'])]).id, + # 刀盘型号 + "cutterpad_model_number": self.env['sf.cutter.pad'].search( + [('code', '=', item['cutterpad_model_number'])]).id, + # 刀柄型号 + "handle_model_number": self.env['sf.handle'].search( + [('code', '=', item['handle_model_number'])]).id, + # 夹头型号 + "chuck_model_number": self.env['sf.chuck'].search( + [('code', '=', item['chuck_model_number'])]).id, + "diameter": item['diameter'], + "tool_grade": item['tool_grade'], + "machining_accuracy": item['machining_accuracy'], + "tool_length": item['tool_length'], + "blade_number": item['blade_number'], + "integral_blade_length": item['integral_blade_length'], + "effective_blade_length": item['effective_blade_length'], + "max_life": item['max_life'], + "is_standard": item['is_standard'], + "applicable_range": item['applicable_range'], + "image": image, + }) else: raise ValidationError("认证未通过") @@ -1354,6 +1399,10 @@ class SyncIntegralCuttingTool(models.Model): if item: brand = self.env['sf.integral.cutting.tool'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: self.env['sf.integral.cutting.tool'].create({ # code, name, integral_model_number, brand, total_length, shank_length, blade_length, diameter, blade_number, front_angle, rear_angle, main_included_angle, material_model, nut, chuck_model, scope, image, create_uid, create_date @@ -1361,7 +1410,7 @@ class SyncIntegralCuttingTool(models.Model): "code": item['code'], "integral_model_number": self.env['sf.integral.cutting.tool.model'].search( [("code", '=', item['integral_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "total_length": item['total_length'], "shank_length": item['shank_length'], @@ -1371,12 +1420,35 @@ class SyncIntegralCuttingTool(models.Model): "front_angle": item['front_angle'], "rear_angle": item['rear_angle'], "main_included_angle": item['main_included_angle'], - "material_model": self.env['sf.material.model'].search( - [("code", '=', item['material_model'])]).id, + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, "nut": item['nut'], "chuck_model": chuck_list, "scope": item['scope'], - "image": item['image'], + "image": image, + }) + else: + brand.write({ + "name": item['name'], + "code": item['code'], + "integral_model_number": self.env['sf.integral.cutting.tool.model'].search( + [("code", '=', item['integral_model_number'])]).id, + "brand": self.env['sf.machine.brand'].search( + [("code", '=', item['brand'])]).id, + "total_length": item['total_length'], + "shank_length": item['shank_length'], + "blade_length": item['blade_length'], + "diameter": item['diameter'], + "blade_number": item['blade_number'], + "front_angle": item['front_angle'], + "rear_angle": item['rear_angle'], + "main_included_angle": item['main_included_angle'], + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, + "nut": item['nut'], + "chuck_model": chuck_list, + "scope": item['scope'], + "image": image, }) else: raise ValidationError("认证未通过") @@ -1404,6 +1476,10 @@ class SyncIntegralCuttingTool(models.Model): if item: brand = self.env['sf.integral.cutting.tool'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: self.env['sf.integral.cutting.tool'].create({ # code, name, integral_model_number, brand, total_length, shank_length, blade_length, diameter, blade_number, front_angle, rear_angle, main_included_angle, material_model, nut, chuck_model, scope, image, create_uid, create_date @@ -1411,7 +1487,7 @@ class SyncIntegralCuttingTool(models.Model): "code": item['code'], "integral_model_number": self.env['sf.integral.cutting.tool.model'].search( [("code", '=', item['integral_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "total_length": item['total_length'], "shank_length": item['shank_length'], @@ -1421,12 +1497,35 @@ class SyncIntegralCuttingTool(models.Model): "front_angle": item['front_angle'], "rear_angle": item['rear_angle'], "main_included_angle": item['main_included_angle'], - "material_model": self.env['sf.material.model'].search( - [("code", '=', item['material_model'])]).id, + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, "nut": item['nut'], "chuck_model": chuck_list, "scope": item['scope'], - "image": item['image'], + "image": image, + }) + else: + brand.write({ + "name": item['name'], + "code": item['code'], + "integral_model_number": self.env['sf.integral.cutting.tool.model'].search( + [("code", '=', item['integral_model_number'])]).id, + "brand": self.env['sf.machine.brand'].search( + [("code", '=', item['brand'])]).id, + "total_length": item['total_length'], + "shank_length": item['shank_length'], + "blade_length": item['blade_length'], + "diameter": item['diameter'], + "blade_number": item['blade_number'], + "front_angle": item['front_angle'], + "rear_angle": item['rear_angle'], + "main_included_angle": item['main_included_angle'], + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, + "nut": item['nut'], + "chuck_model": chuck_list, + "scope": item['scope'], + "image": image, }) else: raise ValidationError("认证未通过") @@ -1519,6 +1618,10 @@ class SyncBlade(models.Model): # code, name, blade_model_number, brand, length, width, height, top_angle, front_angle, rear_angle, main_included_angle, r_angle, material_model, hardness, nut, cutter_bar, cutter_pad, radius, image, create_uid, create_date brand = self.env['sf.blade'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: self.env['sf.blade'].create({ "name": item['name'], @@ -1542,7 +1645,7 @@ class SyncBlade(models.Model): "cutter_bar": item['cutter_bar'], "cutter_pad": item['cutter_pad'], "radius": item['radius'], - "image": item['image'].encode('utf-8'), + "image": image, }) else: brand.write({ @@ -1566,7 +1669,7 @@ class SyncBlade(models.Model): "cutter_bar": item['cutter_bar'], "cutter_pad": item['cutter_pad'], "radius": item['radius'], - "image": item['image'].encode('utf-8'), + "image": image, }) else: raise ValidationError("认证未通过") @@ -1586,11 +1689,15 @@ class SyncBlade(models.Model): if result['status'] == 1: if result.get('mrs_blade_all_list'): for item in result['mrs_blade_all_list']: - print('item_image:%s' % item['image'].encode('utf-8')) + # print('item_image:%s' % item['image'].encode('utf-8) if item: brand = self.env['sf.blade'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: self.env['sf.blade'].create({ "name": item['name'], @@ -1614,7 +1721,7 @@ class SyncBlade(models.Model): "cutter_bar": item['cutter_bar'], "cutter_pad": item['cutter_pad'], "radius": item['radius'], - "image": item['image'].encode('utf-8'), + "image": image, }) else: brand.write({ @@ -1638,7 +1745,7 @@ class SyncBlade(models.Model): "cutter_bar": item['cutter_bar'], "cutter_pad": item['cutter_pad'], "radius": item['radius'], - "image": item['image'].encode('utf-8'), + "image": image, }) else: raise ValidationError("认证未通过") @@ -1750,6 +1857,10 @@ class SyncCutterBar(models.Model): if item: brand = self.env['sf.cutter.bar'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # code, name, cutter_bar_model_number, brand, c_diameter, total_length, material_model, blade_number, d_diameter, blade, wrench, screw, radius, accuracy, hardness, scope, image self.env['sf.cutter.bar'].create({ @@ -1772,7 +1883,7 @@ class SyncCutterBar(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) else: brand.write({ @@ -1795,14 +1906,14 @@ class SyncCutterBar(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) print('同步昨日刀杆列表成功') else: raise ValidationError("认证未通过") - # 定时同步每日刀杆列表 - def sync_cutter_bar_today(self): + # 同步所有刀杆列表 + def sync_all_cutter_bar(self): sf_sync_config = self.env['res.config.settings'].get_values() token = sf_sync_config['token'] sf_secret_key = sf_sync_config['sf_secret_key'] @@ -1814,8 +1925,8 @@ class SyncCutterBar(models.Model): result = json.loads(r['result']) print('result:%s' % result) if result['status'] == 1: - if result.get('mrs_cutter_bar_today_list'): - for item in result['mrs_cutter_bar_today_list']: + if result.get('mrs_cutter_bar_all_list'): + for item in result['mrs_cutter_bar_all_list']: blade_list = [] if item.get('blade'): for i in item.get('blade'): @@ -1824,6 +1935,10 @@ class SyncCutterBar(models.Model): if item: brand = self.env['sf.cutter.bar'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # code, name, cutter_bar_model_number, brand, c_diameter, total_length, material_model, blade_number, d_diameter, blade, wrench, screw, radius, accuracy, hardness, scope, image self.env['sf.cutter.bar'].create({ @@ -1846,7 +1961,7 @@ class SyncCutterBar(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) else: brand.write({ @@ -1869,9 +1984,9 @@ class SyncCutterBar(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) - print('同步今日刀杆列表成功') + print('同步所有刀杆列表成功') else: raise ValidationError("认证未通过") @@ -1982,18 +2097,22 @@ class SyncCutterPad(models.Model): if item: brand = self.env['sf.cutter.pad'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # 'code', 'name', 'cutter_pad_model_number', 'brand', 'c_diameter', 'total_length', 'material_model', 'blade_number', 'd_diameter', 'blade', 'wrench', 'screw', 'radius', 'accuracy', 'hardness', 'scope', 'image' self.env['sf.cutter.pad'].create({ "name": item['name'], "code": item['code'], - "cutter_pad_model_number": self.env['sf.cutter.bar.model'].search( + "cutter_pad_model_number": self.env['sf.cutter.pad.model'].search( [("code", '=', item['cutter_pad_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "c_diameter": item['c_diameter'], "total_length": item['total_length'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "blade_number": item['blade_number'], "d_diameter": item['d_diameter'], @@ -2005,19 +2124,19 @@ class SyncCutterPad(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) else: brand.write({ "name": item['name'], "code": item['code'], - "cutter_pad_model_number": self.env['sf.cutter.bar.model'].search( + "cutter_pad_model_number": self.env['sf.cutter.pad.model'].search( [("code", '=', item['cutter_pad_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "c_diameter": item['c_diameter'], "total_length": item['total_length'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "blade_number": item['blade_number'], "d_diameter": item['d_diameter'], @@ -2029,14 +2148,14 @@ class SyncCutterPad(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) print('同步每日刀盘列表成功') else: raise ValidationError("认证未通过") # 定时同步所有刀盘列表 - def sync_cutter_pad_all(self): + def sync_all_cutter_pad(self): sf_sync_config = self.env['res.config.settings'].get_values() token = sf_sync_config['token'] sf_secret_key = sf_sync_config['sf_secret_key'] @@ -2058,18 +2177,22 @@ class SyncCutterPad(models.Model): if item: brand = self.env['sf.cutter.pad'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # 'code', 'name', 'cutter_pad_model_number', 'brand', 'c_diameter', 'total_length', 'material_model', 'blade_number', 'd_diameter', 'blade', 'wrench', 'screw', 'radius', 'accuracy', 'hardness', 'scope', 'image' self.env['sf.cutter.pad'].create({ "name": item['name'], "code": item['code'], - "cutter_pad_model_number": self.env['sf.cutter.bar.model'].search( + "cutter_pad_model_number": self.env['sf.cutter.pad.model'].search( [("code", '=', item['cutter_pad_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "c_diameter": item['c_diameter'], "total_length": item['total_length'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "blade_number": item['blade_number'], "d_diameter": item['d_diameter'], @@ -2081,19 +2204,19 @@ class SyncCutterPad(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) else: brand.write({ "name": item['name'], "code": item['code'], - "cutter_pad_model_number": self.env['sf.cutter.bar.model'].search( + "cutter_pad_model_number": self.env['sf.cutter.pad.model'].search( [("code", '=', item['cutter_pad_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "c_diameter": item['c_diameter'], "total_length": item['total_length'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "blade_number": item['blade_number'], "d_diameter": item['d_diameter'], @@ -2105,7 +2228,7 @@ class SyncCutterPad(models.Model): "accuracy": item['accuracy'], "hardness": item['hardness'], "scope": item['scope'], - "image": item['image'], + "image": image, }) print('同步所有刀盘列表成功') else: @@ -2218,6 +2341,10 @@ class SyncHandle(models.Model): if item: brand = self.env['sf.handle'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # code, name, handle_model_number, brand, length, length1, diameter1, weight, material_model, body_accuracy, nut, chuck_model, clamping_range, detection_accuracy, detection_hardness, standard_speed, image self.env['sf.handle'].create({ @@ -2225,13 +2352,13 @@ class SyncHandle(models.Model): "code": item['code'], "handle_model_number": self.env['sf.handle.model'].search( [("code", '=', item['handle_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "length": item['length'], "length1": item['length1'], "diameter1": item['diameter1'], "weight": item['weight'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "body_accuracy": item['body_accuracy'], "nut": item['nut'], @@ -2241,7 +2368,7 @@ class SyncHandle(models.Model): "detection_accuracy": item['detection_accuracy'], "detection_hardness": item['detection_hardness'], "standard_speed": item['standard_speed'], - "image": item['image'], + "image": image, }) else: brand.write({ @@ -2249,13 +2376,13 @@ class SyncHandle(models.Model): "code": item['code'], "handle_model_number": self.env['sf.handle.model'].search( [("code", '=', item['handle_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "length": item['length'], "length1": item['length1'], "diameter1": item['diameter1'], "weight": item['weight'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "body_accuracy": item['body_accuracy'], "nut": item['nut'], @@ -2265,14 +2392,14 @@ class SyncHandle(models.Model): "detection_accuracy": item['detection_accuracy'], "detection_hardness": item['detection_hardness'], "standard_speed": item['standard_speed'], - "image": item['image'], + "image": image, }) print('同步昨日刀柄列表成功') else: raise ValidationError("认证未通过") # 同步所有刀柄列表 - def sync_handle_all(self): + def sync_all_handle(self): sf_sync_config = self.env['res.config.settings'].get_values() token = sf_sync_config['token'] sf_secret_key = sf_sync_config['sf_secret_key'] @@ -2284,8 +2411,8 @@ class SyncHandle(models.Model): result = json.loads(r['result']) print('result:%s' % result) if result['status'] == 1: - if result.get('mrs_handle_list'): - for item in result['mrs_handle_list']: + if result.get('mrs_handle_all_list'): + for item in result['mrs_handle_all_list']: chuck_list = [] if item.get('chuck_model'): for chuck in item.get('chuck_model'): @@ -2294,6 +2421,10 @@ class SyncHandle(models.Model): if item: brand = self.env['sf.handle'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # code, name, handle_model_number, brand, length, length1, diameter1, weight, material_model, body_accuracy, nut, chuck_model, clamping_range, detection_accuracy, detection_hardness, standard_speed, image self.env['sf.handle'].create({ @@ -2301,13 +2432,13 @@ class SyncHandle(models.Model): "code": item['code'], "handle_model_number": self.env['sf.handle.model'].search( [("code", '=', item['handle_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "length": item['length'], "length1": item['length1'], "diameter1": item['diameter1'], "weight": item['weight'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "body_accuracy": item['body_accuracy'], "nut": item['nut'], @@ -2317,7 +2448,7 @@ class SyncHandle(models.Model): "detection_accuracy": item['detection_accuracy'], "detection_hardness": item['detection_hardness'], "standard_speed": item['standard_speed'], - "image": item['image'], + "image": image, }) else: brand.write({ @@ -2325,13 +2456,13 @@ class SyncHandle(models.Model): "code": item['code'], "handle_model_number": self.env['sf.handle.model'].search( [("code", '=', item['handle_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "length": item['length'], "length1": item['length1'], "diameter1": item['diameter1'], "weight": item['weight'], - "material_model": self.env['sf.material.model'].search( + "material_model": self.env['sf.materials.model'].search( [("materials_no", '=', item['material_model'])]).id, "body_accuracy": item['body_accuracy'], "nut": item['nut'], @@ -2341,7 +2472,7 @@ class SyncHandle(models.Model): "detection_accuracy": item['detection_accuracy'], "detection_hardness": item['detection_hardness'], "standard_speed": item['standard_speed'], - "image": item['image'], + "image": image, }) print('同步所有刀柄列表成功') else: @@ -2454,6 +2585,10 @@ class SyncChuck(models.Model): if item: brand = self.env['sf.chuck'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # code, name, chuck_model_number, brand, accuracy, diameter, inner_diameter, height, material_model, nut, handle_model, clamping_range, feature, image self.env['sf.chuck'].create({ @@ -2461,19 +2596,19 @@ class SyncChuck(models.Model): "name": item['name'], "chuck_model_number": self.env['sf.chuck.model'].search( [("code", '=', item['chuck_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "accuracy": item['accuracy'], "diameter": item['diameter'], "inner_diameter": item['inner_diameter'], "height": item['height'], - "material_model": self.env['sf.material.model'].search( - "materials_no", '=', item['material_model']).id, + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, "nut": item['nut'], "handle_model": handle_model_list, "clamping_range": item['clamping_range'], "feature": item['feature'], - "image": item['image'], + "image": image, }) else: brand.write({ @@ -2481,19 +2616,19 @@ class SyncChuck(models.Model): "name": item['name'], "chuck_model_number": self.env['sf.chuck.model'].search( [("code", '=', item['chuck_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "accuracy": item['accuracy'], "diameter": item['diameter'], "inner_diameter": item['inner_diameter'], "height": item['height'], - "material_model": self.env['sf.material.model'].search( - "materials_no", '=', item['material_model']).id, + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, "nut": item['nut'], "handle_model": handle_model_list, "clamping_range": item['clamping_range'], "feature": item['feature'], - "image": item['image'], + "image": image, }) print('同步每日夹头型号列表成功') else: @@ -2522,6 +2657,10 @@ class SyncChuck(models.Model): if item: brand = self.env['sf.chuck'].search( [("code", '=', item['code'])]) + if item.get('image'): + image = item['image'].encode('utf-8') + else: + image = '' if not brand: # code, name, chuck_model_number, brand, accuracy, diameter, inner_diameter, height, material_model, nut, handle_model, clamping_range, feature, image self.env['sf.chuck'].create({ @@ -2529,19 +2668,19 @@ class SyncChuck(models.Model): "name": item['name'], "chuck_model_number": self.env['sf.chuck.model'].search( [("code", '=', item['chuck_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "accuracy": item['accuracy'], "diameter": item['diameter'], "inner_diameter": item['inner_diameter'], "height": item['height'], - "material_model": self.env['sf.material.model'].search( - "materials_no", '=', item['material_model']).id, + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, "nut": item['nut'], "handle_model": handle_model_list, "clamping_range": item['clamping_range'], "feature": item['feature'], - "image": item['image'], + "image": image, }) else: brand.write({ @@ -2549,19 +2688,19 @@ class SyncChuck(models.Model): "name": item['name'], "chuck_model_number": self.env['sf.chuck.model'].search( [("code", '=', item['chuck_model_number'])]).id, - "brand": self.env['sf.brand'].search( + "brand": self.env['sf.machine.brand'].search( [("code", '=', item['brand'])]).id, "accuracy": item['accuracy'], "diameter": item['diameter'], "inner_diameter": item['inner_diameter'], "height": item['height'], - "material_model": self.env['sf.material.model'].search( - "materials_no", '=', item['material_model']).id, + "material_model": self.env['sf.materials.model'].search( + [("materials_no", '=', item['material_model'])]).id, "nut": item['nut'], "handle_model": handle_model_list, "clamping_range": item['clamping_range'], "feature": item['feature'], - "image": item['image'], + "image": image, }) print('同步所有夹头型号列表成功') else: