From 272d5e7eccebd96d6cc20244f78583008d2dff08 Mon Sep 17 00:00:00 2001 From: dongchangxi <458593490@qq.com> Date: Mon, 4 Aug 2025 16:11:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timer/external_order_glbV2.py | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/timer/external_order_glbV2.py b/timer/external_order_glbV2.py index 024f9ca..b203661 100644 --- a/timer/external_order_glbV2.py +++ b/timer/external_order_glbV2.py @@ -54,6 +54,10 @@ def down_obj_from_oss(workdir, pid, action): os.makedirs(os.path.join(workdir, action, pid)) + jpgsTemp = f'objs/print/{pid}/base/model/{pid}Tex1.jpg' + mtlTemp = f'objs/print/{pid}/base/model/{pid}.mtl' + objTemp = f'objs/print/{pid}/base/model/{pid}.obj' + # 根据前缀获取文件列表 prefix = f'objs/print/{pid}/base/model/' filelist = oss2.ObjectIteratorV2(config.oss_bucket, prefix=prefix) @@ -69,6 +73,10 @@ def down_obj_from_oss(workdir, pid, action): if filename.endswith("_1.jpg") or filename.endswith("_8.jpg"): continue + + if filename != jpgsTemp and filename != mtlTemp and filename != objTemp: + continue + if filename.endswith('.obj'): obj_filename = filename # print('正在下载:', file.key) @@ -77,11 +85,61 @@ def down_obj_from_oss(workdir, pid, action): return obj_filename +def checkDownloadFile(pid): + mtlfilePath = os.path.join(config.workdir, "print", pid,f"{pid}.mtl") + objfilePath = os.path.join(config.workdir, "print", pid,f"{pid}.obj") + #读取该笔文件的mtl文件 + with open(mtlfilePath, 'r') as file: + mtlContent = file.read() + #检测mtl文件是否正常 + if mtlContent == "": + return False + #判断mtl 包含几个 newmtl + newmtlCount = mtlContent.count('newmtl') + if newmtlCount > 1: + return False + + #判断mtlContent是否包含 {pid}Tex1.jpg + if f'{pid}Tex1.jpg' not in mtlContent: + return False + + #检测obj文件 里 是否包含 o {pid}, + isContain = False + with open(objfilePath, 'r') as file: + for line in file: + if line.startswith(f'o {pid}'): + isContain = True + print(f'{pid}的obj文件检测没问题') + break + + if isContain == False: + print(f'{pid}的obj文件检测出现问题了, 没有找到o {pid} 的行') + return False + + + return isContain + #加载obj文件 def reload_obj(pid,order_ids): #下载obj文件 down_obj_from_oss(config.workdir, pid, "print") + + #检测mtl 文件是否正常, + isNormal = checkDownloadFile(pid) + if isNormal == False: + print(f'{pid}的mtl文件检测出现问题,不执行该笔任务,调用取消的接口') + for order_id in order_ids: + url = f"https://mp.api.suwa3d.com/api/order/cancelExternalOrder?id={order_id}&typename=system" + response = requests.get(url) + response = response.json() + if response['code'] != 1000: + continue + print(f'取消订单{order_id}成功') + return + + + for order_id in order_ids: print(order_id) #url 请求