Просмотр исходного кода

修改数据库回调函数参数

nifangxu 1 месяц назад
Родитель
Сommit
55166419e1

+ 21 - 0
Dockerfile.txt

@@ -0,0 +1,21 @@
+FROM python:3.11-alpine
+
+# 设置工作目录
+WORKDIR /app
+
+# 拷贝 Python 程序到容器内
+COPY ..
+
+# 安装依赖(如果有 requirements.txt)
+RUN pip install --no-cache-dir -r requirements.txt
+
+# 设置时区
+ENV TZ=Asiz/shanghai
+
+# 接收 build-arg, 指定运行环境
+ARG PY_ENV=dev
+ENV PY_ENV=${PY_ENV}
+
+# 暴露应用端口
+EXPOSE 8091
+

+ 0 - 0
Dockerfile → Dockerfile_原


+ 0 - 122
Jenkinsfile

@@ -1,122 +0,0 @@
-pipeline {
-    agent any
-
-    parameters {
-        choice(name: 'env', choices: ['dev', 'test', 'prod'], description: '部署环境(dev/test/prod)')
-        string(name: 'NAMESPACE', defaultValue: 'hfln-dev', description: 'Kubernetes 命名空间')
-    }
-
-    environment {
-        PROJECT_NAME    = 'portal-service'
-        MODULE_NAME     = 'portal-service-server'
-        MAVEN_HOME      = '/usr/local/apache-maven-3.9.9/bin'
-        HARBOR_HOST     = '8.130.28.21:81'
-        KUBECONFIG_PATH = '/root/.kube/config'
-    }
-
-    stages {
-        stage('🧬 设置环境变量') {
-            steps {
-                script {
-                    if (params.env == 'prod') {
-                        env.HARBOR_PROJECT = 'prod'
-                    } else if (params.env == 'test') {
-                        env.HARBOR_PROJECT = 'test'
-                    } else {
-                        env.HARBOR_PROJECT = 'dev'
-                    }
-
-                    echo ">>> 使用环境:${params.env},HARBOR 项目:${env.HARBOR_PROJECT},K8S 命名空间:${params.NAMESPACE}"
-                }
-            }
-        }
-
-        stage('🧬 拉取 Git 代码') {
-            steps {
-                script {
-                    echo ">>> 拉取代码中..."
-                    checkout scm
-                    echo ">>> 代码拉取完成 ✅"
-                }
-            }
-        }
-
-        stage('📦 Maven 构建项目') {
-            steps {
-                script {
-                    echo ">>> 开始构建模块:${MODULE_NAME}"
-                    sh "${MAVEN_HOME}/mvn clean package -DskipTests -pl ${MODULE_NAME} -am"
-                    echo ">>> 构建完成 ✅"
-                }
-            }
-        }
-
-        stage('🐳 构建 & 推送 Docker 镜像') {
-            steps {
-                script {
-                    def imageTag = "${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:${BUILD_NUMBER}"
-                    echo ">>> 构建 Docker 镜像: ${imageTag}"
-
-                    sh """
-                        docker login -u admin -p Hfln@1024 ${HARBOR_HOST}
-                        docker build --build-arg spring_profiles_active=${params.env} -t ${imageTag} .
-                        docker push ${imageTag}
-                        docker rmi ${imageTag}
-                    """
-                    echo ">>> Docker 镜像构建并推送完成 ✅"
-                }
-            }
-        }
-
-        stage('🚀 部署到 Kubernetes') {
-            steps {
-                script {
-                    def imageTag = "${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:${BUILD_NUMBER}"
-
-                    echo ">>> 正在部署:${PROJECT_NAME} 到命名空间:${params.NAMESPACE}"
-
-                    sh """
-                        export KUBECONFIG=${KUBECONFIG_PATH}
-                        kubectl set image deployment/${PROJECT_NAME} ${PROJECT_NAME}=${imageTag} -n ${params.NAMESPACE}
-                    """
-                    echo ">>> 部署完成 ✅"
-                }
-            }
-        }
-    }
-
-    post {
-        success {
-            echo "✅ 构建 & 部署成功 🎉"
-
-            script {
-                echo "🧹 开始清理旧镜像(只保留最新 3 个)"
-                sh """
-                    docker images --format "{{.Repository}}:{{.Tag}}" | \
-                    grep "${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:" | \
-                    sed 's/.*://g' | sort -rn | tail -n +4 | while read oldTag; do
-                        image="${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:\${oldTag}"
-                        echo ">>> 检查镜像是否正在使用:\$image"
-                        CONTAINER=\$(docker ps -a --filter ancestor=\$image --format "{{.ID}}")
-                        if [ -z "\$CONTAINER" ]; then
-                            echo "✅ 删除镜像:\$image"
-                            docker rmi \$image
-                        else
-                            echo "⚠️ 镜像 \$image 正在被容器使用,跳过删除。"
-                        fi
-                    done
-                """
-                echo "🧹 旧镜像清理完成 ✅"
-            }
-        }
-
-        failure {
-            echo "❌ 构建或部署失败,请检查日志!"
-        }
-
-        always {
-            echo "🧼 清理工作区..."
-            cleanWs()
-        }
-    }
-}

