using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
using System.IO;
using System.Web;
using WebAPI.Controllers.SCGL.日计划管理;
namespace WebAPI.Controllers
{
    //期初余额报表Controller
    public class Sc_OEEReportController : ApiController
    {
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        #region OEE报表 查询
        /// 
        ///参数:string sql。
        ///返回值:object。
        ///  
        [Route("Sc_OEEReport/list")]
        [HttpGet]
        public object getSc_OEEReport(string sWhere, string user)
        {
            try
            {
                List columnNameList = new List();
                ////查看权限
                if (!DBUtility.ClsPub.Security_Log("Sc_OEEReport", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql = "exec h_p_Sc_OEEReport " + sWhere;
                ds = oCN.RunProcReturn(sql, "h_p_Sc_OEEReport");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region OEE报表 查询明细
        /// 
        ///参数:string sql。
        ///返回值:object。
        ///  
        [Route("Sc_OEEReport/getSc_OEEReportDetailist")]
        [HttpGet]
        public object getSc_OEEReportDetailist(string HSourceCode, string HDate, string HType, string user)
        {
            try
            {
                List columnNameList = new List();
                ////查看权限
                if (!DBUtility.ClsPub.Security_Log("Sc_OEEReport", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql = "exec h_p_SB_getLatestDataOfOEEDataDetailist '" + HSourceCode + "','" + HDate + "','" + HType + "'";
                ds = oCN.RunProcReturn(sql, "h_p_SB_getLatestDataOfOEEDataDetailist");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region OEE报表 查询(班次)
        /// 
        ///参数:string sql。
        ///返回值:object。
        ///  
        [Route("Sc_OEEReport/getSc_OEEReport_WorkShift")]
        [HttpGet]
        public object getSc_OEEReport_WorkShift(string sWhere, string user)
        {
            try
            {
                List columnNameList = new List();
                ////查看权限
                if (!DBUtility.ClsPub.Security_Log("Sc_OEEReport", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql = "exec h_p_Sc_OEEReport_WorkShift " + sWhere;
                ds = oCN.RunProcReturn(sql, "h_p_Sc_OEEReport_WorkShift");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region OEE报表 查询明细(班次)
        /// 
        ///参数:string sql。
        ///返回值:object。
        ///  
        [Route("Sc_OEEReport/getSc_OEEReportDetailist_WorkShift")]
        [HttpGet]
        public object getSc_OEEReportDetailist_WorkShift(string HSourceCode, string HDate, string HType, string user)
        {
            try
            {
                List columnNameList = new List();
                ////查看权限
                if (!DBUtility.ClsPub.Security_Log("Sc_OEEReport", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql = "exec h_p_SB_getLatestDataOfOEEDataDetailist_WorkShift '" + HSourceCode + "','" + HDate + "','" + HType + "'";
                ds = oCN.RunProcReturn(sql, "h_p_SB_getLatestDataOfOEEDataDetailist_WorkShift");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}