From 66b4df51939ba7a8379536de189da02a3d017b18 Mon Sep 17 00:00:00 2001
From: yuxianghui <3437689193@qq.com>
Date: Thu, 23 May 2024 11:15:13 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E5=88=80=E5=85=B7?=
=?UTF-8?q?=E9=A2=84=E8=B0=83=E4=BB=AA=E6=8E=A5=E5=8F=A3=E7=9A=84=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F=E3=80=81=E6=9B=B4?=
=?UTF-8?q?=E6=94=B9=E6=90=9C=E7=B4=A2=E7=BB=84=E8=A3=85=E5=8D=95=E6=9D=A1?=
=?UTF-8?q?=E4=BB=B6=EF=BC=9B2=E3=80=81=E4=BC=98=E5=8C=96=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD=E5=88=80=E5=85=B7=E3=80=81=E7=BB=84=E8=A3=85=E5=8D=95?=
=?UTF-8?q?=E3=80=81=E7=BB=84=E8=A3=85=E5=8D=95=E5=BC=B9=E7=AA=97=E7=9A=84?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=92=8C=E7=95=8C=E9=9D=A2=E5=B1=95=E7=A4=BA?=
=?UTF-8?q?=E7=9A=84=E5=AD=97=E6=AE=B5=E5=86=85=E5=AE=B9=EF=BC=9B3?=
=?UTF-8?q?=E3=80=81=E6=9B=B4=E6=94=B9=E7=BB=84=E8=A3=85=E5=8D=95=E7=BC=96?=
=?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E8=A7=84=E5=88=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_tool_management/controllers/controllers.py | 6 +-
sf_tool_management/models/__init__.py | 1 +
sf_tool_management/models/base.py | 13 +-
sf_tool_management/models/functional_tool.py | 16 +--
.../temporary_data_processing_methods.py | 38 ++++++
.../views/functional_tool_views.xml | 19 +--
sf_tool_management/views/tool_base_views.xml | 35 +++---
sf_tool_management/wizard/wizard.py | 33 +++--
sf_tool_management/wizard/wizard_view.xml | 116 +++++++++---------
9 files changed, 166 insertions(+), 111 deletions(-)
create mode 100644 sf_tool_management/models/temporary_data_processing_methods.py
diff --git a/sf_tool_management/controllers/controllers.py b/sf_tool_management/controllers/controllers.py
index 0c61f486..51bd5882 100644
--- a/sf_tool_management/controllers/controllers.py
+++ b/sf_tool_management/controllers/controllers.py
@@ -54,12 +54,12 @@ class Manufacturing_Connect(http.Controller):
data_list = [data.replace('+', '') for data in data_lists]
logging.info(data_list)
tool_assembly = request.env['sf.functional.tool.assembly'].sudo().search(
- [('assembly_order_code', '=', data_list[0])])
+ [('assembly_order_code', '=', data_list[0]), ('start_preset_bool', '=', True)])
if not tool_assembly:
return json.JSONEncoder().encode(
- {'Succeed': False, 'ErrorCode': 201, 'Error': '没有找到组装单!'})
+ {'Succeed': False, 'ErrorCode': 201, 'code': data_list[0], 'Error': '没有找到正在组装的组装单!'})
tool_assembly.write({
- 'after_assembly_tool_loading_length': float(data_list[1]), # 高度(总长度)
+ 'after_assembly_tool_loading_length': float(data_list[1] or "0"), # 高度(总长度)
'after_assembly_functional_tool_diameter': float(data_list[2] or "0"), # 直径
'after_assembly_knife_tip_r_angle': float(data_list[3] or "0") # R角
})
diff --git a/sf_tool_management/models/__init__.py b/sf_tool_management/models/__init__.py
index b589e095..b6020280 100644
--- a/sf_tool_management/models/__init__.py
+++ b/sf_tool_management/models/__init__.py
@@ -6,4 +6,5 @@ from . import mrp_workorder
from . import functional_tool_enroll
from . import fixture_material_search
from . import fixture_enroll
+from . import temporary_data_processing_methods
diff --git a/sf_tool_management/models/base.py b/sf_tool_management/models/base.py
index 26cf43e7..5291d4d7 100644
--- a/sf_tool_management/models/base.py
+++ b/sf_tool_management/models/base.py
@@ -557,7 +557,8 @@ class FunctionalToolAssembly(models.Model):
after_assembly_alarm_value = fields.Integer(string='组装后报警值(min)', readonly=True)
after_assembly_used_value = fields.Integer(string='组装后已使用值(min)', readonly=True)
after_assembly_tool_loading_length = fields.Float(string='组装后总长度(mm)', readonly=True, digits=(10, 3))
- after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True)
+ after_assembly_handle_length = fields.Float(string='组装后刀柄长度(mm)',readonly=True, digits=(10, 3))
+ after_assembly_functional_tool_length = fields.Float(string='组装后伸出长(mm)', readonly=True, digits=(10, 3))
after_assembly_effective_length = fields.Float(string='组装后有效长(mm)', readonly=True)
L_D_number = fields.Float(string='L/D值(mm)', readonly=True)
hiding_length = fields.Float(string='避空长(mm)', readonly=True)
@@ -586,12 +587,12 @@ class FunctionalToolAssembly(models.Model):
'target': 'new',
'context': {'default_name': self.name,
'default_assembly_order_code': self.assembly_order_code,
- 'default_production_line_name_id': self.production_line_name_id,
- 'default_machine_tool_name_id': self.machine_tool_name_id,
- 'default_cutter_spacing_code_id': self.cutter_spacing_code_id,
+ 'default_production_line_name_id': self.production_line_name_id.id,
+ 'default_machine_tool_name_id': self.machine_tool_name_id.id,
+ 'default_cutter_spacing_code_id': self.cutter_spacing_code_id.id,
'default_functional_tool_name': self.functional_tool_name,
- 'default_functional_tool_type_id': self.functional_tool_type_id,
- 'default_tool_groups_id': self.tool_groups_id,
+ 'default_functional_tool_type_id': self.functional_tool_type_id.id,
+ 'default_tool_groups_id': self.tool_groups_id.id,
'default_functional_tool_diameter': self.functional_tool_diameter,
'default_knife_tip_r_angle': self.knife_tip_r_angle,
'default_tool_loading_length': self.tool_loading_length,
diff --git a/sf_tool_management/models/functional_tool.py b/sf_tool_management/models/functional_tool.py
index 52565174..6f7e14bb 100644
--- a/sf_tool_management/models/functional_tool.py
+++ b/sf_tool_management/models/functional_tool.py
@@ -25,12 +25,13 @@ class FunctionalCuttingToolEntity(models.Model):
sf_cutting_tool_type_id = fields.Many2one('sf.functional.cutting.tool.model', string='功能刀具类型',
group_expand='_read_group_mrs_cutting_tool_type_id', compute_sudo=True)
- functional_tool_diameter = fields.Float(string='刀具直径(mm)', readonly=True)
- knife_tip_r_angle = fields.Float(string='刀尖R角(mm)', readonly=True)
+ functional_tool_diameter = fields.Float(string='刀具直径(mm)', readonly=True, digits=(10, 3))
+ knife_tip_r_angle = fields.Float(string='刀尖R角(mm)', readonly=True, digits=(10, 3))
coarse_middle_thin = fields.Selection([("1", "粗"), ('2', '中'), ('3', '精')], string='粗/中/精', readonly=True)
new_former = fields.Selection([('0', '新'), ('1', '旧')], string='新/旧', readonly=True)
- tool_loading_length = fields.Float(string='总长度(mm)', readonly=True)
- functional_tool_length = fields.Float(string='伸出长(mm)', readonly=True)
+ tool_loading_length = fields.Float(string='总长度(mm)', readonly=True, digits=(10, 3))
+ handle_length = fields.Float(string='刀柄长度(mm)',readonly=True, digits=(10, 3))
+ functional_tool_length = fields.Float(string='伸出长(mm)', readonly=True, digits=(10, 3))
effective_length = fields.Float(string='有效长(mm)', readonly=True)
tool_room_num = fields.Integer(string='刀具房数量', readonly=True)
line_edge_knife_library_num = fields.Integer(string='线边刀库数量', readonly=True)
@@ -51,13 +52,6 @@ class FunctionalCuttingToolEntity(models.Model):
safe_inventory_id = fields.Many2one('sf.real.time.distribution.of.functional.tools',
string='功能刀具安全库存', readonly=True)
- def button_safe_inventory_id(self):
- """更新功能刀具关联的安全库存记录"""
- tool_is = self.search([])
- for item in tool_is:
- item.safe_inventory_id = self.env['sf.real.time.distribution.of.functional.tools'].search(
- [('functional_name_id', '=', item.tool_name_id.id)])[0]
-
@api.depends('barcode_id.quant_ids', 'functional_tool_status')
def _compute_current_location_id(self):
for record in self:
diff --git a/sf_tool_management/models/temporary_data_processing_methods.py b/sf_tool_management/models/temporary_data_processing_methods.py
new file mode 100644
index 00000000..e63caff7
--- /dev/null
+++ b/sf_tool_management/models/temporary_data_processing_methods.py
@@ -0,0 +1,38 @@
+from odoo import fields, models, api
+
+
+class FunctionalCuttingToolEntity(models.Model):
+ _inherit = 'sf.functional.cutting.tool.entity'
+
+ def button_safe_inventory_id(self):
+ """更新功能刀具关联的安全库存记录"""
+ tool_is = self.search([])
+ for item in tool_is:
+ item.safe_inventory_id = self.env['sf.real.time.distribution.of.functional.tools'].search(
+ [('functional_name_id', '=', item.tool_name_id.id)])[0]
+
+
+class FunctionalToolAssembly(models.Model):
+ _inherit = 'sf.functional.tool.assembly'
+
+ def put_assembly_order_code(self):
+ assembly_list = self.search([('assemble_status', '=', '0')], order="id asc")
+ for item in assembly_list:
+ code = item.assembly_order_code[-9:-5]
+ if item.loading_task_source == '0':
+ code = 'C' + code
+ elif item.loading_task_source == '1':
+ code = 'J' + code
+ elif item.loading_task_source == '2':
+ code = 'K' + code
+
+ functional_tool_assembly = self.env['sf.functional.tool.assembly'].sudo().search(
+ [('loading_task_source', '=', item.loading_task_source),
+ ('assembly_order_code', 'ilike', code)], limit=1, order="id desc")
+ if not functional_tool_assembly:
+ num = "%04d" % 1
+ else:
+ m = int(functional_tool_assembly.assembly_order_code[-3:]) + 1
+ num = "%04d" % m
+
+ item.assembly_order_code = "%s%s" % (code, num)
diff --git a/sf_tool_management/views/functional_tool_views.xml b/sf_tool_management/views/functional_tool_views.xml
index 90dfbb42..76607a16 100644
--- a/sf_tool_management/views/functional_tool_views.xml
+++ b/sf_tool_management/views/functional_tool_views.xml
@@ -155,24 +155,25 @@
-
-
+
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/sf_tool_management/views/tool_base_views.xml b/sf_tool_management/views/tool_base_views.xml
index 985c28a5..0b00be26 100644
--- a/sf_tool_management/views/tool_base_views.xml
+++ b/sf_tool_management/views/tool_base_views.xml
@@ -452,8 +452,8 @@
+ attrs="{'invisible': [('assemble_status', '!=', '0')]}"
+ class="btn-primary"/>
@@ -464,6 +464,8 @@