|
|
@ -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(); |