|
|
|
@ -3733,10 +3733,25 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
|
|
|
|
|
const connectedSlaves = sensors.filter(
|
|
|
|
|
s => s.connected_to?.trim() === connected_to.trim() && s.type === "slave"
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
console.log("connectedSlaves",connectedSlaves)
|
|
|
|
|
const slaveHardwareIds = connectedSlaves.map(s => s.tankhardwareId);
|
|
|
|
|
const allSlaveIotData = await IotData.find({ "tanks.tankhardwareId": { $in: slaveHardwareIds } }).lean();
|
|
|
|
|
|
|
|
|
|
// const allSlaveIotData = await IotData.find({ "tanks.tankhardwareId": { $in: slaveHardwareIds } }).lean();
|
|
|
|
|
const allSlaveIotData = await IotData.aggregate([
|
|
|
|
|
{ $match: { "tanks.tankhardwareId": { $in: slaveHardwareIds } } },
|
|
|
|
|
{ $project: {
|
|
|
|
|
hardwareId: 1,
|
|
|
|
|
date: 1,
|
|
|
|
|
"tanks": {
|
|
|
|
|
$filter: {
|
|
|
|
|
input: "$tanks",
|
|
|
|
|
as: "tank",
|
|
|
|
|
cond: { $in: ["$$tank.tankhardwareId", slaveHardwareIds] }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]);
|
|
|
|
|
console.log("allSlaveIotData",allSlaveIotData)
|
|
|
|
|
// 🔹 Create map of latest tank data
|
|
|
|
|
const latestTankDataMap = {};
|
|
|
|
|
for (const record of allSlaveIotData) {
|
|
|
|
@ -5338,7 +5353,7 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const hardwareIdsArray = Array.from(allHardwareIds);
|
|
|
|
|
|
|
|
|
|
console.log("hardwareIdsArray",hardwareIdsArray)
|
|
|
|
|
// 4. Find disconnected insensors using connected_to match
|
|
|
|
|
const disconnectedSensors = await Insensors.find({
|
|
|
|
|
connected_to: { $in: hardwareIdsArray }
|
|
|
|
@ -5376,9 +5391,12 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
|
|
|
|
|
) {
|
|
|
|
|
customerHardwareMap[custId].add(issue.hardwareId);
|
|
|
|
|
}
|
|
|
|
|
console.log("allIssueHardwareIds",allIssueHardwareIds)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 7. Build final response
|
|
|
|
|
const response = [];
|
|
|
|
|
|
|
|
|
@ -5391,9 +5409,12 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
|
|
|
|
|
const issueHw = issue.hardwareId?.trim().toLowerCase();
|
|
|
|
|
const hardwareIds = issue.hardwareIds?.map(id => id?.trim().toLowerCase()) || [];
|
|
|
|
|
const allIds = [issueHw, ...hardwareIds];
|
|
|
|
|
console.log("allIds",allIds)
|
|
|
|
|
console.log("Array.from(hardwareIdSet).some(hw => allIds.includes(hw?.trim().toLowerCase()))",Array.from(hardwareIdSet).some(hw => allIds.includes(hw?.trim().toLowerCase())))
|
|
|
|
|
return Array.from(hardwareIdSet).some(hw => allIds.includes(hw?.trim().toLowerCase()));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
//console.log("relatedIssues",relatedIssues)
|
|
|
|
|
let latestIssueTime = null;
|
|
|
|
|
for (const issue of relatedIssues) {
|
|
|
|
|
if (issue.lastTicketRaisedAt) {
|
|
|
|
|