diff --git a/sf_dlm/models/product_template.py b/sf_dlm/models/product_template.py index e4b15922..b7d54518 100644 --- a/sf_dlm/models/product_template.py +++ b/sf_dlm/models/product_template.py @@ -73,15 +73,20 @@ class ResProductTemplate(models.Model): copy_product_id.product_tmpl_id.active = True model_type = self.env['sf.model.type'].search([], limit=1) attachment = self.attachment_create(item['model_name'], item['model_data']) + # 判断参数中是否包含 坯料尺寸(长、宽、高) + blank_bool = any(value is not None and value != 0 for value in ( + item.get('blank_length'), item.get('blank_width'), item.get('blank_height'))) if all( + key in item for key in ('blank_length', 'blank_width', 'blank_height')) else False vals = { 'name': '%s-%s-%s' % ('P', order_id.name, i), 'blank_type': item.get('blank_type'), - 'model_long': item.get('blank_length') if item.get('blank_length') else item['model_long'] + model_type.embryo_tolerance, - 'model_width': item.get('blank_width') if item.get('blank_width') else item['model_width'] + model_type.embryo_tolerance, - 'model_height': item.get('blank_height') if item.get('blank_height') else item['model_height'] + model_type.embryo_tolerance, - 'model_volume': (item['model_long'] + model_type.embryo_tolerance) * ( - item['model_width'] + model_type.embryo_tolerance) * ( - item['model_height'] + model_type.embryo_tolerance), + 'model_long': item.get('blank_length') if blank_bool else item['model_long'] + model_type.embryo_tolerance, + 'model_width': item.get('blank_width') if blank_bool else item['model_width'] + model_type.embryo_tolerance, + 'model_height': item.get('blank_height') if blank_bool else item['model_height'] + model_type.embryo_tolerance, + 'model_volume': ((item['model_long'] + model_type.embryo_tolerance) * + (item['model_width'] + model_type.embryo_tolerance) * + (item['model_height'] + model_type.embryo_tolerance)) if not blank_bool else ( + item.get('blank_length') * item.get('blank_width') * item.get('blank_height')), 'product_model_type_id': model_type.id, 'model_processing_panel': 'R', 'model_machining_precision': item['model_machining_precision'], diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index 5f371aed..30d807d1 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -894,15 +894,20 @@ class ResProductMo(models.Model): if not embryo_redundancy_id: raise UserError('请先配置模型类型内的坯料冗余') product_name = self.generate_product_name(order_id, item, i) + # 判断参数中是否包含 坯料尺寸(长、宽、高) + blank_bool = any(value is not None and value != 0 for value in ( + item.get('blank_length'), item.get('blank_width'), item.get('blank_height'))) if all( + key in item for key in ('blank_length', 'blank_width', 'blank_height')) else False vals = { 'name': product_name, 'blank_type': item.get('blank_type'), - 'model_long': item.get('blank_length') if item.get('blank_length') else self.format_float(item['model_long'] + embryo_redundancy_id.long), - 'model_width': item.get('blank_width') if item.get('blank_width') else self.format_float(item['model_width'] + embryo_redundancy_id.width), - 'model_height': item.get('blank_height') if item.get('blank_height') else self.format_float(item['model_height'] + embryo_redundancy_id.height), - 'model_volume': self.format_float((item['model_long'] + embryo_redundancy_id.long) * ( - item['model_width'] + embryo_redundancy_id.width) * ( - item['model_height'] + embryo_redundancy_id.height)), + 'model_long': item.get('blank_length') if blank_bool else self.format_float(item['model_long'] + embryo_redundancy_id.long), + 'model_width': item.get('blank_width') if blank_bool else self.format_float(item['model_width'] + embryo_redundancy_id.width), + 'model_height': item.get('blank_height') if blank_bool else self.format_float(item['model_height'] + embryo_redundancy_id.height), + 'model_volume': self.format_float(((item['model_long'] + model_type.embryo_tolerance) * + (item['model_width'] + model_type.embryo_tolerance) * + (item['model_height'] + model_type.embryo_tolerance))) if not blank_bool else ( + item.get('blank_length') * item.get('blank_width') * item.get('blank_height')), 'product_model_type_id': model_type.id, 'model_processing_panel': item['processing_panel_detail'], 'model_machining_precision': item['model_machining_precision'],