v1.0.0
This commit is contained in:
@@ -28,10 +28,10 @@ class HistoryEntranceService {
|
||||
"sheep_id": Number(row.sheep_id),
|
||||
"working": Number(row.working) == 0 ? false : true,
|
||||
"date": {
|
||||
"start": Number(row.date_start),
|
||||
"end": row.date_end ? Number(row.date_end) : null
|
||||
"start": Number(row.date_start),
|
||||
"end": row.date_end ? Number(row.date_end) : null
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return res(data);
|
||||
@@ -43,7 +43,7 @@ class HistoryEntranceService {
|
||||
createHistoryEntrance(entrance_id, data) {
|
||||
return new Promise((res, rej) => {
|
||||
let sql = 'INSERT INTO entrance_history(entrance_id, name, date_start, group_id, sheep_id, working) VALUES (?, ?, ?, ?, ?, ?)';
|
||||
|
||||
|
||||
db.run(sql, [
|
||||
entrance_id,
|
||||
data.name,
|
||||
@@ -51,7 +51,7 @@ class HistoryEntranceService {
|
||||
Number(data.group_id),
|
||||
Number(data.sheep_id),
|
||||
1
|
||||
], function(err) {
|
||||
], function (err) {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
return res(false);
|
||||
@@ -64,31 +64,126 @@ class HistoryEntranceService {
|
||||
});
|
||||
}
|
||||
|
||||
updateHistoryEntrance(entrance_id) {
|
||||
updateHistoryEntrance(entrance_history_id) {
|
||||
return new Promise((res, rej) => {
|
||||
console.log(Number(entrance_id));
|
||||
|
||||
let sql = 'UPDATE entrance_history SET date_end = ?, working = ? WHERE id = ?';
|
||||
db.run(sql, [
|
||||
Math.floor(new Date(Date.now()).getTime()),
|
||||
0,
|
||||
Number(entrance_id)
|
||||
], function(err) {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
return res(false);
|
||||
} else if (this.changes === 0) {
|
||||
return res(false);
|
||||
} else {
|
||||
res({ "update": "ok", "id": entrance_id });
|
||||
const endTime = Date.now(); // 🕒 Час завершення
|
||||
const entranceHistoryId = Number(entrance_history_id);
|
||||
|
||||
// 🔧 Оновлюємо запис в entrance_history
|
||||
db.run(
|
||||
`UPDATE entrance_history SET date_end = ?, working = 0 WHERE id = ?`,
|
||||
[endTime, entranceHistoryId],
|
||||
function (err) {
|
||||
if (err || this.changes === 0) {
|
||||
console.error("❌ Помилка оновлення entrance_history:", err?.message);
|
||||
return res(false);
|
||||
}
|
||||
|
||||
// 🏢 Отримуємо entrance_id
|
||||
db.get(
|
||||
`SELECT entrance_id FROM entrance_history WHERE id = ?`,
|
||||
[entranceHistoryId],
|
||||
(err, entrance) => {
|
||||
if (err || !entrance) {
|
||||
console.error("❌ Помилка отримання під’їзду:", err?.message);
|
||||
return res(false);
|
||||
}
|
||||
|
||||
// 🧱 Отримуємо квартири
|
||||
db.all(
|
||||
`SELECT * FROM apartments WHERE entrance_id = ? ORDER BY id`,
|
||||
[entrance.entrance_id],
|
||||
(err, apartments) => {
|
||||
if (err) {
|
||||
console.error("❌ Помилка отримання квартир:", err.message);
|
||||
return res(false);
|
||||
}
|
||||
|
||||
if (!apartments.length) {
|
||||
return res({ update: "ok", id: entranceHistoryId, inserted: 0 });
|
||||
}
|
||||
|
||||
const toUpdate = apartments.filter(a => ![2, 6, 0, null].includes(a.status));
|
||||
|
||||
// 📝 Готуємо вставку в історію
|
||||
const stmtInsert = db.prepare(`
|
||||
INSERT INTO apartments_history
|
||||
(sheep_id, apartments_id, status, description, created_at)
|
||||
VALUES (?, ?, ?, ?, ?)
|
||||
`);
|
||||
|
||||
const stmtUpdate = db.prepare(`
|
||||
UPDATE apartments
|
||||
SET status = NULL, description = NULL, sheep_id = NULL, updated_at = ?
|
||||
WHERE id = ?
|
||||
`);
|
||||
|
||||
let completed = 0;
|
||||
let inserted = 0;
|
||||
|
||||
if (!toUpdate.length) {
|
||||
stmtInsert.finalize();
|
||||
stmtUpdate.finalize();
|
||||
return res({ update: "ok", id: entranceHistoryId, inserted: 0 });
|
||||
}
|
||||
|
||||
for (const apt of toUpdate) {
|
||||
// 🔄 Оновлюємо квартиру
|
||||
stmtUpdate.run([endTime, apt.id]);
|
||||
|
||||
// 🪵 Вставляємо в історію
|
||||
stmtInsert.run(
|
||||
[apt.sheep_id, apt.id, apt.status, apt.description, endTime],
|
||||
(err) => {
|
||||
if (!err) inserted++;
|
||||
completed++;
|
||||
if (completed === toUpdate.length) {
|
||||
stmtInsert.finalize();
|
||||
stmtUpdate.finalize();
|
||||
return res({
|
||||
update: "ok",
|
||||
id: entranceHistoryId,
|
||||
inserted,
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// return new Promise((res, rej) => {
|
||||
// console.log(Number(entrance_id));
|
||||
|
||||
// let sql = 'UPDATE entrance_history SET date_end = ?, working = ? WHERE id = ?';
|
||||
// db.run(sql, [
|
||||
// Math.floor(new Date(Date.now()).getTime()),
|
||||
// 0,
|
||||
// Number(entrance_id)
|
||||
// ], function(err) {
|
||||
// if (err) {
|
||||
// console.error(err.message);
|
||||
// return res(false);
|
||||
// } else if (this.changes === 0) {
|
||||
// return res(false);
|
||||
// } else {
|
||||
// res({ "update": "ok", "id": entrance_id });
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
}
|
||||
|
||||
deleteHistoryEntrance(entrance_id) {
|
||||
return new Promise((res, rej) => {
|
||||
db.run('DELETE FROM entrance_history WHERE id = ?', [Number(entrance_id)], function(err) {
|
||||
db.run('DELETE FROM entrance_history WHERE id = ?', [Number(entrance_id)], function (err) {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
return res(false);
|
||||
|
||||
Reference in New Issue
Block a user