namespace FineUIPro.Web.HSSE.License
{
    using BLL;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    public partial class NightWorkView : PageBase
    {
        #region 定义项
        /// 
        /// 主键
        /// 
        private string NightWorkId
        {
            get
            {
                return (string)ViewState["NightWorkId"];
            }
            set
            {
                ViewState["NightWorkId"] = value;
            }
        }
        #endregion
        #region 加载
        /// 
        /// 加载页面
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.SimpleForm1.Title = UnitService.GetUnitNameByUnitId(Const.UnitId_CWCEC) + this.Title;
                this.btnClose.OnClientClick = ActiveWindow.GetHideReference();
                this.NightWorkId = Request.Params["NightWorkId"];
                if (!string.IsNullOrEmpty(this.NightWorkId))
                {
                    var getNightWork = LicensePublicService.GetNightWorkById(this.NightWorkId);
                    if (getNightWork != null)
                    {
                        this.lbLicenseCode.Text = getNightWork.LicenseCode;
                        this.txtApplyUnit.Text = UnitService.GetUnitNameByUnitId(getNightWork.ApplyUnitId);
                        this.txtApplyManName.Text = UserService.GetUserNameByUserId(getNightWork.ApplyManId);
                        this.txtWorkPalce.Text = getNightWork.WorkPalce;
                        this.txtWorkLeader.Text = UserService.GetUserNameByUserId(getNightWork.WorkLeaderId) + "/" + getNightWork.WorkLeaderTel;
                        this.txtSafeLeader.Text = UserService.GetUserNameByUserId(getNightWork.SafeLeaderId) + "/" + getNightWork.SafeLeaderTel;
                        if (getNightWork.ValidityStartTime.HasValue)
                        {
                            this.txtWorkDate.Text = getNightWork.ValidityStartTime.Value.ToString("f") + " 至 ";
                            if (getNightWork.ValidityEndTime.HasValue)
                            {
                                this.txtWorkDate.Text += getNightWork.ValidityEndTime.Value.ToString("f");
                            }
                        }
                        this.txtWorkMeasures.Text = getNightWork.WorkMeasures;
                        if (!string.IsNullOrEmpty(getNightWork.CancelManId))
                        {
                            this.txtCance.Text = UserService.GetUserNameByUserId(getNightWork.CancelManId) + ";取消时间:"
                                + string.Format("{0:yyyy-MM-dd HH:mm}", getNightWork.CancelTime) + ";原因:" + getNightWork.CancelReasons + "。";
                        }
                        if (!string.IsNullOrEmpty(getNightWork.CloseManId))
                        {
                            if (!string.IsNullOrEmpty(getNightWork.CloseReasons))
                            {
                                this.txtClose.Text = getNightWork.CloseReasons + " 关闭时间:"
                                 + string.Format("{0:yyyy-MM-dd HH:mm}", getNightWork.CloseTime) + "。";
                            }
                            else
                            {
                                this.txtClose.Text = UserService.GetUserNameByUserId(getNightWork.CloseManId) + ";关闭时间:"
                                + string.Format("{0:yyyy-MM-dd HH:mm}", getNightWork.CloseTime) + "。";
                            }
                        }
                    }
                }
                // 绑定表格
                this.BindGrid();
                this.SetFlow();
            }
        }
        #endregion
        #region 获取审核记录信息
        public string FlowOperateId1;
        public string FlowOperateId2;
        public string FlowOperateId3;
        public string FlowOperateId4;
        /// 
        /// 
        /// 
        private void SetFlow()
        {
            var getFlows = LicensePublicService.GetFlowOperateListByDataId(this.NightWorkId);
            if (getFlows.Count() > 0)
            {
                var getF1 = getFlows.FirstOrDefault(x => x.SortIndex == 1);
                if (getF1 != null)
                {
                    FlowOperateId1 = getF1.FlowOperateId;
                    this.txtForm1.Title = getF1.AuditFlowName + ":";
                    if (getF1.OperaterTime.HasValue)
                    {
                        if (getF1.IsAgree == true)
                        {
                            this.txtOpinion1.Text = "同意。";
                        }
                        else
                        {
                            this.txtOpinion1.Text = getF1.Opinion;
                        }
                        if (!string.IsNullOrEmpty(getF1.SignatureUrl))
                        {
                            this.Image1.ImageUrl = "~/" + getF1.SignatureUrl;
                        }
                        var signUser1 = UserService.GetUserByUserId(getF1.OperaterId);
                        if (signUser1 != null)
                        {
                            this.txtName1.Text = signUser1.UserName;
                        }
                        this.txtTime1.Text = string.Format("{0:yyyy-MM-dd HH:mm}", getF1.OperaterTime);
                    }
                }
                var getF2 = getFlows.FirstOrDefault(x => x.SortIndex == 2);
                if (getF2 != null)
                {
                    FlowOperateId2 = getF2.FlowOperateId;
                    this.txtForm2.Title = getF2.AuditFlowName + ":";
                    if (getF2.OperaterTime.HasValue)
                    {
                        if (getF2.IsAgree == true)
                        {
                            this.txtOpinion2.Text = "同意。";
                        }
                        else
                        {
                            this.txtOpinion2.Text = getF2.Opinion;
                        }
                        if (!string.IsNullOrEmpty(getF2.SignatureUrl))
                        {
                            this.Image2.ImageUrl = "~/" + getF2.SignatureUrl;
                        }
                        var signUser2 = UserService.GetUserByUserId(getF2.OperaterId);
                        if (signUser2 != null)
                        {
                            this.txtName2.Text = signUser2.UserName;
                        }
                        this.txtTime2.Text = string.Format("{0:yyyy-MM-dd HH:mm}", getF2.OperaterTime);
                    }
                }
                var getF3 = getFlows.FirstOrDefault(x => x.SortIndex == 3);
                if (getF3 != null)
                {
                    FlowOperateId3 = getF3.FlowOperateId;
                    this.txtForm3.Title = getF3.AuditFlowName + ":";
                    if (getF3.OperaterTime.HasValue)
                    {
                        if (getF3.IsAgree == true)
                        {
                            this.txtOpinion3.Text = "同意。";
                        }
                        else
                        {
                            this.txtOpinion3.Text = getF3.Opinion;
                        }
                        if (!string.IsNullOrEmpty(getF3.SignatureUrl))
                        {
                            this.Image3.ImageUrl = "~/" + getF3.SignatureUrl;
                        }
                        var signUser3 = UserService.GetUserByUserId(getF3.OperaterId);
                        if (signUser3 != null)
                        {
                            this.txtName3.Text = signUser3.UserName;
                        }
                        this.txtTime3.Text = string.Format("{0:yyyy-MM-dd HH:mm}", getF3.OperaterTime);
                    }
                }
                var getF4 = getFlows.FirstOrDefault(x => x.SortIndex == 4);
                if (getF4 != null)
                {
                    FlowOperateId4 = getF4.FlowOperateId;
                    this.txtForm4.Title = getF4.AuditFlowName + ":";
                    if (getF4.OperaterTime.HasValue)
                    {
                        if (getF4.IsAgree == true)
                        {
                            this.txtOpinion4.Text = "同意。";
                        }
                        else
                        {
                            this.txtOpinion4.Text = getF4.Opinion;
                        }
                        if (!string.IsNullOrEmpty(getF4.SignatureUrl))
                        {
                            this.Image4.ImageUrl = "~/" + getF4.SignatureUrl;
                        }
                        var signUser4 = UserService.GetUserByUserId(getF4.OperaterId);
                        if (signUser4 != null)
                        {
                            this.txtName4.Text = signUser4.UserName;
                        }
                        this.txtTime4.Text = string.Format("{0:yyyy-MM-dd HH:mm}", getF4.OperaterTime);
                    }
                }
            }
        }
        #endregion
        /// 
        /// 绑定数据
        /// 
        private void BindGrid()
        {
            string strSql = @"SELECT LicenseItemId,DataId,SortIndex,SafetyMeasures,(CASE WHEN IsUsed = 1 THEN '适用' ELSE '不适用' END) AS NoUsedName,ConfirmManId,U.UserName AS ConfirmManName"
                         + @" FROM License_LicenseItem AS L "
                         + @" LEFT JOIN Sys_User AS U ON L.ConfirmManId =U.UserId"
                         + @" WHERE L.DataId ='" + this.NightWorkId +"'";
            List listStr = new List();            
            SqlParameter[] parameter = listStr.ToArray();
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
            Grid1.RecordCount = tb.Rows.Count;            
            var table = this.GetPagedDataTable(Grid1, tb);
            Grid1.DataSource = table;
            Grid1.DataBind();
        }
    }
}