diff --git a/sf_base/models/base.py b/sf_base/models/base.py index d9dc1691..36a39f49 100644 --- a/sf_base/models/base.py +++ b/sf_base/models/base.py @@ -9,6 +9,14 @@ from odoo.addons.sf_base.commons.common import Common _logger = logging.getLogger(__name__) +class SpindleTaperType(models.Model): + _name = 'spindle.taper.type' + _description = '主轴锥孔型号' + + name = fields.Char('名称') + active = fields.Boolean('有效', default=True) + + class MachineBrandTags(models.Model): _name = 'sf.machine.brand.tags' _description = '标签' @@ -269,31 +277,19 @@ class MachineToolType(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='机床类型') # 多个型号对应一个机床 machine_tool_id = fields.Many2one('sf.machine_tool', '机床') - number_of_axles = fields.Selection( - [("三轴", "三轴"), ("四轴", "四轴"), ("五轴", "五轴")], - default="", string="轴数") # 加工进程 x_axis = fields.Integer('X轴') y_axis = fields.Integer('Y轴') @@ -301,13 +297,80 @@ class MachineToolType(models.Model): b_axis = fields.Integer('B轴') c_axis = fields.Integer('C轴') remark = fields.Char('备注') - 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="控制系统") active = fields.Boolean('有效', default=True) code = fields.Char('编码') + # 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)') + + jg_image_id = fields.Many2many('maintenance.equipment.image', 'jg_equipment_id', string='加工能力', + domain="[('type', '=', '加工能力')]") + lq_image_id = fields.Many2many('maintenance.equipment.image', 'lq_equipment_id', string='冷却方式', + domain="[('type', '=', '冷却方式')]") + + + #待删除字段 + 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_ids(self, machine_tool_type_code): machine_tool_type_ids = [] for item in machine_tool_type_code: diff --git a/sf_base/models/tool_base_new.py b/sf_base/models/tool_base_new.py index 932bb106..e8769b80 100644 --- a/sf_base/models/tool_base_new.py +++ b/sf_base/models/tool_base_new.py @@ -175,9 +175,12 @@ class MaintenanceStandardImage(models.Model): image = fields.Binary(string='图文') type = fields.Selection( [('加工能力', '加工能力'), ('刀尖特征', '刀尖特征'), ('柄部类型', '柄部类型'), ('走刀方向', '走刀方向'), - ('冷却液', '冷却液'), ('压紧方式', '压紧方式'), ('刀片形状', '刀片形状')], + ('冷却液', '冷却液'), ('压紧方式', '压紧方式'), ('刀片形状', '刀片形状'), ('冷却方式', '冷却方式')], 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='机床型号') def _get_ids(self, name_arr): ability_feature_ids = [] diff --git a/sf_base/security/ir.model.access.csv b/sf_base/security/ir.model.access.csv index c07cc8c6..2f99f78d 100644 --- a/sf_base/security/ir.model.access.csv +++ b/sf_base/security/ir.model.access.csv @@ -34,6 +34,7 @@ access_purchase_order_group_purchase,access_purchase_order_group_purchase,purcha access_purchase_order_group_purchase_director,access_purchase_order_group_purchase_director,purchase.model_purchase_order,sf_base.group_purchase_director,1,1,1,0 access_purchase_order_line_group_purchase,access_purchase_order_line_group_purchase,purchase.model_purchase_order_line,sf_base.group_purchase,1,1,1,0 access_purchase_order_line_group_purchase_director,access_purchase_order_line_group_purchase_director,purchase.model_purchase_order_line,sf_base.group_purchase_director,1,1,1,0 +access_spindle_taper_type,spindle_taper_type,model_spindle_taper_type,base.group_user,1,1,1,1 diff --git a/sf_base/views/base_view.xml b/sf_base/views/base_view.xml index 8c8e1632..3c4b0618 100644 --- a/sf_base/views/base_view.xml +++ b/sf_base/views/base_view.xml @@ -81,7 +81,10 @@ - + + + + @@ -90,7 +93,7 @@ tree.sf.machine_tool.type sf.machine_tool.type - + @@ -105,20 +108,16 @@ form.sf.machine_tool.type sf.machine_tool.type -
+

