using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;

namespace WebAPI.Controllers
{
    /// <summary>
    /// 上报集团数据接口
    /// </summary>
    public class CNCECServerController : ApiController
    {
        /// <summary>
        /// 获取质量统计数据
        /// </summary>
        /// <returns></returns>
        public Model.ReturnData PostGetCQMSData()
        {
            var returnData = new Model.ReturnData();
            returnData.type = "CQMS";
            returnData.time = DateTime.Now.ToString();
            ServerService.GetToken();
            returnData.token = BLL.SysConstSetService.CNCECToken;
            returnData.expiryTime = BLL.SysConstSetService.CNCECTTokenExTime;
            if (!string.IsNullOrEmpty(returnData.token) && !string.IsNullOrEmpty(returnData.expiryTime)&& DateTime.Parse(returnData.expiryTime)>DateTime.Now)
            {
                returnData.data = CQMSDataService.GetTodayCQMSData_CQMS();
            }
            else
            {
                returnData.code = 500;
                returnData.message = "token失效";
            }
            return returnData;
        }
        /// <summary>
        /// 获取质量统计数据成功后,回调通知上报成功
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Model.ReturnData PostGetCQMSData_CallBalk([FromBody] CQMSData data)
        {
            var returnData = new Model.ReturnData();
            try
            {
                returnData.type = "CQMS_Back";
                returnData.time = DateTime.Now.ToString();
                foreach (var item in data.CQMSDataItems)
                {
                  var cQMSData_CQMS=  CQMSDataService.GetCQMSData_CQMSById(item.Id);
                    cQMSData_CQMS.State = Const.CNCEC_State_S;
                    CQMSDataService.UpdateCQMSData_CQMS(cQMSData_CQMS);
                }             
               
            }
            catch (Exception ex)
            {

                returnData.code = 404;
                returnData.message = ex.ToString();
            }
            return returnData;
        }
        /// <summary>
        /// 获取焊接统计数据
        /// </summary>
        /// <returns></returns>
        public Model.ReturnData PostGetHJGLData()
        {
            var returnData = new Model.ReturnData();
            returnData.type = "HJGL";
            returnData.time = DateTime.Now.ToString();
            ServerService.GetToken();
            returnData.token = BLL.SysConstSetService.CNCECToken;
            returnData.expiryTime = BLL.SysConstSetService.CNCECTTokenExTime;
            if (!string.IsNullOrEmpty(returnData.token) && !string.IsNullOrEmpty(returnData.expiryTime)&&DateTime.Parse(returnData.expiryTime) > DateTime.Now)
            {
                returnData.data = HJGLData_HJGLService.GetTodayHJGLData_HJGL();
            }
            else
            {
                returnData.code = 500;
                returnData.message = "token失效";
            }
            return returnData;
        }
        /// <summary>
        /// 获取焊接统计数据    成功后,回调通知上报成功
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Model.ReturnData PostGetHJGLData_CallBalk([FromBody] Model.HJGLData data)
        {
            var returnData = new Model.ReturnData();
            try
            {
                returnData.type = "HJGL_Back";
                returnData.time = DateTime.Now.ToString();
                foreach (var item in data.HJGLDataItems)
                {
                    var  hJGLData_HJGL = HJGLData_HJGLService.GetHJGLData_HJGLById(item.Id);
                    hJGLData_HJGL.State = Const.CNCEC_State_S;
                    HJGLData_HJGLService.UpdateHJGLData_HJGL(hJGLData_HJGL);
                }
            }
            catch (Exception ex)
            {

                returnData.code = 404;
                returnData.message = ex.ToString();
            }
            return returnData;
        }
        /// <summary>
        /// 获取安全统计数据
        /// </summary>
        /// <returns></returns>
        public Model.ReturnData PostGetHSSEData()
        {
            var returnData = new Model.ReturnData();
            try
            {
                returnData.type = "HSSE";
                returnData.time = DateTime.Now.ToString();
                ServerService.GetToken();
                returnData.token = BLL.SysConstSetService.CNCECToken;
                returnData.expiryTime = BLL.SysConstSetService.CNCECTTokenExTime;
                if (!string.IsNullOrEmpty(returnData.token) && !string.IsNullOrEmpty(returnData.expiryTime) && DateTime.Parse(returnData.expiryTime) > DateTime.Now)
                {
                    returnData.data = HSSEData_HSSEService.GetTodayHSSEData_HSSE();
                }
                else
                {
                    returnData.code = 500;
                    returnData.message = "token失效";
                }
            }
            catch (Exception ex)
            {
                using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
                {
                        Model.Sys_Log syslog = new Model.Sys_Log
                        {
                            LogId = SQLHelper.GetNewID(),
                            OperationTime = DateTime.Now,
                            OperationLog = ex.Message,
                            LogSource = 1,
                        };
                        db.Sys_Log.InsertOnSubmit(syslog);
                        db.SubmitChanges();
                    }
            }
            return returnData;
        }
        /// <summary>
        /// 获取安全统计数据成功后,回调通知上报成功
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Model.ReturnData PostGetHSSEData_CallBalk([FromBody] HSSEData data)
        {
            var returnData = new Model.ReturnData();
            try
            {
                returnData.type = "HSSE_Back";
                returnData.time = DateTime.Now.ToString();

                foreach (var item in data.HSSEDataItems)
                {
                    var hSSEData_HSSE = HSSEData_HSSEService.GetHSSEData_HSSEById(item.Id);
                    hSSEData_HSSE.State = Const.CNCEC_State_S;
                    HSSEData_HSSEService.UpdateHSSEData_HSSE(hSSEData_HSSE);
                }
            }
            catch (Exception ex)
            {

                returnData.code = 404;
                returnData.message = ex.ToString();
            }
            return returnData;
        }

