작업계획서대로 진행
This commit is contained in:
64
backend/api/maintenance/report/available.get.ts
Normal file
64
backend/api/maintenance/report/available.get.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import { query } from '../../../utils/db'
|
||||
|
||||
/**
|
||||
* 주간보고 연계용 유지보수 업무 조회
|
||||
* 해당 주차에 완료된 유지보수 업무 목록
|
||||
* GET /api/maintenance/report/available
|
||||
*/
|
||||
export default defineEventHandler(async (event) => {
|
||||
const params = getQuery(event)
|
||||
const projectId = params.projectId ? Number(params.projectId) : null
|
||||
const weekStartDate = params.weekStartDate as string
|
||||
const weekEndDate = params.weekEndDate as string
|
||||
|
||||
if (!projectId) {
|
||||
throw createError({ statusCode: 400, message: '프로젝트 ID가 필요합니다.' })
|
||||
}
|
||||
|
||||
// 해당 주차에 완료된 유지보수 업무 (아직 주간보고에 연결 안 된 것)
|
||||
const sql = `
|
||||
SELECT
|
||||
m.task_id,
|
||||
m.request_date,
|
||||
m.request_title,
|
||||
m.request_content,
|
||||
m.requester_name,
|
||||
m.task_type,
|
||||
m.priority,
|
||||
m.status,
|
||||
m.resolution_content,
|
||||
m.dev_completed_at,
|
||||
m.ops_completed_at,
|
||||
m.client_confirmed_at,
|
||||
m.weekly_report_id
|
||||
FROM wr_maintenance_task m
|
||||
WHERE m.project_id = $1
|
||||
AND m.status = 'COMPLETED'
|
||||
AND m.weekly_report_id IS NULL
|
||||
AND (
|
||||
(m.dev_completed_at >= $2 AND m.dev_completed_at <= $3)
|
||||
OR (m.ops_completed_at >= $2 AND m.ops_completed_at <= $3)
|
||||
OR (m.client_confirmed_at >= $2 AND m.client_confirmed_at <= $3)
|
||||
)
|
||||
ORDER BY m.dev_completed_at DESC NULLS LAST, m.task_id DESC
|
||||
`
|
||||
|
||||
const tasks = await query(sql, [projectId, weekStartDate, weekEndDate + ' 23:59:59'])
|
||||
|
||||
return {
|
||||
tasks: tasks.map((t: any) => ({
|
||||
taskId: t.task_id,
|
||||
requestDate: t.request_date,
|
||||
requestTitle: t.request_title,
|
||||
requestContent: t.request_content,
|
||||
requesterName: t.requester_name,
|
||||
taskType: t.task_type,
|
||||
priority: t.priority,
|
||||
status: t.status,
|
||||
resolutionContent: t.resolution_content,
|
||||
devCompletedAt: t.dev_completed_at,
|
||||
opsCompletedAt: t.ops_completed_at,
|
||||
clientConfirmedAt: t.client_confirmed_at
|
||||
}))
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user