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