From 409a629888638405f6035748408ccff954801521 Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Sat, 15 Apr 2023 12:28:13 +0800 Subject: [PATCH] 123 --- src/controller/chicken.controller.js | 4 ++-- src/router/chicken.route.js | 2 +- src/service/chicken.service.js | 22 ++++++++++++++++++---- src/service/coop.service.js | 24 ++++++++++++++---------- src/service/feedConversion.service.js | 2 +- 5 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/controller/chicken.controller.js b/src/controller/chicken.controller.js index aefac92..504ff7c 100644 --- a/src/controller/chicken.controller.js +++ b/src/controller/chicken.controller.js @@ -75,8 +75,8 @@ class ChickenController { // 获取料肉比 async ratio(ctx, next) { - const { house_id } = ctx.request.query; - const res = await getFeedConversionRatio(house_id); + const { house_id, batch_number } = ctx.request.body; + const res = await getFeedConversionRatio(house_id, batch_number); ctx.body = Response(0, "查询料肉比成功", res); } diff --git a/src/router/chicken.route.js b/src/router/chicken.route.js index 2343786..f3853f5 100644 --- a/src/router/chicken.route.js +++ b/src/router/chicken.route.js @@ -30,7 +30,7 @@ router.get("/batchs", auth, batchs); router.get("/batchnum", auth, batchnum); -router.get("/ratio", auth, ratio); +router.post("/ratio", auth, ratio); router.post("/coops/noratio", auth, noratioCoops); diff --git a/src/service/chicken.service.js b/src/service/chicken.service.js index 462aaa3..5c9839e 100644 --- a/src/service/chicken.service.js +++ b/src/service/chicken.service.js @@ -264,10 +264,14 @@ class ChickenService { return arr; } - async getFeedConversionRatio(house_id) { + async getFeedConversionRatio(house_id, batch_number = "") { + // 需要根据batch_id进行模糊查询 const res = await Chicken.findAll({ where: { house_id, + batch_number: { + [Op.like]: `%${batch_number}%`, + }, }, }); const arr = res.map((item) => item.dataValues); @@ -276,12 +280,22 @@ class ChickenService { // 根据coop_ids 批量查询鸡舍信息 const coopInfo = await getBatchCoopByIds(coop_ids); item.coopInfo = coopInfo; - // 料肉比=消耗饲料总量/增重总量 - // 监测到的重量 - 进鸡时的重量 = 增重 - // getTotalFeedingByCoopId() + // 需要计算出平均的料肉比 + let total = 0; + let length = 0; + coopInfo.map((item) => { + if (item.feed_conversion) { + total += item.feed_conversion; + length += 1; + } + }); + if (length > 0) { + item.average = total / length; + } return item; }); const realRes = await Promise.all(p); + return realRes; } diff --git a/src/service/coop.service.js b/src/service/coop.service.js index c6726ed..f4de413 100644 --- a/src/service/coop.service.js +++ b/src/service/coop.service.js @@ -62,17 +62,21 @@ class CoopService { } async updateRatioById(coop_id, ratio) { - const res = await Coop.update( - { - feed_conversion: ratio, - }, - { - where: { - id: coop_id, + try { + const res = await Coop.update( + { + feed_conversion: ratio, }, - } - ); - return res; + { + where: { + id: coop_id, + }, + } + ); + return res; + } catch (error) { + console.log(error); + } } async batchUpdateCoopStatusByIds(ids, status) { diff --git a/src/service/feedConversion.service.js b/src/service/feedConversion.service.js index 96eebf5..b16203c 100644 --- a/src/service/feedConversion.service.js +++ b/src/service/feedConversion.service.js @@ -20,7 +20,7 @@ class FeedConversionService { // 计算料肉比 if (weight_increment != 0 && fodder_total != 0) { try { - const ratio = fodder_total / weight_increment; + const ratio = (fodder_total / weight_increment).toFixed(2); const coopRes = await updateRatioById(coop_id, ratio); } catch (err) { console.log(err);