diff --git a/sf_base/models/base.py b/sf_base/models/base.py
index d7a71e1e..54a1fe1f 100644
--- a/sf_base/models/base.py
+++ b/sf_base/models/base.py
@@ -421,3 +421,4 @@ class EmbryoRedundancy(models.Model):
width = fields.Float('宽度(mm)', required=True)
height = fields.Float('高度(mm)', required=True)
active = fields.Boolean('有效', default=True)
+ remark = fields.Char('描述')
diff --git a/sf_base/views/base_view.xml b/sf_base/views/base_view.xml
index bd6f103b..ccac31c9 100644
--- a/sf_base/views/base_view.xml
+++ b/sf_base/views/base_view.xml
@@ -645,6 +645,7 @@
+
diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py
index fbea675c..fc12ca79 100644
--- a/sf_manufacturing/models/product_template.py
+++ b/sf_manufacturing/models/product_template.py
@@ -777,33 +777,11 @@ class ResProductMo(models.Model):
manual_quotation = fields.Boolean('人工编程', default=False, readonly=True)
machining_drawings = fields.Binary('2D加工图纸', readonly=True)
quality_standard = fields.Binary('质检标准', readonly=True)
- part_name = fields.Char(string='零件名称', compute='_compute_related_product', readonly=True, store=True)
- part_number = fields.Char(string='零件图号', compute='_compute_related_product', readonly=True, store=True)
+ part_name = fields.Char(string='零件名称', readonly=True)
+ part_number = fields.Char(string='零件图号', readonly=True)
machining_drawings_name = fields.Char(string='零件图号名称', readonly=True)
machining_drawings_mimetype = fields.Char(string='零件图号类型', readonly=True)
- @api.depends('name')
- def _compute_related_product(self):
- for record in self:
- if record.categ_id.name == '坯料':
- product_name = ''
- match = re.search(r'(S\d{5}-\d)', record.name)
- # 如果匹配成功,提取结果
- if match:
- product_name = match.group(0)
- sale_order_name = ''
- match_sale = re.search(r'S(\d+)', record.name)
- if match_sale:
- sale_order_name = match_sale.group(0)
- sale_order = self.env['sale.order'].sudo().search(
- [('name', '=', sale_order_name)])
- if sale_order:
- filtered_order_line = sale_order.order_line.filtered(
- lambda order_line: re.search(f'{product_name}$', order_line.product_id.name)
- )
- record.part_number = filtered_order_line.product_id.part_number if filtered_order_line else None
- record.part_name = filtered_order_line.product_id.part_name if filtered_order_line else None
-
@api.constrains('tool_length')
def _check_tool_length_size(self):
if self.tool_length > 1000000:
diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py
index 8f5e0023..c5047f6c 100644
--- a/sf_manufacturing/models/stock.py
+++ b/sf_manufacturing/models/stock.py
@@ -562,6 +562,18 @@ class StockPicking(models.Model):
sale_order_id = fields.Many2one('sale.order', '销售单号', compute='_compute_move_ids', store=True)
picking_type_sequence_code = fields.Char(related='picking_type_id.sequence_code')
+ part_numbers = fields.Char(string="零件图号", compute='_compute_part_info', store=True, index=True)
+ part_names = fields.Char(string="零件名称", compute='_compute_part_info', store=True, index=True)
+
+ @api.depends('move_ids_without_package.part_number', 'move_ids_without_package.part_name')
+ def _compute_part_info(self):
+ for picking in self:
+ # 聚合所有关联行的 part_number 和 part_name
+ part_numbers = picking.move_ids_without_package.mapped('part_number')
+ part_names = picking.move_ids_without_package.mapped('part_name')
+ picking.part_numbers = ','.join(filter(None, part_numbers))
+ picking.part_names = ','.join(filter(None, part_names))
+
@api.depends('move_ids', 'move_ids.product_id')
def _compute_move_ids(self):
for item in self:
diff --git a/sf_manufacturing/views/stock_picking_view.xml b/sf_manufacturing/views/stock_picking_view.xml
index 3cb877a9..f5b1941b 100644
--- a/sf_manufacturing/views/stock_picking_view.xml
+++ b/sf_manufacturing/views/stock_picking_view.xml
@@ -68,14 +68,8 @@
context="{'group_by': 'retrospect_ref'}"/>
-
-
+
+
@@ -97,7 +91,8 @@
True
-
diff --git a/sf_mrs_connect/models/sync_common.py b/sf_mrs_connect/models/sync_common.py
index cd0d8405..652ec3eb 100644
--- a/sf_mrs_connect/models/sync_common.py
+++ b/sf_mrs_connect/models/sync_common.py
@@ -3214,6 +3214,7 @@ class EmbryoRedundancySync(models.Model):
embryo_redundancy.width = item['width']
embryo_redundancy.height = item['height']
embryo_redundancy.active = item['active']
+ embryo_redundancy.remark = item['remark']
else:
self.env['sf.embryo.redundancy'].sudo().create({
"name": item['name'],
@@ -3222,4 +3223,5 @@ class EmbryoRedundancySync(models.Model):
"width": item['width'],
"height": item['height'],
"active": item['active'],
+ "remark": item['remark'],
})
\ No newline at end of file