From 66c745af3c9bc3a5aac2317cad7304de0450a51c Mon Sep 17 00:00:00 2001 From: guanhuan Date: Fri, 18 Apr 2025 13:22:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/mrp_workorder.py | 32 ++++++++---------------- sf_manufacturing/models/stock.py | 19 +++++++------- 2 files changed, 20 insertions(+), 31 deletions(-) diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 92736757..fcf0c84a 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1754,29 +1754,17 @@ class ResMrpWorkOrder(models.Model): aggregate_field = 'create_date:max' if aggregate_field not in fields: fields.append(aggregate_field) - res = super(ResMrpWorkOrder, self).read_group( - domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy - ) - sorted_res = sorted( - res, - key=lambda x: self.parse_datetime(x.get('create_date', '')), - reverse=True - ) - return sorted_res + orderby = "create_date desc" - def parse_datetime(self, value): - """将字符串转换为 datetime 对象,处理空值和无效格式""" - if not value: - return datetime.min # 返回最小日期时间,确保排序稳定 - try: - # 假设 value 是字符串(如 "2023-10-01 12:00:00") - return datetime.strptime(value, "%Y-%m-%d %H:%M:%S") - except (TypeError, ValueError): - # 如果已经是 datetime 对象,直接返回 - if isinstance(value, datetime): - return value - # 其他无效格式返回最小日期时间 - return datetime.min + return super(ResMrpWorkOrder, self).read_group( + domain, + fields, + groupby, + offset=offset, + limit=limit, + orderby=orderby, + lazy=lazy + ) class CNCprocessing(models.Model): diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index ed9adec8..3a1b3cd9 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -760,17 +760,18 @@ class StockPicking(models.Model): aggregate_field = 'create_date:max' if aggregate_field not in fields: fields.append(aggregate_field) - res = super(StockPicking, self).read_group( - domain, fields, groupby, offset=offset, limit=limit, orderby=orderby, lazy=lazy - ) - sorted_res = sorted( - res, - key=lambda x: self.env['mrp.workorder'].sudo().parse_datetime(x.get('create_date', '')), - reverse=True - ) - return sorted_res + orderby = "create_date desc" + return super(StockPicking, self).read_group( + domain, + fields, + groupby, + offset=offset, + limit=limit, + orderby=orderby, + lazy=lazy + ) class ReStockMove(models.Model):