duplicate issue automic raise a ticket

master^2
Bhaskar 4 months ago
parent 7ad407187c
commit b28580bbd6

@ -3586,10 +3586,12 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
const existingIssues = supportRecord.issues || [];
// Find existing unresolved issue
const existingMasterIssue = existingIssues.find(
issue =>
issue.hardwareId === connected_to &&
issue.type === "GSM or LoRa Disconnected"
issue.type === "GSM or LoRa Disconnected" &&
issue.resolved !== true // <-- only unresolved
);
const alreadyReportedSlaves = new Set(
@ -3614,7 +3616,7 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
(newSlaveHardwareIds.length > 0 || !existingMasterIssue)
) {
if (!existingMasterIssue) {
// Create new issue
// Create new issue with resolved: false
const newIssue = {
type: "GSM or LoRa Disconnected",
masterHardwareId: connected_to,
@ -3623,7 +3625,8 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
slaveNames: newSlaveNames,
message: `Master ${connected_to} is disconnected along with ${newSlaveHardwareIds.length} new slave(s)`,
disconnectedAt: lastDataTime,
lastTicketRaisedAt: formattedNow // <-- NEW FIELD
lastTicketRaisedAt: formattedNow,
resolved: false // <--- add resolved flag here
};
await Support.findOneAndUpdate(
@ -3634,7 +3637,7 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
}
);
} else {
// Update existing issue
// Update existing unresolved issue only
await Support.findOneAndUpdate(
{ supportId: "AWHYSU64" },
{
@ -3649,7 +3652,7 @@ const raiseATicketLikeLogic = async (customerId, connected_to) => {
},
{
arrayFilters: [
{ "elem.hardwareId": connected_to, "elem.type": "GSM or LoRa Disconnected" }
{ "elem.hardwareId": connected_to, "elem.type": "GSM or LoRa Disconnected", "elem.resolved": false }
]
}
);

Loading…
Cancel
Save