This commit is contained in:
李超 2026-04-26 17:52:27 +08:00
parent 098c1ccacc
commit 2471c8b18b
1 changed files with 55 additions and 43 deletions

View File

@ -55,22 +55,27 @@ namespace FineUIPro.Web.Door
/// </summary> /// </summary>
private void GetPersonStatistic() private void GetPersonStatistic()
{ {
string strSql = @"WITH CTE AS ( string strSql = @"
SELECT ROW_NUMBER() OVER (PARTITION BY Record.IDCardNo,RecordDate ORDER BY OffDuty3 desc,WorkIn3,OffDuty2 desc,WorkIn2,OffDuty1 desc,WorkIn1) as rn SELECT NewID,ManOverHours, ManHours
,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 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";
List<SqlParameter> listStr = new List<SqlParameter> List<SqlParameter> listStr = new List<SqlParameter>
{ {
new SqlParameter("@ProjectId", this.ProjectId) 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)) if (this.drpUnit.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpUnit.SelectedValue))
{ {
@ -79,11 +84,11 @@ namespace FineUIPro.Web.Door
{ {
if (i == 0) if (i == 0)
{ {
strSql += " AND ( P.UnitId = @UnitId" + i.ToString(); strSql += " AND ( Record.UnitId = @UnitId" + i.ToString();
} }
else else
{ {
strSql += " OR P.UnitId = @UnitId" + i.ToString(); strSql += " OR Record.UnitId = @UnitId" + i.ToString();
} }
listStr.Add(new SqlParameter("@UnitId" + i.ToString(), item.Value)); listStr.Add(new SqlParameter("@UnitId" + i.ToString(), item.Value));
@ -99,17 +104,17 @@ namespace FineUIPro.Web.Door
{ {
if (i == 0) if (i == 0)
{ {
strSql += " AND ( P.WorkPostId = @WorkPostId" + i.ToString(); strSql += " AND ( Record.PostId = @WorkPostId" + i.ToString();
} }
else else
{ {
strSql += " OR P.WorkPostId = @WorkPostId" + i.ToString(); strSql += " OR Record.PostId = @WorkPostId" + i.ToString();
} }
listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), item.Value)); listStr.Add(new SqlParameter("@WorkPostId" + i.ToString(), item.Value));
i++; i++;
} }
strSql += " ) "; strSql += " ";
} }
if (this.drpWorkTeam.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpWorkTeam.SelectedValue)) if (this.drpWorkTeam.SelectedValue != Const._Null && !string.IsNullOrEmpty(this.drpWorkTeam.SelectedValue))
@ -119,11 +124,11 @@ namespace FineUIPro.Web.Door
{ {
if (i == 0) if (i == 0)
{ {
strSql += " AND ( T.TeamGroupId = @TeamGroupId" + i.ToString(); strSql += " AND ( Record.DepartmentID = @TeamGroupId" + i.ToString();
} }
else else
{ {
strSql += " OR T.TeamGroupId = @TeamGroupId" + i.ToString(); strSql += " OR Record.DepartmentID = @TeamGroupId" + i.ToString();
} }
listStr.Add(new SqlParameter("@TeamGroupId" + i.ToString(), item.Value)); listStr.Add(new SqlParameter("@TeamGroupId" + i.ToString(), item.Value));
@ -134,39 +139,44 @@ namespace FineUIPro.Web.Door
if (!string.IsNullOrEmpty(this.txtStartDate.Text)) if (!string.IsNullOrEmpty(this.txtStartDate.Text))
{ {
strSql += " AND RecordDate >= @StartDate"; strSql += " AND Record.RecordDate >= @StartDate";
listStr.Add(new SqlParameter("@StartDate", this.txtStartDate.Text)); 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)) if (!string.IsNullOrEmpty(this.txtEndDate.Text))
{ {
strSql += " AND RecordDate <= @EndDate"; strSql += " AND Record.RecordDate <= @EndDate";
listStr.Add(new SqlParameter("@EndDate", this.txtEndDate.Text)); listStr.Add(new SqlParameter("@EndDate", this.txtEndDate.Text));
} }
if (!string.IsNullOrEmpty(this.txtName.Text.Trim())) 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() + "%")); listStr.Add(new SqlParameter("@PersonName", "%" + this.txtName.Text.Trim() + "%"));
} }
strSql += @" ) strSql += @" order by Record.RecordDate desc, OffDuty3 desc,WorkIn3,OffDuty2 desc,WorkIn2,OffDuty1 desc,WorkIn1 ";
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; ";
SqlParameter[] parameter = listStr.ToArray(); SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); DataTable tbres = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb); List<string> resId = new List<string>();
this.OutputSummaryData(tb); ///取合计值 if (tbres != null)
Grid1.DataSource = table; {
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(); Grid1.DataBind();
} }
@ -176,6 +186,8 @@ WHERE rn = 1; ";
/// </summary> /// </summary>
private void OutputSummaryData( DataTable tb) private void OutputSummaryData( DataTable tb)
{ {
int PSum = 0; int PSum = 0;
int OverHoursSum = 0; int OverHoursSum = 0;
int ManHoursSum = 0; int ManHoursSum = 0;