diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py
index ae06d91b..b55d7003 100644
--- a/sf_tool_management/models/base.py
+++ b/sf_tool_management/models/base.py
@@ -15,6 +15,7 @@ class FunctionalCuttingToolEntity(models.Model):
tool_groups_id = fields.Many2one('sf.tool.groups', '刀具组', related='functional_tool_name_id.tool_groups_id')
code = fields.Char('编码', related='functional_tool_name_id.code')
+ rfid = fields.Char('rfid', readonly=True)
name = fields.Char(related='functional_tool_name_id.name')
functional_tool_name_id = fields.Many2one('sf.functional.tool.assembly', string='功能刀具名称', readonly=True)
barcode_id = fields.Many2one('stock.lot', string='功能刀具序列号', readonly=True)
@@ -211,6 +212,7 @@ class FunctionalToolWarning(models.Model):
_description = '功能刀具预警'
code = fields.Char('编码', related='functional_tool_name_id.code')
+ rfid = fields.Char('rfid', related='functional_tool_name_id.rfid')
tool_groups_id = fields.Many2one('sf.tool.groups', '刀具组', related='functional_tool_name_id.tool_groups_id')
name = fields.Char('名称', invisible=True, readonly=True, related='functional_tool_name_id.name')
# 机床信息
@@ -281,6 +283,7 @@ class StockMoveLine(models.Model):
knife_tip_r_angle = fields.Float(string='刀尖R角(mm)', related='functional_tool_name_id.knife_tip_r_angle')
install_tool_time = fields.Datetime("刀具组装时间", related='functional_tool_name_id.tool_loading_time')
code = fields.Char('编码', related='functional_tool_name_id.code')
+ rfid = fields.Char('rfid', related='functional_tool_name_id.rfid')
tool_groups_id = fields.Many2one('sf.tool.groups', '刀具组', related='functional_tool_name_id.tool_groups_id')
@api.model
@@ -476,6 +479,7 @@ class MachineTableToolChangingApply(models.Model):
barcode_id = fields.Many2one('stock.lot', string='功能刀具序列号', store=True,
domain=[('product_id.name', '=', '功能刀具')],
related='functional_tool_name_id.barcode_id')
+ rfid = fields.Char('rfid', related='functional_tool_name_id.rfid')
functional_tool_name_id = fields.Many2one('sf.functional.tool.assembly', domain=[('assemble_status', '=', '1')],
string='功能刀具名称')
functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型', store=True,
@@ -502,7 +506,7 @@ class MachineTableToolChangingApply(models.Model):
reason_for_applying = fields.Char(string='申请原因', readonly=True)
remark = fields.Char(string='备注说明', readonly=False)
- status = fields.Selection([('0', '未操作'), ('1', '已换刀申请'), ('2', '已转移'), ('3', '已组装')],
+ status = fields.Selection([('0', '未操作'), ('1', '已申请换刀'), ('2', '已转移'), ('3', '已组装')],
string='操作状态', default='0')
sf_functional_tool_assembly_id = fields.Many2one('sf.functional.tool.assembly', '功能刀具组装单', readonly=True)
@@ -787,6 +791,7 @@ class FunctionalToolAssembly(models.Model):
obj.name = obj.after_assembly_functional_tool_name
code = fields.Char('功能刀具编码', readonly=True)
+ rfid = fields.Char('rfid', readonly=True)
tool_groups_id = fields.Many2one('sf.tool.groups', '刀具组', readonly=True)
name = fields.Char(string='名称', readonly=True, compute='_compute_name')
assembly_order_code = fields.Char(string='组装单编码', readonly=True)
diff --git a/sf_tool_management/views/tool_base_views.xml b/sf_tool_management/views/tool_base_views.xml
index 9cbbeeeb..59229492 100644
--- a/sf_tool_management/views/tool_base_views.xml
+++ b/sf_tool_management/views/tool_base_views.xml
@@ -7,7 +7,8 @@
sf.functional.cutting.tool.entity
-
+
+
@@ -76,12 +77,13 @@
-
+
-
+
+
@@ -178,6 +180,7 @@
+
@@ -224,7 +227,8 @@
-
+
+
@@ -250,6 +254,7 @@
+
@@ -376,7 +381,7 @@
-
+
@@ -435,7 +440,8 @@
-
+
+
@@ -457,6 +463,7 @@
+
@@ -510,6 +517,7 @@
+
@@ -529,6 +537,7 @@
'default_machine_tool_code': machine_tool_code,
'default_cutter_spacing_code_id': cutter_spacing_code_id,
'default_barcode_id': barcode_id,
+ 'default_rfid': rfid,
'default_functional_tool_name': functional_tool_name,
'default_functional_tool_type_id': functional_tool_type_id,
'default_tool_position_interface_type': tool_position_interface_type,
@@ -551,7 +560,7 @@
'default_replacement_extension_length': extension_length,
'default_replacement_effective_length': effective_length,
}"
- attrs="{'invisible': [('status', '!=', '0')]}"
+ attrs="{'invisible': ['|',('status', '!=', '0'), ('functional_tool_name_id', '=', False)]}"
class="btn-primary" groups="sf_base.group_sf_mrp_user"
/>
+ attrs="{'invisible': [('status', '!=', '1')]}" groups="sf_base.group_sf_mrp_user"
+ confirm="是否确认撤回换刀申请"/>
+ attrs="{'invisible': [('status', '!=', '2')]}" groups="sf_base.group_sf_mrp_user"
+ confirm="是否确认撤回转移"/>
@@ -607,6 +619,7 @@
'default_machine_tool_code': machine_tool_code,
'default_cutter_spacing_code_id': cutter_spacing_code_id,
'default_barcode_id': barcode_id,
+ 'default_rfid': rfid,
'default_functional_tool_name': functional_tool_name,
'default_functional_tool_type_id': functional_tool_type_id,
'default_tool_position_interface_type': tool_position_interface_type,
@@ -629,7 +642,7 @@
'default_replacement_extension_length': extension_length,
'default_replacement_effective_length': effective_length,
}"
- attrs="{'invisible': [('status', '!=', '0')]}"
+ attrs="{'invisible': ['|',('status', '!=', '0'), ('functional_tool_name_id', '=', False)]}"
class="btn-primary" groups="sf_base.group_sf_mrp_user"
/>
-
+
+
@@ -686,7 +703,8 @@
-
+
+
@@ -722,6 +740,7 @@
+
@@ -948,7 +967,8 @@
}"
attrs="{'invisible': [('assemble_status', '!=', '0')]}" groups="sf_base.group_sf_mrp_user"
class="btn-primary"/>
-
@@ -986,10 +1006,12 @@
attrs="{'invisible': [('assemble_status', '!=', '0')]}"
class="btn-primary"/>
-
-
@@ -1021,7 +1043,8 @@
-
+
+
diff --git a/sf_tool_management/wizard/wizard.py b/sf_tool_management/wizard/wizard.py
index 9f1a1aae..e6f39655 100644
--- a/sf_tool_management/wizard/wizard.py
+++ b/sf_tool_management/wizard/wizard.py
@@ -9,6 +9,7 @@ class ToolChangeRequirementInformation(models.TransientModel):
_description = '换刀需求信息'
code = fields.Char('编码', readonly=True)
+ rfid = fields.Char('rfid', readonly=True)
tool_groups_id = fields.Many2one('sf.tool.groups', '刀具组', readonly=True)
name = fields.Char('名称', related='maintenance_equipment_id.name', store=True, readonly=True)
maintenance_equipment_id = fields.Many2one('maintenance.equipment', string='CNC机床', readonly=True)
@@ -321,6 +322,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
# 组装功能刀具参数信息
barcode_id = fields.Many2one('stock.lot', string='功能刀具序列号')
+ rfid = fields.Char('rfid', required=True)
tool_code = fields.Char(string='功能刀具编码', readonly=True, compute='_compute_tool_code')
after_assembly_functional_tool_name = fields.Char(string='组装后功能刀具名称', compute='_compute_name')
after_assembly_functional_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model',
@@ -522,6 +524,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
return {
'barcode_id': stock_lot.id,
'code': self.tool_code,
+ 'rfid': self.rfid,
'tool_groups_id': self.tool_groups_id.id,
'integral_code_id': self.integral_code_id.id,
'blade_code_id': self.blade_code_id.id,
@@ -558,6 +561,7 @@ class FunctionalToolAssemblyOrder(models.TransientModel):
return {
'barcode_id': stock_lot.id,
'code': self.tool_code,
+ 'rfid': self.rfid,
'tool_groups_id': self.tool_groups_id.id,
'functional_tool_name_id': functional_tool_assembly_id.id,
'sf_cutting_tool_type_id': self.after_assembly_functional_tool_type_id.id,
diff --git a/sf_tool_management/wizard/wizard_view.xml b/sf_tool_management/wizard/wizard_view.xml
index 5c007bdc..cd15a91b 100644
--- a/sf_tool_management/wizard/wizard_view.xml
+++ b/sf_tool_management/wizard/wizard_view.xml
@@ -24,7 +24,8 @@
-
+
+
@@ -334,6 +335,7 @@
+