changes auto update gsm and lora

master^2
Bhaskar 4 months ago
parent 6263748322
commit 839bac5146

@ -5159,6 +5159,15 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
const masterSensor = sensorMap[masterId]; const masterSensor = sensorMap[masterId];
if (!masterSensor || masterSensor.type !== "master") continue; if (!masterSensor || masterSensor.type !== "master") continue;
const latestMasterData = await IotData.findOne({ hardwareId: masterSensor.hardwareId }).sort({ date: -1 }).lean();
const now = moment.tz("Asia/Kolkata");
let gsmConnected = false;
if (latestMasterData?.date) {
const gsmTime = moment.tz(latestMasterData.date, "Asia/Kolkata");
gsmConnected = now.diff(gsmTime, "minutes") <= 1;
}
if (!masterMap[masterSensor.hardwareId]) { if (!masterMap[masterSensor.hardwareId]) {
const enriched = orderMap[masterSensor.hardwareId] || {}; const enriched = orderMap[masterSensor.hardwareId] || {};
masterMap[masterSensor.hardwareId] = { masterMap[masterSensor.hardwareId] = {
@ -5166,7 +5175,7 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
masterName: enriched.masterName || masterSensor.masterName || "", masterName: enriched.masterName || masterSensor.masterName || "",
location: enriched.location || masterSensor.location || "", location: enriched.location || masterSensor.location || "",
type: "master", type: "master",
connected_status: masterSensor.connected_status, connected_status: gsmConnected ? "connected" : "disconnected",
gsm_last_check_time: masterSensor.gsm_last_check_time, gsm_last_check_time: masterSensor.gsm_last_check_time,
gsm_last_disconnect_time: masterSensor.gsm_last_disconnect_time, gsm_last_disconnect_time: masterSensor.gsm_last_disconnect_time,
connected_gsm_date: masterSensor.connected_gsm_date, connected_gsm_date: masterSensor.connected_gsm_date,
@ -5186,7 +5195,8 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
const connectedSlaves = await Insensors.find({ const connectedSlaves = await Insensors.find({
connected_to: masterSensor.hardwareId, connected_to: masterSensor.hardwareId,
type: "slave", type: "slave",
customerId }).lean(); customerId
}).lean();
const slaveSet = new Set(master.connected_slaves.map(s => s.hardwareId)); const slaveSet = new Set(master.connected_slaves.map(s => s.hardwareId));
@ -5203,11 +5213,19 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
}).lean(); }).lean();
const slaveOrderInfo = slaveOrderMap[slaveHardwareId] || {}; const slaveOrderInfo = slaveOrderMap[slaveHardwareId] || {};
const matchedTank = latestMasterData?.tanks?.find(t => t.tankhardwareId === slaveHardwareId);
let loraConnected = false;
if (matchedTank?.date && matchedTank.tankHeight !== "0") {
const loraTime = moment.tz(matchedTank.date, "Asia/Kolkata");
loraConnected = now.diff(loraTime, "minutes") <= 1;
}
const slaveEnriched = { const slaveEnriched = {
hardwareId: slaveHardwareId, hardwareId: slaveHardwareId,
tankName: slave.tankName || (tankInfo?.tankName ?? ""), tankName: slave.tankName || tankInfo?.tankName || "",
location: slave.location || tankInfo?.tankLocation || slaveOrderInfo.location || "", location: slave.location || tankInfo?.tankLocation || slaveOrderInfo.location || "",
connected_status: slave.connected_status, connected_status: loraConnected ? "connected" : "disconnected",
connected_lora_time: slave.connected_lora_time, connected_lora_time: slave.connected_lora_time,
connected_lora_date: slave.connected_lora_date, connected_lora_date: slave.connected_lora_date,
lora_last_check_time: slave.lora_last_check_time, lora_last_check_time: slave.lora_last_check_time,
@ -5226,10 +5244,7 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
} }
} }
// Map comments to only the text strings
const commentTexts = (supportRecord.comments || []).map(c => c.text); const commentTexts = (supportRecord.comments || []).map(c => c.text);
// Add these comments to each master in disconnectedIssues
for (const master of Object.values(masterMap)) { for (const master of Object.values(masterMap)) {
master.comments = commentTexts; master.comments = commentTexts;
} }
@ -5241,13 +5256,13 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
totalMasters: Object.keys(masterMap).length, totalMasters: Object.keys(masterMap).length,
disconnectedIssues: Object.values(masterMap) disconnectedIssues: Object.values(masterMap)
}); });
} catch (error) { } catch (error) {
console.error("Error fetching disconnected issues:", error); console.error("Error fetching disconnected issues:", error);
return reply.code(500).send({ error: "Internal server error" }); return reply.code(500).send({ error: "Internal server error" });
} }
}; };
// exports.getRemoveConnectedMastersWithSlaves = async (req, reply) => { // exports.getRemoveConnectedMastersWithSlaves = async (req, reply) => {
// try { // try {
// const { supportId } = req.params; // const { supportId } = req.params;

Loading…
Cancel
Save