- +

- - - - - + @@ -128,10 +127,40 @@ + +
+ + + + + + + + +
+ +
+ +
+ + + + + + + + +
+ +
+ + - + - - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sf_maintenance/__manifest__.py b/sf_maintenance/__manifest__.py index 297bd31b..cec0b7e3 100644 --- a/sf_maintenance/__manifest__.py +++ b/sf_maintenance/__manifest__.py @@ -14,6 +14,7 @@ 'views/maintenance_views.xml', 'views/equipment_maintenance_standards_views.xml', 'views/maintenance_request_views.xml', + 'views/maintenance_equipment_category_views.xml', ], 'installable': True, 'application': False, diff --git a/sf_maintenance/models/sf_maintenance.py b/sf_maintenance/models/sf_maintenance.py index d7eb3d55..b09fb373 100644 --- a/sf_maintenance/models/sf_maintenance.py +++ b/sf_maintenance/models/sf_maintenance.py @@ -14,6 +14,7 @@ class SfMaintenanceEquipmentCategory(models.Model): equipment_type = fields.Selection([('机床', '机床'), ('机器人', '机器人'), ('AGV小车', 'AGV小车'), ('检测设备', '检测设备')], string='类型', default='机床') + equipment_type_code = fields.Char('简写') class SfMaintenanceEquipment(models.Model): @@ -22,6 +23,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 +145,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 +153,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 +170,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 +297,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尺寸(长)') @@ -415,7 +507,45 @@ class SfMaintenanceEquipment(models.Model): 'distance_max': item.distance_max, 'tool_diameter_min': item.tool_diameter_min, 'machine_tool_category': item.machine_tool_category.code, - 'image_id': images_ids_names + 'image_id': images_ids_names, + 'taper_type_id': item.taper_type_id.name, + '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.X_precision, + 'Y_precision_repeat': item.X_precision_repeat, + 'Z_precision': item.X_precision, + 'Z_precision_repeat': item.X_precision_repeat, + 'a_precision': item.X_precision, + 'a_precision_repeat': item.X_precision_repeat, + 'b_precision': item.X_precision, + 'b_precision_repeat': item.X_precision_repeat, + 'c_precision': item.X_precision, + 'c_precision_repeat': item.X_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, + 'jiancheng': item.category_id.equipment_type_code } machine_tool_list.append(val) # kw = machine_tool_list @@ -598,8 +728,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_equipment_category_views.xml b/sf_maintenance/views/maintenance_equipment_category_views.xml new file mode 100644 index 00000000..15138d3d --- /dev/null +++ b/sf_maintenance/views/maintenance_equipment_category_views.xml @@ -0,0 +1,14 @@ + + + + + sf.maintenance.equipment.category + maintenance.equipment.category + + + + + + + + \ No newline at end of file diff --git a/sf_maintenance/views/maintenance_views.xml b/sf_maintenance/views/maintenance_views.xml index b7cb707e..f3f69214 100644 --- a/sf_maintenance/views/maintenance_views.xml +++ b/sf_maintenance/views/maintenance_views.xml @@ -8,6 +8,7 @@ + @@ -55,8 +56,8 @@ groups="sf_maintenance.sf_group_equipment_manager"/> - - + + @@ -72,175 +73,171 @@ -
- - - -
-
- - - - - - - -
- - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
@@ -923,22 +920,34 @@ - - +
+ + + +
+ - +
+
+ +
+ - - - - + + + + + +
+
@@ -1185,13 +1194,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_manufacturing/security/ir.model.access.csv b/sf_manufacturing/security/ir.model.access.csv index f4f8948a..6b243241 100644 --- a/sf_manufacturing/security/ir.model.access.csv +++ b/sf_manufacturing/security/ir.model.access.csv @@ -13,6 +13,7 @@ access_sf_production_line,sf.production.line,model_sf_production_line,sf_base.gr access_sf_production_line_manager,sf.production.line,model_sf_production_line,sf_base.group_sf_mrp_manager,1,1,1,0 access_maintenance_equipment_tool,maintenance_equipment_tool,model_maintenance_equipment_tool,sf_base.group_sf_mrp_user,1,0,0,0 access_maintenance_equipment_tool_manager,maintenance_equipment_tool,model_maintenance_equipment_tool,sf_base.group_sf_mrp_manager,1,1,1,0 +access_maintenance_equipment_tool_equipment_manager,maintenance_equipment_tool,model_maintenance_equipment_tool,sf_maintenance.sf_group_equipment_user,1,1,1,0 access_mrp_production,mrp_production,model_mrp_production,sf_base.group_sf_mrp_user,1,0,0,0 access_mrp_production_manager,mrp_production,model_mrp_production,sf_base.group_sf_mrp_manager,1,1,1,0 access_mrp_workorder,mrp_workorder,model_mrp_workorder,sf_base.group_sf_mrp_user,1,0,0,0 diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py index 7babb3a4..fe7bd12e 100644 --- a/sf_mrs_connect/models/sync_common.py +++ b/sf_mrs_connect/models/sync_common.py @@ -615,13 +615,21 @@ class MachineToolType(models.Model): result = json.loads(r['result']) if result['status'] == 1: for item in result['machine_tool_type_yesterday_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'])]) + 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'])]) if machine_tool_type: - machine_tool_type.write({ + machine_tool_type.update({ + 'code': item['code'], "name": item['name'], "number_of_knife_library": item['number_of_knife_library'], "rotate_speed": item['rotate_speed'], @@ -633,40 +641,78 @@ class MachineToolType(models.Model): "knife_type": item['knife_type'], "c_axis": item['c_axis'], "remark": item['remark'], - "precision_min": item['precision_min'], - "precision_max": item['precision_max'], + # "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']), + 'machine_tool_picture': image, "heightened_way": item['heightened_way'], "workpiece_load": item['workpiece_load'], - "lead_screw": item['lead_screw'], + #"lead_screw": item['lead_screw'], "workbench_L": item['workbench_L'], "workbench_W": item['workbench_W'], - "guide_rail": item['guide_rail'], + #"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'], + #"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'], + #"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'], + #"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: self.create({ + 'code': item['code'], "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'], @@ -674,36 +720,76 @@ class MachineToolType(models.Model): "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'], + # "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'), + 'machine_tool_picture': image, "heightened_way": item['heightened_way'], "workpiece_load": item['workpiece_load'], - "lead_screw": item['lead_screw'], + #"lead_screw": item['lead_screw'], "workbench_L": item['workbench_L'], "workbench_W": item['workbench_W'], - "guide_rail": item['guide_rail'], + #"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'], + #"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'], + #"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'], + #"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("机床型号认证未通过") @@ -722,15 +808,24 @@ class MachineToolType(models.Model): 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'], - "code": item['code'], "number_of_knife_library": item['number_of_knife_library'], "rotate_speed": item['rotate_speed'], "number_of_axles": item['number_of_axles'], @@ -738,39 +833,81 @@ class MachineToolType(models.Model): "y_axis": item['y_axis'], "z_axis": item['z_axis'], "b_axis": item['b_axis'], - "c_axis": item['c_axis'], "knife_type": item['knife_type'], + "c_axis": item['c_axis'], "remark": item['remark'], - "precision_min": item['precision_min'], - "precision_max": item['precision_max'], + # "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'], + #"lead_screw": item['lead_screw'], "workbench_L": item['workbench_L'], "workbench_W": item['workbench_W'], - "guide_rail": item['guide_rail'], + #"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'], + #"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'], + #"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'], + #"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.write({ + machine_tool_type.update({ + 'code': item['code'], "name": item['name'], "number_of_knife_library": item['number_of_knife_library'], "rotate_speed": item['rotate_speed'], @@ -782,33 +919,73 @@ class MachineToolType(models.Model): "knife_type": item['knife_type'], "c_axis": item['c_axis'], "remark": item['remark'], - "precision_min": item['precision_min'], - "precision_max": item['precision_max'], + # "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'], + #"lead_screw": item['lead_screw'], "workbench_L": item['workbench_L'], "workbench_W": item['workbench_W'], - "guide_rail": item['guide_rail'], + #"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'], + #"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'], + #"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'], + #"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("机床型号认证未通过")