From ef2f7d3ecbd673534e363c3b0be40229b675be32 Mon Sep 17 00:00:00 2001 From: "qihao.gong@jikimo.com" Date: Fri, 15 Dec 2023 17:28:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=BA=E5=BA=8A=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=8F=82=E6=95=B0=EF=BC=8C=E5=A4=84=E7=90=86=E5=90=8C?= =?UTF-8?q?=E6=AD=A5bug=EF=BC=8C=E4=BB=A5=E5=8F=8A=E6=9C=BA=E5=BA=8A?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=A7=86=E5=9B=BE=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_base/models/tool_base_new.py | 1 + sf_maintenance/models/sf_maintenance.py | 123 ++++++- sf_maintenance/views/maintenance_views.xml | 369 +++++++++++---------- sf_mrs_connect/models/sync_common.py | 311 +++++++++++------ 4 files changed, 500 insertions(+), 304 deletions(-) diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py index 400ed60f..67ec8702 100644 --- a/sf_base/models/tool_base_new.py +++ b/sf_base/models/tool_base_new.py @@ -178,6 +178,7 @@ class MaintenanceStandardImage(models.Model): ('冷却液', '冷却液'), ('压紧方式', '压紧方式'), ('刀片形状', '刀片形状'), ('冷却方式', '冷却方式')], string='特征') equipment_id = fields.Many2many('maintenance.equipment', 'image_id', string='设备') + equipment_lq_id = fields.Many2many('maintenance.equipment', 'image_lq_id', string='设备') jg_equipment_id = fields.Many2many('sf.machine_tool.type', 'jg_image_id', string='机床型号') lq_equipment_id = fields.Many2many('sf.machine_tool.type', 'lq_image_id', string='机床型号') diff --git a/sf_maintenance/models/sf_maintenance.py b/sf_maintenance/models/sf_maintenance.py index d7eb3d55..b0234652 100644 --- a/sf_maintenance/models/sf_maintenance.py +++ b/sf_maintenance/models/sf_maintenance.py @@ -22,6 +22,69 @@ class SfMaintenanceEquipment(models.Model): crea_url = "/api/machine_tool/create" + # 1212修改后的字段 + number_of_axles = fields.Selection( + [("三轴", "三轴"), ("四轴", "四轴"), ("五轴", "五轴"), ("六轴", "六轴")], + default="", string="轴数") + + # 1212新增字段 + a_axis = fields.Integer('a轴') + function_type = fields.Selection( + [("ZXJGZX", "钻铣加工中心"), ("CXJGZX", "车削加工中心"), ("FHJGZX", "复合加工中心")], + default="", string="功能类型") + T_trough_num = fields.Integer('槽数') + T_trough_wide = fields.Float('槽宽(mm)') + T_trough_distance = fields.Float('槽距(mm)') + + taper_type_id = fields.Many2one('spindle.taper.type', string='主轴锥孔型号') + spindle_center_distance = fields.Float('主轴中心至立柱滑轨面距离(mm)') + spindle_continuous_power = fields.Float('主轴持续功率(kw)') + spindle_peak_power = fields.Float('主轴峰值功率(kw)') + spindle_sustained_torque = fields.Float('主轴持续扭矩(n/m)') + spindle_peak_torque = fields.Float('主轴峰值扭矩(n/m)') + linear_axis_guides_type = fields.Char('直线轴导轨类型') + axis_driven_type = fields.Char('坐标轴驱动类型') + + X_axis_rapid_traverse_speed = fields.Char('X轴快速进给速度(mm/min)') + Y_axis_rapid_traverse_speed = fields.Char('Y轴快速进给速度(mm/min)') + Z_axis_rapid_traverse_speed = fields.Char('Z轴快速进给速度(mm/min)') + a_axis_rapid_traverse_speed = fields.Char('a轴快速进给速度(mm/min)') + b_axis_rapid_traverse_speed = fields.Char('b轴快速进给速度(mm/min)') + c_axis_rapid_traverse_speed = fields.Char('c轴快速进给速度(mm/min)') + straight_cutting_feed_rate = fields.Char('直线切削进给速度(mm/min)') + rotary_cutting_feed_rate = fields.Char('回转切削进给速度(mm/min)') + + X_precision = fields.Float('X轴定位精度(mm)', digits=(12, 3)) + X_precision_repeat = fields.Float('X轴重复定位精度(mm)', digits=(12, 3)) + Y_precision = fields.Float('Y轴定位精度(mm)', digits=(12, 3)) + Y_precision_repeat = fields.Float('Y轴重复定位精度(mm)', digits=(12, 3)) + Z_precision = fields.Float('Z轴定位精度(mm)', digits=(12, 3)) + Z_precision_repeat = fields.Float('Z轴重复定位精度(mm)', digits=(12, 3)) + a_precision = fields.Float('a轴定位精度(mm)', digits=(12, 3)) + a_precision_repeat = fields.Float('a轴重复定位精度(mm)', digits=(12, 3)) + b_precision = fields.Float('b轴定位精度(mm)', digits=(12, 3)) + b_precision_repeat = fields.Float('b轴重复定位精度(mm)', digits=(12, 3)) + c_precision = fields.Float('c轴定位精度(mm)', digits=(12, 3)) + c_precision_repeat = fields.Float('c轴重复定位精度(mm)', digits=(12, 3)) + + tool_full_diameter_max = fields.Float('刀具满刀最大直径(mm)') + tool_perimeter_diameter_max = fields.Float('刀具邻空刀最大直径(mm)') + T_tool_time = fields.Integer('T-T换刀时间(s)') + C_tool_time = fields.Integer('C-C换刀时间(s)') + + # 待删除字段 + precision_min = fields.Float('X轴定位精度min(mm)', digits=(12, 3)) + precision_max = fields.Float('X轴定位精度max(mm)', digits=(12, 3)) + lead_screw = fields.Char('丝杆') + guide_rail = fields.Char('导轨') + feed_speed = fields.Char('进给速度(mm/min)') + tool_speed = fields.Char('刀具速度(m/min)') + torque = fields.Char('主轴点击扭矩(n/m)') + motor_power = fields.Char('主轴电机功率(kw)') + taper = fields.Char('主轴锥度(°)') + tool_diameter_max = fields.Char('刀具刀径max(mm)') + tool_diameter_min = fields.Char('刀具刀径min(mm)') + def get_no(self): partner = self.env['maintenance.equipment'].sudo().search( [('MTcode', '!=', '')], @@ -81,9 +144,6 @@ class SfMaintenanceEquipment(models.Model): default="", string="刀把类型") number_of_knife_library = fields.Integer('刀库数量(把)') rotate_speed = fields.Integer('转速') - number_of_axles = fields.Selection( - [("三轴", "三轴"), ("四轴", "四轴"), ("五轴", "五轴")], - default="", string="轴数") # 加工进程 x_axis = fields.Integer('X轴') y_axis = fields.Integer('Y轴') @@ -92,8 +152,6 @@ class SfMaintenanceEquipment(models.Model): c_axis = fields.Integer('C轴') remark = fields.Char('备注') is_binding = fields.Boolean('是否绑定机床', default=False) - precision_min = fields.Float('X轴定位精度min(mm)', digits=(12, 3)) - precision_max = fields.Float('X轴定位精度max(mm)', digits=(12, 3)) control_system_id = fields.Many2one('sf.machine.control_system', string="控制系统") # 多个机床型号对应一个机床 @@ -111,24 +169,15 @@ class SfMaintenanceEquipment(models.Model): ('chilunjia', '齿轮架驱动') ], string="主轴加高方式", default='sifudianji') workpiece_load = fields.Char('工件最大负载(kg)') - lead_screw = fields.Char('丝杆') workbench_L = fields.Char('工作台长度(mm)') workbench_W = fields.Char('工作台宽度(mm)') - guide_rail = fields.Char('导轨') machine_tool_L = fields.Char('机床长度(mm)') machine_tool_W = fields.Char('机床宽度(mm)') machine_tool_H = fields.Char('机床高度(mm)') - feed_speed = fields.Char('进给速度(mm/min)') - tool_speed = fields.Char('刀具速度(m/min)') distance_min = fields.Char('主轴端面至工作台面距离MIN(mm)') distance_max = fields.Char('主轴端面至工作台面距离MAX(mm)') - taper = fields.Char('主轴锥度(°)') - torque = fields.Char('主轴电机扭矩(n/m)') - motor_power = fields.Char('主轴电机功率(kw)') tool_quality_max = fields.Char('刀具最大质量(kg)') tool_long_max = fields.Char('刀具最大长度(mm)') - tool_diameter_max = fields.Char('刀具刀径max(mm)') - tool_diameter_min = fields.Char('刀具刀径min(mm)') machine_tool_category = fields.Many2one('sf.machine_tool.category', string='机床类型') # 一个机床对应一個加工工厂,一个加工工厂对应多个机床 factory_id = fields.Many2one('res.partner', string='所属工厂', @@ -247,6 +296,48 @@ class SfMaintenanceEquipment(models.Model): item.tool_diameter_min = item.type_id.tool_diameter_min item.machine_tool_category = item.type_id.machine_tool_category.id item.brand_id = item.type_id.brand_id.id + #新增修改字段 + item.taper_type_id = item.type_id.taper_type_id.id + item.function_type = item.type_id.function_type + item.a_axis = item.type_id.a_axis + item.T_trough_num = item.type_id.T_trough_num + item.T_trough_wide = item.type_id.T_trough_wide + item.T_trough_distance = item.type_id.T_trough_distance + item.spindle_center_distance = item.type_id.spindle_center_distance + item.spindle_continuous_power = item.type_id.spindle_continuous_power + item.spindle_peak_power = item.type_id.spindle_peak_power + item.spindle_sustained_torque = item.type_id.spindle_sustained_torque + item.spindle_peak_torque = item.type_id.spindle_peak_torque + item.linear_axis_guides_type = item.type_id.linear_axis_guides_type + item.axis_driven_type = item.type_id.axis_driven_type + item.X_axis_rapid_traverse_speed = item.type_id.X_axis_rapid_traverse_speed + item.Y_axis_rapid_traverse_speed = item.type_id.Y_axis_rapid_traverse_speed + item.Z_axis_rapid_traverse_speed = item.type_id.Z_axis_rapid_traverse_speed + item.a_axis_rapid_traverse_speed = item.type_id.a_axis_rapid_traverse_speed + item.b_axis_rapid_traverse_speed = item.type_id.b_axis_rapid_traverse_speed + item.c_axis_rapid_traverse_speed = item.type_id.c_axis_rapid_traverse_speed + item.straight_cutting_feed_rate = item.type_id.straight_cutting_feed_rate + item.rotary_cutting_feed_rate = item.type_id.rotary_cutting_feed_rate + item.X_precision = item.type_id.X_precision + item.X_precision_repeat = item.type_id.X_precision_repeat + item.Y_precision = item.type_id.Y_precision + item.Y_precision_repeat = item.type_id.Y_precision_repeat + item.Z_precision = item.type_id.Z_precision + item.Z_precision_repeat = item.type_id.Z_precision_repeat + item.a_precision = item.type_id.a_precision + item.a_precision_repeat = item.type_id.a_precision_repeat + item.b_precision = item.type_id.b_precision + item.b_precision_repeat = item.type_id.b_precision_repeat + item.c_precision = item.type_id.c_precision + item.c_precision_repeat = item.type_id.c_precision_repeat + item.tool_full_diameter_max = item.type_id.tool_full_diameter_max + item.tool_perimeter_diameter_max = item.type_id.tool_perimeter_diameter_max + item.T_tool_time = item.type_id.T_tool_time + item.C_tool_time = item.type_id.C_tool_time + item.C_tool_time = item.type_id.C_tool_time + item.image_id = item.type_id.jg_image_id.ids + item.image_lq_id = item.type_id.lq_image_id.ids + # AGV小车设备参数 AGV_L = fields.Char('AGV尺寸(长)') @@ -598,8 +689,10 @@ class SfMaintenanceEquipment(models.Model): if not next_requests: equipment._create_new_request1(equipment.overhaul_date) - image_id = fields.Many2many('maintenance.equipment.image', 'equipment_id', string='加工能力', + image_id = fields.Many2many('maintenance.equipment.image', 'equipment_id', domain="[('type', '=', '加工能力')]") + image_lq_id = fields.Many2many('maintenance.equipment.image', 'equipment_lq_id', string='冷却方式', + domain="[('type', '=', '冷却方式')]") class SfRobotAxisNum(models.Model): diff --git a/sf_maintenance/views/maintenance_views.xml b/sf_maintenance/views/maintenance_views.xml index b7cb707e..95c7ec0c 100644 --- a/sf_maintenance/views/maintenance_views.xml +++ b/sf_maintenance/views/maintenance_views.xml @@ -55,8 +55,8 @@ groups="sf_maintenance.sf_group_equipment_manager"/> - - + + @@ -72,175 +72,171 @@ -
- - - -
-
- - - - - - - -
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
@@ -923,22 +919,34 @@ - - +
+ + + +
+ - +
+
+ +
+ - - - - + + + + + +
+
@@ -1185,13 +1193,12 @@ sequence="2"/> - + id="maintenance.menu_m_dashboard" + name="设备清单" + parent="maintenance.menu_maintenance_title" + groups="maintenance.group_equipment_manager,base.group_user" + action="hr_equipment_action1" + sequence="0"/> \ No newline at end of file diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index 4657bbc5..fe7bd12e 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -615,123 +615,21 @@ class MachineToolType(models.Model): result = json.loads(r['result']) if result['status'] == 1: for item in result['machine_tool_type_yesterday_list']: - machine_tool_type = self.search([("code", '=', item['code'])]) - control_system = self.env['sf.machine.control_system'].search( - [('code', '=', item['control_system_id'])]) - brand = self.env['sf.machine.brand'].search([('code', '=', item['brand_id'])]) - category = self.env['sf.machine_tool.category'].search([('code', '=', item['machine_tool_category'])]) - if machine_tool_type: - machine_tool_type.write({ - "name": item['name'], - "number_of_knife_library": item['number_of_knife_library'], - "rotate_speed": item['rotate_speed'], - "number_of_axles": item['number_of_axles'], - "x_axis": item['x_axis'], - "y_axis": item['y_axis'], - "z_axis": item['z_axis'], - "b_axis": item['b_axis'], - "knife_type": item['knife_type'], - "c_axis": item['c_axis'], - "remark": item['remark'], - "precision_min": item['precision_min'], - "precision_max": item['precision_max'], - 'control_system_id': control_system.id, - "active": item['active'], - 'brand_id': brand.id, - 'machine_tool_picture': '' if not item['machine_tool_picture'] else base64.b64decode( - item['machine_tool_picture']), - "heightened_way": item['heightened_way'], - "workpiece_load": item['workpiece_load'], - "lead_screw": item['lead_screw'], - "workbench_L": item['workbench_L'], - "workbench_W": item['workbench_W'], - "guide_rail": item['guide_rail'], - "machine_tool_L": item['machine_tool_L'], - "machine_tool_W": item['machine_tool_W'], - "machine_tool_H": item['machine_tool_H'], - "feed_speed": item['feed_speed'], - "tool_speed": item['tool_speed'], - "distance_min": item['distance_min'], - "distance_max": item['distance_max'], - "taper": item['taper'], - "torque": item['torque'], - "motor_power": item['motor_power'], - "tool_quality_max": item['tool_quality_max'], - "tool_long_max": item['tool_long_max'], - "tool_diameter_max": item['tool_diameter_max'], - "tool_diameter_min": item['tool_diameter_min'], - "machine_tool_category": category.id, - }) - else: - self.create({ - "name": item['name'], - "code": item['code'], - "knife_type": item['knife_type'], - "number_of_knife_library": item['number_of_knife_library'], - "rotate_speed": item['rotate_speed'], - "number_of_axles": item['number_of_axles'], - "x_axis": item['x_axis'], - "y_axis": item['y_axis'], - "z_axis": item['z_axis'], - "b_axis": item['b_axis'], - "c_axis": item['c_axis'], - "remark": item['remark'], - "precision_min": item['precision_min'], - "precision_max": item['precision_max'], - 'control_system_id': control_system.id, - "active": item['active'], - 'brand_id': brand.id, - 'machine_tool_picture': '' if not item['machine_tool_picture'] else item[ - 'machine_tool_picture'].encode('utf-8'), - "heightened_way": item['heightened_way'], - "workpiece_load": item['workpiece_load'], - "lead_screw": item['lead_screw'], - "workbench_L": item['workbench_L'], - "workbench_W": item['workbench_W'], - "guide_rail": item['guide_rail'], - "machine_tool_L": item['machine_tool_L'], - "machine_tool_W": item['machine_tool_W'], - "machine_tool_H": item['machine_tool_H'], - "feed_speed": item['feed_speed'], - "tool_speed": item['tool_speed'], - "distance_min": item['distance_min'], - "distance_max": item['distance_max'], - "taper": item['taper'], - "torque": item['torque'], - "motor_power": item['motor_power'], - "tool_quality_max": item['tool_quality_max'], - "tool_long_max": item['tool_long_max'], - "tool_diameter_max": item['tool_diameter_max'], - "tool_diameter_min": item['tool_diameter_min'], - "machine_tool_category": category.id, - }) - else: - raise ValidationError("机床型号认证未通过") - - # 同步所有机床型号 - def sync_all_machine_tool_type(self): - config = self.env['res.config.settings'].get_values() - headers = Common.get_headers(self, config['token'], config['sf_secret_key']) - strUrl = config['sf_url'] + self.url - r = requests.post(strUrl, json={}, data=None, headers=headers) - r = r.json() - result = json.loads(r['result']) - if result['status'] == 1: - for item in result['machine_tool_type_all_list']: if item.get('machine_tool_picture'): image = base64.b64decode(item['machine_tool_picture']) else: image = '' + taper_type_id = self.env['spindle.taper.type'].search([('name', '=', item['taper_type_id'])]) machine_tool_type = self.search([("code", '=', item['code'])]) control_system = self.env['sf.machine.control_system'].search( [('code', '=', item['control_system_id'])]) - brand = self.env['sf.machine.brand'].search([('code', '=', item['brand_id'])]) jg_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['jg_image_id'])]) lq_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['lq_image_id'])]) + brand = self.env['sf.machine.brand'].search([('code', '=', item['brand_id'])]) category = self.env['sf.machine_tool.category'].search([('code', '=', item['machine_tool_category'])]) - taper_type_id = self.env['spindle.taper.type'].search([('name', '=', item['taper_type_id'])]) - if not machine_tool_type: - self.create({ + if machine_tool_type: + machine_tool_type.update({ + 'code': item['code'], "name": item['name'], "number_of_knife_library": item['number_of_knife_library'], "rotate_speed": item['rotate_speed'], @@ -812,7 +710,204 @@ class MachineToolType(models.Model): }) else: - machine_tool_type.write({ + self.create({ + 'code': item['code'], + "name": item['name'], + "number_of_knife_library": item['number_of_knife_library'], + "rotate_speed": item['rotate_speed'], + "number_of_axles": item['number_of_axles'], + "x_axis": item['x_axis'], + "y_axis": item['y_axis'], + "z_axis": item['z_axis'], + "b_axis": item['b_axis'], + "knife_type": item['knife_type'], + "c_axis": item['c_axis'], + "remark": item['remark'], + # "precision_min": item['precision_min'], + # "precision_max": item['precision_max'], + 'control_system_id': control_system.id, + "active": item['active'], + 'brand_id': brand.id, + 'machine_tool_picture': image, + "heightened_way": item['heightened_way'], + "workpiece_load": item['workpiece_load'], + #"lead_screw": item['lead_screw'], + "workbench_L": item['workbench_L'], + "workbench_W": item['workbench_W'], + #"guide_rail": item['guide_rail'], + "machine_tool_L": item['machine_tool_L'], + "machine_tool_W": item['machine_tool_W'], + "machine_tool_H": item['machine_tool_H'], + #"feed_speed": item['feed_speed'], + #"tool_speed": item['tool_speed'], + "distance_min": item['distance_min'], + "distance_max": item['distance_max'], + #"taper": item['taper'], + #"torque": item['torque'], + #"motor_power": item['motor_power'], + "tool_quality_max": item['tool_quality_max'], + "tool_long_max": item['tool_long_max'], + #"tool_diameter_max": item['tool_diameter_max'], + #"tool_diameter_min": item['tool_diameter_min'], + "machine_tool_category": category.id, + 'taper_type_id': taper_type_id.id, + "function_type": item['function_type'], + "a_axis": item['a_axis'], + "T_trough_num": item['T_trough_num'], + "T_trough_wide": item['T_trough_wide'], + "T_trough_distance": item['T_trough_distance'], + "spindle_center_distance": item['spindle_center_distance'], + "spindle_continuous_power": item['spindle_continuous_power'], + "spindle_peak_power": item['spindle_peak_power'], + "spindle_sustained_torque": item['spindle_sustained_torque'], + "spindle_peak_torque": item['spindle_peak_torque'], + "linear_axis_guides_type": item['linear_axis_guides_type'], + "axis_driven_type": item['axis_driven_type'], + "X_axis_rapid_traverse_speed": item['X_axis_rapid_traverse_speed'], + "Y_axis_rapid_traverse_speed": item['Y_axis_rapid_traverse_speed'], + "Z_axis_rapid_traverse_speed": item['Z_axis_rapid_traverse_speed'], + "a_axis_rapid_traverse_speed": item['a_axis_rapid_traverse_speed'], + "b_axis_rapid_traverse_speed": item['b_axis_rapid_traverse_speed'], + "c_axis_rapid_traverse_speed": item['c_axis_rapid_traverse_speed'], + "straight_cutting_feed_rate": item['straight_cutting_feed_rate'], + "rotary_cutting_feed_rate": item['rotary_cutting_feed_rate'], + "X_precision": item['X_precision'], + "X_precision_repeat": item['X_precision_repeat'], + "Y_precision": item['Y_precision'], + "Y_precision_repeat": item['Y_precision_repeat'], + "Z_precision": item['Z_precision'], + "Z_precision_repeat": item['Z_precision_repeat'], + "a_precision": item['a_precision'], + "a_precision_repeat": item['a_precision_repeat'], + "b_precision": item['b_precision'], + "b_precision_repeat": item['b_precision_repeat'], + "c_precision": item['c_precision'], + "c_precision_repeat": item['c_precision_repeat'], + "tool_full_diameter_max": item['tool_full_diameter_max'], + "tool_perimeter_diameter_max": item['tool_perimeter_diameter_max'], + "T_tool_time": item['T_tool_time'], + "C_tool_time": item['C_tool_time'], + "jg_image_id": jg_image_id.ids, + "lq_image_id": lq_image_id.ids, + + }) + else: + raise ValidationError("机床型号认证未通过") + + # 同步所有机床型号 + def sync_all_machine_tool_type(self): + config = self.env['res.config.settings'].get_values() + headers = Common.get_headers(self, config['token'], config['sf_secret_key']) + strUrl = config['sf_url'] + self.url + r = requests.post(strUrl, json={}, data=None, headers=headers) + r = r.json() + result = json.loads(r['result']) + if result['status'] == 1: + for item in result['machine_tool_type_all_list']: + if item.get('machine_tool_picture'): + image = base64.b64decode(item['machine_tool_picture']) + else: + image = '' + taper_type_id = self.env['spindle.taper.type'].search([('name', '=', item['taper_type_id'])]) + if not taper_type_id: + taper_type_id = self.env['spindle.taper.type'].create({ + 'name': item['taper_type_id'] + }) + + machine_tool_type = self.search([("code", '=', item['code'])]) + control_system = self.env['sf.machine.control_system'].search( + [('code', '=', item['control_system_id'])]) + brand = self.env['sf.machine.brand'].search([('code', '=', item['brand_id'])]) + jg_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['jg_image_id'])]) + lq_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['lq_image_id'])]) + category = self.env['sf.machine_tool.category'].search([('code', '=', item['machine_tool_category'])]) + + if not machine_tool_type: + self.create({ + 'code': item['code'], + "name": item['name'], + "number_of_knife_library": item['number_of_knife_library'], + "rotate_speed": item['rotate_speed'], + "number_of_axles": item['number_of_axles'], + "x_axis": item['x_axis'], + "y_axis": item['y_axis'], + "z_axis": item['z_axis'], + "b_axis": item['b_axis'], + "knife_type": item['knife_type'], + "c_axis": item['c_axis'], + "remark": item['remark'], + # "precision_min": item['precision_min'], + # "precision_max": item['precision_max'], + 'control_system_id': control_system.id, + "active": item['active'], + 'brand_id': brand.id, + 'machine_tool_picture': image, + "heightened_way": item['heightened_way'], + "workpiece_load": item['workpiece_load'], + #"lead_screw": item['lead_screw'], + "workbench_L": item['workbench_L'], + "workbench_W": item['workbench_W'], + #"guide_rail": item['guide_rail'], + "machine_tool_L": item['machine_tool_L'], + "machine_tool_W": item['machine_tool_W'], + "machine_tool_H": item['machine_tool_H'], + #"feed_speed": item['feed_speed'], + #"tool_speed": item['tool_speed'], + "distance_min": item['distance_min'], + "distance_max": item['distance_max'], + #"taper": item['taper'], + #"torque": item['torque'], + #"motor_power": item['motor_power'], + "tool_quality_max": item['tool_quality_max'], + "tool_long_max": item['tool_long_max'], + #"tool_diameter_max": item['tool_diameter_max'], + #"tool_diameter_min": item['tool_diameter_min'], + "machine_tool_category": category.id, + 'taper_type_id': taper_type_id.id, + "function_type": item['function_type'], + "a_axis": item['a_axis'], + "T_trough_num": item['T_trough_num'], + "T_trough_wide": item['T_trough_wide'], + "T_trough_distance": item['T_trough_distance'], + "spindle_center_distance": item['spindle_center_distance'], + "spindle_continuous_power": item['spindle_continuous_power'], + "spindle_peak_power": item['spindle_peak_power'], + "spindle_sustained_torque": item['spindle_sustained_torque'], + "spindle_peak_torque": item['spindle_peak_torque'], + "linear_axis_guides_type": item['linear_axis_guides_type'], + "axis_driven_type": item['axis_driven_type'], + "X_axis_rapid_traverse_speed": item['X_axis_rapid_traverse_speed'], + "Y_axis_rapid_traverse_speed": item['Y_axis_rapid_traverse_speed'], + "Z_axis_rapid_traverse_speed": item['Z_axis_rapid_traverse_speed'], + "a_axis_rapid_traverse_speed": item['a_axis_rapid_traverse_speed'], + "b_axis_rapid_traverse_speed": item['b_axis_rapid_traverse_speed'], + "c_axis_rapid_traverse_speed": item['c_axis_rapid_traverse_speed'], + "straight_cutting_feed_rate": item['straight_cutting_feed_rate'], + "rotary_cutting_feed_rate": item['rotary_cutting_feed_rate'], + "X_precision": item['X_precision'], + "X_precision_repeat": item['X_precision_repeat'], + "Y_precision": item['Y_precision'], + "Y_precision_repeat": item['Y_precision_repeat'], + "Z_precision": item['Z_precision'], + "Z_precision_repeat": item['Z_precision_repeat'], + "a_precision": item['a_precision'], + "a_precision_repeat": item['a_precision_repeat'], + "b_precision": item['b_precision'], + "b_precision_repeat": item['b_precision_repeat'], + "c_precision": item['c_precision'], + "c_precision_repeat": item['c_precision_repeat'], + "tool_full_diameter_max": item['tool_full_diameter_max'], + "tool_perimeter_diameter_max": item['tool_perimeter_diameter_max'], + "T_tool_time": item['T_tool_time'], + "C_tool_time": item['C_tool_time'], + "jg_image_id": jg_image_id.ids, + "lq_image_id": lq_image_id.ids, + + + }) + else: + machine_tool_type.update({ + 'code': item['code'], "name": item['name'], "number_of_knife_library": item['number_of_knife_library'], "rotate_speed": item['rotate_speed'],