|
|
@ -10131,7 +10131,6 @@ exports.sendToStoreHardwareList = async (req, reply) => {
|
|
|
|
|
|
|
|
|
|
|
|
if (!allRelatedSensors.length) return reply.code(404).send({ message: "No sensors found" });
|
|
|
|
if (!allRelatedSensors.length) return reply.code(404).send({ message: "No sensors found" });
|
|
|
|
|
|
|
|
|
|
|
|
// 🔍 Filter orders by optional storeId
|
|
|
|
|
|
|
|
let orders = [];
|
|
|
|
let orders = [];
|
|
|
|
if (storeId) {
|
|
|
|
if (storeId) {
|
|
|
|
orders = await Order.find({ customerId, storeId }).lean();
|
|
|
|
orders = await Order.find({ customerId, storeId }).lean();
|
|
|
@ -10177,10 +10176,17 @@ exports.sendToStoreHardwareList = async (req, reply) => {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
await Insensors.updateOne(
|
|
|
|
await Insensors.updateOne(
|
|
|
|
{ hardwareId: master.hardwareId },
|
|
|
|
{ hardwareId: master.hardwareId.trim() },
|
|
|
|
{ $set: { connected_status: gsmConnected ? "connected" : "disconnected" } }
|
|
|
|
{
|
|
|
|
|
|
|
|
$set: {
|
|
|
|
|
|
|
|
connected_status: gsmConnected ? "connected" : "disconnected",
|
|
|
|
|
|
|
|
outDoor_status: "inprogress store"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const updatedMaster = await Insensors.findOne({ hardwareId: master.hardwareId.trim() }).lean();
|
|
|
|
|
|
|
|
|
|
|
|
const slaveDetails = await Promise.all(slaves.map(async (slave) => {
|
|
|
|
const slaveDetails = await Promise.all(slaves.map(async (slave) => {
|
|
|
|
const slaveHardwareId = slave.tankhardwareId?.trim();
|
|
|
|
const slaveHardwareId = slave.tankhardwareId?.trim();
|
|
|
|
const matchedTank = latestIotData?.tanks?.find(tank => tank.tankhardwareId === slaveHardwareId);
|
|
|
|
const matchedTank = latestIotData?.tanks?.find(tank => tank.tankhardwareId === slaveHardwareId);
|
|
|
@ -10193,9 +10199,16 @@ exports.sendToStoreHardwareList = async (req, reply) => {
|
|
|
|
|
|
|
|
|
|
|
|
await Insensors.updateOne(
|
|
|
|
await Insensors.updateOne(
|
|
|
|
{ tankhardwareId: slaveHardwareId },
|
|
|
|
{ tankhardwareId: slaveHardwareId },
|
|
|
|
{ $set: { connected_status: loraConnected ? "connected" : "disconnected" } }
|
|
|
|
{
|
|
|
|
|
|
|
|
$set: {
|
|
|
|
|
|
|
|
connected_status: loraConnected ? "connected" : "disconnected",
|
|
|
|
|
|
|
|
outDoor_status: "inprogress store"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const updatedSlave = await Insensors.findOne({ tankhardwareId: slaveHardwareId }).lean();
|
|
|
|
|
|
|
|
|
|
|
|
const tankInfo = await Tank.findOne({
|
|
|
|
const tankInfo = await Tank.findOne({
|
|
|
|
$or: [
|
|
|
|
$or: [
|
|
|
|
{ hardwareId: slaveHardwareId },
|
|
|
|
{ hardwareId: slaveHardwareId },
|
|
|
@ -10203,31 +10216,24 @@ exports.sendToStoreHardwareList = async (req, reply) => {
|
|
|
|
]
|
|
|
|
]
|
|
|
|
}).lean();
|
|
|
|
}).lean();
|
|
|
|
|
|
|
|
|
|
|
|
const slaveComments = (support.comments || []).filter(
|
|
|
|
|
|
|
|
comment => comment.hardwareId === slave.hardwareId && comment.customerId === customerId
|
|
|
|
|
|
|
|
).map(c => ({
|
|
|
|
|
|
|
|
text: c.text,
|
|
|
|
|
|
|
|
commentsTime: c.createdAt ? moment(c.createdAt).tz("Asia/Kolkata").format("DD-MM-YYYY HH:mm") : null
|
|
|
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
hardwareId: slave.tankhardwareId,
|
|
|
|
hardwareId: updatedSlave.tankhardwareId,
|
|
|
|
tankName: slave.tankName || "",
|
|
|
|
tankName: updatedSlave.tankName || "",
|
|
|
|
location: slave.tankLocation || "",
|
|
|
|
location: updatedSlave.tankLocation || "",
|
|
|
|
connected_status: loraConnected ? "connected" : "disconnected",
|
|
|
|
connected_status: updatedSlave.connected_status,
|
|
|
|
connected_to: slave.connected_to || "",
|
|
|
|
connected_to: updatedSlave.connected_to || "",
|
|
|
|
gsm_last_check_time: slave.gsm_last_check_time || null,
|
|
|
|
gsm_last_check_time: updatedSlave.gsm_last_check_time || null,
|
|
|
|
gsm_last_disconnect_time: slave.gsm_last_disconnect_time || null,
|
|
|
|
gsm_last_disconnect_time: updatedSlave.gsm_last_disconnect_time || null,
|
|
|
|
lora_last_disconnect_time: slave.lora_last_disconnect_time || null,
|
|
|
|
lora_last_disconnect_time: updatedSlave.lora_last_disconnect_time || null,
|
|
|
|
connected_gsm_date: slave.connected_gsm_date || "",
|
|
|
|
connected_gsm_date: updatedSlave.connected_gsm_date || "",
|
|
|
|
connected_gsm_time: slave.connected_gsm_time || "",
|
|
|
|
connected_gsm_time: updatedSlave.connected_gsm_time || "",
|
|
|
|
connected_lora_date: slave.connected_lora_date || "",
|
|
|
|
connected_lora_date: updatedSlave.connected_lora_date || "",
|
|
|
|
connected_lora_time: slave.connected_lora_time || "",
|
|
|
|
connected_lora_time: updatedSlave.connected_lora_time || "",
|
|
|
|
support_lora_last_check_time: slave.support_lora_last_check_time || null,
|
|
|
|
support_lora_last_check_time: updatedSlave.support_lora_last_check_time || null,
|
|
|
|
masterName: orderMap[master.hardwareId?.trim()]?.masterName || "",
|
|
|
|
masterName: orderMap[master.hardwareId?.trim()]?.masterName || "",
|
|
|
|
type: "slave",
|
|
|
|
type: "slave",
|
|
|
|
typeOfWater: tankInfo?.typeOfWater || "",
|
|
|
|
typeOfWater: tankInfo?.typeOfWater || "",
|
|
|
|
outDoor_status: slave.outDoor_status || "inprogress"
|
|
|
|
outDoor_status: updatedSlave.outDoor_status
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}));
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
|
@ -10243,33 +10249,31 @@ exports.sendToStoreHardwareList = async (req, reply) => {
|
|
|
|
const issue = issueMap[master.hardwareId];
|
|
|
|
const issue = issueMap[master.hardwareId];
|
|
|
|
|
|
|
|
|
|
|
|
disconnectedIssues.push({
|
|
|
|
disconnectedIssues.push({
|
|
|
|
hardwareId: master.hardwareId,
|
|
|
|
hardwareId: updatedMaster.hardwareId,
|
|
|
|
masterName: orderDetails.masterName || "",
|
|
|
|
masterName: orderDetails.masterName || "",
|
|
|
|
location: orderDetails.location || "",
|
|
|
|
location: orderDetails.location || "",
|
|
|
|
type: "master",
|
|
|
|
type: "master",
|
|
|
|
connected_status: gsmConnected ? "connected" : "disconnected",
|
|
|
|
connected_status: updatedMaster.connected_status,
|
|
|
|
connected_slave_count: slaveDetails.length,
|
|
|
|
connected_slave_count: slaveDetails.length,
|
|
|
|
gsm_last_check_time: master.gsm_last_check_time || null,
|
|
|
|
gsm_last_check_time: updatedMaster.gsm_last_check_time || null,
|
|
|
|
gsm_last_disconnect_time: master.gsm_last_disconnect_time || null,
|
|
|
|
gsm_last_disconnect_time: updatedMaster.gsm_last_disconnect_time || null,
|
|
|
|
lora_last_disconnect_time: master.lora_last_disconnect_time || null,
|
|
|
|
lora_last_disconnect_time: updatedMaster.lora_last_disconnect_time || null,
|
|
|
|
connected_gsm_date: master.connected_gsm_date || "",
|
|
|
|
connected_gsm_date: updatedMaster.connected_gsm_date || "",
|
|
|
|
connected_gsm_time: master.connected_gsm_time || "",
|
|
|
|
connected_gsm_time: updatedMaster.connected_gsm_time || "",
|
|
|
|
connected_lora_date: master.connected_lora_date || "",
|
|
|
|
connected_lora_date: updatedMaster.connected_lora_date || "",
|
|
|
|
connected_lora_time: master.connected_lora_time || "",
|
|
|
|
connected_lora_time: updatedMaster.connected_lora_time || "",
|
|
|
|
support_gm_last_check_time: master.support_gsm_last_check_time || null,
|
|
|
|
support_gm_last_check_time: updatedMaster.support_gsm_last_check_time || null,
|
|
|
|
connected_slaves: slaveDetails,
|
|
|
|
connected_slaves: slaveDetails,
|
|
|
|
comments: masterComments,
|
|
|
|
comments: masterComments,
|
|
|
|
outDoor_status: master.outDoor_status || "inprogress",
|
|
|
|
outDoor_status: updatedMaster.outDoor_status,
|
|
|
|
movedAt: issue?.movedAt || null,
|
|
|
|
movedAt: issue?.movedAt || null,
|
|
|
|
resolvedAt: issue?.resolvedAt || null,
|
|
|
|
resolvedAt: issue?.resolvedAt || null,
|
|
|
|
category: issue?.category || "Uncategorized",
|
|
|
|
category: issue?.category || "Uncategorized",
|
|
|
|
hardwareList: master.hardwareList || {},
|
|
|
|
hardwareList: updatedMaster.hardwareList || {},
|
|
|
|
assignedTo: issue?.assignedTo || null
|
|
|
|
assignedTo: issue?.assignedTo || null
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ✅ Step: Update storeId in Orders where matching master_connections.hardwareId
|
|
|
|
|
|
|
|
// ✅ Step: Update storeId and type in Orders where matching master_connections.hardwareId
|
|
|
|
|
|
|
|
const updatedHardwareIds = disconnectedIssues.map(item => item.hardwareId);
|
|
|
|
const updatedHardwareIds = disconnectedIssues.map(item => item.hardwareId);
|
|
|
|
await Order.updateMany(
|
|
|
|
await Order.updateMany(
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -10279,7 +10283,7 @@ await Order.updateMany(
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$set: {
|
|
|
|
$set: {
|
|
|
|
storeId,
|
|
|
|
storeId,
|
|
|
|
type: type // Fallback if type is not passed
|
|
|
|
type: type
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
);
|
|
|
@ -10300,6 +10304,7 @@ await Order.updateMany(
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.updateHardwareList = async (req, reply) => {
|
|
|
|
exports.updateHardwareList = async (req, reply) => {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
const { supportId, customerId, hardwareId } = req.params;
|
|
|
|
const { supportId, customerId, hardwareId } = req.params;
|
|
|
|