From 9299347bbaf9a2314672155e68f1bb8fb482fbde Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Mon, 17 Apr 2023 20:37:56 +0800 Subject: [PATCH] 123 --- src/controller/environment.controller.js | 7 +++++++ src/mock/index.js | 4 +++- src/router/environment.route.js | 3 +++ src/service/environment.service.js | 27 +++++++++++++++++---------- src/utils/message.js | 4 +++- 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/controller/environment.controller.js b/src/controller/environment.controller.js index 3affef1..5eb675e 100644 --- a/src/controller/environment.controller.js +++ b/src/controller/environment.controller.js @@ -2,6 +2,7 @@ const { getEnvironmentByCoopId, addNewLog, getEnvironmentHistoryList, + getRealTimeData, } = require("../service/environment.service"); const Response = require("../utils/response"); @@ -48,6 +49,12 @@ class EnvironmentController { ); ctx.body = Response(0, "获取环境监测历史数据成功", res); } + + async realtime(ctx, next) { + const { plies_number } = ctx.request.body; + const res = await getRealTimeData(plies_number); + ctx.body = Response(0, "获取环境监测实时数据成功", res); + } } module.exports = new EnvironmentController(); diff --git a/src/mock/index.js b/src/mock/index.js index afe3336..158a9e3 100644 --- a/src/mock/index.js +++ b/src/mock/index.js @@ -1,8 +1,10 @@ const sensor_data = { command: "envDataReport", messageId: "xxxxx-xxxxx-xxxxx-xxxxx", - timestamp: "2023-04-17 16:22:11", //unix时间戳ms + timestamp: "2023-04-16 16:22:11", //unix时间戳ms positionM: 50, //横向距离 + henhouseId: "2", + farmId: "15", env: [ { mac: "00:28:f8:6f:a3:92", diff --git a/src/router/environment.route.js b/src/router/environment.route.js index 83e55fa..cad359d 100644 --- a/src/router/environment.route.js +++ b/src/router/environment.route.js @@ -7,6 +7,7 @@ const { detail, addLog, statistics, + realtime, } = require("../controller/environment.controller"); // 获取某个鸡舍的环境数据 @@ -18,4 +19,6 @@ router.post("/log", auth, addLog); // 获取环境监测历史数据,用来渲染统计图表 router.post("/statistics", auth, statistics); +router.post("/realtime", auth, realtime); + module.exports = router; diff --git a/src/service/environment.service.js b/src/service/environment.service.js index 7db146c..7008b4a 100644 --- a/src/service/environment.service.js +++ b/src/service/environment.service.js @@ -6,11 +6,11 @@ class EnvironmentService { async getEnvironmentByCoopId(house_id, coop_id) { // 目前没有栋舍概念 暂且注释,取平均值 const res = await Environment.findAll({ - // where: { - // coop_id, - // house_id, - // }, - // order: [["log_time", "DESC"]], + where: { + coop_id, + house_id, + }, + order: [["log_time", "DESC"]], }); const arr = res.map((item) => item.dataValues); if (arr && arr.length > 0) { @@ -66,8 +66,8 @@ class EnvironmentService { async getEnvironmentHistoryList(house_id, coop_id, time_id, indicator_id) { let whereObj = { - // house_id, - // coop_id, + house_id, + coop_id, }; // 需要根据id进行筛选 7天、全部、24小时 if (time_id == "1") { @@ -249,15 +249,15 @@ class EnvironmentService { } // 因为目前设备并没有鸡场、鸡舍相关概念 默认为0,没有的数据默认为0 - async reportEnvironmentData(env, positionM, log_time) { + async reportEnvironmentData(env, positionM, log_time, coop_id, house_id) { // position_index, positionM, log_time; if (!env) { return; } const p = env.map(async (item) => { const res = await Environment.create({ - house_id: 0, - coop_id: 0, + coop_id: parseInt(coop_id), + house_id: parseInt(house_id), temperature: item.temperature, humidity: item.humidity, co2: item.co2, @@ -274,6 +274,13 @@ class EnvironmentService { const real = await Promise.all(p); return real; } + + // 获取环境实时监测数据 + async getRealTimeData(plies_number) { + const res = await Environment.findAll(); + const arr = res?.map((item) => item.dataValues); + return arr; + } } module.exports = new EnvironmentService(); diff --git a/src/utils/message.js b/src/utils/message.js index 9b31207..026d7e4 100644 --- a/src/utils/message.js +++ b/src/utils/message.js @@ -11,8 +11,10 @@ const handleSensorMessage = (message) => { // 每到一个笼位记录一次 if (positionM % 50 == 0) { const env = message?.env || []; + const coop_id = message?.henhouseId; + const house_id = message?.farmId; const log_time = moment(message?.timestamp).format("YYYY-MM-DD HH:mm:ss"); - reportEnvironmentData(env, positionM, log_time); + reportEnvironmentData(env, positionM, log_time, coop_id, house_id); } }; const handleFeedMessage = async (message) => {