Accept Merge Request #307: (feature/刀具管理缺陷优化 -> develop)

Merge Request: 刀具管理测试的缺陷优化

Created By: @禹翔辉
Accepted By: @禹翔辉
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/307?initial=true
This commit is contained in:
禹翔辉
2023-08-10 17:15:42 +08:00
committed by Coding
3 changed files with 189 additions and 108 deletions

View File

@@ -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([

View File

@@ -843,6 +843,7 @@
<field name="remark" optional="hide"/>
<field name="machine_tool_name_id" invisible="True"/>
<field name="machine_tool_code" invisible="True"/>
<field name="cutter_spacing_code" invisible="True"/>
<field name="functional_tool_length" invisible="True"/>
<field name="functional_tool_diameter" invisible="True"/>
@@ -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,

View File

@@ -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'}