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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user