Commit Graph

12 Commits

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

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 09:43:33 +09:00
Hyungi Ahn
48994cff1f fix: 업무현황 저장 시 report_date 누락 버그 수정
submitWorkReport에서 API 필수값인 report_date를 전송하지 않아
"보고일은 필수입니다" 에러 발생. 오늘 날짜를 자동으로 설정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 09:06:29 +09:00
Hyungi Ahn
1006e8479e fix: 로그아웃 후 자동 재로그인 버그 수정
쿠키를 단일 진실 출처로 만들어 서브도메인 간 로그아웃 불일치 해결:
- login.html: logout=1 파라미터 시 localStorage+쿠키 전부 정리 후 토큰 체크 스킵
- 각 시스템 logout 함수에 &logout=1 추가 (6개 파일)
- 각 시스템 initAuth에 쿠키 우선 검증 추가 (7개 파일)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 09:00:19 +09:00
Hyungi Ahn
3d6cedf667 fix: 작업일정 업체명 검색 필터 동작하도록 수정
프론트엔드는 company(텍스트)를 보내지만 백엔드는 company_id(정수)만
읽고 있어 업체명 필터가 무시되던 버그 수정. findAll()에서
pc.company_name LIKE 검색 지원 추가.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 08:34:39 +09:00
Hyungi Ahn
b5b0fa1728 feat: 작업일정 기간 기반 + 프로젝트 연결
- partner_schedules: work_date → start_date/end_date 기간 기반으로 변경
- project_id 컬럼 추가 (projects 테이블 연결, 선택사항)
- 프로젝트 조회 API 추가 (GET /projects/active)
- 일정 조회 시 기간 겹침 조건으로 필터링
- 체크인 시 기간 내 검증 추가
- 프론트엔드: 시작일/종료일 입력 + 프로젝트 선택 드롭다운
- 마이그레이션 SQL 포함 (scripts/migration-schedule-daterange.sql)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 08:18:53 +09:00
Hyungi Ahn
fa4c899d95 fix: 계정관리 API 경로 수정 — /partners/:id/accounts → /partner-accounts
프론트엔드에서 /partners/:id/accounts로 호출했지만 실제 API 라우트는
/partner-accounts/company/:id (GET), /partner-accounts (POST),
/partner-accounts/:id (PUT/DELETE). 4곳 경로 일치시킴.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 07:47:15 +09:00
Hyungi Ahn
9ac92f5775 fix: 협력업체 목록 안 뜨는 버그 수정 — c.name → c.company_name
partner_companies 테이블 컬럼명은 company_name인데 JS에서 c.name으로
접근하여 undefined가 반환되던 문제. accounts/schedule/workreport 3개 파일 6곳 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 07:44:56 +09:00
Hyungi Ahn
5945176ad4 fix: daily_work_reports 테이블명 충돌 → partner_work_reports로 변경
기존 TBM 시스템의 daily_work_reports 테이블과 이름 충돌.
협력업체 업무현황 테이블을 partner_work_reports로 분리.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 07:25:07 +09:00
Hyungi Ahn
efc3c14db5 fix: 배포 후 버그 수정 — 테이블명/컬럼명 불일치, navbar active, API 검증 강화, 대시보드 통계 라우트 추가
- checkinModel: partner_checkins → partner_work_checkins, countActive() 추가
- workReportModel: partner_work_reports → daily_work_reports
- partner-portal: check_out_at/check_in_at → check_out_time/check_in_time
- checkinModel findTodayByCompany: LEFT JOIN has_work_report
- tkpurchase-core/tksafety-core: navbar match '' 제거
- checkinController: checkOut에 업무현황 검증, stats() 추가
- workReportController: checkin_id 필수 + schedule 일치 검증
- checkinRoutes: GET / 대시보드 통계 라우트 추가
- nginx.conf: visit.html → tksafety 리다이렉트
- migration-purchase-safety.sql: DDL 동기화
- migration-purchase-safety-patch.sql: 신규 패치

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 07:22:25 +09:00
Hyungi Ahn
b800792152 feat: 구매/안전 시스템 전면 개편 — tkpurchase 개편 + tksafety 신규 + 권한 보강
Phase 1: tkuser 협력업체 CRUD 이관 (읽기전용 → 전체 CRUD)
Phase 2: tkpurchase 개편 — 일용공 신청/확정, 작업일정, 업무현황, 계정관리, 협력업체 포털
Phase 3: tksafety 신규 시스템 — 방문관리 + 안전교육 신고
Phase 4: SSO 인증 보강 (partner_company_id JWT, 만료일 체크), 권한 테이블 기반 접근 제어

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:42:59 +09:00
Hyungi Ahn
a195dd1d50 fix: JWT 디코딩 시 한글 깨짐 수정 (atob → TextDecoder)
atob()가 UTF-8 멀티바이트 문자를 Latin-1로 처리하여 한글 이름이
깨지는 문제 수정. Uint8Array + TextDecoder 패턴으로 교체.
tkpurchase, tkuser nginx에 charset utf-8 추가.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 16:06:21 +09:00
Hyungi Ahn
281f5d35d1 feat: tkpurchase 시스템 Phase 1 - 협력업체 마스터 + 당일 방문 관리
신규 독립 시스템 tkpurchase (구매/방문 관리) 구축:
- 협력업체 CRUD + 소속 작업자 관리 (마스터 데이터 소유)
- 당일 방문 등록/체크인/체크아웃 + 일괄 마감
- 업체 자동완성, CSV 내보내기, 집계 통계
- 자정 자동 체크아웃 (node-cron)
- tkuser 협력업체 읽기 전용 탭 + 권한 그리드(tkpurchase-perms) 추가
- docker-compose에 tkpurchase-api/web 서비스 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 15:45:37 +09:00