+ 122 - 0
Jenkinsfile_原

@@ -0,0 +1,122 @@
+pipeline {
+    agent any
+
+    parameters {
+        choice(name: 'env', choices: ['dev', 'test', 'prod'], description: '部署环境(dev/test/prod)')
+        string(name: 'NAMESPACE', defaultValue: 'hfln-dev', description: 'Kubernetes 命名空间')
+    }
+
+    environment {
+        PROJECT_NAME    = 'portal-service'
+        MODULE_NAME     = 'portal-service-server'
+        MAVEN_HOME      = '/usr/local/apache-maven-3.9.9/bin'
+        HARBOR_HOST     = '8.130.28.21:81'
+        KUBECONFIG_PATH = '/root/.kube/config'
+    }
+
+    stages {
+        stage('🧬 设置环境变量') {
+            steps {
+                script {
+                    if (params.env == 'prod') {
+                        env.HARBOR_PROJECT = 'prod'
+                    } else if (params.env == 'test') {
+                        env.HARBOR_PROJECT = 'test'
+                    } else {
+                        env.HARBOR_PROJECT = 'dev'
+                    }
+
+                    echo ">>> 使用环境:${params.env},HARBOR 项目:${env.HARBOR_PROJECT},K8S 命名空间:${params.NAMESPACE}"
+                }
+            }
+        }
+
+        stage('🧬 拉取 Git 代码') {
+            steps {
+                script {
+                    echo ">>> 拉取代码中..."
+                    checkout scm
+                    echo ">>> 代码拉取完成 ✅"
+                }
+            }
+        }
+
+        stage('📦 Maven 构建项目') {
+            steps {
+                script {
+                    echo ">>> 开始构建模块:${MODULE_NAME}"
+                    sh "${MAVEN_HOME}/mvn clean package -DskipTests -pl ${MODULE_NAME} -am"
+                    echo ">>> 构建完成 ✅"
+                }
+            }
+        }
+
+        stage('🐳 构建 & 推送 Docker 镜像') {
+            steps {
+                script {
+                    def imageTag = "${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:${BUILD_NUMBER}"
+                    echo ">>> 构建 Docker 镜像: ${imageTag}"
+
+                    sh """
+                        docker login -u admin -p Hfln@1024 ${HARBOR_HOST}
+                        docker build --build-arg spring_profiles_active=${params.env} -t ${imageTag} .
+                        docker push ${imageTag}
+                        docker rmi ${imageTag}
+                    """
+                    echo ">>> Docker 镜像构建并推送完成 ✅"
+                }
+            }
+        }
+
+        stage('🚀 部署到 Kubernetes') {
+            steps {
+                script {
+                    def imageTag = "${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:${BUILD_NUMBER}"
+
+                    echo ">>> 正在部署:${PROJECT_NAME} 到命名空间:${params.NAMESPACE}"
+
+                    sh """
+                        export KUBECONFIG=${KUBECONFIG_PATH}
+                        kubectl set image deployment/${PROJECT_NAME} ${PROJECT_NAME}=${imageTag} -n ${params.NAMESPACE}
+                    """
+                    echo ">>> 部署完成 ✅"
+                }
+            }
+        }
+    }
+
+    post {
+        success {
+            echo "✅ 构建 & 部署成功 🎉"
+
+            script {
+                echo "🧹 开始清理旧镜像(只保留最新 3 个)"
+                sh """
+                    docker images --format "{{.Repository}}:{{.Tag}}" | \
+                    grep "${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:" | \
+                    sed 's/.*://g' | sort -rn | tail -n +4 | while read oldTag; do
+                        image="${HARBOR_HOST}/${env.HARBOR_PROJECT}/${PROJECT_NAME}:\${oldTag}"
+                        echo ">>> 检查镜像是否正在使用:\$image"
+                        CONTAINER=\$(docker ps -a --filter ancestor=\$image --format "{{.ID}}")
+                        if [ -z "\$CONTAINER" ]; then
+                            echo "✅ 删除镜像:\$image"
+                            docker rmi \$image
+                        else
+                            echo "⚠️ 镜像 \$image 正在被容器使用,跳过删除。"
+                        fi
+                    done
+                """
+                echo "🧹 旧镜像清理完成 ✅"
+            }
+        }
+
+        failure {
+            echo "❌ 构建或部署失败,请检查日志!"
+        }
+
+        always {
+            echo "🧼 清理工作区..."
+            cleanWs()
+        }
+    }
+}

+ 2 - 2
core/alarm_plan.py

