diff --git a/src/controllers/installationController.js b/src/controllers/installationController.js index 96da9a3b..e43a7b47 100644 --- a/src/controllers/installationController.js +++ b/src/controllers/installationController.js @@ -3989,7 +3989,6 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { if (sensor.tankhardwareId) sensorMap[sensor.tankhardwareId] = sensor; } - // const customerId = supportRecord.customerId; let customerId = supportRecord.customerId; if (!customerId) { const firstSensor = sensors.find(sensor => sensor.customerId); @@ -3999,8 +3998,9 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { return reply.code(404).send({ message: "Unable to determine customerId from support or sensors." }); } } + const orders = await Order.find({ customerId }).lean(); - //console.log("orders",orders) + const orderMap = {}; for (const order of orders) { (order.master_connections || []).forEach(conn => { @@ -4013,17 +4013,27 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { }); } + const slaveOrderMap = {}; + for (const order of orders) { + (order.tank_connections || []).forEach(conn => { + if (conn.hardwareId) { + slaveOrderMap[conn.hardwareId] = { + location: conn.location || null, + typeOfWater: conn.typeOfWater || null + }; + } + }); + } + const masterMap = {}; for (const issue of allIssues) { const masterId = issue.masterHardwareId || issue.hardwareId; const masterSensor = sensorMap[masterId]; if (!masterSensor || masterSensor.type !== "master") continue; - //console.log("masterSensor",masterSensor) if (!masterMap[masterSensor.hardwareId]) { const enriched = orderMap[masterSensor.hardwareId] || {}; - // console.log("enriched",enriched) masterMap[masterSensor.hardwareId] = { hardwareId: masterSensor.hardwareId, masterName: enriched.masterName || masterSensor.masterName || "", @@ -4052,40 +4062,12 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { }).lean(); const slaveSet = new Set(master.connected_slaves.map(s => s.hardwareId)); - console.log("slaveSet",slaveSet) - - // for (const slave of connectedSlaves) { - // const slaveHardwareId = slave.tankhardwareId || slave.hardwareId; - // if (slaveSet.has(slaveHardwareId)) continue; // Skip duplicates - // slaveSet.add(slaveHardwareId); - - // const slaveEnriched = { - // hardwareId: slaveHardwareId, - // tankName: slave.tankName || "", - // location: slave.location || "", - // connected_status: slave.connected_status, - // connected_lora_time: slave.connected_lora_time, - // connected_lora_date: slave.connected_lora_date, - // lora_last_check_time: slave.lora_last_check_time, - // lora_last_disconnect_time: slave.lora_last_disconnect_time, - // connected_to: slave.connected_to, - // masterName: master.masterName, - // type: "slave", - // typeOfWater: slave.typeOfWater || "", - // tankHeight: slave.tankHeight, - // support_lora_last_check_time: slave.support_lora_last_check_time, - // team_member_support_lora_last_check_time: slave.team_member_support_lora_last_check_time - // }; - - // master.connected_slaves.push(slaveEnriched); - // master.connected_slave_count++; - // } + for (const slave of connectedSlaves) { const slaveHardwareId = slave.tankhardwareId || slave.hardwareId; if (slaveSet.has(slaveHardwareId)) continue; slaveSet.add(slaveHardwareId); - - // Fetch tank data to fill missing location/typeOfWater + const tankInfo = await Tank.findOne({ $or: [ { hardwareId: slaveHardwareId }, @@ -4093,12 +4075,11 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { ] }).lean(); - console.log("tankInfo",tankInfo) - + const slaveOrderInfo = slaveOrderMap[slaveHardwareId] || {}; const slaveEnriched = { hardwareId: slaveHardwareId, tankName: slave.tankName || (tankInfo?.tankName ?? ""), - location: slave.location || (tankInfo?.location ?? ""), + location: slave.location || tankInfo?.tankLocation || slaveOrderInfo.location || "", connected_status: slave.connected_status, connected_lora_time: slave.connected_lora_time, connected_lora_date: slave.connected_lora_date, @@ -4107,16 +4088,15 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { connected_to: slave.connected_to, masterName: master.masterName, type: "slave", - typeOfWater: slave.typeOfWater || (tankInfo?.typeOfWater ?? ""), + typeOfWater: slave.typeOfWater || tankInfo?.typeOfWater || slaveOrderInfo.typeOfWater || "", tankHeight: slave.tankHeight, support_lora_last_check_time: slave.support_lora_last_check_time, team_member_support_lora_last_check_time: slave.team_member_support_lora_last_check_time }; - + master.connected_slaves.push(slaveEnriched); master.connected_slave_count++; } - } return reply.send({ @@ -4134,6 +4114,7 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => { + exports.getDisconnectedCustomerDetails = async (req, reply) => { try { const { supportId } = req.params;