fix(sprint004): 코드 리뷰 반영 — vacation_days 소수 + 이중제출 방지 + deprecated 테이블 전환

- monthlyComparisonModel: vacation_types.deduct_days AS vacation_days 추가
- monthlyComparisonController: vacationDays++ → parseFloat(attend.vacation_days) 소수 지원
- monthly-comparison.js: confirmMonth/submitReject 이중 제출 방지 (isProcessing 플래그)
- vacationBalanceModel: create/update/delete/bulkCreate → sp_vacation_balances + balance_type 매핑

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-31 10:42:12 +09:00
parent 1980c83377
commit f3b7f1a34f
4 changed files with 368 additions and 108 deletions

View File

@@ -77,7 +77,7 @@ const vacationBalanceModel = {
*/
async create(balanceData) {
const db = await getDb();
const [result] = await db.query(`INSERT INTO vacation_balance_details SET ?`, balanceData);
const [result] = await db.query(`INSERT INTO sp_vacation_balances SET ?`, balanceData);
return result;
},
@@ -86,7 +86,7 @@ const vacationBalanceModel = {
*/
async update(id, updateData) {
const db = await getDb();
const [result] = await db.query(`UPDATE vacation_balance_details SET ? WHERE id = ?`, [updateData, id]);
const [result] = await db.query(`UPDATE sp_vacation_balances SET ? WHERE id = ?`, [updateData, id]);
return result;
},
@@ -95,7 +95,7 @@ const vacationBalanceModel = {
*/
async delete(id) {
const db = await getDb();
const [result] = await db.query(`DELETE FROM vacation_balance_details WHERE id = ?`, [id]);
const [result] = await db.query(`DELETE FROM sp_vacation_balances WHERE id = ?`, [id]);
return result;
},
@@ -166,8 +166,8 @@ const vacationBalanceModel = {
}
const db = await getDb();
const query = `INSERT INTO vacation_balance_details
(user_id, vacation_type_id, year, total_days, used_days, notes, created_by)
const query = `INSERT INTO sp_vacation_balances
(user_id, vacation_type_id, year, total_days, used_days, notes, created_by, balance_type)
VALUES ?`;
const values = balances.map(b => [
@@ -177,7 +177,8 @@ const vacationBalanceModel = {
b.total_days || 0,
b.used_days || 0,
b.notes || null,
b.created_by
b.created_by,
b.balance_type || 'AUTO'
]);
const [result] = await db.query(query, [values]);