Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into develop
This commit is contained in:
@@ -67,186 +67,275 @@ class BasicParametersFixture(models.Model):
|
||||
mounting_hole_depth = fields.Float('安装孔深度(mm)', digits=(16, 2))
|
||||
centering_diameter = fields.Float('定心直径(mm)', digits=(16, 2))
|
||||
|
||||
def _json_zero_chuck_param(self, obj):
|
||||
zero_chuck_param_str = (0, '', {
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'diameter': obj['diameter'],
|
||||
'weight': obj['weight'],
|
||||
'orientation_dish_diameter': obj['orientation_dish_diameter'],
|
||||
'clamping_diameter': obj['clamping_diameter'],
|
||||
'clamping_num': obj['clamping_num'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
|
||||
'boolean_transposing_hole': obj['boolean_transposing_hole'],
|
||||
'unlocking_method': obj['unlocking_method'],
|
||||
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'rigidity': obj['rigidity'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'machine_tool_type_id': self.env['sf.machine_tool.type'].sudo().search(
|
||||
[('code', '=', obj['machine_tool_type_id']), ('active', '=', True)]).id,
|
||||
})
|
||||
return zero_chuck_param_str
|
||||
code = fields.Char('编码')
|
||||
|
||||
def _json_zero_tray_param(self, obj):
|
||||
zero_tray_param_str = (0, '', {
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'diameter': obj['diameter'],
|
||||
'weight': obj['weight'],
|
||||
'clamping_diameter': obj['clamping_diameter'],
|
||||
'connector_diameter': obj['connector_diameter'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
|
||||
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
|
||||
'way_to_install': obj['way_to_install'],
|
||||
'type_of_drive': obj['type_of_drive'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
})
|
||||
return zero_tray_param_str
|
||||
def create_fixture_materials(self, fixture_materials_datas, fixture_model):
|
||||
fixture_materials_name = fixture_model.fixture_material_id.name
|
||||
if fixture_materials_name == '零点卡盘':
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
self.create(self._json_zero_chuck_param(fixture_materials_data, fixture_model))
|
||||
elif fixture_materials_name == '零点托盘':
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
self.create(self._json_zero_tray_param(fixture_materials_data, fixture_model))
|
||||
elif fixture_materials_name == '气动夹具':
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
self.create(self._json_pneumatic_fixture_param(fixture_materials_data, fixture_model))
|
||||
elif fixture_materials_name == '虎钳夹具':
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
self.create(self._json_jaw_vice_fixture_param(fixture_materials_data, fixture_model))
|
||||
elif fixture_materials_name == '磁吸夹具':
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
self.create(self._json_magnet_fixture_param(fixture_materials_data, fixture_model))
|
||||
elif fixture_materials_name == '转接板(锁板)夹具':
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
self.create(self._json_adapter_board_fixture_param(fixture_materials_data, fixture_model))
|
||||
elif fixture_materials_name == '三爪卡盘':
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
self.create(self._json_scroll_chuck_param(fixture_materials_data, fixture_model))
|
||||
|
||||
def _json_pneumatic_fixture_param(self, obj):
|
||||
pneumatic_fixture_param_str = (0, '', {
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'rated_air_pressure': obj['rated_air_pressure'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'type_of_drive': obj['type_of_drive'],
|
||||
})
|
||||
return pneumatic_fixture_param_str
|
||||
def write_fixture_materials(self, fixture_materials_datas, fixture_model):
|
||||
fixture_materials_name = fixture_model.fixture_material_id.name
|
||||
# cloud夹具物料的code
|
||||
mrs_fixture_materials_codes = []
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
mrs_fixture_materials_codes.append(fixture_materials_data.get('code'))
|
||||
# sf夹具物料的code 判断sf夹具型号关联的夹具物料在同步过来的mrs夹具物料中是否存在,不存在则删除
|
||||
sf_materials_model_codes = self._get_sf_materials_model_codes(fixture_model)
|
||||
for sf_materials_model_code in sf_materials_model_codes:
|
||||
if sf_materials_model_code not in mrs_fixture_materials_codes:
|
||||
self.search([('code', '=', sf_materials_model_code)]).sudo().unlink()
|
||||
|
||||
def _json_jaw_vice_fixture_param(self, obj):
|
||||
jaw_vice_fixture_param_str = (0, '', {
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'transverse_groove': obj['transverse_groove'],
|
||||
'longitudinal_fitting_groove': obj['longitudinal_fitting_groove'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'type_of_drive': obj['type_of_drive'],
|
||||
})
|
||||
return jaw_vice_fixture_param_str
|
||||
for fixture_materials_data in fixture_materials_datas:
|
||||
fixture_materials_list = self._get_fixture_materials_list(fixture_materials_data, fixture_materials_name,
|
||||
fixture_model)
|
||||
fixture_materials_code = fixture_materials_list.get('code')
|
||||
# 判断同步过来的mrs刀具物料在sf夹具型号关联的夹具物料中是否存在,如果存在则修改,如果不存在则创建
|
||||
if fixture_materials_code in sf_materials_model_codes:
|
||||
self.search([('code', '=', fixture_materials_code)]).sudo().write(fixture_materials_list)
|
||||
else:
|
||||
self.sudo().create(fixture_materials_list)
|
||||
|
||||
def _json_magnet_fixture_param(self, obj):
|
||||
magnet_fixture_param_str = (0, '', {
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'height_tolerance_value': obj['height_tolerance_value'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'rated_adsorption_force': obj['rated_adsorption_force'],
|
||||
'magnetic_field_height': obj['magnetic_field_height'],
|
||||
'magnetic_pole_plate_grinding_allowance': obj['magnetic_pole_plate_grinding_allowance'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'type_of_drive': obj['type_of_drive'],
|
||||
})
|
||||
return magnet_fixture_param_str
|
||||
def _get_sf_materials_model_codes(self, fixture_model):
|
||||
fixture_materials_name = fixture_model.fixture_material_id.name
|
||||
if fixture_materials_name == '零点卡盘':
|
||||
return self._get_sf_materials_model_code(fixture_model.zero_chuck_ids)
|
||||
elif fixture_materials_name == '零点托盘':
|
||||
return self._get_sf_materials_model_code(fixture_model.zero_tray_ids)
|
||||
elif fixture_materials_name == '气动夹具':
|
||||
return self._get_sf_materials_model_code(fixture_model.pneumatic_fixture_ids)
|
||||
elif fixture_materials_name == '虎钳夹具':
|
||||
return self._get_sf_materials_model_code(fixture_model.pneumatic_fixture_ids)
|
||||
elif fixture_materials_name == '磁吸夹具':
|
||||
return self._get_sf_materials_model_code(fixture_model.magnet_fixture_ids)
|
||||
elif fixture_materials_name == '转接板(锁板)夹具':
|
||||
return self._get_sf_materials_model_code(fixture_model.adapter_board_fixture_ids)
|
||||
elif fixture_materials_name == '三爪卡盘':
|
||||
return self._get_sf_materials_model_code(fixture_model.scroll_chuck_ids)
|
||||
return False
|
||||
|
||||
def _json_adapter_board_fixture_param(self, obj):
|
||||
adapter_board_fixture_param_str = (0, '', {
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'screw_size': obj['screw_size'],
|
||||
'via_hole_diameter': obj['via_hole_diameter'],
|
||||
'type_of_drive': obj['type_of_drive'],
|
||||
})
|
||||
return adapter_board_fixture_param_str
|
||||
def _get_sf_materials_model_code(self, fixture_materials_ids):
|
||||
sf_materials_model_codes = []
|
||||
for fixture_materials_id in fixture_materials_ids:
|
||||
sf_materials_model_codes.append(fixture_materials_id.code)
|
||||
return sf_materials_model_codes
|
||||
|
||||
def _json_scroll_chuck_param(self, obj):
|
||||
scroll_chuck_param_str = (0, '', {
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'diameter': obj['diameter'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'mounting_hole_depth': obj['mounting_hole_depth'],
|
||||
'centering_diameter': obj['centering_diameter'],
|
||||
'type_of_drive': obj['type_of_drive'],
|
||||
})
|
||||
return scroll_chuck_param_str
|
||||
def _get_fixture_materials_list(self, fixture_materials_data, fixture_materials_name, fixture_model):
|
||||
if fixture_materials_name == '零点卡盘':
|
||||
return self._json_zero_chuck_param(fixture_materials_data, fixture_model)
|
||||
elif fixture_materials_name == '零点托盘':
|
||||
return self._json_zero_tray_param(fixture_materials_data, fixture_model)
|
||||
elif fixture_materials_name == '气动夹具':
|
||||
return self._json_pneumatic_fixture_param(fixture_materials_data, fixture_model)
|
||||
elif fixture_materials_name == '虎钳夹具':
|
||||
return self._json_jaw_vice_fixture_param(fixture_materials_data, fixture_model)
|
||||
elif fixture_materials_name == '磁吸夹具':
|
||||
return self._json_magnet_fixture_param(fixture_materials_data, fixture_model)
|
||||
elif fixture_materials_name == '转接板(锁板)夹具':
|
||||
return self._json_adapter_board_fixture_param(fixture_materials_data, fixture_model)
|
||||
elif fixture_materials_name == '三爪卡盘':
|
||||
return self._json_scroll_chuck_param(fixture_materials_data, fixture_model)
|
||||
return False
|
||||
|
||||
def _json_zero_chuck_param(self, obj, fixture_model):
|
||||
"""零点卡盘:将data数据转换成list数据"""
|
||||
return {'code': obj['code'],
|
||||
'fixture_model_id': fixture_model.id,
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'diameter': obj['diameter'],
|
||||
'weight': obj['weight'],
|
||||
'orientation_dish_diameter': obj['orientation_dish_diameter'],
|
||||
'clamping_diameter': obj['clamping_diameter'],
|
||||
'clamping_num': obj['clamping_num'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
|
||||
'boolean_transposing_hole': obj['boolean_transposing_hole'],
|
||||
'unlocking_method': obj['unlocking_method'],
|
||||
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'rigidity': obj['rigidity'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'machine_tool_type_id': self.env['sf.machine_tool.type'].sudo().search(
|
||||
[('code', '=', obj['machine_tool_type_id']), ('active', '=', True)]).id}
|
||||
|
||||
def _json_zero_tray_param(self, obj, fixture_model):
|
||||
"""零点托盘:将data数据转换成list数据"""
|
||||
return {'code': obj['code'],
|
||||
'fixture_model_id': fixture_model.id,
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'diameter': obj['diameter'],
|
||||
'weight': obj['weight'],
|
||||
'clamping_diameter': obj['clamping_diameter'],
|
||||
'connector_diameter': obj['connector_diameter'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'repeated_positioning_accuracy': obj['repeated_positioning_accuracy'],
|
||||
'boolean_chip_blowing_function': obj['boolean_chip_blowing_function'],
|
||||
'way_to_install': obj['way_to_install'],
|
||||
'type_of_drive': obj['type_of_drive'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity']}
|
||||
|
||||
def _json_pneumatic_fixture_param(self, obj, fixture_model):
|
||||
"""气动夹具:将data数据转换成list数据"""
|
||||
return {'code': obj['code'],
|
||||
'fixture_model_id': fixture_model.id,
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'rated_air_pressure': obj['rated_air_pressure'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'type_of_drive': obj['type_of_drive']}
|
||||
|
||||
def _json_jaw_vice_fixture_param(self, obj, fixture_model):
|
||||
"""虎钳夹具:将data数据转换成list数据"""
|
||||
return {'code': obj['code'],
|
||||
'fixture_model_id': fixture_model.id,
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'transverse_groove': obj['transverse_groove'],
|
||||
'longitudinal_fitting_groove': obj['longitudinal_fitting_groove'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'type_of_drive': obj['type_of_drive']}
|
||||
|
||||
def _json_magnet_fixture_param(self, obj, fixture_model):
|
||||
"""磁吸夹具:将data数据转换成list数据"""
|
||||
return {'code': obj['code'],
|
||||
'fixture_model_id': fixture_model.id,
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'height_tolerance_value': obj['height_tolerance_value'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'rated_adsorption_force': obj['rated_adsorption_force'],
|
||||
'magnetic_field_height': obj['magnetic_field_height'],
|
||||
'magnetic_pole_plate_grinding_allowance': obj['magnetic_pole_plate_grinding_allowance'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'interface_materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'type_of_drive': obj['type_of_drive']}
|
||||
|
||||
def _json_adapter_board_fixture_param(self, obj, fixture_model):
|
||||
"""转接板(锁板)夹具:将data数据转换成list数据"""
|
||||
return {'code': obj['code'],
|
||||
'fixture_model_id': fixture_model.id,
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'screw_size': obj['screw_size'],
|
||||
'via_hole_diameter': obj['via_hole_diameter'],
|
||||
'type_of_drive': obj['type_of_drive']}
|
||||
|
||||
def _json_scroll_chuck_param(self, obj, fixture_model):
|
||||
"""转接板(锁板)夹具:将data数据转换成list数据"""
|
||||
return {'code': obj['code'],
|
||||
'fixture_model_id': fixture_model.id,
|
||||
'name': obj['name'],
|
||||
'length': obj['length'],
|
||||
'width': obj['width'],
|
||||
'height': obj['height'],
|
||||
'diameter': obj['diameter'],
|
||||
'weight': obj['weight'],
|
||||
'gripper_length_min': obj['gripper_length_min'],
|
||||
'gripper_width_min': obj['gripper_width_min'],
|
||||
'gripper_height_min': obj['gripper_height_min'],
|
||||
'gripper_diameter_min': obj['gripper_diameter_min'],
|
||||
'gripper_length_max': obj['gripper_length_max'],
|
||||
'gripper_width_max': obj['gripper_width_max'],
|
||||
'gripper_height_max': obj['gripper_height_max'],
|
||||
'gripper_diameter_max': obj['gripper_diameter_max'],
|
||||
'chucking_power_max': obj['chucking_power_max'],
|
||||
'carrying_capacity_max': obj['carrying_capacity_max'],
|
||||
'materials_model_id': self.env['sf.materials.model'].sudo().search(
|
||||
[('materials_no', '=', obj['materials_model_id']), ('active', '=', True)]).id,
|
||||
'rigidity': obj['rigidity'],
|
||||
'mounting_hole_depth': obj['mounting_hole_depth'],
|
||||
'centering_diameter': obj['centering_diameter'],
|
||||
'type_of_drive': obj['type_of_drive']}
|
||||
|
||||
@@ -26,10 +26,10 @@ class FixtureModel(models.Model):
|
||||
_name = 'sf.fixture.model'
|
||||
_description = "夹具型号"
|
||||
|
||||
name = fields.Char(string="名称", size=50, required=True)
|
||||
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料", required=True)
|
||||
name = fields.Char(string="名称", size=50)
|
||||
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料")
|
||||
fixture_material_type = fields.Char(string="夹具物料类型", related='fixture_material_id.name')
|
||||
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型", required=True)
|
||||
multi_mounting_type_id = fields.Many2one('sf.multi_mounting.type', string="联装类型")
|
||||
brand_id = fields.Many2one('sf.machine.brand', string="品牌")
|
||||
model_file = fields.Binary(string="图片")
|
||||
status = fields.Boolean('状态')
|
||||
|
||||
@@ -165,6 +165,7 @@
|
||||
<field name="zero_chuck_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '零点卡盘')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
@@ -190,6 +191,7 @@
|
||||
<field name="zero_tray_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '零点托盘')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
@@ -213,6 +215,7 @@
|
||||
<field name="pneumatic_fixture_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '气动夹具')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
@@ -240,6 +243,7 @@
|
||||
<field name="jaw_vice_fixture_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '虎钳夹具')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
@@ -268,6 +272,7 @@
|
||||
<field name="magnet_fixture_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '磁吸夹具')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
@@ -297,6 +302,7 @@
|
||||
<field name="adapter_board_fixture_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '转接板(锁板)夹具')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
@@ -323,6 +329,7 @@
|
||||
<field name="scroll_chuck_ids"
|
||||
attrs="{'invisible': [('fixture_material_type', '!=', '三爪卡盘')]}">
|
||||
<tree editable="bottom" class="center" delete="0">
|
||||
<field name="code" invisible="1"/>
|
||||
<field name="name"/>
|
||||
<field name="length"/>
|
||||
<field name="width"/>
|
||||
|
||||
@@ -827,7 +827,8 @@ class MachineToolType(models.Model):
|
||||
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'])]).ids
|
||||
lq_image_id = self.env['maintenance.equipment.image'].search([('name', 'in', item['lq_image_id'])]).ids
|
||||
category = self.env['sf.machine_tool.category'].search([('code', '=', item['machine_tool_category']), ('active', '=', True)], limit=1)
|
||||
category = self.env['sf.machine_tool.category'].search(
|
||||
[('code', '=', item['machine_tool_category']), ('active', '=', True)], limit=1)
|
||||
|
||||
if not machine_tool_type:
|
||||
self.create({
|
||||
@@ -1475,90 +1476,62 @@ class SyncFixtureModel(models.Model):
|
||||
for item in result['fixture_model_yesterday_list']:
|
||||
if item:
|
||||
fixture_model = self.search([("code", '=', item['code']), ('active', 'in', [True, False])])
|
||||
zero_chuck_list = []
|
||||
for zero_chuck_id in item['zero_chuck_ids']:
|
||||
zero_chuck_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_zero_chuck_param(zero_chuck_id))
|
||||
zero_tray_list = []
|
||||
for zero_tray_id in item['zero_tray_ids']:
|
||||
zero_tray_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_zero_tray_param(zero_tray_id))
|
||||
pneumatic_fixture_list = []
|
||||
for pneumatic_fixture_id in item['pneumatic_fixture_ids']:
|
||||
pneumatic_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_pneumatic_fixture_param(
|
||||
pneumatic_fixture_id))
|
||||
jaw_vice_fixture_list = []
|
||||
for jaw_vice_fixture_id in item['jaw_vice_fixture_ids']:
|
||||
jaw_vice_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_jaw_vice_fixture_param(
|
||||
jaw_vice_fixture_id))
|
||||
magnet_fixture_list = []
|
||||
for magnet_fixture_id in item['magnet_fixture_ids']:
|
||||
magnet_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_magnet_fixture_param(
|
||||
magnet_fixture_id))
|
||||
adapter_board_fixture_list = []
|
||||
for adapter_board_fixture_id in item['adapter_board_fixture_ids']:
|
||||
adapter_board_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_adapter_board_fixture_param(
|
||||
adapter_board_fixture_id))
|
||||
scroll_chuck_list = []
|
||||
for scroll_chuck_id in item['scroll_chuck_ids']:
|
||||
scroll_chuck_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_scroll_chuck_param(
|
||||
scroll_chuck_id))
|
||||
fixture_materials = self.env['sf.fixture.materials.basic.parameters']
|
||||
val = {
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"fixture_material_id": self.env['sf.fixture.material'].search(
|
||||
[('code', '=', item['fixture_material_code'])]).id,
|
||||
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
|
||||
[('code', '=', item['multi_mounting_type_code'])]).id,
|
||||
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
|
||||
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
|
||||
"status": item['status'],
|
||||
"active": item['active'],
|
||||
}
|
||||
if not fixture_model:
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"fixture_material_id": self.env['sf.fixture.material'].search(
|
||||
[('code', '=', item['fixture_material_code'])]).id,
|
||||
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
|
||||
[('code', '=', item['multi_mounting_type_code'])]).id,
|
||||
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
|
||||
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
|
||||
"zero_chuck_ids": zero_chuck_list,
|
||||
"zero_tray_ids": zero_tray_list,
|
||||
"pneumatic_fixture_ids": pneumatic_fixture_list,
|
||||
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
|
||||
"magnet_fixture_ids": magnet_fixture_list,
|
||||
"adapter_board_fixture_ids": adapter_board_fixture_list,
|
||||
"scroll_chuck_ids": scroll_chuck_list,
|
||||
"status": item['status'],
|
||||
"active": item['active'],
|
||||
})
|
||||
fixture_model = self.create(val)
|
||||
fixture_material_name = fixture_model.fixture_material_id.name
|
||||
if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘':
|
||||
fixture_materials.create_fixture_materials(item['zero_chuck_ids'], fixture_model)
|
||||
elif item['zero_tray_ids'] and fixture_material_name == '零点托盘':
|
||||
fixture_materials.create_fixture_materials(item['zero_tray_ids'], fixture_model)
|
||||
elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具':
|
||||
fixture_materials.create_fixture_materials(item['pneumatic_fixture_ids'], fixture_model)
|
||||
elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具':
|
||||
fixture_materials.create_fixture_materials(item['jaw_vice_fixture_ids'], fixture_model)
|
||||
elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具':
|
||||
fixture_materials.create_fixture_materials(item['magnet_fixture_ids'], fixture_model)
|
||||
elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具':
|
||||
fixture_materials.create_fixture_materials(item['adapter_board_fixture_ids'],
|
||||
fixture_model)
|
||||
elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘':
|
||||
fixture_materials.create_fixture_materials(item['scroll_chuck_ids'], fixture_model)
|
||||
else:
|
||||
fixture_model.write({
|
||||
"zero_chuck_ids": [(5, 0, 0)],
|
||||
"zero_tray_ids": [(5, 0, 0)],
|
||||
"pneumatic_fixture_ids": [(5, 0, 0)],
|
||||
"jaw_vice_fixture_ids": [(5, 0, 0)],
|
||||
"magnet_fixture_ids": [(5, 0, 0)],
|
||||
"adapter_board_fixture_ids": [(5, 0, 0)],
|
||||
"scroll_chuck_ids": [(5, 0, 0)],
|
||||
})
|
||||
self.env['sf.fixture.materials.basic.parameters'].sudo().search(
|
||||
[('fixture_model_id', '=', False)]).unlink()
|
||||
fixture_model.write({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"fixture_material_id": self.env['sf.fixture.material'].search(
|
||||
[('code', '=', item['fixture_material_code'])]).id,
|
||||
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
|
||||
[('code', '=', item['multi_mounting_type_code'])]).id,
|
||||
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
|
||||
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
|
||||
"zero_chuck_ids": zero_chuck_list,
|
||||
"zero_tray_ids": zero_tray_list,
|
||||
"pneumatic_fixture_ids": pneumatic_fixture_list,
|
||||
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
|
||||
"magnet_fixture_ids": magnet_fixture_list,
|
||||
"adapter_board_fixture_ids": adapter_board_fixture_list,
|
||||
"scroll_chuck_ids": scroll_chuck_list,
|
||||
"status": item['status'],
|
||||
"active": item['active'],
|
||||
})
|
||||
fixture_model.write(val)
|
||||
fixture_material_name = fixture_model.fixture_material_id.name
|
||||
if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘':
|
||||
fixture_materials.write_fixture_materials(item['zero_chuck_ids'], fixture_material_name)
|
||||
elif item['zero_tray_ids'] and fixture_material_name == '零点托盘':
|
||||
fixture_materials.write_fixture_materials(item['zero_tray_ids'], fixture_material_name)
|
||||
elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具':
|
||||
fixture_materials.write_fixture_materials(item['pneumatic_fixture_ids'],
|
||||
fixture_material_name)
|
||||
elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具':
|
||||
fixture_materials.write_fixture_materials(item['jaw_vice_fixture_ids'],
|
||||
fixture_material_name)
|
||||
elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具':
|
||||
fixture_materials.write_fixture_materials(item['magnet_fixture_ids'],
|
||||
fixture_material_name)
|
||||
elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具':
|
||||
fixture_materials.write_fixture_materials(item['adapter_board_fixture_ids'],
|
||||
fixture_material_name)
|
||||
elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘':
|
||||
fixture_materials.write_fixture_materials(item['scroll_chuck_ids'],
|
||||
fixture_material_name)
|
||||
else:
|
||||
self.env['sf.fixture.materials.basic.parameters'].sudo().search(
|
||||
[('fixture_model_id', '=', fixture_model.id)]).unlink()
|
||||
else:
|
||||
raise ValidationError("夹具型号认证未通过")
|
||||
|
||||
@@ -1576,90 +1549,58 @@ class SyncFixtureModel(models.Model):
|
||||
for item in result['fixture_model_all_list']:
|
||||
if item:
|
||||
fixture_model = self.search([('code', '=', item['code']), ('active', 'in', [True, False])])
|
||||
zero_chuck_list = []
|
||||
for zero_chuck_id in item['zero_chuck_ids']:
|
||||
zero_chuck_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_zero_chuck_param(zero_chuck_id))
|
||||
zero_tray_list = []
|
||||
for zero_tray_id in item['zero_tray_ids']:
|
||||
zero_tray_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_zero_tray_param(zero_tray_id))
|
||||
pneumatic_fixture_list = []
|
||||
for pneumatic_fixture_id in item['pneumatic_fixture_ids']:
|
||||
pneumatic_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_pneumatic_fixture_param(
|
||||
pneumatic_fixture_id))
|
||||
jaw_vice_fixture_list = []
|
||||
for jaw_vice_fixture_id in item['jaw_vice_fixture_ids']:
|
||||
jaw_vice_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_jaw_vice_fixture_param(
|
||||
jaw_vice_fixture_id))
|
||||
magnet_fixture_list = []
|
||||
for magnet_fixture_id in item['magnet_fixture_ids']:
|
||||
magnet_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_magnet_fixture_param(
|
||||
magnet_fixture_id))
|
||||
adapter_board_fixture_list = []
|
||||
for adapter_board_fixture_id in item['adapter_board_fixture_ids']:
|
||||
adapter_board_fixture_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_adapter_board_fixture_param(
|
||||
adapter_board_fixture_id))
|
||||
scroll_chuck_list = []
|
||||
for scroll_chuck_id in item['scroll_chuck_ids']:
|
||||
scroll_chuck_list.append(
|
||||
self.env['sf.fixture.materials.basic.parameters']._json_scroll_chuck_param(
|
||||
scroll_chuck_id))
|
||||
fixture_materials = self.env['sf.fixture.materials.basic.parameters']
|
||||
val = {
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"fixture_material_id": self.env['sf.fixture.material'].search(
|
||||
[('code', '=', item['fixture_material_code'])]).id,
|
||||
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
|
||||
[('code', '=', item['multi_mounting_type_code'])]).id,
|
||||
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
|
||||
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
|
||||
"status": item['status'],
|
||||
"active": item['active'],
|
||||
}
|
||||
if not fixture_model:
|
||||
self.create({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"fixture_material_id": self.env['sf.fixture.material'].search(
|
||||
[('code', '=', item['fixture_material_code'])]).id,
|
||||
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
|
||||
[('code', '=', item['multi_mounting_type_code'])]).id,
|
||||
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
|
||||
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
|
||||
"zero_chuck_ids": zero_chuck_list,
|
||||
"zero_tray_ids": zero_tray_list,
|
||||
"pneumatic_fixture_ids": pneumatic_fixture_list,
|
||||
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
|
||||
"magnet_fixture_ids": magnet_fixture_list,
|
||||
"adapter_board_fixture_ids": adapter_board_fixture_list,
|
||||
"scroll_chuck_ids": scroll_chuck_list,
|
||||
"status": item['status'],
|
||||
"active": item['active'],
|
||||
})
|
||||
fixture_model = self.create(val)
|
||||
fixture_material_name = fixture_model.fixture_material_id.name
|
||||
if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘':
|
||||
fixture_materials.create_fixture_materials(item['zero_chuck_ids'], fixture_model)
|
||||
elif item['zero_tray_ids'] and fixture_material_name == '零点托盘':
|
||||
fixture_materials.create_fixture_materials(item['zero_tray_ids'], fixture_model)
|
||||
elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具':
|
||||
fixture_materials.create_fixture_materials(item['pneumatic_fixture_ids'], fixture_model)
|
||||
elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具':
|
||||
fixture_materials.create_fixture_materials(item['jaw_vice_fixture_ids'], fixture_model)
|
||||
elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具':
|
||||
fixture_materials.create_fixture_materials(item['magnet_fixture_ids'], fixture_model)
|
||||
elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具':
|
||||
fixture_materials.create_fixture_materials(item['adapter_board_fixture_ids'],
|
||||
fixture_model)
|
||||
elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘':
|
||||
fixture_materials.create_fixture_materials(item['scroll_chuck_ids'], fixture_model)
|
||||
else:
|
||||
fixture_model.write({
|
||||
"zero_chuck_ids": [(5, 0, 0)],
|
||||
"zero_tray_ids": [(5, 0, 0)],
|
||||
"pneumatic_fixture_ids": [(5, 0, 0)],
|
||||
"jaw_vice_fixture_ids": [(5, 0, 0)],
|
||||
"magnet_fixture_ids": [(5, 0, 0)],
|
||||
"adapter_board_fixture_ids": [(5, 0, 0)],
|
||||
"scroll_chuck_ids": [(5, 0, 0)],
|
||||
})
|
||||
self.env['sf.fixture.materials.basic.parameters'].sudo().search(
|
||||
[('fixture_model_id', '=', False)]).unlink()
|
||||
fixture_model.write({
|
||||
"name": item['name'],
|
||||
"code": item['code'],
|
||||
"fixture_material_id": self.env['sf.fixture.material'].search(
|
||||
[('code', '=', item['fixture_material_code'])]).id,
|
||||
"multi_mounting_type_id": self.env['sf.multi_mounting.type'].search(
|
||||
[('code', '=', item['multi_mounting_type_code'])]).id,
|
||||
"brand_id": self.env['sf.machine.brand'].search([('code', '=', item['brand_code'])]).id,
|
||||
"model_file": '' if not item['model_file'] else base64.b64decode(item['model_file']),
|
||||
"zero_chuck_ids": zero_chuck_list,
|
||||
"zero_tray_ids": zero_tray_list,
|
||||
"pneumatic_fixture_ids": pneumatic_fixture_list,
|
||||
"jaw_vice_fixture_ids": jaw_vice_fixture_list,
|
||||
"magnet_fixture_ids": magnet_fixture_list,
|
||||
"adapter_board_fixture_ids": adapter_board_fixture_list,
|
||||
"scroll_chuck_ids": scroll_chuck_list,
|
||||
"status": item['status'],
|
||||
"active": item['active'],
|
||||
})
|
||||
fixture_model.write(val)
|
||||
fixture_material_name = fixture_model.fixture_material_id.name
|
||||
if item['zero_chuck_ids'] and fixture_material_name == '零点卡盘':
|
||||
fixture_materials.write_fixture_materials(item['zero_chuck_ids'], fixture_model)
|
||||
elif item['zero_tray_ids'] and fixture_material_name == '零点托盘':
|
||||
fixture_materials.write_fixture_materials(item['zero_tray_ids'], fixture_model)
|
||||
elif item['pneumatic_fixture_ids'] and fixture_material_name == '气动夹具':
|
||||
fixture_materials.write_fixture_materials(item['pneumatic_fixture_ids'], fixture_model)
|
||||
elif item['jaw_vice_fixture_ids'] and fixture_material_name == '虎钳夹具':
|
||||
fixture_materials.write_fixture_materials(item['jaw_vice_fixture_ids'], fixture_model)
|
||||
elif item['magnet_fixture_ids'] and fixture_material_name == '磁吸夹具':
|
||||
fixture_materials.write_fixture_materials(item['magnet_fixture_ids'], fixture_model)
|
||||
elif item['adapter_board_fixture_ids'] and fixture_material_name == '转接板(锁板)夹具':
|
||||
fixture_materials.write_fixture_materials(item['adapter_board_fixture_ids'],
|
||||
fixture_model)
|
||||
elif item['scroll_chuck_ids'] and fixture_material_name == '三爪卡盘':
|
||||
fixture_materials.write_fixture_materials(item['scroll_chuck_ids'], fixture_model)
|
||||
else:
|
||||
self.env['sf.fixture.materials.basic.parameters'].sudo().search(
|
||||
[('fixture_model_id', '=', fixture_model.id)]).unlink()
|
||||
else:
|
||||
raise ValidationError("夹具型号认证未通过")
|
||||
|
||||
@@ -2457,8 +2398,9 @@ class CuttingToolBasicParameters(models.Model):
|
||||
'cutting_tool_type': '整体式刀具',
|
||||
'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
|
||||
[(
|
||||
'code', '=', integral_tool_item['standard_library_code'].replace("JKM", result[
|
||||
'factory_short_name']))]).id,
|
||||
'code', '=',
|
||||
integral_tool_item['standard_library_code'].replace("JKM", result[
|
||||
'factory_short_name']))]).id,
|
||||
'total_length': integral_tool_item['total_length'],
|
||||
'blade_diameter': integral_tool_item['blade_diameter'],
|
||||
'blade_length': integral_tool_item['blade_length'],
|
||||
@@ -2825,8 +2767,9 @@ class CuttingToolBasicParameters(models.Model):
|
||||
'cutting_tool_type': '整体式刀具',
|
||||
'standard_library_id': self.env['sf.cutting_tool.standard.library'].search(
|
||||
[(
|
||||
'code', '=', integral_tool_item['standard_library_code'].replace("JKM", result[
|
||||
'factory_short_name']))]).id,
|
||||
'code', '=',
|
||||
integral_tool_item['standard_library_code'].replace("JKM", result[
|
||||
'factory_short_name']))]).id,
|
||||
'total_length': integral_tool_item['total_length'],
|
||||
'blade_diameter': integral_tool_item['blade_diameter'],
|
||||
'blade_length': integral_tool_item['blade_length'],
|
||||
|
||||
@@ -44,8 +44,9 @@ class sf_production_plan(models.Model):
|
||||
production_id = fields.Many2one('mrp.production', '关联制造订单')
|
||||
product_qty = fields.Float(string='数量', digits='Product Unit of Measure', required=True, default=0.0)
|
||||
production_line_id = fields.Many2one('sf.production.line', string='生产线')
|
||||
date_planned_start = fields.Datetime(string='计划开始时间', required=True, index=True, copy=False,
|
||||
default=fields.Datetime.now)
|
||||
# date_planned_start = fields.Datetime(string='计划开始时间', required=True, index=True, copy=False,
|
||||
# default=fields.Datetime.now)
|
||||
date_planned_start = fields.Datetime(string='计划开始时间')
|
||||
date_planned_finished = fields.Datetime(string='计划结束时间')
|
||||
# 排程设置selection(倒排,顺排,默认倒排)
|
||||
schedule_setting = fields.Selection([
|
||||
@@ -80,7 +81,7 @@ class sf_production_plan(models.Model):
|
||||
def _compute_production_line_id(self):
|
||||
for item in self:
|
||||
item.sudo().production_id.production_line_id = item.production_line_id.id
|
||||
item.sudo().production_id.plan_start_processing_time = item.date_planned_start
|
||||
# item.sudo().production_id.plan_start_processing_time = item.date_planned_start
|
||||
|
||||
# @api.onchange('state')
|
||||
# def _onchange_state(self):
|
||||
@@ -198,7 +199,9 @@ class sf_production_plan(models.Model):
|
||||
for item in record.production_id.workorder_ids:
|
||||
if item.name == 'CNC加工':
|
||||
item.date_planned_finished = datetime.now() + timedelta(days=100)
|
||||
item.date_planned_start = record.date_planned_start
|
||||
# item.date_planned_start = record.date_planned_start
|
||||
item.date_planned_start = datetime.now()
|
||||
record.sudo().production_id.plan_start_processing_time = item.date_planned_start
|
||||
item.date_planned_finished = item.date_planned_start + timedelta(
|
||||
minutes=record.env['mrp.routing.workcenter'].sudo().search(
|
||||
[('name', '=', 'CNC加工')]).time_cycle)
|
||||
@@ -291,6 +294,7 @@ class sf_production_plan(models.Model):
|
||||
print('时间设置失败,请检查是否为工序分配工作中心,%s' % e)
|
||||
|
||||
def cancel_production_schedule(self):
|
||||
self.date_planned_start = False
|
||||
self.date_planned_finished = False
|
||||
self.state = 'draft'
|
||||
self.production_line_id = False
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
<group string="加工信息">
|
||||
|
||||
<field name="date_planned_start"/>
|
||||
<field name="date_planned_start" placeholder="如果不选择计划开始时间,会取当前时间来做排程"/>
|
||||
<field name="date_planned_finished"/>
|
||||
<field name="actual_process_time"/>
|
||||
<field name="actual_start_time"/>
|
||||
|
||||
@@ -197,6 +197,12 @@ class FunctionalCuttingToolEntity(models.Model):
|
||||
record.enroll_functional_tool_entity()
|
||||
return records
|
||||
|
||||
def write(self, vals):
|
||||
res = super().write(vals)
|
||||
if vals.get('current_location'):
|
||||
self.enroll_functional_tool_entity()
|
||||
return res
|
||||
|
||||
|
||||
class FunctionalToolWarning(models.Model):
|
||||
_inherit = 'sf.functional.tool.warning'
|
||||
|
||||
@@ -424,6 +424,14 @@ class Sf_stock_move_line(models.Model):
|
||||
# lot_qr_code = fields.Binary(string='二维码', compute='_compute_lot_qr_code', store=True)
|
||||
lot_qr_code = fields.Binary(string='二维码', compute='_compute_lot_qr_code', store=True)
|
||||
|
||||
def action_revert_inventory(self):
|
||||
# 检查用户是否有执行操作的权限
|
||||
if not self.env.user.has_group('sf_warehouse.group_sf_stock_user'):
|
||||
raise UserError(_('抱歉,只有库管人员可以执行此动作'))
|
||||
|
||||
# 如果用户有权限,调用父类方法
|
||||
return super(CustomStockMoveLine, self).action_revert_inventory()
|
||||
|
||||
@api.depends('lot_name')
|
||||
def _compute_lot_qr_code(self):
|
||||
for record in self:
|
||||
|
||||
Reference in New Issue
Block a user