Fix: Worker/Project status update and filtering issues

- Added cache invalidation for Workers and Projects
- Implemented server-side status filtering for Workers
- Fixed worker update query bug (removed non-existent join_date column)
- Updated daily-work-report UI to fetch only active workers
This commit is contained in:
Hyungi Ahn
2026-01-06 15:50:40 +09:00
parent 3549710325
commit 48fff7df64
6 changed files with 226 additions and 187 deletions

View File

@@ -79,7 +79,6 @@ const update = async (worker, callback) => {
worker_id,
worker_name,
job_type,
join_date,
status,
phone_number,
email,
@@ -92,7 +91,6 @@ const update = async (worker, callback) => {
`UPDATE workers
SET worker_name = ?,
job_type = ?,
join_date = ?,
status = ?,
phone_number = ?,
email = ?,
@@ -103,7 +101,6 @@ const update = async (worker, callback) => {
[
worker_name,
job_type,
formatDate(join_date),
status,
phone_number,
email,
@@ -116,7 +113,7 @@ const update = async (worker, callback) => {
callback(null, result.affectedRows);
} catch (err) {
callback(new Error(err.message || String(err)));
callback(new Error(err.message || String(err)));
}
};
@@ -124,12 +121,12 @@ const update = async (worker, callback) => {
const remove = async (worker_id, callback) => {
const db = await getDb();
const conn = await db.getConnection();
try {
await conn.beginTransaction();
console.log(`🗑️ 작업자 삭제 시작: worker_id=${worker_id}`);
// 안전한 삭제: 각 테이블을 개별적으로 처리하고 오류가 발생해도 계속 진행
const tables = [
{ name: 'users', query: 'UPDATE users SET worker_id = NULL WHERE worker_id = ?', action: '업데이트' },
@@ -142,7 +139,7 @@ const remove = async (worker_id, callback) => {
{ name: 'monthly_worker_status', query: 'DELETE FROM monthly_worker_status WHERE worker_id = ?', action: '삭제' },
{ name: 'worker_groups', query: 'DELETE FROM worker_groups WHERE worker_id = ?', action: '삭제' }
];
for (const table of tables) {
try {
const [result] = await conn.query(table.query, [worker_id]);
@@ -153,17 +150,17 @@ const remove = async (worker_id, callback) => {
console.log(`⚠️ ${table.name} 테이블 ${table.action} 실패 (무시): ${tableError.message}`);
}
}
// 마지막으로 작업자 삭제
const [result] = await conn.query(
`DELETE FROM workers WHERE worker_id = ?`,
[worker_id]
);
console.log(`✅ 작업자 삭제 완료: ${result.affectedRows}`);
await conn.commit();
callback(null, result.affectedRows);
} catch (err) {
await conn.rollback();
console.error(`❌ 작업자 삭제 오류 (worker_id: ${worker_id}):`, err);