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