feat: 작업자 관리 개선 - 작업보고서 표시/현장직 구분/퇴사 처리
작업자 관리 페이지에 3가지 상태 관리 기능을 추가했습니다: 1. 작업 보고서 표시 여부 (관리자 등은 작업보고서에 표시 안함) 2. 현장직/사무직 구분 (사무직은 출퇴근 관리 불필요) 3. 퇴사 처리 (퇴사자 별도 표시) ## 주요 변경사항 ### 데이터베이스 - **마이그레이션**: 20260119095549_add_worker_display_fields.js - workers 테이블에 show_in_work_reports (BOOLEAN) 추가 - workers 테이블에 employment_status (ENUM: employed, resigned) 추가 ### 백엔드 - **workerModel.js**: create, update 함수에 새로운 필드 처리 로직 추가 ### 프론트엔드 - **worker-management.html**: 작업자 모달에 3가지 체크박스 추가 - 작업 보고서에 표시 - 현장직 (활성화) - 사무직과 구분 - 퇴사 처리 - **worker-management.js**: - 퇴사자 카드 렌더링 시 별도 스타일 적용 - 새 필드 값 로드 및 저장 처리 - **daily-work-report.js**: - 작업 보고서 작성 시 show_in_work_reports=true이고 퇴사하지 않은 작업자만 표시 ## 배포 절차 ```bash cd api.hyungi.net npm run db:migrate ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -206,16 +206,21 @@ async function loadData() {
|
||||
async function loadWorkers() {
|
||||
try {
|
||||
console.log('Workers API 호출 중... (통합 API 사용)');
|
||||
// 활성 작업자 1000명까지 조회 (서버 사이드 필터링 적용)
|
||||
const data = await window.apiCall(`${window.API}/workers?status=active&limit=1000`);
|
||||
// 모든 작업자 1000명까지 조회
|
||||
const data = await window.apiCall(`${window.API}/workers?limit=1000`);
|
||||
const allWorkers = Array.isArray(data) ? data : (data.data || data.workers || []);
|
||||
|
||||
// 활성화된 작업자만 필터링
|
||||
// 작업 보고서에 표시할 작업자만 필터링
|
||||
// 1. show_in_work_reports가 true
|
||||
// 2. employment_status가 resigned가 아님
|
||||
workers = allWorkers.filter(worker => {
|
||||
return worker.status === 'active' || worker.is_active === 1 || worker.is_active === true;
|
||||
const showInReports = worker.show_in_work_reports !== 0 && worker.show_in_work_reports !== false;
|
||||
const notResigned = worker.employment_status !== 'resigned';
|
||||
return showInReports && notResigned;
|
||||
});
|
||||
|
||||
console.log(`✅ Workers 로드 성공: ${workers.length}명 (전체: ${allWorkers.length}명)`);
|
||||
console.log(`📊 필터링 조건: show_in_work_reports=true, employment_status≠resigned`);
|
||||
} catch (error) {
|
||||
console.error('작업자 로딩 오류:', error);
|
||||
throw error;
|
||||
|
||||
Reference in New Issue
Block a user