首页优化
This commit is contained in:
parent
8db8992061
commit
5fa3744594
|
@ -16,32 +16,36 @@ 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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,14 +55,17 @@ namespace BLL
|
|||
{
|
||||
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();
|
||||
}
|
||||
g.Key.PersonId,
|
||||
g.Key.ProjectId,
|
||||
MaxChangeTime = g.Max(x => x.ChangeTime)
|
||||
};
|
||||
|
||||
if (projectIds.Any())
|
||||
{
|
||||
query = query.Where(x => projectIds.Contains(x.ProjectId));
|
||||
}
|
||||
return getSiteInOutList;
|
||||
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
|
||||
{
|
||||
|
|
|
@ -39,7 +39,7 @@ namespace FineUIPro.Web.common
|
|||
GetHjAsync(), // 焊接
|
||||
GetGjsxAsync(), // 关键事项
|
||||
GetSitePersonAsync(), // 人员信息
|
||||
GetProjectSitePersonAsync(), // 项目人员图表
|
||||
//GetProjectSitePersonAsync(), // 项目人员图表
|
||||
GetJdAsync(), // 进度
|
||||
GetZgsjAsync(), // 整改数据
|
||||
GetCldhAsync() // 材料到货表格
|
||||
|
@ -58,11 +58,11 @@ namespace FineUIPro.Web.common
|
|||
{
|
||||
var db = Funs.DB;
|
||||
pids = !string.IsNullOrEmpty(CurrUser.CompanyProjectId)
|
||||
? CurrUser.CompanyProjectId.Split(',')
|
||||
: db.Base_Project
|
||||
.Where(x => x.ProjectState == "1")
|
||||
.Select(x => x.ProjectId)
|
||||
.ToArray();
|
||||
? CurrUser.CompanyProjectId.Split(',')
|
||||
: db.Base_Project
|
||||
.Where(x => x.ProjectState == "1")
|
||||
.Select(x => x.ProjectId)
|
||||
.ToArray();
|
||||
//在建项目
|
||||
if (pids == null)
|
||||
{
|
||||
|
@ -137,9 +137,9 @@ namespace FineUIPro.Web.common
|
|||
.Where(x=> x.IsUsed == true && x.InTime < DateTime.Now && (x.OutTime == null || x.OutTime > DateTime.Now))
|
||||
.Where(x => pids.Contains(x.ProjectId))
|
||||
.Join(db.Base_WorkPost.Where(x => x.IsHsse==true),
|
||||
person => person.WorkPostId,
|
||||
post => post.WorkPostId,
|
||||
(person, post) => person)
|
||||
person => person.WorkPostId,
|
||||
post => post.WorkPostId,
|
||||
(person, post) => person)
|
||||
.Count();
|
||||
divSafeManagePersonNum.InnerText = safetyStaffCount.ToString();
|
||||
});
|
||||
|
@ -150,21 +150,21 @@ namespace FineUIPro.Web.common
|
|||
await Task.Run(() => {
|
||||
|
||||
var db = Funs.DB;
|
||||
// 质量管理人员(合并公司+项目级查询)
|
||||
var qualityQuery = db.Base_WorkPost
|
||||
.Where(x => x.IsCQMS == true)
|
||||
// 质量管理人员(合并公司+项目级查询)
|
||||
var qualityQuery = db.Base_WorkPost
|
||||
.Where(x => x.IsCQMS == true)
|
||||
.GroupJoin(db.SitePerson_Person.Where(x=> x.IsUsed == true),
|
||||
post => post.WorkPostId,
|
||||
person => person.WorkPostId,
|
||||
(post, persons) => new { post, persons })
|
||||
.SelectMany(x => x.persons.DefaultIfEmpty(),
|
||||
post => post.WorkPostId,
|
||||
person => person.WorkPostId,
|
||||
(post, persons) => new { post, persons })
|
||||
.SelectMany(x => x.persons.DefaultIfEmpty(),
|
||||
(x, person) => new { x.post, person })
|
||||
.Where(x => pids.Contains(x.person.ProjectId));
|
||||
divCqmsManageNum.InnerText = qualityQuery.Count().ToString();
|
||||
// 质量培训人员
|
||||
divCqmsManageNum.InnerText = qualityQuery.Count().ToString();
|
||||
// 质量培训人员
|
||||
divCqmsPxNum.InnerText = db.Comprehensive_InspectionPerson
|
||||
.Where(x => pids.Contains(x.ProjectId))
|
||||
.Count(x => x.IsTrain == true).ToString();
|
||||
.Count(x => x.IsTrain == true).ToString();
|
||||
});
|
||||
}
|
||||
// 项目统计优化
|
||||
|
@ -178,16 +178,16 @@ namespace FineUIPro.Web.common
|
|||
int pcount3 = 0;
|
||||
if (acount > 0)
|
||||
{
|
||||
pcount1 = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).Count();
|
||||
pcount1 = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).Select( x => x.ProjectId).Count();
|
||||
var pidzjsg = string.Join(",", allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).Select(x => x.ProjectId)).Split(',');
|
||||
if (pids == null)
|
||||
{
|
||||
pcount2 = (from x in Funs.DB.SitePerson_Person where x.IsUsed == true && pidzjsg.Contains(x.ProjectId) select x).Count();
|
||||
pcount2 = (from x in Funs.DB.SitePerson_Person where x.IsUsed == true && pidzjsg.Contains(x.ProjectId) select x.ProjectId).Count();
|
||||
}
|
||||
else
|
||||
{
|
||||
pidzjsg = pids;
|
||||
pcount2 = (from x in Funs.DB.SitePerson_Person where x.IsUsed == true && pids.Contains(x.ProjectId) select x).Count();
|
||||
pcount2 = (from x in Funs.DB.SitePerson_Person where x.IsUsed == true && pids.Contains(x.ProjectId) select x.ProjectId).Count();
|
||||
}
|
||||
pcount3 = Count3(pidzjsg);
|
||||
}
|
||||
|
@ -238,7 +238,7 @@ namespace FineUIPro.Web.common
|
|||
var datetime2 = d2;
|
||||
var getAllPersonInOutList = from x in Funs.DB.SitePerson_PersonInOutNumber
|
||||
|
||||
select x;
|
||||
select new { x.ProjectId, x.InOutDate, x.WorkHours };
|
||||
if (pids != null)
|
||||
{
|
||||
getAllPersonInOutList = getAllPersonInOutList.Where(x => pids.Contains(x.ProjectId));
|
||||
|
@ -353,7 +353,7 @@ namespace FineUIPro.Web.common
|
|||
return await Task.Run(() =>
|
||||
{
|
||||
Model.SingleSerie series = new Model.SingleSerie();
|
||||
var project1s = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).ToList();
|
||||
var project1s = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).Select(x=> new { x.ProjectId, x.ProjectName, x.ProjectState2, x.Province, x.ShortName }).ToList();
|
||||
var consts = Funs.DB.Sys_Const.Where(x => x.GroupId == ConstValue.GroupId_ProjectState).ToList();
|
||||
string name = string.Empty;
|
||||
if (project1s.Any())
|
||||
|
@ -421,11 +421,11 @@ namespace FineUIPro.Web.common
|
|||
var accidentList1 = from x in db.Accident_AccidentPersonRecord
|
||||
join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId
|
||||
where y.AccidentTypeName.Contains("未遂")
|
||||
select x;
|
||||
select new { x.ProjectId, x.AccidentDate } ;
|
||||
var accidentList2 = from x in db.Accident_AccidentReportOther
|
||||
join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue
|
||||
where y.ConstText.Contains("未遂")
|
||||
select x;
|
||||
select new { x.ProjectId, x.AccidentDate };
|
||||
var allProvinceProjectList = (from x in allProjects
|
||||
join y in provinceDic on x.Province equals y.ProvinceCode
|
||||
where provinces.Contains(y.CnShortName )
|
||||
|
@ -640,7 +640,7 @@ namespace FineUIPro.Web.common
|
|||
protected int Count3(string[] pids)
|
||||
{
|
||||
int cout1 = 0;
|
||||
cout1 = Funs.DB.Solution_LargerHazard.Where(x => x.States == Const.State_2 && pids.Contains(x.ProjectId)).Count();
|
||||
cout1 = Funs.DB.Solution_LargerHazard.Count(x => x.States == Const.State_2 && pids.Contains(x.ProjectId));
|
||||
return cout1;
|
||||
}
|
||||
#endregion
|
||||
|
@ -872,11 +872,11 @@ namespace FineUIPro.Web.common
|
|||
var getallin = new List<Model.PageDataPersonInOutItem>();
|
||||
if (pids == null)
|
||||
{
|
||||
getallin = APIPageDataService.getPersonNumByCompany(DateTime.Now);
|
||||
getallin = APIPageDataService.getPersonNum(new List<string>(),DateTime.Now);
|
||||
}
|
||||
else
|
||||
{
|
||||
getallin = APIPageDataService.getPersonNumByCompany(DateTime.Now, pids);
|
||||
getallin = APIPageDataService.getPersonNum(pids.ToList(), DateTime.Now);
|
||||
}
|
||||
AllCount = getallin.Count();
|
||||
if (AllCount > 0)
|
||||
|
@ -887,6 +887,15 @@ namespace FineUIPro.Web.common
|
|||
div_xcrs.InnerHtml = AllCount.ToString();
|
||||
div_zyxcrs.InnerHtml = (AllCount - MCount).ToString();
|
||||
div_glxcrs.InnerHtml = MCount.ToString();
|
||||
|
||||
//项目现场人员统计
|
||||
foreach (var item in allProjects)
|
||||
{
|
||||
ProjectPersonMc += "'" + item.ShortName + "',";
|
||||
ProjectPersonCount += "'" + getallin.Count(x => x.ProjectId == item.ProjectId) + "',";
|
||||
}
|
||||
ProjectPersonMc = ProjectPersonMc.TrimEnd(',');
|
||||
ProjectPersonCount = ProjectPersonCount.TrimEnd(',');
|
||||
});
|
||||
}
|
||||
#endregion
|
||||
|
@ -937,10 +946,16 @@ namespace FineUIPro.Web.common
|
|||
#region 整改数据
|
||||
protected async Task GetZgsjAsync()
|
||||
{
|
||||
div_zgsj.InnerHtml = (GetGeneralClosedNum() + GetGeneralNotClosedNum()).ToString();
|
||||
div_zgywc.InnerHtml = GetGeneralClosedNum().ToString();
|
||||
div_zgwwc.InnerHtml = GetGeneralNotClosedNum().ToString();
|
||||
div_zgwcl.InnerHtml = (100.0 * GetGeneralClosedNum() / (GetGeneralNotClosedNum() + GetGeneralClosedNum())).ToString("0.##") + "%";
|
||||
await Task.Run(() =>
|
||||
{
|
||||
int GeneralClosedNum = GetGeneralClosedNum();
|
||||
int GeneralNotClosedNum = GetGeneralNotClosedNum();
|
||||
div_zgsj.InnerHtml = (GeneralClosedNum + GeneralNotClosedNum).ToString();
|
||||
div_zgywc.InnerHtml = GeneralClosedNum.ToString();
|
||||
div_zgwwc.InnerHtml = GeneralNotClosedNum.ToString();
|
||||
div_zgwcl.InnerHtml = (100.0 * GeneralClosedNum / (GeneralNotClosedNum + GeneralClosedNum)).ToString("0.##") + "%";
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
Loading…
Reference in New Issue