|
|
@ -105,7 +105,7 @@ exports.addTanks = async (req, reply) => {
|
|
|
|
if (existingTank) {
|
|
|
|
if (existingTank) {
|
|
|
|
throw new Error('The combination of hardwareId and tankhardwareId already exists.');
|
|
|
|
throw new Error('The combination of hardwareId and tankhardwareId already exists.');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const tankData = {
|
|
|
|
const tankData = {
|
|
|
|
// InstallerId:InstallerId,
|
|
|
|
// InstallerId:InstallerId,
|
|
|
|
customerId: customerId,
|
|
|
|
customerId: customerId,
|
|
|
@ -222,6 +222,64 @@ exports.getTank = async (req, reply) => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.getTanksensorcount = async (req, reply) => {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
const { customerId } = req.params;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Aggregate to count need_sensor values
|
|
|
|
|
|
|
|
const needSensorCounts = await Tank.aggregate([
|
|
|
|
|
|
|
|
{ $match: { customerId } },
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
$group: {
|
|
|
|
|
|
|
|
_id: "$need_sensor",
|
|
|
|
|
|
|
|
count: { $sum: 1 },
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const inputIsMotorCounts = await Tank.aggregate([
|
|
|
|
|
|
|
|
{ $match: { customerId } },
|
|
|
|
|
|
|
|
{ $unwind: "$connections.inputConnections" },
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
$group: {
|
|
|
|
|
|
|
|
_id: "$connections.inputConnections.inputismotor",
|
|
|
|
|
|
|
|
count: { $sum: 1 },
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Format the results
|
|
|
|
|
|
|
|
const needSensorResult = needSensorCounts.reduce((acc, item) => {
|
|
|
|
|
|
|
|
acc[item._id] = item.count;
|
|
|
|
|
|
|
|
return acc;
|
|
|
|
|
|
|
|
}, {});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const inputIsMotorResult = inputIsMotorCounts.reduce((acc, item) => {
|
|
|
|
|
|
|
|
acc[item._id ? "true" : "false"] = item.count;
|
|
|
|
|
|
|
|
return acc;
|
|
|
|
|
|
|
|
}, {});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Return the response
|
|
|
|
|
|
|
|
reply.send({
|
|
|
|
|
|
|
|
customerId,
|
|
|
|
|
|
|
|
needSensor: {
|
|
|
|
|
|
|
|
yes: needSensorResult["yes"] || 0,
|
|
|
|
|
|
|
|
no: needSensorResult["no"] || 0,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
inputIsMotor: {
|
|
|
|
|
|
|
|
true: inputIsMotorResult["true"] || 0,
|
|
|
|
|
|
|
|
false: inputIsMotorResult["false"] || 0,
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
reply.status(500).send({ error: "An error occurred while fetching the data." });
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.getTanksofParticularInstaller = async (req, reply) => {
|
|
|
|
exports.getTanksofParticularInstaller = async (req, reply) => {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
await Tank.find({InstallerId: req.query.InstallerId})
|
|
|
|
await Tank.find({InstallerId: req.query.InstallerId})
|
|
|
|