fix(api): expose real 500 error stack trace and fix missing func import
This commit is contained in:
@ -313,7 +313,9 @@ def delete_buy(id):
|
|||||||
# 捕获业务拦截的报错,返回友好的 msg
|
# 捕获业务拦截的报错,返回友好的 msg
|
||||||
return jsonify({"code": 400, "msg": str(ve)})
|
return jsonify({"code": 400, "msg": str(ve)})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return jsonify({"code": 500, "msg": "服务器内部错误,请联系系统管理员"}), 500
|
import traceback
|
||||||
|
traceback.print_exc() # 在控制台打印真实错误堆栈
|
||||||
|
return jsonify({"code": 500, "msg": f"服务器内部错误详情: {str(e)}"}), 500
|
||||||
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
|
|||||||
@ -185,9 +185,12 @@ def delete(id):
|
|||||||
try:
|
try:
|
||||||
material_name = ProductInboundService.delete_inbound(id)
|
material_name = ProductInboundService.delete_inbound(id)
|
||||||
return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name})
|
return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name})
|
||||||
|
except ValueError as ve:
|
||||||
|
return jsonify({"code": 400, "msg": str(ve)})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
import traceback
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return jsonify({"code": 500, "msg": str(e)}), 500
|
return jsonify({"code": 500, "msg": f"服务器内部错误详情: {str(e)}"}), 500
|
||||||
|
|
||||||
@inbound_product_bp.route('/<int:id>/history', methods=['GET'])
|
@inbound_product_bp.route('/<int:id>/history', methods=['GET'])
|
||||||
@permission_required('inbound_product')
|
@permission_required('inbound_product')
|
||||||
|
|||||||
@ -180,9 +180,12 @@ def delete_semi(id):
|
|||||||
try:
|
try:
|
||||||
material_name = SemiInboundService.delete_inbound(id)
|
material_name = SemiInboundService.delete_inbound(id)
|
||||||
return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name})
|
return jsonify({"code": 200, "msg": "删除成功", "material_name": material_name})
|
||||||
|
except ValueError as ve:
|
||||||
|
return jsonify({"code": 400, "msg": str(ve)})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
import traceback
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
return jsonify({"code": 500, "msg": str(e)}), 500
|
return jsonify({"code": 500, "msg": f"服务器内部错误详情: {str(e)}"}), 500
|
||||||
|
|
||||||
@inbound_semi_bp.route('/<int:id>/history', methods=['GET'])
|
@inbound_semi_bp.route('/<int:id>/history', methods=['GET'])
|
||||||
@permission_required('inbound_semi')
|
@permission_required('inbound_semi')
|
||||||
|
|||||||
@ -4,6 +4,7 @@ from app.models.base import MaterialBase
|
|||||||
from app.models.outbound import TransOutbound
|
from app.models.outbound import TransOutbound
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from sqlalchemy import or_, func, text, and_
|
from sqlalchemy import or_, func, text, and_
|
||||||
|
from sqlalchemy.exc import IntegrityError
|
||||||
import traceback
|
import traceback
|
||||||
import json
|
import json
|
||||||
|
|
||||||
@ -258,6 +259,9 @@ class ProductInboundService:
|
|||||||
db.session.commit()
|
db.session.commit()
|
||||||
return material_name
|
return material_name
|
||||||
return None
|
return None
|
||||||
|
except IntegrityError:
|
||||||
|
db.session.rollback()
|
||||||
|
raise ValueError("该入库单已被出库、盘点或借还等业务关联,为保证账目完整,禁止删除!")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
raise e
|
raise e
|
||||||
|
|||||||
@ -4,6 +4,7 @@ from app.models.base import MaterialBase
|
|||||||
from app.models.outbound import TransOutbound
|
from app.models.outbound import TransOutbound
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from sqlalchemy import or_, func, text, and_
|
from sqlalchemy import or_, func, text, and_
|
||||||
|
from sqlalchemy.exc import IntegrityError
|
||||||
import traceback
|
import traceback
|
||||||
import json
|
import json
|
||||||
|
|
||||||
@ -346,6 +347,9 @@ class SemiInboundService:
|
|||||||
db.session.delete(stock)
|
db.session.delete(stock)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
return material_name
|
return material_name
|
||||||
|
except IntegrityError:
|
||||||
|
db.session.rollback()
|
||||||
|
raise ValueError("该入库单已被出库、盘点或借还等业务关联,为保证账目完整,禁止删除!")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
db.session.rollback()
|
db.session.rollback()
|
||||||
raise e
|
raise e
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
from app.models.system import SysMenu, SysElement, SysRolePermission
|
from app.models.system import SysMenu, SysElement, SysRolePermission
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
|
from sqlalchemy import func
|
||||||
|
|
||||||
|
|
||||||
class PermissionService:
|
class PermissionService:
|
||||||
|
|||||||
Reference in New Issue
Block a user