|
|
@@ -32,7 +32,7 @@ from service.online_request.module_online_data import AIGCDataRequest
|
|
|
import asyncio
|
|
|
from fastapi import BackgroundTasks
|
|
|
import functools
|
|
|
-import traceback
|
|
|
+import traceback,stat
|
|
|
import concurrent.futures
|
|
|
|
|
|
def log_exception_with_context(context_message=""):
|
|
|
@@ -374,7 +374,7 @@ async def _process_non_excel_mode(params, goods_art_no_arrays):
|
|
|
session = SqlQuery()
|
|
|
pr = CRUD(PhotoRecord)
|
|
|
images = pr.read_all(session, conditions={"goods_art_no": goods_art_no})
|
|
|
-
|
|
|
+ session.close()
|
|
|
if not images:
|
|
|
raise UnicornException(
|
|
|
f"商品货号【{goods_art_no}】未查询到拍摄记录,请检查货号是否正确"
|
|
|
@@ -397,13 +397,13 @@ async def _process_excel_mode(goods_art_no_arrays,excel_df):
|
|
|
check_path(limit_path)
|
|
|
|
|
|
move_folder_array = check_move_goods_art_no_folder("output", goods_art_no_arrays, limit_path)
|
|
|
+ session = SqlQuery()
|
|
|
for index, row in excel_df.iterrows():
|
|
|
goods_art_no_image_dir = str(row["文件夹名称"])
|
|
|
goods_art_no = str(row["商品货号"])
|
|
|
print("货号数据", goods_art_no)
|
|
|
if not goods_art_no:
|
|
|
raise UnicornException("货号不能为空")
|
|
|
- session = SqlQuery()
|
|
|
pr = CRUD(PhotoRecord)
|
|
|
images = pr.read_all(session, conditions={"goods_art_no": goods_art_no})
|
|
|
if not images:
|
|
|
@@ -413,6 +413,7 @@ async def _process_excel_mode(goods_art_no_arrays,excel_df):
|
|
|
# 货号目录不存在再去进行移动和创建操作
|
|
|
if move_folder_array.get(goods_art_no) is None:
|
|
|
await _process_image_copy_and_move(goods_art_no_image_dir, images,True)
|
|
|
+ session.close()
|
|
|
return move_folder_array
|
|
|
|
|
|
async def _process_image_copy_and_move(goods_art_no, images,is_excel):
|
|
|
@@ -438,7 +439,10 @@ async def _process_image_copy_and_move(goods_art_no, images,is_excel):
|
|
|
if not resFlag:
|
|
|
raise UnicornException(path)
|
|
|
if is_excel:
|
|
|
- shutil.rmtree(image_dir)
|
|
|
+ try:
|
|
|
+ shutil.rmtree(image_dir,onerror=settings.handle_remove_readonly)
|
|
|
+ except Exception as e:
|
|
|
+ logger.info(f"删除图片失败:{str(e)}")
|
|
|
|
|
|
async def _build_config_data(params, goods_art_no_arrays):
|
|
|
"""构建配置数据"""
|
|
|
@@ -908,7 +912,6 @@ def get_device_tabs(type: int):
|
|
|
.order_by(asc("id"))
|
|
|
)
|
|
|
result = session.exec(statement).all()
|
|
|
- session.close()
|
|
|
sys = CRUD(SysConfigs)
|
|
|
action_configs = sys.read(session, conditions={"key": "action_configs"})
|
|
|
session.close()
|
|
|
@@ -946,6 +949,7 @@ def get_device_configs(params: ModelGetDeviceConfig):
|
|
|
order_by="action_index",
|
|
|
ascending=True,
|
|
|
)
|
|
|
+ session.close()
|
|
|
return {
|
|
|
"code": 0,
|
|
|
"msg": "",
|
|
|
@@ -959,6 +963,7 @@ def device_config_detail(params: ModelGetDeviceConfigDetail):
|
|
|
session = SqlQuery()
|
|
|
configModel = CRUD(DeviceConfig)
|
|
|
model = configModel.read(session, conditions={"id": action_id})
|
|
|
+ session.close()
|
|
|
if model == None:
|
|
|
return {"code": 1, "msg": "数据不存在", "data": None}
|
|
|
return {"code": 0, "msg": "", "data": model}
|
|
|
@@ -979,6 +984,7 @@ def device_config_detail_query():
|
|
|
)
|
|
|
if model == None:
|
|
|
model = configModel.read(session, conditions={"tab_id": left_config})
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "", "data": model}
|
|
|
|
|
|
|
|
|
@@ -996,6 +1002,7 @@ def get_device_configs(params: ModelGetDeviceConfigDetail):
|
|
|
if len(configArray) == 1:
|
|
|
return {"code": 1, "msg": "请至少保留一个配置", "data": None}
|
|
|
configModel.delete(session, obj_id=action_id)
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "删除成功", "data": None}
|
|
|
|
|
|
|
|
|
@@ -1015,6 +1022,7 @@ def save_device_config(params: SaveDeviceConfig):
|
|
|
# 走编辑逻辑
|
|
|
kwargs = params.__dict__
|
|
|
save_device_config = deviceConfig.update(session, obj_id=action_id, **kwargs)
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "操作成功", "data": save_device_config}
|
|
|
|
|
|
|
|
|
@@ -1036,7 +1044,7 @@ def reset_config(params: ModelGetDeviceConfig):
|
|
|
device_config = DeviceConfig(**data)
|
|
|
session.add(device_config)
|
|
|
session.commit()
|
|
|
- # session.close()
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "操作成功", "data": None}
|
|
|
|
|
|
|
|
|
@@ -1076,7 +1084,7 @@ def get_photo_records(page: int = 1, size: int = 5):
|
|
|
"items": list_item,
|
|
|
}
|
|
|
)
|
|
|
- # session.close()
|
|
|
+ session.close()
|
|
|
print("循环查询 完成 ", datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
|
|
return {
|
|
|
"code": 0,
|
|
|
@@ -1094,7 +1102,7 @@ def get_last_photo_record():
|
|
|
.order_by(desc("photo_create_time"))
|
|
|
)
|
|
|
result = session.exec(statement).first()
|
|
|
- # session.close()
|
|
|
+ session.close()
|
|
|
return {
|
|
|
"code": 0,
|
|
|
"msg": "",
|
|
|
@@ -1109,7 +1117,7 @@ def get_photo_record_detail(goods_art_no: str = None):
|
|
|
session = SqlQuery()
|
|
|
photos = CRUD(PhotoRecord)
|
|
|
items = photos.read_all(session, conditions={"goods_art_no": goods_art_no})
|
|
|
- # session.close()
|
|
|
+ session.close()
|
|
|
return {
|
|
|
"code": 0,
|
|
|
"msg": "",
|
|
|
@@ -1123,7 +1131,7 @@ def delect_goods_arts(params: PhotoRecordDelete):
|
|
|
photos = CRUD(PhotoRecord)
|
|
|
for item in params.goods_art_nos:
|
|
|
photos.deleteConditions(session, conditions={"goods_art_no": item})
|
|
|
- # session.close()
|
|
|
+ session.close()
|
|
|
return {
|
|
|
"code": 0,
|
|
|
"msg": "操作成功",
|
|
|
@@ -1171,6 +1179,7 @@ def get_sys_config(key: str = None):
|
|
|
session.add(config)
|
|
|
session.commit() # 合并事务提交
|
|
|
search_data = json.loads(sys_config_json.get("value"))
|
|
|
+ session.close()
|
|
|
return {
|
|
|
"code": 0,
|
|
|
"msg": "",
|
|
|
@@ -1193,6 +1202,7 @@ def update_left_right_config(params: LeftRightParams):
|
|
|
save_device_config = sysConfig.updateConditions(
|
|
|
session, conditions={"key": "action_configs"}, **kwargs
|
|
|
)
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "操作成功", "data": None}
|
|
|
|
|
|
|
|
|
@@ -1205,6 +1215,7 @@ def update_record(params: RecordUpdate):
|
|
|
return {"code": 1, "msg": "记录不存在", "data": None}
|
|
|
kwargs = params.__dict__
|
|
|
save_device_config = photoRecord.update(session, obj_id=params.id, **kwargs)
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "操作成功", "data": save_device_config}
|
|
|
|
|
|
|
|
|
@@ -1220,6 +1231,7 @@ def save_sys_configs(params: SysConfigParams):
|
|
|
save_device_config = sysConfig.updateConditions(
|
|
|
session, conditions={"key": params.key}, **kwargs
|
|
|
)
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "操作成功", "data": save_device_config}
|
|
|
|
|
|
|
|
|
@@ -1237,7 +1249,6 @@ def insertEmptyLogoList(session):
|
|
|
config = SysConfigs(**data)
|
|
|
session.add(config)
|
|
|
session.commit()
|
|
|
- session.close()
|
|
|
item = SysConfigs()
|
|
|
item.key = "logo_configs"
|
|
|
item.value = "[]"
|
|
|
@@ -1267,6 +1278,7 @@ def add_logo(params: LogoParams):
|
|
|
return {"code": 1, "msg": "logo文件不存在", "data": None}
|
|
|
logo_dir = "{}/data/logo/".format(os.getcwd()).replace("\\", "/")
|
|
|
check_path(logo_dir)
|
|
|
+ session.close()
|
|
|
fpath, fname = os.path.split(logo_path)
|
|
|
logo_path_info = logo_dir + fname
|
|
|
shutil.copy(logo_path, logo_path_info) # 复制文件
|
|
|
@@ -1337,7 +1349,7 @@ def syncUserJsonConfigs(token):
|
|
|
}
|
|
|
)
|
|
|
batch_insert_sys_configs(session, configList)
|
|
|
-
|
|
|
+ session.close()
|
|
|
|
|
|
@app.post("/sync_sys_configs", description="同步线上配置到本地")
|
|
|
def sync_sys_configs(params: SyncLocalConfigs):
|
|
|
@@ -1373,6 +1385,7 @@ def sync_sys_configs(params: SyncLocalConfigs):
|
|
|
# 同步本地到线上
|
|
|
url = settings.DOMAIN + "/api/ai_image/camera_machine/update_all_user_configs"
|
|
|
requests.post(url=url, headers=headers, data=data_json)
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "操作成功", "data": None}
|
|
|
|
|
|
|
|
|
@@ -1423,4 +1436,5 @@ def sync_action_configs(params: SyncLocalConfigs):
|
|
|
)
|
|
|
# 因为左右脚线上id可能会发生变化 所以需要重新同步一下本地得配置信息
|
|
|
# syncUserJsonConfigs(hlm_token)
|
|
|
+ session.close()
|
|
|
return {"code": 0, "msg": "操作成功", "data": None}
|