diff --git a/backend/app/schemas/pl/vehicle_recharge.py b/backend/app/schemas/pl/vehicle_recharge.py index ccc73a631..62fc8f29a 100644 --- a/backend/app/schemas/pl/vehicle_recharge.py +++ b/backend/app/schemas/pl/vehicle_recharge.py @@ -83,6 +83,10 @@ class VehicleRechargeApplyRead(BaseModel): status: str wf_id: Optional[str] = Field(default=None, alias="wfId") current_node: Optional[str] = Field(default=None, alias="currentNode") + current_node_name: Optional[str] = Field(default=None, alias="currentNodeName") + current_node_action_type: Optional[str] = Field( + default=None, alias="currentNodeActionType" + ) approval_round: int = Field(default=0, alias="approvalRound") approvals: List[VehicleRechargeApprovalRead] = Field(default_factory=list) record: Optional[VehicleRechargeRecordRead] = None diff --git a/backend/app/services/pl_vehicle_recharge_service.py b/backend/app/services/pl_vehicle_recharge_service.py index ad8e1e08e..c41c74bfc 100644 --- a/backend/app/services/pl_vehicle_recharge_service.py +++ b/backend/app/services/pl_vehicle_recharge_service.py @@ -220,6 +220,20 @@ def apply_to_read( ) -> VehicleRechargeApplyRead: approvals: list[VehicleRechargeApprovalRead] = [] record_read: Optional[VehicleRechargeRecordRead] = None + current_node_name: Optional[str] = None + current_node_action_type: Optional[str] = None + if row.current_node: + node = ( + db.query(BxWorkflowNode) + .filter( + BxWorkflowNode.id == row.current_node, + BxWorkflowNode.del_flag == 0, + ) + .first() + ) + if node: + current_node_name = node.node_name + current_node_action_type = (node.action_type or "approve").strip() or "approve" if include_detail: approvals = _list_approvals(db, row.tenant_no, row.id) record_row = _get_linked_record(db, row.tenant_no, row.id) @@ -238,6 +252,8 @@ def apply_to_read( status=row.status, wfId=row.wf_id, currentNode=row.current_node, + currentNodeName=current_node_name, + currentNodeActionType=current_node_action_type, approvalRound=row.approval_round or 0, approvals=approvals, record=record_read,