ChengDa_English/SGGL/FineUIPro.Web/ZHGL/Environmental/ProjectEnergyReportSave.asp...

503 lines
25 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using Model;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.ZHGL.Environmental
{
public partial class ProjectEnergyReportSave : PageBase
{
#region
/// <summary>
/// 报表主键Id
/// </summary>
public string EnergyReportId
{
get
{
return (string)ViewState["EnergyReportId"];
}
set
{
ViewState["EnergyReportId"] = value;
}
}
/// <summary>
/// 定义集合
/// </summary>
private static List<Model.Environmental_ProjectEnergyReportItem> items = new List<Model.Environmental_ProjectEnergyReportItem>();
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Params["type"] != "-1")
{
this.GetButtonPower();
}
items.Clear();
BLL.ConstValue.InitConstValueDropDownList(this.drpQuarters, ConstValue.Group_0011, false);
BLL.ConstValue.InitConstValueDropDownList(this.drpYear, ConstValue.Group_0008, false);
this.drpUnit.DataTextField = "UnitName";
drpUnit.DataValueField = "UnitId";
drpUnit.DataSource = BLL.UnitService.GetThisUnitDropDownList();
drpUnit.DataBind();
this.drpUnit.Readonly = true;
string unitId = Request.QueryString["UnitId"];
string year = Request.QueryString["Year"];
string quarters = Request.QueryString["Quarters"];
EnergyReportId = Request.QueryString["EnergyReportId"];
if (!string.IsNullOrEmpty(Request.QueryString["type"]))
{
this.btnSave.Hidden = true;
}
else
{
this.btnSave.Hidden = false;
}
if (!String.IsNullOrEmpty(EnergyReportId))
{
items = BLL.ProjectEnergyreportItemService.GetShowItems(EnergyReportId);
this.Grid1.DataSource = items;
this.Grid1.DataBind();
var report = BLL.ProjectEnergyReportService.GetEnvironmental_ProjectEnergyReportById(EnergyReportId);
if (report != null)
{
//this.btnCopy.Hidden = true;
//if (this.CurrUser.UserId == BLL.Const.sysglyId || this.CurrUser.UserId == BLL.Const.hfnbdId)
//{
// this.btnSave.Hidden = false;
//}
if (report.UpState == BLL.Const.UpState_3)
{
this.btnSave.Hidden = true;
}
drpQuarters.SelectedValue = report.Quarters.ToString();
drpYear.SelectedValue = report.Year.ToString();
drpUnit.SelectedValue = report.UnitId;
if (report.FillingDate != null)
{
txtFillingDate.Text = string.Format("{0:yyyy-MM-dd}", report.FillingDate);
}
txtDutyPerson.Text = report.DutyPerson;
}
}
else
{
//this.btnCopy.Hidden = false;
drpQuarters.SelectedValue = quarters;
drpYear.SelectedValue = year;
txtFillingDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
txtDutyPerson.Text = this.CurrUser.UserName;
//增加明细集合
GetNewItems(year, quarters);
this.Grid1.DataSource = items;
this.Grid1.DataBind();
}
}
else
{
string arg = GetRequestEventArgument(); // 此函数所在文件PageBase.cs
if (arg == "UPDATE_SUMMARY")
{
SaveData();
}
}
}
void SaveData()
{
List<Model.Environmental_ProjectEnergyReportItem> _EnergyReportItems = new List<Environmental_ProjectEnergyReportItem>();
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
string sortIndex = values.Value<string>("SortIndex");
var newItem = items.FirstOrDefault(x => x.SortIndex == sortIndex);
if (newItem != null)
{
newItem.EnergyReportItemId = SQLHelper.GetNewID();
newItem.EnergyReportId = EnergyReportId;
newItem.SortIndex = values.Value<string>("SortIndex");
newItem.BusinessCategory = values.Value<string>("BusinessCategory");
newItem.Throughput_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Throughput_BasePeriod")).ToString();
newItem.Throughput_LastPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Throughput_LastPeriod")).ToString();
newItem.Throughput_ThisPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Throughput_ThisPeriod")).ToString();
newItem.Throughput_UnitOfMeasurement = values.Value<string>("Throughput_UnitOfMeasurement");
newItem.Yield_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Yield_BasePeriod")).ToString();
newItem.Yield_LastPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Yield_LastPeriod")).ToString();
newItem.Yield_ThisPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Yield_ThisPeriod")).ToString();
newItem.Yield_UnitOfMeasurement = values.Value<string>("Yield_UnitOfMeasurement");
newItem.OutputValue_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("OutputValue_BasePeriod")).ToString();
newItem.OutputValue_LastYear = Funs.GetNewDecimalOrZero(values.Value<string>("OutputValue_LastYear")).ToString();
newItem.OutputValue_ThisYear = Funs.GetNewDecimalOrZero(values.Value<string>("OutputValue_ThisYear")).ToString();
newItem.OperationScale_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("OperationScale_BasePeriod")).ToString();
newItem.OperationScale_LastYear = Funs.GetNewDecimalOrZero(values.Value<string>("OperationScale_LastYear")).ToString();
newItem.OperationScale_ThisYear = Funs.GetNewDecimalOrZero(values.Value<string>("OperationScale_ThisYear")).ToString();
newItem.OperationScale_UnitOfMeasurement = values.Value<string>("OperationScale_UnitOfMeasurement");
newItem.ServiceOperatingIncome_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("ServiceOperatingIncome_BasePeriod")).ToString();
newItem.ServiceOperatingIncome_LastYear = Funs.GetNewDecimalOrZero(values.Value<string>("ServiceOperatingIncome_LastYear")).ToString();
newItem.ServiceOperatingIncome_ThisYear = Funs.GetNewDecimalOrZero(values.Value<string>("ServiceOperatingIncome_ThisYear")).ToString();
_EnergyReportItems.Add(newItem);
}
}
this.Grid1.DataSource = _EnergyReportItems;
this.Grid1.DataBind();
_EnergyReportItems.RemoveAll(x => x.SortIndex == "01");
var q = (from x in _EnergyReportItems
group x by x.EnergyReportId into g
select new
{
g.Key,
Throughput_BasePeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.Throughput_BasePeriod)),
Throughput_LastPeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.Throughput_LastPeriod)),
Throughput_ThisPeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.Throughput_ThisPeriod)),
Yield_BasePeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.Yield_BasePeriod)),
Yield_LastPeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.Yield_LastPeriod)),
Yield_ThisPeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.Yield_ThisPeriod)),
OutputValue_BasePeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.OutputValue_BasePeriod)),
OutputValue_LastYear = g.Sum(x => Funs.GetNewDecimalOrZero(x.OutputValue_LastYear)),
OutputValue_ThisYear = g.Sum(x => Funs.GetNewDecimalOrZero(x.OutputValue_ThisYear)),
OperationScale_BasePeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.OperationScale_BasePeriod)),
OperationScale_LastYear = g.Sum(x => Funs.GetNewDecimalOrZero(x.OperationScale_LastYear)),
OperationScale_ThisYear = g.Sum(x => Funs.GetNewDecimalOrZero(x.OperationScale_ThisYear)),
ServiceOperatingIncome_BasePeriod = g.Sum(x => Funs.GetNewDecimalOrZero(x.ServiceOperatingIncome_BasePeriod)),
ServiceOperatingIncome_LastYear = g.Sum(x => Funs.GetNewDecimalOrZero(x.ServiceOperatingIncome_LastYear)),
ServiceOperatingIncome_ThisYear = g.Sum(x => Funs.GetNewDecimalOrZero(x.ServiceOperatingIncome_ThisYear)),
}
).FirstOrDefault();
this.Grid1.Rows[0].Values[4] = q.Throughput_BasePeriod;
this.Grid1.Rows[0].Values[5] = q.Throughput_LastPeriod;
this.Grid1.Rows[0].Values[6] = q.Throughput_ThisPeriod;
this.Grid1.Rows[0].Values[9] = q.Yield_BasePeriod;
this.Grid1.Rows[0].Values[10] = q.Yield_LastPeriod;
this.Grid1.Rows[0].Values[11] = q.Yield_ThisPeriod;
this.Grid1.Rows[0].Values[14] = q.OutputValue_BasePeriod;
this.Grid1.Rows[0].Values[15] = q.OutputValue_LastYear;
this.Grid1.Rows[0].Values[16] = q.OutputValue_ThisYear;
this.Grid1.Rows[0].Values[19] = q.OperationScale_BasePeriod;
this.Grid1.Rows[0].Values[20] = q.OperationScale_LastYear;
this.Grid1.Rows[0].Values[21] = q.OperationScale_ThisYear;
this.Grid1.Rows[0].Values[24] = q.ServiceOperatingIncome_BasePeriod;
this.Grid1.Rows[0].Values[25] = q.ServiceOperatingIncome_LastYear;
this.Grid1.Rows[0].Values[26] = q.ServiceOperatingIncome_ThisYear;
}
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
Model.Environmental_ProjectEnergyReportItem a = (Model.Environmental_ProjectEnergyReportItem)e.DataItem;
e.DataItem.ToString();
//string SortIndex = Convert.ToString(row["SortIndex"]);
if (a.SortIndex == "01")
{
for (int i = 0; i < e.CellCssClasses.Count(); i++)
{
e.CellCssClasses[i] = "f-grid-cell-uneditable";
}
}
}
#endregion
#region
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
var report = BLL.ProjectEnergyReportService.GetEnvironmental_ProjectEnergyReportById(EnergyReportId);
this.btnSave.Hidden = false;
}
#endregion
#region
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void Save(string type)
{
//string EnergyReportId = Request.QueryString["EnergyReportId"];
Model.Environmental_ProjectEnergyReport report = new Environmental_ProjectEnergyReport
{
ProjectId=this.CurrUser.LoginProjectId,
Year = Funs.GetNewIntOrZero(drpYear.SelectedValue),
Quarters = Funs.GetNewIntOrZero(drpQuarters.SelectedValue)
};
if (!string.IsNullOrEmpty(txtFillingDate.Text.Trim()))
{
report.FillingDate = Convert.ToDateTime(txtFillingDate.Text.Trim());
}
report.DutyPerson = txtDutyPerson.Text.Trim();
if (String.IsNullOrEmpty(EnergyReportId))
{
Environmental_ProjectEnergyReport old = ProjectEnergyReportService.GetEnergyReportByProjectIdDate(this.CurrUser.LoginProjectId, Funs.GetNewIntOrZero(drpYear.SelectedValue), Funs.GetNewIntOrZero(drpQuarters.SelectedValue));
if (old == null)
{
report.EnergyReportId = SQLHelper.GetNewID(typeof(Model.Environmental_ProjectEnergyReport));
report.UpState = BLL.Const.UpState_2;
report.FillingMan = this.CurrUser.UserName;
BLL.ProjectEnergyReportService.AddEnvironmental_ProjectEnergyReport(report);
BLL.LogService.AddSys_Log(this.CurrUser, report.Year.ToString() + "-" + report.Quarters.ToString(), report.EnergyReportId, BLL.Const.ProjectEnergyReportMenuId, BLL.Const.BtnAdd);
}
else
{
ShowNotify("该月份记录已存在!", MessageBoxIcon.Warning);
return;
}
}
else
{
Model.Environmental_ProjectEnergyReport oldReport = BLL.ProjectEnergyReportService.GetEnvironmental_ProjectEnergyReportById(EnergyReportId);
report.EnergyReportId = EnergyReportId;
report.UpState = BLL.Const.UpState_2;
BLL.ProjectEnergyReportService.UpdateEnvironmental_ProjectEnergyReport(report);
BLL.LogService.AddSys_Log(this.CurrUser, report.Year.ToString() + "-" + report.Quarters.ToString(), report.EnergyReportId, BLL.Const.ProjectEnergyReportMenuId, BLL.Const.BtnModify);
}
EnergyReportId = report.EnergyReportId;
BLL.ProjectEnergyreportItemService.DeleteEnergyReportItemByChemicalReportId(report.EnergyReportId);
GetItems(report.EnergyReportId);
ProjectEnergyreportItemService.AddBulkEnvironmental_ProjectEnergyReportItem(items);
if (type == "updata") //数据同步
{
if (report.UpState == BLL.Const.UpState_2)
{
//string code = CNCECHSSEWebService.UpChemicalReport(report.EnergyReportId, this.CurrUser);
//if (code == "1")
//{
// ShowNotify("同步成功!", MessageBoxIcon.Success);
// PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
// return;
//}
//else
//{
// Alert.ShowInParent("同步异常,请退出后重试!", MessageBoxIcon.Error);
//}
}
else
{
ShowNotify("当前单据状态不能同步!", MessageBoxIcon.Warning);
return;
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
Save("add");
ShowNotify("保存成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
protected void btnUpdata_Click(object sender, EventArgs e)
{
Save("updata");
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
Save("submit");
}
#endregion
#region
private void GetItems(string EnergyReportId)
{
List<Model.Environmental_ProjectEnergyReportItem> newItemLists = new List<Environmental_ProjectEnergyReportItem>();
foreach (JObject mergedRow in Grid1.GetMergedData())
{
JObject values = mergedRow.Value<JObject>("values");
string sortIndex = values.Value<string>("SortIndex");
var newItem = items.FirstOrDefault(x => x.SortIndex == sortIndex);
if (newItem != null)
{
newItem.EnergyReportItemId = SQLHelper.GetNewID();
newItem.EnergyReportId = EnergyReportId;
newItem.SortIndex = values.Value<string>("SortIndex");
newItem.BusinessCategory = values.Value<string>("BusinessCategory");
newItem.Throughput_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Throughput_BasePeriod")).ToString();
newItem.Throughput_LastPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Throughput_LastPeriod")).ToString();
newItem.Throughput_ThisPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Throughput_ThisPeriod")).ToString();
newItem.Throughput_UnitOfMeasurement = values.Value<string>("Throughput_UnitOfMeasurement");
newItem.Yield_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Yield_BasePeriod")).ToString();
newItem.Yield_LastPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Yield_LastPeriod")).ToString();
newItem.Yield_ThisPeriod = Funs.GetNewDecimalOrZero(values.Value<string>("Yield_ThisPeriod")).ToString();
newItem.Yield_UnitOfMeasurement = values.Value<string>("Yield_UnitOfMeasurement");
newItem.OutputValue_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("OutputValue_BasePeriod")).ToString();
newItem.OutputValue_LastYear = Funs.GetNewDecimalOrZero(values.Value<string>("OutputValue_LastYear")).ToString();
newItem.OutputValue_ThisYear = Funs.GetNewDecimalOrZero(values.Value<string>("OutputValue_ThisYear")).ToString();
newItem.OperationScale_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("OperationScale_BasePeriod")).ToString();
newItem.OperationScale_LastYear = Funs.GetNewDecimalOrZero(values.Value<string>("OperationScale_LastYear")).ToString();
newItem.OperationScale_ThisYear = Funs.GetNewDecimalOrZero(values.Value<string>("OperationScale_ThisYear")).ToString();
newItem.OperationScale_UnitOfMeasurement = values.Value<string>("OperationScale_UnitOfMeasurement");
newItem.ServiceOperatingIncome_BasePeriod = Funs.GetNewDecimalOrZero(values.Value<string>("ServiceOperatingIncome_BasePeriod")).ToString();
newItem.ServiceOperatingIncome_LastYear = Funs.GetNewDecimalOrZero(values.Value<string>("ServiceOperatingIncome_LastYear")).ToString();
newItem.ServiceOperatingIncome_ThisYear = Funs.GetNewDecimalOrZero(values.Value<string>("ServiceOperatingIncome_ThisYear")).ToString();
newItemLists.Add(newItem);
}
}
items = newItemLists;
}
#endregion
#region
private void GetNewItems(string year, string months)
{
var indexNames = ProjectEnergyreportItemService.GetItems("Template");
foreach (var indexName in indexNames)
{
//增加明细集合
Model.Environmental_ProjectEnergyReportItem item = new Environmental_ProjectEnergyReportItem
{
EnergyReportItemId = SQLHelper.GetNewID(typeof(Model.Environmental_ProjectEnergyReportItem)),
BusinessCategory = indexName.BusinessCategory,
SortIndex = indexName.SortIndex,
};
items.Add(item);
}
}
#endregion
#region
/// <summary>
/// 单位下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpUnit_SelectedIndexChanged(object sender, EventArgs e)
{
items.Clear();
if (drpUnit.SelectedValue != BLL.Const._Null)
{
//GetNewItems();
}
Grid1.DataSource = items;
Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower()
{
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.ProjectEnergyReportMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnSave))
{
this.btnSave.Hidden = false;
//this.btnCopy.Hidden = false;
}
//if (buttonList.Contains(BLL.Const.BtnSaveUp))
//{
// this.btnUpdata.Hidden = false;
//}
}
}
#endregion
#region
/// <summary>
/// 复制上个月的数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnCopy_Click(object sender, EventArgs e)
{
//DateTime? nowDate = Funs.GetNewDateTime(this.drpYear.SelectedValue + "-" + this.drpMonth.SelectedValue);
//if (nowDate.HasValue)
//{
// DateTime showDate = new DateTime();
// showDate = nowDate.Value.AddMonths(-1);
// Model.Environmental_ProjectEnergyReport ChemicalReport = BLL.ProjectEnergyReportService.GetEnvironmental_ProjectEnergyReportByUnitIdAndYearAndMonth(this.drpUnit.SelectedValue, showDate.Year, showDate.Month);
// if (ChemicalReport != null)
// {
// Model.Environmental_ProjectEnergyReport newChemicalReport = new Environmental_ProjectEnergyReport();
// this.EnergyReportId = SQLHelper.GetNewID(typeof(Model.Environmental_ProjectEnergyReport));
// newChemicalReport.EnergyReportId = this.EnergyReportId;
// newChemicalReport.UnitId = this.drpUnit.SelectedValue;
// newChemicalReport.Year = Convert.ToInt32(this.drpYear.SelectedValue);
// newChemicalReport.Month = Convert.ToInt32(this.drpMonth.SelectedValue);
// newChemicalReport.FillingMan = this.CurrUser.UserName;
// newChemicalReport.FillingDate = DateTime.Now;
// newChemicalReport.DutyPerson = this.CurrUser.UserName;
// newChemicalReport.UpState = BLL.Const.UpState_2;
// BLL.ProjectEnergyReportService.ad(newChemicalReport);
// var oldItems = BLL.ProjectEnergyreportItemService.GetItems(ChemicalReport.EnergyReportId);
// if (oldItems.Count > 0)
// {
// foreach (var item in oldItems)
// {
// Model.Environmental_ProjectEnergyReportItem newItem = new Environmental_ProjectEnergyReportItem
// {
// ChemicalReportItemId = SQLHelper.GetNewID(typeof(Model.Environmental_ProjectEnergyReportItem)),
// EnergyReportId = this.EnergyReportId,
// SortIndex = item.SortIndex,
// LastYearValue = item.LastYearValue,
// ThisYearValue = item.ThisYearValue,
// Rate = item.Rate,
// };
// BLL.ProjectEnergyreportItemService.AddChemicalReportItem(newItem);
// }
// }
// GetValues(newChemicalReport.EnergyReportId);
// }
//}
}
/// <summary>
/// 获取复制的值绑定到文本中
/// </summary>
private void GetValues(string EnergyReportId)
{
var report = BLL.ProjectEnergyReportService.GetEnvironmental_ProjectEnergyReportById(EnergyReportId);
if (report != null)
{
drpQuarters.SelectedValue = report.Quarters.ToString();
drpYear.SelectedValue = report.Year.ToString();
drpUnit.SelectedValue = report.UnitId;
if (report.FillingDate != null)
{
txtFillingDate.Text = string.Format("{0:yyyy-MM-dd}", report.FillingDate);
}
txtDutyPerson.Text = report.DutyPerson;
items = BLL.ProjectEnergyreportItemService.GetShowItems(EnergyReportId);
this.Grid1.DataSource = items;
this.Grid1.DataBind();
}
}
#endregion
}
}