|
@@ -54,10 +54,7 @@ from app.services.pl_cert_required_service import (
|
|
|
validate_personnel_required_certs,
|
|
validate_personnel_required_certs,
|
|
|
validate_vehicle_save_certs,
|
|
validate_vehicle_save_certs,
|
|
|
)
|
|
)
|
|
|
-from app.services.pl_carrier_service import (
|
|
|
|
|
- carrier_eligible_for_transport,
|
|
|
|
|
- carrier_qualification_complete,
|
|
|
|
|
-)
|
|
|
|
|
|
|
+from app.services.pl_carrier_service import carrier_eligible_for_transport
|
|
|
from app.services.pl_personnel_service import (
|
|
from app.services.pl_personnel_service import (
|
|
|
load_vehicle_personnel_rows,
|
|
load_vehicle_personnel_rows,
|
|
|
load_vehicle_personnel_summaries,
|
|
load_vehicle_personnel_summaries,
|
|
@@ -169,23 +166,10 @@ def update_carrier(
|
|
|
carrier = _get_carrier(db, tenant_no, id, user)
|
|
carrier = _get_carrier(db, tenant_no, id, user)
|
|
|
|
|
|
|
|
payload_data = payload.model_dump(exclude_unset=True)
|
|
payload_data = payload.model_dump(exclude_unset=True)
|
|
|
- qual_keys = (
|
|
|
|
|
- "business_license_urls",
|
|
|
|
|
- "road_transport_license_urls",
|
|
|
|
|
- "transport_agreement_urls",
|
|
|
|
|
- "transport_agreement_expire_date",
|
|
|
|
|
- )
|
|
|
|
|
- qual_changed = any(key in payload_data for key in qual_keys)
|
|
|
|
|
|
|
|
|
|
for key, value in payload_data.items():
|
|
for key, value in payload_data.items():
|
|
|
setattr(carrier, key, value)
|
|
setattr(carrier, key, value)
|
|
|
|
|
|
|
|
- if qual_changed and carrier.audit_status == "approved":
|
|
|
|
|
- carrier.audit_status = "pending"
|
|
|
|
|
- carrier.audit_by = None
|
|
|
|
|
- carrier.audit_time = None
|
|
|
|
|
- carrier.audit_remark = None
|
|
|
|
|
-
|
|
|
|
|
carrier.update_by = user.id
|
|
carrier.update_by = user.id
|
|
|
db.commit()
|
|
db.commit()
|
|
|
db.refresh(carrier)
|
|
db.refresh(carrier)
|
|
@@ -212,22 +196,7 @@ def approve_carrier(
|
|
|
db: Session = Depends(get_db),
|
|
db: Session = Depends(get_db),
|
|
|
user: DbUserContext = Depends(get_db_current_user),
|
|
user: DbUserContext = Depends(get_db_current_user),
|
|
|
) -> CarrierRead:
|
|
) -> CarrierRead:
|
|
|
- tenant_no = get_tenant_no(db, user.to_tenant_user_dict())
|
|
|
|
|
- carrier = _get_carrier(db, tenant_no, id, user)
|
|
|
|
|
-
|
|
|
|
|
- if carrier.audit_status == "approved":
|
|
|
|
|
- raise HTTPException(status_code=400, detail="承运商已审核通过")
|
|
|
|
|
- if not carrier_qualification_complete(carrier):
|
|
|
|
|
- raise HTTPException(status_code=400, detail="承运商资质附件不完整,无法审核通过")
|
|
|
|
|
-
|
|
|
|
|
- carrier.audit_status = "approved"
|
|
|
|
|
- carrier.audit_by = user.id
|
|
|
|
|
- carrier.audit_time = datetime.now()
|
|
|
|
|
- carrier.audit_remark = None
|
|
|
|
|
- carrier.update_by = user.id
|
|
|
|
|
- db.commit()
|
|
|
|
|
- db.refresh(carrier)
|
|
|
|
|
- return carrier_to_read(carrier)
|
|
|
|
|
|
|
+ raise HTTPException(status_code=400, detail="承运商审核流程已停用")
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.post("/carrier/{id}/reject", response_model=CarrierRead)
|
|
@router.post("/carrier/{id}/reject", response_model=CarrierRead)
|
|
@@ -237,20 +206,7 @@ def reject_carrier(
|
|
|
db: Session = Depends(get_db),
|
|
db: Session = Depends(get_db),
|
|
|
user: DbUserContext = Depends(get_db_current_user),
|
|
user: DbUserContext = Depends(get_db_current_user),
|
|
|
) -> CarrierRead:
|
|
) -> CarrierRead:
|
|
|
- tenant_no = get_tenant_no(db, user.to_tenant_user_dict())
|
|
|
|
|
- carrier = _get_carrier(db, tenant_no, id, user)
|
|
|
|
|
-
|
|
|
|
|
- if carrier.audit_status == "approved":
|
|
|
|
|
- raise HTTPException(status_code=400, detail="承运商已审核通过,无法驳回")
|
|
|
|
|
-
|
|
|
|
|
- carrier.audit_status = "rejected"
|
|
|
|
|
- carrier.audit_by = user.id
|
|
|
|
|
- carrier.audit_time = datetime.now()
|
|
|
|
|
- carrier.audit_remark = (payload.remark or "").strip() or None
|
|
|
|
|
- carrier.update_by = user.id
|
|
|
|
|
- db.commit()
|
|
|
|
|
- db.refresh(carrier)
|
|
|
|
|
- return carrier_to_read(carrier)
|
|
|
|
|
|
|
+ raise HTTPException(status_code=400, detail="承运商审核流程已停用")
|
|
|
|
|
|
|
|
|
|
|
|
|
def _get_carrier(db: Session, tenant_no: str, carrier_id: str, user: DbUserContext) -> PlCarrier:
|
|
def _get_carrier(db: Session, tenant_no: str, carrier_id: str, user: DbUserContext) -> PlCarrier:
|