        /// <summary>
        /// 获取实业统计数据 
        /// </summary>
        /// <returns></returns>
        public Model.ReturnData PostGetSYHSEData()
        {
            var returnData = new Model.ReturnData();
            returnData.type = "SYHSE";
            returnData.time = DateTime.Now.ToString();
            ServerService.GetToken();
            returnData.token = BLL.SysConstSetService.CNCECToken;
            returnData.expiryTime = BLL.SysConstSetService.CNCECTTokenExTime;
            if (!string.IsNullOrEmpty(returnData.token) && !string.IsNullOrEmpty(returnData.expiryTime) && DateTime.Parse(returnData.expiryTime) > DateTime.Now)
            {
                returnData.data = SYHSEData_SYHSEService.GetTodaySYHSEData_SYHSE();
            }
            else
            {
                returnData.code = 500;
                returnData.message = "token失效";
            }
            return returnData;
        }
        /// <summary>
        /// 获取实业统计数据成功后,回调通知上报成功
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public Model.ReturnData PostGetSYHSEData_CallBalk([FromBody] SYHSEData data)
        {
            var returnData = new Model.ReturnData();
            try
            {
                returnData.type = "SYHSE_Back";
                returnData.time = DateTime.Now.ToString();
                foreach (var item in data.SYHSEDataItems)
                {
                    var  sYHSEData_SYHSE = SYHSEData_SYHSEService.GetSYHSEData_SYHSEById(item.Id);
                    sYHSEData_SYHSE.State = Const.CNCEC_State_S;
                    SYHSEData_SYHSEService.UpdateSYHSEData_SYHSE(sYHSEData_SYHSE);
                }
                //SYHSEData_SYHSE data = _data;
                //data.State = Const.CNCEC_State_S;
                //SYHSEData_SYHSEService.UpdateSYHSEData_SYHSE(data);
            }
            catch (Exception ex)
            {

                returnData.code = 404;
                returnData.message = ex.ToString();
            }
            return returnData;
        }
    }
}