package com.zioinfo.mes.progress.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 진행관리 매퍼 — 작업지시/공정 진척률·계획대비실적·실시간 생산현황·지연 집계.
 *
 * <p>기존 mes_workorder / mes_process_progress / mes_job / mes_plan 을 조회·집계한다(읽기 전용).
 */
@Mapper
public interface ProgressMapper {

    /** 작업지시별 진척률(produced/plan) — 진행중·완료 위주. */
    List<Map<String, Object>> workorderProgress(@Param("status") String status);

    /** 단일 작업지시 진척 상세(작업지시 + 공정 진행 목록). */
    Map<String, Object> workorderProgressOne(@Param("id") Long id);

    /** 작업지시별 공정 진행 목록. */
    List<Map<String, Object>> processProgressByWo(@Param("workorderId") Long workorderId);

    /** 실시간 가동 공정(RUNNING) 현황. */
    List<Map<String, Object>> liveProcess();

    /** 계획 대비 실적(품목별: 계획수량 vs 생산수량 vs 진행작업지시). */
    List<Map<String, Object>> planVsActual(@Param("days") int days);

    /** 지연 작업지시(due_date 경과 + 미완료). */
    List<Map<String, Object>> delayedWorkorders();

    /** 지연 작업(planned_end 경과 + 미완료 job). */
    List<Map<String, Object>> delayedJobs();

    /** 전체 진척 요약(KPI). */
    Map<String, Object> progressSummary();
}
