This commit is contained in:
2026-01-04 17:24:47 +09:00
parent d1db71de61
commit a87c11597a
59 changed files with 15057 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
import { query } from '../../utils/db'
/**
* 프로젝트 목록 조회
* GET /api/project/list
*/
export default defineEventHandler(async (event) => {
const queryParams = getQuery(event)
const status = queryParams.status as string || null
let sql = `
SELECT p.*,
(SELECT employee_name FROM wr_employee_info e
JOIN wr_project_manager_history pm ON e.employee_id = pm.employee_id
WHERE pm.project_id = p.project_id AND pm.role_type = 'PM'
AND (pm.end_date IS NULL OR pm.end_date >= CURRENT_DATE)
LIMIT 1) as pm_name,
(SELECT employee_name FROM wr_employee_info e
JOIN wr_project_manager_history pm ON e.employee_id = pm.employee_id
WHERE pm.project_id = p.project_id AND pm.role_type = 'PL'
AND (pm.end_date IS NULL OR pm.end_date >= CURRENT_DATE)
LIMIT 1) as pl_name
FROM wr_project_info p
`
const params: any[] = []
if (status) {
sql += ' WHERE p.project_status = $1'
params.push(status)
}
sql += ' ORDER BY p.created_at DESC'
const projects = await query(sql, params)
return {
projects: projects.map((p: any) => ({
projectId: p.project_id,
projectCode: p.project_code,
projectName: p.project_name,
clientName: p.client_name,
projectDescription: p.project_description,
startDate: p.start_date,
endDate: p.end_date,
contractAmount: p.contract_amount,
projectStatus: p.project_status,
pmName: p.pm_name,
plName: p.pl_name,
createdAt: p.created_at
}))
}
})