Files
weeklyreport/backend/api/business-report/list.get.ts

52 lines
1.4 KiB
TypeScript

import { query } from '../../utils/db'
/**
* 사업 주간보고 목록 조회
* GET /api/business-report/list
*/
export default defineEventHandler(async (event) => {
const params = getQuery(event)
const businessId = params.businessId ? Number(params.businessId) : null
const year = params.year ? Number(params.year) : new Date().getFullYear()
let sql = `
SELECT
br.*,
b.business_name,
e.employee_name as created_by_name
FROM wr_business_weekly_report br
JOIN wr_business b ON br.business_id = b.business_id
LEFT JOIN wr_employee_info e ON br.created_by = e.employee_id
WHERE br.report_year = $1
`
const queryParams: any[] = [year]
let paramIndex = 2
if (businessId) {
sql += ` AND br.business_id = $${paramIndex++}`
queryParams.push(businessId)
}
sql += ' ORDER BY br.report_week DESC, br.business_id'
const reports = await query(sql, queryParams)
return {
reports: reports.map((r: any) => ({
businessReportId: r.business_report_id,
businessId: r.business_id,
businessName: r.business_name,
reportYear: r.report_year,
reportWeek: r.report_week,
weekStartDate: r.week_start_date,
weekEndDate: r.week_end_date,
aiSummary: r.ai_summary,
manualSummary: r.manual_summary,
status: r.status,
createdByName: r.created_by_name,
createdAt: r.created_at,
updatedAt: r.updated_at
}))
}
})