ashok 3 months ago
commit e295d936be

@ -7774,7 +7774,6 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
}
});
// ✅ Exclude resolved hardwareIds from disconnected list
const resolvedHardwareIds = new Set();
(supportRecord.resolvedIssues || []).forEach(issue => {
if (issue.hardwareId) resolvedHardwareIds.add(issue.hardwareId.trim().toLowerCase());
@ -7797,7 +7796,6 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
const allHardwareIds = [...hardwareIdsArray];
// ✅ Fetch all relevant sensors (connected or disconnected)
const relevantSensorsRaw = await Insensors.find({
$or: [
{ connected_to: { $in: allHardwareIds } },
@ -7806,7 +7804,17 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
]
}).lean();
// ✅ Filter out categorized and resolved sensors
// ✅ Allow resolved hardwareIds that are part of new unresolved issues
const unresolvedHardwareIdSet = new Set();
unresolvedIssues.forEach(issue => {
if (issue.hardwareId) unresolvedHardwareIdSet.add(issue.hardwareId.trim().toLowerCase());
if (Array.isArray(issue.hardwareIds)) {
issue.hardwareIds.forEach(id => {
if (typeof id === "string") unresolvedHardwareIdSet.add(id.trim().toLowerCase());
});
}
});
const sensors = relevantSensorsRaw.filter(sensor => {
const ids = [
sensor.hardwareId?.trim().toLowerCase(),
@ -7814,7 +7822,8 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
sensor.tankhardwareId?.trim().toLowerCase()
];
return !ids.some(id =>
existingCategorizedHardwareIds.has(id) || resolvedHardwareIds.has(id)
existingCategorizedHardwareIds.has(id) ||
(resolvedHardwareIds.has(id) && !unresolvedHardwareIdSet.has(id))
);
});
@ -7836,7 +7845,7 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
];
const isCategorizedOrResolved = [sensorHw, sensorConnected, sensorHardwareId].some(id =>
id && (existingCategorizedHardwareIds.has(id) || resolvedHardwareIds.has(id))
id && (existingCategorizedHardwareIds.has(id) || (resolvedHardwareIds.has(id) && !unresolvedHardwareIdSet.has(id)))
);
if (isCategorizedOrResolved) continue;
@ -7846,7 +7855,7 @@ exports.getDisconnectedCustomerDetails = async (req, reply) => {
(sensorHardwareId && allIssueHardwareIds.includes(sensorHardwareId))
) {
for (const hw of allIssueHardwareIds) {
if (hw && !existingCategorizedHardwareIds.has(hw) && !resolvedHardwareIds.has(hw)) {
if (hw && !existingCategorizedHardwareIds.has(hw) && (!resolvedHardwareIds.has(hw) || unresolvedHardwareIdSet.has(hw))) {
customerHardwareMap[custId].add(hw);
}
}

Loading…
Cancel
Save