db-api
This commit is contained in:
310
busisness/models.py
Normal file
310
busisness/models.py
Normal file
@ -0,0 +1,310 @@
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional, Dict, Any, List
|
||||
|
||||
|
||||
@dataclass
|
||||
class LoginRequest:
|
||||
"""登录请求模型"""
|
||||
Program: int
|
||||
SC: str
|
||||
loginName: str
|
||||
password: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class LoginResponse:
|
||||
"""登录响应模型"""
|
||||
Code: int
|
||||
Message: Optional[str]
|
||||
Data: Optional[Dict[str, Any]]
|
||||
|
||||
@property
|
||||
def app_id(self) -> Optional[str]:
|
||||
"""获取AppID"""
|
||||
return self.Data.get('AppID') if self.Data else None
|
||||
|
||||
@property
|
||||
def expire_time(self) -> Optional[str]:
|
||||
"""获取过期时间"""
|
||||
return self.Data.get('ExpireTime') if self.Data else None
|
||||
|
||||
@property
|
||||
def sign_token(self) -> Optional[str]:
|
||||
"""获取SignToken"""
|
||||
return self.Data.get('SignToken') if self.Data else None
|
||||
|
||||
@property
|
||||
def zr_jwt(self) -> Optional[str]:
|
||||
"""获取ZrJwt"""
|
||||
return self.Data.get('ZrJwt') if self.Data else None
|
||||
|
||||
|
||||
@dataclass
|
||||
class ArtifactInfo:
|
||||
"""管片信息模型"""
|
||||
#管片编号
|
||||
ArtifactID: str
|
||||
#管片ID
|
||||
ArtifactActionID: int
|
||||
#管片副标识1
|
||||
ArtifactIDVice1: str
|
||||
#产品环号
|
||||
ProduceRingNumber: int
|
||||
#模具编号
|
||||
MouldCode: str
|
||||
#骨架ID
|
||||
SkeletonID: str
|
||||
#环类型编码
|
||||
RingTypeCode: str
|
||||
#尺寸规格
|
||||
SizeSpecification: str
|
||||
#埋深
|
||||
BuriedDepth: str
|
||||
#块号
|
||||
BlockNumber: str
|
||||
#环号标记
|
||||
HoleRingMarking: str
|
||||
#出管标记
|
||||
GroutingPipeMarking: str
|
||||
#聚丙烯纤维标记
|
||||
PolypropyleneFiberMarking: str
|
||||
# 浇筑方量
|
||||
BetonVolume: float
|
||||
# 任务单号(混凝土)
|
||||
BetonTaskID: str
|
||||
|
||||
@dataclass
|
||||
class ArtifactInfoModel:
|
||||
def __init__(self):
|
||||
pass
|
||||
"""管片表模型"""
|
||||
ID: int
|
||||
#管片编号
|
||||
ArtifactID: str
|
||||
#管片ID
|
||||
ArtifactActionID: int
|
||||
#管片副标识1
|
||||
ArtifactIDVice1: str
|
||||
#产品环号
|
||||
ProduceRingNumber: int
|
||||
#模具编号
|
||||
MouldCode: str
|
||||
#骨架ID
|
||||
SkeletonID: str
|
||||
#环类型编码
|
||||
RingTypeCode: str
|
||||
#尺寸规格
|
||||
SizeSpecification: str
|
||||
#埋深
|
||||
BuriedDepth: str
|
||||
#块号
|
||||
BlockNumber: str
|
||||
#环号标记
|
||||
HoleRingMarking: str
|
||||
#出管标记
|
||||
GroutingPipeMarking: str
|
||||
#聚丙烯纤维标记
|
||||
PolypropyleneFiberMarking: str
|
||||
# 浇筑方量
|
||||
BetonVolume: float
|
||||
# 任务单号
|
||||
BetonTaskID: str
|
||||
#FK_PDID
|
||||
FK_PDID: int=0
|
||||
#状态
|
||||
Status: int=1
|
||||
#开始时间
|
||||
BeginTime: str=""
|
||||
#结束时间
|
||||
EndTime: str=""
|
||||
#PStatus
|
||||
PStatus: int=0
|
||||
#Source
|
||||
Source: int=1
|
||||
#FBetonVolume
|
||||
FBetonVolume: float=0.0
|
||||
#OptTime
|
||||
OptTime: str=""
|
||||
|
||||
|
||||
@dataclass
|
||||
class ArtifactResponse:
|
||||
"""管片信息响应模型"""
|
||||
Code: int
|
||||
Message: Optional[str]
|
||||
Data: Optional[ArtifactInfo]
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: Dict[str, Any]) -> 'ArtifactResponse':
|
||||
"""
|
||||
从字典创建响应对象
|
||||
|
||||
Args:
|
||||
data: 响应数据字典
|
||||
|
||||
Returns:
|
||||
ArtifactResponse: 响应对象
|
||||
"""
|
||||
response_data = data.get('Data')
|
||||
artifact_info = None
|
||||
if response_data:
|
||||
artifact_info = ArtifactInfo(**response_data)
|
||||
|
||||
return cls(
|
||||
Code=data.get('Code'),
|
||||
Message=data.get('Message'),
|
||||
Data=artifact_info
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class TaskInfo:
|
||||
"""任务单信息模型"""
|
||||
#任务单ID
|
||||
TaskID: str
|
||||
#任务单状态
|
||||
TaskStatus: int
|
||||
#任务单状态文本
|
||||
TaskStatusText: str
|
||||
#计划生产数量
|
||||
TaskCount: int
|
||||
#已生产数量
|
||||
AlreadyProduceCount: int
|
||||
#生产进度
|
||||
Progress: str
|
||||
#工程名称
|
||||
ProjectName: str
|
||||
#计划生产日期
|
||||
TaskPlanDateText: str
|
||||
#强度等级
|
||||
BetonGrade: str
|
||||
#设计配合比编号
|
||||
MixID: str
|
||||
#生产配合比编号
|
||||
ProduceMixID: str
|
||||
#计划方量
|
||||
PlannedVolume: float
|
||||
#已供方量
|
||||
ProducedVolume: float
|
||||
#出洞环标记
|
||||
HoleRingMarking: str
|
||||
#注浆管标记
|
||||
GroutingPipeMarking: str
|
||||
#聚丙烯纤维标记
|
||||
PolypropyleneFiberMarking: str
|
||||
#生产日期
|
||||
TaskDateText: str
|
||||
#盘数
|
||||
PlateCount: int
|
||||
#任务单下发状态
|
||||
SendStatus: int
|
||||
#任务单下发状态
|
||||
SendStatusText: str
|
||||
#配合比下发状态
|
||||
MixSendStatus: int
|
||||
#配合比下发状态
|
||||
MixSendStatusText: str
|
||||
|
||||
|
||||
@dataclass
|
||||
class TaskResponse:
|
||||
"""任务单响应模型"""
|
||||
Code: int
|
||||
Message: Optional[str]
|
||||
Data: Optional[TaskInfo]
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: Dict[str, Any]) -> 'TaskResponse':
|
||||
"""
|
||||
从字典创建响应对象
|
||||
|
||||
Args:
|
||||
data: 响应数据字典
|
||||
|
||||
Returns:
|
||||
TaskResponse: 响应对象
|
||||
"""
|
||||
response_data = data.get('Data')
|
||||
task_info = None
|
||||
if response_data:
|
||||
task_info = TaskInfo(**response_data)
|
||||
|
||||
return cls(
|
||||
Code=data.get('Code'),
|
||||
Message=data.get('Message'),
|
||||
Data=task_info
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class NotPourArtifactResponse:
|
||||
"""未浇筑管片列表响应模型"""
|
||||
Code: int
|
||||
Message: Optional[str]
|
||||
Data: Optional[List[ArtifactInfo]]
|
||||
|
||||
@classmethod
|
||||
def from_dict(cls, data: Dict[str, Any]) -> 'NotPourArtifactResponse':
|
||||
"""
|
||||
从字典创建响应对象
|
||||
|
||||
Args:
|
||||
data: 响应数据字典
|
||||
|
||||
Returns:
|
||||
NotPourArtifactResponse: 响应对象
|
||||
"""
|
||||
response_data = data.get('Data')
|
||||
artifacts = None
|
||||
if response_data:
|
||||
artifacts = [ArtifactInfo(**item) for item in response_data]
|
||||
|
||||
return cls(
|
||||
Code=data.get('Code'),
|
||||
Message=data.get('Message'),
|
||||
Data=artifacts
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class PDRecordModel:
|
||||
def __init__(self):
|
||||
pass
|
||||
"""管片表模型"""
|
||||
ID: int
|
||||
#派单编号
|
||||
PDCode: str
|
||||
#任务单号
|
||||
TaskID: int
|
||||
#工程名称
|
||||
ProjectName: str
|
||||
#生产配合比编号
|
||||
ProduceMixID: str
|
||||
#车架号
|
||||
VinNo: str
|
||||
#派单方量
|
||||
BetonVolume: float
|
||||
#模具编号
|
||||
MouldCode: str
|
||||
#骨架编号
|
||||
SkeletonID: str
|
||||
#环类型编码
|
||||
RingTypeCode: str
|
||||
#尺寸规格
|
||||
SizeSpecification: str
|
||||
#埋深
|
||||
BuriedDepth: str
|
||||
#块号
|
||||
BlockNumber: str
|
||||
# 派单模式(1自动派单 2手动派单0未知 )
|
||||
Mode: int=0
|
||||
# 派单状态(1计划中2已下发0未知),默认1
|
||||
Status: int=1
|
||||
#搅拌生产状态()
|
||||
GStatus: int=0
|
||||
#数据来源(1 api 2离线)
|
||||
Source: int=1
|
||||
#创建时间
|
||||
CreateTime: str=""
|
||||
#派单时间(下发)
|
||||
OptTime: str=""
|
||||
Reference in New Issue
Block a user