调整数据库表名,增加催青阶段分析演示模块
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
import json
|
||||
|
||||
from config.minIO import get_temp_url
|
||||
from config.pgDb import pg_pool
|
||||
from utils import MyUtils
|
||||
|
||||
|
||||
def insert_ysa_image(
|
||||
file_name,
|
||||
resolution,
|
||||
size,
|
||||
cocoon_count,
|
||||
max_confidence,
|
||||
min_confidence,
|
||||
average_confidence,
|
||||
other_info,
|
||||
preprocess_time_ms,
|
||||
inference_time_ms,
|
||||
postprocess_time_ms,
|
||||
name,
|
||||
image_pre,
|
||||
image_after,
|
||||
created_by,
|
||||
):
|
||||
with pg_pool.getConn() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
other_info = json.dumps(other_info)
|
||||
cursor.execute(
|
||||
"""
|
||||
INSERT INTO image_sca (
|
||||
upload_datetime, file_name, resolution, size, cocoon_count, max_confidence, min_confidence,
|
||||
average_confidence, other_info, preprocess_time_ms, inference_time_ms, postprocess_time_ms, name, image_pre, image_after, created_by
|
||||
)
|
||||
VALUES (NOW(), %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s )
|
||||
RETURNING id
|
||||
""",
|
||||
(
|
||||
file_name,
|
||||
resolution,
|
||||
size,
|
||||
cocoon_count,
|
||||
max_confidence,
|
||||
min_confidence,
|
||||
average_confidence,
|
||||
other_info,
|
||||
preprocess_time_ms,
|
||||
inference_time_ms,
|
||||
postprocess_time_ms,
|
||||
name,
|
||||
image_pre,
|
||||
image_after,
|
||||
created_by,
|
||||
),
|
||||
)
|
||||
new_id = cursor.fetchone()[0]
|
||||
conn.commit()
|
||||
return new_id
|
||||
|
||||
|
||||
def get_ysa_image_list(user_id, name, page=1, page_size=10):
|
||||
"""
|
||||
获取用户已分析图片列表,带分页
|
||||
"""
|
||||
offset = (page - 1) * page_size
|
||||
|
||||
with pg_pool.getConn() as conn:
|
||||
with conn.cursor() as cursor:
|
||||
# 1️⃣ 查询总条数
|
||||
# ✅ 改进版:支持 name 为空时统计全部,不为空时模糊统计
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT COUNT(*)
|
||||
FROM image_ysa
|
||||
WHERE created_by = %s
|
||||
AND (%s = '' OR name LIKE '%%' || %s || '%%')
|
||||
""",
|
||||
(user_id, name, name),
|
||||
)
|
||||
|
||||
total = cursor.fetchone()[0]
|
||||
|
||||
# 2️⃣ 查询当前页数据
|
||||
# ✅ 改进版
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT id, name, upload_datetime, file_name, image_pre, image_after, resolution,
|
||||
size, silkworm_count, max_confidence, min_confidence, average_confidence, other_info, preprocess_time_ms, inference_time_ms, postprocess_time_ms
|
||||
FROM image_ysa
|
||||
WHERE created_by = %s
|
||||
AND (%s = '' OR name LIKE '%%' || %s || '%%')
|
||||
ORDER BY upload_datetime DESC
|
||||
LIMIT %s OFFSET %s
|
||||
""",
|
||||
(user_id, name, name, page_size, offset),
|
||||
)
|
||||
|
||||
rows = cursor.fetchall()
|
||||
|
||||
result = []
|
||||
for row in rows:
|
||||
result.append(
|
||||
{
|
||||
"id": row[0],
|
||||
"name": row[1],
|
||||
"upload_datetime": MyUtils.format_datetime(row[2]),
|
||||
"file_name": row[3],
|
||||
"image_pre": get_temp_url("image-ysa", "raw/" + row[4]),
|
||||
"image_after": get_temp_url("image-ysa", "ai/" + row[5]),
|
||||
"resolution": row[6],
|
||||
"size": MyUtils.safe_round(row[7] / 1024, 2),
|
||||
"silkworm_count": row[8],
|
||||
"max_confidence": row[9],
|
||||
"min_confidence": row[10],
|
||||
"average_confidence": row[11],
|
||||
"other_info": row[12],
|
||||
"preprocess_time_ms": MyUtils.safe_round(row[13], 4),
|
||||
"inference_time_ms": MyUtils.safe_round(row[14], 4),
|
||||
"postprocess_time_ms": MyUtils.safe_round(row[15], 4),
|
||||
}
|
||||
)
|
||||
|
||||
return total, result
|
||||
Reference in New Issue
Block a user