This commit is contained in:
parent
098c1ccacc
commit
2471c8b18b
|
|
@ -55,23 +55,28 @@ namespace FineUIPro.Web.Door
|
|||
/// </summary>
|
||||
private void GetPersonStatistic()
|
||||
{
|
||||
string strSql = @"WITH CTE AS (
|
||||
SELECT ROW_NUMBER() OVER (PARTITION BY Record.IDCardNo,RecordDate ORDER BY OffDuty3 desc,WorkIn3,OffDuty2 desc,WorkIn2,OffDuty1 desc,WorkIn1) as rn
|
||||
,NewID,Record.ProjectId,InstallationName,P.UnitId,U.UnitName,P.PersonName,RecordDate,Record.EmployName
|
||||
,IDCardNo,P.Nation,B.dictName AS NationName ,PostName,WorkIn1,OffDuty1,WorkIn2,OffDuty2,WorkIn3,OffDuty3,ManHours
|
||||
,T.TeamGroupId,T.TeamGroupName,P.WorkPostId,W.WorkPostName, ManOverHours
|
||||
FROM dbo.t_d_EmployInOutRecord AS Record
|
||||
LEFT JOIN SitePerson_Person AS P ON Record.ProjectId=P.ProjectId AND Record.IDCardNo=P.IdentityCard
|
||||
LEFT JOIN Base_Unit AS U ON P.UnitId =U.UnitId
|
||||
LEFT JOIN ProjectData_TeamGroup AS T ON P.TeamGroupId=T.TeamGroupId
|
||||
LEFT JOIN Base_WorkPost AS W ON P.WorkPostId =W.WorkPostId
|
||||
LEFT JOIN RealName_BasicData AS B ON B.dictTypeCode='MINZU_TYPE' AND B.dictCode=P.Nation
|
||||
WHERE Record.ProjectId = @ProjectId";
|
||||
string strSql = @"
|
||||
SELECT NewID,ManOverHours, ManHours
|
||||
FROM dbo.t_d_EmployInOutRecord AS Record
|
||||
";
|
||||
List<SqlParameter> listStr = new List<SqlParameter>
|
||||
{
|
||||
new SqlParameter("@ProjectId", this.ProjectId)
|
||||
};
|
||||
|
||||
if ("-1" != rbPost.SelectedValue)
|
||||
{
|
||||
strSql += " LEFT JOIN SitePerson_Person AS P ON Record.ProjectId=P.ProjectId AND Record.IDCardNo=P.IdentityCard ";
|
||||
}
|
||||
strSql += " WHERE Record.ProjectId = @ProjectId ";
|
||||
if (rbPost.SelectedValue == "0")
|
||||
{
|
||||
strSql += " AND P.OutTime IS NOT NULL";
|
||||
}
|
||||
else if (rbPost.SelectedValue == "1")
|
||||
{
|
||||
strSql += " AND P.OutTime IS NULL";
|
||||
}
|
||||
|
||||
if (this.drpUnit.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue))
|
||||
{
|
||||
int i = 0;
|
||||
|
|
@ -79,11 +84,11 @@ namespace FineUIPro.Web.Door
|
|||
{
|
||||
if (i == 0)
|
||||
{
|
||||
strSql += " AND ( P.UnitId = @UnitId" + i.ToString();
|
||||
strSql += " AND ( Record.UnitId = @UnitId" + i.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
strSql += " OR P.UnitId = @UnitId" + i.ToString();
|
||||
strSql += " OR Record.UnitId = @UnitId" + i.ToString();
|
||||
}
|
||||
|
||||
listStr.Add(new SqlParameter("@UnitId" + i.ToString(), item.Value));
|
||||
|
|
@ -99,17 +104,17 @@ namespace FineUIPro.Web.Door
|
|||
{
|
||||
if (i == 0)
|
||||
{
|
||||
strSql += " AND ( P.WorkPostId = @WorkPostId" + i.ToString();
|
||||
strSql += " AND ( Record.PostId = @WorkPostId" + i.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
strSql += " OR P.WorkPostId = @WorkPostId" + i.ToString();
|
||||
strSql += " OR Record.PostId = @WorkPostId" + i.ToString();
|
||||
}
|
||||
|
||||
listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), item.Value));
|
||||
i++;
|
||||
}
|
||||
strSql += " ) ";
|
||||
strSql += " ";
|
||||
}
|
||||
|
||||
if (this.drpWorkTeam.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpWorkTeam.SelectedValue))
|
||||
|
|
@ -119,54 +124,59 @@ namespace FineUIPro.Web.Door
|
|||
{
|
||||
if (i == 0)
|
||||
{
|
||||
strSql += " AND ( T.TeamGroupId = @TeamGroupId" + i.ToString();
|
||||
strSql += " AND ( Record.DepartmentID = @TeamGroupId" + i.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
strSql += " OR T.TeamGroupId = @TeamGroupId" + i.ToString();
|
||||
strSql += " OR Record.DepartmentID = @TeamGroupId" + i.ToString();
|
||||
}
|
||||
|
||||
listStr.Add(new SqlParameter("@TeamGroupId" + i.ToString(), item.Value));
|
||||
i++;
|
||||
}
|
||||
strSql += " ) ";
|
||||
strSql += " ) ";
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(this.txtStartDate.Text))
|
||||
{
|
||||
strSql += " AND RecordDate >= @StartDate";
|
||||
strSql += " AND Record.RecordDate >= @StartDate";
|
||||
listStr.Add(new SqlParameter("@StartDate", this.txtStartDate.Text));
|
||||
}
|
||||
if (rbPost.SelectedValue == "0")
|
||||
{
|
||||
strSql += " AND P.OutTime IS NOT NULL";
|
||||
}
|
||||
else if (rbPost.SelectedValue == "1")
|
||||
{
|
||||
strSql += " AND P.OutTime IS NULL";
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(this.txtEndDate.Text))
|
||||
{
|
||||
strSql += " AND RecordDate <= @EndDate";
|
||||
strSql += " AND Record.RecordDate <= @EndDate";
|
||||
listStr.Add(new SqlParameter("@EndDate", this.txtEndDate.Text));
|
||||
}
|
||||
if (!string.IsNullOrEmpty(this.txtName.Text.Trim()))
|
||||
{
|
||||
strSql += " AND P.PersonName LIKE @PersonName";
|
||||
strSql += " AND Record.EmployName LIKE @PersonName";
|
||||
listStr.Add(new SqlParameter("@PersonName", "%" + this.txtName.Text.Trim() + "%"));
|
||||
}
|
||||
|
||||
strSql += @" )
|
||||
SELECT NewID,ProjectId,InstallationName,UnitId,UnitName,PersonName,RecordDate,EmployName,IDCardNo,Nation,NationName ,PostName,WorkIn1,OffDuty1,WorkIn2,OffDuty2,WorkIn3,OffDuty3,ManHours,TeamGroupId,TeamGroupName,WorkPostId,WorkPostName, ManOverHours
|
||||
FROM CTE
|
||||
WHERE rn = 1; ";
|
||||
strSql += @" order by Record.RecordDate desc, OffDuty3 desc,WorkIn3,OffDuty2 desc,WorkIn2,OffDuty1 desc,WorkIn1 ";
|
||||
|
||||
SqlParameter[] parameter = listStr.ToArray();
|
||||
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||||
Grid1.RecordCount = tb.Rows.Count;
|
||||
var table = this.GetPagedDataTable(Grid1, tb);
|
||||
this.OutputSummaryData(tb); ///取合计值
|
||||
Grid1.DataSource = table;
|
||||
DataTable tbres = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||||
|
||||
List<string> resId = new List<string>();
|
||||
if (tbres != null)
|
||||
{
|
||||
foreach(DataRow row in tbres.Rows)
|
||||
{
|
||||
resId.Add(row["NewID"].ToString());
|
||||
}
|
||||
}
|
||||
string sqlData = @"SELECT NewID,ProjectId,InstallationName,UnitId,UnitName, EmployName as PersonName,RecordDate,EmployName,IDCardNo,Nation,NationName ,PostName,WorkIn1,OffDuty1,WorkIn2,OffDuty2,WorkIn3,OffDuty3,ManHours,DepartmentID TeamGroupId,DepartName TeamGroupName,PostId WorkPostId,postname WorkPostName, ManOverHours
|
||||
FROM t_d_EmployInOutRecord
|
||||
where NewID in('"+string.Join("','",resId)+"')";
|
||||
|
||||
DataTable tb = SQLHelper.GetDataTableRunText(sqlData, null);
|
||||
Grid1.RecordCount = tbres.Rows.Count;
|
||||
//var table = this.GetPagedDataTable(Grid1, tb);
|
||||
this.OutputSummaryData(tbres); ///取合计值
|
||||
|
||||
Grid1.DataSource = tb;
|
||||
Grid1.DataBind();
|
||||
}
|
||||
|
||||
|
|
@ -174,8 +184,10 @@ WHERE rn = 1; ";
|
|||
/// <summary>
|
||||
/// 计算合计
|
||||
/// </summary>
|
||||
private void OutputSummaryData(DataTable tb)
|
||||
private void OutputSummaryData( DataTable tb)
|
||||
{
|
||||
|
||||
|
||||
int PSum = 0;
|
||||
int OverHoursSum = 0;
|
||||
int ManHoursSum = 0;
|
||||
|
|
@ -189,7 +201,7 @@ WHERE rn = 1; ";
|
|||
JObject summary = new JObject
|
||||
{
|
||||
{ "UnitName", "合计:" },
|
||||
{ "EmployName", PSum+"人" },
|
||||
{ "EmployName",PSum+ "人" },
|
||||
{ "ManHours", ManHoursSum+"小时" },
|
||||
{ "ManOverHours", OverHoursSum +"小时"}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue