首页优化
This commit is contained in:
@@ -16,49 +16,56 @@ namespace BLL
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
||||
var getDayAll = from x in db.SitePerson_PersonInOutNow
|
||||
join y in db.SitePerson_Person on x.PersonId equals y.PersonId
|
||||
join z in db.Base_WorkPost on y.WorkPostId equals z.WorkPostId
|
||||
where x.ProjectId == projectId
|
||||
&& x.ChangeTime.Value.Year == dateValue.Year
|
||||
&& x.ChangeTime.Value.Month == dateValue.Month
|
||||
&& x.ChangeTime.Value.Day == dateValue.Day
|
||||
select new { x.PersonId, x.ChangeTime, x.IsIn, z.PostType };
|
||||
if (getDayAll.Any())
|
||||
{
|
||||
var getInMaxs = from x in getDayAll
|
||||
group x by x.PersonId into g
|
||||
select new Model.PageDataPersonInOutItem
|
||||
{
|
||||
PersonId = g.First().PersonId,
|
||||
ChangeTime = g.Max(x => x.ChangeTime),
|
||||
IsIn = g.First().IsIn,
|
||||
PostType = g.First().PostType
|
||||
};
|
||||
if (getInMaxs.Any())
|
||||
var startDate = dateValue.Date;
|
||||
var endDate = startDate.AddDays(1);
|
||||
var query =
|
||||
from x in db.SitePerson_PersonInOutNow
|
||||
where x.ChangeTime >= startDate && x.ChangeTime < endDate && x.ProjectId == projectId
|
||||
group x by new { x.PersonId, x.ProjectId } into g
|
||||
select new
|
||||
{
|
||||
g.Key.PersonId,
|
||||
g.Key.ProjectId,
|
||||
MaxChangeTime = g.Max(x => x.ChangeTime)
|
||||
};
|
||||
var finalQuery =
|
||||
from record in query
|
||||
join detail in db.SitePerson_PersonInOutNow
|
||||
on new { record.PersonId, record.ProjectId, record.MaxChangeTime }
|
||||
equals new { detail.PersonId, detail.ProjectId, MaxChangeTime = detail.ChangeTime }
|
||||
join y in db.SitePerson_Person on record.PersonId equals y.PersonId
|
||||
join z in db.Base_WorkPost on y.WorkPostId equals z.WorkPostId
|
||||
where detail.IsIn == true
|
||||
select new Model.PageDataPersonInOutItem
|
||||
{
|
||||
getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList();
|
||||
}
|
||||
}
|
||||
return getSiteInOutList;
|
||||
PersonId = record.PersonId,
|
||||
ProjectId = record.ProjectId,
|
||||
ChangeTime = record.MaxChangeTime,
|
||||
IsIn = true,
|
||||
PostType = z.PostType
|
||||
};
|
||||
|
||||
return finalQuery.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public static List<Model.PageDataPersonInOutItem> getPersonNum(List<string> projectIds, DateTime dateValue)
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
{
|
||||
var startDate = dateValue.Date;
|
||||
var endDate = startDate.AddDays(1);
|
||||
List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
||||
/* List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
||||
var getDayAll = from x in db.SitePerson_PersonInOutNow
|
||||
join y in db.SitePerson_Person on x.PersonId equals y.PersonId
|
||||
join z in db.Base_WorkPost on y.WorkPostId equals z.WorkPostId
|
||||
where projectIds.Contains(x.ProjectId)
|
||||
&& x.ChangeTime >= startDate &&
|
||||
where x.ChangeTime >= startDate &&
|
||||
x.ChangeTime < endDate
|
||||
select new { x.PersonId, x.ChangeTime, x.IsIn, z.PostType,x.ProjectId };
|
||||
if (projectIds.Any())
|
||||
{
|
||||
getDayAll= getDayAll.Where(x => projectIds.Contains(x.ProjectId));
|
||||
}
|
||||
if (getDayAll.Any())
|
||||
{
|
||||
var getInMaxs = from x in getDayAll
|
||||
@@ -71,12 +78,43 @@ namespace BLL
|
||||
IsIn = g.First().IsIn,
|
||||
PostType = g.First().PostType
|
||||
};
|
||||
if (getInMaxs.Any())
|
||||
getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList();
|
||||
|
||||
}*/
|
||||
|
||||
var query =
|
||||
from x in db.SitePerson_PersonInOutNow
|
||||
where x.ChangeTime >= startDate && x.ChangeTime < endDate
|
||||
group x by new { x.PersonId, x.ProjectId } into g
|
||||
select new
|
||||
{
|
||||
getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList();
|
||||
}
|
||||
}
|
||||
return getSiteInOutList;
|
||||
g.Key.PersonId,
|
||||
g.Key.ProjectId,
|
||||
MaxChangeTime = g.Max(x => x.ChangeTime)
|
||||
};
|
||||
|
||||
if (projectIds.Any())
|
||||
{
|
||||
query = query.Where(x => projectIds.Contains(x.ProjectId));
|
||||
}
|
||||
var finalQuery =
|
||||
from record in query
|
||||
join detail in db.SitePerson_PersonInOutNow
|
||||
on new { record.PersonId, record.ProjectId, record.MaxChangeTime }
|
||||
equals new { detail.PersonId, detail.ProjectId, MaxChangeTime = detail.ChangeTime }
|
||||
join y in db.SitePerson_Person on record.PersonId equals y.PersonId
|
||||
join z in db.Base_WorkPost on y.WorkPostId equals z.WorkPostId
|
||||
where detail.IsIn == true
|
||||
select new Model.PageDataPersonInOutItem
|
||||
{
|
||||
PersonId= record.PersonId,
|
||||
ProjectId = record.ProjectId,
|
||||
ChangeTime = record.MaxChangeTime,
|
||||
IsIn = true,
|
||||
PostType = z.PostType
|
||||
};
|
||||
|
||||
return finalQuery.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,16 +248,17 @@ namespace BLL
|
||||
{
|
||||
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
||||
{
|
||||
DateTime dt1 = dateValue.Date;
|
||||
DateTime dt2= dateValue.Date.AddDays(1);
|
||||
List<Model.PageDataPersonInOutItem> getSiteInOutList = new List<Model.PageDataPersonInOutItem>();
|
||||
var getDayAll = from x in db.SitePerson_PersonInOutNow
|
||||
join y in db.SitePerson_Person on x.PersonId equals y.PersonId
|
||||
join z in db.Base_WorkPost on y.WorkPostId equals z.WorkPostId
|
||||
where x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month
|
||||
&& x.ChangeTime.Value.Day == dateValue.Day && pids.Contains(x.ProjectId)
|
||||
where pids.Contains(x.ProjectId) && x.ChangeTime<= dt2 && x.ChangeTime>= dt1
|
||||
select new { x.PersonId, x.ChangeTime, x.IsIn, z.PostType };
|
||||
if (getDayAll.Any())
|
||||
{
|
||||
var getInMaxs = from x in getDayAll
|
||||
var getInMaxs = from x in getDayAll.ToList()
|
||||
group x by x.PersonId into g
|
||||
select new Model.PageDataPersonInOutItem
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user