|
@@ -3,77 +3,67 @@ import base64
|
|
|
|
|
|
|
|
|
class ExcelParseZgsDto:
|
|
|
- def __init__(self,
|
|
|
- zgs_id:int,
|
|
|
- zgs_name:str):
|
|
|
+ def __init__(self, zgs_id: int, zgs_name: str):
|
|
|
self.zgs_id = zgs_id
|
|
|
self.zgs_name = zgs_name
|
|
|
|
|
|
@classmethod
|
|
|
- def from_dto(cls,dto: TotalBudgetInfoDto):
|
|
|
- return cls(
|
|
|
- zgs_id=dto.budget_id,
|
|
|
- zgs_name=dto.budget_code
|
|
|
- )
|
|
|
+ def from_dto(cls, dto: TotalBudgetInfoDto):
|
|
|
+ return cls(zgs_id=dto.budget_id, zgs_name=dto.budget_code)
|
|
|
+
|
|
|
def to_dict(self):
|
|
|
- return {
|
|
|
- "zgs_id":self.zgs_id,
|
|
|
- "zgs_name":self.zgs_name
|
|
|
- }
|
|
|
+ return {"zgs_id": self.zgs_id, "zgs_name": self.zgs_name}
|
|
|
+
|
|
|
|
|
|
class ExcelParseItemDto:
|
|
|
- def __init__(self,
|
|
|
- item_id:int,
|
|
|
- item_code:str,
|
|
|
- item_name:str
|
|
|
- ):
|
|
|
+ def __init__(self, item_id: int, item_code: str, item_name: str):
|
|
|
self.item_id = item_id
|
|
|
self.item_code = item_code
|
|
|
self.item_name = item_name
|
|
|
|
|
|
@classmethod
|
|
|
- def from_dto(cls,dto:ChapterDto):
|
|
|
+ def from_dto(cls, dto: ChapterDto):
|
|
|
return cls(
|
|
|
- item_id=dto.item_id,
|
|
|
- item_code=dto.item_code,
|
|
|
- item_name=dto.project_name
|
|
|
+ item_id=dto.item_id, item_code=dto.item_code, item_name=dto.project_name
|
|
|
)
|
|
|
+
|
|
|
def to_dict(self):
|
|
|
return {
|
|
|
- "item_id":self.item_id,
|
|
|
- "item_code":self.item_code,
|
|
|
- "item_name":self.item_name
|
|
|
+ "item_id": self.item_id,
|
|
|
+ "item_code": self.item_code,
|
|
|
+ "item_name": self.item_name,
|
|
|
}
|
|
|
|
|
|
+
|
|
|
class ExcelParseFileDto:
|
|
|
- def __init__(self,
|
|
|
- file_id:str,
|
|
|
- content:str
|
|
|
- ):
|
|
|
+ def __init__(self, file_id: str, content: str):
|
|
|
self.file_id = file_id
|
|
|
# 从file_id路径中获取文件类型
|
|
|
- self.file_type = file_id.split('.')[-1]
|
|
|
+ self.file_type = file_id.split(".")[-1]
|
|
|
self.content = content
|
|
|
|
|
|
def to_dict(self):
|
|
|
return {
|
|
|
"file_id": base64.b64encode(self.file_id.encode()).decode(),
|
|
|
"file_type": self.file_type,
|
|
|
- "content": self.content
|
|
|
+ "content": self.content,
|
|
|
}
|
|
|
|
|
|
+
|
|
|
class ExcelParseDto:
|
|
|
- def __init__(self,
|
|
|
- task_id:int,
|
|
|
- version:str,
|
|
|
- project_id:str,
|
|
|
- project_name:str,
|
|
|
- project_stage:str,
|
|
|
- selected_zgs_id:int,
|
|
|
- zgs_list:list[ExcelParseZgsDto],
|
|
|
- hierarchy:list[ExcelParseItemDto],
|
|
|
- components:list[ExcelParseItemDto],
|
|
|
- files:list[ExcelParseFileDto]):
|
|
|
+ def __init__(
|
|
|
+ self,
|
|
|
+ task_id: int,
|
|
|
+ version: str,
|
|
|
+ project_id: str,
|
|
|
+ project_name: str,
|
|
|
+ project_stage: str,
|
|
|
+ selected_zgs_id: int,
|
|
|
+ zgs_list: list[ExcelParseZgsDto],
|
|
|
+ hierarchy: list[ExcelParseItemDto],
|
|
|
+ components: list[ExcelParseItemDto],
|
|
|
+ files: list[ExcelParseFileDto],
|
|
|
+ ):
|
|
|
self.task_id = task_id
|
|
|
self.version = version
|
|
|
self.project_id = project_id
|
|
@@ -87,18 +77,19 @@ class ExcelParseDto:
|
|
|
|
|
|
def to_dict(self):
|
|
|
return {
|
|
|
- "task_id":self.task_id,
|
|
|
- "version":self.version,
|
|
|
- "project_id":self.project_id,
|
|
|
- "project_name":self.project_name,
|
|
|
- "project_stage":self.project_stage,
|
|
|
- "selected_zgs_id":self.selected_zgs_id,
|
|
|
- "files":[file.to_dict() for file in self.files],
|
|
|
- "zgs_list":[zgs.to_dict() for zgs in self.zgs_list],
|
|
|
- "hierarchy":[item.to_dict() for item in self.hierarchy],
|
|
|
- "components":[item.to_dict() for item in self.components],
|
|
|
+ "task_id": self.task_id,
|
|
|
+ "version": self.version,
|
|
|
+ "project_id": self.project_id,
|
|
|
+ "project_name": self.project_name,
|
|
|
+ "project_stage": self.project_stage,
|
|
|
+ "selected_zgs_id": self.selected_zgs_id,
|
|
|
+ "files": [file.to_dict() for file in self.files],
|
|
|
+ "zgs_list": [zgs.to_dict() for zgs in self.zgs_list],
|
|
|
+ "hierarchy": [item.to_dict() for item in self.hierarchy],
|
|
|
+ "components": [item.to_dict() for item in self.components],
|
|
|
}
|
|
|
|
|
|
+
|
|
|
class ExcelParseResultDataDto:
|
|
|
# {
|
|
|
# "zgs_id": 总概算id, // int
|
|
@@ -116,22 +107,23 @@ class ExcelParseResultDataDto:
|
|
|
# "ex_unit": excel中给出的单位,
|
|
|
# "ex_amount": excel中给出的数量, // number
|
|
|
# }
|
|
|
- def __init__(self,
|
|
|
- zgs_id:int, # 总概算id
|
|
|
- zgs_code:str, # 总概算编号
|
|
|
- item_id:int, # 条⽬序号
|
|
|
- item_code:str, # 条⽬编码
|
|
|
- entry_name:str, # ⼯程或费⽤项⽬名称,来⾃于定额表,
|
|
|
- dinge_code:str, # 定额编号,
|
|
|
- units:str, # 单位,
|
|
|
- amount:float, # 数量,
|
|
|
- target_id:int, # ⽤户数据库中条⽬的id,-1表示没有,
|
|
|
- ex_file_id:str, # excel⽂件id,
|
|
|
- ex_cell:str, # 数量单元格位置,例如 "C17",
|
|
|
- ex_row:str, # 该⾏内容,由逗号连接多个单元格得到,
|
|
|
- ex_unit:str, # excel中给出的单位,
|
|
|
- ex_amount:float # excel中给出的数量,
|
|
|
- ):
|
|
|
+ def __init__(
|
|
|
+ self,
|
|
|
+ zgs_id: int, # 总概算id
|
|
|
+ zgs_code: str, # 总概算编号
|
|
|
+ item_id: int, # 条⽬序号
|
|
|
+ item_code: str, # 条⽬编码
|
|
|
+ entry_name: str, # ⼯程或费⽤项⽬名称,来⾃于定额表,
|
|
|
+ dinge_code: str, # 定额编号,
|
|
|
+ units: str, # 单位,
|
|
|
+ amount: float, # 数量,
|
|
|
+ target_id: int, # ⽤户数据库中条⽬的id,-1表示没有,
|
|
|
+ ex_file_id: str, # excel⽂件id,
|
|
|
+ ex_cell: str, # 数量单元格位置,例如 "C17",
|
|
|
+ ex_row: str, # 该⾏内容,由逗号连接多个单元格得到,
|
|
|
+ ex_unit: str, # excel中给出的单位,
|
|
|
+ ex_amount: float, # excel中给出的数量,
|
|
|
+ ):
|
|
|
self.zgs_id = zgs_id
|
|
|
self.zgs_code = zgs_code
|
|
|
self.item_id = item_id
|
|
@@ -148,24 +140,29 @@ class ExcelParseResultDataDto:
|
|
|
self.ex_unit = ex_unit
|
|
|
self.ex_amount = ex_amount
|
|
|
|
|
|
-
|
|
|
@classmethod
|
|
|
def from_dict(cls, data: dict):
|
|
|
return cls(
|
|
|
- zgs_id=data.get('zgs_id', 0),
|
|
|
- zgs_code=data.get('zgs_code', ''),
|
|
|
- item_id=data.get('item_id', 0),
|
|
|
- item_code=data.get('item_code', ''),
|
|
|
- entry_name=data.get('entry_name', ''),
|
|
|
- dinge_code=data.get('dinge_code', ''),
|
|
|
- units=data.get('units', ''),
|
|
|
- amount=data.get('amount', 0.0),
|
|
|
- target_id=data.get('target_id', -1),
|
|
|
- ex_file_id= base64.b64decode(data.get('ex_file_id', '').encode('utf-8')).decode('utf-8') if data.get('ex_file_id', '') else '',
|
|
|
- ex_cell=data.get('ex_cell', ''),
|
|
|
- ex_row=data.get('ex_row', ''),
|
|
|
- ex_unit=data.get('ex_unit', ''),
|
|
|
- ex_amount=data.get('ex_amount', 0.0)
|
|
|
+ zgs_id=data.get("zgs_id", 0),
|
|
|
+ zgs_code=data.get("zgs_code", ""),
|
|
|
+ item_id=data.get("item_id", 0),
|
|
|
+ item_code=data.get("item_code", ""),
|
|
|
+ entry_name=data.get("entry_name", ""),
|
|
|
+ dinge_code=data.get("dinge_code", ""),
|
|
|
+ units=data.get("units", ""),
|
|
|
+ amount=data.get("amount", 0.0),
|
|
|
+ target_id=data.get("target_id", -1),
|
|
|
+ ex_file_id=(
|
|
|
+ base64.b64decode(data.get("ex_file_id", "").encode("utf-8")).decode(
|
|
|
+ "utf-8"
|
|
|
+ )
|
|
|
+ if data.get("ex_file_id", "")
|
|
|
+ else ""
|
|
|
+ ),
|
|
|
+ ex_cell=data.get("ex_cell", ""),
|
|
|
+ ex_row=data.get("ex_row", ""),
|
|
|
+ ex_unit=data.get("ex_unit", ""),
|
|
|
+ ex_amount=data.get("ex_amount", 0.0),
|
|
|
)
|
|
|
|
|
|
def to_dict(self):
|
|
@@ -176,38 +173,42 @@ class ExcelParseResultDataDto:
|
|
|
"item_code": self.item_code,
|
|
|
"entry_name": self.entry_name,
|
|
|
"dinge_code": self.dinge_code,
|
|
|
+ "target_id": self.target_id,
|
|
|
"units": self.units,
|
|
|
"amount": self.amount,
|
|
|
"ex_file": self.ex_file_id,
|
|
|
- "target_id": self.target_id,
|
|
|
# "ex_file_id": base64.b64encode(self.ex_file_id.encode('utf-8')).decode('utf-8') if self.ex_file_id else self.ex_file_id,
|
|
|
"ex_file_id": self.ex_file_id,
|
|
|
"ex_cell": self.ex_cell,
|
|
|
"ex_row": self.ex_row,
|
|
|
"ex_unit": self.ex_unit,
|
|
|
- "ex_amount": self.ex_amount
|
|
|
+ "ex_amount": self.ex_amount,
|
|
|
}
|
|
|
|
|
|
+
|
|
|
class ExcelParseResultDto:
|
|
|
- def __init__(self,
|
|
|
- task_id:int,
|
|
|
- result:int=-1,
|
|
|
- reason:str="",
|
|
|
- data:list[ExcelParseResultDataDto]=None,
|
|
|
+ def __init__(
|
|
|
+ self,
|
|
|
+ task_id: int,
|
|
|
+ result: int = -1,
|
|
|
+ reason: str = "",
|
|
|
+ data: list[ExcelParseResultDataDto] = None,
|
|
|
):
|
|
|
self.task_id = task_id
|
|
|
- self.result = result #-1-失败;0-运行中;1-成功
|
|
|
+ self.result = result # -1-失败;0-运行中;1-成功
|
|
|
self.data = data
|
|
|
self.reason = reason
|
|
|
|
|
|
@classmethod
|
|
|
def from_dict(cls, response: dict):
|
|
|
- data = [ExcelParseResultDataDto.from_dict(item) for item in response.get('data', [])]
|
|
|
+ data = [
|
|
|
+ ExcelParseResultDataDto.from_dict(item) for item in response.get("data", [])
|
|
|
+ ]
|
|
|
return cls(
|
|
|
- task_id=response.get('task_id', 0),
|
|
|
- result=response.get('result', 0),
|
|
|
- reason=response.get('reason', ''),
|
|
|
- data = data,
|
|
|
+ task_id=response.get("task_id", 0),
|
|
|
+ result=response.get("result", 0),
|
|
|
+ reason=response.get("reason", ""),
|
|
|
+ data=data,
|
|
|
)
|
|
|
|
|
|
def to_dict(self):
|
|
@@ -215,5 +216,5 @@ class ExcelParseResultDto:
|
|
|
"task_id": self.task_id,
|
|
|
"result": self.result,
|
|
|
"reason": self.reason,
|
|
|
- "data": [item.to_dict() for item in self.data] if self.data else []
|
|
|
- }
|
|
|
+ "data": [item.to_dict() for item in self.data] if self.data else [],
|
|
|
+ }
|