Accept Merge Request #2012: (feature/页面显示优化 -> develop)

Merge Request: 优化库存排序

Created By: @管欢
Reviewed By: @胡尧
Approved By: @胡尧 
Accepted By: @管欢
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2012
This commit is contained in:
管欢
2025-04-18 09:50:58 +08:00
committed by Coding
7 changed files with 62 additions and 12 deletions

View File

@@ -19,7 +19,6 @@ from odoo.addons.sf_mrs_connect.models.ftp_operate import FtpController
class ResMrpWorkOrder(models.Model):
_inherit = 'mrp.workorder'
_order = 'sequence asc'
_description = '工单'
product_tmpl_name = fields.Char('坯料产品名称', related='production_bom_id.bom_line_ids.product_id.name')
@@ -1759,6 +1758,35 @@ class ResMrpWorkOrder(models.Model):
self.check_ids.filtered(lambda ch: ch.is_inspect is True and ch.quality_state == 'waiting').write(
{'quality_state': 'none'})
@api.model
def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True):
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
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
class CNCprocessing(models.Model):
_name = 'sf.cnc.processing'