feat: 모델 및 데이터베이스 구조 개선
- 모델 파일들의 데이터베이스 연결 및 쿼리 최적화 - 마이그레이션 파일 정리 및 통합 - Docker 설정 파일 추가 - 프로젝트 시작/중지 스크립트 추가 - README 및 문서 업데이트
This commit is contained in:
@@ -54,7 +54,7 @@ const createDailyReport = async (reportData, callback) => {
|
||||
const [existingReports] = await conn.query(
|
||||
`SELECT dwr.created_by, u.name as created_by_name, COUNT(*) as count, SUM(dwr.work_hours) as total_hours
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Users u ON dwr.created_by = u.user_id
|
||||
LEFT JOIN users u ON dwr.created_by = u.user_id
|
||||
WHERE dwr.report_date = ? AND dwr.worker_id = ?
|
||||
GROUP BY dwr.created_by`,
|
||||
[report_date, worker_id]
|
||||
@@ -82,7 +82,7 @@ const [existingReports] = await conn.query(
|
||||
const [finalReports] = await conn.query(
|
||||
`SELECT dwr.created_by, u.name as created_by_name, COUNT(*) as count, SUM(dwr.work_hours) as total_hours
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Users u ON dwr.created_by = u.user_id
|
||||
LEFT JOIN users u ON dwr.created_by = u.user_id
|
||||
WHERE dwr.report_date = ? AND dwr.worker_id = ?
|
||||
GROUP BY dwr.created_by`,
|
||||
[report_date, worker_id]
|
||||
@@ -164,7 +164,7 @@ const getMyAccumulatedHours = async (date, worker_id, created_by, callback) => {
|
||||
ORDER BY created_at
|
||||
) as my_entries
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN projects p ON dwr.project_id = p.project_id
|
||||
WHERE dwr.report_date = ? AND dwr.worker_id = ? AND dwr.created_by = ?
|
||||
`;
|
||||
|
||||
@@ -216,8 +216,8 @@ const getContributorsByDate = async (date, worker_id, callback) => {
|
||||
ORDER BY dwr.created_at SEPARATOR ', '
|
||||
) as entry_details
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Users u ON dwr.created_by = u.user_id
|
||||
LEFT JOIN Projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN users u ON dwr.created_by = u.user_id
|
||||
LEFT JOIN projects p ON dwr.project_id = p.project_id
|
||||
WHERE dwr.report_date = ? AND dwr.worker_id = ?
|
||||
GROUP BY dwr.created_by
|
||||
ORDER BY total_hours DESC, first_entry ASC
|
||||
@@ -245,9 +245,9 @@ const removeSpecificEntry = async (entry_id, deleted_by, callback) => {
|
||||
const [entryInfo] = await conn.query(
|
||||
`SELECT dwr.*, w.worker_name, p.project_name, u.name as created_by_name
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN Projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN Users u ON dwr.created_by = u.user_id
|
||||
LEFT JOIN workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN users u ON dwr.created_by = u.user_id
|
||||
WHERE dwr.id = ?`,
|
||||
[entry_id]
|
||||
);
|
||||
@@ -333,12 +333,12 @@ const getSelectQuery = () => `
|
||||
dwr.created_at,
|
||||
dwr.updated_at
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN Projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN work_types wt ON dwr.work_type_id = wt.id
|
||||
LEFT JOIN work_status_types wst ON dwr.work_status_id = wst.id
|
||||
LEFT JOIN error_types et ON dwr.error_type_id = et.id
|
||||
LEFT JOIN Users u ON dwr.created_by = u.user_id
|
||||
LEFT JOIN users u ON dwr.created_by = u.user_id
|
||||
`;
|
||||
|
||||
/**
|
||||
@@ -524,7 +524,7 @@ const getSummaryByDate = async (date, callback) => {
|
||||
COUNT(*) as work_entries_count,
|
||||
SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as error_count
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN workers w ON dwr.worker_id = w.worker_id
|
||||
WHERE dwr.report_date = ?
|
||||
GROUP BY dwr.worker_id, dwr.report_date
|
||||
ORDER BY w.worker_name ASC
|
||||
@@ -553,7 +553,7 @@ const getSummaryByWorker = async (worker_id, callback) => {
|
||||
COUNT(*) as work_entries_count,
|
||||
SUM(CASE WHEN dwr.work_status_id = 2 THEN 1 ELSE 0 END) as error_count
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN workers w ON dwr.worker_id = w.worker_id
|
||||
WHERE dwr.worker_id = ?
|
||||
GROUP BY dwr.report_date, dwr.worker_id
|
||||
ORDER BY dwr.report_date DESC
|
||||
@@ -587,8 +587,8 @@ const getMonthlySummary = async (year, month, callback) => {
|
||||
GROUP_CONCAT(DISTINCT p.project_name ORDER BY p.project_name) as projects,
|
||||
GROUP_CONCAT(DISTINCT wt.name ORDER BY wt.name) as work_types
|
||||
FROM daily_work_reports dwr
|
||||
LEFT JOIN Workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN Projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN workers w ON dwr.worker_id = w.worker_id
|
||||
LEFT JOIN projects p ON dwr.project_id = p.project_id
|
||||
LEFT JOIN work_types wt ON dwr.work_type_id = wt.id
|
||||
WHERE dwr.report_date BETWEEN ? AND ?
|
||||
GROUP BY dwr.report_date, dwr.worker_id
|
||||
|
||||
Reference in New Issue
Block a user