排序优化
This commit is contained in:
@@ -1754,29 +1754,17 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
aggregate_field = 'create_date:max'
|
aggregate_field = 'create_date:max'
|
||||||
if aggregate_field not in fields:
|
if aggregate_field not in fields:
|
||||||
fields.append(aggregate_field)
|
fields.append(aggregate_field)
|
||||||
res = super(ResMrpWorkOrder, self).read_group(
|
orderby = "create_date desc"
|
||||||
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
|
|
||||||
|
|
||||||
def parse_datetime(self, value):
|
return super(ResMrpWorkOrder, self).read_group(
|
||||||
"""将字符串转换为 datetime 对象,处理空值和无效格式"""
|
domain,
|
||||||
if not value:
|
fields,
|
||||||
return datetime.min # 返回最小日期时间,确保排序稳定
|
groupby,
|
||||||
try:
|
offset=offset,
|
||||||
# 假设 value 是字符串(如 "2023-10-01 12:00:00")
|
limit=limit,
|
||||||
return datetime.strptime(value, "%Y-%m-%d %H:%M:%S")
|
orderby=orderby,
|
||||||
except (TypeError, ValueError):
|
lazy=lazy
|
||||||
# 如果已经是 datetime 对象,直接返回
|
)
|
||||||
if isinstance(value, datetime):
|
|
||||||
return value
|
|
||||||
# 其他无效格式返回最小日期时间
|
|
||||||
return datetime.min
|
|
||||||
|
|
||||||
|
|
||||||
class CNCprocessing(models.Model):
|
class CNCprocessing(models.Model):
|
||||||
|
|||||||
@@ -760,17 +760,18 @@ class StockPicking(models.Model):
|
|||||||
aggregate_field = 'create_date:max'
|
aggregate_field = 'create_date:max'
|
||||||
if aggregate_field not in fields:
|
if aggregate_field not in fields:
|
||||||
fields.append(aggregate_field)
|
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):
|
class ReStockMove(models.Model):
|
||||||
|
|||||||
Reference in New Issue
Block a user