From c1f438674748ad49b18858c1960c80b7273e97c7 Mon Sep 17 00:00:00 2001 From: BBIT-Kai <2911862937@qq.com> Date: Sat, 11 Oct 2025 11:07:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A3=80=E9=AA=8C=E8=8C=A7?= =?UTF-8?q?=E7=A5=A8=E4=B8=8D=E4=BF=9D=E5=AD=98=E5=83=B5=E8=9A=95=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E5=AE=A4=E4=BB=AA=E8=AF=84=E6=8C=87=E6=A0=87?= =?UTF-8?q?=E8=81=94=E6=A3=80=E6=B5=8B=E4=B8=BA=E7=89=88=E6=9C=ACV2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbit_ai/app/db/postgres.py | 3 ++- bbit_ai/app/routers/Vision.py | 19 +++++++++++++++++++ bbit_ai/app/service/vision.py | 4 ++-- vue/apps/web-antd/src/api/cv/ticket.ts | 2 +- .../web-antd/src/views/cv/ticket/index.vue | 3 ++- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/bbit_ai/app/db/postgres.py b/bbit_ai/app/db/postgres.py index 7b71ae8..d4c2b6e 100644 --- a/bbit_ai/app/db/postgres.py +++ b/bbit_ai/app/db/postgres.py @@ -471,7 +471,7 @@ def get_ticket_image_list(user_id): SELECT created_at, file_name, resolution, size, name, moisture_content, cocoon_weight, defective_pupa_count, fresh_shell_weight, sample_count, barcode, oss, - net_weight_total, evaluator, reviewer,id + net_weight_total, evaluator, reviewer,id ,dead_pupa_count FROM ticket_images WHERE created_by = %s """, @@ -498,6 +498,7 @@ def get_ticket_image_list(user_id): "evaluator": row[13], "reviewer": row[14], "id": row[15], + "dead_pupa_count": row[16], } ) return result diff --git a/bbit_ai/app/routers/Vision.py b/bbit_ai/app/routers/Vision.py index 9aab3a4..3ec900e 100644 --- a/bbit_ai/app/routers/Vision.py +++ b/bbit_ai/app/routers/Vision.py @@ -49,3 +49,22 @@ def cocoonTicket(user_id: UUID = Depends(get_user_id_from_token)): if not user_id: return {"error": "userId is required"} return BaseResponse(data=pg.get_ticket_image_list(user_id)) + + +@visionRouter.post("/createTicketImageTaskV2") +async def createTicketImageTask( + file: UploadFile = File(...), + projectName: str = Form(...), + user_id: UUID = Depends(get_user_id_from_token), +): + if not user_id: + return {"error": "userId is required"} + try: + contents = await file.read() + json_data = await MyUtils.async_task( + process_ticket_image, 2, True, contents, file.filename, projectName, user_id + ) + return BaseResponse(data=json_data) + except Exception as e: + print(str(e)) + return BaseResponse(status=False, message=f"解析失败: {str(e)}", data=None) diff --git a/bbit_ai/app/service/vision.py b/bbit_ai/app/service/vision.py index 714dc40..753b9ad 100644 --- a/bbit_ai/app/service/vision.py +++ b/bbit_ai/app/service/vision.py @@ -51,8 +51,8 @@ def process_ticket_image( resolution=resolution, size=size_kb, name=project_name if project_name else object_name[:8], - dead_pupa_count=json_data.get("moisture_content") if version == 2 else 0, - moisture_content=json_data.get("moisture_content"), + dead_pupa_count=json_data.get("dead_pupa_count") if version == 2 else 0, + moisture_content=json_data.get("moisture_content") if version == 2 else 0, cocoon_weight=json_data.get("cocoon_weight"), defective_pupa_count=json_data.get("defective_pupa_count"), fresh_shell_weight=json_data.get("fresh_shell_weight"), diff --git a/vue/apps/web-antd/src/api/cv/ticket.ts b/vue/apps/web-antd/src/api/cv/ticket.ts index 6ce0dd6..20e9f62 100644 --- a/vue/apps/web-antd/src/api/cv/ticket.ts +++ b/vue/apps/web-antd/src/api/cv/ticket.ts @@ -11,7 +11,7 @@ export async function refreshTicketImageList() { * 上传图片分析任务 */ export async function createTicketImageTask(formData: FormData) { - return pyRequestClient.post('/llm/createTicketImageTask', formData, { + return pyRequestClient.post('/llm/createTicketImageTaskV2', formData, { headers: { 'Content-Type': 'multipart/form-data', }, diff --git a/vue/apps/web-antd/src/views/cv/ticket/index.vue b/vue/apps/web-antd/src/views/cv/ticket/index.vue index 6542503..452fda9 100644 --- a/vue/apps/web-antd/src/views/cv/ticket/index.vue +++ b/vue/apps/web-antd/src/views/cv/ticket/index.vue @@ -44,7 +44,8 @@ function refreshLineChart() { showInfoStr2.value = { 含水量: `${data.moisture_content} %`, 下足茧重: `${data.cocoon_weight} g`, - '非蛹/僵蚕': `${data.defective_pupa_count} 粒`, + 非蛹粒数: `${data.defective_pupa_count} 粒`, + 僵蛹粒数: `${data.dead_pupa_count} 粒`, 鲜壳量: `${data.fresh_shell_weight} g`, 小样数: `${data.sample_count} 粒`, 净重合计: `${data.net_weight_total} kg`,