设备类别参数根据不同类别必填 设备增加刀具库位table 并自动生成
This commit is contained in:
@@ -36,6 +36,7 @@ class SfMaintenanceEquipment(models.Model):
|
||||
num = "%04d" % m
|
||||
return num
|
||||
|
||||
|
||||
equipment_maintenance_standards_ids = fields.Many2many('equipment.maintenance.standards',
|
||||
'sf_maintenance_equipment_ids', string='设备维保标准')
|
||||
eq_maintenance_id = fields.Many2one('equipment.maintenance.standards', string='设备保养标准',
|
||||
|
||||
@@ -73,105 +73,105 @@
|
||||
<label for="workbench_L" string="工作台尺寸(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="workbench_L" string="长"/>
|
||||
<field name="workbench_L" class="o_address_zip" required="1"
|
||||
<field name="workbench_L" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="workbench_W" string="宽"/>
|
||||
<field name="workbench_W" class="o_address_zip" required="1"
|
||||
<field name="workbench_W" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<label for="machine_tool_L" string="机床尺寸(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="machine_tool_L" string="长"/>
|
||||
<field name="machine_tool_L" class="o_address_zip" required="1"
|
||||
<field name="machine_tool_L" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="machine_tool_W" string="宽"/>
|
||||
<field name="machine_tool_W" class="o_address_zip" required="1"
|
||||
<field name="machine_tool_W" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<label for="machine_tool_H" string="高"/>
|
||||
<field name="machine_tool_H" class="o_address_zip" required="1"
|
||||
<field name="machine_tool_H" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="feed_speed" required="1"/>
|
||||
<field name="feed_speed" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<label for="precision_min" string="X轴定位精度(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="precision_min" string="最小(min)"/>
|
||||
<field name="precision_min" class="o_address_zip" required="1"
|
||||
<field name="precision_min" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="precision_max" string="最大(max)"/>
|
||||
<field name="precision_max" class="o_address_zip" required="1"
|
||||
<field name="precision_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="workpiece_load" required="1"/>
|
||||
<field name="number_of_knife_library" required="1" options="{'format': false}"/>
|
||||
<field name="lead_screw" required="1"/>
|
||||
<field name="number_of_axles" required="1" widget="radio"
|
||||
<field name="workpiece_load" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<field name="number_of_knife_library" attrs="{'required': [('equipment_type', '=', '机床')]}" options="{'format': false}"/>
|
||||
<field name="lead_screw" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<field name="number_of_axles" attrs="{'required': [('equipment_type', '=', '机床')]}" widget="radio"
|
||||
options="{'horizontal': true}"/>
|
||||
<label for="x_axis" string="加工行程(mm)"
|
||||
attrs="{'invisible': [('number_of_axles', '=', False)]}"/>
|
||||
<div class="test_model"
|
||||
attrs="{'invisible': [('number_of_axles', '=', False)]}">
|
||||
<label for="x_axis" string="x"/>
|
||||
<field name="x_axis" class="o_address_zip" required="1"
|
||||
<field name="x_axis" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="y_axis" string="y"/>
|
||||
<field name="y_axis" class="o_address_zip" required="1"
|
||||
<field name="y_axis" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="z_axis" string="z"/>
|
||||
<field name="z_axis" class="o_address_zip" required="1"
|
||||
<field name="z_axis" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<br></br>
|
||||
<label for="b_axis" string="b"
|
||||
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"/>
|
||||
<field name="b_axis" class="o_address_zip" required="1"
|
||||
<field name="b_axis" class="o_address_zip"
|
||||
attrs="{'invisible': [('number_of_axles', '=', '三轴')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="c_axis" string="c"
|
||||
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"/>
|
||||
<field name="c_axis" class="o_address_zip" required="1"
|
||||
<field name="c_axis" class="o_address_zip"
|
||||
attrs="{'invisible': [('number_of_axles', 'in', ['三轴','四轴'])]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
</group>
|
||||
<group string="主轴">
|
||||
<field name="taper" required="1"/>
|
||||
<field name="rotate_speed" string="主轴转速(r/min)" required="1"
|
||||
<field name="taper" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<field name="rotate_speed" string="主轴转速(r/min)" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<field name="heightened_way" required="1"/>
|
||||
<field name="torque" required="1"/>
|
||||
<field name="motor_power" required="1"/>
|
||||
<field name="heightened_way" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<field name="torque" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<field name="motor_power" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<label for="distance_min" string="主轴端面-工作台距离(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="distance_min" string="最小(min)"/>
|
||||
<field name="distance_min" class="o_address_zip" required="1"
|
||||
<field name="distance_min" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="distance_max" string="最大(max)"/>
|
||||
<field name="distance_max" class="o_address_zip" required="1"
|
||||
<field name="distance_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="guide_rail" required="1"/>
|
||||
<field name="guide_rail" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
</group>
|
||||
<group string="刀具">
|
||||
<field name="knife_type" required="1"/>
|
||||
<field name="tool_speed" required="1"/>
|
||||
<field name="tool_long_max" required="1"/>
|
||||
<field name="knife_type" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<field name="tool_speed" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<field name="tool_long_max" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
<label for="tool_diameter_min" string="刀具刀径(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="tool_diameter_min" string="最小(min)"/>
|
||||
<field name="tool_diameter_min" class="o_address_zip" required="1"
|
||||
<field name="tool_diameter_min" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="tool_diameter_max" string="最大(max)"/>
|
||||
<field name="tool_diameter_max" class="o_address_zip" required="1"
|
||||
<field name="tool_diameter_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机床')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<field name="tool_quality_max" required="1"/>
|
||||
<field name="tool_quality_max" attrs="{'required': [('equipment_type', '=', '机床')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -184,54 +184,54 @@
|
||||
<label for="AGV_L" string="设备尺寸(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="AGV_L" string="长"/>
|
||||
<field name="AGV_L" class="o_address_zip" required="1"
|
||||
<field name="AGV_L" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="AGV_W" string="宽"/>
|
||||
<field name="AGV_W" class="o_address_zip" required="1"
|
||||
<field name="AGV_W" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="AGV_H" string="高"/>
|
||||
<field name="AGV_H" class="o_address_zip" required="1"
|
||||
<field name="AGV_H" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<label for="AGV_goods_L" string="载货尺寸MAX(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="AGV_goods_L" string="长"/>
|
||||
<field name="AGV_goods_L" class="o_address_zip" required="1"
|
||||
<field name="AGV_goods_L" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="AGV_goods_W" string="宽"/>
|
||||
<field name="AGV_goods_W" class="o_address_zip" required="1"
|
||||
<field name="AGV_goods_W" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="AGV_goods_H" string="宽"/>
|
||||
<field name="AGV_goods_H" class="o_address_zip" required="1"
|
||||
<field name="AGV_goods_H" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<label for="AGV_velocity" string=""/>
|
||||
<div class="test_model">
|
||||
<div>
|
||||
<label for="AGV_velocity" string="标准速度"/>
|
||||
<field name="AGV_velocity" class="o_address_zip" required="1"
|
||||
<field name="AGV_velocity" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>m/S&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="AGV_velocity_min" string="标准速度(最小)"/>
|
||||
<field name="AGV_velocity_min" class="o_address_zip" required="1"
|
||||
<field name="AGV_velocity_min" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>m/S&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="AGV_velocity_max" string="标准速度(最大)"/>
|
||||
<field name="AGV_velocity_max" class="o_address_zip" required="1"
|
||||
<field name="AGV_velocity_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>m/S&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="AGV_Lifting_height" string="升降高度(max)"/>
|
||||
<field name="AGV_Lifting_height" class="o_address_zip" required="1"
|
||||
<field name="AGV_Lifting_height" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -242,26 +242,26 @@
|
||||
<div>
|
||||
<label for="AGV_ground_clearance" string="最小离地高度"/>
|
||||
|
||||
<field name="AGV_ground_clearance" class="o_address_zip" required="1"
|
||||
<field name="AGV_ground_clearance" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="AGV_turning_radius" string="最小转弯半径"/>
|
||||
<field name="AGV_turning_radius" class="o_address_zip" required="1"
|
||||
<field name="AGV_turning_radius" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="AGV_gradeability_max" string="最大爬坡度"/>
|
||||
<field name="AGV_gradeability_max" class="o_address_zip" required="1"
|
||||
<field name="AGV_gradeability_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>°&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="AGV_parking_accuracy" string="停车精度"/>
|
||||
<field name="AGV_parking_accuracy" class="o_address_zip" required="1"
|
||||
<field name="AGV_parking_accuracy" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -275,14 +275,14 @@
|
||||
<div>
|
||||
<label for="AGV_load_weight_max" string="最大负载重量"/>
|
||||
|
||||
<field name="AGV_load_weight_max" class="o_address_zip" required="1"
|
||||
<field name="AGV_load_weight_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kg&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="AGV_weight" string="本体总重量"/>
|
||||
|
||||
<field name="AGV_weight" class="o_address_zip" required="1"
|
||||
<field name="AGV_weight" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kg&nbsp;</span>
|
||||
</div>
|
||||
@@ -290,7 +290,7 @@
|
||||
<div>
|
||||
<label for="AGV_job_duration" string="连续作业时长"/>
|
||||
|
||||
<field name="AGV_job_duration" class="o_address_zip" required="1"
|
||||
<field name="AGV_job_duration" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>h&nbsp;</span>
|
||||
</div>
|
||||
@@ -298,7 +298,7 @@
|
||||
<div>
|
||||
<label for="AGV_transfer_mode" string="移载方式"/>
|
||||
|
||||
<field name="AGV_transfer_mode" class="o_address_zip" required="1"
|
||||
<field name="AGV_transfer_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
<div>
|
||||
<label for="AGV_drive_motor_power" string="驱动电机功率"/>
|
||||
|
||||
<field name="AGV_drive_motor_power" class="o_address_zip" required="1"
|
||||
<field name="AGV_drive_motor_power" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kw&nbsp;</span>
|
||||
</div>
|
||||
@@ -334,7 +334,7 @@
|
||||
<div>
|
||||
<label for="AGV_hoist_motor_power" string="提升电机功率"/>
|
||||
|
||||
<field name="AGV_hoist_motor_power" class="o_address_zip" required="1"
|
||||
<field name="AGV_hoist_motor_power" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>i&nbsp;</span>
|
||||
</div>
|
||||
@@ -342,7 +342,7 @@
|
||||
<div>
|
||||
<label for="AGV_drive_motor_speed_ratio" string="驱动电机速比"/>
|
||||
|
||||
<field name="AGV_drive_motor_speed_ratio" class="o_address_zip" required="1"
|
||||
<field name="AGV_drive_motor_speed_ratio" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kw&nbsp;</span>
|
||||
</div>
|
||||
@@ -354,14 +354,14 @@
|
||||
<div>
|
||||
<label for="AGV_veer_motor_power" string="转向电机功率"/>
|
||||
|
||||
<field name="AGV_veer_motor_power" class="o_address_zip" required="1"
|
||||
<field name="AGV_veer_motor_power" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kw&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="AGV_veer_motor_speed_ratio" string="转向电机速比"/>
|
||||
|
||||
<field name="AGV_veer_motor_speed_ratio" class="o_address_zip" required="1"
|
||||
<field name="AGV_veer_motor_speed_ratio" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>i&nbsp;</span>
|
||||
</div>
|
||||
@@ -369,7 +369,7 @@
|
||||
<div>
|
||||
<label for="AGV_move_motor_power" string="前移电机功率"/>
|
||||
|
||||
<field name="AGV_move_motor_power" class="o_address_zip" required="1"
|
||||
<field name="AGV_move_motor_power" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kw&nbsp;</span>
|
||||
</div>
|
||||
@@ -377,7 +377,7 @@
|
||||
<div>
|
||||
<label for="AGV_move_motor_speed_ratio" string="前移电机速比"/>
|
||||
|
||||
<field name="AGV_move_motor_speed_ratio" class="o_address_zip" required="1"
|
||||
<field name="AGV_move_motor_speed_ratio" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>i&nbsp;</span>
|
||||
</div>
|
||||
@@ -393,27 +393,27 @@
|
||||
<div>
|
||||
<label for="AGV_drive_mode" string="驱动方式"/>
|
||||
|
||||
<field name="AGV_drive_mode" class="o_address_zip" required="1"
|
||||
<field name="AGV_drive_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
<label for="AGV_navigation_mode" string="导航方式"/>
|
||||
|
||||
|
||||
<field name="AGV_navigation_mode" class="o_address_zip" required="1"
|
||||
<field name="AGV_navigation_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<div>
|
||||
|
||||
<label for="AGV_communication_mode" string="通讯方式"/>
|
||||
|
||||
|
||||
<field name="AGV_communication_mode" class="o_address_zip" required="1"
|
||||
<field name="AGV_communication_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label for="AGV_direction_travel" string="行走方向"/>
|
||||
|
||||
<field name="AGV_direction_travel" class="o_address_zip" required="1"
|
||||
<field name="AGV_direction_travel" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
</div>
|
||||
|
||||
@@ -426,19 +426,19 @@
|
||||
|
||||
<label for="AGV_power_requirements" string="电源要求"/>
|
||||
|
||||
<field name="AGV_power_requirements" class="o_address_zip" required="1"
|
||||
<field name="AGV_power_requirements" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
|
||||
|
||||
<label for="AGV_charge_mode" string="充电方式"/>
|
||||
|
||||
<field name="AGV_charge_mode" class="o_address_zip" required="1"
|
||||
<field name="AGV_charge_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
|
||||
|
||||
<label for="AGV_security" string="安全防护"/>
|
||||
|
||||
<field name="AGV_security" class="o_address_zip" required="1"
|
||||
<field name="AGV_security" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
|
||||
</div>
|
||||
@@ -448,14 +448,14 @@
|
||||
|
||||
<label for="AGV_operating_temperature" string="环境温度"/>
|
||||
|
||||
<field name="AGV_operating_temperature" class="o_address_zip" required="1"
|
||||
<field name="AGV_operating_temperature" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>°&nbsp;</span>
|
||||
|
||||
|
||||
<label for="AGV_operating_humidity" string="环境湿度"/>
|
||||
|
||||
<field name="AGV_operating_humidity" class="o_address_zip" required="1"
|
||||
<field name="AGV_operating_humidity" class="o_address_zip" attrs="{'required': [('equipment_type', '=', 'AGV小车')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>°&nbsp;</span>
|
||||
|
||||
@@ -470,15 +470,15 @@
|
||||
<label for="robot_gripping_of_workpieces_L" string="抓取工件最大尺寸"/>
|
||||
<div class="test_model">
|
||||
<label for="robot_gripping_of_workpieces_L" string="长"/>
|
||||
<field name="robot_gripping_of_workpieces_L" class="o_address_zip" required="1"
|
||||
<field name="robot_gripping_of_workpieces_L" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="robot_gripping_of_workpieces_W" string="宽"/>
|
||||
<field name="robot_gripping_of_workpieces_W" class="o_address_zip" required="1"
|
||||
<field name="robot_gripping_of_workpieces_W" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="robot_gripping_of_workpieces_H" string="高"/>
|
||||
<field name="robot_gripping_of_workpieces_H" class="o_address_zip" required="1"
|
||||
<field name="robot_gripping_of_workpieces_H" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -487,25 +487,25 @@
|
||||
<div class="test_model">
|
||||
<div>
|
||||
<label for="robot_radius_of_the_boom" string="展臂半径"/>
|
||||
<field name="robot_radius_of_the_boom" class="o_address_zip" required="1"
|
||||
<field name="robot_radius_of_the_boom" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="robot_load_weight_max" string="最大负载重量"/>
|
||||
<field name="robot_load_weight_max" class="o_address_zip" required="1"
|
||||
<field name="robot_load_weight_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kg&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="robot_gripping_of_workpieces_H" string="本体总重量"/>
|
||||
<field name="robot_gripping_of_workpieces_H" class="o_address_zip" required="1"
|
||||
<field name="robot_gripping_of_workpieces_H" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kg&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="robot_repeatable_positioning_accuracy" string="重复定位精度"/>
|
||||
<field name="robot_repeatable_positioning_accuracy" class="o_address_zip" required="1"
|
||||
<field name="robot_repeatable_positioning_accuracy" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -526,15 +526,15 @@
|
||||
<label for="robot_track_dimensions_L" string="轨道尺寸"/>
|
||||
<div class="test_model">
|
||||
<label for="robot_track_dimensions_L" string="长"/>
|
||||
<field name="robot_track_dimensions_L" class="o_address_zip" required="1"
|
||||
<field name="robot_track_dimensions_L" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="robot_track_dimensions_W" string="宽"/>
|
||||
<field name="robot_track_dimensions_W" class="o_address_zip" required="1"
|
||||
<field name="robot_track_dimensions_W" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="robot_track_dimensions_H" string="高"/>
|
||||
<field name="robot_track_dimensions_H" class="o_address_zip" required="1"
|
||||
<field name="robot_track_dimensions_H" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -545,22 +545,22 @@
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="robot_drive_mode" string="驱动方式"/>
|
||||
<field name="robot_drive_mode" class="o_address_zip" required="1"
|
||||
<field name="robot_drive_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
<label for="robot_installation_method" string="安装方式"/>
|
||||
<field name="robot_installation_method" class="o_address_zip" required="1"
|
||||
<field name="robot_installation_method" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
<label for="robot_operating_temperature" string="工作条件"/>
|
||||
<div class="test_model">
|
||||
<label for="robot_operating_temperature" string="环境温度"/>
|
||||
<field name="robot_operating_temperature" class="o_address_zip" required="1"
|
||||
<field name="robot_operating_temperature" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>°&nbsp;</span>
|
||||
<label for="robot_operating_humidity" string="环境湿度"/>
|
||||
<field name="robot_operating_humidity" class="o_address_zip" required="1"
|
||||
<field name="robot_operating_humidity" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '机器人')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>°&nbsp;</span>
|
||||
|
||||
@@ -575,30 +575,30 @@
|
||||
<label for="detect_L" string="设备尺寸(mm)"/>
|
||||
<div class="test_model">
|
||||
<label for="detect_L" string="长"/>
|
||||
<field name="detect_L" class="o_address_zip" required="1"
|
||||
<field name="detect_L" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="detect_W" string="宽"/>
|
||||
<field name="detect_W" class="o_address_zip" required="1"
|
||||
<field name="detect_W" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="detect_H" string="高"/>
|
||||
<field name="detect_H" class="o_address_zip" required="1"
|
||||
<field name="detect_H" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
<label for="detect_x_axis" string="测量范围(max)"/>
|
||||
<div class="test_model">
|
||||
<label for="detect_x_axis" string="X轴"/>
|
||||
<field name="detect_x_axis" class="o_address_zip" required="1"
|
||||
<field name="detect_x_axis" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="detect_y_axis" string="Y轴"/>
|
||||
<field name="detect_y_axis" class="o_address_zip" required="1"
|
||||
<field name="detect_y_axis" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
<label for="detect_z_axis" string="Z轴"/>
|
||||
<field name="detect_z_axis" class="o_address_zip" required="1"
|
||||
<field name="detect_z_axis" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -606,19 +606,19 @@
|
||||
<div class="test_model">
|
||||
<div>
|
||||
<label for="detect_precision" string="测量精度"/>
|
||||
<field name="detect_precision" class="o_address_zip" required="1"
|
||||
<field name="detect_precision" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>μm&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_measurement_mode" string="测量方式"/>
|
||||
<field name="detect_measurement_mode" class="o_address_zip" required="1"
|
||||
<field name="detect_measurement_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_resolution" string="分辨率"/>
|
||||
<field name="detect_resolution" class="o_address_zip" required="1"
|
||||
<field name="detect_resolution" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
@@ -627,19 +627,19 @@
|
||||
<div class="test_model">
|
||||
<div>
|
||||
<label for="detect_load_weight_max" string="最大负载重量"/>
|
||||
<field name="detect_load_weight_max" class="o_address_zip" required="1"
|
||||
<field name="detect_load_weight_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kg&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_weight" string="本体总重量"/>
|
||||
<field name="detect_weight" class="o_address_zip" required="1"
|
||||
<field name="detect_weight" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>kg&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_measurement_length" string="深孔测量长度(max)"/>
|
||||
<field name="detect_measurement_length" class="o_address_zip" required="1"
|
||||
<field name="detect_measurement_length" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -656,13 +656,13 @@
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_control_mode" string="控制方式"/>
|
||||
<field name="detect_control_mode" class="o_address_zip" required="1"
|
||||
<field name="detect_control_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_balance_mode_for_Z" string="Z轴平衡方式"/>
|
||||
<field name="detect_balance_mode_for_Z" class="o_address_zip" required="1"
|
||||
<field name="detect_balance_mode_for_Z" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
@@ -671,19 +671,19 @@
|
||||
<div class="test_model">
|
||||
<div>
|
||||
<label for="detect_zoom_objective_magnification" string="变焦物镜倍率"/>
|
||||
<field name="detect_zoom_objective_magnification" class="o_address_zip" required="1"
|
||||
<field name="detect_zoom_objective_magnification" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>倍&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_magnification" string="放大倍率"/>
|
||||
<field name="detect_magnification" class="o_address_zip" required="1"
|
||||
<field name="detect_magnification" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>倍&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_working_distance" string="工作距离"/>
|
||||
<field name="detect_working_distance" class="o_address_zip" required="1"
|
||||
<field name="detect_working_distance" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -692,23 +692,23 @@
|
||||
<div class="test_model">
|
||||
<div>
|
||||
<label for="detect_locking_mode" string="锁紧方式"/>
|
||||
<field name="detect_locking_mode" class="o_address_zip" required="1"
|
||||
<field name="detect_locking_mode" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_pressurized_air" string="压缩空气"/>
|
||||
<field name="detect_pressurized_air" class="o_address_zip" required="1"
|
||||
<field name="detect_pressurized_air" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_object_field_of_view_max" string="物方视场:"/>
|
||||
<span>最小&nbsp;</span>
|
||||
<field name="detect_object_field_of_view_max" class="o_address_zip" required="1"
|
||||
<field name="detect_object_field_of_view_max" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm~&nbsp;</span>
|
||||
<field name="detect_object_field_of_view_min" class="o_address_zip" required="1"
|
||||
<field name="detect_object_field_of_view_min" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>mm&nbsp;</span>
|
||||
</div>
|
||||
@@ -717,19 +717,19 @@
|
||||
<div class="test_model">
|
||||
<div>
|
||||
<label for="detect_operating_temperature" string="环境温度"/>
|
||||
<field name="detect_operating_temperature" class="o_address_zip" required="1"
|
||||
<field name="detect_operating_temperature" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>°&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_operating_humidity" string="环境湿度"/>
|
||||
<field name="detect_operating_humidity" class="o_address_zip" required="1"
|
||||
<field name="detect_operating_humidity" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>°&nbsp;</span>
|
||||
</div>
|
||||
<div>
|
||||
<label for="detect_power_requirements" string="电源要求"/>
|
||||
<field name="detect_power_requirements" class="o_address_zip" required="1"
|
||||
<field name="detect_power_requirements" class="o_address_zip" attrs="{'required': [('equipment_type', '=', '检测设备')]}"
|
||||
options="{'format': false}"/>
|
||||
<span>&nbsp;</span>
|
||||
</div>
|
||||
@@ -737,7 +737,7 @@
|
||||
</group>
|
||||
</page>
|
||||
|
||||
<page string="加工能力">
|
||||
<page string="加工能力" attrs="{'invisible': [('equipment_type', '!=', '机床')]}">
|
||||
|
||||
<field name='image_id' widget="custom_many2many_checkboxes">
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
'views/mrp_workorder_view.xml',
|
||||
'views/tool_other_features_view.xml',
|
||||
'views/model_type_view.xml',
|
||||
'views/sf_maintenance_equipment.xml',
|
||||
# 'views/kanban_change.xml'
|
||||
|
||||
],
|
||||
|
||||
@@ -835,3 +835,43 @@ class ResMrpBomMo(models.Model):
|
||||
raw_bom = self.env['product.product'].search(
|
||||
[('categ_id.type', '=', '原材料'), ('materials_type_id', '=', product.materials_type_id.id)])
|
||||
return raw_bom
|
||||
|
||||
|
||||
class SfMaintenanceEquipmentAndProductTemplate(models.Model):
|
||||
_inherit = 'maintenance.equipment'
|
||||
_description = '设备'
|
||||
product_template_ids = fields.One2many('maintenance.equipment.tool', 'equipment_id', string='机床刀位')
|
||||
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
vals = []
|
||||
for value in vals_list:
|
||||
res = super(SfMaintenanceEquipmentAndProductTemplate, self).create(value)
|
||||
number = value.get('number_of_knife_library')
|
||||
for i in range(1, number + 1):
|
||||
self.env['maintenance.equipment.tool'].create({
|
||||
'equipment_id': res.id,
|
||||
'code': 'T' + str(i)
|
||||
})
|
||||
vals.append(res)
|
||||
return vals[0]
|
||||
|
||||
|
||||
class SfMaintenanceEquipmentTool(models.Model):
|
||||
_name = 'maintenance.equipment.tool'
|
||||
_description = '机床刀位'
|
||||
|
||||
equipment_id = fields.Many2one('maintenance.equipment', string='设备')
|
||||
product_template_id = fields.Many2one('product.template', string='功能刀具名称', domain="[('categ_type', '=', '刀具')]")
|
||||
image_1920 = fields.Binary('图片', related='product_template_id.image_1920')
|
||||
categ_type = fields.Char(string='功能刀具类型')
|
||||
diameter = fields.Char('直径')
|
||||
precision = fields.Char('粗\中\精')
|
||||
tool_code = fields.Char('功能刀具编码')
|
||||
hilt_name = fields.Char('刀柄名称')
|
||||
hilt_code = fields.Char('刀柄编码')
|
||||
life_value_max = fields.Char('最大寿命值')
|
||||
alarm_value = fields.Char('报警值')
|
||||
used_value = fields.Char('已使用值')
|
||||
code = fields.Char('机床刀位号')
|
||||
|
||||
|
||||
@@ -14,5 +14,6 @@ access_sf_cutting_direction,sf_cutting_direction,model_sf_cutting_direction,base
|
||||
access_sf_suitable_coolant,sf_suitable_coolant,model_sf_suitable_coolant,base.group_user,1,1,1,1
|
||||
access_sf_cutting_speed,sf_cutting_speed,model_sf_cutting_speed,base.group_user,1,1,1,1
|
||||
access_sf_feed_per_tooth,sf_feed_per_tooth,model_sf_feed_per_tooth,base.group_user,1,1,1,1
|
||||
access_maintenance_equipment_tool,maintenance_equipment_tool,model_maintenance_equipment_tool,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
||||
|
55
sf_manufacturing/views/sf_maintenance_equipment.xml
Normal file
55
sf_manufacturing/views/sf_maintenance_equipment.xml
Normal file
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- 设备新增生产线-->
|
||||
<record id="sf_hr_equipment_view_form_manufacturing" model="ir.ui.view">
|
||||
<field name="name">sf_equipment.form</field>
|
||||
<field name="model">maintenance.equipment</field>
|
||||
<field name="inherit_id" ref="sf_maintenance.sf_hr_equipment_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='brand_id']" position="after">
|
||||
<field name="production_line_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 故障日志增加产线对象-->
|
||||
<record id="sf_view_maintenance_logs_tree" model="ir.ui.view">
|
||||
<field name="name">sf.maintenance.logs.tree</field>
|
||||
<field name="model">sf.maintenance.logs</field>
|
||||
<field name="inherit_id" ref="sf_maintenance.view_maintenance_logs_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='code']" position="after">
|
||||
<field name="production_line_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<!-- 设备增加刀具库位table-->
|
||||
<record id="sf_manufacturing_hr_equipment_view_form" model="ir.ui.view">
|
||||
<field name="name">sf_manufacturing_equipment.form</field>
|
||||
<field name="model">maintenance.equipment</field>
|
||||
<field name="inherit_id" ref="sf_maintenance.sf_hr_equipment_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='sf_equipment']" position="after">
|
||||
<page string="标准刀库" name="sf_equipment_product_template"
|
||||
attrs="{'invisible': [('equipment_type', '!=', '机床')]}">
|
||||
<field name = 'product_template_ids' >
|
||||
<tree editable='bottom'>
|
||||
<field name="code"/>
|
||||
<field name="product_template_id"/>
|
||||
<field name="image_1920" widget="image"/>
|
||||
<field name="categ_type"/>
|
||||
<field name="diameter"/>
|
||||
<field name="precision"/>
|
||||
<field name="tool_code"/>
|
||||
<field name="hilt_name"/>
|
||||
<field name="hilt_code"/>
|
||||
<field name="life_value_max"/>
|
||||
<field name="alarm_value"/>
|
||||
<field name="used_value"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user