fix(proxy-input): worker_id→user_id 수정 + 공통 입력 UI로 변경
백엔드: - proxyInputModel 전체 worker_id→user_id 전환 (작업보고서/휴가 매핑 실패 → 전부 미입력으로 표시되던 문제) 프론트: - 개별 입력 → 공통 입력 1개로 전환 프로젝트/공종/시간/부적합 한번 입력 → 선택된 전원에 적용 - 부서별 그룹핑 표시 - 적용 대상 칩 표시 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@ const ProxyInputModel = {
|
||||
SELECT ta.user_id, w.worker_name, ta.session_id
|
||||
FROM tbm_team_assignments ta
|
||||
JOIN tbm_sessions s ON ta.session_id = s.session_id
|
||||
JOIN workers w ON ta.user_id = w.worker_id
|
||||
JOIN workers w ON ta.user_id = w.user_id
|
||||
WHERE s.session_date = ? AND ta.user_id IN (${placeholders}) AND s.status != 'cancelled'
|
||||
`, [sessionDate, ...userIds]);
|
||||
return rows;
|
||||
@@ -27,9 +27,9 @@ const ProxyInputModel = {
|
||||
if (!userIds.length) return [];
|
||||
const placeholders = userIds.map(() => '?').join(',');
|
||||
const [rows] = await conn.query(`
|
||||
SELECT worker_id FROM workers WHERE worker_id IN (${placeholders}) AND status = 'active'
|
||||
SELECT user_id FROM workers WHERE user_id IN (${placeholders}) AND status = 'active'
|
||||
`, [...userIds]);
|
||||
return rows.map(r => r.worker_id);
|
||||
return rows.map(r => r.user_id);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -73,11 +73,11 @@ const ProxyInputModel = {
|
||||
|
||||
// 1. 활성 작업자
|
||||
const [workers] = await db.query(`
|
||||
SELECT w.worker_id AS user_id, w.worker_name, w.job_type,
|
||||
SELECT w.user_id, w.worker_name, w.job_type,
|
||||
COALESCE(d.department_name, '미배정') AS department_name
|
||||
FROM workers w
|
||||
LEFT JOIN departments d ON w.department_id = d.department_id
|
||||
WHERE w.status = 'active'
|
||||
WHERE w.status = 'active' AND w.user_id IS NOT NULL
|
||||
ORDER BY w.worker_name
|
||||
`);
|
||||
|
||||
@@ -87,7 +87,7 @@ const ProxyInputModel = {
|
||||
lu.worker_name AS leader_name, s.is_proxy_input
|
||||
FROM tbm_team_assignments ta
|
||||
JOIN tbm_sessions s ON ta.session_id = s.session_id
|
||||
LEFT JOIN workers lu ON s.leader_user_id = lu.worker_id
|
||||
LEFT JOIN workers lu ON s.leader_user_id = lu.user_id
|
||||
WHERE s.session_date = ? AND s.status != 'cancelled'
|
||||
`, [date]);
|
||||
|
||||
@@ -191,11 +191,11 @@ const ProxyInputModel = {
|
||||
|
||||
// 작업자 정보
|
||||
const [workerRows] = await db.query(`
|
||||
SELECT w.worker_id AS user_id, w.worker_name, w.job_type,
|
||||
SELECT w.user_id, w.worker_name, w.job_type,
|
||||
COALESCE(d.department_name, '미배정') AS department_name
|
||||
FROM workers w
|
||||
LEFT JOIN departments d ON w.department_id = d.department_id
|
||||
WHERE w.worker_id = ?
|
||||
WHERE w.user_id = ?
|
||||
`, [userId]);
|
||||
|
||||
// TBM 세션
|
||||
@@ -206,7 +206,7 @@ const ProxyInputModel = {
|
||||
p.project_name, wt.work_type_name, ta.work_hours
|
||||
FROM tbm_team_assignments ta
|
||||
JOIN tbm_sessions s ON ta.session_id = s.session_id
|
||||
LEFT JOIN workers lu ON s.leader_user_id = lu.worker_id
|
||||
LEFT JOIN workers lu ON s.leader_user_id = lu.user_id
|
||||
LEFT JOIN sso_users pu ON s.proxy_input_by = pu.user_id
|
||||
LEFT JOIN projects p ON ta.project_id = p.project_id
|
||||
LEFT JOIN work_types wt ON ta.work_type_id = wt.work_type_id
|
||||
|
||||
Reference in New Issue
Block a user