Merge branch 'develop' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into feature/刀具物料与夹具物料的反注册
# Conflicts: # sf_base/views/base_view.xml
This commit is contained in:
@@ -44,13 +44,16 @@ class ResProductMo(models.Model):
|
||||
|
||||
cutting_tool_model_id = fields.Many2one('sf.cutting.tool.model', string='型号',
|
||||
)
|
||||
cutting_tool_type_id = fields.Many2one('sf.cutting.tool.type', string='刀具类型',
|
||||
domain="[('cutting_tool_material_id.name', '=', cutting_tool_type)]")
|
||||
|
||||
brand_id = fields.Many2one('sf.machine.brand', '品牌')
|
||||
tool_length = fields.Integer('长度L(mm)', size=6)
|
||||
tool_width = fields.Integer('宽度D(mm)', size=6)
|
||||
tool_height = fields.Integer('高度T(mm)', size=6)
|
||||
tool_length = fields.Integer('长度(mm)', size=6)
|
||||
tool_width = fields.Integer('宽度(mm)', size=6)
|
||||
tool_height = fields.Integer('高度(mm)', size=6)
|
||||
tool_thickness = fields.Integer('厚度(mm)', size=6)
|
||||
tool_weight = fields.Float('重量(kg)', size=4)
|
||||
coating_material = fields.Char('涂层材料')
|
||||
coating_material = fields.Char('涂层材质')
|
||||
# 整体式刀具参数
|
||||
cutting_tool_total_length = fields.Float('总长度(mm)')
|
||||
cutting_tool_shank_length = fields.Float('柄部长度(mm)')
|
||||
@@ -60,28 +63,26 @@ class ResProductMo(models.Model):
|
||||
cutting_tool_front_angle = fields.Float('前角(°)')
|
||||
cutting_tool_rear_angle = fields.Float('后角(°)')
|
||||
cutting_tool_main_included_angle = fields.Float('主偏角(°)')
|
||||
cutting_tool_material_model_id = fields.Many2one('sf.materials.model', '材料型号')
|
||||
# cutting_tool_material_model_id = fields.Many2one('sf.materials.model', '材料型号')
|
||||
cutting_tool_nut = fields.Float('配对螺母(mm)')
|
||||
# 适用夹头型号可以多选
|
||||
cutting_tool_chuck_model_ids = fields.Many2many(
|
||||
cutting_tool_chuck_ids = fields.Many2many(
|
||||
'sf.cutting.tool.model',
|
||||
relation='product_cutting_tool_model_handle_chuck_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('mrs_cutting_tool_material_id.name', '=', '夹头')]",
|
||||
domain="[('cutting_tool_type', '=', '夹头')]",
|
||||
string='适用夹头型号')
|
||||
cutting_tool_scope = fields.Char('适用范围')
|
||||
# 刀片参数
|
||||
|
||||
cutting_tool_top_angle = fields.Float('顶角(°)')
|
||||
cutting_tool_r_angle = fields.Float('R角(°)')
|
||||
cutting_tool_working_hardness = fields.Char('加工硬度')
|
||||
cutting_tool_jump_accuracy = fields.Float('径跳精度(um)')
|
||||
cutting_tool_working_hardness = fields.Char('加工硬度(hrc)')
|
||||
cutting_tool_cutter_bar_ids = fields.Many2many(
|
||||
'sf.cutting.tool.model',
|
||||
relation='product_cutting_tool_model_blade_cutter_bar_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('mrs_cutting_tool_material_id.name', '=', '刀杆')]",
|
||||
domain="[('cutting_tool_type', '=', '刀杆')]",
|
||||
string='适用刀杆型号'
|
||||
)
|
||||
cutting_tool_cutter_pad_ids = fields.Many2many(
|
||||
@@ -89,50 +90,38 @@ class ResProductMo(models.Model):
|
||||
relation='product_cutting_tool_model_blade_cutter_pad_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('mrs_cutting_tool_material_id.name', '=', '刀盘')]",
|
||||
domain="[('cutting_tool_type', '=', '刀盘')]",
|
||||
string='适用刀盘型号' # 使用空列表作为默认值
|
||||
)
|
||||
cutting_tool_radius = fields.Float('刀尖半径(mm)')
|
||||
# 刀杆/参数
|
||||
cutting_tool_c_diameter = fields.Float('C柄径(mm)')
|
||||
cutting_tool_l_total_length = fields.Float('L总长(mm)')
|
||||
cutting_tool_d_diameter = fields.Float('D刃径(mm)')
|
||||
cutting_tool_blade_diameter = fields.Float('刃径(mm)')
|
||||
cutting_tool_blade_ids = fields.Many2many(
|
||||
'sf.cutting.tool.model',
|
||||
relation='product_cutting_tool_model_pad_blade_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('mrs_cutting_tool_material_id.name', '=', '刀片')]",
|
||||
domain="[('cutting_tool_type', '=', '刀片')]",
|
||||
string='适用刀片型号' # 使用空列表作为默认值
|
||||
)
|
||||
cutting_tool_wrench = fields.Float('配对扳手(mm)')
|
||||
cutting_tool_screw = fields.Float('配备螺丝(mm)')
|
||||
cutting_tool_accuracy_level = fields.Char('精度等级')
|
||||
cutting_tool_rounded_corner = fields.Float('刀尖圆角半径(mm)')
|
||||
cutting_tool_hardness = fields.Char('硬度(°)')
|
||||
# 刀柄参数
|
||||
cutting_tool_handle_length = fields.Float('L(mm)')
|
||||
cutting_tool_length1 = fields.Float('L1(mm)')
|
||||
cutting_tool_diameter1 = fields.Float('D1(mm)')
|
||||
|
||||
cutting_tool_body_accuracy = fields.Float('本体精度(mm)')
|
||||
cutting_tool_clamping_range = fields.Float('夹持范围(mm)')
|
||||
cutting_tool_detection_accuracy = fields.Float('检测精度')
|
||||
cutting_tool_detection_hardness = fields.Float('检测硬度')
|
||||
cutting_tool_standard_speed = fields.Float('标准转速')
|
||||
cutting_tool_diameter_max = fields.Float('最大直径(mm)')
|
||||
cutting_tool_clamping_diameter = fields.Float('夹持直径(mm)')
|
||||
cutting_tool_flange_length = fields.Float('法兰柄长度(mm)')
|
||||
cutting_tool_flange_diameter = fields.Float('法兰直径(mm)')
|
||||
# 夹头参数
|
||||
cutting_tool_accuracy = fields.Float('精度(mm)')
|
||||
cutting_tool_outer_diameter = fields.Float('外径(mm)')
|
||||
cutting_tool_inner_diameter = fields.Float('内径(mm)')
|
||||
cutting_tool_handle_model_ids = fields.Many2many(
|
||||
cutting_tool_handle_ids = fields.Many2many(
|
||||
'sf.cutting.tool.model',
|
||||
relation='product_cutting_tool_model_chuck_handle_rel',
|
||||
column1='model_id_1',
|
||||
column2='model_id_2',
|
||||
domain="[('mrs_cutting_tool_material_id.name', '=', '刀柄')]",
|
||||
domain="[('cutting_tool_type', '=', '刀柄')]",
|
||||
string='适用刀柄型号'
|
||||
)
|
||||
cutting_tool_feature = fields.Char('特性')
|
||||
# 夹具参数
|
||||
fixture_material_id = fields.Many2one('sf.fixture.material', string="夹具物料")
|
||||
fixture_model_id = fields.Many2one('sf.fixture.model', string="夹具型号")
|
||||
@@ -153,7 +142,8 @@ class ResProductMo(models.Model):
|
||||
fixture_through_hole_size = fields.Integer(string="过孔大小(mm)", size=6)
|
||||
fixture_screw_size = fields.Integer(string="螺牙大小(mm)", size=6)
|
||||
# 注册状态
|
||||
register_state = fields.Selection([('未注册', '未注册'), ('已注册', '已注册'),('注册失败','注册失败')], string='注册状态', default='未注册')
|
||||
register_state = fields.Selection([('未注册', '未注册'), ('已注册', '已注册'), ('注册失败', '注册失败')],
|
||||
string='注册状态', default='未注册')
|
||||
industry_code = fields.Char('行业编码', readonly=True)
|
||||
|
||||
def _json_apply_machine_tool_type_item_code(self, item):
|
||||
@@ -162,6 +152,36 @@ class ResProductMo(models.Model):
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_chuck_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.product_id.cutting_tool_chuck_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_cutter_bar_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.product_id.cutting_tool_cutter_bar_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_cutter_pad_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.product_id.cutting_tool_cutter_pad_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_blade_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.product_id.cutting_tool_blade_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _json_handle_item_code(self, item):
|
||||
code_arr = []
|
||||
for i in item.product_id.cutting_tool_handle_ids:
|
||||
code_arr.append(i.code)
|
||||
return code_arr
|
||||
|
||||
def _get_ids(self, param):
|
||||
type_ids = []
|
||||
if not param:
|
||||
@@ -180,7 +200,7 @@ class ResProductMo(models.Model):
|
||||
@api.onchange('cutting_tool_material_id')
|
||||
def _onchange_cutting_tool_material_id(self):
|
||||
for item in self:
|
||||
if item.cutting_tool_material_id.id != item.cutting_tool_model_id.mrs_cutting_tool_material_id.id:
|
||||
if item.cutting_tool_material_id.id != item.cutting_tool_model_id.cutting_tool_material_id.id:
|
||||
item.cutting_tool_model_id = False
|
||||
|
||||
@api.onchange('fixture_material_id')
|
||||
@@ -192,7 +212,7 @@ class ResProductMo(models.Model):
|
||||
@api.onchange('fixture_model_id')
|
||||
def _onchange_fixture_model_id(self):
|
||||
for item in self:
|
||||
if self.fixture_material_type in ['气动托盘', '转接板(锁板)托盘', '磁吸托盘', '虎钳托盘', '零点卡盘']:
|
||||
if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具', '虎钳夹具', '零点卡盘']:
|
||||
item.brand_id = item.fixture_model_id.brand_id.id
|
||||
item.fixture_multi_mounting_type_id = item.fixture_model_id.multi_mounting_type_id.id
|
||||
item.fixture_model_file = item.fixture_model_id.model_file
|
||||
@@ -203,162 +223,100 @@ class ResProductMo(models.Model):
|
||||
item.materials_type_id = item.fixture_model_id.materials_model_id.id
|
||||
item.fixture_maximum_carrying_weight = item.fixture_model_id.maximum_carrying_weight
|
||||
item.fixture_maximum_clamping_force = item.fixture_model_id.maximum_clamping_force
|
||||
if self.fixture_material_type in ['零点卡盘', '转接板(锁板)托盘']:
|
||||
if self.fixture_material_type in ['零点卡盘', '转接板(锁板)夹具']:
|
||||
item.fixture_clamping_way = item.fixture_model_id.clamping_way
|
||||
item.fixture_port_type = item.fixture_model_id.port_type
|
||||
if self.fixture_material_type in ['气动托盘', '转接板(锁板)托盘', '磁吸托盘']:
|
||||
if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具']:
|
||||
item.fixture_driving_way = item.fixture_model_id.driving_way
|
||||
if self.fixture_material_type in ['气动托盘', '磁吸托盘', '虎钳托盘', '零点卡盘']:
|
||||
if self.fixture_material_type in ['气动夹具', '磁吸夹具', '虎钳夹具', '零点卡盘']:
|
||||
item.fixture_through_hole_size = item.fixture_model_id.through_hole_size
|
||||
item.fixture_screw_size = item.fixture_model_id.screw_size
|
||||
if self.fixture_material_type in ['气动托盘', '转接板(锁板)托盘', '磁吸托盘', '虎钳托盘']:
|
||||
if self.fixture_material_type in ['气动夹具', '转接板(锁板)夹具', '磁吸夹具', '虎钳夹具']:
|
||||
item.fixture_clamp_workpiece_length_max = item.fixture_model_id.clamp_workpiece_length_max
|
||||
item.fixture_clamp_workpiece_width_max = item.fixture_model_id.clamp_workpiece_width_max
|
||||
item.fixture_clamp_workpiece_height_max = item.fixture_model_id.clamp_workpiece_height_max
|
||||
item.fixture_clamp_workpiece_diameter_max = item.fixture_model_id.clamp_workpiece_diameter_max
|
||||
item.fixture_apply_machine_tool_type_ids = self._get_ids(item.fixture_model_id.apply_machine_tool_type_ids)
|
||||
item.fixture_apply_machine_tool_type_ids = self._get_ids(
|
||||
item.fixture_model_id.apply_machine_tool_type_ids)
|
||||
|
||||
@api.onchange('cutting_tool_model_id')
|
||||
def _onchange_cutting_tool_model_id(self):
|
||||
for item in self:
|
||||
if self.cutting_tool_type == '整体式刀具':
|
||||
item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id
|
||||
item.cutting_tool_total_length = item.cutting_tool_model_id.integral_total_length
|
||||
item.cutting_tool_shank_length = item.cutting_tool_model_id.integral_shank_length
|
||||
item.cutting_tool_blade_length = item.cutting_tool_model_id.integral_blade_length
|
||||
item.cutting_tool_diameter = item.cutting_tool_model_id.integral_diameter
|
||||
item.cutting_tool_nut = item.cutting_tool_model_id.integral_nut
|
||||
item.cutting_tool_blade_number = item.cutting_tool_model_id.integral_blade_number
|
||||
item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id
|
||||
item.cutting_tool_front_angle = item.cutting_tool_model_id.integral_front_angle
|
||||
item.cutting_tool_rear_angle = item.cutting_tool_model_id.integral_rear_angle
|
||||
item.cutting_tool_main_included_angle = item.cutting_tool_model_id.integral_main_included_angle
|
||||
item.cutting_tool_chuck_model_ids = self._get_ids(
|
||||
item.cutting_tool_model_id.mrs_cutting_tool_model_handle_chuck_model_ids)
|
||||
item.cutting_tool_scope = item.cutting_tool_model_id.integral_scope
|
||||
item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image
|
||||
elif self.cutting_tool_type == '刀片':
|
||||
item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id
|
||||
item.cutting_tool_top_angle = item.cutting_tool_model_id.blade_top_angle
|
||||
item.cutting_tool_front_angle = item.cutting_tool_model_id.blade_front_angle
|
||||
item.cutting_tool_rear_angle = item.cutting_tool_model_id.blade_rear_angle
|
||||
item.cutting_tool_main_included_angle = item.cutting_tool_model_id.blade_main_included_angle
|
||||
item.cutting_tool_r_angle = item.cutting_tool_model_id.blade_r_angle
|
||||
item.cutting_tool_working_hardness = item.cutting_tool_model_id.blade_hardness
|
||||
item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id
|
||||
item.tool_length = item.cutting_tool_model_id.blade_length
|
||||
item.tool_width = item.cutting_tool_model_id.blade_width
|
||||
item.tool_height = item.cutting_tool_model_id.blade_height
|
||||
item.cutting_tool_radius = item.cutting_tool_model_id.blade_radius
|
||||
item.cutting_tool_nut = item.cutting_tool_model_id.blade_nut
|
||||
item.cutting_tool_cutter_bar_ids = self._get_ids(
|
||||
item.cutting_tool_model_id.mrs_cutting_tool_model_blade_cutter_bar_ids)
|
||||
item.cutting_tool_cutter_pad_ids = self._get_ids(
|
||||
item.cutting_tool_model_id.mrs_cutting_tool_model_blade_cutter_pad_ids)
|
||||
item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image
|
||||
elif self.cutting_tool_type == '刀杆':
|
||||
item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id
|
||||
item.cutting_tool_c_diameter = item.cutting_tool_model_id.bar_c_diameter
|
||||
item.cutting_tool_d_diameter = item.cutting_tool_model_id.bar_d_diameter
|
||||
item.cutting_tool_l_total_length = item.cutting_tool_model_id.bar_total_length
|
||||
item.cutting_tool_wrench = item.cutting_tool_model_id.bar_wrench
|
||||
item.cutting_tool_screw = item.cutting_tool_model_id.bar_screw
|
||||
item.cutting_tool_blade_ids = self._get_ids(
|
||||
item.cutting_tool_model_id.mrs_cutting_tool_model_pad_blade_ids)
|
||||
item.cutting_tool_scope = item.cutting_tool_model_id.bar_scope
|
||||
item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id
|
||||
item.cutting_tool_rounded_corner = item.cutting_tool_model_id.bar_radius
|
||||
item.cutting_tool_accuracy_level = item.cutting_tool_model_id.bar_accuracy
|
||||
item.cutting_tool_blade_number = item.cutting_tool_model_id.bar_blade_number
|
||||
item.cutting_tool_hardness = item.cutting_tool_model_id.bar_hardness
|
||||
item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image
|
||||
elif self.cutting_tool_type == '刀盘':
|
||||
item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id
|
||||
item.cutting_tool_c_diameter = item.cutting_tool_model_id.pad_c_diameter
|
||||
item.cutting_tool_d_diameter = item.cutting_tool_model_id.pad_d_diameter
|
||||
item.cutting_tool_l_total_length = item.cutting_tool_model_id.pad_total_length
|
||||
item.cutting_tool_wrench = item.cutting_tool_model_id.pad_wrench
|
||||
item.cutting_tool_screw = item.cutting_tool_model_id.pad_screw
|
||||
item.cutting_tool_blade_ids = self._get_ids(
|
||||
item.cutting_tool_model_id.mrs_cutting_tool_model_pad_blade_ids)
|
||||
item.cutting_tool_scope = item.cutting_tool_model_id.pad_scope
|
||||
item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id
|
||||
item.cutting_tool_rounded_corner = item.cutting_tool_model_id.pad_radius
|
||||
item.cutting_tool_accuracy_level = item.cutting_tool_model_id.pad_accuracy
|
||||
item.cutting_tool_blade_number = item.cutting_tool_model_id.pad_blade_number
|
||||
item.cutting_tool_hardness = item.cutting_tool_model_id.pad_hardness
|
||||
item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image
|
||||
elif self.cutting_tool_type == '刀柄':
|
||||
item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id
|
||||
item.cutting_tool_handle_length = item.cutting_tool_model_id.handle_length
|
||||
item.cutting_tool_length1 = item.cutting_tool_model_id.handle_length
|
||||
item.cutting_tool_diameter1 = item.cutting_tool_model_id.handle_diameter
|
||||
item.cutting_tool_body_accuracy = item.cutting_tool_model_id.handle_body_accuracy
|
||||
item.cutting_tool_nut = item.cutting_tool_model_id.handle_nut
|
||||
item.cutting_tool_clamping_range = item.cutting_tool_model_id.handle_clamping_range
|
||||
item.tool_weight = item.cutting_tool_model_id.handle_weight
|
||||
item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id
|
||||
item.cutting_tool_chuck_model_ids = self._get_ids(
|
||||
item.cutting_tool_model_id.mrs_cutting_tool_model_handle_chuck_model_ids)
|
||||
item.cutting_tool_detection_accuracy = item.cutting_tool_model_id.handle_detection_accuracy
|
||||
item.cutting_tool_detection_hardness = item.cutting_tool_model_id.handle_detection_hardness
|
||||
item.cutting_tool_standard_speed = item.cutting_tool_model_id.handle_standard_speed
|
||||
item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image
|
||||
elif self.cutting_tool_type == '夹头':
|
||||
item.brand_id = item.cutting_tool_model_id.mrs_machine_brand_id.id
|
||||
item.cutting_tool_outer_diameter = item.cutting_tool_model_id.chuck_diameter
|
||||
item.cutting_tool_inner_diameter = item.cutting_tool_model_id.chuck_inner_diameter
|
||||
item.cutting_tool_accuracy = item.cutting_tool_model_id.chuck_accuracy
|
||||
item.cutting_tool_nut = item.cutting_tool_model_id.chuck_nut
|
||||
item.cutting_tool_clamping_range = item.cutting_tool_model_id.chuck_clamping_range
|
||||
item.cutting_tool_handle_model_ids = self._get_ids(
|
||||
item.cutting_tool_model_id.mrs_cutting_tool_model_chuck_handle_model_ids)
|
||||
item.cutting_tool_material_model_id = item.cutting_tool_model_id.mrs_materials_model_id.id
|
||||
item.tool_height = item.cutting_tool_model_id.chuck_height
|
||||
item.cutting_tool_feature = item.cutting_tool_model_id.chuck_feature
|
||||
item.image_1920 = '' if not item.cutting_tool_model_id.image else item.cutting_tool_model_id.image
|
||||
if self.cutting_tool_type is not False:
|
||||
item.brand_id = item.cutting_tool_model_id.brand_id.id
|
||||
item.cutting_tool_type_id = item.cutting_tool_model_id.cutting_tool_type_id.id
|
||||
item.tool_length = item.cutting_tool_model_id.tool_length
|
||||
item.tool_width = item.cutting_tool_model_id.tool_width
|
||||
item.tool_height = item.cutting_tool_model_id.tool_height
|
||||
item.tool_thickness = item.cutting_tool_model_id.tool_thickness
|
||||
item.tool_weight = item.cutting_tool_model_id.tool_weight
|
||||
item.coating_material = item.cutting_tool_model_id.coating_material
|
||||
item.cutting_tool_total_length = item.cutting_tool_model_id.total_length
|
||||
item.cutting_tool_shank_length = item.cutting_tool_model_id.shank_length
|
||||
item.cutting_tool_blade_length = item.cutting_tool_model_id.blade_length
|
||||
item.cutting_tool_diameter = item.cutting_tool_model_id.diameter
|
||||
item.cutting_tool_blade_number = item.cutting_tool_model_id.blade_number
|
||||
item.cutting_tool_front_angle = item.cutting_tool_model_id.front_angle
|
||||
item.cutting_tool_rear_angle = item.cutting_tool_model_id.rear_angle
|
||||
item.cutting_tool_main_included_angle = item.cutting_tool_model_id.main_included_angle
|
||||
item.materials_type_id = item.cutting_tool_model_id.material_model_id.id
|
||||
item.cutting_tool_nut = item.cutting_tool_model_id.nut
|
||||
item.cutting_tool_top_angle = item.cutting_tool_model_id.top_angle
|
||||
item.cutting_tool_jump_accuracy = item.cutting_tool_model_id.jump_accuracy
|
||||
item.cutting_tool_working_hardness = item.cutting_tool_model_id.working_hardness
|
||||
item.cutting_tool_blade_diameter = item.cutting_tool_model_id.blade_diameter
|
||||
item.cutting_tool_wrench = item.cutting_tool_model_id.wrench
|
||||
item.cutting_tool_screw = item.cutting_tool_model_id.screw
|
||||
item.cutting_tool_accuracy_level = item.cutting_tool_model_id.accuracy_level
|
||||
item.cutting_tool_diameter_max = item.cutting_tool_model_id.diameter_max
|
||||
item.cutting_tool_clamping_diameter = item.cutting_tool_model_id.clamping_diameter
|
||||
item.cutting_tool_flange_length = item.cutting_tool_model_id.flange_length
|
||||
item.cutting_tool_flange_diameter = item.cutting_tool_model_id.flange_diameter
|
||||
item.cutting_tool_outer_diameter = item.cutting_tool_model_id.outer_diameter
|
||||
item.cutting_tool_inner_diameter = item.cutting_tool_model_id.inner_diameter
|
||||
item.cutting_tool_chuck_ids = self._get_ids(item.cutting_tool_model_id.chuck_ids)
|
||||
item.cutting_tool_cutter_bar_ids = self._get_ids(item.cutting_tool_model_id.cutter_bar_ids)
|
||||
item.cutting_tool_cutter_pad_ids = self._get_ids(item.cutting_tool_model_id.cutter_pad_ids)
|
||||
item.cutting_tool_blade_ids = self._get_ids(item.cutting_tool_model_id.blade_ids)
|
||||
item.cutting_tool_handle_ids = self._get_ids(item.cutting_tool_model_id.handle_ids)
|
||||
else:
|
||||
item.brand_id = False
|
||||
item.cutting_tool_type_id = False
|
||||
item.brand_id = False
|
||||
item.tool_length = False
|
||||
item.tool_width = False
|
||||
item.tool_height = False
|
||||
item.tool_thickness = False
|
||||
item.tool_weight = False
|
||||
item.coating_material = False
|
||||
item.cutting_tool_total_length = False
|
||||
item.cutting_tool_shank_length = False
|
||||
item.cutting_tool_blade_length = False
|
||||
item.cutting_tool_diameter = False
|
||||
item.cutting_tool_nut = False
|
||||
item.cutting_tool_blade_number = False
|
||||
item.cutting_tool_material_model_id = False
|
||||
item.cutting_tool_front_angle = False
|
||||
item.cutting_tool_rear_angle = False
|
||||
item.cutting_tool_main_included_angle = False
|
||||
item.cutting_tool_chuck_model_ids = False
|
||||
item.cutting_tool_scope = False
|
||||
item.materials_type_id = False
|
||||
item.cutting_tool_nut = False
|
||||
item.cutting_tool_top_angle = False
|
||||
item.cutting_tool_r_angle = False
|
||||
item.cutting_tool_jump_accuracy = False
|
||||
item.cutting_tool_working_hardness = False
|
||||
item.tool_length = False
|
||||
item.tool_width = False
|
||||
item.tool_height = False
|
||||
item.cutting_tool_radius = False
|
||||
item.cutting_tool_cutter_bar_ids = False
|
||||
item.cutting_tool_cutter_pad_ids = False
|
||||
item.cutting_tool_c_diameter = False
|
||||
item.cutting_tool_d_diameter = False
|
||||
item.cutting_tool_l_total_length = False
|
||||
item.cutting_tool_blade_diameter = False
|
||||
item.cutting_tool_wrench = False
|
||||
item.cutting_tool_screw = False
|
||||
item.cutting_tool_blade_ids = False
|
||||
item.cutting_tool_rounded_corner = False
|
||||
item.cutting_tool_accuracy_level = False
|
||||
item.cutting_tool_hardness = False
|
||||
item.cutting_tool_handle_length = False
|
||||
item.cutting_tool_length1 = False
|
||||
item.cutting_tool_diameter1 = False
|
||||
item.cutting_tool_body_accuracy = False
|
||||
item.cutting_tool_clamping_range = False
|
||||
item.tool_weight = False
|
||||
item.cutting_tool_detection_accuracy = False
|
||||
item.cutting_tool_detection_hardness = False
|
||||
item.cutting_tool_standard_speed = False
|
||||
item.image_1920 = False
|
||||
item.cutting_tool_diameter_max = False
|
||||
item.cutting_tool_clamping_diameter = False
|
||||
item.cutting_tool_flange_length = False
|
||||
item.cutting_tool_flange_diameter = False
|
||||
item.cutting_tool_outer_diameter = False
|
||||
item.cutting_tool_inner_diameter = False
|
||||
item.cutting_tool_chuck_ids = False
|
||||
item.cutting_tool_cutter_bar_ids = False
|
||||
item.cutting_tool_cutter_pad_ids = False
|
||||
item.cutting_tool_blade_ids = False
|
||||
item.cutting_tool_handle_ids = False
|
||||
|
||||
|
||||
class ResMrpBomMo(models.Model):
|
||||
|
||||
@@ -285,9 +285,11 @@ class StockPicking(models.Model):
|
||||
res = super().button_validate()
|
||||
# 采购单验证(夹具)
|
||||
for item in self.move_ids_without_package:
|
||||
if item.product_id.categ_type == '夹具':
|
||||
if item.quantity_done > 0:
|
||||
if item.quantity_done > 0:
|
||||
if item.product_id.categ_type == '夹具':
|
||||
item._register_fixture()
|
||||
elif item.product_id.categ_type == '刀具':
|
||||
item._register_cutting_tool()
|
||||
return res
|
||||
|
||||
# 创建 外协出库入单
|
||||
@@ -401,4 +403,72 @@ class ReStockMove(models.Model):
|
||||
except Exception as e:
|
||||
raise UserError("注册夹具到云端失败,请联系管理员!")
|
||||
|
||||
|
||||
# 将采购到的刀具注册到Cloud
|
||||
def _register_cutting_tool(self):
|
||||
create_url = '/api/factory_cutting_tool_material/create'
|
||||
config = self.env['res.config.settings'].get_values()
|
||||
headers = Common.get_headers(self, config['token'], config['sf_secret_key'])
|
||||
strurl = config['sf_url'] + create_url
|
||||
for item in self:
|
||||
val = {
|
||||
'token': config['token'],
|
||||
'name': item.product_id.name,
|
||||
'brand_code': self.env['sf.machine.brand'].search([('id', '=', item.product_id.brand_id.id)]).code,
|
||||
'cutting_tool_material_code': self.env['sf.cutting.tool.material'].search(
|
||||
[('id', '=', item.product_id.cutting_tool_material_id.id)]).code,
|
||||
'cutting_tool_type_code': self.env['sf.cutting.tool.type'].search(
|
||||
[('id', '=', item.product_id.cutting_tool_type_id.id)]).code,
|
||||
'material_model_code': self.env['sf.materials.model'].search(
|
||||
[('id', '=', item.product_id.materials_type_id.id)]).materials_no,
|
||||
'tool_length': item.product_id.tool_length,
|
||||
'tool_width': item.product_id.tool_width,
|
||||
'tool_height': item.product_id.tool_height,
|
||||
'tool_thickness': item.product_id.tool_thickness,
|
||||
'tool_weight': item.product_id.tool_weight,
|
||||
'coating_material': item.product_id.coating_material,
|
||||
'amount': int(item.quantity_done),
|
||||
# 'model_file': '' if not item.product_id.fixture_model_file else base64.b64encode(
|
||||
# item.product_id.fixture_model_file).decode(
|
||||
# 'utf-8'),
|
||||
'total_length': item.product_id.cutting_tool_total_length,
|
||||
'shank_length': item.product_id.cutting_tool_shank_length,
|
||||
'blade_length': item.product_id.cutting_tool_blade_length,
|
||||
'diameter': item.product_id.cutting_tool_diameter,
|
||||
'blade_number': item.product_id.cutting_tool_blade_number,
|
||||
'front_angle': item.product_id.cutting_tool_front_angle,
|
||||
'rear_angle': item.product_id.cutting_tool_rear_angle,
|
||||
'main_included_angle': item.product_id.cutting_tool_main_included_angle,
|
||||
'chuck_codes': self.env['product.template']._json_chuck_item_code(item),
|
||||
'cutter_bar_codes': self.env['product.template']._json_cutter_bar_item_code(item),
|
||||
'cutter_pad_codes': self.env['product.template']._json_cutter_pad_item_code(item),
|
||||
'blade_codes': self.env['product.template']._json_blade_item_code(item),
|
||||
'handle_codes': self.env['product.template']._json_handle_item_code(item),
|
||||
'nut': item.product_id.cutting_tool_nut,
|
||||
'top_angle': item.product_id.cutting_tool_top_angle,
|
||||
'jump_accuracy': item.product_id.cutting_tool_jump_accuracy,
|
||||
'working_hardness': item.product_id.cutting_tool_working_hardness,
|
||||
'blade_diameter': item.product_id.cutting_tool_blade_diameter,
|
||||
'wrench': item.product_id.cutting_tool_wrench,
|
||||
'screw': item.product_id.cutting_tool_screw,
|
||||
'accuracy_level': item.product_id.cutting_tool_accuracy_level,
|
||||
'diameter_max': item.product_id.cutting_tool_diameter_max,
|
||||
'clamping_diameter': item.product_id.cutting_tool_clamping_diameter,
|
||||
'flange_length': item.product_id.cutting_tool_flange_length,
|
||||
'flange_diameter': item.product_id.cutting_tool_flange_diameter,
|
||||
'outer_diameter': item.product_id.cutting_tool_outer_diameter,
|
||||
'inner_diameter': item.product_id.cutting_tool_inner_diameter,
|
||||
}
|
||||
try:
|
||||
if item.product_id.industry_code:
|
||||
val['industry_code'] = item.product_id.industry_code
|
||||
ret = requests.post(strurl, json={}, data=val, headers=headers)
|
||||
ret = ret.json()
|
||||
if ret['status'] == 200:
|
||||
if not item.product_id.industry_code:
|
||||
item.product_id.write({'register_state': '已注册', 'industry_code': ret['industry_code']})
|
||||
else:
|
||||
item.product_id.write({'register_state': '已注册'})
|
||||
else:
|
||||
item.product_id.write({'register_state': '注册失败'})
|
||||
except Exception as e:
|
||||
raise UserError("注册刀具到云端失败,请联系管理员!")
|
||||
|
||||
Reference in New Issue
Block a user