Merge branch 'master' of http://47.104.102.122:3000/lpf/CNCEC_SUBQHSE_WUHUAN
This commit is contained in:
@@ -16,34 +16,108 @@ 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.Count() > 0)
|
||||
{
|
||||
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.Count() > 0)
|
||||
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>();
|
||||
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 >= 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
|
||||
group x by new {x.PersonId,x.ProjectId} into g
|
||||
select new Model.PageDataPersonInOutItem
|
||||
{
|
||||
PersonId = g.First().PersonId,
|
||||
ProjectId = g.First().ProjectId,
|
||||
ChangeTime = g.Max(x => x.ChangeTime),
|
||||
IsIn = g.First().IsIn,
|
||||
PostType = g.First().PostType
|
||||
};
|
||||
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
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 获取当前人工时
|
||||
@@ -150,7 +224,7 @@ namespace BLL
|
||||
where 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.Count() > 0)
|
||||
if (getDayAll.Any())
|
||||
{
|
||||
var getInMaxs = from x in getDayAll
|
||||
group x by x.PersonId into g
|
||||
@@ -161,7 +235,7 @@ namespace BLL
|
||||
IsIn = g.First().IsIn,
|
||||
PostType = g.First().PostType
|
||||
};
|
||||
if (getInMaxs.Count() > 0)
|
||||
if (getInMaxs.Any())
|
||||
{
|
||||
getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList();
|
||||
}
|
||||
@@ -174,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.Count() > 0)
|
||||
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
|
||||
{
|
||||
@@ -192,7 +267,7 @@ namespace BLL
|
||||
IsIn = g.First().IsIn,
|
||||
PostType = g.First().PostType
|
||||
};
|
||||
if (getInMaxs.Count() > 0)
|
||||
if (getInMaxs.Any())
|
||||
{
|
||||
getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList();
|
||||
}
|
||||
|
||||
@@ -1114,6 +1114,9 @@
|
||||
<PackageReference Include="System.Numerics.Vectors">
|
||||
<Version>4.5.0</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="System.Runtime.Caching">
|
||||
<Version>6.0.0</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe">
|
||||
<Version>4.5.3</Version>
|
||||
</PackageReference>
|
||||
|
||||
@@ -10,6 +10,7 @@ namespace BLL
|
||||
/// 时间书签(用于筛选数据范围)修改日期 2024-10-19 18:55:14 由2023改成2020
|
||||
/// </summary>
|
||||
public static DateTime DtmarkTime = DateTime.Parse("2020-01-01");
|
||||
public static int CacheMinutes = 10;
|
||||
#region 查询字段:系统设置
|
||||
/// <summary>
|
||||
/// 系统管理员ID
|
||||
|
||||
@@ -113,7 +113,7 @@ namespace BLL
|
||||
{
|
||||
foreach (var item in acceptanceItems)
|
||||
{
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>本人负责</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays : "半")}</td></tr>");
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>本人负责</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "半")}</td></tr>");
|
||||
index++;
|
||||
}
|
||||
}
|
||||
@@ -123,7 +123,7 @@ namespace BLL
|
||||
{
|
||||
foreach (var item in userItems)
|
||||
{
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>本人发起</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays : "半")}</td></tr>");
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>本人发起</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "半")}</td></tr>");
|
||||
index++;
|
||||
}
|
||||
}
|
||||
@@ -133,7 +133,7 @@ namespace BLL
|
||||
{
|
||||
foreach (var item in receiveItems)
|
||||
{
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>本人跟踪</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays : "半")}</td></tr>");
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>本人跟踪</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "半")}</td></tr>");
|
||||
index++;
|
||||
}
|
||||
}
|
||||
@@ -143,7 +143,7 @@ namespace BLL
|
||||
{
|
||||
foreach (var item in csUserItems)
|
||||
{
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>抄送本人</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays : "半")}</td></tr>");
|
||||
tbodyStr.Append($"<tr><td>{index}</td><td>抄送本人</td><td>{item.UnitName}</td><td>{item.Detail}</td><td>{item.GJSXTypeName}</td><td>{item.UserName}</td><td>{item.User_AcceptanceUserName}</td><td>{item.CompleteDate.ToShortDateString()}</td><td>{(item.DateDiffDays > 0 ? item.DateDiffDays.ToString() : "半")}</td></tr>");
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
namespace BLL
|
||||
{
|
||||
using Model;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Model;
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using System.Runtime.Caching;
|
||||
|
||||
public static class ProjectService
|
||||
{
|
||||
@@ -256,22 +257,44 @@
|
||||
/// <returns></returns>
|
||||
public static List<Model.Base_Project> GetAllProjectDropDownList(string[] pids = null)
|
||||
{
|
||||
if (pids == null)
|
||||
string cacheKey = "allProjects";
|
||||
var memoryCache = MemoryCache.Default;
|
||||
if (memoryCache.Get(cacheKey) != null)
|
||||
{
|
||||
var list = (from x in Funs.DB.Base_Project
|
||||
orderby x.ProjectCode descending
|
||||
select x).ToList();
|
||||
return list;
|
||||
var result = (List<Model.Base_Project>)memoryCache.Get(cacheKey);
|
||||
if (pids == null)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = result.Where(e => pids.Contains(e.ProjectId)).ToList();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var list = (from x in Funs.DB.Base_Project
|
||||
where pids.Contains(x.ProjectId)
|
||||
orderby x.ProjectCode descending
|
||||
select x).ToList();
|
||||
return list;
|
||||
}
|
||||
|
||||
var list = (from x in Funs.DB.Base_Project
|
||||
where x.ProjectState == Const.ProjectState_1 || x.ProjectState == null
|
||||
orderby x.ProjectCode descending
|
||||
select x).ToList();
|
||||
var policy = new CacheItemPolicy
|
||||
{
|
||||
AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(Const.CacheMinutes),
|
||||
};
|
||||
memoryCache.Set(cacheKey, list, policy);
|
||||
|
||||
if (pids == null)
|
||||
{
|
||||
return list;
|
||||
}
|
||||
else
|
||||
{
|
||||
var result = list.Where(e => pids.Contains(e.ProjectId)).ToList();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -67,5 +67,101 @@ namespace BLL
|
||||
select x.Action_By).Distinct().OrderBy(x => x).ToList();
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 责任人pic下拉框
|
||||
/// </summary>
|
||||
/// <param name="projectId">项目id</param>
|
||||
/// <param name="dropName">下拉框名字</param>
|
||||
/// <param name="isShowPlease">是否显示请选择</param>
|
||||
public static void InitPICDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease)
|
||||
{
|
||||
dropName.DataValueField = "string";
|
||||
dropName.DataTextField = "string";
|
||||
dropName.DataSource = GetPICDropDownList(projectId);
|
||||
dropName.DataBind();
|
||||
if (isShowPlease)
|
||||
{
|
||||
Funs.FineUIPleaseSelect(dropName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取责任人pic下拉选项
|
||||
/// </summary>
|
||||
/// <param name="projectId">项目id</param>
|
||||
/// <returns></returns>
|
||||
public static List<string> GetPICDropDownList(string projectId)
|
||||
{
|
||||
var list = (from x in Funs.DB.Transfer_PunchlistFrom
|
||||
where x.ProjectId == projectId
|
||||
select x.PIC).Distinct().OrderBy(x => x).ToList();
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 责任人-五环/PIC-WUH下拉框
|
||||
/// </summary>
|
||||
/// <param name="projectId">项目id</param>
|
||||
/// <param name="dropName">下拉框名字</param>
|
||||
/// <param name="isShowPlease">是否显示请选择</param>
|
||||
public static void InitWUHPICDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease)
|
||||
{
|
||||
dropName.DataValueField = "string";
|
||||
dropName.DataTextField = "string";
|
||||
dropName.DataSource = GetWUHPICDropDownList(projectId);
|
||||
dropName.DataBind();
|
||||
if (isShowPlease)
|
||||
{
|
||||
Funs.FineUIPleaseSelect(dropName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取责任人-五环/PIC-WUH下拉选项
|
||||
/// </summary>
|
||||
/// <param name="projectId">项目id</param>
|
||||
/// <returns></returns>
|
||||
public static List<string> GetWUHPICDropDownList(string projectId)
|
||||
{
|
||||
var list = (from x in Funs.DB.Transfer_PunchlistFrom
|
||||
where x.ProjectId == projectId
|
||||
select x.PIC_WUH).Distinct().OrderBy(x => x).ToList();
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// disc下拉框
|
||||
/// </summary>
|
||||
/// <param name="projectId">项目id</param>
|
||||
/// <param name="dropName">下拉框名字</param>
|
||||
/// <param name="isShowPlease">是否显示请选择</param>
|
||||
public static void InitDiscDropDownList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease)
|
||||
{
|
||||
dropName.DataValueField = "string";
|
||||
dropName.DataTextField = "string";
|
||||
dropName.DataSource = GetDiscDropDownList(projectId);
|
||||
dropName.DataBind();
|
||||
if (isShowPlease)
|
||||
{
|
||||
Funs.FineUIPleaseSelect(dropName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取disc下拉选项
|
||||
/// </summary>
|
||||
/// <param name="projectId">项目id</param>
|
||||
/// <returns></returns>
|
||||
public static List<string> GetDiscDropDownList(string projectId)
|
||||
{
|
||||
var list = (from x in Funs.DB.Transfer_PunchlistFrom
|
||||
where x.ProjectId == projectId
|
||||
select x.Disc).Distinct().OrderBy(x => x).ToList();
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user