master^2
Bhaskar 3 months ago
parent 5c01fa5373
commit 6c5a6e67c2

@ -4557,42 +4557,85 @@ const generateTicketId = () => {
// console.log(`✅ New ticket raised for ${masterHardwareId}`); // console.log(`✅ New ticket raised for ${masterHardwareId}`);
// }; // };
// const raiseATicketLikeLogic = async (supportRecord, masterHardwareId, slaveData = []) => {
// const now = new Date();
// const formattedNow = new Date(now.getTime() + 19800000) // +05:30 offset in ms
// .toISOString()
// .replace("T", " ")
// .substring(0, 19);
// // Check if already categorized
// const alreadyCategorized = supportRecord.categorizedIssues.some(
// (catIssue) => catIssue.hardwareId === masterHardwareId
// );
// if (alreadyCategorized) {
// console.log(`⛔ Ticket for ${masterHardwareId} already categorized. Skipping.`);
// return;
// }
// // Check for existing unresolved, uncategorized ticket for same master
// const duplicateExists = supportRecord.issues.some((issue) => {
// return (
// issue.hardwareId === masterHardwareId &&
// issue.masterHardwareId === masterHardwareId &&
// issue.resolved === false &&
// issue.movedToCategory === false
// );
// });
// if (duplicateExists) {
// console.log(`⛔ Duplicate unresolved issue already exists for ${masterHardwareId}. Skipping.`);
// return;
// }
// // Prepare slave hardwareIds and names
// const slaveHardwareIds = slaveData.map((slave) => slave.tankhardwareId).sort();
// const slaveNames = slaveData.map((slave) => slave.sensorName || slave.tankName || "").sort();
// // Create new issue
// const newIssue = {
// type: "GSM or LoRa Disconnected",
// masterHardwareId,
// hardwareId: masterHardwareId,
// hardwareIds: slaveHardwareIds,
// slaveNames: slaveNames,
// resolved: false,
// movedToCategory: false,
// lastTicketRaisedAt: formattedNow,
// createdAt: formattedNow,
// };
// supportRecord.issues.push(newIssue);
// supportRecord.lastTicketRaisedAt = formattedNow;
// await supportRecord.save();
// console.log(`✅ New ticket raised for ${masterHardwareId}`);
// };
const raiseATicketLikeLogic = async (supportRecord, masterHardwareId, slaveData = []) => { const raiseATicketLikeLogic = async (supportRecord, masterHardwareId, slaveData = []) => {
const now = new Date(); const now = new Date();
const formattedNow = new Date(now.getTime() + 19800000) // +05:30 offset in ms const formattedNow = new Date(now.getTime() + 19800000) // +05:30 IST offset
.toISOString() .toISOString()
.replace("T", " ") .replace("T", " ")
.substring(0, 19); .substring(0, 19);
// Check if already categorized // ✅ If issue already exists anywhere for this hardwareId, SKIP
const alreadyCategorized = supportRecord.categorizedIssues.some( const issueAlreadyExists = [
(catIssue) => catIssue.hardwareId === masterHardwareId ...supportRecord.issues,
); ...supportRecord.categorizedIssues,
if (alreadyCategorized) { ...supportRecord.resolvedIssues
console.log(`⛔ Ticket for ${masterHardwareId} already categorized. Skipping.`); ].some((issue) => issue.hardwareId === masterHardwareId);
return;
}
// Check for existing unresolved, uncategorized ticket for same master if (issueAlreadyExists) {
const duplicateExists = supportRecord.issues.some((issue) => { console.log(`⛔ Issue already exists for ${masterHardwareId}. Not raising again.`);
return (
issue.hardwareId === masterHardwareId &&
issue.masterHardwareId === masterHardwareId &&
issue.resolved === false &&
issue.movedToCategory === false
);
});
if (duplicateExists) {
console.log(`⛔ Duplicate unresolved issue already exists for ${masterHardwareId}. Skipping.`);
return; return;
} }
// Prepare slave hardwareIds and names // ✅ Prepare slave hardwareIds and names
const slaveHardwareIds = slaveData.map((slave) => slave.tankhardwareId).sort(); const slaveHardwareIds = slaveData.map((s) => s.tankhardwareId).sort();
const slaveNames = slaveData.map((slave) => slave.sensorName || slave.tankName || "").sort(); const slaveNames = slaveData.map((s) => s.sensorName || s.tankName || "").sort();
// Create new issue // ✅ Create new issue
const newIssue = { const newIssue = {
type: "GSM or LoRa Disconnected", type: "GSM or LoRa Disconnected",
masterHardwareId, masterHardwareId,
@ -4612,6 +4655,7 @@ const raiseATicketLikeLogic = async (supportRecord, masterHardwareId, slaveData
console.log(`✅ New ticket raised for ${masterHardwareId}`); console.log(`✅ New ticket raised for ${masterHardwareId}`);
}; };
cron.schedule("*/1 * * * *", async () => { cron.schedule("*/1 * * * *", async () => {
try { try {
console.log("🔁 Running auto-disconnect ticket check..."); console.log("🔁 Running auto-disconnect ticket check...");

Loading…
Cancel
Save