Ver Fonte

Update 调整文件命名

YueYunyun há 1 mês atrás
pai
commit
373b41ad56

+ 10 - 10
SourceCode/DataMiddleware/app/data_process/pre_process.py

@@ -2,14 +2,14 @@ import utils, pandas as pd, os, json
 from pathlib import Path
 
 from models.project_data import SubProjectModel, SubProjectItemModel
-from stores.mysql_store import MysqlStore
+from stores.project_store import ProjectStore
 from ai.fast_gpt import FastGPTAi
 
 class PreProcess:
 
     def __init__(self):
         self._logger= utils.get_logger()
-        self._store= MysqlStore()
+        self._project_store= ProjectStore()
         # self._ai = utils.AiHelper()
         self._ai = FastGPTAi()
         self._ai_sys_prompt = "从给定信息中提取结构化信息,并返回json压缩成一行的字符串,如果部分信息为空或nan,则该字段返回为空。"
@@ -21,7 +21,7 @@ class PreProcess:
             if not project.file_paths:
                 return False
             self._logger.info(f"开始预处理项目:{project.sub_project_name}[{project.project_id}_{project.standard_version}] ")
-            self._store.update_sub_project_status(project.id, 21)
+            self._project_store.update_sub_project_status(project.id, 21)
             self.separate_ai_calls = separate_ai_calls
             res_data = []
             raw_data = self.read_excels(project.file_paths)
@@ -34,13 +34,13 @@ class PreProcess:
                 excel_data = self.normalize_data(raw_data)
                 res_data = self.call_ai(project.id, excel_data)
             project.items = res_data
-            self._store.re_insert_sub_project(project)
+            self._project_store.re_insert_sub_project(project)
             self._logger.info(f"结束预处理项目:{project.sub_project_name}[{project.project_id}_{project.standard_version}] [设备条数:{len(project.items)}]")
-            self._store.update_sub_project_status(project.id, 31)
+            self._project_store.update_sub_project_status(project.id, 31)
             return True
         except Exception as e:
             self._logger.error(f"预处理项目失败:[{project.project_id}] 错误: {e}")
-            self._store.update_sub_project_status(project.id, 11)
+            self._project_store.update_sub_project_status(project.id, 11)
             return False
 
     def read_excels(self, paths):
@@ -214,7 +214,7 @@ class PreProcess:
             self._logger.warning(f"警告:未找到任何文件")
             raise FileNotFoundError(f"未找到任何文件")
         try:
-            self._store.update_sub_project_status(sub_project.id, 21)
+            self._project_store.update_sub_project_status(sub_project.id, 21)
             items =[]
             for file in excel_files:
                 file_path = str(file.resolve())
@@ -222,14 +222,14 @@ class PreProcess:
                 if data:
                     items.extend(data)
             sub_project.items = items
-            self._store.re_insert_sub_project(sub_project)
+            self._project_store.re_insert_sub_project(sub_project)
             self._logger.info(
                 f"结束预处理项目:{sub_project.sub_project_name}[{sub_project.project_id}_{sub_project.standard_version}] [设备条数:{len(sub_project.items)}]")
-            self._store.update_sub_project_status(sub_project.id, 31)
+            self._project_store.update_sub_project_status(sub_project.id, 31)
             return True
         except Exception as e:
             self._logger.error(f"项目:{sub_project.project_id} 文件处理失败: {e}")
-            self._store.update_sub_project_status(sub_project.id, 11)
+            self._project_store.update_sub_project_status(sub_project.id, 11)
             return False
 
 

+ 9 - 9
SourceCode/DataMiddleware/app/data_process/process.py

@@ -1,6 +1,6 @@
 import utils,json
 
-from stores.mysql_store import MysqlStore
+from stores.project_store import ProjectStore
 from models.project_data import SubProjectModel, SubProjectItemModel
 from ai.fast_gpt import FastGPTAi
 
@@ -8,35 +8,35 @@ from ai.fast_gpt import FastGPTAi
 class Process:
     def __init__(self):
         self._logger= utils.get_logger()
-        self._store= MysqlStore()
+        self._project_store= ProjectStore()
         self._ai = FastGPTAi()
         self._data={}
 
     def run(self, sub_project: SubProjectModel) ->bool:
         try:
             self._logger.debug(f"开始处理数据:{sub_project.sub_project_name}[{sub_project.id}]")
-            self._store.update_sub_project_status(sub_project.id, 22)
-            project_items = self._store.query_sub_project_items_by_project(sub_project.id)
+            self._project_store.update_sub_project_status(sub_project.id, 22)
+            project_items = self._project_store.query_sub_project_items_by_project(sub_project.id)
             for project_item in project_items:
                 self.process_item(project_item)
-            self._store.update_sub_project_status(sub_project.id, 32)
+            self._project_store.update_sub_project_status(sub_project.id, 32)
             self._logger.info(f"处理数据完成:{sub_project.sub_project_name}[{sub_project.id}]")
             return True
         except Exception as e:
             self._logger.error(f"处理数据失败:{e}")
