423 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			423 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
| using BLL;
 | |
| using Newtonsoft.Json.Linq;
 | |
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Linq;
 | |
| using System.Web.UI.WebControls;
 | |
| 
 | |
| namespace FineUIPro.Web.ZHGL.Environmental
 | |
| {
 | |
|     public partial class OperationReportEdit : PageBase
 | |
|     {
 | |
|         #region 定义项
 | |
|         /// <summary>
 | |
|         /// 主键
 | |
|         /// </summary>
 | |
|         private string BusinessReportId
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return (string)ViewState["BusinessReportId"];
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 ViewState["BusinessReportId"] = value;
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 加载
 | |
|         /// <summary>
 | |
|         /// 加载页面
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void Page_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             if (!IsPostBack)
 | |
|             {
 | |
|                 BLL.ConstValue.InitConstValueDropDownList(this.drpYear, BLL.ConstValue.Group_0008, true);
 | |
|                 BLL.ConstValue.InitConstValueDropDownList(this.ddlQuarter, BLL.ConstValue.Group_0011, true);
 | |
| 
 | |
|                 this.ddlUnitId.DataTextField = "UnitName";
 | |
|                 this.ddlUnitId.DataValueField = "UnitId";
 | |
|                 this.ddlUnitId.DataSource = BLL.UnitService.GetThisUnitDropDownList();
 | |
|                 this.ddlUnitId.DataBind();
 | |
| 
 | |
|                 this.ddlUnitId.Readonly = true;
 | |
| 
 | |
|                 var year = Request.Params["Year"];
 | |
|                 var quarter = Request.Params["Quarter"];
 | |
|                 string unitId = Request.Params["UnitId"];
 | |
| 
 | |
|                 this.drpYear.SelectedValue = year;
 | |
|                 this.ddlQuarter.SelectedValue = quarter;
 | |
| 
 | |
|                 if (!string.IsNullOrEmpty(Request.QueryString["type"]))
 | |
|                 {
 | |
|                     this.btnSave.Hidden = true;
 | |
|                     this.btnUpdata.Hidden = false;
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     this.btnSave.Hidden = false;
 | |
|                     this.btnUpdata.Hidden = true;
 | |
|                 }
 | |
|                 ddlUnitId.SelectedValue = CommonService.GetThisUnitId();
 | |
|                 BindGrid(year, quarter, unitId);
 | |
| 
 | |
|                 
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void BindGrid(string year, string quarter, string unitId)
 | |
|         {
 | |
|             this.BusinessReportId = Request.Params["BusinessReportId"];
 | |
|             if (!string.IsNullOrEmpty(this.BusinessReportId))
 | |
|             {
 | |
|                 var operationReport = Funs.DB.Environmental_OperationReport.FirstOrDefault(s => s.BusinessReportId == this.BusinessReportId);
 | |
| 
 | |
|                 if (operationReport != null)
 | |
|                 {
 | |
|                     #region 赋值
 | |
|                     if (operationReport.Year != null)
 | |
|                     {
 | |
|                         this.drpYear.SelectedValue = operationReport.Year.ToString();
 | |
|                     }
 | |
|                     if (operationReport.Quarters != null)
 | |
|                     {
 | |
|                         this.ddlQuarter.SelectedValue = operationReport.Quarters.ToString();
 | |
|                     }
 | |
|                     if (!string.IsNullOrWhiteSpace(operationReport.FillingMan))
 | |
|                     {
 | |
|                         this.txtCompileMan.Text = operationReport.FillingMan.ToString();
 | |
|                     }
 | |
|                     //if (!string.IsNullOrWhiteSpace(operationReport.UnitLevel))
 | |
|                     //{
 | |
|                     //    this.txtUnitLevel.Text = operationReport.UnitLevel;
 | |
|                     //}
 | |
|                     //if (!string.IsNullOrWhiteSpace(operationReport.Place))
 | |
|                     //{
 | |
|                     //    this.txtPlace.Text = operationReport.Place;
 | |
|                     //}
 | |
|                     if (operationReport.FillingDate != null)
 | |
|                     {
 | |
|                         this.txtFillingDate.Text = operationReport.FillingDate.Value.ToString("yyyy-MM-dd");
 | |
|                     }
 | |
|                     //if (operationReport.CreateDate != null)
 | |
|                     //{
 | |
|                     //    this.txtCreateDate.Text = operationReport.CreateDate.Value.ToString("yyyy-MM-dd");
 | |
|                     //}
 | |
|                     //if (!string.IsNullOrWhiteSpace(operationReport.Code))
 | |
|                     //{
 | |
|                     //    this.txtCode.Text = operationReport.Code;
 | |
|                     //}
 | |
|                     //if (operationReport.PersonNum != null)
 | |
|                     //{
 | |
|                     //    this.txtPersonNum.Text = operationReport.PersonNum.ToString();
 | |
|                     //}
 | |
|                     //if (operationReport.TotalAssets != null)
 | |
|                     //{
 | |
|                     //    this.txtTotalAssets.Text = operationReport.TotalAssets.ToString();
 | |
|                     //}
 | |
|                     //if (operationReport.TotalValue != null)
 | |
|                     //{
 | |
|                     //    this.txtTotalValue.Text = operationReport.TotalValue.ToString();
 | |
|                     //}
 | |
|                     //if (operationReport.NewInvestment != null)
 | |
|                     //{
 | |
|                     //    this.txtNewInvestment.Text = operationReport.NewInvestment.ToString();
 | |
|                     //}
 | |
|                     this.txtStatisticsDutyPerson.Text = operationReport.StatisticsDutyPerson;
 | |
|                     this.txtUnitDutyPerson.Text = operationReport.UnitDutyPerson;
 | |
|                     this.txtRemark.Text = operationReport.Remark;
 | |
| 
 | |
|                     //根据主表id加载子表
 | |
|                     var reportItem = Funs.DB.Environmental_OperationReportItem.Where(x => x.BusinessReportId == operationReport.BusinessReportId)
 | |
|                         .OrderBy(x => x.SortIndex).ToList();
 | |
| 
 | |
|                     Grid1.DataSource = reportItem;
 | |
|                     Grid1.DataBind();
 | |
|                     #endregion
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 #region 不存在则根据项目统计生成
 | |
|                 //this.ddlUnitId.SelectedValue = unitId;
 | |
|                 this.drpYear.SelectedValue = year;
 | |
|                 this.ddlQuarter.SelectedValue = quarter;
 | |
|                 this.txtFillingDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
 | |
| 
 | |
|                 var projects = Funs.DB.Base_Project.Where(s => s.UnitId == unitId).Select(s => s.ProjectId).ToList();
 | |
| 
 | |
|                 var items = Funs.DB.Environmental_ProjectOperationReport
 | |
|                     .Where(s => s.Year.ToString() == year && s.Quarters.ToString() == quarter && projects.Contains(s.ProjectId))
 | |
|                     .ToList();
 | |
| 
 | |
|                 if (items.Any())
 | |
|                 {
 | |
|                     //this.txtPersonNum.Text = items.Sum(s => s.PersonNum ?? 0).ToString();
 | |
|                     //this.txtTotalAssets.Text = items.Sum(s => s.TotalAssets ?? 0).ToString();
 | |
|                     //this.txtTotalValue.Text = items.Sum(s => s.TotalValue ?? 0).ToString();
 | |
|                     //this.txtNewInvestment.Text = items.Sum(s => s.NewInvestment ?? 0).ToString();
 | |
|                 }
 | |
|                 this.txtCompileMan.Text = this.CurrUser.UserName;
 | |
|                 this.txtStatisticsDutyPerson.Text = this.CurrUser.UserName;
 | |
|                 this.txtUnitDutyPerson.Text = this.CurrUser.UserName;
 | |
| 
 | |
|                 //加载子表
 | |
|                 var reportItemlist = new List<Model.Environmental_OperationReportItem>();
 | |
|                 //第一个本单位
 | |
|                 var isthisUnit = CommonService.GetIsThisUnit();
 | |
|                 var reportItemModel = new Model.Environmental_OperationReportItem() {
 | |
|                     BusinessReportItemId = Guid.NewGuid().ToString(),
 | |
|                     SortIndex = 1,
 | |
|                     UnitName = isthisUnit.UnitName,
 | |
|                     SortUnitName= isthisUnit.UnitName,
 | |
|                     Code = isthisUnit.UnitCode,
 | |
|                     UnitLevel = "",
 | |
|                     CreateDate=null,
 | |
|                     Place= isthisUnit.Address,
 | |
|                     PersonNum=0,
 | |
|                     TotalAssets=0,
 | |
|                     TotalValue=0,
 | |
|                     NewInvestment=0,
 | |
|                 };
 | |
|                 reportItemlist.Add(reportItemModel);
 | |
|                 //加载分单位
 | |
|                 var unitList = Funs.DB.Base_Unit.Where(x => x.IsBranch == true).ToList();
 | |
|                 foreach (var item in unitList)
 | |
|                 {
 | |
|                     var reportItemModelb = new Model.Environmental_OperationReportItem()
 | |
|                     {
 | |
|                         BusinessReportItemId = Guid.NewGuid().ToString(),
 | |
|                         SortIndex = 1,
 | |
|                         UnitName = item.UnitName,
 | |
|                         SortUnitName = isthisUnit.UnitName,
 | |
|                         Code = item.UnitCode,
 | |
|                         UnitLevel = "",
 | |
|                         CreateDate = null,
 | |
|                         Place = item.Address,
 | |
|                         PersonNum = 0,
 | |
|                         TotalAssets = 0,
 | |
|                         TotalValue = 0,
 | |
|                         NewInvestment = 0,
 | |
|                     };
 | |
|                     reportItemlist.Add(reportItemModelb);
 | |
|                 }
 | |
|                 Grid1.DataSource = reportItemlist;
 | |
|                 Grid1.DataBind();
 | |
|                 #endregion
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 保存、提交、关闭
 | |
|         /// <summary>
 | |
|         /// 保存按钮
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnSave_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (this.drpYear.SelectedValue == BLL.Const._Null)
 | |
|             {
 | |
|                 Alert.ShowInTop("请选择年度", MessageBoxIcon.Warning);
 | |
|                 return;
 | |
|             }
 | |
|             if (this.ddlQuarter.SelectedValue == BLL.Const._Null)
 | |
|             {
 | |
|                 Alert.ShowInTop("请选择季度", MessageBoxIcon.Warning);
 | |
|                 return;
 | |
|             }
 | |
|             this.SaveData(BLL.Const.BtnSave);
 | |
|             PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 上报
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void btnUpdata_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             SaveData("updata");
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 保存数据
 | |
|         /// </summary>
 | |
|         /// <param name="p"></param>
 | |
|         private void SaveData(string type)
 | |
|         {
 | |
|             Model.Environmental_OperationReport operationReport = new Model.Environmental_OperationReport
 | |
|             {
 | |
|                 UnitId = this.ddlUnitId.SelectedValue
 | |
|             };
 | |
| 
 | |
|             if (this.drpYear.SelectedValue != BLL.Const._Null)
 | |
|             {
 | |
|                 operationReport.Year = Funs.GetNewInt(this.drpYear.SelectedValue);
 | |
|             }
 | |
|             if (this.ddlQuarter.SelectedValue != BLL.Const._Null)
 | |
|             {
 | |
|                 operationReport.Quarters = Funs.GetNewInt(this.ddlQuarter.SelectedValue);
 | |
|             }
 | |
|             operationReport.FillingMan = this.txtCompileMan.Text.Trim();
 | |
|             operationReport.StatisticsDutyPerson = this.txtStatisticsDutyPerson.Text.Trim();
 | |
|             operationReport.UnitDutyPerson = this.txtUnitDutyPerson.Text.Trim();
 | |
|             operationReport.FillingDate = Funs.GetNewDateTime(this.txtFillingDate.Text);
 | |
|             //operationReport.Code = this.txtCode.Text.Trim();
 | |
|             //operationReport.PersonNum = Funs.GetNewInt(this.txtPersonNum.Text.Trim());
 | |
|             //operationReport.TotalAssets = Funs.GetNewDecimalOrZero(this.txtTotalAssets.Text.Trim());
 | |
|             //operationReport.TotalValue = Funs.GetNewDecimalOrZero(this.txtTotalValue.Text.Trim());
 | |
|             //operationReport.NewInvestment = Funs.GetNewDecimalOrZero(this.txtNewInvestment.Text.Trim());
 | |
|             //operationReport.UnitLevel = this.txtUnitLevel.Text.Trim();
 | |
|             //operationReport.CreateDate = Funs.GetNewDateTime(this.txtCreateDate.Text);
 | |
|             //operationReport.Place = this.txtPlace.Text.Trim();
 | |
|             operationReport.Remark = this.txtRemark.Text.Trim();
 | |
| 
 | |
|             if (!string.IsNullOrEmpty(this.BusinessReportId))
 | |
|             {
 | |
|                 var model = Funs.DB.Environmental_OperationReport.FirstOrDefault(s => s.BusinessReportId == this.BusinessReportId);
 | |
|                 if (model != null)
 | |
|                 {
 | |
|                     //model.Code = operationReport.Code;
 | |
|                     //model.PersonNum = operationReport.PersonNum;
 | |
|                     //model.TotalAssets = operationReport.TotalAssets;
 | |
|                     //model.TotalValue = operationReport.TotalValue;
 | |
|                     //model.NewInvestment = operationReport.NewInvestment;
 | |
|                     model.Quarters = operationReport.Quarters;
 | |
|                     model.Year = operationReport.Year;
 | |
|                     model.FillingMan = operationReport.FillingMan;
 | |
|                     model.FillingDate = operationReport.FillingDate;
 | |
|                     //model.CreateDate = operationReport.CreateDate;
 | |
|                     //model.Place = operationReport.Place;
 | |
|                     model.Remark = operationReport.Remark;
 | |
|                     model.StatisticsDutyPerson = operationReport.StatisticsDutyPerson;
 | |
|                     model.UnitDutyPerson = operationReport.UnitDutyPerson;
 | |
| 
 | |
|                     operationReport.UpState = model.UpState;
 | |
|                     operationReport.BusinessReportId = model.BusinessReportId;
 | |
| 
 | |
|                     BLL.LogService.AddSys_Log(this.CurrUser, operationReport.Year.ToString() + "-" + operationReport.Quarters.ToString(), operationReport.BusinessReportId, BLL.Const.OperationReportMenuId, BLL.Const.BtnModify);
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                     saveReportItem(operationReport.BusinessReportId);
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 var model = (from x in Funs.DB.Environmental_OperationReport
 | |
|                              where x.UnitId == operationReport.UnitId && x.Year == operationReport.Year && x.Quarters == operationReport.Quarters
 | |
|                              select x).FirstOrDefault();
 | |
| 
 | |
|                 if (model == null)
 | |
|                 {
 | |
|                     this.BusinessReportId = SQLHelper.GetNewID(typeof(Model.Environmental_ProjectOperationReport));
 | |
|                     operationReport.BusinessReportId = this.BusinessReportId;
 | |
|                     operationReport.UpState = Const.UpState_2;
 | |
| 
 | |
|                     Funs.DB.Environmental_OperationReport.InsertOnSubmit(operationReport);
 | |
|                     BLL.LogService.AddSys_Log(this.CurrUser, operationReport.Year.ToString() + "-" + operationReport.Quarters.ToString(), operationReport.BusinessReportId,
 | |
|                         BLL.Const.OperationReportMenuId, BLL.Const.BtnAdd);
 | |
| 
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                     saveReportItem(operationReport.BusinessReportId);
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     Alert.ShowInTop("该季度记录已存在", MessageBoxIcon.Warning);
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             if (type == "updata")     //数据同步
 | |
|             {
 | |
|                 if (operationReport.UpState == BLL.Const.UpState_2)
 | |
|                 {
 | |
|                     string code = CNCECHSSEWebService.UpOperationReport(operationReport.BusinessReportId, this.CurrUser);
 | |
|                     if (code == "1")
 | |
|                     {
 | |
|                         ShowNotify("同步成功!", MessageBoxIcon.Success);
 | |
|                         PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
 | |
|                         return;
 | |
|                     }
 | |
|                     else if (code == "3")
 | |
|                     {
 | |
|                         Alert.ShowInParent("集团当前季度数据已锁定,无法上传!", MessageBoxIcon.Error);
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         Alert.ShowInParent("同步异常,请退出后重试!", MessageBoxIcon.Error);
 | |
|                     }
 | |
|                 }
 | |
|                 else
 | |
|                 {
 | |
|                     ShowNotify("当前单据状态不能同步!", MessageBoxIcon.Warning);
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region 保存子表
 | |
|         private void saveReportItem(string BusinessReportId) {
 | |
|             var list = Funs.DB.Environmental_OperationReportItem.Where(x => x.BusinessReportId == BusinessReportId).ToList();
 | |
|             //先删除
 | |
|             if (list.Count>0)
 | |
|             {
 | |
|                 Funs.DB.Environmental_OperationReportItem.DeleteAllOnSubmit(list);
 | |
|                 Funs.DB.SubmitChanges();
 | |
|             }
 | |
|             //再保存
 | |
|             JArray mergedData = Grid1.GetMergedData();
 | |
|             var reportItemlist = new List<Model.Environmental_OperationReportItem>();
 | |
|             var isthisUnit = CommonService.GetIsThisUnit();
 | |
|             foreach (var item in mergedData)
 | |
|             {
 | |
|                 JObject values = item.Value<JObject>("values");
 | |
|                 int i = item.Value<int>("index");
 | |
|                 var model = new Model.Environmental_OperationReportItem() { 
 | |
|                     BusinessReportItemId= Grid1.Rows[i].DataKeys[0].ToString(),
 | |
|                     BusinessReportId= BusinessReportId,
 | |
|                     SortIndex= i+1,
 | |
|                     UnitName = values.Value<string>("UnitName").ToString(),
 | |
|                     SortUnitName= isthisUnit.UnitName,
 | |
|                     Code= values.Value<string>("Code").ToString(),
 | |
|                     UnitLevel= values.Value<string>("UnitLevel").ToString(),
 | |
|                     Place= values.Value<string>("Place").ToString(),
 | |
|                     PersonNum= values.Value<int>("PersonNum"),
 | |
|                     TotalAssets= values.Value<decimal>("TotalAssets"),
 | |
|                     TotalValue = values.Value<decimal>("TotalValue"),
 | |
|                     NewInvestment = values.Value<decimal>("NewInvestment"),
 | |
| 
 | |
|                 };
 | |
|                 if (!string.IsNullOrEmpty(values.Value<string>("CreateDate").ToString()))
 | |
|                 {
 | |
|                     model.CreateDate = Convert.ToDateTime(values.Value<string>("CreateDate").ToString());
 | |
|                 }
 | |
|                 reportItemlist.Add(model);
 | |
|             }
 | |
|             Funs.DB.Environmental_OperationReportItem.InsertAllOnSubmit(reportItemlist);
 | |
|             Funs.DB.SubmitChanges();
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 年季度变化事件
 | |
|         /// <summary>
 | |
|         /// 年季度变化事件
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         protected void drpYear_SelectedIndexChanged(object sender, EventArgs e)
 | |
|         {
 | |
|             if (this.drpYear.SelectedValue != BLL.Const._Null && this.ddlQuarter.SelectedValue != BLL.Const._Null)
 | |
|             {
 | |
|                 BindGrid(this.drpYear.SelectedValue, this.ddlQuarter.SelectedValue, Request.Params["unitId"]);
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
|     }
 | |
| } |