using System.Collections.Generic;
using WebApiClient;
using WebApiClient.Attributes;
using AMESCoreStudio.WebApi;
using Microsoft.AspNetCore.Mvc;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.WebApi.Models.BAS;
using AMESCoreStudio.WebApi.DTO.AMES;
using AMESCoreStudio.CommonTools.Result;

namespace AMESCoreStudio.Web
{
    [JsonReturn]
    public interface IWHS:IHttpApi
    {
        #region WHS001 工作群組維護

        /// <summary>
        /// 新增工作群組
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/WorkGroups")]
        ITask<ResultModel<WorkGroup>> PostWorkGroups([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新工作群組
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/WorkGroups/{id}")]
        ITask<ResultModel<WorkGroup>> PutWorkGroups(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除工作群組
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/WorkGroups/{id}")]
        ITask<ResultModel<string>> DeleteWorkGroups(int id);

        /// <summary>
        /// 根據ID獲取指定工單狀態資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkGroups/{id}")]
        ITask<List<WorkGroup>> GetWorkGroups(int id);

        /// <summary>
        /// 獲取工單狀態資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkGroups")]
        ITask<List<WorkGroup>> GetWorkGroups();

        #endregion

        #region WHS002 工時類別維護

        /// <summary>
        /// 新增工時類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/WorkClasses")]
        ITask<ResultModel<WorkClass>> PostWorkClass([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新工時類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/WorkClasses/{id}")]
        ITask<ResultModel<WorkClass>> PutWorkClass(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除工時類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/WorkClasses/{id}")]
        ITask<ResultModel<string>> DeleteWorkClass(int id);

        /// <summary>
        /// 根據ID獲取指定工時類別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkClasses/{id}")]
        ITask<List<WorkClass>> GetWorkClasses(int id);

        /// <summary>
        /// 獲取工時類別資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkClasses")]
        ITask<List<WorkClass>> GetWorkClasses();

        #endregion

        #region WHS003 標準工時維護

        /// <summary>
        /// 新增標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/StandardWorkTimes")]
        ITask<ResultModel<StandardWorkTime>> PostStandardWorkTime([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/StandardWorkTimes/{id}")]
        ITask<ResultModel<StandardWorkTime>> PutStandardWorkTime(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/StandardWorkTimes/{id}")]
        ITask<ResultModel<string>> DeleteStandardWorkTime(int id);  //yiru modify

        /// <summary>
        /// 根據ID獲取指定標準工時資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes/{id}")]
        ITask<List<StandardWorkTime>> GetStandardWorkTime(int id);

        /// <summary>
        /// 獲取標準工時資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes")]
        ITask<List<StandardWorkTime>> GetStandardWorkTimes();

        /// <summary>
        /// 獲取標準工時資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes/WHS003/{u}/{l}/{i}")]
        ITask<List<StandardWorkTime>> GetStandardWorkTimes003(string u,int l,string i);

        /// <summary>
        /// 獲取標準工時資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes/WHS005/{u}/{l}/{i}")]
        ITask<List<StandardWorkTime>> GetStandardWorkTimes005(string u, string l, string i);
        #endregion

        #region WHS006 每日工時資料維護

        /// <summary>
        /// 新增每日工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/WorkManPowers")]
        ITask<ResultModel<WorkManPower>> PostWorkManPower([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新每日工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/WorkManPowers/{id}")]
        ITask<ResultModel<WorkManPower>> PutWorkManPower(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除每日工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/WorkManPowers/{id}")]
        ITask<ResultModel<string>> DeleteWorkManPower(int id);

        /// <summary>
        /// 根據ID獲取指定每日工時資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkManPowers/{id}")]
        ITask<List<WorkManPower>> GetWorkManPower(int id);

        /// <summary>
        /// 獲取每日工時資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkManPowers")]
        ITask<List<WorkManPower>> GetWorkManPowers();

        /// <summary>
        /// 查詢每日工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkManPowers/Query/{factoryid}/{unitid}/{lineid}/{classID}/{stationID}/{userNo}/{deptID}/{sdate}/{edate}")]
        ITask<List<WorkManPower>> GetWorkManPowersByQuery(string factoryid, string unitid, string lineid, string classID, string stationID, string userNo, string deptID, string sdate, string edate);

        #endregion

        #region WHS007 異常原因維護

        /// <summary>
        /// 新增異常原因
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/ErrorReasons")]
        ITask<ResultModel<ErrorReason>> PostErrorReason([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新異常原因
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/ErrorReasons/{id}")]
        ITask<ResultModel<ErrorReason>> PutErrorReason(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除異常原因
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/ErrorReasons/{id}")]
        ITask<ResultModel<string>> DeleteErrorReason(string id);

        /// <summary>
        /// 根據ID獲取指定異常原因資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ErrorReasons/{id}")]
        ITask<List<ErrorReason>> GetErrorReason(string id);

        /// <summary>
        /// 獲取異常原因資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ErrorReasons")]
        ITask<List<ErrorReason>> GetErrorReasons();

        /// <summary>
        /// 根据類別代碼獲取原因資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ErrorReasons/Class/{no}")]
        ITask<List<ErrorReason>> GetErrorReasonsByClass(string no);

        #endregion

        #region WHS008 工時援入/外資料維護

        /// <summary>
        /// 新增工時援入/外
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/SupportUsers")]
        ITask<ResultModel<SupportUser>> PostSupportUser([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新工時援入/外
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/SupportUsers/{id}")]
        ITask<ResultModel<SupportUser>> PutSupportUser(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除工時援入/外
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/SupportUsers/{id}")]
        ITask<ResultModel<SupportUser>> DeleteSupportUser(int id);

        /// <summary>
        /// 獲取指定工時援入/外群組資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/SupportUsers/")]
        ITask<List<SupportUser>> GetSupportUsers();

        /// <summary>
        /// 根據ID獲取指定工時援入/外群組資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/SupportUsers/{id}")]
        ITask<List<SupportUser>> GetSupportUser(int id);

        /// <summary>
        /// 援入援外綜合查詢
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/SupportUsers/Query/{f}/{type}/{unit}/{sd}/{ed}")]
        ITask<List<SupportUser>> GetSupportUserByQuery(string f, string type, string unit, string sd, string ed);

        #endregion

        #region WHS009 異常工時維護

        /// <summary>
        /// 新增異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/ExceptionWorktimes")]
        ITask<ResultModel<ExceptionWorktime>> PostExceptionWorktime([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/ExceptionWorktimes/{id}")]
        ITask<ResultModel<ExceptionWorktime>> PutExceptionWorktime(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/ExceptionWorktimes/{id}")]
        ITask<ResultModel<ExceptionWorktime>> DeleteExceptionWorktime(int id);

        /// <summary>
        /// 根據ID獲取指定異常工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimes/{id}")]
        ITask<List<ExceptionWorktime>> GetExceptionWorktime(string id);




        /// <summary>
        /// 新增異常工時附件
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/ExceptionWorktimeBlobs")]
        ITask<ResultModel<ExceptionWorktimeBlob>> PostExceptionWorktimeBlobs([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新異常工時附件
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/ExceptionWorktimeBlobs/{id}")]
        ITask<ResultModel<ExceptionWorktimeBlob>> PutExceptionWorktimeBlobs(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/ExceptionWorktimeBlobs/{id}")]
        ITask<ResultModel<ExceptionWorktimeBlob>> DeleteExceptionWorktimeBlobs(int id);

        /// <summary>
        /// 根據ID獲取指定異常工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimeBlobs/{id}")]
        ITask<List<ExceptionWorktimeBlob>> GetExceptionWorktimeBlobs(int id);







        /// <summary>
        /// 獲取異常工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimes")]
        ITask<List<ExceptionWorktime>> GetExceptionWorktimes();

        /// <summary>
        /// 查詢線上異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimes/Query/{factoryid}/{unitid}/{lineid}/{deptid}/{sdate}/{edate}")]
        ITask<List<ExceptionWorktime>> GetExceptionWorktimeByQuery(string factoryid, string unitid, string lineid, string deptid, string sdate, string edate);

        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimes/ByQueryWHS009/{factoryid}/{unitid}/{lineid}/{deptid}/{sdate}/{edate}")]
        ITask<List<ExceptionWorktimeDto>> GetExceptionWorktimeByQueryWHS009(string factoryid, string unitid, string lineid, string deptid, string sdate, string edate);

        #endregion

        #region WHS011 重工標準工時維護

        /// <summary>
        /// 新增重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/StandardWorkTimeReworks")]
        ITask<ResultModel<StandardWorkTimeRework>> PostStandardWorkTimeRework([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/StandardWorkTimeReworks/{id}")]
        ITask<ResultModel<StandardWorkTimeRework>> PutStandardWorkTimeRework(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/StandardWorkTimeReworks/{id}")]
        ITask<ResultModel<StandardWorkTimeRework>> DeleteStandardWorkTimeRework(int id);

        /// <summary>
        /// 根據ID獲取指定重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StandardWorkTimeReworks/{id}")]
        ITask<List<StandardWorkTimeRework>> GetStandardWorkTimeRework(int id);

        /// <summary>
        /// 獲取重工標準工時資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StandardWorkTimeReworks")]
        ITask<List<StandardWorkTimeRework>> GetStandardWorkTimeReworks();

        /// <summary>
        /// 根据類別代碼獲取不良現象原因資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StandardWorkTimeReworks/Query/{wipno}/{sid}")]
        ITask<List<StandardWorkTimeRework>> GetStandardWorkTimeReworkByQuery(string wipno, int sid);

        #endregion

        #region WHS013 線上無效工時查詢

        /// <summary>
        /// 根據ID獲取指定線上無效工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimeOline/{id}")]
        ITask<List<ExceptionWorktimeOline>> GetExceptionWorktimeOline(string id);

        /// <summary>
        /// 獲取線上無效工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimeOlines")]
        ITask<List<ExceptionWorktimeOline>> GetExceptionWorktimeOlines();

        /// <summary>
        /// 查詢線上無效工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionWorktimeOlines/Query/{factoryid}/{unitid}/{lineid}/{deptid}/{sdate}/{edate}")]
        ITask<List<ExceptionWorktimeOline>> GetExceptionWorktimeOlineByQuery(string factoryid, string unitid, string lineid, string deptid, string sdate, string edate);

        #endregion

        #region WHS014 異常工時類別維護

        /// <summary>
        /// 新增重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/ExceptionClasses")]
        ITask<ResultModel<ExceptionClass>> PostExceptionClass([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/ExceptionClasses/{id}")]
        ITask<ResultModel<ExceptionClass>> PutExceptionClass(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/ExceptionClasses/{id}")]
        ITask<ResultModel<string>> DeleteExceptionClass(string id); //yiru modify
        /// <summary>
        /// 根據ID獲取指定異常工時類別查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionClasses/{id}")]
        ITask<List<ExceptionClass>> GetExceptionClass(string id);

        /// <summary>
        /// 獲取異常工時類別查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionClasses")]
        ITask<List<ExceptionClass>> GetExceptionClasses();

        /// <summary>
        /// 查詢異常工時類別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionClasses/Query/{id}")]
        ITask<List<ExceptionClass>> GetExceptionClassesByGroup(string id);

        #endregion

        #region WHS015 異常工時代碼維護

        /// <summary>
        /// 新增異常工時代碼
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/ExceptionCodes")]
        ITask<ResultModel<ExceptionCode>> PostExceptionCode([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新異常工時代碼
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/ExceptionCodes/{id}")]
        ITask<ResultModel<ExceptionCode>> PutExceptionCode(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除異常工時代碼
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/ExceptionCodes/{id}")]
        ITask<ResultModel<ExceptionCode>> DeleteExceptionCode(string id);
        /// <summary>
        /// 根據ID獲取指定異常工時代碼查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionCodes/{id}")]
        ITask<List<ExceptionCode>> GetExceptionCode(string id);

        /// <summary>
        /// 獲取異常工時代碼查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionCodes")]
        ITask<List<ExceptionCode>> GetExceptionCodes();

        /// <summary>
        /// 查詢異常工時代碼
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionCodes/Query/{id}")]
        ITask<List<ExceptionCode>> GetExceptionCodesByQuery(string id);

        #endregion

        #region WHS016 異常工時原因維護

        /// <summary>
        /// 新增重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/ExceptionReasons")]
        ITask<ResultModel<ExceptionReason>> PostExceptionReason([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/ExceptionReasons/{id}")]
        ITask<ResultModel<ExceptionReason>> PutExceptionReason(string id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除重工標準工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/ExceptionReasons/{id}")]
        ITask<ResultModel<ExceptionReason>> DeleteExceptionReason(string id);

        /// <summary>
        /// 根據ID獲取指定線上無效工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionReasons/{id}")]
        ITask<List<ExceptionReason>> GetExceptionReason(string id);

        /// <summary>
        /// 獲取線上無效工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionReasons")]
        ITask<List<ExceptionReason>> GetExceptionReasons();

        /// <summary>
        /// 查詢線上無效工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/ExceptionReasons/Query/{id}")]
        ITask<List<ExceptionReason>> GetExceptionReasonsByQuery(string id);

        #endregion

        #region WHS018 生產工時維護

        /// <summary>
        /// 新增異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/WorkingHoursCollections")]
        ITask<ResultModel<WorkingHoursCollection>> PostWorkingHoursCollection([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/WorkingHoursCollections/{id}")]
        ITask<ResultModel<WorkingHoursCollection>> PutWorkingHoursCollection(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/WorkingHoursCollections/{id}")]
        ITask<ResultModel<WorkingHoursCollection>> DeleteWorkingHoursCollection(int id);

        /// <summary>
        /// 根據ID獲取指定異常工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkingHoursCollections/{id}")]
        ITask<List<WorkingHoursCollection>> GetWorkingHoursCollection(string id);

        /// <summary>
        /// 獲取異常工時查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkingHoursCollections")]
        ITask<List<WorkingHoursCollection>> GetWorkingHoursCollections();

        /// <summary>
        /// 查詢線上異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkingHoursCollections/ByQuery/{unitNo}/{lineid}/{stationid}/{wipno}/{itemno}/{user}/{sdate}/{edate}")]
        ITask<List<WorkingHoursCollection>> GetWorkingHoursCollectionByQuery(string unitNo, string lineid, string stationid, string wipno, string itemno, string user, string sdate, string edate);

        /// <summary>
        /// 查詢線上異常工時
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/WorkingHoursCollections/DtoByQuery/{unitNo}/{lineid}/{stationid}/{wipno}/{itemno}/{user}/{sdate}/{edate}")]
        ITask<List<WorkingHoursCollectionDto>> GetWorkingHoursCollectionDtoByQuery(string unitNo, string lineid, string stationid, string wipno, string itemno, string user, string sdate, string edate);


        #endregion

        #region WHS020 報工站別維護

        /// <summary>
        /// 新增報工站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPost("api/StationWorkingHours")]
        ITask<ResultModel<StationWorkingHour>> PostStationWorkingHour([FromBody, RawJsonContent] string model);

        /// <summary>
        /// 更新報工站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpPut("api/StationWorkingHours/{id}")]
        ITask<ResultModel<StationWorkingHour>> PutStationWorkingHour(int id, [FromBody, RawJsonContent] string model);

        /// <summary>
        /// 刪除報工站別
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpDelete("api/StationWorkingHours/{id}")]
        ITask<ResultModel<StationWorkingHour>> DeleteStationWorkingHour(int id);

        /// <summary>
        /// 根據ID獲取指定報工站別查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StationWorkingHours/{id}")]
        ITask<List<StationWorkingHour>> GetStationWorkingHour(int id);

        /// <summary>
        /// 根據ID獲取指定報工站別查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StationWorkingHours/Name/{id}")]
        ITask<List<StationWorkingHour>> GetStationWorkingHourByName(string id);

        /// <summary>
        /// 獲取報工站別查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StationWorkingHours")]
        ITask<ResultModel<StationWorkingHour>> GetStationWorkingHours(int page = 0, int limit = 10);

        /// <summary>
        /// 根據ID獲取指定報工站別查詢資料
        /// </summary>
        /// <returns></returns>
        [WebApiClient.Attributes.HttpGet("api/StationWorkingHours/Unit/{id}")]
        ITask<List<StationWorkingHour>> GetStationWorkingHour2(string id);

        #endregion
    }
}