diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py
index 8b799eac..2bf0df54 100644
--- a/sf_tool_management/models/base.py
+++ b/sf_tool_management/models/base.py
@@ -126,69 +126,78 @@ class FunctionalToolWarning(models.Model):
_name = 'sf.functional.tool.warning'
_description = '功能刀具预警'
- functional_cutting_tool_id = fields.Many2one('sf.functional.cutting.tool.entity', '功能刀具', readonly=True)
- code = fields.Char('编码', readonly=True)
- name = fields.Char('名称', invisible=True, readonly=True)
- mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
+ functional_cutting_tool_id = fields.Many2one('sf.functional.cutting.tool.entity', '功能刀具', readonly=True)
+ functional_tool_assembly_id = fields.Many2one('sf.functional.tool.assembly', '功能刀具组装', readonly=True)
+
+ code = fields.Char('编码', readonly=True, related='functional_cutting_tool_id.code')
+ name = fields.Char('名称', invisible=True, readonly=True, related='functional_cutting_tool_id.name')
+ mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True,
+ related='functional_cutting_tool_id.mrs_cutting_tool_type_id')
# 整体式刀具型号
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model',
'sf_functional_tool_warning_id',
- string='整体式刀具型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '整体式刀具')])
+ string='整体式刀具型号', readonly=True,
+ domain= [('mrs_cutting_tool_material_name', '=', '整体式刀具')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_integral_model_ids')
# 刀片型号
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model',
'sf_functional_tool_warning_id',
- string='刀片型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀片')])
+ string='刀片型号', readonly=True,
+ domain= [('mrs_cutting_tool_material_name', '=', '刀片')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_blade_model_ids')
# 刀杆型号
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
'sf_functional_tool_warning_id',
- string='刀杆型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀杆')])
+ string='刀杆型号', readonly=True,
+ domain= [('mrs_cutting_tool_material_name', '=', '刀杆')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterbar_model_ids')
# 刀盘型号
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
'sf_functional_tool_warning_id',
- string='刀盘型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀盘')])
+ string='刀盘型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀盘')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterpad_model_ids')
# 刀柄型号
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
'sf_functional_tool_warning_id',
- string='刀柄型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀柄')])
+ string='刀柄型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀柄')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterhandle_model_ids')
# 夹头型号
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
'sf_functional_tool_warning_id',
- string='夹头型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '夹头')])
+ string='夹头型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '夹头')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterhead_model_ids')
- diameter = fields.Float('直径(mm)', readonly=True)
+ diameter = fields.Float('直径(mm)', readonly=True, related='functional_cutting_tool_id.diameter')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
- string='刀具等级', readonly=True)
- machining_accuracy = fields.Float('加工精度(mm)', readonly=True)
- tool_length = fields.Float('装刀长', readonly=True)
- blade_number = fields.Integer('刃数', readonly=True)
- integral_blade_length = fields.Float('整体刃长(mm)', readonly=True)
- effective_blade_length = fields.Float('有效刃长(mm)', readonly=True)
- max_life = fields.Float('最大寿命值', readonly=True)
- is_standard = fields.Boolean('是否标准刀', readonly=True)
- applicable_range = fields.Char('适用范围', readonly=True)
- image = fields.Binary('图片', readonly=True)
+ string='刀具等级', readonly=True, related='functional_cutting_tool_id.tool_grade')
+ machining_accuracy = fields.Float('加工精度(mm)', readonly=True, related='functional_cutting_tool_id.machining_accuracy')
+ tool_length = fields.Float('装刀长', readonly=True, related='functional_cutting_tool_id.tool_length')
+ blade_number = fields.Integer('刃数', readonly=True, related='functional_cutting_tool_id.blade_number')
+ integral_blade_length = fields.Float('整体刃长(mm)', readonly=True, related='functional_cutting_tool_id.integral_blade_length')
+ effective_blade_length = fields.Float('有效刃长(mm)', readonly=True, related='functional_cutting_tool_id.effective_blade_length')
+ max_life = fields.Float('最大寿命值', readonly=True, related='functional_cutting_tool_id.max_life')
+ is_standard = fields.Boolean('是否标准刀', readonly=True, related='functional_cutting_tool_id.is_standard')
+ applicable_range = fields.Char('适用范围', readonly=True, related='functional_cutting_tool_id.applicable_range')
+ image = fields.Binary('图片', readonly=True, related='functional_cutting_tool_id.image')
# 功能刀具预警 特有字段
- install_tool_time = fields.Char("装刀时间", readonly=False)
- outbound_time = fields.Char('出库时间', readonly=False)
- on_board_time = fields.Char('上机时间', readonly=False)
- machine_table_name_id = fields.Many2one('maintenance.equipment', string='机床名称', readonly=False, tracking=True,
+ install_tool_time = fields.Datetime("装刀时间", readonly=True,related='functional_tool_assembly_id.tool_loading_time')
+ outbound_time = fields.Datetime('出库时间', readonly=True,related='functional_tool_assembly_id.receive_time')
+ on_board_time = fields.Datetime('上机时间', readonly=False)
+ machine_table_name_id = fields.Many2one('maintenance.equipment', string='机床名称', readonly=True, tracking=True,
group_expand='_read_group_machine_table_name_ids')
@api.model
def _read_group_machine_table_name_ids(self, categories, domain, order):
machine_table_name_ids = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
return categories.browse(machine_table_name_ids)
- machine_tool_code = fields.Char('机台号', readonly=False)
- cutting_tool_code = fields.Char('刀位号', readonly=False)
+ machine_tool_code = fields.Char('机台号', readonly=True,related='functional_tool_assembly_id.machine_tool_code')
+ cutting_tool_code = fields.Char('刀位号', readonly=True,related='functional_tool_assembly_id.cutter_spacing_code')
idle_time = fields.Char('闲置时长', readonly=False)
alarm_value = fields.Char('报警值', readonly=False)
used_value = fields.Char('已使用值', readonly=False)
@@ -209,53 +218,79 @@ class RealTimeDistributionOfFunctionalTools(models.Model):
_description = '功能刀具实时分布'
functional_cutting_tool_id = fields.Many2one('sf.functional.cutting.tool.entity', '功能刀具', readonly=True)
- code = fields.Char('编码', readonly=True)
- name = fields.Char('名称', invisible=True, readonly=True)
- mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
+ mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True,
+ tracking=True, group_expand='_read_mrs_cutting_tool_type_ids',store=True,
+ compute='_compute_functional_cutting_tool_id')
+
+ @api.model
+ def _read_mrs_cutting_tool_type_ids(self, categories, domain, order):
+ mrs_cutting_tool_type_ids = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
+ return categories.browse(mrs_cutting_tool_type_ids)
+
+ @api.depends('functional_cutting_tool_id')
+ def _compute_functional_cutting_tool_id(self):
+ for record in self:
+ if record:
+ record.mrs_cutting_tool_type_id = record.functional_cutting_tool_id.mrs_cutting_tool_type_id.id
+
+ code = fields.Char('编码', readonly=True, related='functional_cutting_tool_id.code')
+ name = fields.Char('名称', invisible=True, readonly=True, related='functional_cutting_tool_id.name')
+ # mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True,
+ # related='functional_cutting_tool_id.mrs_cutting_tool_type_id')
# 整体式刀具型号
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_real_time_distribution_of_functional_tools_id',
- string='整体式刀具型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '整体式刀具')])
+ 'sf_functional_tool_warning_id',
+ string='整体式刀具型号', readonly=True,
+ domain=[
+ ('mrs_cutting_tool_material_name', '=', '整体式刀具')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_integral_model_ids')
# 刀片型号
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_real_time_distribution_of_functional_tools_id',
- string='刀片型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀片')])
+ 'sf_functional_tool_warning_id',
+ string='刀片型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀片')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_blade_model_ids')
# 刀杆型号
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_real_time_distribution_of_functional_tools_id',
- string='刀杆型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀杆')])
+ 'sf_functional_tool_warning_id',
+ string='刀杆型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀杆')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterbar_model_ids')
# 刀盘型号
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_real_time_distribution_of_functional_tools_id',
- string='刀盘型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀盘')])
+ 'sf_functional_tool_warning_id',
+ string='刀盘型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀盘')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterpad_model_ids')
# 刀柄型号
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_real_time_distribution_of_functional_tools_id',
- string='刀柄型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀柄')])
+ 'sf_functional_tool_warning_id',
+ string='刀柄型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀柄')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterhandle_model_ids')
# 夹头型号
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_real_time_distribution_of_functional_tools_id',
- string='夹头型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '夹头')])
+ 'sf_functional_tool_warning_id',
+ string='夹头型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '夹头')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterhead_model_ids')
- diameter = fields.Float('直径(mm)', readonly=True)
+ diameter = fields.Float('直径(mm)', readonly=True, related='functional_cutting_tool_id.diameter')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
- string='刀具等级', readonly=True)
- machining_accuracy = fields.Float('加工精度(mm)', readonly=True)
- tool_length = fields.Float('装刀长', readonly=True)
- blade_number = fields.Integer('刃数', readonly=True)
- integral_blade_length = fields.Float('整体刃长(mm)', readonly=True)
- effective_blade_length = fields.Float('有效刃长(mm)', readonly=True)
- max_life = fields.Float('最大寿命值', readonly=True)
- is_standard = fields.Boolean('是否标准刀', readonly=True)
- applicable_range = fields.Char('适用范围', readonly=True)
- image = fields.Binary('图片', readonly=True)
+ string='刀具等级', readonly=True, related='functional_cutting_tool_id.tool_grade')
+ machining_accuracy = fields.Float('加工精度(mm)', readonly=True,
+ related='functional_cutting_tool_id.machining_accuracy')
+ tool_length = fields.Float('装刀长', readonly=True, related='functional_cutting_tool_id.tool_length')
+ blade_number = fields.Integer('刃数', readonly=True, related='functional_cutting_tool_id.blade_number')
+ integral_blade_length = fields.Float('整体刃长(mm)', readonly=True,
+ related='functional_cutting_tool_id.integral_blade_length')
+ effective_blade_length = fields.Float('有效刃长(mm)', readonly=True,
+ related='functional_cutting_tool_id.effective_blade_length')
+ max_life = fields.Float('最大寿命值', readonly=True, related='functional_cutting_tool_id.max_life')
+ is_standard = fields.Boolean('是否标准刀', readonly=True, related='functional_cutting_tool_id.is_standard')
+ applicable_range = fields.Char('适用范围', readonly=True, related='functional_cutting_tool_id.applicable_range')
+ image = fields.Binary('图片', readonly=True, related='functional_cutting_tool_id.image')
# 功能刀具实时分布
tool_stock_num = fields.Integer(string='刀具房库存数量', readonly=False)
@@ -294,53 +329,78 @@ class InboundAndOutboundRecordsOfFunctionalTools(models.Model):
_description = '功能刀具出入库记录'
functional_cutting_tool_id = fields.Many2one('sf.functional.cutting.tool.entity', '功能刀具', readonly=True)
- code = fields.Char('编码', readonly=True)
- name = fields.Char('名称', invisible=True, readonly=True)
- mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True)
+ mrs_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', readonly=True,
+ tracking=True, group_expand='_read_mrs_cutting_tool_type_ids',
+ store=True,
+ compute='_compute_functional_cutting_tool_id')
+
+ @api.model
+ def _read_mrs_cutting_tool_type_ids(self, categories, domain, order):
+ mrs_cutting_tool_type_ids = categories._search([], order=order, access_rights_uid=SUPERUSER_ID)
+ return categories.browse(mrs_cutting_tool_type_ids)
+
+ @api.depends('functional_cutting_tool_id')
+ def _compute_functional_cutting_tool_id(self):
+ for record in self:
+ if record:
+ record.mrs_cutting_tool_type_id = record.functional_cutting_tool_id.mrs_cutting_tool_type_id.id
+
+ code = fields.Char('编码', readonly=True, related='functional_cutting_tool_id.code')
+ name = fields.Char('名称', invisible=True, readonly=True, related='functional_cutting_tool_id.name')
# 整体式刀具型号
mrs_cutting_tool_integral_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_inbound_and_outbound_records_of_functional_tools_id',
- string='整体式刀具型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '整体式刀具')])
+ 'sf_functional_tool_warning_id',
+ string='整体式刀具型号', readonly=True,
+ domain=[
+ ('mrs_cutting_tool_material_name', '=', '整体式刀具')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_integral_model_ids')
# 刀片型号
mrs_cutting_tool_blade_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_inbound_and_outbound_records_of_functional_tools_id',
- string='刀片型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀片')])
+ 'sf_functional_tool_warning_id',
+ string='刀片型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀片')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_blade_model_ids')
# 刀杆型号
mrs_cutting_tool_cutterbar_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_inbound_and_outbound_records_of_functional_tools_id',
- string='刀杆型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀杆')])
+ 'sf_functional_tool_warning_id',
+ string='刀杆型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀杆')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterbar_model_ids')
# 刀盘型号
mrs_cutting_tool_cutterpad_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_inbound_and_outbound_records_of_functional_tools_id',
- string='刀盘型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀盘')])
+ 'sf_functional_tool_warning_id',
+ string='刀盘型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀盘')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterpad_model_ids')
# 刀柄型号
mrs_cutting_tool_cutterhandle_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_inbound_and_outbound_records_of_functional_tools_id',
- string='刀柄型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '刀柄')])
+ 'sf_functional_tool_warning_id',
+ string='刀柄型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '刀柄')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterhandle_model_ids')
# 夹头型号
mrs_cutting_tool_cutterhead_model_ids = fields.Many2many('sf.cutting.tool.model',
- 'sf_inbound_and_outbound_records_of_functional_tools_id',
- string='夹头型号', readonly=True, domain=
- [('mrs_cutting_tool_material_name', '=', '夹头')])
+ 'sf_functional_tool_warning_id',
+ string='夹头型号', readonly=True,
+ domain=[('mrs_cutting_tool_material_name', '=', '夹头')],
+ related='functional_cutting_tool_id.mrs_cutting_tool_cutterhead_model_ids')
- diameter = fields.Float('直径(mm)', readonly=True)
+ diameter = fields.Float('直径(mm)', readonly=True, related='functional_cutting_tool_id.diameter')
tool_grade = fields.Selection([('1', 'P1'), ('2', 'P2'), ('3', 'P3'), ('4', 'P4'), ('5', 'P5'), ('6', 'P6')],
- string='刀具等级', readonly=True)
- machining_accuracy = fields.Float('加工精度(mm)', readonly=True)
- tool_length = fields.Float('装刀长', readonly=True)
- blade_number = fields.Integer('刃数', readonly=True)
- integral_blade_length = fields.Float('整体刃长(mm)', readonly=True)
- effective_blade_length = fields.Float('有效刃长(mm)', readonly=True)
- max_life = fields.Float('最大寿命值', readonly=True)
- is_standard = fields.Boolean('是否标准刀', readonly=True)
- applicable_range = fields.Char('适用范围', readonly=True)
- image = fields.Binary('图片', readonly=True)
+ string='刀具等级', readonly=True, related='functional_cutting_tool_id.tool_grade')
+ machining_accuracy = fields.Float('加工精度(mm)', readonly=True,
+ related='functional_cutting_tool_id.machining_accuracy')
+ tool_length = fields.Float('装刀长', readonly=True, related='functional_cutting_tool_id.tool_length')
+ blade_number = fields.Integer('刃数', readonly=True, related='functional_cutting_tool_id.blade_number')
+ integral_blade_length = fields.Float('整体刃长(mm)', readonly=True,
+ related='functional_cutting_tool_id.integral_blade_length')
+ effective_blade_length = fields.Float('有效刃长(mm)', readonly=True,
+ related='functional_cutting_tool_id.effective_blade_length')
+ max_life = fields.Float('最大寿命值', readonly=True, related='functional_cutting_tool_id.max_life')
+ is_standard = fields.Boolean('是否标准刀', readonly=True, related='functional_cutting_tool_id.is_standard')
+ applicable_range = fields.Char('适用范围', readonly=True, related='functional_cutting_tool_id.applicable_range')
+ image = fields.Binary('图片', readonly=True, related='functional_cutting_tool_id.image')
# 功能刀具出入库记录 特有字段
thickness = fields.Selection([('1', '粗'), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=False)
@@ -735,9 +795,16 @@ class FunctionalToolAssembly(models.Model):
:return:
"""
if self.new_former == '0':
- # 如果是新刀,则删除功能刀具列表、
- self.env['sf.functional.cutting.tool.entity'].search([
- ('code', '=', self.functional_tool_code)]).unlink()
+ # 如果是新刀,则删除功能刀具列表、功能刀具预警、功能刀具实时分布、功能刀具出入库记录的记录
+ record = self.env['sf.functional.cutting.tool.entity'].search([
+ ('code', '=', self.functional_tool_code)])
+ self.env['sf.functional.tool.warning'].search(
+ [('functional_cutting_tool_id', '=', record.id)]).unlink()
+ self.env['sf.real.time.distribution.of.functional.tools'].search(
+ [('functional_cutting_tool_id', '=', record.id)]).unlink()
+ self.env['sf.inbound.and.outbound.records.of.functional.tools'].search(
+ [('functional_cutting_tool_id', '=', record.id)]).unlink()
+ record.unlink()
else:
# 获取功能刀具缓存信息
record = self.env['sf.functional.cutting.tool.entity.cache'].search([
diff --git a/sf_tool_management/views/tool_base_views.xml b/sf_tool_management/views/tool_base_views.xml
index 37220acb..ebf1bc95 100644
--- a/sf_tool_management/views/tool_base_views.xml
+++ b/sf_tool_management/views/tool_base_views.xml
@@ -843,6 +843,7 @@
+
@@ -853,6 +854,7 @@
type="action"
context="{
'default_machine_tool_name_id': machine_tool_name_id,
+ 'default_machine_tool_code': machine_tool_code,
'default_code': functional_tool_code,
'default_cutter_spacing_code': cutter_spacing_code,
'default_functional_tool_name_id': name,
@@ -888,6 +890,7 @@
type="action"
context="{
'default_machine_tool_name_id': machine_tool_name_id,
+ 'default_machine_tool_code': machine_tool_code,
'default_code': functional_tool_code,
'default_cutter_spacing_code': cutter_spacing_code,
'default_functional_tool_name_id': name,
diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py
index c89d3911..74b8c178 100644
--- a/sf_tool_management/wizard/wizard.py
+++ b/sf_tool_management/wizard/wizard.py
@@ -122,6 +122,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
# 功能刀具申请信息
machine_tool_name_id = fields.Many2one('maintenance.equipment', string='机床名称', readonly=True)
+ machine_tool_code = fields.Char(string='机台号', readonly=True)
cutter_spacing_code = fields.Char(string='刀位号', readonly=True)
code = fields.Char(string='功能刀具编码', readonly=True)
functional_tool_name_id = fields.Many2one('sf.functional.cutting.tool', string='功能刀具名称', readonly=True)
@@ -294,11 +295,13 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
'tool_loading_person': self.env.user.name,
'tool_loading_time': fields.Datetime.now()
}
- self.env['sf.functional.tool.assembly'].search([
+ functional_tool_assembly = self.env['sf.functional.tool.assembly'].search([
('machine_tool_name_id', '=', self.machine_tool_name_id.id),
('cutter_spacing_code', '=', self.cutter_spacing_code),
('assemble_status', '=', '0'),
- ]).write(desc_1)
+ ])
+
+ print('功能刀具组装id:',functional_tool_assembly.id)
# 封装功能刀具数据
desc_2 = {
@@ -324,8 +327,19 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
'image': None,
}
if self.new_former == '0':
- # 如果是新刀,则创建功能刀具列表、
- self.env['sf.functional.cutting.tool.entity'].create(desc_2)
+ # 如果是新刀,则创建功能刀具列表、功能刀具预警、功能刀具实时分布
+ record_1 = self.env['sf.functional.cutting.tool.entity'].create(desc_2)
+ self.env['sf.functional.tool.warning'].create({
+ 'functional_cutting_tool_id': record_1.id,
+ 'functional_tool_assembly_id': functional_tool_assembly.id,
+ 'machine_table_name_id': self.machine_tool_name_id.id,
+ })
+ self.env['sf.real.time.distribution.of.functional.tools'].create({
+ 'functional_cutting_tool_id': record_1.id
+ })
+ self.env['sf.inbound.and.outbound.records.of.functional.tools'].create({
+ 'functional_cutting_tool_id': record_1.id
+ })
else:
record = self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)])
# 创建功能刀具缓存信息
@@ -356,11 +370,8 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).unlink()
# 创建功能刀具列表信息
self.env['sf.functional.cutting.tool.entity'].search([('code', '=', self.code)]).create(desc_2)
- # # 创建功能刀具预警、实时分布、出入库记录的新记录
- # self.env['sf.functional.tool.warning'].create(desc)
- # self.env['sf.real.time.distribution.of.functional.tools'].create(desc)
- # self.env['sf.inbound.and.outbound.records.of.functional.tools'].create(desc)
+ functional_tool_assembly.write(desc_1)
# 关闭弹出窗口
return {'type': 'ir.actions.act_window_close'}