feat(tkpurchase): 업무현황 다건 입력 + 작업자 시간 추적 + 종합 페이지

- DB: 유니크 제약 제거, report_seq 컬럼, work_report_workers 테이블
- API: 트랜잭션 기반 다건 생성/수정, 작업자 CRUD, 요약/엑셀 엔드포인트
- 협력업체 포탈: 다건 보고 UI, 작업자+시간 입력(자동완성), 수정 기능
- 업무현황 페이지: 보고순번/작업자 상세 표시
- 종합 페이지(NEW): 업체별/프로젝트별 취합, 엑셀 추출

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-13 09:43:33 +09:00
parent 48994cff1f
commit 976e55d672
14 changed files with 881 additions and 93 deletions

View File

@@ -27,10 +27,9 @@ async function findTodayByCompany(companyId) {
const db = getPool();
const [rows] = await db.query(
`SELECT pc.*, ps.work_description, ps.workplace_name,
(dwr.id IS NOT NULL) AS has_work_report
(SELECT COUNT(*) FROM partner_work_reports WHERE checkin_id = pc.id) AS work_report_count
FROM partner_work_checkins pc
LEFT JOIN partner_schedules ps ON pc.schedule_id = ps.id
LEFT JOIN partner_work_reports dwr ON dwr.checkin_id = pc.id
WHERE pc.company_id = ? AND DATE(pc.check_in_time) = CURDATE()
ORDER BY pc.check_in_time DESC`, [companyId]);
return rows;