diff --git a/src/controller/die.controller.js b/src/controller/die.controller.js index fb8656a..70f58b7 100644 --- a/src/controller/die.controller.js +++ b/src/controller/die.controller.js @@ -4,6 +4,7 @@ const { getAllDieInfo, getDieDetail, getDefaultDieInfoByCoopId, + getExtraDieInfoById, } = require("../service/die.service"); const Response = require("../utils/response"); @@ -44,6 +45,12 @@ class DieController { const res = await getDefaultDieInfoByCoopId(coop_id, house_id); ctx.body = Response(0, "查询默认死淘信息成功", res); } + + async extra(ctx, next) { + const { id } = ctx.request.query; + const res = await getExtraDieInfoById(id); + ctx.body = Response(0, "查询该天的死淘信息成功", res); + } } module.exports = new DieController(); diff --git a/src/router/die.route.js b/src/router/die.route.js index ee0805c..843ca99 100644 --- a/src/router/die.route.js +++ b/src/router/die.route.js @@ -9,6 +9,7 @@ const { all, detail, defaultInfo, + extra, } = require("../controller/die.controller"); router.post("/add", auth, add); @@ -24,4 +25,6 @@ router.post("/detail", auth, detail); router.post("/default", auth, defaultInfo); +router.get("/extra", auth, extra); + module.exports = router; diff --git a/src/service/die.service.js b/src/service/die.service.js index 938b77b..9899419 100644 --- a/src/service/die.service.js +++ b/src/service/die.service.js @@ -6,6 +6,7 @@ const { getCoopById } = require("./coop.service"); const { getFactoryById } = require("./factory.service"); const { getDayLife } = require("../utils/common"); const { getAccountInfo } = require("./account.service"); +const { getReasonById } = require("./reason.service"); const moment = require("moment"); class DieService { async addDieLog(house_id, coop_id, reason_id, die_number, put_time) { @@ -107,13 +108,28 @@ class DieService { arr.map((item) => { const t = moment(item.put_time).format("YYYY-MM-DD"); if (obj[t]) { - obj[t] = obj[t] + item.die_number; + obj[t] = { + id: item.id, + value: obj[t].value + item.die_number, + }; } else { - obj[t] = item.die_number; + obj[t] = { + value: item.die_number, + id: item.id, + }; } }); + const denominator = Object.keys(obj).length; + const molecule = Object.values(obj) + .map((item) => item.value) + .reduce((a, b) => a + b, 0); + let average_die = 0; + if (denominator != 0) { + average_die = molecule / denominator; + } return { list: arr, + average_die, xData: Object.keys(obj), yData: Object.values(obj), batch_number: chickenInfo.batch_number, @@ -175,6 +191,32 @@ class DieService { }); return total; } + + async getExtraDieInfoById(id) { + const res = await Die.findOne({ + where: { + id, + }, + }); + if (res) { + const reasonInfo = await getReasonById(res.dataValues.reason_id); + res.dataValues.reasonInfo = reasonInfo; + // 根据双id查询chicken表 + const chickenInfo = await getChickenByCoopIdAndHouseId( + res.dataValues.coop_id, + res.dataValues.house_id + ); + const factoryInfo = await getFactoryById(chickenInfo.factory_id); + res.dataValues.die_rate = + res.dataValues.die_number / chickenInfo.chicken_number; + res.dataValues.day_life = getDayLife(new Date(), chickenInfo.put_time); + res.dataValues.factoryInfo = factoryInfo; + const userInfo = await getAccountInfo(chickenInfo.log_user_id); + res.dataValues.log_user = userInfo.name; + return res.dataValues; + } + return null; + } } module.exports = new DieService();