using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.JDGL.Check
{
    public partial class WeekPlanEdit : PageBase
    {
        /// 
        /// 项目id
        /// 
        public string ProjectId
        {
            get
            {
                return (string)ViewState["ProjectId"];
            }
            set
            {
                ViewState["ProjectId"] = value;
            }
        }
        /// 
        /// 本周周号
        /// 
        public int ThisWeekNo
        {
            get
            {
                return (int)ViewState["ThisWeekNo"];
            }
            set
            {
                ViewState["ThisWeekNo"] = value;
            }
        }
        /// 
        /// 下周周号
        /// 
        public int NextWeekNo
        {
            get
            {
                return (int)ViewState["NextWeekNo"];
            }
            set
            {
                ViewState["NextWeekNo"] = value;
            }
        }
        /// 
        /// 页面加载
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string weekNo = string.Empty;
                if (!string.IsNullOrEmpty(Request.Params["WeekNo"]))
                {
                    weekNo = Request.Params["WeekNo"];
                }
                this.ThisWeekNo = int.Parse(weekNo);
                this.NextWeekNo = int.Parse(weekNo) + 1;
                this.txtWeekNo.Text = this.ThisWeekNo.ToString();
                this.txtNextWeekNo.Text = this.NextWeekNo.ToString();
                UnitWorkService.InitUnitWorkList2(drpUnitWork, this.CurrUser.LoginProjectId, false);
                CNProfessionalService.InitCNProfessional(drpMajor, false);
                BLL.ProjectUnitService.InitUnitDropDownList2(drpUnitId, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
                UserService.Init(drpDutyPerson, CurrUser.LoginProjectId, false);
                UnitWorkService.InitUnitWorkList2(drpUnitWork2, this.CurrUser.LoginProjectId, false);
                CNProfessionalService.InitCNProfessional(drpMajor2, false);
                BLL.ProjectUnitService.InitUnitDropDownList2(drpUnitId2, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
                UserService.Init(drpDutyPerson2, CurrUser.LoginProjectId, false);
                DateTime now = DateTime.Now;
                var thisWeek = BLL.WeekItemService.GetWeekItemByProjectIdAndWeekNo(this.CurrUser.LoginProjectId, this.ThisWeekNo);
                var thisWeekPlan = Funs.DB.JDGL_WeekPlan.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == this.ThisWeekNo.ToString());
                if (thisWeekPlan != null)
                {
                    ThisWeekGrid();
                    if (now > ((DateTime)thisWeekPlan.EndDate).AddDays(1))//|| now < ((DateTime)thisWeekPlan.StartDate)
                    {//当前时间大于本周结束时间,禁止维护本周计划
                        this.btnNew2.Hidden = true;
                        this.btnSelectWeekPlan2.Hidden = true;
                        this.Grid2.Columns[9].Hidden = true;
                    }
                    else if (now > ((DateTime)thisWeekPlan.StartDate))
                    {//当前时间大于本周开始时间,禁止删除本周计划(当前时间处于本周区间,禁止删除本周计划)
                        this.Grid2.Columns[9].Hidden = true;
                    }
                }
                if (now > thisWeek.EndDate.AddDays(1))// || now < thisWeek.StartDate
                {//当前时间大于本周结束时间,禁止维护本周计划
                    this.btnNew2.Hidden = true;
                    this.btnSelectWeekPlan2.Hidden = true;
                    this.Grid2.Columns[9].Hidden = true;
                }
                else if (now > thisWeek.StartDate)
                {//当前时间大于本周开始时间小于本周结束时间,禁止删除本周计划(当前时间处于本周区间,禁止删除本周计划)
                    this.Grid2.Columns[9].Hidden = true;
                }
                var nextWeek = BLL.WeekItemService.GetWeekItemByProjectIdAndWeekNo(this.CurrUser.LoginProjectId, this.NextWeekNo);
                var nextWeekPlan = Funs.DB.JDGL_WeekPlan.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.WeekNo == this.NextWeekNo.ToString());
                if (nextWeekPlan != null)
                {
                    NextWeekGrid();
                    if (now > ((DateTime)nextWeekPlan.EndDate).AddDays(1))
                    {//当前时间大于下周结束时间,禁止维护下周计划
                        this.Toolbar5.Hidden = true;
                        this.btnNew.Hidden = true;
                        this.btnSelectWeekPlan.Hidden = true;
                        this.Grid1.Columns[9].Hidden = true;
                    }
                }
                if (nextWeek != null)
                {
                    if (now > nextWeek.EndDate.AddDays(1))//|| now < nextWeek.StartDate
                    {//当前时间大于下周结束时间,禁止维护下周计划
                     //this.btnNew2.Hidden = true;
                        //this.btnSelectWeekPlan2.Hidden = true;
                        //this.Grid2.Columns[9].Hidden = true;
                        this.Toolbar5.Hidden = true;
                        this.btnNew.Hidden = true;
                        this.btnSelectWeekPlan.Hidden = true;
                        this.Grid1.Columns[9].Hidden = true;
                    }
                }
                else
                {
                    #region 判断下周周号是否存在,不存在则新增
                    nextWeek = new Model.JDGL_WeekItem
                    {
                        WeekId = SQLHelper.GetNewID(typeof(Model.JDGL_WeekItem)),
                        ProjectId = this.CurrUser.LoginProjectId,
                        WeekNo = this.NextWeekNo,
                        StartDate = thisWeek.StartDate.AddDays(7),
                        EndDate = thisWeek.EndDate.AddDays(7),
                        CompileMan = this.CurrUser.UserId,
                        CompileDate = DateTime.Now,
                    };
                    BLL.WeekItemService.AddWeekItem(nextWeek);
                    #endregion
                }
                this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", thisWeek.StartDate);
                this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", thisWeek.EndDate);
                this.txtNextStartDate.Text = string.Format("{0:yyyy-MM-dd}", nextWeek.StartDate);
                this.txtNextEndDate.Text = string.Format("{0:yyyy-MM-dd}", nextWeek.EndDate);
                //var weekPlan = Funs.DB.JDGL_WeekPlan.FirstOrDefault(x => x.WeekNo == this.txtWeekNo.Text);
                //if (weekPlan != null)
                //{
                //    //if (weekPlan.StartDate != null)
                //    //{
                //    //    this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.StartDate);
                //    //}
                //    //if (weekPlan.EndDate != null)
                //    //{
                //    //    this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", weekPlan.EndDate);
                //    //}
                //    var lastWeekPlan = (from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.StartDate < weekPlan.StartDate orderby x.StartDate descending select x).FirstOrDefault();
                //    if (lastWeekPlan != null)
                //    {
                //        ThisWeekGrid(lastWeekPlan.WeekNo);
                //        if (lastWeekPlan.WeekNo != "0")
                //        {
                //            this.Toolbar1.Hidden = true;
                //            this.Grid2.Columns[9].Hidden = true;
                //        }
                //    }
                //    else
                //    {
                //        this.Toolbar1.Hidden = false;
                //        this.Grid2.Columns[9].Hidden = false;
                //    }
                //}
                //else
                //{
                //    //this.txtStartDate.Text = string.Empty;
                //    //this.txtEndDate.Text = string.Empty;
                //    var lastWeekPlan = (from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == this.CurrUser.LoginProjectId orderby x.StartDate descending select x).FirstOrDefault();
                //    if (lastWeekPlan != null)
                //    {
                //        ThisWeekGrid(lastWeekPlan.WeekNo);
                //        this.Toolbar1.Hidden = true;
                //        this.Grid2.Columns[9].Hidden = true;
                //    }
                //    else
                //    {
                //        this.Toolbar1.Hidden = false;
                //        this.Grid2.Columns[9].Hidden = false;
                //    }
                //}
                //NextWeekGrid(NextWeekNo.ToString());
            }
        }
        /// 
        /// 加载下周计划
        /// 
        /// 下周周号
        private void NextWeekGrid()
        {
            string strSql = @"select wplan.WeekPlanId,wplan.ProjectId,wplan.WeekNo,wplan.StartDate,wplan.EndDate,wplan.WorkContent,wplan.PlanDate,wplan.Remark
                                ,case wplan.IsOK when 1 then '已完成' when 0 then '未完成' else  '' end as IsOK
                                ,uwork.UnitWorkName as UnitWork,major.ProfessionalName as Major,unit.UnitName as UnitId
                                ,DutyPerson = STUFF((SELECT ',' + p.UserName FROM dbo.Sys_User as p where PATINDEX('%,' + RTRIM(p.UserId) + ',%', ',' + wplan.DutyPerson + ',') > 0 FOR XML PATH('')), 1, 1,'') 
                            from JDGL_WeekPlan as wplan 
                                left join WBS_UnitWork as uwork on uwork.UnitWorkId = wplan.UnitWork
                                left join Base_CNProfessional as major on major.CNProfessionalId = wplan.Major
                                left join Base_Unit as unit on unit.UnitId = wplan.UnitId
                            where wplan.ProjectId = @ProjectId ";
            List listStr = new List();
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
            strSql += " and wplan.WeekNo = @weekNo";
            listStr.Add(new SqlParameter("@weekNo", this.NextWeekNo));
            strSql += " order by wplan.SortIndex ";
            SqlParameter[] parameter = listStr.ToArray();
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
            Grid1.RecordCount = tb.Rows.Count;
            Grid1.DataSource = tb;
            Grid1.DataBind();
        }
        /// 
        /// 本周计划完成情况
        /// 
        /// 本周周号
        private void ThisWeekGrid()
        {
            string strSql = @"select wplan.WeekPlanId,wplan.ProjectId,wplan.WeekNo,wplan.StartDate,wplan.EndDate,wplan.WorkContent,wplan.PlanDate,wplan.Remark
                                ,case wplan.IsOK when 1 then '已完成' when 0 then '未完成' else  '' end as IsOK
                                ,uwork.UnitWorkName as UnitWork,major.ProfessionalName as Major,unit.UnitName as UnitId
                                ,DutyPerson = STUFF((SELECT ',' + p.UserName FROM dbo.Sys_User as p where PATINDEX('%,' + RTRIM(p.UserId) + ',%', ',' + wplan.DutyPerson + ',') > 0 FOR XML PATH('')), 1, 1,'') 
                            from JDGL_WeekPlan as wplan 
                                left join WBS_UnitWork as uwork on uwork.UnitWorkId = wplan.UnitWork
                                left join Base_CNProfessional as major on major.CNProfessionalId = wplan.Major
                                left join Base_Unit as unit on unit.UnitId = wplan.UnitId
                            where wplan.ProjectId = @ProjectId  ";
            List listStr = new List();
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
            //if (!string.IsNullOrEmpty(weekNo))
            //{
            //    strSql += " and wplan.WeekNo = @weekNo";
            //    listStr.Add(new SqlParameter("@weekNo", weekNo));
            //}
            strSql += " and wplan.WeekNo = @weekNo";
            listStr.Add(new SqlParameter("@weekNo", this.ThisWeekNo));
            strSql += " order by wplan.SortIndex ";
            SqlParameter[] parameter = listStr.ToArray();
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
            Grid2.RecordCount = tb.Rows.Count;
            Grid2.DataSource = tb;
            Grid2.DataBind();
        }
        private string ConvertIsOK(bool? isOK)
        {
            string str = string.Empty;
            if (isOK != null)
            {
                if (isOK == true)
                {
                    str = "已完成";
                }
                else
                {
                    str = "未完成";
                }
            }
            return str;
        }
        /// 
        /// 保存
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.txtWeekNo.Text))
            {
                ShowNotify("请输入周号!", MessageBoxIcon.Warning);
                return;
            }
            if (string.IsNullOrEmpty(this.txtStartDate.Text))
            {
                ShowNotify("请选择开始日期!", MessageBoxIcon.Warning);
                return;
            }
            if (string.IsNullOrEmpty(this.txtEndDate.Text))
            {
                ShowNotify("请选择结束日期!", MessageBoxIcon.Warning);
                return;
            }
            SaveData(true);
        }
        /// 
        /// 保存周计划
        /// 
        /// 
        private void SaveData(bool bl)
        {
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            //选择的周号为本周计划周号
            string weekNo = this.txtWeekNo.Text.Trim();
            //下周周号
            string NextWeekNo = (int.Parse(weekNo) + 1).ToString();
            Model.SGGLDB db = Funs.DB;
            var unitWorks = from x in db.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId select x;
            var cns = from x in db.Base_CNProfessional select x;
            var units = from x in db.Base_Unit select x;
            var users = from x in db.Sys_User select x;
            //清理下周计划
            BLL.WeekPlanService.DeleteAllWeekPlan(this.CurrUser.LoginProjectId, NextWeekNo);
            #region 下周计划
            int i = 1;
            var list = GetDetails();
            foreach (var item in list)
            {
                Model.JDGL_WeekPlan WeekPlan = new Model.JDGL_WeekPlan();
                WeekPlan.WeekPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_WeekPlan));
                WeekPlan.ProjectId = this.CurrUser.LoginProjectId;
                WeekPlan.WeekNo = NextWeekNo;
                WeekPlan.StartDate = startDate.AddDays(7);
                WeekPlan.EndDate = endDate.AddDays(7);
                //WeekPlan.WeekNo = weekNo;
                //WeekPlan.StartDate = startDate;
                //WeekPlan.EndDate = endDate;
                if (unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork) != null)
                {
                    WeekPlan.UnitWork = unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork).UnitWorkId;
                }
                if (cns.FirstOrDefault(x => x.ProfessionalName == item.Major) != null)
                {
                    WeekPlan.Major = cns.FirstOrDefault(x => x.ProfessionalName == item.Major).CNProfessionalId;
                }
                var unit = units.FirstOrDefault(x => x.UnitName == item.UnitId);
                if (unit != null)
                {
                    WeekPlan.UnitId = unit.UnitId;
                }
                WeekPlan.WorkContent = item.WorkContent;
                WeekPlan.PlanDate = item.PlanDate;
                var dutyPersons = item.DutyPerson.Split(',');
                string dutyPersonIds = string.Empty;
                foreach (var dutyPerson in dutyPersons)
                {
                    var user = users.FirstOrDefault(x => x.UserName == dutyPerson);
                    if (user != null)
                    {
                        dutyPersonIds = !string.IsNullOrWhiteSpace(dutyPersonIds) ? $"{dutyPersonIds},{user.UserId}" : user.UserId;
                    }
                }
                WeekPlan.DutyPerson = dutyPersonIds;
                //var user = users.FirstOrDefault(x => x.UserName == item.DutyPerson);
                //if (user != null)
                //{
                //    WeekPlan.DutyPerson = user.UserId;
                //}
                WeekPlan.IsOK = item.IsOK;
                WeekPlan.Remark = item.Remark;
                WeekPlan.CompileMan = this.CurrUser.UserId;
                WeekPlan.CompileDate = DateTime.Now;
                WeekPlan.SortIndex = i;
                BLL.WeekPlanService.AddWeekPlan(WeekPlan);
                i++;
            }
            #endregion
            #region 本周计划
            int j = 1;
            var list2 = GetDetails2();
            //string lastWeekNo = "0";
            //string lastWeekNo = this.txtWeekNo.Text.Trim();
            foreach (var item in list2)
            {
                Model.JDGL_WeekPlan WeekPlan = new Model.JDGL_WeekPlan();
                WeekPlan.WeekPlanId = item.WeekPlanId;
                WeekPlan.ProjectId = this.CurrUser.LoginProjectId;
                //WeekPlan.WeekNo = lastWeekNo;
                //WeekPlan.StartDate = startDate.AddDays(-7);
                //WeekPlan.EndDate = endDate.AddDays(-7);
                WeekPlan.WeekNo = weekNo;
                WeekPlan.StartDate = startDate;
                WeekPlan.EndDate = endDate;
                if (unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork) != null)
                {
                    WeekPlan.UnitWork = unitWorks.FirstOrDefault(x => x.UnitWorkName == item.UnitWork).UnitWorkId;
                }
                if (cns.FirstOrDefault(x => x.ProfessionalName == item.Major) != null)
                {
                    WeekPlan.Major = cns.FirstOrDefault(x => x.ProfessionalName == item.Major).CNProfessionalId;
                }
                var unit = units.FirstOrDefault(x => x.UnitName == item.UnitId);
                if (unit != null)
                {
                    WeekPlan.UnitId = unit.UnitId;
                }
                WeekPlan.WorkContent = item.WorkContent;
                WeekPlan.PlanDate = item.PlanDate;
                var dutyPersons = item.DutyPerson.Split(',');
                string dutyPersonIds = string.Empty;
                foreach (var dutyPerson in dutyPersons)
                {
                    var user = users.FirstOrDefault(x => x.UserName == dutyPerson);
                    if (user != null)
                    {
                        dutyPersonIds = !string.IsNullOrWhiteSpace(dutyPersonIds) ? $"{dutyPersonIds},{user.UserId}" : user.UserId;
                    }
                }
                WeekPlan.DutyPerson = dutyPersonIds;
                //var user = users.FirstOrDefault(x => x.UserName == item.DutyPerson);
                //if (user != null)
                //{
                //    WeekPlan.DutyPerson = user.UserId;
                //}
                WeekPlan.IsOK = item.IsOK;
                WeekPlan.Remark = item.Remark;
                WeekPlan.CompileMan = this.CurrUser.UserId;
                WeekPlan.CompileDate = DateTime.Now;
                WeekPlan.SortIndex = j;
                var oldWeekPlan = BLL.WeekPlanService.GetWeekPlanById(WeekPlan.WeekPlanId);
                if (oldWeekPlan == null)
                {
                    BLL.WeekPlanService.AddWeekPlan(WeekPlan);
                }
                else
                {
                    BLL.WeekPlanService.UpdateWeekPlan(WeekPlan);
                }
                j++;
            }
            #endregion
            //foreach (JObject mergedRow in Grid2.GetMergedData())
            //{
            //    JObject values = mergedRow.Value("values");
            //    int a = mergedRow.Value("index");
            //    Model.JDGL_WeekPlan ql = BLL.WeekPlanService.GetWeekPlanById(Grid2.Rows[a].RowID);
            //    if (!string.IsNullOrEmpty(values.Value("IsOK")))
            //    {
            //        ql.IsOK = values.Value("IsOK") == "已完成" ? true : false;
            //    }
            //    ql.Remark = values.Value("Remark");
            //    BLL.WeekPlanService.UpdateWeekPlan(ql);
            //}
            ShowNotify("保存成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        /// 
        /// 窗口关闭事件
        /// 
        /// 
        /// 
        protected void Window1_Close(object sender, EventArgs e)
        {
            NextWeekGrid();
        }
        /// 
        /// 窗口关闭事件
        /// 
        /// 
        /// 
        protected void Window2_Close(object sender, EventArgs e)
        {
            ThisWeekGrid();
        }
        #region 增加按钮事件
        /// 
        /// 增加按钮事件——下周计划
        /// 
        /// 
        /// 
        protected void btnNew_Click(object sender, EventArgs e)
        {
            var list = GetDetails();
            Model.JDGL_WeekPlan ql = new Model.JDGL_WeekPlan();
            ql.WeekPlanId = SQLHelper.GetNewID();
            list.Add(ql);
            Model.SGGLDB db = Funs.DB;
            Grid1.DataSource = from x in list
                               select new
                               {
                                   x.WeekPlanId,
                                   x.ProjectId,
                                   x.WeekNo,
                                   x.StartDate,
                                   x.EndDate,
                                   x.UnitWork,
                                   x.Major,
                                   x.UnitId,
                                   x.WorkContent,
                                   x.PlanDate,
                                   x.DutyPerson,
                                   IsOK = ConvertIsOK(x.IsOK),
                                   x.Remark,
                               };
            Grid1.DataBind();
        }
        /// 
        /// 选择其他周计划新增到下周计划
        /// 
        /// 
        /// 
        protected void btnSelectWeekPlan_Click(object sender, EventArgs e)
        {
            PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekPlanSelect.aspx?WeekNo={0}", this.NextWeekNo), "选择下周计划"));
        }
        /// 
        /// 选择其他周计划新增到本周计划
        /// 
        /// 
        /// 
        protected void btnSelectWeekPlan2_Click(object sender, EventArgs e)
        {
            PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("WeekPlanSelect.aspx?WeekNo={0}", this.ThisWeekNo), "选择本周计划"));
        }
        /// 
        /// 增加按钮事件——本周计划
        /// 
        /// 
        /// 
        protected void btnNew2_Click(object sender, EventArgs e)
        {
            var list = GetDetails2();
            Model.JDGL_WeekPlan ql = new Model.JDGL_WeekPlan();
            ql.WeekPlanId = SQLHelper.GetNewID();
            list.Add(ql);
            Model.SGGLDB db = Funs.DB;
            Grid2.DataSource = from x in list
                               select new
                               {
                                   x.WeekPlanId,
                                   x.ProjectId,
                                   x.WeekNo,
                                   x.StartDate,
                                   x.EndDate,
                                   x.UnitWork,
                                   x.Major,
                                   x.UnitId,
                                   x.WorkContent,
                                   x.PlanDate,
                                   x.DutyPerson,
                                   IsOK = ConvertIsOK(x.IsOK),
                                   x.Remark,
                               };
            Grid2.DataBind();
        }
        /// 
        /// 下周计划
        /// 
        /// 
        private List GetDetails()
        {
            List list = new List();
            foreach (JObject mergedRow in Grid1.GetMergedData())
            {
                JObject values = mergedRow.Value("values");
                int i = mergedRow.Value("index");
                Model.JDGL_WeekPlan ql = new Model.JDGL_WeekPlan();
                ql.WeekPlanId = Grid1.Rows[i].RowID;
                ql.UnitWork = values.Value("UnitWork");
                ql.Major = values.Value("Major");
                ql.UnitId = values.Value("UnitId");
                ql.WorkContent = values.Value("WorkContent");
                ql.PlanDate = Funs.GetNewDateTime(values.Value("PlanDate"));
                ql.DutyPerson = values.Value("DutyPerson");
                if (!string.IsNullOrEmpty(values.Value("IsOK")))
                {
                    ql.IsOK = values.Value("IsOK") == "已完成" ? true : false;
                }
                ql.Remark = values.Value("Remark");
                list.Add(ql);
            }
            return list;
        }
        /// 
        /// 本周计划
        /// 
        /// 
        private List GetDetails2()
        {
            List list = new List();
            foreach (JObject mergedRow in Grid2.GetMergedData())
            {
                JObject values = mergedRow.Value("values");
                int i = mergedRow.Value("index");
                Model.JDGL_WeekPlan ql = new Model.JDGL_WeekPlan();
                ql.WeekPlanId = Grid2.Rows[i].RowID;
                ql.UnitWork = values.Value("UnitWork");
                ql.Major = values.Value("Major");
                ql.UnitId = values.Value("UnitId");
                ql.WorkContent = values.Value("WorkContent");
                ql.PlanDate = Funs.GetNewDateTime(values.Value("PlanDate"));
                ql.DutyPerson = values.Value("DutyPerson");
                if (!string.IsNullOrEmpty(values.Value("IsOK")))
                {
                    ql.IsOK = values.Value("IsOK") == "已完成" ? true : false;
                }
                ql.Remark = values.Value("Remark");
                list.Add(ql);
            }
            return list;
        }
        #endregion
        #region 行点击事件
        /// 
        /// Grid行点击事件
        /// 
        /// 
        /// 
        protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
        {
            string WeekPlanId = Grid1.DataKeys[e.RowIndex][0].ToString();
            var list = GetDetails();
            if (e.CommandName == "del")//删除
            {
                var Report = list.FirstOrDefault(x => x.WeekPlanId == WeekPlanId);
                if (Report != null)
                {
                    list.Remove(Report);
                }
                Model.SGGLDB db = Funs.DB;
                Grid1.DataSource = from x in list
                                   select new
                                   {
                                       x.WeekPlanId,
                                       x.ProjectId,
                                       x.WeekNo,
                                       x.StartDate,
                                       x.EndDate,
                                       x.UnitWork,
                                       x.Major,
                                       x.UnitId,
                                       x.WorkContent,
                                       x.PlanDate,
                                       x.DutyPerson,
                                       IsOK = ConvertIsOK(x.IsOK),
                                       x.Remark,
                                   };
                this.Grid1.DataBind();
            }
        }
        /// 
        /// Grid行点击事件
        /// 
        /// 
        /// 
        protected void Grid2_RowCommand(object sender, GridCommandEventArgs e)
        {
            string WeekPlanId = Grid2.DataKeys[e.RowIndex][0].ToString();
            var list = GetDetails2();
            if (e.CommandName == "del")//删除
            {
                var Report = list.FirstOrDefault(x => x.WeekPlanId == WeekPlanId);
                if (Report != null)
                {
                    list.Remove(Report);
                }
                Model.SGGLDB db = Funs.DB;
                Grid2.DataSource = from x in list
                                   select new
                                   {
                                       x.WeekPlanId,
                                       x.ProjectId,
                                       x.WeekNo,
                                       x.StartDate,
                                       x.EndDate,
                                       x.UnitWork,
                                       x.Major,
                                       x.UnitId,
                                       x.WorkContent,
                                       x.PlanDate,
                                       x.DutyPerson,
                                       IsOK = ConvertIsOK(x.IsOK),
                                       x.Remark,
                                   };
                this.Grid2.DataBind();
            }
        }
        #endregion
    }
}