|
@@ -1,61 +1,61 @@
|
|
|
import threading,utils,os
|
|
|
|
|
|
from models.project_data import ProjectModel,SubProjectModel, SubProjectItemModel
|
|
|
-from stores.mysql_store import MysqlStore
|
|
|
-import data_collect,data_process,data_send
|
|
|
+from stores.project_store import ProjectStore
|
|
|
+import data_process,data_send
|
|
|
|
|
|
|
|
|
class ProjectService:
|
|
|
|
|
|
def __init__(self):
|
|
|
- self._store = MysqlStore()
|
|
|
+ self._project_store = ProjectStore()
|
|
|
self._logger = utils.get_logger()
|
|
|
def get_all_project_paginated(self, page: int, per_page: int, keyword: str = None) ->(list[ProjectModel], int):
|
|
|
- sub_project_list, total_count = self._store.query_project_all_paginated(page, per_page, keyword)
|
|
|
+ sub_project_list, total_count = self._project_store.query_project_all_paginated(page, per_page, keyword)
|
|
|
return sub_project_list, total_count
|
|
|
|
|
|
def get_project_by_id(self ,project_id:int):
|
|
|
- project = self._store.query_project_by_id(project_id)
|
|
|
+ project = self._project_store.query_project_by_id(project_id)
|
|
|
return project
|
|
|
|
|
|
def add_project(self, project:ProjectModel):
|
|
|
try:
|
|
|
project.create_by = 'admin' if project.create_by is None else project.create_by
|
|
|
- self._store.insert_project(project)
|
|
|
+ self._project_store.insert_project(project)
|
|
|
return True, ''
|
|
|
except Exception as e:
|
|
|
self._logger.error(f"添加项目失败:{e}")
|
|
|
return False, '添加项目失败'
|
|
|
def update_project(self, project:ProjectModel):
|
|
|
- project = self._store.query_project_by_id(project.id)
|
|
|
+ project = self._project_store.query_project_by_id(project.id)
|
|
|
if project:
|
|
|
- self._store.update_project(project)
|
|
|
+ self._project_store.update_project(project)
|
|
|
return True, ''
|
|
|
else:
|
|
|
return False, '项目不存在'
|
|
|
def delete_project(self, project_id:int):
|
|
|
- project = self._store.query_project_by_id(project_id)
|
|
|
+ project = self._project_store.query_project_by_id(project_id)
|
|
|
if project:
|
|
|
- self._store.delete_project(project_id)
|
|
|
+ self._project_store.delete_project(project_id)
|
|
|
return True,''
|
|
|
else:
|
|
|
return False, '项目不存在'
|
|
|
|
|
|
def get_all_sub_project_paginated(self, project_id: int, page: int, per_page: int, keyword: str = None, status: int = None) ->(list[SubProjectModel], int):
|
|
|
- sub_project_list, total_count = self._store.query_sub_project_all_paginated(project_id, page, per_page, keyword, status)
|
|
|
+ sub_project_list, total_count = self._project_store.query_sub_project_all_paginated(project_id, page, per_page, keyword, status)
|
|
|
return sub_project_list, total_count
|
|
|
|
|
|
def get_all_sub_project(self) ->list[SubProjectModel]:
|
|
|
- sub_project_list = self._store.query_sub_project_all()
|
|
|
+ sub_project_list = self._project_store.query_sub_project_all()
|
|
|
return sub_project_list
|
|
|
|
|
|
def get_sub_project_by_id(self, sub_project_id:int) ->SubProjectModel:
|
|
|
- project = self._store.query_sub_project(sub_project_id)
|
|
|
+ project = self._project_store.query_sub_project(sub_project_id)
|
|
|
return project
|
|
|
|
|
|
def save_sub_project(self, sub_project:SubProjectModel, project_files: list, delete_old: bool):
|
|
|
if sub_project.id:
|
|
|
- sub_data = self._store.query_sub_project(sub_project.id)
|
|
|
+ sub_data = self._project_store.query_sub_project(sub_project.id)
|
|
|
if not sub_data:
|
|
|
return False, '子项目不存在'
|
|
|
sub_data.sub_project_name = sub_project.sub_project_name
|
|
@@ -116,15 +116,15 @@ class ProjectService:
|
|
|
return ','.join(file_paths)
|
|
|
|
|
|
def add_sub_project(self, sub_project:SubProjectModel):
|
|
|
- return self._store.insert_sub_project(sub_project)
|
|
|
+ return self._project_store.insert_sub_project(sub_project)
|
|
|
|
|
|
def update_sub_project(self, sub_project:SubProjectModel):
|
|
|
- self._store.update_sub_project(sub_project)
|
|
|
+ self._project_store.update_sub_project(sub_project)
|
|
|
|
|
|
def update_sub_project_file_paths(self, sub_project_id: int, paths: str):
|
|
|
- self._store.update_sub_project_file_path(sub_project_id, paths)
|
|
|
+ self._project_store.update_sub_project_file_path(sub_project_id, paths)
|
|
|
def start_sub_project_task(self, sub_project_id: int) -> (bool, str):
|
|
|
- data = self._store.query_sub_project(sub_project_id)
|
|
|
+ data = self._project_store.query_sub_project(sub_project_id)
|
|
|
if data:
|
|
|
if data.status == 21 or data.status == 31:
|
|
|
return False, '正在采集数据中'
|
|
@@ -142,10 +142,10 @@ class ProjectService:
|
|
|
if data_process.process_project(sub_project):
|
|
|
# 更新远程数据
|
|
|
data_send.send_project_data(sub_project)
|
|
|
- self._store.update_sub_project_status(sub_project.id, 5)
|
|
|
+ self._project_store.update_sub_project_status(sub_project.id, 5)
|
|
|
|
|
|
def process_sub_project(self, sub_project_id:int):
|
|
|
- data = self._store.query_sub_project(sub_project_id)
|
|
|
+ data = self._project_store.query_sub_project(sub_project_id)
|
|
|
if data:
|
|
|
if data.status == 21 or data.status == 31:
|
|
|
return False, '正在采集数据中'
|
|
@@ -166,7 +166,7 @@ class ProjectService:
|
|
|
self._logger.error(f"分析处理失败:{sub_project.sub_project_name}")
|
|
|
return False, '分析处理失败'
|
|
|
def start_send_sub_project(self, sub_project_id: int) -> (bool, str):
|
|
|
- data = self._store.query_sub_project(sub_project_id)
|
|
|
+ data = self._project_store.query_sub_project(sub_project_id)
|
|
|
if data:
|
|
|
if data.status == 21 or data.status == 31:
|
|
|
return False, '正在采集数据中'
|
|
@@ -179,29 +179,29 @@ class ProjectService:
|
|
|
|
|
|
def _send_sub_project_data(self, project: SubProjectModel):
|
|
|
if data_send.send_project_data(project):
|
|
|
- self._store.update_sub_project_status(project.id, 5)
|
|
|
+ self._project_store.update_sub_project_status(project.id, 5)
|
|
|
return True, ''
|
|
|
else:
|
|
|
return False, '上传数据失败'
|
|
|
|
|
|
def delete_sub_project(self, sub_project_id:int):
|
|
|
- project = self._store.query_sub_project(sub_project_id)
|
|
|
+ project = self._project_store.query_sub_project(sub_project_id)
|
|
|
if project:
|
|
|
- self._store.delete_sub_project(sub_project_id)
|
|
|
+ self._project_store.delete_sub_project(sub_project_id)
|
|
|
return True,''
|
|
|
else:
|
|
|
return False, '项目不存在'
|
|
|
|
|
|
def get_sub_project_item_list_by_sub_project_paginated(self, project_id: int, page: int, per_page: int, keyword: str = None) -> (list[SubProjectItemModel], int):
|
|
|
- return self._store.query_sub_project_items_by_project_paginated(project_id, page, per_page, keyword)
|
|
|
+ return self._project_store.query_sub_project_items_by_project_paginated(project_id, page, per_page, keyword)
|
|
|
def get_sub_project_item_list_by_sub_project_id(self, project_id:int) ->list[SubProjectItemModel]:
|
|
|
- return self._store.query_sub_project_items_by_project(project_id)
|
|
|
+ return self._project_store.query_sub_project_items_by_project(project_id)
|
|
|
|
|
|
def get_sub_project_item_by_id(self, item_id: int):
|
|
|
- return self._store.query_sub_project_item_by_id(item_id)
|
|
|
+ return self._project_store.query_sub_project_item_by_id(item_id)
|
|
|
|
|
|
def add_sub_project_item(self, item:SubProjectItemModel):
|
|
|
- project = self._store.query_sub_project(item.sub_project_id)
|
|
|
+ project = self._project_store.query_sub_project(item.sub_project_id)
|
|
|
project_item = SubProjectItemModel(
|
|
|
project_id=project.project_id,
|
|
|
sub_project_id=item.sub_project_id,
|
|
@@ -211,30 +211,30 @@ class ProjectService:
|
|
|
standard_version=project.standard_version,
|
|
|
standard_no=item.standard_no,
|
|
|
)
|
|
|
- return self._store.insert_sub_project_item(project_item)
|
|
|
+ return self._project_store.insert_sub_project_item(project_item)
|
|
|
|
|
|
def update_sub_project_item(self, item:SubProjectItemModel):
|
|
|
- project_item = self._store.query_sub_project_item_by_id(item.id)
|
|
|
+ project_item = self._project_store.query_sub_project_item_by_id(item.id)
|
|
|
if project_item:
|
|
|
project_item.device_name = item.device_name
|
|
|
project_item.device_model = item.device_model
|
|
|
project_item.device_unit = item.device_unit
|
|
|
project_item.device_count = float(item.device_count)
|
|
|
project_item.standard_no = item.standard_no
|
|
|
- self._store.update_sub_project_item(project_item)
|
|
|
+ self._project_store.update_sub_project_item(project_item)
|
|
|
return True
|
|
|
else:
|
|
|
return False
|
|
|
def delete_sub_project_item(self, item_id:int):
|
|
|
- project_item = self._store.query_sub_project_item_by_id(item_id)
|
|
|
+ project_item = self._project_store.query_sub_project_item_by_id(item_id)
|
|
|
if project_item:
|
|
|
- self._store.delete_sub_project_item_by_id(project_item.id)
|
|
|
+ self._project_store.delete_sub_project_item_by_id(project_item.id)
|
|
|
return True
|
|
|
else:
|
|
|
return False
|
|
|
|
|
|
def start_process_item(self, item_id:int):
|
|
|
- project_item = self._store.query_sub_project_item_by_id(item_id)
|
|
|
+ project_item = self._project_store.query_sub_project_item_by_id(item_id)
|
|
|
if not project_item:
|
|
|
return False, '项目不存在'
|
|
|
thread = threading.Thread(target=self._process_sub_project_item, args=(project_item,))
|
|
@@ -249,7 +249,7 @@ class ProjectService:
|
|
|
return False, '分析处理失败'
|
|
|
|
|
|
def start_send_item(self, item_id:int):
|
|
|
- project_item = self._store.query_sub_project_item_by_id(item_id)
|
|
|
+ project_item = self._project_store.query_sub_project_item_by_id(item_id)
|
|
|
if not project_item:
|
|
|
return False, '项目不存在'
|
|
|
thread = threading.Thread(target=self._send_sub_project_item, args=(project_item,))
|