using BLL;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
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);
}
}
#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);
}
}
}
#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");
}
}
///整改单
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();
}
}
#endregion
#region 获取合同
private void getHTContract()
{
//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";
decimal d = 0;
//foreach (var item in getC)
//{
// d += item.ContractAmount ?? 0;
//}
this.divHTAmount.InnerHtml = Math.Round((d / 100000000), 4).ToString();
}
#endregion
#region 获取质量问题
protected double CRectificationRate;
protected double CQualifiedRate;
///
/// 获取质量问题
///
private void getCQMSProblem()
{
///整改率
CRectificationRate = 0;
///合格率
CQualifiedRate = 0;
var getJointCheckDetail = from x in Funs.DB.Check_JointCheckDetail
select x;
var getCheckControl = from x in Funs.DB.Check_CheckControl 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 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 + "
";
}
}
}
}
}
}