using BLL; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; using System.Web.UI; namespace FineUIPro.Web.common { public partial class main : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ////项目信息 var getProjectLists = getProjectInfo(); ////合同 getHTContract(); ///劳务统计 getSitePerson(); /// 获取安全人工时 getPersonWorkTime(); /// 获取质量问题 getCQMSProblem(); /// 获取施工产值 getOutputValue(getProjectLists); ///危大工程 getSolutionLargerHazard(); } } #region 项目信息 protected string ProjectInfo; /// /// 项目信息 /// private List getProjectInfo() { ProjectInfo = "[]"; var getProjects = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null)); this.divProjectNum.InnerHtml = getProjects.Count().ToString(); var getProjectMap = getProjects.Where(x => x.MapCoordinates.Length > 0); if (getProjectMap.Count() > 0) { List list = new List(); foreach (var item in getProjectMap) { Model.SingleSerie newS = new Model.SingleSerie { name = "【项目名称】:" + item.ProjectName //+ "
【项目状态】:" + GetProjectState(item.ProjectId) + "
【开工时间】:" + string.Format("{0:yyyy-MM-dd}", item.StartDate) + "
【竣工时间】:" + string.Format("{0:yyyy-MM-dd}", item.EndDate) + "
【项目地址】:" + item.ProjectAddress, url = "indexProject.aspx?projectId=" + item.ProjectId, cityname = "中国" }; var strMap = Funs.GetStrListByStr(item.MapCoordinates, ','); if (strMap.Count > 1) { newS.value = new[] { Funs.GetNewDecimalOrZero(strMap[0]), Funs.GetNewDecimalOrZero(strMap[1]) }; list.Add(newS); } } ProjectInfo = JsonConvert.SerializeObject(list); } return getProjects.ToList(); } #endregion #region 劳务统计 protected double OnDutyRate; /// /// 劳务统计 /// private void getSitePerson() { OnDutyRate = 0; //int AllCount = 0; //int MCount = 0; var getallin = APIPageDataService.getPersonInOutAllNum(DateTime.Now.AddDays(-1)); //AllCount = getallin.Count(); //if (AllCount > 0) //{ // MCount = getallin.Where(x => x.PostType == Const.PostType_1).Count(); // /////管理人数 // this.divGLPerson.InnerHtml = MCount.ToString(); // /////作业人数 // this.divZYPerson.InnerHtml = (AllCount - MCount).ToString(); // int getPersonCount=Funs.DB.SitePerson_Person.Where(x => x.IsUsed == 1 && x.CardNo.Length > 1 // && x.InTime <= DateTime.Now && !x.OutTime.HasValue && x.AuditorDate.HasValue).Count(); // if (getPersonCount > 0) // { // OnDutyRate = Math.Round(AllCount * 1.0 / getPersonCount * 100, 1); // } //} //string sql = @"select c.ConstText,b.PostType,count( *) num from SitePerson_Person a left join Base_WorkPost b on a.WorkPostId=b.WorkPostId // LEFT JOIN Sys_Const AS c ON c.ConstValue = b.PostType and c.GroupId = 'PostType' where IsUsed =1 and InTime<='" + DateTime.Now.ToString("yyyy-MM-dd") + "' and (OutTime is null or OutTime>'" + DateTime.Now.ToString("yyyy-MM-dd") + @"' ) // and AuditorDate is not null // group by c.ConstText,b.PostType "; //List listStr = new List(); //SqlParameter[] parameter = listStr.ToArray(); //DataTable tb = SQLHelper.GetDataTableRunText(sql, parameter); //int allcount = 0; //int mcount = 0; //if (tb != null) //{ // foreach (DataRow row in tb.Rows) // { // allcount += int.Parse(row["num"].ToString()); // if (!string.IsNullOrEmpty(row["ConstText"].ToString()) && row["ConstText"].ToString().Contains("管理")) // { // mcount += int.Parse(row["num"].ToString()); // } // } //} //this.divALLPerson.InnerHtml = allcount.ToString(); var ProjectTotal1 = (from x in Funs.DB.HSSE_MonthReportItem join y in Funs.DB.HSSE_MonthReport on x.MonthReportId equals y.MonthReportId //where ("成达公司HSE管理人数" == x.ReportItem || "分包商HSE管理人数" == x.ReportItem) && y.Years == DateTime.Now.Year where ("成达公司现场人数" == x.ReportItem) && y.Years == DateTime.Now.Year select x.YearTotal).Sum(); if (ProjectTotal1.HasValue) { this.divGLPerson.InnerHtml = ProjectTotal1.Value.ToString(); } var ProjectTotal2 = (from x in Funs.DB.HSSE_MonthReportItem join y in Funs.DB.HSSE_MonthReport on x.MonthReportId equals y.MonthReportId //where ("成达公司现场人数" == x.ReportItem || "分包商现场人数" == x.ReportItem) && y.Years == DateTime.Now.Year where ("分包商现场人数" == x.ReportItem) && y.Years == DateTime.Now.Year select x.YearTotal).Sum(); //if (ProjectTotal2.HasValue && ProjectTotal1.HasValue) //{ // this.divZYPerson.InnerHtml = (ProjectTotal2.Value - ProjectTotal1.Value).ToString(); //} //else if (ProjectTotal2.HasValue) { this.divZYPerson.InnerHtml = ProjectTotal2.Value.ToString(); } // OnDutyRate = Math.Round(getallin.Count() * 1.0 / allcount * 100, 1); } #endregion #region 安全人工时 /// /// 获取安全人工时 /// private void getPersonWorkTime() { //var getItem = (from x in Funs.DB.DigData_HSEDataCollectItem // join y in Funs.DB.DigData_HSEDataCollect on x.HSEDataCollectId equals y.HSEDataCollectId // where y.Year == DateTime.Now.Year && x.SortIndex == 7 // select x).FirstOrDefault(); //if (getItem != null) //{ // int wHours = Funs.GetNewIntOrZero(getItem.Month1) + Funs.GetNewIntOrZero(getItem.Month2) // + Funs.GetNewIntOrZero(getItem.Month3) + Funs.GetNewIntOrZero(getItem.Month4) // + Funs.GetNewIntOrZero(getItem.Month5) + Funs.GetNewIntOrZero(getItem.Month6) // + Funs.GetNewIntOrZero(getItem.Month7) + Funs.GetNewIntOrZero(getItem.Month8) // + Funs.GetNewIntOrZero(getItem.Month9) + Funs.GetNewIntOrZero(getItem.Month10) // + Funs.GetNewIntOrZero(getItem.Month11) + Funs.GetNewIntOrZero(getItem.Month12); // if (wHours > 0) // { // this.divSafeWorkTime.InnerHtml = wHours.ToString("0000000000"); // } //} this.divSafeWorkTime.InnerHtml = "0000000000"; var ProjectTotal = (from x in Funs.DB.HSSE_MonthReportItem join y in Funs.DB.HSSE_MonthReport on x.MonthReportId equals y.MonthReportId where "安全生产人工时数" == x.ReportItem && y.Years == DateTime.Now.Year select x.YearTotal).Sum(); if (ProjectTotal.HasValue) { this.divSafeWorkTime.InnerHtml = ProjectTotal.Value.ToString("0000000000"); ; } else { this.divSafeWorkTime.InnerHtml = "0000000000"; } ///整改单 //var getRectify =from x in Funs.DB.Check_RectifyNotices // where x.States !=Const.State_0 && x.States != null && x.ProjectId != null // select x; //int allcout = getRectify.Count(); //if (allcout > 0) //{ // this.divAllRectify.InnerHtml = allcout.ToString(); // int ccount = getRectify.Where(x => x.States == "5").Count(); // this.divRectifyRate.InnerHtml = Math.Round(ccount * 1.0 / allcout * 100, 1).ToString(); //} DateTime time = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")); var getRectify = from x in Funs.DB.View_Hazard_HazardRegister where x.States != Const.State_0 && x.States != Const.State_R && x.States != null && x.RegisterDate >= time group x by x.States into g select new { g.Key, Count = g.Count() }; var allcout = getRectify.ToList(); if (allcout.Count > 0) { int total = 0; int finish = 0; foreach (var item in allcout) { total += item.Count; if (item.Key.ToString() == "3") { finish += item.Count; } } this.divAllRectify.InnerHtml = total.ToString(); //this.divUCRectify.InnerHtml = (total - finish).ToString(); this.divRectifyRate.InnerHtml = Math.Round(finish * 1.0 / total * 100, 1).ToString(); } } #endregion #region 获取合同 private void getHTContract() { var ConstructionNum = Funs.DB.Base_Project.Sum(x => x.ConstructionNum); var ConstructionMoney = Funs.DB.Base_Project.Sum(x => x.ConstructionMoney); //var getC = (from x in Funs.DB.PHTGL_ContractReview // join y in Funs.DB.PHTGL_Approve on x.ContractReviewId equals y.ContractId // join z in Funs.DB.PHTGL_Contract on x.ContractId equals z.ContractId // where x.State == 5 && Convert.ToDateTime(y.ApproveDate).Year == DateTime.Now.Year // select new { x.ContractReviewId, z.ContractAmount }).Distinct(); this.divHTNum.InnerHtml = "0"; if (ConstructionNum.HasValue) { this.divHTNum.InnerHtml = ConstructionNum.Value.ToString(); } decimal d = 0; //foreach (var item in getC) //{ // d += item.ContractAmount ?? 0; //} if (ConstructionMoney.HasValue) { this.divHTAmount.InnerHtml = ConstructionMoney.Value.ToString("0.####"); } else { this.divHTAmount.InnerHtml = Math.Round((d / 100000000), 4).ToString(); } } #endregion #region 获取质量问题 protected double CRectificationRate; protected double CQualifiedRate; /// /// 获取质量问题 /// private void getCQMSProblem() { DateTime time = DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")); ///整改率 CRectificationRate = 0; ///合格率 CQualifiedRate = 0; var getJointCheckDetail = from x in Funs.DB.Check_JointCheckDetail where x.CreateDate >= time select x; var getCheckControl = from x in Funs.DB.Check_CheckControl where x.CheckDate >= time select x; ///问题总数 int AllCount = getJointCheckDetail.Count() + getCheckControl.Count(); this.divCQMSAllNum.InnerHtml = AllCount.ToString(); if (AllCount > 0) { ///问题完成数 var getJOk = getJointCheckDetail.Where(x => x.State == "6").Count(); var getCOk = getCheckControl.Where(x => x.State == "7").Count(); int CCount = getJOk + getCOk; if (CCount > 0) { CRectificationRate = Math.Round(CCount * 1.0 / AllCount * 100, 1); } } var inspectionManagements = from x in Funs.DB.View_CQMS_InspectionManagementDetail where x.CheckDate >= time select x; if (inspectionManagements.Count() > 0) { int okInspectionManagements = inspectionManagements.Where(x => x.IsOnceQualified == true).Count(); if (okInspectionManagements > 0) { CQualifiedRate = Math.Round(okInspectionManagements * 1.0 / inspectionManagements.Count() * 100, 1); } } //var getSpotCheckDetail = from x in Funs.DB.Check_SpotCheckDetail // join y in Funs.DB.WBS_ControlItemAndCycle on x.ControlItemAndCycleId equals y.ControlItemAndCycleId // where y.ControlPoint != "C" && y.ControlPoint != "CR" && x.IsOK != null // select x; //int AllSpotCount = getSpotCheckDetail.Count(); //if (AllSpotCount > 0) //{ // int okSpotCount = getSpotCheckDetail.Where(x => x.IsOK == true).Count(); // if (okSpotCount > 0) // { // CQualifiedRate = Math.Round(okSpotCount * 1.0 / AllSpotCount * 100, 1); // } //} } #endregion /// /// 进度 /// protected string projectJDHtml; /// /// 月施工计划产值 /// protected string MonthPlanOutPutValue; /// /// 月施工实际产值 /// protected string MonthActualOutPutValue; /// /// 获取当年施工产值 /// private void getOutputValue(List getProjectLists) { MonthPlanOutPutValue = "[0,0,0,0,0,0,0,0,0,0,0,0]"; MonthActualOutPutValue = "[0,0,0,0,0,0,0,0,0,0,0,0]"; projectJDHtml = ""; DateTime date = DateTime.Now.AddYears(-1); var getOutputValue = Funs.DB.Sys_OutputValueProject.Where(x => x.Year > date.Year || (x.Year == date.Year && x.Month >= date.Month)); if (getOutputValue.Count() > 0) { this.divYearPlanOutPutValue.InnerHtml = (getOutputValue.Sum(x => x.PlanOutPutValue ?? 0)).ToString(); this.divYearActualOutPutValue.InnerHtml = (getOutputValue.Sum(x => x.ActualOutPutValue ?? 0)).ToString(); } decimal[] monthValues = new decimal[12]; decimal[] monthValues2 = new decimal[12]; // var getOutYearValues = Funs.DB.Sys_OutputValueProject.Where(x => x.Year == DateTime.Now.Year); if (getOutputValue.Count() > 0) { for (int i = 0; i < 12; i++) { monthValues[i] = 0; monthValues2[i] = 0; var getOutMI = getOutputValue.Where(x => x.Month == i); if (getOutMI.Count() > 0) { monthValues[i] = getOutMI.Sum(x => x.PlanOutPutValue ?? 0); monthValues2[i] = getOutMI.Sum(x => x.ActualOutPutValue ?? 0); } } MonthPlanOutPutValue = JsonConvert.SerializeObject(monthValues); MonthActualOutPutValue = JsonConvert.SerializeObject(monthValues2); if (getProjectLists.Count() > 0) { foreach (var item in getProjectLists) { string shortName = item.ShortName; string jdRate = "0%"; var getOutProjectV = getOutputValue.Where(x => x.ProjectId == item.ProjectId); if (getOutProjectV.Count() > 0) { decimal sumPlan = getOutProjectV.Sum(x => x.PlanOutPutValue ?? 0); if (sumPlan > 0) { decimal sumActual = getOutProjectV.Sum(x => x.ActualOutPutValue ?? 0); jdRate = Math.Round(sumActual * 100 / sumPlan, 1).ToString() + "%"; } } projectJDHtml += @"
【在建】" + shortName + "
"; } } } else { if (getProjectLists.Count() > 0) { foreach (var item in getProjectLists) { string shortName = item.ShortName; string jdRate = "0%"; projectJDHtml += @"
【在建】" + shortName + "
"; } } } } private void getSolutionLargerHazard() { var num1 = Funs.DB.Solution_LargerHazard.Where(x => x.States == "2").Count(); var num2 = Funs.DB.Solution_LargerHazard.Where(x => x.States == "3").Count(); LargerHazard1.InnerText = "" + (num1 + num2); LargerHazard2.InnerText = "" + (num1); LargerHazard3.InnerText = "" + (num2); } } }