@@ -648,7 +648,7 @@ class AlarmPlan:
             db_req_que.put(DBRequest(
                 sql=sqls.sql_query_events_by_datetime,
                 params=params,
-                callback=self.cb_toileting_frequency_abnormal,
+                callback=self.cb_night_toileting_frequency_abnormal,
                 userdata=userdata))
 
         except json.JSONDecodeError as e:
@@ -964,7 +964,7 @@ class AlarmPlan:
 
 
     # 起夜异常回调
-    def cb_toileting_frequency_abnormal(self, result, userdata):
+    def cb_night_toileting_frequency_abnormal(self, result, userdata):
         try:
             if result:
                 count = 0

+ 2 - 2
core/alarm_plan_manager.py

@@ -170,7 +170,7 @@ class AlarmPlanManager:
 
 
 # 如厕频次统计回调
-    def cb_query_one_alarm_plan(self, result, userdata):
+    def cb_query_one_alarm_plan(self, result):
         try:
             if not result:
                 LOGDBG("cb_handle_query_all_alarm_plan_info, invalid result")
@@ -285,7 +285,7 @@ def region_to_rect(region: dict) -> list:
 
 
 # 回调函数,处理查询结果:查询所有的告警计划信息
-def cb_handle_query_all_alarm_plan_info(result):
+def cb_handle_query_all_alarm_plan_info(result, userdata):
     try:
         if result:
             for row in result:

+ 2 - 5
db/db_process.py

@@ -130,10 +130,7 @@ def handle_db_request(db_request: DBRequest):
             else:
                 result = {"rowcount": cursor.rowcount}
             if db_request.callback:
-                if db_request.userdata:
-                    db_request.callback(result, db_request.userdata)
-                else:
-                    db_request.callback(result)
+                db_request.callback(result, db_request.userdata)
         conn.commit()
     except Exception as e:
         LOGERR(f"[DB ERROR] SQL执行失败: {e}")
@@ -166,7 +163,7 @@ def create_db_process():
 
 
 # 处理数据库返回的结果
-def handle_device_data(results):
+def handle_device_data(results, userdata):
     LOGDBG("Received results: {results}")
 
 

+ 0 - 1
db/db_scripts/create_alarm_time_plan.sql

@@ -1,4 +1,3 @@
--- 幂等化建表
 CREATE TABLE IF NOT EXISTS `lnxx_dev`.`alarm_time_plan2` (
   `id` INT NOT NULL AUTO_INCREMENT COMMENT '索引',
   `start_date` CHAR(255) NULL COMMENT '开始日期',

+ 0 - 1
db/db_scripts/create_alram_plan.sql

@@ -1,4 +1,3 @@
--- 幂等化建表
 CREATE TABLE IF NOT EXISTS `lnxx_dev`.`alarm_plan2` (
   `id` INT NOT NULL AUTO_INCREMENT COMMENT '索引',
   `uuid` VARCHAR(255) NULL COMMENT 'uuid',

+ 0 - 1
db/db_scripts/create_event_type.sql

@@ -1,4 +1,3 @@
--- 幂等化建表
 CREATE TABLE `lnxx_dev`.`event_type`  (
   `id` int(0) NOT NULL AUTO_INCREMENT COMMENT '索引',
   `event_val` int(0) NULL COMMENT '事件值',

+ 0 - 1
db/db_scripts/create_events.sql

@@ -1,4 +1,3 @@
--- 幂等化建表
 CREATE TABLE IF NOT EXISTS `lnxx_dev`.`events` (
   `id` INT NOT NULL AUTO_INCREMENT COMMENT '索引',
   `dev_id` VARCHAR(255) NULL COMMENT '设备id',

+ 0 - 19
db/db_scripts/insert_into_event_type.sql

@@ -1,19 +0,0 @@
--- 幂等化插入
-INSERT INTO event_type (
-    event_val,
-    event_str,
-    event_desc,
-    remark
-) VALUES
-    (1, "stay_detection", "停留事件", NULL),
-    (2, "retention_detection", "滞留事件", NULL),
-    (3, "toileting_detection", "如厕事件", NULL),
-    (4, "toileting_frequency", "如厕频次统计", NULL),
-    (5, "night_toileting_frequency", "夜间如厕频次统计", NULL),
-    (6, "toileting_frequency_abnormal", "如厕频次异常", NULL),
-    (7, "night_toileting_frequency_abnormal", "起夜异常", NULL),
-    (8, "bathroom_stay_frequency", "卫生间频次统计", NULL),
-    (9, "target_absence", "异常消失", NULL)
-ON DUPLICATE KEY UPDATE
-    event_str = VALUES(event_str),
-    event_desc = VALUES(event_desc);

+ 1 - 0
db/db_scripts/readme.txt

@@ -0,0 +1 @@
+一些幂等化的数据库操作脚本