|
|
|
@ -75,10 +75,32 @@ def down_obj_from_oss(workdir, pid, action): |
|
|
|
return obj_filename |
|
|
|
return obj_filename |
|
|
|
|
|
|
|
|
|
|
|
#加载obj文件 |
|
|
|
#加载obj文件 |
|
|
|
def reload_obj(pid): |
|
|
|
def reload_obj(pid,order_ids): |
|
|
|
|
|
|
|
|
|
|
|
#下载obj文件 |
|
|
|
#下载obj文件 |
|
|
|
down_obj_from_oss(config.workdir, pid, "print") |
|
|
|
down_obj_from_oss(config.workdir, pid, "print") |
|
|
|
|
|
|
|
for order_id in order_ids: |
|
|
|
|
|
|
|
print(order_id) |
|
|
|
|
|
|
|
#url 请求 |
|
|
|
|
|
|
|
url = f"https://mp.api.suwa3d.com/api/printOrder/infoByOrderId?id={order_id}" |
|
|
|
|
|
|
|
response = requests.get(url) |
|
|
|
|
|
|
|
response = response.json() |
|
|
|
|
|
|
|
if response['code'] != 1000: |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#获取打印尺寸 |
|
|
|
|
|
|
|
printdata = response['data']['data'] |
|
|
|
|
|
|
|
for key,value in printdata.items(): |
|
|
|
|
|
|
|
#去掉cm |
|
|
|
|
|
|
|
key = key.replace('cm','') |
|
|
|
|
|
|
|
key = float(key)*10 |
|
|
|
|
|
|
|
print(key) |
|
|
|
|
|
|
|
print(f'执行脚本--- "python D:/make2/tools/cal_weight.py print {pid} {key} {order_id}"') |
|
|
|
|
|
|
|
#发起计算请求 |
|
|
|
|
|
|
|
os.system(f"python D:/make2/tools/cal_weight.py print {pid} {key} {order_id}") |
|
|
|
|
|
|
|
#计算克重信息 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
obj_filename = os.path.join(config.workdir,'print',pid,f'{pid}.obj') |
|
|
|
obj_filename = os.path.join(config.workdir,'print',pid,f'{pid}.obj') |
|
|
|
bpy.ops.wm.read_homefile() |
|
|
|
bpy.ops.wm.read_homefile() |
|
|
|
bpy.ops.object.delete(use_global=False, confirm=False) |
|
|
|
bpy.ops.object.delete(use_global=False, confirm=False) |
|
|
|
@ -108,9 +130,9 @@ def get_p3d_info(pid): |
|
|
|
return 0 |
|
|
|
return 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def base_fix(pid): |
|
|
|
def base_fix(pid,order_ids): |
|
|
|
# 统一blender环境 |
|
|
|
# 统一blender环境 |
|
|
|
reload_obj(pid) |
|
|
|
reload_obj(pid,order_ids) |
|
|
|
# 统一模型方向、位置、大小... |
|
|
|
# 统一模型方向、位置、大小... |
|
|
|
pid_objname = find_pid_objname(pid) |
|
|
|
pid_objname = find_pid_objname(pid) |
|
|
|
obj = bpy.data.objects[pid_objname] |
|
|
|
obj = bpy.data.objects[pid_objname] |
|
|
|
@ -209,10 +231,10 @@ def export_and_update_glbs(pid): |
|
|
|
#更新该笔订单的状态为 3000 |
|
|
|
#更新该笔订单的状态为 3000 |
|
|
|
requests.post("https://shop.api.suwa3d.com/api/printOrder/updateExternalOrderStatus", data={'pid': pid}) |
|
|
|
requests.post("https://shop.api.suwa3d.com/api/printOrder/updateExternalOrderStatus", data={'pid': pid}) |
|
|
|
|
|
|
|
|
|
|
|
def createGlb(pid): |
|
|
|
def createGlb(pid,order_ids): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
base_fix(pid) |
|
|
|
base_fix(pid,order_ids) |
|
|
|
export_and_update_glbs(pid) |
|
|
|
export_and_update_glbs(pid) |
|
|
|
#移除文件夹 |
|
|
|
#移除文件夹 |
|
|
|
# try: |
|
|
|
# try: |
|
|
|
@ -247,21 +269,25 @@ if __name__ == '__main__': |
|
|
|
r = create_redis_connection() |
|
|
|
r = create_redis_connection() |
|
|
|
while True: |
|
|
|
while True: |
|
|
|
try: |
|
|
|
try: |
|
|
|
if r.llen('model:3dglb') == 0: |
|
|
|
if r.llen('model:3dglbV2') == 0: |
|
|
|
print('队列为空,等待10秒') |
|
|
|
print('队列为空,等待10秒') |
|
|
|
time.sleep(10) |
|
|
|
time.sleep(10) |
|
|
|
continue |
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
info = r.lpop('model:3dglb') |
|
|
|
info = r.lpop('model:3dglbV2') |
|
|
|
if info is None: |
|
|
|
if info is None: |
|
|
|
print('队列为空,等待10秒') |
|
|
|
print('队列为空,等待10秒') |
|
|
|
time.sleep(10) |
|
|
|
time.sleep(10) |
|
|
|
pid = info.decode('utf-8') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
info = json.loads(info) |
|
|
|
|
|
|
|
pid = info['pid'] |
|
|
|
|
|
|
|
order_ids = info['order_id'] |
|
|
|
|
|
|
|
|
|
|
|
if not pid.isdigit(): |
|
|
|
if not pid.isdigit(): |
|
|
|
continue |
|
|
|
continue |
|
|
|
|
|
|
|
|
|
|
|
createGlb(pid) |
|
|
|
createGlb(pid,order_ids) |
|
|
|
except Exception as e: |
|
|
|
except Exception as e: |
|
|
|
print(f'错误:{e}') |
|
|
|
print(f'错误:{e}') |
|
|
|
time.sleep(10) |
|
|
|
time.sleep(10) |
|
|
|
|