refactor: worker_id → user_id 전체 마이그레이션 (Phase 1-4)
sso_users.user_id를 단일 식별자로 통합. JWT에서 worker_id 제거, department_id/is_production 추가. 백엔드 15개 모델, 11개 컨트롤러, 4개 서비스, 7개 라우트, 프론트엔드 32+ JS/11+ HTML 변환. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -17,13 +17,13 @@ const logger = require('../utils/logger');
|
||||
* @returns {Promise<object>} 생성 결과 또는 에러
|
||||
*/
|
||||
const createDailyWorkReportService = async (reportData) => {
|
||||
const { report_date, worker_id, work_entries, created_by, created_by_name } = reportData;
|
||||
const { report_date, user_id, work_entries, created_by, created_by_name } = reportData;
|
||||
|
||||
// 1. 기본 유효성 검사
|
||||
if (!report_date || !worker_id || !work_entries) {
|
||||
if (!report_date || !user_id || !work_entries) {
|
||||
throw new ValidationError('필수 필드가 누락되었습니다', {
|
||||
required: ['report_date', 'worker_id', 'work_entries'],
|
||||
received: { report_date, worker_id, work_entries: !!work_entries }
|
||||
required: ['report_date', 'user_id', 'work_entries'],
|
||||
received: { report_date, user_id, work_entries: !!work_entries }
|
||||
});
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ const createDailyWorkReportService = async (reportData) => {
|
||||
// 3. 모델에 전달할 데이터 준비
|
||||
const modelData = {
|
||||
report_date,
|
||||
worker_id: parseInt(worker_id),
|
||||
user_id: parseInt(user_id),
|
||||
entries: work_entries.map(entry => ({
|
||||
project_id: entry.project_id,
|
||||
work_type_id: entry.task_id, // task_id를 work_type_id로 매핑
|
||||
@@ -83,7 +83,7 @@ const createDailyWorkReportService = async (reportData) => {
|
||||
|
||||
logger.info('작업보고서 생성 요청', {
|
||||
date: report_date,
|
||||
worker: worker_id,
|
||||
worker: user_id,
|
||||
creator: created_by_name,
|
||||
entries_count: modelData.entries.length
|
||||
});
|
||||
@@ -117,7 +117,7 @@ const createDailyWorkReportService = async (reportData) => {
|
||||
* @returns {Promise<Array>} 조회된 작업 보고서 배열
|
||||
*/
|
||||
const getDailyWorkReportsService = async (queryParams, userInfo) => {
|
||||
const { date, start_date, end_date, worker_id, created_by: requested_created_by, view_all } = queryParams;
|
||||
const { date, start_date, end_date, user_id, created_by: requested_created_by, view_all } = queryParams;
|
||||
const { user_id: current_user_id, role } = userInfo;
|
||||
|
||||
// 날짜 또는 날짜 범위 중 하나는 필수
|
||||
@@ -142,8 +142,8 @@ const getDailyWorkReportsService = async (queryParams, userInfo) => {
|
||||
options.end_date = end_date;
|
||||
}
|
||||
|
||||
if (worker_id) {
|
||||
options.worker_id = parseInt(worker_id);
|
||||
if (user_id) {
|
||||
options.user_id = parseInt(user_id);
|
||||
}
|
||||
|
||||
// 최종적으로 필터링할 작성자 ID 결정
|
||||
@@ -285,16 +285,16 @@ const getStatisticsService = async (queryParams) => {
|
||||
|
||||
/**
|
||||
* 일일 또는 작업자별 작업 요약 정보를 조회하는 비즈니스 로직을 처리합니다.
|
||||
* @param {object} queryParams - 컨트롤러에서 전달된 쿼리 파라미터 (date 또는 worker_id)
|
||||
* @param {object} queryParams - 컨트롤러에서 전달된 쿼리 파라미터 (date 또는 user_id)
|
||||
* @returns {Promise<object>} 요약 데이터
|
||||
*/
|
||||
const getSummaryService = async (queryParams) => {
|
||||
const { date, worker_id } = queryParams;
|
||||
const { date, user_id } = queryParams;
|
||||
|
||||
if (!date && !worker_id) {
|
||||
if (!date && !user_id) {
|
||||
throw new ValidationError('날짜 또는 작업자 ID가 필요합니다', {
|
||||
required: 'date OR worker_id',
|
||||
received: { date, worker_id }
|
||||
required: 'date OR user_id',
|
||||
received: { date, user_id }
|
||||
});
|
||||
}
|
||||
|
||||
@@ -304,10 +304,10 @@ const getSummaryService = async (queryParams) => {
|
||||
const result = await dailyWorkReportModel.getSummaryByDate(date);
|
||||
logger.info('일일 요약 조회 성공', { date });
|
||||
return result;
|
||||
} else { // worker_id
|
||||
logger.info('작업자별 요약 조회 요청', { worker_id });
|
||||
const result = await dailyWorkReportModel.getSummaryByWorker(worker_id);
|
||||
logger.info('작업자별 요약 조회 성공', { worker_id });
|
||||
} else { // user_id
|
||||
logger.info('작업자별 요약 조회 요청', { user_id });
|
||||
const result = await dailyWorkReportModel.getSummaryByWorker(user_id);
|
||||
logger.info('작업자별 요약 조회 성공', { user_id });
|
||||
return result;
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user