From 2927c2d98547627b4577fbae38ba92df034483ab Mon Sep 17 00:00:00 2001 From: fei550 <1420031550@qq.com> Date: Mon, 17 Mar 2025 15:53:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/BLL/API/HSSE/APIPageDataService.cs | 48 +- SGGL/BLL/BLL.csproj | 3 + SGGL/BLL/Common/Const.cs | 1 + SGGL/BLL/ProjectData/ProjectService.cs | 46 +- SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 1 + SGGL/FineUIPro.Web/common/mainProject2.aspx | 22 +- .../FineUIPro.Web/common/mainProject2.aspx.cs | 1573 +++++++++-------- SGGL/FineUIPro.Web/common/main_new.aspx.cs | 93 +- SGGL/FineUIPro.Web/packages.config | 1 + SGGL/Model/HSSE/PageDataPersonInOutItem.cs | 6 +- 10 files changed, 1020 insertions(+), 774 deletions(-) diff --git a/SGGL/BLL/API/HSSE/APIPageDataService.cs b/SGGL/BLL/API/HSSE/APIPageDataService.cs index 0652f686..236b0786 100644 --- a/SGGL/BLL/API/HSSE/APIPageDataService.cs +++ b/SGGL/BLL/API/HSSE/APIPageDataService.cs @@ -25,7 +25,7 @@ namespace BLL && 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 @@ -36,7 +36,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(); } @@ -44,6 +44,42 @@ namespace BLL return getSiteInOutList; } } + + public static List getPersonNum(List projectIds, DateTime dateValue) + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var startDate = dateValue.Date; + var endDate = startDate.AddDays(1); + List getSiteInOutList = new List(); + 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 && + x.ChangeTime < endDate + select new { x.PersonId, x.ChangeTime, x.IsIn, z.PostType,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 + }; + if (getInMaxs.Any()) + { + getSiteInOutList = getInMaxs.Where(x => x.IsIn == true).ToList(); + } + } + return getSiteInOutList; + } + } + #endregion #region 获取当前人工时 @@ -150,7 +186,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 +197,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(); } @@ -181,7 +217,7 @@ namespace BLL where x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month && x.ChangeTime.Value.Day == dateValue.Day && pids.Contains(x.ProjectId) 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 @@ -192,7 +228,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(); } diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index b3b255c9..c38543ed 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -1113,6 +1113,9 @@ 4.5.0 + + 6.0.0 + 4.5.3 diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 965fbd0a..1725254b 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -10,6 +10,7 @@ namespace BLL /// 时间书签(用于筛选数据范围)修改日期 2024-10-19 18:55:14 由2023改成2020 /// public static DateTime DtmarkTime = DateTime.Parse("2020-01-01"); + public static int CacheMinutes = 10; #region 查询字段:系统设置 /// /// 系统管理员ID diff --git a/SGGL/BLL/ProjectData/ProjectService.cs b/SGGL/BLL/ProjectData/ProjectService.cs index 3edb8d1f..192cd837 100644 --- a/SGGL/BLL/ProjectData/ProjectService.cs +++ b/SGGL/BLL/ProjectData/ProjectService.cs @@ -5,6 +5,8 @@ using Model; using System; using Newtonsoft.Json; + using Microsoft.SqlServer.Dts.Runtime; + using System.Runtime.Caching; public static class ProjectService { @@ -256,22 +258,44 @@ /// public static List 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)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; + } + } } diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 3fa13380..6478f6f8 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -128,6 +128,7 @@ + diff --git a/SGGL/FineUIPro.Web/common/mainProject2.aspx b/SGGL/FineUIPro.Web/common/mainProject2.aspx index 37e12395..1e81975b 100644 --- a/SGGL/FineUIPro.Web/common/mainProject2.aspx +++ b/SGGL/FineUIPro.Web/common/mainProject2.aspx @@ -1,4 +1,4 @@ -<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="mainProject2.aspx.cs" Inherits="FineUIPro.Web.common.mainProject2" %> +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="mainProject2.aspx.cs" Inherits="FineUIPro.Web.common.mainProject2" Async="true" %> @@ -84,11 +84,11 @@
-
<%=getEarlyWarningCounts() %>
+
<%=EarlyWarningCounts %>
-
<%=GetJxyjNum() %>
+
<%=JxyjNum %>
@@ -96,22 +96,22 @@
-
<%=GetCompletedNum() %>
+
<%=CompletedNum %>
-
<%=GetTrainPersonNum() %>
+
<%=TrainPersonNum %>
-
<%=GetConstructionNum() %>
+
<%=ConstructionNum %>
-
<%=GetFinishedNum() %>
+
<%=FinishedNum %>
@@ -120,22 +120,22 @@
-
<%=GetSuperCompletedNum() %>
+
<%=SuperCompletedNum %>
-
<%=GetSuperTrainPersonNum() %>
+
<%=SuperTrainPersonNum %>
-
<%=GetSuperConstructionNum() %>
+
<%=SuperConstructionNum %>
-
<%=GetSuperFinishedNum() %>
+
<%=SuperFinishedNum %>
diff --git a/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs b/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs index 62214521..00b5d7d4 100644 --- a/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs +++ b/SGGL/FineUIPro.Web/common/mainProject2.aspx.cs @@ -4,21 +4,66 @@ using FineUIPro.Web.DataShow; using FineUIPro.Web.SysManage; using Model; using Newtonsoft.Json; +using NPOI.Util; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; +using System.Text; +using System.Threading.Tasks; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; - namespace FineUIPro.Web.common { public partial class mainProject2 : PageBase { + #region Fields + + protected string ActualValue = string.Empty; + + protected string completed = string.Empty; + + protected string Cumulative_actual_value = string.Empty; + + //实际值 + protected string Cumulative_planned_value = string.Empty; + + protected string GeneralRisk = string.Empty; + + //一般风险 + protected string GreaterRisk = string.Empty; + + protected string LowRisk = string.Empty; + + //已完成 + protected string majorRisk = string.Empty; + + protected string OnePassRate = string.Empty; + + //一次共检合格率 + protected string OnePassRateOfWelding = string.Empty; + + //重大风险 + //低风险 + //较大风险 + protected string PlannedValue = string.Empty; + + /// + /// 中英文 + /// + protected string QualityRate = string.Empty; + + //焊接一次合格率 + protected string total = string.Empty; + + #endregion Fields + + #region Properties + /// /// 项目id /// @@ -32,18 +77,115 @@ namespace FineUIPro.Web.common { ViewState["ProjectId"] = value; } - } + + #endregion Properties + + #region Methods + + /// + /// 打开待办 + /// + /// + /// + protected void btnshowWindows(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("{0}", hiddenUrl.Value, "办理 - "))); + } + /// /// 页面加载 /// /// /// - protected void Page_Load(object sender, EventArgs e) + protected async void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ProjectId = CurrUser.LoginProjectId; + + var treeTask = GetTreeAsync(); + var personTask = GetPersonAsync(); + var otherTasks = new List + { + BindSafetyStatisticsAsync(), // 安全统计模块 + BindQualityStatisticsAsync(), // 质量统计模块 + getHazardData(), + //整改数据 + getZgsj(), + + //风险预警 + getHazard(), + + //工程概况 + getProjectInfo(), + + //GetJD(), + //质量共检 + getZlgj(), + + //焊接 + getHj(), + + //加载质量问题 + getZlwt(), + + //人员信息 + getSitePerson(), + + //项目人员图表 + // getProjectSitePerson(), + + //工作台面 + getGjsx(), + getGztm(), + + //材料到货 + getCldh(), + + getCNEN(),//中英文翻译 + }; + await Task.WhenAll(otherTasks.Concat(new[] { treeTask, personTask })); + + Tree = await treeTask; + Person = await personTask; + } + } + + /// + /// 关闭弹出窗 + /// + /// + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + getGztm(); + getGjsx(); + } + + // 质量统计模块封装 + private async Task BindQualityStatisticsAsync() + { + await Task.Run(() => + { //质量培训人员 + DateTime date = DateTime.Now.AddDays(-1); + int CqmsPxNum = (from x in Funs.DB.Comprehensive_InspectionPerson + where x.IsTrain == true && x.ProjectId == ProjectId + select x).Count(); + divCqmsPxNum.InnerHtml = CqmsPxNum.ToString(); + + //施工审批量 + int sgspl = Funs.DB.Comprehensive_GeneralPlanApproval.Where(x => x.ProjectId == ProjectId && x.AuditMan != null && x.AuditMan != "" && x.ApprovalMan != null && x.ApprovalMan != "").Count() + + Funs.DB.Comprehensive_MajorPlanApproval.Where(x => x.ProjectId == ProjectId && x.AuditMan != null && x.AuditMan != "" && x.ApprovalMan != null && x.ApprovalMan != "").Count(); + div_sgfaSpl.InnerHtml = sgspl.ToString(); + }); + } + + // 安全统计模块封装 + private async Task BindSafetyStatisticsAsync() + { + await Task.Run(() => + { Model.SGGLDB db = Funs.DB; //安全人工时 //int wHours = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == ProjectId).Max(x => x.WorkHours) ?? 0; @@ -55,7 +197,7 @@ namespace FineUIPro.Web.common //本月安全人工时 int wHoursMonth = 0; var dayReports = BLL.SitePerson_MonthReportService.getMonthReports(this.ProjectId, sDate); - if (dayReports.Count > 0) + if (dayReports.Any()) { wHoursMonth = Convert.ToInt32(dayReports[0].DayWorkTime); } @@ -64,7 +206,7 @@ namespace FineUIPro.Web.common //安全培训累计人员 var getTrainRecord = db.EduTrain_TrainRecord.Where(x => x.ProjectId == ProjectId).Sum(x => x.TrainPersonNum) ?? 0; //修改:增加博晟教育中的人数 - var boShengCount = db.Bo_Sheng_TrainPerson.Where(x => x.ProjectId == ProjectId && (x.DeleteTag == "False" || x.DeleteTag == null)).ToList().Count; + var boShengCount = db.Bo_Sheng_TrainPerson.Count(x => x.ProjectId == ProjectId && (x.DeleteTag == "False" || x.DeleteTag == null)); this.divSafePersonNum.InnerHtml = (getTrainRecord + boShengCount).ToString(); @@ -89,114 +231,77 @@ namespace FineUIPro.Web.common where y.ConstText.Contains("未遂") && x.ProjectId == ProjectId select x; this.divWS.InnerHtml = (wsAccidentList1.Count() + wsAccidentList2.Count()).ToString(); - - //整改数据 - getZgsj(); - - //风险预警 - getHazard(); - - //工程概况 - getProjectInfo(); - - //质量培训人员 - DateTime date = DateTime.Now.AddDays(-1); - int CqmsPxNum = (from x in Funs.DB.Comprehensive_InspectionPerson - where x.IsTrain == true && x.ProjectId == ProjectId - select x).Count(); - divCqmsPxNum.InnerHtml = CqmsPxNum.ToString(); - - //施工审批量 - int sgspl = Funs.DB.Comprehensive_GeneralPlanApproval.Where(x => x.ProjectId == ProjectId && x.AuditMan != null && x.AuditMan != "" && x.ApprovalMan != null && x.ApprovalMan != "").Count() - + Funs.DB.Comprehensive_MajorPlanApproval.Where(x => x.ProjectId == ProjectId && x.AuditMan != null && x.AuditMan != "" && x.ApprovalMan != null && x.ApprovalMan != "").Count(); - div_sgfaSpl.InnerHtml = sgspl.ToString(); - GetJD(); - //质量共检 - getZlgj(); - - //焊接 - getHj(); - - //加载质量问题 - getZlwt(); - - //人员信息 - getSitePerson(); - - //项目人员图表 - getProjectSitePerson(); - - //工作台面 - getGjsx(); - getGztm(); - - //材料到货 - getCldh(); - - getCNEN();//中英文翻译 - } + }); } + #endregion Methods + + // 项目统计优化 + #region 人员信息 - private void getSitePerson() + + private async Task getSitePerson() { - int AllCount = 0; - int MCount = 0; - //修改日期2024-10-30 16:53:50 为了和另一个看板相同 - //Funs.DB.T_d_EmployInOutRecord.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date) - //var getallin = APIPageDataService.getPersonNum(ProjectId, DateTime.Now); - - var getallin = from x in Funs.DB.T_d_EmployInOutRecord - join z in Funs.DB.Base_WorkPost on x.PostId equals z.WorkPostId - where x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date - select new { z.PostType }; - - AllCount = getallin.Count(); - if (AllCount > 0) + await Task.Run(() => { - MCount = getallin.Where(x => x.PostType == Const.PostType_1).Count(); - } + int AllCount = 0; + int MCount = 0; + //修改日期2024-10-30 16:53:50 为了和另一个看板相同 + //Funs.DB.T_d_EmployInOutRecord.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date) + //var getallin = APIPageDataService.getPersonNum(ProjectId, DateTime.Now); - if (AllCount > 0) - { - ////当前现场总人数 - div_xcrs.InnerHtml = AllCount.ToString(); - //作业人数 - div_zyxcrs.InnerHtml = (AllCount - MCount).ToString(); - //管理人数 - div_glxcrs.InnerHtml = MCount.ToString(); - } + var getallin = from x in Funs.DB.T_d_EmployInOutRecord + join z in Funs.DB.Base_WorkPost on x.PostId equals z.WorkPostId + where x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date + select new { z.PostType }; + + AllCount = getallin.Count(); + if (AllCount > 0) + { + MCount = getallin.Where(x => x.PostType == Const.PostType_1).Count(); + } + + if (AllCount > 0) + { + ////当前现场总人数 + div_xcrs.InnerHtml = AllCount.ToString(); + //作业人数 + div_zyxcrs.InnerHtml = (AllCount - MCount).ToString(); + //管理人数 + div_glxcrs.InnerHtml = MCount.ToString(); + } + }); } - #endregion + + #endregion 人员信息 #region 项目人员图表 + protected string ProjectPersonCount; protected string ProjectPersonMc; - private void getProjectSitePerson() + + private async Task getProjectSitePerson() { - var list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null) && x.Progress != null - && x.ProjectId == ProjectId).ToList(); - foreach (var item in list) + await Task.Run(() => { - ProjectPersonMc += "'" + item.ShortName + "',"; - ProjectPersonCount += "'" + APIPageDataService.getPersonNum(item.ProjectId, DateTime.Now).Count() + "',"; - } - if (!string.IsNullOrEmpty(ProjectPersonMc) && !string.IsNullOrEmpty(ProjectPersonCount)) - { - ProjectPersonMc = ProjectPersonMc.TrimEnd(','); - ProjectPersonCount = ProjectPersonCount.TrimEnd(','); - } + var list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null) && x.Progress != null + && x.ProjectId == ProjectId).ToList(); + foreach (var item in list) + { + ProjectPersonMc += "'" + item.ShortName + "',"; + ProjectPersonCount += "'" + APIPageDataService.getPersonNum(item.ProjectId, DateTime.Now).Count() + "',"; + } + if (!string.IsNullOrEmpty(ProjectPersonMc) && !string.IsNullOrEmpty(ProjectPersonCount)) + { + ProjectPersonMc = ProjectPersonMc.TrimEnd(','); + ProjectPersonCount = ProjectPersonCount.TrimEnd(','); + } + }); } - #endregion + + #endregion 项目人员图表 #region 整改数据 - protected void getZgsj() - { - div_zgsj.InnerHtml = (GetGeneralClosedNum() + GetGeneralNotClosedNum()).ToString(); - div_zgywc.InnerHtml = GetGeneralClosedNum().ToString(); - div_zgwwc.InnerHtml = GetGeneralNotClosedNum().ToString(); - div_zgwcl.InnerHtml = String.Format("{0:N2}", 100.0 * GetGeneralClosedNum() / (GetGeneralNotClosedNum() + GetGeneralClosedNum())).Replace("NaN", "0") + "%"; - } /// /// 获取隐患整改闭环项 @@ -209,6 +314,7 @@ namespace FineUIPro.Web.common select x).Count(); return result; } + /// /// 获取隐患未整改完成项 /// @@ -220,142 +326,36 @@ namespace FineUIPro.Web.common select x).Count(); return result; } - #endregion + + protected async Task getZgsj() + { + 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 = String.Format("{0:N2}", 100.0 * GeneralClosedNum / (GeneralNotClosedNum + GeneralClosedNum)).Replace("NaN", "0") + "%"; + }); + } + #endregion 整改数据 #region 工程概括 - protected string divProjectNameTitle; - protected string divProjectAddressTitle; - protected string divProjectMoneyTitle; - protected string divOwnUnitTitle; - protected string divSGUnitTitle; + protected string divJLUnitTitle; + protected string divOwnUnitTitle; + protected string divProjectAddressTitle; protected string divProjectImg; - - protected string spanProjectName; - protected string spanProjectAddress; - protected string spanOwnUnit; - protected string spanSGUnit; + protected string divProjectMoneyTitle; + protected string divProjectNameTitle; + protected string divSGUnitTitle; protected string spanJLUnit; + protected string spanOwnUnit; + protected string spanProjectAddress; + protected string spanProjectName; protected string spanRemark; - /// - /// - /// - private void getProjectInfo() - { - divProjectNameTitle = ""; - divProjectAddressTitle = ""; - divProjectMoneyTitle = ""; - divOwnUnitTitle = ""; - divSGUnitTitle = ""; - divJLUnitTitle = ""; - divProjectImg = "
"; - var project = ProjectService.GetProjectByProjectId(this.ProjectId); - if (project != null) - { - spanProjectName = "" + project.ShortName + ""; - spanRemark = "" + project.Remark + ""; - divProjectNameTitle = project.ProjectName; - if (!string.IsNullOrEmpty(project.ProjectAddress)) - { - //this.divProjectAddress.InnerHtml = project.ProjectAddress.Length > 8 ? project.ProjectAddress.Substring(0, 8) + "..." : project.ProjectAddress; - spanProjectAddress = spanProjectName = "" + - (project.ProjectAddress.Length > 8 ? project.ProjectAddress.Substring(0, 8) + "..." : project.ProjectAddress) + ""; - divProjectAddressTitle = project.ProjectAddress; - } - string unit_yz = ProjectService.getProjectUnitNameByUnitType(project.ProjectId, Const.ProjectUnitType_4); - if (!string.IsNullOrEmpty(unit_yz)) - { - //this.divOwnUnit.InnerHtml = unit_yz.Length > 8 ? unit_yz.Substring(0, 8) + "..." : unit_yz; - spanOwnUnit = "" + - (unit_yz.Length > 8 ? unit_yz.Substring(0, 8) + "..." : unit_yz) + ""; - divOwnUnitTitle = unit_yz; - } - string unit_JL = ProjectService.getProjectUnitNameByUnitType(project.ProjectId, Const.ProjectUnitType_3); - if (!string.IsNullOrEmpty(unit_JL)) - { - //this.divJLUnit.InnerHtml = unit_JL.Length > 8 ? unit_JL.Substring(0, 8) + "..." : unit_JL; - spanJLUnit = "" + - (unit_JL.Length > 8 ? unit_JL.Substring(0, 8) + "..." : unit_JL) + ""; - divJLUnitTitle = unit_JL; - } - - string unit_FB = ProjectService.getProjectUnitNameByUnitType(project.ProjectId, Const.ProjectUnitType_2); - if (!string.IsNullOrEmpty(unit_FB)) - { - //this.divSGUnit.InnerHtml = unit_FB.Length > 8 ? unit_FB.Substring(0, 8) + "..." : unit_FB + "..."; - spanSGUnit = "" + - (unit_FB.Length > 8 ? unit_FB.Substring(0, 8) + "..." : unit_FB + "...") + ""; - } - - var getSGName = from x in Funs.DB.Project_ProjectUnit - join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId - where x.ProjectId == project.ProjectId && x.UnitType == Const.ProjectUnitType_2 - select y.UnitName; - foreach (var item in getSGName) - { - divSGUnitTitle += item + ","; - } - //this.divProjectMoney.InnerHtml = divProjectMoneyTitle = project.ProjectMoney.ToString() + "万元"; - if (project.EndDate.HasValue) - { - this.divEndDate.InnerHtml = string.Format("{0:yyyy-MM-dd}", project.EndDate); - int endDays = (project.EndDate.Value - DateTime.Now).Days; - if (endDays >= 0) - { - this.divRemainingDays.InnerHtml = endDays.ToString() + ""; - } - if (project.StartDate.HasValue) - { - int pdays = (project.EndDate.Value - project.StartDate.Value).Days; - if (pdays >= 0) - { - this.divProjectDays.InnerHtml = pdays.ToString() + ""; - } - } - } - var allowExtensions = new List - { - - "jpg", "jpeg", "png", "bmp", "gif", // 图片文件类型 - - }; - var getImag = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == project.ProjectId); - if (getImag != null && !string.IsNullOrEmpty(getImag.AttachUrl)) - { - string url = getImag.AttachUrl.Replace('\\', '/'); - var UrlList = Funs.GetStrListByStr(url, ','); - bool isHiddDefaultImg = false; - foreach (var item in UrlList) - { - if (!string.IsNullOrEmpty(item)) - { - string atturl = Funs.RootPath + item.Replace(';', ' ').Trim(); - string fileType = GetFileType(atturl); - - if (File.Exists(atturl) && allowExtensions.Contains(fileType)) - { - isHiddDefaultImg = true; - divProjectImg += string.Format("
", atturl.Replace(Funs.RootPath, "/")); - - //this.divProjectImgs.Src = divProjectImg; - } - } - } - - divProjectImg = divProjectImg.Replace("
", ""); - /*string firtstUrl = Funs.GetStrListByStr(url, ',').FirstOrDefault(); - if (!string.IsNullOrEmpty(firtstUrl)) - { - string atturl = Funs.RootPath + firtstUrl.Replace(';', ' ').Trim(); - if (File.Exists(atturl)) - { - divProjectImg = "../" + firtstUrl.Replace(';', ' ').Trim(); - //this.divProjectImgs.Src = divProjectImg; - } - }*/ - } - } - } + protected string spanSGUnit; private string GetFileType(string fileName) { string fileType = String.Empty; @@ -367,48 +367,128 @@ namespace FineUIPro.Web.common return fileType; } - #endregion + + /// + /// + /// + private async Task getProjectInfo() + { + await Task.Run(() => + { + divProjectNameTitle = ""; + divProjectAddressTitle = ""; + divProjectMoneyTitle = ""; + divOwnUnitTitle = ""; + divSGUnitTitle = ""; + divJLUnitTitle = ""; + divProjectImg = "
"; + var project = ProjectService.GetProjectByProjectId(this.ProjectId); + if (project != null) + { + if (project.EndDate.HasValue) + { + this.divEndDate.InnerHtml = string.Format("{0:yyyy-MM-dd}", project.EndDate); + int endDays = (project.EndDate.Value - DateTime.Now).Days; + if (endDays >= 0) + { + this.divRemainingDays.InnerHtml = endDays.ToString() + ""; + } + if (project.StartDate.HasValue) + { + int pdays = (project.EndDate.Value - project.StartDate.Value).Days; + if (pdays >= 0) + { + this.divProjectDays.InnerHtml = pdays.ToString() + ""; + } + } + } + var allowExtensions = new List + { + "jpg", "jpeg", "png", "bmp", "gif", // 图片文件类型 + }; + var getImag = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == project.ProjectId); + if (getImag != null && !string.IsNullOrEmpty(getImag.AttachUrl)) + { + string url = getImag.AttachUrl.Replace('\\', '/'); + var UrlList = Funs.GetStrListByStr(url, ','); + bool isHiddDefaultImg = false; + foreach (var item in UrlList) + { + if (!string.IsNullOrEmpty(item)) + { + string atturl = Funs.RootPath + item.Replace(';', ' ').Trim(); + string fileType = GetFileType(atturl); + + if (File.Exists(atturl) && allowExtensions.Contains(fileType)) + { + isHiddDefaultImg = true; + divProjectImg += string.Format("
", atturl.Replace(Funs.RootPath, "/")); + + //this.divProjectImgs.Src = divProjectImg; + } + } + } + + divProjectImg = divProjectImg.Replace("
", ""); + } + } + }); + } + #endregion 工程概括 #region 风险预警 + + protected int CompletedNum; + protected int ConstructionNum; + protected int EarlyWarningCounts; + protected int FinishedNum; + protected int JxyjNum; protected string riskData1; protected string riskData2; protected string riskData3; protected string riskData4; protected string riskDataRate; + + protected int SuperCompletedNum; + + protected int SuperConstructionNum; + + protected int SuperFinishedNum; + + protected int SuperTrainPersonNum; + + protected int TrainPersonNum; + /// - /// 获取风险管控 + /// 获取危大工程审批完成数 /// - private void getHazard() + /// + protected async Task GetCompletedNum() { - var getHazards = from x in Funs.DB.Hazard_HazardSelectedItem - join y in Funs.DB.Base_RiskLevel on x.HazardLevel equals y.RiskLevelId - where x.ProjectId == ProjectId - select new { x.HazardSelectedItemId, y.RiskLevel }; - var riskLevels = from x in Funs.DB.Base_RiskLevel select x; - - List RiskLevelNum = new List(); - List series = new List(); - - riskData1 = getHazards.Count(x => x.RiskLevel == 1).ToString(); - riskData2 = getHazards.Count(x => x.RiskLevel == 2).ToString(); - riskData3 = getHazards.Count(x => x.RiskLevel == 3).ToString(); - riskData4 = getHazards.Count(x => x.RiskLevel == 4).ToString(); - if (getHazards.Count() > 0) - { - riskDataRate = (100.0 * getHazards.Count(x => x.RiskLevel == 4) / getHazards.Count()).ToString("0.##"); - } - else - { - riskDataRate = "0"; - } + return await Task.Run(() => { + var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId); + return result; + }); + } + /// + /// 获取危大工程施工个数 + /// + /// + protected async Task GetConstructionNum() + { + return await Task.Run(() => { + var result = Project_HSSEData_HSSEService.GetConstructionNum(ProjectId); + return result; + }); } /// /// 资质预警 /// - protected string getEarlyWarningCounts() + protected async Task getEarlyWarningCounts() { + return await Task.Run(() => { int allCount = 0; var getPersonQualitys = from x in Funs.DB.QualityAudit_PersonQuality join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId @@ -416,15 +496,29 @@ namespace FineUIPro.Web.common select x; //// 预警人数 allCount = getPersonQualitys.Count(); - return allCount.ToString(); + return allCount; + }); + } + + /// + /// 获取危大工程完工个数 + /// + /// + protected async Task GetFinishedNum() + { + return await Task.Run(() => { + var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId); + return result; + }); } /// /// 机械预警 /// /// - protected int GetJxyjNum() + protected async Task GetJxyjNum() { + return await Task.Run(() => { int result = 0; //机具报验的到期提醒和过期提醒记录数加一起 ////机具报验的到期提醒数 @@ -435,100 +529,169 @@ namespace FineUIPro.Web.common //result = num1 + num2; result = num2; return result; - } - - /// - /// 获取危大工程审批完成数 - /// - /// - protected int GetCompletedNum() - { - var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId); - return result; - } - - /// - /// 获取危大工程培训人次数 - /// - /// - protected int GetTrainPersonNum() - { - var result = Project_HSSEData_HSSEService.GetTrainPersonNum(ProjectId); - return result; - } - - /// - /// 获取危大工程施工个数 - /// - /// - protected int GetConstructionNum() - { - var result = Project_HSSEData_HSSEService.GetConstructionNum(ProjectId); - return result; - } - - /// - /// 获取危大工程完工个数 - /// - /// - protected int GetFinishedNum() - { - var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId); - return result; + }); } /// /// 获取超危大工程审批完成数 /// /// - protected int GetSuperCompletedNum() + protected async Task GetSuperCompletedNum() { + return await Task.Run(() => { var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId); return result; - } - - /// - /// 获取超危大工程培训人次数 - /// - /// - protected int GetSuperTrainPersonNum() - { - var result = Project_HSSEData_HSSEService.GetSuperTrainPersonNum(ProjectId); - return result; + }); } /// /// 获取超危大工程施工个数 /// /// - protected int GetSuperConstructionNum() + protected async Task GetSuperConstructionNum() { + return await Task.Run(() => { var result = Project_HSSEData_HSSEService.GetSuperConstructionNum(ProjectId); return result; + }); } /// /// 获取超危大工程完工个数 /// /// - protected int GetSuperFinishedNum() + protected async Task GetSuperFinishedNum() { + return await Task.Run(() => { var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId); return result; + }); } - #endregion + + /// + /// 获取超危大工程培训人次数 + /// + /// + protected async Task GetSuperTrainPersonNum() + { + return await Task.Run(() => { + var result = Project_HSSEData_HSSEService.GetSuperTrainPersonNum(ProjectId); + return result; + }); + } + + /// + /// 获取危大工程培训人次数 + /// + /// + protected async Task GetTrainPersonNum() + { + return await Task.Run(() => { + var result = Project_HSSEData_HSSEService.GetTrainPersonNum(ProjectId); + return result; + }); + } + + /// + /// 获取风险管控 + /// + private async Task getHazard() + { + await Task.Run(() => + { + ; + var getHazards = from x in Funs.DB.Hazard_HazardSelectedItem + join y in Funs.DB.Base_RiskLevel on x.HazardLevel equals y.RiskLevelId + where x.ProjectId == ProjectId + select new { x.HazardSelectedItemId, y.RiskLevel }; + var riskLevels = from x in Funs.DB.Base_RiskLevel select x; + + List RiskLevelNum = new List(); + List series = new List(); + + riskData1 = getHazards.Count(x => x.RiskLevel == 1).ToString(); + riskData2 = getHazards.Count(x => x.RiskLevel == 2).ToString(); + riskData3 = getHazards.Count(x => x.RiskLevel == 3).ToString(); + riskData4 = getHazards.Count(x => x.RiskLevel == 4).ToString(); + if (getHazards.Count() > 0) + { + riskDataRate = + (100.0 * getHazards.Count(x => x.RiskLevel == 4) / getHazards.Count()).ToString("0.##"); + } + else + { + riskDataRate = "0"; + } + }); + } + + private async Task getHazardData() + { + var EarlyWarningCountsTask = getEarlyWarningCounts(); + var GetJxyjNumTask = GetJxyjNum(); + var CompletedNumTask = GetCompletedNum(); + var TrainPersonNumTask = GetTrainPersonNum(); + var ConstructionNumTask = GetConstructionNum(); + var FinishedNumTask = GetFinishedNum(); + var SuperCompletedNumTask = GetSuperCompletedNum(); + var SuperTrainPersonNumTask = GetSuperTrainPersonNum(); + var SuperConstructionNumTask = GetSuperConstructionNum(); + var SuperFinishedNumTask = GetSuperFinishedNum(); + await Task.WhenAll( + EarlyWarningCountsTask, + GetJxyjNumTask, CompletedNumTask, TrainPersonNumTask, ConstructionNumTask, FinishedNumTask, SuperCompletedNumTask, SuperTrainPersonNumTask, SuperConstructionNumTask, SuperFinishedNumTask); + + EarlyWarningCounts = await EarlyWarningCountsTask; + JxyjNum = await GetJxyjNumTask; + CompletedNum = await CompletedNumTask; + TrainPersonNum = await TrainPersonNumTask; + ConstructionNum = await ConstructionNumTask; + FinishedNum = await FinishedNumTask; + SuperCompletedNum = await SuperCompletedNumTask; + SuperTrainPersonNum = await SuperTrainPersonNumTask; + SuperConstructionNum = await SuperConstructionNumTask; + SuperFinishedNum = await SuperFinishedNumTask; + } + #endregion 风险预警 #region 作业许可 - protected int getTodayCount() - { - var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.WorkStatesStr == "作业中").ToList().Count; - return result; - } + protected int getAllCount() { var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId).ToList().Count; return result; } + + protected int getALLWrokCount0() + { + var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证").ToList().Count; + return result; + } + + protected int getALLWrokCount1() + { + var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证").ToList().Count; + return result; + } + + protected int getALLWrokCount2() + { + var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证").ToList().Count; + return result; + } + + protected int getALLWrokCount3() + { + var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId + && x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证").ToList().Count; + return result; + } + + protected int getTodayCount() + { + var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.WorkStatesStr == "作业中").ToList().Count; + return result; + } /// /// 动火作业许可证 /// @@ -538,231 +701,211 @@ namespace FineUIPro.Web.common var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证" && x.WorkStatesStr == "作业中").ToList().Count; return result; } - protected int getALLWrokCount0() - { - var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证").ToList().Count; - return result; - } protected int getWrokCount1() { var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证" && x.WorkStatesStr == "作业中").ToList().Count; return result; } - protected int getALLWrokCount1() - { - var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证").ToList().Count; - return result; - } - protected int getWrokCount2() { var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count; return result; } - protected int getALLWrokCount2() - { - var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证").ToList().Count; - return result; - } - protected int getWrokCount3() { var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count; return result; } - protected int getALLWrokCount3() - { - var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId - && x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证").ToList().Count; - return result; - } - #endregion + #endregion 作业许可 #region 质量问题 - //质量问题总计 - protected string zlallNumber; - //质量问题合格数量 - protected string zlfinishNumber; - //质量问题整改率 - protected string zlzgl; protected string zgzglDataValue; - protected void getZlwt() - { - zlallNumber = (from x in Funs.DB.Check_CheckControl - where x.CheckDate <= DateTime.Now && x.ProjectId == ProjectId - select x).Count().ToString(); - var num2 = (from x in Funs.DB.Check_CheckControl - where x.CheckDate <= DateTime.Now && x.State == "7" && x.ProjectId == ProjectId - select x).Count(); - zlfinishNumber = num2.ToString(); - var num3 = (from x in Funs.DB.Check_CheckControl - where x.CheckDate <= DateTime.Now && x.State != "7" && x.ProjectId == ProjectId - select x).Count(); - var zgl = String.Format("{0:N2}", 100.0 * num2 / (num2 + num3)); - zlzgl = zgl.ToString().Replace("NaN", "0"); - zgzglDataValue = (100 - (100.0 * num2 / (num2 + num3))).ToString(); + //质量问题总计 + protected string zlallNumber; + + //质量问题合格数量 + protected string zlfinishNumber; + + //质量问题整改率 + protected string zlzgl; + protected async Task getZlwt() + { + await Task.Run(() => + { + zlallNumber = (from x in Funs.DB.Check_CheckControl + where x.CheckDate <= DateTime.Now && x.ProjectId == ProjectId + select x).Count().ToString(); + var num2 = (from x in Funs.DB.Check_CheckControl + where x.CheckDate <= DateTime.Now && x.State == "7" && x.ProjectId == ProjectId + select x).Count(); + zlfinishNumber = num2.ToString(); + var num3 = (from x in Funs.DB.Check_CheckControl + where x.CheckDate <= DateTime.Now && x.State != "7" && x.ProjectId == ProjectId + select x).Count(); + + var zgl = String.Format("{0:N2}", 100.0 * num2 / (num2 + num3)); + zlzgl = zgl.ToString().Replace("NaN", "0"); + zgzglDataValue = (100 - (100.0 * num2 / (num2 + num3))).ToString(); + }); } - #endregion + + #endregion 质量问题 #region 质量共检 + + protected string zggjzglDataValue; protected string zlgjallNumber; protected string zlgjfinishNumber; protected string zlgjzgl; - - protected string zggjzglDataValue; - protected void getZlgj() + protected async Task getZlgj() { - Model.SGGLDB db = Funs.DB; - zlgjallNumber = (from x in db.ProcessControl_InspectionManagement - where x.ProjectId == ProjectId - select x).Count().ToString(); - - var num2 = (from x in db.ProcessControl_InspectionManagement - where x.IsOnceQualified == true && x.ProjectId == ProjectId - select x).Count(); - zlgjfinishNumber = num2.ToString(); - - var num3 = (from x in db.ProcessControl_InspectionManagement - where (x.IsOnceQualified == false || x.IsOnceQualified == null) && x.ProjectId == ProjectId - select x).Count(); - var zgl = "0"; - if (num2 != 0) + await Task.Run(() => { - zgl = String.Format("{0:N2}", 100.0 * num2 / (num2 + num3)); - zlgjzgl = zgl.ToString(); - zggjzglDataValue = (100 - (100.0 * num2 / (num2 + num3))).ToString(); - } - else - { - zlgjzgl = zgl.ToString(); - zggjzglDataValue = "0"; - } + Model.SGGLDB db = Funs.DB; + zlgjallNumber = (from x in db.ProcessControl_InspectionManagement + where x.ProjectId == ProjectId + select x).Count().ToString(); + var num2 = (from x in db.ProcessControl_InspectionManagement + where x.IsOnceQualified == true && x.ProjectId == ProjectId + select x).Count(); + zlgjfinishNumber = num2.ToString(); + var num3 = (from x in db.ProcessControl_InspectionManagement + where (x.IsOnceQualified == false || x.IsOnceQualified == null) && x.ProjectId == ProjectId + select x).Count(); + var zgl = "0"; + if (num2 != 0) + { + zgl = String.Format("{0:N2}", 100.0 * num2 / (num2 + num3)); + zlgjzgl = zgl.ToString(); + zggjzglDataValue = (100 - (100.0 * num2 / (num2 + num3))).ToString(); + } + else + { + zlgjzgl = zgl.ToString(); + zggjzglDataValue = "0"; + } + }); } - #endregion + #endregion 质量共检 #region 焊接 + protected string hjallNumber = "0"; + protected string hjDataValue = "0"; protected string hjfinishNumber = "0"; protected string hjzgl = "0"; - - protected string hjDataValue = "0"; - protected void getHj() + protected async Task getHj() { - Model.SingleSerie series = new Model.SingleSerie(); - Model.BusinessColumn businessColumn = new Model.BusinessColumn(); - List listdata = new List(); - double result = 0; - Model.SGGLDB db = Funs.DB; - var ndtList = (from x in db.ProcessControl_NondestructiveTest_New where x.ProfessionalName == "工艺管道" && x.ProjectId == ProjectId orderby x.CreateDate descending select x).FirstOrDefault(); - decimal a = 0, b = 0; - if (ndtList != null) + await Task.Run(() => { - if (ndtList.TotalQuantity.HasValue) + Model.SingleSerie series = new Model.SingleSerie(); + Model.BusinessColumn businessColumn = new Model.BusinessColumn(); + List listdata = new List(); + double result = 0; + Model.SGGLDB db = Funs.DB; + var ndtList = + (from x in db.ProcessControl_NondestructiveTest_New + where x.ProfessionalName == "工艺管道" && x.ProjectId == ProjectId + orderby x.CreateDate descending + select x).FirstOrDefault(); + decimal a = 0, b = 0; + if (ndtList != null) { - a += Math.Floor(ndtList.TotalQuantity.Value * Funs.GetNewDecimalOrZero(ndtList.TotalRate) / 100); - b += ndtList.TotalQuantity.Value; - } - if (!string.IsNullOrEmpty(ndtList.TotalRate)) - { - result = Convert.ToDouble(ndtList.TotalRate); - } - } - else - { - var hjglData = (from x in db.HJGL_FL_Data where x.ProjectId == ProjectId orderby x.CompileDate descending select x).FirstOrDefault(); - if (hjglData != null) - { - a = Funs.GetNewDecimalOrZero(hjglData.OneTimeFilmQualifiedAmount); - b = Funs.GetNewDecimalOrZero(hjglData.OneTimeFilmAmount); - if (a > 0 && b > 0) + if (ndtList.TotalQuantity.HasValue) { - result = Convert.ToDouble(Convert.ToDecimal(100.0) * b / a); + a += Math.Floor(ndtList.TotalQuantity.Value * Funs.GetNewDecimalOrZero(ndtList.TotalRate) / + 100); + b += ndtList.TotalQuantity.Value; + } + + if (!string.IsNullOrEmpty(ndtList.TotalRate)) + { + result = Convert.ToDouble(ndtList.TotalRate); + } + } + else + { + var hjglData = + (from x in db.HJGL_FL_Data + where x.ProjectId == ProjectId + orderby x.CompileDate descending + select x).FirstOrDefault(); + if (hjglData != null) + { + a = Funs.GetNewDecimalOrZero(hjglData.OneTimeFilmQualifiedAmount); + b = Funs.GetNewDecimalOrZero(hjglData.OneTimeFilmAmount); + if (a > 0 && b > 0) + { + result = Convert.ToDouble(Convert.ToDecimal(100.0) * b / a); + } } } - } - if (b > 0) - { - hjallNumber = b.ToString(); - hjfinishNumber = a.ToString(); - hjzgl = result.ToString(); - hjDataValue = (100 - result).ToString(); - } - //var ndtLists = from x in db.HJGL_FL_NdtList where x.ProjectId == ProjectId select x; - //if (ndtLists.Count() > 0) - //{ - // decimal a = 0, b = 0; - // foreach (var item in ndtLists) - // { - // a += Funs.GetNewDecimalOrZero(item.OneTimeFilmQualifiedAmount); - // b += Funs.GetNewDecimalOrZero(item.OneTimeFilmAmount); - // } - // if (b > 0) - // { - // result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 2)); - // hjallNumber = b.ToString(); - // hjfinishNumber = a.ToString(); - // hjzgl = result.ToString(); - // hjDataValue = (100 - result).ToString(); - // } - //} - //else - //{ - // var data = (from x in db.HJGL_FL_Data where x.ProjectId == ProjectId orderby x.CompileDate descending select x).FirstOrDefault(); - // if (data != null) - // { - // decimal a = Funs.GetNewDecimalOrZero(data.OneTimeFilmQualifiedAmount); - // decimal b = Funs.GetNewDecimalOrZero(data.OneTimeFilmAmount); - // if (b > 0) - // { - // result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 2)); + if (b > 0) + { + hjallNumber = b.ToString(); + hjfinishNumber = a.ToString(); + hjzgl = result.ToString(); + hjDataValue = (100 - result).ToString(); + } + //var ndtLists = from x in db.HJGL_FL_NdtList where x.ProjectId == ProjectId select x; + //if (ndtLists.Count() > 0) + //{ + // decimal a = 0, b = 0; + // foreach (var item in ndtLists) + // { + // a += Funs.GetNewDecimalOrZero(item.OneTimeFilmQualifiedAmount); + // b += Funs.GetNewDecimalOrZero(item.OneTimeFilmAmount); + // } + // if (b > 0) + // { + // result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 2)); - // hjallNumber = b.ToString(); - // hjfinishNumber = a.ToString(); - // hjzgl = result.ToString(); - // hjDataValue = (100 - result).ToString(); - // } - // } - //} + // hjallNumber = b.ToString(); + // hjfinishNumber = a.ToString(); + // hjzgl = result.ToString(); + // hjDataValue = (100 - result).ToString(); + // } + //} + //else + //{ + // var data = (from x in db.HJGL_FL_Data where x.ProjectId == ProjectId orderby x.CompileDate descending select x).FirstOrDefault(); + // if (data != null) + // { + // decimal a = Funs.GetNewDecimalOrZero(data.OneTimeFilmQualifiedAmount); + // decimal b = Funs.GetNewDecimalOrZero(data.OneTimeFilmAmount); + // if (b > 0) + // { + // result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 2)); + + // hjallNumber = b.ToString(); + // hjfinishNumber = a.ToString(); + // hjzgl = result.ToString(); + // hjDataValue = (100 - result).ToString(); + // } + // } + //} + }); } - #endregion + #endregion 焊接 #region 赢得值曲线 + protected string swgclHtml; - protected void GetJD() + protected string Tree { - int index = 0; - var result = Funs.DB.View_JDGL_QuantityCompletion - - .Where(qc => qc.ProjectId == this.CurrUser.LoginProjectId) - .OrderBy(qc => qc.SortIndex) - .ThenBy(qc => qc.Name) - .ToList(); - foreach (var item in result) - { - index++; - swgclHtml += "
"; - swgclHtml += string.Format("

{0}

", index); - swgclHtml += string.Format("

{0}

", item.Name); - swgclHtml += string.Format("

{0}

", item.Unit); - swgclHtml += string.Format("

{0}

", item.DesignNum); - swgclHtml += string.Format("

{0}{1}{2}

", item.PlanNum, item.RealNum, item.Rate); - swgclHtml += string.Format("

{0}{1}{2}

", item.TotalPlanNum, item.TotalRealNum, item.TotalRate); - swgclHtml += string.Format("

{0}

", item.SumRate); - swgclHtml += "
"; - } - + get; + set; } - protected string Two { get @@ -884,10 +1027,35 @@ namespace FineUIPro.Web.common } } - #region 赢得值曲线 - protected string Tree + protected async Task GetJD() { - get + await Task.Run(() => + { + int index = 0; + var result = Funs.DB.View_JDGL_QuantityCompletion + + .Where(qc => qc.ProjectId == this.CurrUser.LoginProjectId) + .OrderBy(qc => qc.SortIndex) + .ThenBy(qc => qc.Name) + .ToList(); + foreach (var item in result) + { + index++; + swgclHtml += "
"; + swgclHtml += string.Format("

{0}

", index); + swgclHtml += string.Format("

{0}

", item.Name); + swgclHtml += string.Format("

{0}

", item.Unit); + swgclHtml += string.Format("

{0}

", item.DesignNum); + swgclHtml += string.Format("

{0}{1}{2}

", item.PlanNum, item.RealNum, item.Rate); + swgclHtml += string.Format("

{0}{1}{2}

", item.TotalPlanNum, item.TotalRealNum, item.TotalRate); + swgclHtml += string.Format("

{0}

", item.SumRate); + swgclHtml += "
"; + } + }); + } + protected async Task GetTreeAsync() + { + return await Task.Run(() => { List series = new List(); Model.BusinessColumn businessColumn = new Model.BusinessColumn(); @@ -921,15 +1089,22 @@ namespace FineUIPro.Web.common businessColumn.categories = listCategories; businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn); - } + }); } - #endregion - #endregion - #region 人力情况 + #endregion 赢得值曲线 + + #region 人力情况 + protected string Person { - get + get; + set; + } + + protected async Task GetPersonAsync() + { + return await Task.Run(() => { Model.SGGLDB db = Funs.DB; List series = new List(); @@ -1001,7 +1176,7 @@ namespace FineUIPro.Web.common //其他 listCategories.Add("其他"); int workPostCount13 = persons.Count() - workPostCount1 - workPostCount2 - workPostCountP - workPostCount6 - workPostCount7 - - workPostCount8 - workPostCount12; + - workPostCount8 - workPostCount12; listdata.Add(workPostCount13); s.data = listdata; series.Add(s); @@ -1009,99 +1184,78 @@ namespace FineUIPro.Web.common businessColumn.title = persons.Count().ToString(); businessColumn.series = series; return JsonConvert.SerializeObject(businessColumn); - } + }); } - #endregion + + #endregion 人力情况 #region 作业许可列表 + protected string getLicenseManager() { string returnHtml = ""; - var list = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId).ToList(); - foreach (var item in list) + /* var list = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId).ToList(); + foreach (var item in list) + { + var gfx = "风险作业"; + if (item.IsHighRisk != true) + { + gfx = "非高风险"; + } + string shortUnitname = string.Empty; + var unit = Funs.DB.Base_Unit.Where(x => x.UnitId == item.UnitId).FirstOrDefault(); + if (unit != null) + { + shortUnitname = unit.ShortUnitName; + } + returnHtml += "
" + item.LicenseManagerCode + "-" + shortUnitname + "-" + item.WorkAreaName + "-" + gfx + "-" + item.LicenseTypeName + + "
"; + }*/ + + var result = from x in Funs.DB.View_License_LicenseManager + join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId into g + from z in g.DefaultIfEmpty() + where x.ProjectId == ProjectId + select new + { + x.LicenseManagerCode, + x.WorkAreaName, + x.LicenseTypeName, + GfxType = x.IsHighRisk == true ? "风险作业" : "非高风险", + ShortUnitName = z != null ? z.ShortUnitName : "", // 空值防护 + }; + var sb = new StringBuilder(); + foreach (var item in result.ToList()) { - var gfx = "风险作业"; - if (item.IsHighRisk != true) - { - gfx = "非高风险"; - } - string shortUnitname = string.Empty; - var unit = Funs.DB.Base_Unit.Where(x => x.UnitId == item.UnitId).FirstOrDefault(); - if (unit != null) - { - shortUnitname = unit.ShortUnitName; - } - returnHtml += "
" + item.LicenseManagerCode + "-" + shortUnitname + "-" + item.WorkAreaName + "-" + gfx + "-" + item.LicenseTypeName - + "
"; + sb.AppendFormat("
{0}-{1}-{2}-{3}-{4}
", + item.LicenseManagerCode, + item.ShortUnitName, + item.WorkAreaName, + item.GfxType, + item.LicenseTypeName); } + returnHtml = sb.ToString(); return returnHtml; } - #endregion + + #endregion 作业许可列表 #region 工作台面 protected string gjsxRate = "0"; - protected void getGztm() - { - //div_dbsxlist.InnerHtml = ""; - string returnDbHtml = "
"; - if (!string.IsNullOrEmpty(ProjectId)) - { - //关键事项 - string strSql = @"SELECT GJSXID AS DataId - ,'0BEA2126-7A48-40EB-8E21-99148E91A22B' AS MenuId - ,'关键事项待处理' AS MenuName - ,GJSX.Detail AS Content - ,users.UserId - ,users.UserName - ,GJSX.CreateDate AS DataTime - ,CONVERT(varchar(100),GJSX.CreateDate, 23) AS DataTimeStr - ,'../PZHGL/GJSX/GJSXListEdit.aspx?ToDo=ToDo&EditType=Edit&ID='+GJSXID AS PCUrl - FROM GJSX - LEFT JOIN Sys_User AS users ON users.UserId =@userId - WHERE GJSX.ProjectId=@projectId AND - GJSX.State != 0 AND (((select count(*) from GJSX_detail detail where detail.Progress_user=@userId and detail.GJSXID=GJSX.GJSXID)=0 - and (select count(*) from GJSX_Process process where process.UserId=@userId and process.GJSXID=GJSX.GJSXID)>0) - or (GJSX.User_Acceptance like '%'+@userId+'%' and (select count(*) from GJSX_detail detail where detail.GJSXID=GJSX.GJSXID)=(select count(*) from GJSX_Process process where process.GJSXID=GJSX.GJSXID)) - )"; - List listStr = new List(); - - listStr.Add(new SqlParameter("@userId", CurrUser.UserId)); - listStr.Add(new SqlParameter("@projectId", ProjectId)); - SqlParameter[] parameter = listStr.ToArray(); - DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); - var Gjsxcount = tb.Rows.Count; - div_gjsx.InnerHtml = Gjsxcount.ToString(); - - var getDataList = Funs.DB.Sp_Project_GetToDoItems(this.CurrUser.LoginProjectId, this.CurrUser.UserId).ToList(); - //待办事项、个人流程 - div_dbsx.InnerHtml = getDataList.Count().ToString(); - div_grlc.InnerHtml = getDataList.Count().ToString(); - foreach (var item in getDataList) - { - returnDbHtml += "
" + item.MenuName + "" + item.Content + "" + - item.DataTime.ToString().Replace('/', '-').Split(' ')[0] + "
"; - } - } - else - { - returnDbHtml = "
"; - } - this.div_dbsxlist.InnerHtml = returnDbHtml; - - - } /// /// 加载关键事项 /// - protected void getGjsx() + protected async Task getGjsx() { - string returnDbHtml = "
"; - ////关键事项 - if (!string.IsNullOrEmpty(ProjectId)) + await Task.Run(() => { - string strSql = @"SELECT GJSXID AS DataId + string returnDbHtml = "
"; + ////关键事项 + if (!string.IsNullOrEmpty(ProjectId)) + { + string strSql = @"SELECT GJSXID AS DataId ,'0BEA2126-7A48-40EB-8E21-99148E91A22B' AS MenuId ,'关键事项待处理' AS MenuName ,GJSX.Detail AS Content @@ -1110,168 +1264,193 @@ namespace FineUIPro.Web.common ,GJSX.CreateDate AS DataTime ,CONVERT(varchar(100),GJSX.CreateDate, 23) AS DataTimeStr ,'../PZHGL/GJSX/GJSXListEdit.aspx?ToDo=ToDo&EditType=Edit&ID='+GJSXID AS PCUrl - FROM GJSX + FROM GJSX LEFT JOIN Sys_User AS users ON users.UserId =@userId - WHERE GJSX.ProjectId=@projectId AND + WHERE GJSX.ProjectId=@projectId AND GJSX.State != 0 AND (((select count(*) from GJSX_detail detail where detail.Progress_user=@userId and detail.GJSXID=GJSX.GJSXID)=0 and (select count(*) from GJSX_Process process where process.UserId=@userId and process.GJSXID=GJSX.GJSXID)>0) or (GJSX.User_Acceptance like '%'+@userId+'%' and (select count(*) from GJSX_detail detail where detail.GJSXID=GJSX.GJSXID)=(select count(*) from GJSX_Process process where process.GJSXID=GJSX.GJSXID)) )"; - List listStr = new List(); + List listStr = new List(); - listStr.Add(new SqlParameter("@userId", CurrUser.UserId)); - listStr.Add(new SqlParameter("@projectId", ProjectId)); - SqlParameter[] parameter = listStr.ToArray(); - DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + listStr.Add(new SqlParameter("@userId", CurrUser.UserId)); + listStr.Add(new SqlParameter("@projectId", ProjectId)); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); - for (int i = 0; i < tb.Rows.Count; i++) - { - returnDbHtml += "
" + tb.Rows[i]["MenuName"] + "" + tb.Rows[i]["Content"] + "" + - tb.Rows[i]["DataTime"].ToString().Replace('/', '-').Split(' ')[0] + "
"; + for (int i = 0; i < tb.Rows.Count; i++) + { + returnDbHtml += "
" + tb.Rows[i]["MenuName"] + "" + tb.Rows[i]["Content"] + "" + + tb.Rows[i]["DataTime"].ToString().Replace('/', '-').Split(' ')[0] + "
"; + } } - } - else + else + { + returnDbHtml = "
"; + } + this.div_gjsxlist.InnerHtml = returnDbHtml; + + List listStaticListStr = new List(); + + listStaticListStr.Add(new SqlParameter("@UserID", null)); + listStaticListStr.Add(new SqlParameter("@unit", null)); + listStaticListStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + listStaticListStr.Add(new SqlParameter("@CNProfessional_ID", null)); + listStaticListStr.Add(new SqlParameter("@questionType", null)); + listStaticListStr.Add(new SqlParameter("@processMan", null)); listStaticListStr.Add(new SqlParameter("@User_Acceptance", null)); + + SqlParameter[] Staticparameter = listStaticListStr.ToArray(); + DataTable statcitbDataTable = SQLHelper.GetDataTableRunProc("Sp_GJSXStatistic", Staticparameter); + var list = from x in Funs.DB.GJSX where x.ProjectId == this.CurrUser.LoginProjectId select x; + var allcount = list.Count(x => x.State == "0") + list.Count(x => x.State != "0" && x.CompleteDate < DateTime.Now); + var closecount = list.Count(x => x.State == "0"); + gjsxRate = String.Format("{0:N2}", 100.0 * closecount / allcount); + gjsxRate = gjsxRate.ToString().Replace("NaN", "0") + "%"; + }); + } + + protected async Task getGztm() + { + await Task.Run(() => { - returnDbHtml = "
"; - } - this.div_gjsxlist.InnerHtml = returnDbHtml; + //div_dbsxlist.InnerHtml = ""; + string returnDbHtml = "
"; + if (!string.IsNullOrEmpty(ProjectId)) + { + //关键事项 + string strSql = @"SELECT GJSXID AS DataId + ,'0BEA2126-7A48-40EB-8E21-99148E91A22B' AS MenuId + ,'关键事项待处理' AS MenuName + ,GJSX.Detail AS Content + ,users.UserId + ,users.UserName + ,GJSX.CreateDate AS DataTime + ,CONVERT(varchar(100),GJSX.CreateDate, 23) AS DataTimeStr + ,'../PZHGL/GJSX/GJSXListEdit.aspx?ToDo=ToDo&EditType=Edit&ID='+GJSXID AS PCUrl + FROM GJSX + LEFT JOIN Sys_User AS users ON users.UserId =@userId + WHERE GJSX.ProjectId=@projectId AND + GJSX.State != 0 AND (((select count(*) from GJSX_detail detail where detail.Progress_user=@userId and detail.GJSXID=GJSX.GJSXID)=0 + and (select count(*) from GJSX_Process process where process.UserId=@userId and process.GJSXID=GJSX.GJSXID)>0) + or (GJSX.User_Acceptance like '%'+@userId+'%' and (select count(*) from GJSX_detail detail where detail.GJSXID=GJSX.GJSXID)=(select count(*) from GJSX_Process process where process.GJSXID=GJSX.GJSXID)) + )"; + List listStr = new List(); - List listStaticListStr = new List(); + listStr.Add(new SqlParameter("@userId", CurrUser.UserId)); + listStr.Add(new SqlParameter("@projectId", ProjectId)); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + var Gjsxcount = tb.Rows.Count; + div_gjsx.InnerHtml = Gjsxcount.ToString(); - listStaticListStr.Add(new SqlParameter("@UserID", null)); - listStaticListStr.Add(new SqlParameter("@unit", null)); - listStaticListStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); - listStaticListStr.Add(new SqlParameter("@CNProfessional_ID", null)); - listStaticListStr.Add(new SqlParameter("@questionType", null)); - listStaticListStr.Add(new SqlParameter("@processMan", null)); listStaticListStr.Add(new SqlParameter("@User_Acceptance", null)); - - - SqlParameter[] Staticparameter = listStaticListStr.ToArray(); - DataTable statcitbDataTable = SQLHelper.GetDataTableRunProc("Sp_GJSXStatistic", Staticparameter); - var list = from x in Funs.DB.GJSX where x.ProjectId == this.CurrUser.LoginProjectId select x; - var allcount = list.Count(x => x.State == "0") + list.Count(x => x.State != "0" && x.CompleteDate < DateTime.Now); - var closecount = list.Count(x => x.State == "0"); - gjsxRate = String.Format("{0:N2}", 100.0 * closecount / allcount); - gjsxRate = gjsxRate.ToString().Replace("NaN", "0") + "%"; + var getDataList = Funs.DB.Sp_Project_GetToDoItems(this.CurrUser.LoginProjectId, this.CurrUser.UserId).ToList(); + //待办事项、个人流程 + div_dbsx.InnerHtml = getDataList.Count().ToString(); + div_grlc.InnerHtml = getDataList.Count().ToString(); + foreach (var item in getDataList) + { + returnDbHtml += "
" + item.MenuName + "" + item.Content + "" + + item.DataTime.ToString().Replace('/', '-').Split(' ')[0] + "
"; + } + } + else + { + returnDbHtml = "
"; + } + this.div_dbsxlist.InnerHtml = returnDbHtml; + }); } - #endregion - - /// - /// 关闭弹出窗 - /// - /// - /// - protected void Window1_Close(object sender, WindowCloseEventArgs e) - { - getGztm(); - getGjsx(); - } - - - /// - /// 打开待办 - /// - /// - /// - protected void btnshowWindows(object sender, EventArgs e) - { - PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("{0}", hiddenUrl.Value, "办理 - "))); - } - + #endregion 工作台面 #region 材料到货 - protected string gdclHtml; - protected string sbclHtml; protected string gdclHead = "
材料类别
设计量

采购量

采购量百分比

到货量

已到货百分比

领料量

已领料百分比

"; + protected string gdclHtml; protected string sbclHead = "
合同号
" + "
采购总量
" + "
发货总量
" + "
到货总量
" + "
到货百分比
"; - private void getCldh() + + protected string sbclHtml; + private async Task getCldh() { - //管道材料 - var pid = BLL.ProjectService.GetCLProjectCodeByProjectId(ProjectId).ToString(); - var list = Funs.DB.CLGL_PipelineMaterialSumList.Where(x => x.Type == "M" && x.ProjectId == pid); - foreach (var item in list) + await Task.Run(() => { - gdclHtml += "
"; - gdclHtml += "
" + item.C1 + "
"; - gdclHtml += "
" + (string.IsNullOrEmpty(item.C2) ? "0" : item.C2) + "
"; - gdclHtml += "

" + (string.IsNullOrEmpty(item.C4) ? "0" : item.C4) + "" + (string.IsNullOrEmpty(item.C5) ? "0%" : item.C5) + "

"; - gdclHtml += "

" + (string.IsNullOrEmpty(item.C6) ? "0" : item.C6) + "" + (string.IsNullOrEmpty(item.C7) ? "0%" : item.C7) + "

"; - gdclHtml += "

" + (string.IsNullOrEmpty(item.C8) ? "0" : item.C8) + "" + (string.IsNullOrEmpty(item.C9) ? "0%" : item.C9) + "

"; - gdclHtml += "
"; - } + //管道材料 + var pid = BLL.ProjectService.GetCLProjectCodeByProjectId(ProjectId).ToString(); + var list = Funs.DB.CLGL_PipelineMaterialSumList.Where(x => x.Type == "M" && x.ProjectId == pid); + foreach (var item in list) + { + gdclHtml += "
"; + gdclHtml += "
" + item.C1 + "
"; + gdclHtml += "
" + (string.IsNullOrEmpty(item.C2) ? "0" : item.C2) + "
"; + gdclHtml += "

" + (string.IsNullOrEmpty(item.C4) ? "0" : item.C4) + "" + (string.IsNullOrEmpty(item.C5) ? "0%" : item.C5) + "

"; + gdclHtml += "

" + (string.IsNullOrEmpty(item.C6) ? "0" : item.C6) + "" + (string.IsNullOrEmpty(item.C7) ? "0%" : item.C7) + "

"; + gdclHtml += "

" + (string.IsNullOrEmpty(item.C8) ? "0" : item.C8) + "" + (string.IsNullOrEmpty(item.C9) ? "0%" : item.C9) + "

"; + gdclHtml += "
"; + } - //设备材料 - var SbclList = Funs.DB.CLGL_ContractListSum.Where(x => x.C1 == "设备" && x.ProjectId == pid); - foreach (var item in SbclList) - { - sbclHtml += "
"; - double SbcllCgl = 0.0; - double Sbdhs = 0.0; - if (string.IsNullOrEmpty(item.C7)) + //设备材料 + var SbclList = Funs.DB.CLGL_ContractListSum.Where(x => x.C1 == "设备" && x.ProjectId == pid); + foreach (var item in SbclList) { - SbcllCgl += 0; - Sbdhs += 0; + sbclHtml += "
"; + double SbcllCgl = 0.0; + double Sbdhs = 0.0; + if (string.IsNullOrEmpty(item.C7)) + { + SbcllCgl += 0; + Sbdhs += 0; + } + else + { + SbcllCgl += Convert.ToDouble(item.C7); + Sbdhs += Convert.ToDouble(item.C9); + } + sbclHtml += "
" + item.C2 + "
"; + sbclHtml += "
" + SbcllCgl + "
"; + sbclHtml += "
" + item.C7 + "
"; + sbclHtml += "
" + Sbdhs + "
"; + //百分比 + var dhbfb = "0%"; + if (SbcllCgl + Sbdhs != 0) + { + dhbfb = String.Format("{0:N2}", 100.0 * Sbdhs / (Sbdhs + SbcllCgl), 2) + "%"; + } + sbclHtml += "
" + dhbfb + "
"; + sbclHtml += "
"; } - else - { - SbcllCgl += Convert.ToDouble(item.C7); - Sbdhs += Convert.ToDouble(item.C9); - } - sbclHtml += "
" + item.C2 + "
"; - sbclHtml += "
" + SbcllCgl + "
"; - sbclHtml += "
" + item.C7 + "
"; - sbclHtml += "
" + Sbdhs + "
"; - //百分比 - var dhbfb = "0%"; - if (SbcllCgl + Sbdhs != 0) - { - dhbfb = String.Format("{0:N2}", 100.0 * Sbdhs / (Sbdhs + SbcllCgl), 2) + "%"; - - } - sbclHtml += "
" + dhbfb + "
"; - sbclHtml += "
"; - } + }); } - #endregion + #endregion 材料到货 - /// - /// 中英文 - /// - protected string QualityRate = string.Empty;//质量问题整改率 - protected string OnePassRate = string.Empty;//一次共检合格率 - protected string OnePassRateOfWelding = string.Empty;//焊接一次合格率 - protected string total = string.Empty;//总计 - protected string completed = string.Empty;//已完成 - protected string majorRisk = string.Empty;//重大风险 - protected string LowRisk = string.Empty;//低风险 - protected string GeneralRisk = string.Empty;//一般风险 - protected string GreaterRisk = string.Empty;//较大风险 - protected string PlannedValue = string.Empty;//计划值 - protected string ActualValue = string.Empty;//实际值 - protected string Cumulative_planned_value = string.Empty;//累计计划值 - protected string Cumulative_actual_value = string.Empty;//累计实际值 + //质量问题整改率 - private void getCNEN() + //总计 + //计划值 + //累计计划值 + //累计实际值 + + private async Task getCNEN() { - QualityRate = Resources.Lan.QualityRate; - OnePassRate = Resources.Lan.OnePassRate; - OnePassRateOfWelding = Resources.Lan.OnePassRateOfWelding; - total = Resources.Lan.total; - completed = Resources.Lan.completed; - majorRisk = Resources.Lan.MajorRisk; - LowRisk = Resources.Lan.LowRisk; - GeneralRisk = Resources.Lan.GeneralRisk; - GreaterRisk = Resources.Lan.GreaterRisk; - PlannedValue = Resources.Lan.PlannedValue; - ActualValue = Resources.Lan.ActualValue; - Cumulative_planned_value = Resources.Lan.Cumulative_planned_value; - Cumulative_actual_value = Resources.Lan.Cumulative_actual_value; + await Task.Run(() => + { + QualityRate = Resources.Lan.QualityRate; + OnePassRate = Resources.Lan.OnePassRate; + OnePassRateOfWelding = Resources.Lan.OnePassRateOfWelding; + total = Resources.Lan.total; + completed = Resources.Lan.completed; + majorRisk = Resources.Lan.MajorRisk; + LowRisk = Resources.Lan.LowRisk; + GeneralRisk = Resources.Lan.GeneralRisk; + GreaterRisk = Resources.Lan.GreaterRisk; + PlannedValue = Resources.Lan.PlannedValue; + ActualValue = Resources.Lan.ActualValue; + Cumulative_planned_value = Resources.Lan.Cumulative_planned_value; + Cumulative_actual_value = Resources.Lan.Cumulative_actual_value; + }); } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/main_new.aspx.cs b/SGGL/FineUIPro.Web/common/main_new.aspx.cs index 05a40cc9..548dfe4c 100644 --- a/SGGL/FineUIPro.Web/common/main_new.aspx.cs +++ b/SGGL/FineUIPro.Web/common/main_new.aspx.cs @@ -6,10 +6,12 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; +using System.Runtime.Caching; using System.Threading.Tasks; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using Org.BouncyCastle.Ocsp; namespace FineUIPro.Web.common { @@ -18,7 +20,7 @@ namespace FineUIPro.Web.common List allProjects; public static List LargerHazard = new List(); - public string[] pids { get; set; } + public string[] pids { get; set; } protected async void Page_Load(object sender, EventArgs e) { if (!IsPostBack) @@ -145,6 +147,8 @@ namespace FineUIPro.Web.common // 质量统计模块封装 private async Task BindQualityStatisticsAsync() { + await Task.Run(() => { + var db = Funs.DB; // 质量管理人员(合并公司+项目级查询) var qualityQuery = db.Base_WorkPost @@ -161,13 +165,13 @@ namespace FineUIPro.Web.common divCqmsPxNum.InnerText = db.Comprehensive_InspectionPerson .Where(x => pids.Contains(x.ProjectId)) .Count(x => x.IsTrain == true).ToString(); + }); } // 项目统计优化 private async Task BindProjectStatisticsAsync() { - var db = Funs.DB; - - + await Task.Run(() => { + var db = Funs.DB; int acount = allProjects.Count(); int pcount1 = 0; int pcount2 = 0; @@ -190,6 +194,7 @@ namespace FineUIPro.Web.common div_zjxmCount.InnerHtml = pcount1.ToString() + "
"; div_cjrsCount.InnerHtml = pcount2.ToString() + "
"; div_wdgcCount.InnerHtml = pcount3.ToString() + "
"; + }); } @@ -304,7 +309,7 @@ namespace FineUIPro.Web.common var getAllPersonInOutList = from x in db.SitePerson_PersonInOutNumber select x; - if (getAllPersonInOutList.Count() > 0) + if (getAllPersonInOutList.Any()) { var getInMonths = (from x in getAllPersonInOutList select new { x.InOutDate.Year, x.InOutDate.Month }).Distinct(); if (sDate.HasValue) @@ -348,10 +353,10 @@ 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); - var consts = Funs.DB.Sys_Const.Where(x => x.GroupId == ConstValue.GroupId_ProjectState); + var project1s = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).ToList(); + var consts = Funs.DB.Sys_Const.Where(x => x.GroupId == ConstValue.GroupId_ProjectState).ToList(); string name = string.Empty; - if (project1s.Count() > 0) + if (project1s.Any()) { foreach (var project1 in project1s) { @@ -432,7 +437,7 @@ namespace FineUIPro.Web.common select x; listdata.Add(projects.Count()); decimal progress = 0; - if (projects.Count() > 0) + if (projects.Any()) { convert.Add(province); foreach (var item in projects) @@ -570,7 +575,6 @@ 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); Model.SGGLDB db = Funs.DB; string str = string.Empty; foreach (var item in allProjects) @@ -871,7 +875,7 @@ namespace FineUIPro.Web.common AllCount = getallin.Count(); if (AllCount > 0) { - MCount = getallin.Where(x => x.PostType == Const.PostType_1).Count(); + MCount = getallin.Count(x => x.PostType == Const.PostType_1); } div_xcrs.InnerHtml = AllCount.ToString(); @@ -888,20 +892,13 @@ namespace FineUIPro.Web.common { await Task.Run(() => { - var list = new List(); - if (pids == null) - { - list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null)).ToList(); - } - else - { - list = Funs.DB.Base_Project.Where(x => pids.Contains(x.ProjectId)).ToList(); - } + var allperson = + APIPageDataService.getPersonNum(allProjects.Select(x => x.ProjectId).ToList(), DateTime.Now); - foreach (var item in list) + foreach (var item in allProjects) { ProjectPersonMc += "'" + item.ShortName + "',"; - ProjectPersonCount += "'" + APIPageDataService.getPersonNum(item.ProjectId, DateTime.Now).Count() + "',"; + ProjectPersonCount += "'" + allperson.Count(x=>x.ProjectId==item.ProjectId) + "',"; } ProjectPersonMc = ProjectPersonMc.TrimEnd(','); ProjectPersonCount = ProjectPersonCount.TrimEnd(','); @@ -914,21 +911,14 @@ namespace FineUIPro.Web.common protected string ProjectMc; protected async Task GetJdAsync() { - var list = new List(); - if (pids == null) + var list = allProjects; + if (list.Any()) { - list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null)).ToList(); - } - else - { - list = Funs.DB.Base_Project.Where(x => pids.Contains(x.ProjectId)).ToList(); - } - if (list.Count > 0) - { - var progressCompletions = from x in Funs.DB.JDGL_ProgressCompletion select x; + var progressCompletions = from x in Funs.DB.JDGL_ProgressCompletion select x ; foreach (var item in list) { var pCs = progressCompletions.Where(x => x.ProjectId == item.ProjectId).ToList(); + ProjectJd += "'" + pCs.Sum(x => x.RealNum ?? 0).ToString("0.##") + "',"; ProjectMc += "'" + item.ShortName + "',"; } @@ -1001,15 +991,7 @@ namespace FineUIPro.Web.common protected string sbclHead = "
项目
采购量
到货量
已到货百分比
"; private async Task GetCldhAsync() { - var list = new List(); - if (pids == null) - { - list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null)).ToList(); - } - else - { - list = Funs.DB.Base_Project.Where(x => pids.Contains(x.ProjectId)).ToList(); - } + var list = allProjects; var PipelinList = Funs.DB.CLGL_PipelineMaterialSumList.Where(x => x.Type == "M"); var SbclList = Funs.DB.CLGL_ContractListSum.Where(x => x.C1 == "设备"); foreach (var item in list) @@ -1025,7 +1007,7 @@ namespace FineUIPro.Web.common gdclHtml += "
" + pname + "
"; var pid = BLL.ProjectService.GetCLProjectCodeByProjectId(item.ProjectId).ToString(); //管子 - var num1 = PipelinList.Where(x => x.ProjectId == pid && x.C1 == "管子").FirstOrDefault(); + var num1 = PipelinList.FirstOrDefault(x => x.ProjectId == pid && x.C1 == "管子"); if (num1 != null) { gdclHtml += "
" + (num1.C7 == "" ? "0%" : num1.C7) + "
"; @@ -1128,23 +1110,38 @@ namespace FineUIPro.Web.common /// private int GetNearMissNum() { + string cacheKey = "NearMissNum_" + string.Join("_",pids); + var memoryCache = MemoryCache.Default; + if (memoryCache.Get(cacheKey) != null) + { + return (int)memoryCache.Get(cacheKey); + } + int result = 0; if (pids == null) { - var result = (from x in Funs.DB.Accident_AccidentPersonRecord + result = (from x in Funs.DB.Accident_AccidentPersonRecord join y in Funs.DB.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId where x.IsAttempt == "1" && x.CompileDate > Const.DtmarkTime select x).Count(); - return result; } else { - var result = (from x in Funs.DB.Accident_AccidentPersonRecord + result = (from x in Funs.DB.Accident_AccidentPersonRecord join y in Funs.DB.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId where x.IsAttempt == "1" && x.CompileDate > Const.DtmarkTime && pids.Contains(x.ProjectId) - select x).Count(); - return result; + select x).Count(); } + + var policy = new CacheItemPolicy + { + AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(Const.CacheMinutes), + }; + memoryCache.Set(cacheKey, result, policy); + + return result; + + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/packages.config b/SGGL/FineUIPro.Web/packages.config index 2469db08..e17e423b 100644 --- a/SGGL/FineUIPro.Web/packages.config +++ b/SGGL/FineUIPro.Web/packages.config @@ -9,6 +9,7 @@ + diff --git a/SGGL/Model/HSSE/PageDataPersonInOutItem.cs b/SGGL/Model/HSSE/PageDataPersonInOutItem.cs index d5f0f7b0..ccab5a81 100644 --- a/SGGL/Model/HSSE/PageDataPersonInOutItem.cs +++ b/SGGL/Model/HSSE/PageDataPersonInOutItem.cs @@ -12,7 +12,11 @@ namespace Model get; set; } - + public string ProjectId + { + get; + set; + } public DateTime? ChangeTime { get;