144 lines
5.1 KiB
Python
144 lines
5.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
import logging
|
|
|
|
from odoo import fields, models, api
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
|
|
class MachineBrandTags(models.Model):
|
|
_name = 'mrs.machine.brand.tags'
|
|
_description = '标签'
|
|
name = fields.Char('名称', size=50)
|
|
color = fields.Integer('颜色', default=0)
|
|
|
|
|
|
class MachineControlSystem(models.Model):
|
|
_name = 'mrs.machine.control_system'
|
|
_description = '控制系统'
|
|
|
|
code = fields.Char('编码', size=10)
|
|
name = fields.Char('名称', size=10)
|
|
brand_id = fields.Many2one('mrs.machine.brand', '品牌')
|
|
active = fields.Boolean('有效', default=True)
|
|
|
|
|
|
# 品牌标签
|
|
class MachineBrand(models.Model):
|
|
_name = 'mrs.machine.brand'
|
|
_description = '品牌'
|
|
|
|
name = fields.Char('名称')
|
|
tag_ids = fields.Many2many('mrs.machine.brand.tags', 'rel_machine_brand_tags', string='类别')
|
|
image_brand = fields.Image("品牌图片")
|
|
active = fields.Boolean('有效', default=True)
|
|
code = fields.Char('编码')
|
|
|
|
|
|
# 机床
|
|
class MachineTool(models.Model):
|
|
_name = 'mrs.machine_tool'
|
|
_description = '机床'
|
|
|
|
code = fields.Char('编码')
|
|
name = fields.Char('名称')
|
|
knife_type = fields.Selection(
|
|
[("BT40", "BT40"), ("BT30", "BT30")],
|
|
default="", string="刀把类型")
|
|
number_of_knife_library = fields.Integer('刀库数量')
|
|
rotate_speed = fields.Integer('转速')
|
|
number_of_axles = fields.Selection(
|
|
[("三轴", "三轴"), ("四轴", "四轴"), ("五轴", "五轴")],
|
|
default="", string="轴数")
|
|
# 加工进程
|
|
x_axis = fields.Integer('X轴')
|
|
y_axis = fields.Integer('Y轴')
|
|
z_axis = fields.Integer('Z轴')
|
|
b_axis = fields.Integer('B轴')
|
|
c_axis = fields.Integer('C轴')
|
|
remark = fields.Text('备注')
|
|
precision = fields.Float('加工精度')
|
|
control_system_id = fields.Many2one('mrs.machine.control_system',
|
|
string="控制系统")
|
|
# 多个机床型号对应一个机床
|
|
type_id = fields.Many2one('mrs.machine_tool.type', '型号',
|
|
compute='_compute_type_id')
|
|
brand_id = fields.Many2one('mrs.machine.brand', string='品牌')
|
|
state = fields.Selection(
|
|
[("正常", "正常"), ("故障", "故障"), ("不可用", "不可用")],
|
|
default="", string="状态")
|
|
|
|
# 一个机床对应一個加工工厂,一个加工工厂对应多个机床
|
|
factory_id = fields.Many2one('res.partner', string='所属工厂',
|
|
domain="[('is_factory', '=', True)]")
|
|
# 一个机床对应一个供应商,一个供应商对应多个机床
|
|
supplier_id = fields.Many2one('res.partner', string='制造商',
|
|
domain="[('is_vendor', '=', True)]")
|
|
registration_date = fields.Date('注册日期')
|
|
|
|
active = fields.Boolean('有效', default=True)
|
|
|
|
|
|
|
|
|
|
class MachineToolType(models.Model):
|
|
_name = 'mrs.machine_tool.type'
|
|
_description = '机床型号'
|
|
# _order = 'priority desc, code, name, id'
|
|
|
|
name = fields.Char('名称')
|
|
brand_id = fields.Many2one('mrs.machine.brand', string='品牌')
|
|
knife_type = fields.Selection(
|
|
[("BT40", "BT40"), ("BT30", "BT30")],
|
|
default="", string="刀把类型")
|
|
number_of_knife_library = fields.Integer('刀库数量')
|
|
rotate_speed = fields.Integer('转速')
|
|
# 多个型号对应一个机床
|
|
machine_tool_id = fields.Many2one('mrs.machine_tool', '机床')
|
|
number_of_axles = fields.Selection(
|
|
[("三轴", "三轴"), ("四轴", "四轴"), ("五轴", "五轴")],
|
|
default="", string="轴数")
|
|
# 加工进程
|
|
x_axis = fields.Integer('X轴')
|
|
y_axis = fields.Integer('Y轴')
|
|
z_axis = fields.Integer('Z轴')
|
|
b_axis = fields.Integer('B轴')
|
|
c_axis = fields.Integer('C轴')
|
|
remark = fields.Text('备注')
|
|
precision = fields.Float('加工精度')
|
|
control_system_id = fields.Many2one('mrs.machine.control_system',
|
|
string="控制系统")
|
|
active = fields.Boolean('有效', default=True)
|
|
code = fields.Char('编码')
|
|
|
|
|
|
# 刀具
|
|
class CuttingTool(models.Model):
|
|
_name = 'mrs.cutting_tool.category'
|
|
_description = '刀具类别'
|
|
|
|
code = fields.Char('编码')
|
|
name = fields.Char('名称')
|
|
|
|
remark = fields.Text('备注')
|
|
active = fields.Boolean('有效', default=True)
|
|
|
|
|
|
class CuttingToolType(models.Model):
|
|
_name = 'mrs.cutting_tool.type'
|
|
_description = '刀具型号'
|
|
|
|
code = fields.Char('编码')
|
|
name = fields.Char('名称')
|
|
diameter = fields.Integer('直径')
|
|
long_blade = fields.Integer('避空长/刃长')
|
|
cone_angle_pitch = fields.Integer('锥角/节距')
|
|
shank_diameter = fields.Integer('柄径')
|
|
taper_shank_length = fields.Integer('锥柄长')
|
|
tool_length = fields.Integer('刀具总长')
|
|
blade_number = fields.Integer('刃数')
|
|
category_id = fields.Many2one('mrs.cutting_tool.category', string='刀具类别')
|
|
brand_id = fields.Many2one('mrs.machine.brand', string='品牌')
|
|
remark = fields.Text('备注')
|
|
active = fields.Boolean('有效', default=True)
|