-            self._store.update_sub_project_status(sub_project.id, 12)
+            self._project_store.update_sub_project_status(sub_project.id, 12)
             return False
 
     def process_item(self, sub_project_item: SubProjectItemModel) ->bool:
         try:
             self._logger.debug(f"开始处理明细:{sub_project_item.device_name}{sub_project_item.device_model}[{sub_project_item.id}]")
-            self._store.update_sub_project_item_process_status(sub_project_item.id, 1)
+            self._project_store.update_sub_project_item_process_status(sub_project_item.id, 1)
             data = self.call_ai(sub_project_item)
-            self._store.update_sub_project_item_standard_no(sub_project_item.id, data.standard_no)
+            self._project_store.update_sub_project_item_standard_no(sub_project_item.id, data.standard_no)
             return True
         except Exception as e:
             self._logger.error(f"处理数据明细:{e}")
-            self._store.update_sub_project_item_process_status(sub_project_item.id, 3)
+            self._project_store.update_sub_project_item_process_status(sub_project_item.id, 3)
             return False
 
 

+ 10 - 10
SourceCode/DataMiddleware/app/data_send/send.py

@@ -1,31 +1,31 @@
 import  utils
-from stores.mysql_store import MysqlStore
+from stores.project_store import ProjectStore
 from models.project_data import SubProjectModel, SubProjectItemModel
 
 
 class DataSend:
     def __init__(self):
         self._logger= utils.get_logger()
-        self._store= MysqlStore()
+        self._project_store= ProjectStore()
 
     def send_by_project(self, sub_project: SubProjectModel) -> bool:
         try:
 
             self._logger.info(f"开始发送数据,项目:{sub_project.sub_project_name}[{sub_project.project_id}_{sub_project.id}]")
-            self._store.update_sub_project_status(sub_project.id, 23)
-            data_list = self._store.query_sub_project_items_by_project(sub_project.id, with_empty=False)
+            self._project_store.update_sub_project_status(sub_project.id, 23)
+            data_list = self._project_store.query_sub_project_items_by_project(sub_project.id, with_empty=False)
             for data in data_list:
                 self.send_data(data)
-            self._store.update_sub_project_status(sub_project.id, 33)
+            self._project_store.update_sub_project_status(sub_project.id, 33)
             self._logger.info(f"发送数据成功,项目:{sub_project.sub_project_name}[{sub_project.project_id}_{sub_project.id}] 共发送{len(data_list)}条")
             return True
         except Exception as e:
             self._logger.error(f"发送数据失败,项目:{sub_project.sub_project_name}[{sub_project.project_id}_{sub_project.id}],错误信息:{e}")
-            self._store.update_sub_project_status(sub_project.id, 13)
+            self._project_store.update_sub_project_status(sub_project.id, 13)
             return False
 
     def send_by_item_id(self, item_id: int) -> bool:
-        data = self._store.query_sub_project_item_by_id(item_id)
+        data = self._project_store.query_sub_project_item_by_id(item_id)
         if data:
             return self.send_by_item(data)
         return False
@@ -44,10 +44,10 @@ class DataSend:
     def send_data(self, data: SubProjectItemModel) -> bool:
         try:
             self._logger.debug(f"开始远程请求发送数据,数据:{data}" )
-            self._store.update_sub_project_item_send_status(data.id, 1)
+            self._project_store.update_sub_project_item_send_status(data.id, 1)
 
-            self._store.update_sub_project_item_send_status(data.id, 2)
+            self._project_store.update_sub_project_item_send_status(data.id, 2)
         except Exception as e:
             self._logger.error(f"发送数据失败,数据:{data},错误信息:{e}")
-            self._store.update_sub_project_item_send_status(data.id, 3)
+            self._project_store.update_sub_project_item_send_status(data.id, 3)
             return False

+ 1 - 1
SourceCode/DataMiddleware/app/stores/mysql_store.py → SourceCode/DataMiddleware/app/stores/project_store.py

@@ -5,7 +5,7 @@ from utils.mysql_helper import MySQLHelper
 from models.project_data import ProjectModel, SubProjectModel, SubProjectItemModel
 
 
-class MysqlStore:
+class ProjectStore:
 
     def __init__(self):
         self._db_helper = MySQLHelper()

+ 1 - 1
SourceCode/DataMiddleware/app/ui/__init__.py

@@ -10,7 +10,7 @@ def create_app():
     # web_app = Flask(__name__, template_folder=template_path)
     web_app = Flask(__name__)
     # 注册蓝图或其他初始化操作
-    from .project_views import project as project_blueprint
+    from .views_project import project as project_blueprint
     web_app.register_blueprint(project_blueprint)
     web_app.jinja_env.filters['basename'] = basename_filter
 

+ 35 - 35
SourceCode/DataMiddleware/app/ui/project_services.py → SourceCode/DataMiddleware/app/ui/services_project.py

@@ -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,))

+ 1 - 1
SourceCode/DataMiddleware/app/ui/project_views.py → SourceCode/DataMiddleware/app/ui/views_project.py

@@ -4,7 +4,7 @@ import os, utils
 def basename_filter(path):
     return os.path.basename(path)
 
-from .project_services import ProjectService
+from .services_project import ProjectService
 from models.project_data import ProjectModel, SubProjectModel,SubProjectItemModel
 
 ProjectService = ProjectService()  # 确保 SourceDataService 是一个实例