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];
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]) {
const enriched = orderMap[masterSensor.hardwareId] || {};
masterMap[masterSensor.hardwareId] = {
@ -5166,7 +5175,7 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
masterName: enriched.masterName || masterSensor.masterName || "",
location: enriched.location || masterSensor.location || "",
type: "master",
connected_status: masterSensor.connected_status,
connected_status: gsmConnected ? "connected" : "disconnected",
gsm_last_check_time: masterSensor.gsm_last_check_time,
gsm_last_disconnect_time: masterSensor.gsm_last_disconnect_time,
connected_gsm_date: masterSensor.connected_gsm_date,
@ -5186,7 +5195,8 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
const connectedSlaves = await Insensors.find({
connected_to: masterSensor.hardwareId,
type: "slave",
customerId }).lean();
customerId
}).lean();
const slaveSet = new Set(master.connected_slaves.map(s => s.hardwareId));
@ -5203,11 +5213,19 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
}).lean();
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 = {
hardwareId: slaveHardwareId,
tankName: slave.tankName || (tankInfo?.tankName ?? ""),
tankName: slave.tankName || tankInfo?.tankName || "",
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_date: slave.connected_lora_date,
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);
// Add these comments to each master in disconnectedIssues
for (const master of Object.values(masterMap)) {
master.comments = commentTexts;
}
@ -5241,13 +5256,13 @@ exports.getDisconnectedIssuesBySupportId = async (req, reply) => {
totalMasters: Object.keys(masterMap).length,
disconnectedIssues: Object.values(masterMap)
});
} catch (error) {
console.error("Error fetching disconnected issues:", error);
return reply.code(500).send({ error: "Internal server error" });
}
};
// exports.getRemoveConnectedMastersWithSlaves = async (req, reply) => {
// try {
// const { supportId } = req.params;

Loading…
Cancel
Save