From 41d0d0ddfeabaf941ff4d83c50a91fd749d25f3a Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Mon, 27 Mar 2023 14:10:31 +0800 Subject: [PATCH] 123 --- src/controller/die.controller.js | 7 +++++++ src/router/die.route.js | 10 +++++++++- src/service/die.service.js | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/controller/die.controller.js b/src/controller/die.controller.js index 7abb977..fb8656a 100644 --- a/src/controller/die.controller.js +++ b/src/controller/die.controller.js @@ -3,6 +3,7 @@ const { getDieInfoById, getAllDieInfo, getDieDetail, + getDefaultDieInfoByCoopId, } = require("../service/die.service"); const Response = require("../utils/response"); @@ -37,6 +38,12 @@ class DieController { const res = await getDieDetail(house_id, coop_id); ctx.body = Response(0, "查询死淘详情成功", res); } + + async defaultInfo(ctx, next) { + const { coop_id, house_id } = ctx.request.body; + const res = await getDefaultDieInfoByCoopId(coop_id, house_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 7cc2e7e..ee0805c 100644 --- a/src/router/die.route.js +++ b/src/router/die.route.js @@ -3,7 +3,13 @@ const Router = require("koa-router"); const router = new Router({ prefix: "/die" }); const { auth, hasAdminPermission } = require("../middleware/auth.middleware"); -const { add, info, all, detail } = require("../controller/die.controller"); +const { + add, + info, + all, + detail, + defaultInfo, +} = require("../controller/die.controller"); router.post("/add", auth, add); @@ -16,4 +22,6 @@ router.post("/all", auth, all); // 获取死淘详情数据 router.post("/detail", auth, detail); +router.post("/default", auth, defaultInfo); + module.exports = router; diff --git a/src/service/die.service.js b/src/service/die.service.js index 7c9dc1a..8887e03 100644 --- a/src/service/die.service.js +++ b/src/service/die.service.js @@ -1,7 +1,11 @@ const Die = require("../model/die.model"); +const Chicken = require("../model/chicken.model"); const { Op } = require("sequelize"); const { getChickenByCoopIdAndHouseId } = require("./chicken.service"); const { getCoopById } = require("./coop.service"); +const { getFactoryById } = require("./factory.service"); +const { getDayLife } = require("../utils/common"); +const { getAccountInfo } = require("./account.service"); class DieService { async addDieLog(house_id, coop_id, reason_id, die_number, put_time) { const res = await Die.create({ @@ -95,6 +99,42 @@ class DieService { const arr = res?.map((item) => item.dataValues); return arr; } + + async getDefaultDieInfoByCoopId(coop_id, house_id) { + // 根据coop ID查询 新建死淘记录时的默认回显信息 + const res = await Chicken.findOne({ + where: { + house_id, + coop_id: { + [Op.like]: `%${coop_id}%`, + }, + }, + }); + if (res) { + // 死淘数量不大于进鸡数量-之前录入的该舍死淘数量 + const dieInfos = await Die.findAll({ + coop_id, + house_id, + }); + const dieArr = dieInfos.map((item) => item.dataValues); + let dieTotal = 0; + dieArr.map((item) => { + dieTotal += item.die_number; + }); + res.dataValues.max_die_number = res.dataValues.chicken_number - dieTotal; + // 默认鸡苗日龄为录入时间-进鸡时间 + res.dataValues.day_life = getDayLife(new Date(), res.dataValues.put_time); + // 鸡苗厂家/记录人 + const factoryInfo = await getFactoryById(res.dataValues.factory_id); + res.dataValues.factoryInfo = factoryInfo; + const accountInfo = await getAccountInfo({ + id: res.dataValues.log_user_id, + }); + res.dataValues.log_user = accountInfo.name; + return res.dataValues; + } + return null; + } } module.exports = new DieService();