SGGL_SHJ/SGGL/FineUIPro.Web/DataShow/QualityAcceptance.aspx.cs

247 lines
9.5 KiB
C#
Raw Permalink 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 Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace FineUIPro.Web.DataShow
{
public partial class QualityAcceptance : PageBase
{
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Funs.DropDownPageSize(this.ddlPageSize);
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
BLL.ProjectService.InitCNCECShowProjectDropDownList(this.drpProject, true);
// 绑定表格t
BindGrid();
// 合计
OutputSummaryData();
this.Panel1.Title = "质量验收数据(" + BLL.UnitService.GetUnitNameByUnitId(BLL.Const.UnitId_SEDIN) + "";
}
}
#endregion
/// <summary>
/// 绑定数据
/// </summary>
private void BindGrid()
{
string strSql = @"select ProjectId,ProjectCode, ProjectName from Base_Project where IsCNCECShow=1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
string cpara = string.Empty;
if (this.drpProject.SelectedValue != Const._Null)
{
strSql += " AND projectId = @projectId"; ///状态为已完成
listStr.Add(new SqlParameter("@projectId", this.drpProject.SelectedValue));
}
//if (!string.IsNullOrEmpty(this.txtStartTime.Text))
//{
// strSql += " AND h.RegisterDate >=@StartTime";
// listStr.Add(new SqlParameter("@StartTime", this.txtStartTime.Text));
// cpara += " AND c.RegisterDate >=" + this.txtStartTime.Text;
//}
//if (!string.IsNullOrEmpty(this.txtEndTime.Text))
//{
// strSql += " AND h.RegisterDate <=@EndTime";
// listStr.Add(new SqlParameter("@EndTime", this.txtEndTime.Text));
// cpara += " AND c.RegisterDate <=" + this.txtEndTime.Text;
//}
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();
}
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 分页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
BindGrid();
}
/// <summary>
/// 分页显示条数下拉框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 关闭弹出窗
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
BindGrid();
}
#endregion
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.QualityAcceptanceItem> getDataItemLists = from x in Funs.DB.Check_SpotCheckDetail
join z in Funs.DB.WBS_ControlItemAndCycle on x.ControlItemAndCycleId equals z.ControlItemAndCycleId
select new Model.QualityAcceptanceItem
{
InspectionDetailId = x.SpotCheckDetailId,
ProjectId = z.ProjectId,
CheckAcceptType = z.CheckAcceptType,
IsOnceQualified = x.IsOK
};
/// <summary>
/// 数量
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected int Count1(object projectId)
{
int cout1 = 0;
if (projectId != null)
{
var getT = getDataItemLists.Where(x => x.ProjectId == projectId.ToString() && x.CheckAcceptType == this.rbType.SelectedValue);
cout1 = getT.Count();
}
return cout1;
}
/// <summary>
/// 数量
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected int Count2(object projectId)
{
int cout1 = 0;
if (projectId != null)
{
var getT = getDataItemLists.Where(x => x.ProjectId == projectId.ToString() && x.CheckAcceptType == this.rbType.SelectedValue && x.IsOnceQualified == true);
cout1 = getT.Count();
}
return cout1;
}
/// <summary>
/// 数量
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected int Count3(object projectId)
{
int cout1 = 0;
if (projectId != null)
{
var getT1 = getDataItemLists.Where(x => x.ProjectId == projectId.ToString() && x.CheckAcceptType == this.rbType.SelectedValue);
var getT2 = getDataItemLists.Where(x => x.ProjectId == projectId.ToString() && x.CheckAcceptType == this.rbType.SelectedValue && x.IsOnceQualified == true);
cout1 = getT1.Count() - getT2.Count();
}
return cout1;
}
/// <summary>
/// 数量
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected string Count4(object projectId)
{
string rate = string.Empty;
if (projectId != null)
{
var getT1 = getDataItemLists.Where(x => x.ProjectId == projectId.ToString() && x.CheckAcceptType == this.rbType.SelectedValue);
var getT2 = getDataItemLists.Where(x => x.ProjectId == projectId.ToString() && x.CheckAcceptType == this.rbType.SelectedValue && x.IsOnceQualified == true);
if (getT1.Count() > 0)
{
rate = Math.Round(getT2.Count() * 1.0 / getT1.Count() * 100, 2).ToString();
}
}
return rate;
}
#region
private void OutputSummaryData()
{
string strSql = @"select a.ProjectId,a.ProjectCode, a.ProjectName,a.UnitId,isnull(Count1,0) as Count1,
isnull(Count2,0) as Count2
from Base_Project a
left join (select count(*) as Count1,z.ProjectId From Check_SpotCheckDetail x
left join WBS_ControlItemAndCycle z on x.ControlItemAndCycleId=z.ControlItemAndCycleId group by z.ProjectId) as b
on a.ProjectId= b.ProjectId
left join (select count(*) as Count2,z.ProjectId,IsOK From Check_SpotCheckDetail x
left join WBS_ControlItemAndCycle z on x.ControlItemAndCycleId=z.ControlItemAndCycleId
group by z.ProjectId,x.IsOK) as c
on a.ProjectId= c.ProjectId and IsOK=1
where ProjectState =1 ";
List<SqlParameter> listStr = new List<SqlParameter>();
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
int Count1 = 0, Count2 = 0;
foreach (DataRow row in tb.Rows)
{
Count1 += Convert.ToInt32(row["Count1"]);
Count2 += Convert.ToInt32(row["Count2"]);
}
JObject summary = new JObject();
summary.Add("ProjectName", "合计:");
summary.Add("Count1", Count1.ToString());
summary.Add("Count2", Count2.ToString());
summary.Add("Count3", (Count1 - Count2).ToString());
summary.Add("Count4", Math.Round(Count2 * 1.0 / Count1 * 100, 2).ToString());
Grid1.SummaryData = summary;
}
#endregion
}
}