提交
This commit is contained in:
1 parent
05684ba2a4
commit
7fbf71b6e1
150 files changed
+19834
-12611
No files matched your search
+99
-99
@@ -81,9 +81,9 @@ async def list_qc_third_party_companies(
|
||||
)
|
||||
return success_response(_page_payload(items, total, page, pageSize))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-third-party-companies/options")
|
||||
@@ -95,9 +95,9 @@ async def list_qc_third_party_company_options(
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
return success_response(tpc_svc.list_company_options(db, tenant_no))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-third-party-companies")
|
||||
@@ -127,11 +127,11 @@ async def create_qc_third_party_company(
|
||||
)
|
||||
return success_response(tpc_svc._row_to_dict(obj), message="创建成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.put("/qc-third-party-companies/{company_id}")
|
||||
@@ -163,11 +163,11 @@ async def update_qc_third_party_company(
|
||||
)
|
||||
return success_response(tpc_svc._row_to_dict(obj), message="更新成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.delete("/qc-third-party-companies/{company_id}")
|
||||
@@ -181,11 +181,11 @@ async def delete_qc_third_party_company(
|
||||
tpc_svc.soft_delete_company(db, company_id, tenant_no=tenant_no)
|
||||
return success_response(None, message="删除成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
# ---------- 第三方检测项目 ----------
|
||||
@@ -239,9 +239,9 @@ async def list_qc_third_party_items(
|
||||
)
|
||||
return success_response(_page_payload(items, total, page, pageSize))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-third-party-items/active")
|
||||
@@ -254,9 +254,9 @@ async def list_qc_third_party_items_active(
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
return success_response(tpi_svc.list_active_items(db, tenant_no, company_id=companyId, user_info=user))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-third-party-items")
|
||||
@@ -281,11 +281,11 @@ async def create_qc_third_party_item(
|
||||
)
|
||||
return success_response(tpi_svc._row_to_dict(obj, ""), message="创建成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.put("/qc-third-party-items/{item_id}")
|
||||
@@ -312,11 +312,11 @@ async def update_qc_third_party_item(
|
||||
)
|
||||
return success_response(tpi_svc._row_to_dict(obj, ""), message="更新成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.delete("/qc-third-party-items/{item_id}")
|
||||
@@ -330,11 +330,11 @@ async def delete_qc_third_party_item(
|
||||
tpi_svc.soft_delete_item(db, item_id, tenant_no=tenant_no)
|
||||
return success_response(None, message="删除成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
# ---------- 实验室自检项目 ----------
|
||||
@@ -401,9 +401,9 @@ async def list_qc_lab_test_items(
|
||||
)
|
||||
return success_response(_page_payload(items, total, page, pageSize))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-lab-test-items/active")
|
||||
@@ -415,9 +415,9 @@ async def list_qc_lab_test_items_active(
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
return success_response(lab_svc.list_active_lab_items(db, tenant_no, user_info=user))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-lab-test-items")
|
||||
@@ -441,11 +441,11 @@ async def create_qc_lab_test_item(
|
||||
)
|
||||
return success_response(lab_svc._row_to_dict(obj), message="创建成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.put("/qc-lab-test-items/{item_id}")
|
||||
@@ -471,11 +471,11 @@ async def update_qc_lab_test_item(
|
||||
)
|
||||
return success_response(lab_svc._row_to_dict(obj), message="更新成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.delete("/qc-lab-test-items/{item_id}")
|
||||
@@ -489,11 +489,11 @@ async def delete_qc_lab_test_item(
|
||||
lab_svc.soft_delete_lab_item(db, item_id, tenant_no=tenant_no)
|
||||
return success_response(None, message="删除成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
# ---------- 检测项目参数模板 ----------
|
||||
@@ -510,9 +510,9 @@ async def list_item_params(
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
return success_response(param_svc.list_params_by_item(db, itemSource, itemId, tenant_no, user_info=user))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.put("/qc-item-params")
|
||||
@@ -530,9 +530,9 @@ async def save_item_params(
|
||||
message="保存成功",
|
||||
)
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
# ---------- 质检工单 ----------
|
||||
@@ -569,9 +569,9 @@ async def list_qc_work_orders(
|
||||
)
|
||||
return success_response(_page_payload(items, total, page, pageSize))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-work-orders/{work_order_id}")
|
||||
@@ -585,11 +585,11 @@ async def get_qc_work_order_detail(
|
||||
data = wo_svc.get_work_order_detail(db, work_order_id, tenant_no)
|
||||
return success_response(data)
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-work-orders/{work_order_id}/configure")
|
||||
@@ -613,11 +613,11 @@ async def configure_qc_work_order(
|
||||
)
|
||||
return success_response(wo_svc._wo_to_dict(obj), message="配置成功")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
# ---------- 质检任务 ----------
|
||||
@@ -657,9 +657,9 @@ async def list_qc_tasks(
|
||||
)
|
||||
return success_response(_page_payload(items, total, page, pageSize))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-tasks/{task_id}")
|
||||
@@ -673,11 +673,11 @@ async def get_qc_task_detail(
|
||||
data = task_svc.get_task_detail(db, task_id, tenant_no)
|
||||
return success_response(data)
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-tasks/{task_id}/start")
|
||||
@@ -691,11 +691,11 @@ async def start_qc_task(
|
||||
obj = task_svc.start_task(db, task_id, tenant_no=tenant_no, user_id=_get_current_user_id(user))
|
||||
return success_response(task_svc._task_to_dict(obj), message="已开始")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-tasks/{task_id}/complete")
|
||||
@@ -711,11 +711,11 @@ async def complete_qc_task(
|
||||
)
|
||||
return success_response(task_svc._task_to_dict(obj), message="已完成")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-tasks/{task_id}/results")
|
||||
@@ -728,9 +728,9 @@ async def get_task_results(
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
return success_response(result_svc.list_results_by_task(db, task_id, tenant_no, user_info=user))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-tasks/{task_id}/material-usages")
|
||||
@@ -743,14 +743,14 @@ async def get_task_material_usages(
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
t = task_svc.get_task(db, task_id, tenant_no=tenant_no)
|
||||
if not t:
|
||||
return error_response("任务不存在")
|
||||
return error_response(404, "任务不存在")
|
||||
return success_response(
|
||||
mu_svc.list_usages_by_task(db, task_id, tenant_no, user_info=user)
|
||||
)
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-tasks/{task_id}/complete-with-result")
|
||||
@@ -765,7 +765,7 @@ async def complete_task_with_result(
|
||||
user_id = _get_current_user_id(user)
|
||||
t = task_svc.get_task(db, task_id, tenant_no=tenant_no)
|
||||
if not t:
|
||||
return error_response("任务不存在")
|
||||
return error_response(404, "任务不存在")
|
||||
was_done = (t.task_status or "").strip() == "ywc"
|
||||
if body.results:
|
||||
result_svc.save_results_for_task(
|
||||
@@ -773,7 +773,7 @@ async def complete_task_with_result(
|
||||
)
|
||||
concl = (body.conclusion or "").strip()
|
||||
if concl not in ("tg", "btg"):
|
||||
return error_response("请选择检测结论(通过/不通过)")
|
||||
return error_response(400, "请选择检测结论(通过/不通过)")
|
||||
if body.third_party_attachments is not None:
|
||||
task_svc.update_task_attachments(
|
||||
db, task_id, attachments=body.third_party_attachments,
|
||||
@@ -801,16 +801,16 @@ async def complete_task_with_result(
|
||||
db.rollback()
|
||||
detail = e.detail
|
||||
msg = detail if isinstance(detail, str) else str(detail)
|
||||
return error_response(msg, code=e.status_code)
|
||||
return error_response(e.status_code, msg)
|
||||
except PermissionError as e:
|
||||
db.rollback()
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
db.rollback()
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.put("/qc-tasks/{task_id}/attachments")
|
||||
@@ -831,11 +831,11 @@ async def update_qc_task_attachments(
|
||||
)
|
||||
return success_response(task_svc._task_to_dict(obj), message="已保存")
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
# ---------- 质检物料库 ----------
|
||||
@@ -926,9 +926,9 @@ async def list_qc_materials(
|
||||
)
|
||||
return success_response(_page_payload(items, total, page, pageSize))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/qc-materials/options")
|
||||
@@ -940,7 +940,7 @@ async def qc_material_options(
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
return success_response(mat_svc.options_list(db, tenant_no=tenant_no))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-materials")
|
||||
@@ -968,9 +968,9 @@ async def create_qc_material(
|
||||
)
|
||||
return success_response(mat_svc._row_to_dict(obj), message="创建成功")
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.put("/qc-materials/{material_id}")
|
||||
@@ -997,9 +997,9 @@ async def update_qc_material(
|
||||
)
|
||||
return success_response(mat_svc._row_to_dict(obj), message="更新成功")
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.delete("/qc-materials/{material_id}")
|
||||
@@ -1014,9 +1014,9 @@ async def delete_qc_material(
|
||||
mat_svc.soft_delete_material(db, material_id, tenant_no=tenant_no)
|
||||
return success_response(None, message="删除成功")
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-materials/batch-stock-in")
|
||||
@@ -1032,7 +1032,7 @@ async def batch_stock_in_qc_material(
|
||||
if body.stock_in_time:
|
||||
rt = parse_datetime(body.stock_in_time)
|
||||
if not rt:
|
||||
return error_response("入库时间格式无效")
|
||||
return error_response(400, "入库时间格式无效")
|
||||
operate_time = rt
|
||||
items = [
|
||||
{"material_id": x.material_id, "qty": x.qty, "remark": x.remark}
|
||||
@@ -1048,9 +1048,9 @@ async def batch_stock_in_qc_material(
|
||||
)
|
||||
return success_response({"count": count}, message=f"批量入库成功,共 {count} 项")
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-materials/batch-stock-out")
|
||||
@@ -1066,7 +1066,7 @@ async def batch_stock_out_qc_material(
|
||||
if body.stock_out_time:
|
||||
rt = parse_datetime(body.stock_out_time)
|
||||
if not rt:
|
||||
return error_response("出库时间格式无效")
|
||||
return error_response(400, "出库时间格式无效")
|
||||
operate_time = rt
|
||||
items = [
|
||||
{"material_id": x.material_id, "qty": x.qty, "remark": x.remark}
|
||||
@@ -1084,9 +1084,9 @@ async def batch_stock_out_qc_material(
|
||||
)
|
||||
return success_response({"count": count}, message=f"批量出库成功,共 {count} 项")
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-materials/{material_id}/stock-in")
|
||||
@@ -1103,7 +1103,7 @@ async def stock_in_qc_material(
|
||||
if body.stock_in_time:
|
||||
rt = parse_datetime(body.stock_in_time)
|
||||
if not rt:
|
||||
return error_response("入库时间格式无效")
|
||||
return error_response(400, "入库时间格式无效")
|
||||
operate_time = rt
|
||||
from decimal import Decimal
|
||||
|
||||
@@ -1118,9 +1118,9 @@ async def stock_in_qc_material(
|
||||
)
|
||||
return success_response(mat_svc._row_to_dict(obj), message="入库成功")
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/qc-materials/{material_id}/stock-out")
|
||||
@@ -1137,7 +1137,7 @@ async def stock_out_qc_material(
|
||||
if body.stock_out_time:
|
||||
rt = parse_datetime(body.stock_out_time)
|
||||
if not rt:
|
||||
return error_response("出库时间格式无效")
|
||||
return error_response(400, "出库时间格式无效")
|
||||
operate_time = rt
|
||||
from decimal import Decimal
|
||||
|
||||
@@ -1154,9 +1154,9 @@ async def stock_out_qc_material(
|
||||
)
|
||||
return success_response(mat_svc._row_to_dict(obj), message="出库成功")
|
||||
except ValueError as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
# ---------- 物料变动记录 ----------
|
||||
@@ -1183,6 +1183,6 @@ async def list_qc_material_usages(
|
||||
)
|
||||
return success_response(_page_payload(items, total, page, pageSize))
|
||||
except PermissionError as e:
|
||||
return error_response(str(e), code=403)
|
||||
return error_response(403, str(e))
|
||||
except Exception as e:
|
||||
return error_response(str(e))
|
||||
return error_response(400, str(e))
|
||||
Reference in new issue
Block a user