maochaoying 2 years ago
parent
commit
409a629888
  1. 4
      src/controller/chicken.controller.js
  2. 2
      src/router/chicken.route.js
  3. 22
      src/service/chicken.service.js
  4. 4
      src/service/coop.service.js
  5. 2
      src/service/feedConversion.service.js

4
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);
}

2
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);

22
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;
}

4
src/service/coop.service.js

@ -62,6 +62,7 @@ class CoopService {
}
async updateRatioById(coop_id, ratio) {
try {
const res = await Coop.update(
{
feed_conversion: ratio,
@ -73,6 +74,9 @@ class CoopService {
}
);
return res;
} catch (error) {
console.log(error);
}
}
async batchUpdateCoopStatusByIds(ids, status) {

2
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);

Loading…
Cancel
Save