From eefd3691e6e3d02f7b308963568e7d57aee9529e Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 26 May 2025 10:33:09 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20batch=5Fgxerp=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wpm/scripts/batch_gxerp.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/wpm/scripts/batch_gxerp.py b/apps/wpm/scripts/batch_gxerp.py index 85c4b7c4..c888bb75 100644 --- a/apps/wpm/scripts/batch_gxerp.py +++ b/apps/wpm/scripts/batch_gxerp.py @@ -4,6 +4,7 @@ from apps.qm.models import Defect from apps.wpm.models import Mlogb, MlogbDefect import decimal from django.db.models import Sum +from datetime import datetime myLogger = logging.getLogger("log") @@ -16,6 +17,9 @@ def main(batch: str): data = {"批次号": batch} + from zoneinfo import ZoneInfo + tz_shanghai = ZoneInfo("Asia/Shanghai") + mgroup_names = ["尺寸检验", "外观检验"] for mgroup_name in mgroup_names: mlogb1_qs = Mlogb.objects.filter(mlog__submit_time__isnull=False, material_out__isnull=False, mlog__mgroup__name=mgroup_name, batch=batch) @@ -105,7 +109,24 @@ def main(batch: str): except decimal.InvalidOperation: data["外观检验_完全直通合格率"] = 0 - return data, {} + first_time = None + last_time = None + for k, v in data.items(): + if k.endswith("_日期"): + if v: + v = v.split(";") + if first_time is None: + first_time = min(v) + else: + first_time = min(first_time, min(v)) + if last_time is None: + last_time = max(v) + else: + last_time = max(last_time, max(v)) + + + return data, {"first_time": datetime.strptime(f"{first_time} 00:00:00", "%Y-%m-%d %H:%M:%S").replace(tzinfo=tz_shanghai) if first_time else None, + "last_time": datetime.strptime(f"{last_time} 23:59:59", "%Y-%m-%d %H:%M:%S").replace(tzinfo=tz_shanghai) if last_time else None} if __name__ == '__main__': pass \ No newline at end of file