提交代码
This commit is contained in:
@@ -101,7 +101,7 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
workPostId = this.drpWorkPost.SelectedValue;
|
||||
}
|
||||
|
||||
var dayReports = PersonInOutService.getWorkPostStatistic(getAllPersonInOutList);
|
||||
var dayReports = PersonInOutService.getWorkPostStatistic(getAllPersonInOutList, startTime, endTime, this.ProjectId);
|
||||
DataTable tb = this.LINQToDataTable(dayReports);
|
||||
// 2.获取当前分页数据
|
||||
//var table = this.GetPagedDataTable(GridNewDynamic, tb1);
|
||||
@@ -210,5 +210,56 @@ namespace FineUIPro.Web.HSSE.SitePerson
|
||||
}
|
||||
return workTime.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected string ConvertWorkEfficiency(object UnitWorkPostID, object EngineeringQuantity)
|
||||
{
|
||||
string workEfficiency = string.Empty;
|
||||
int workTime = 0;
|
||||
if (UnitWorkPostID != null)
|
||||
{
|
||||
List<string> getUWId = Funs.GetStrListByStr(UnitWorkPostID.ToString(), '|');
|
||||
if (getUWId.Count() > 1)
|
||||
{
|
||||
string unitId = getUWId[0];
|
||||
string workPostId = getUWId[1];
|
||||
var getW = getAllPersonInOutList.Where(x => x.UnitId == unitId && x.WorkPostId == workPostId);
|
||||
//// 出场记录 集合
|
||||
var getUnitOutList = getW.Where(x => x.IsIn == false);
|
||||
//// 进场记录 集合
|
||||
var getUnitInList = getW.Where(x => x.IsIn == true);
|
||||
int personWorkTime = 0;
|
||||
List<string> personIdList = new List<string>();
|
||||
foreach (var itemOut in getUnitOutList)
|
||||
{
|
||||
var getMaxInTime = getUnitInList.Where(x => x.ChangeTime < itemOut.ChangeTime
|
||||
&& x.PersonId == itemOut.PersonId && x.ChangeTime.Value.AddDays(1) > itemOut.ChangeTime).Max(x => x.ChangeTime);
|
||||
if (getMaxInTime.HasValue)
|
||||
{
|
||||
personWorkTime += Convert.ToInt32((itemOut.ChangeTime - getMaxInTime).Value.TotalMinutes);
|
||||
}
|
||||
else
|
||||
{
|
||||
personIdList.Add(itemOut.PersonId);
|
||||
}
|
||||
}
|
||||
if (personIdList.Count() > 0)
|
||||
{
|
||||
personWorkTime += (personIdList.Distinct().Count() * 8 * 60);
|
||||
}
|
||||
|
||||
workTime = Convert.ToInt32(personWorkTime * 1.0 / 60);
|
||||
decimal engineeringQuantity = Funs.GetNewDecimalOrZero(EngineeringQuantity.ToString());
|
||||
if (workTime > 0 && engineeringQuantity>0)
|
||||
{
|
||||
workEfficiency = (engineeringQuantity / workTime).ToString("0.##");
|
||||
}
|
||||
}
|
||||
}
|
||||
return workEfficiency;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user