| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- """Pydantic schemas - 工作流"""
- from typing import Any, Dict, List, Optional
- from pydantic import BaseModel, Field
- class ProcessDefCreate(BaseModel):
- processCode: str = Field(..., description="流程编码")
- processName: str = Field(..., description="流程名称")
- status: Optional[str] = Field("1", description="1启用 0停用")
- orderNum: Optional[int] = Field(None, description="排序号")
- remark: Optional[str] = Field(None, description="备注")
- class ProcessDefUpdate(BaseModel):
- processCode: Optional[str] = Field(None, description="流程编码")
- processName: Optional[str] = Field(None, description="流程名称")
- status: Optional[str] = Field(None, description="1启用 0停用")
- orderNum: Optional[int] = Field(None, description="排序号")
- remark: Optional[str] = Field(None, description="备注")
- class ProcessDefResponse(BaseModel):
- id: str
- processCode: str
- processName: str
- status: str
- latestVersion: Optional[int] = None
- tenantNo: Optional[str] = None
- orderNum: Optional[int] = None
- remark: Optional[str] = None
- createTime: Optional[str] = None
- updateTime: Optional[str] = None
- class Config:
- from_attributes = True
- class NodeData(BaseModel):
- nodeKey: str = Field(..., description="节点唯一键")
- nodeType: str = Field(..., description="start/end/approval/condition 等")
- nodeName: Optional[str] = Field(None, description="节点名称")
- configJson: Optional[str] = Field(None, description="审批人/SQL/会签策略等配置")
- class TransitionData(BaseModel):
- fromNodeKey: str = Field(..., description="起始节点key")
- toNodeKey: str = Field(..., description="目标节点key")
- conditionExpr: Optional[str] = Field(None, description="条件表达式或分支说明")
- class PublishVersionRequest(BaseModel):
- graphJson: str = Field(..., description="节点与连线等配置JSON")
- nodes: List[NodeData] = Field(..., description="节点列表")
- transitions: List[TransitionData] = Field(default_factory=list, description="连线列表")
- remark: Optional[str] = Field(None, description="备注")
- class VersionResponse(BaseModel):
- id: str
- versionNo: int
- isLatest: Optional[str] = None
- remark: Optional[str] = None
- createTime: Optional[str] = None
- updateTime: Optional[str] = None
- class Config:
- from_attributes = True
- class StartInstanceRequest(BaseModel):
- processCode: str = Field(..., description="流程编码")
- businessType: Optional[str] = Field(None, description="业务类型")
- businessId: Optional[str] = Field(None, description="业务主键")
- variables: Optional[Dict[str, Any]] = Field(default_factory=dict, description="流程变量")
- callbackUrl: Optional[str] = Field(None, description="业务回调地址")
- class ApproveRequest(BaseModel):
- commentText: Optional[str] = Field(None, description="审批意见")
- class TaskResponse(BaseModel):
- id: str
- instanceId: str
- nodeKey: Optional[str] = None
- assigneeUserId: Optional[str] = None
- status: Optional[str] = None
- commentText: Optional[str] = None
- createTime: Optional[str] = None
- updateTime: Optional[str] = None
- processName: Optional[str] = None
- businessType: Optional[str] = None
- businessId: Optional[str] = None
- starterUserId: Optional[str] = None
- instanceStatus: Optional[str] = None
- instanceCreateTime: Optional[str] = None
- class Config:
- from_attributes = True
- class InstanceResponse(BaseModel):
- id: str
- processVersionId: str
- businessType: Optional[str] = None
- businessId: Optional[str] = None
- starterUserId: Optional[str] = None
- status: Optional[str] = None
- createTime: Optional[str] = None
- updateTime: Optional[str] = None
- tasks: List[Dict[str, Any]] = Field(default_factory=list)
- class Config:
- from_attributes = True
|