diff --git a/src/controller/chicken.controller.js b/src/controller/chicken.controller.js index 72c78af..aefac92 100644 --- a/src/controller/chicken.controller.js +++ b/src/controller/chicken.controller.js @@ -3,7 +3,9 @@ const { getChickenInfoById, getAllChickenInfo, getChickenInfoByHouseId, + getBatchNumbers, getBatchNumbersByHouseId, + getNoRatioCoopsByBatchNumber, getFeedConversionRatio, } = require("../service/chicken.service"); const Response = require("../utils/response"); @@ -65,12 +67,24 @@ class ChickenController { ctx.body = Response(0, "查询批次号简易信息成功", res); } + async allbatch(ctx, next) { + const { house_id } = ctx.request.query; + const res = await getBatchNumbers(house_id); + ctx.body = Response(0, "查询所有未出栏批次号成功", res); + } + // 获取料肉比 async ratio(ctx, next) { const { house_id } = ctx.request.query; const res = await getFeedConversionRatio(house_id); ctx.body = Response(0, "查询料肉比成功", res); } + + async noratioCoops(ctx, next) { + const { batch_number } = ctx.request.body; + const res = await getNoRatioCoopsByBatchNumber(batch_number); + ctx.body = Response(0, "查询当前批次号下没有料肉比记录的鸡舍成功", res); + } } module.exports = new ChickenController(); diff --git a/src/controller/feedConversion.controller.js b/src/controller/feedConversion.controller.js new file mode 100644 index 0000000..eeb7a0a --- /dev/null +++ b/src/controller/feedConversion.controller.js @@ -0,0 +1,6 @@ +const {} = require("../service/feedConversion.service"); +const Response = require("../utils/response"); + +class FeedConversionController {} + +module.exports = new FeedConversionController(); diff --git a/src/model/coop.model.js b/src/model/coop.model.js index 4209f17..9f913ba 100644 --- a/src/model/coop.model.js +++ b/src/model/coop.model.js @@ -30,6 +30,12 @@ const Coop = seq.define("chicken_coop", { defaultValue: 1, comment: "是否为空舍,1为空,0为非空", }, + feed_conversion: { + type: DataTypes.DOUBLE, + allowNull: true, + defaultValue: null, + comment: "料肉比", + }, }); // 强制同步数据库(创建数据表) diff --git a/src/model/feedConversion.model.js b/src/model/feedConversion.model.js new file mode 100644 index 0000000..88b30a8 --- /dev/null +++ b/src/model/feedConversion.model.js @@ -0,0 +1,38 @@ +const { DataTypes } = require("sequelize"); + +const seq = require("../db/seq"); + +const FeedConversion = seq.define("chicken_feed_conversion", { + // id 会被sequelize自动创建, 管理 + batch_id: { + type: DataTypes.STRING, + allowNull: false, + comment: "批次号", + }, + coop_id: { + type: DataTypes.INTEGER, + allowNull: false, + unique: true, + comment: "鸡舍id", + }, + fodder_total: { + type: DataTypes.INTEGER, + allowNull: false, + comment: "饲料总数", + }, + weight_increment: { + type: DataTypes.INTEGER, + allowNull: false, + comment: "增重总量", + }, + log_user_id: { + type: DataTypes.INTEGER, + allowNull: false, + comment: "记录人", + }, +}); + +// 强制同步数据库(创建数据表) +// FeedConversion.sync({ force: true }); + +module.exports = FeedConversion; diff --git a/src/router/chicken.route.js b/src/router/chicken.route.js index dc794c0..2343786 100644 --- a/src/router/chicken.route.js +++ b/src/router/chicken.route.js @@ -13,6 +13,8 @@ const { batchs, batchnum, ratio, + noratioCoops, + allbatch, } = require("../controller/chicken.controller"); router.post("/add", auth, verifyChickenNumberRightful, add); @@ -20,6 +22,7 @@ router.post("/add", auth, verifyChickenNumberRightful, add); // 根据id获取新进鸡苗记录详情。 router.get("/info", auth, info); +router.get("/allbatch", auth, allbatch); // 根据条件查询新进记录 router.post("/all", auth, all); @@ -29,4 +32,6 @@ router.get("/batchnum", auth, batchnum); router.get("/ratio", auth, ratio); +router.post("/coops/noratio", auth, noratioCoops); + module.exports = router; diff --git a/src/router/feedConversion.route.js b/src/router/feedConversion.route.js new file mode 100644 index 0000000..a03d5b7 --- /dev/null +++ b/src/router/feedConversion.route.js @@ -0,0 +1,8 @@ +const Router = require("koa-router"); + +const router = new Router({ prefix: "/ratio" }); + +const { auth, hasAdminPermission } = require("../middleware/auth.middleware"); +const {} = require("../controller/feedConversion.controller"); + +module.exports = router; diff --git a/src/service/chicken.service.js b/src/service/chicken.service.js index 96c1236..462aaa3 100644 --- a/src/service/chicken.service.js +++ b/src/service/chicken.service.js @@ -86,7 +86,6 @@ class ChickenService { const res = await Chicken.findAll({ where: { house_id, - // is_marketed: 0, }, }); const arr = res.map((item) => item.dataValues); @@ -237,6 +236,34 @@ class ChickenService { return result; } + async getBatchNumbers(house_id) { + try { + const res = await Chicken.findAll({ + where: { + house_id, + is_marketed: 0, // 未出栏 + }, + }); + const arr = res?.map((item) => item.dataValues); + return arr; + } catch (error) { + console.log(error); + } + } + + async getNoRatioCoopsByBatchNumber(batch_number) { + const res = await Chicken.findOne({ + where: { + batch_number, + }, + }); + const coop_id_str = res?.dataValues?.coop_id; + const coop_ids = coop_id_str.split(","); + const coopInfoList = await getBatchCoopByIds(coop_ids); + const arr = coopInfoList.filter((item) => !item.feed_conversion); + return arr; + } + async getFeedConversionRatio(house_id) { const res = await Chicken.findAll({ where: { diff --git a/src/service/feedConversion.service.js b/src/service/feedConversion.service.js new file mode 100644 index 0000000..e4b2c77 --- /dev/null +++ b/src/service/feedConversion.service.js @@ -0,0 +1,4 @@ +const FeedConversion = require("../model/feedConversion.model"); +class FeedConversionService {} + +module.exports = new FeedConversionService();