CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/common/main_new.aspx.cs

932 lines
39 KiB
C#
Raw Normal View History

2023-08-24 10:00:59 +08:00
using BLL;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.common
{
public partial class main_new : PageBase
{
List<Model.Base_Project> allProjects;
public static List<Model.Solution_LargerHazard> LargerHazard = new List<Model.Solution_LargerHazard>();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Model.SGGLDB db = Funs.DB;
//未遂事故
var wsAccidentList1 = from x in db.Accident_AccidentPersonRecord
join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId
where y.AccidentTypeName.Contains("未遂")
select x;
var wsAccidentList2 = from x in db.Accident_AccidentReportOther
join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue
where y.ConstText.Contains("未遂")
select x;
2023-10-31 18:03:55 +08:00
this.divWS.InnerHtml = GetNearMissNum().ToString();
2023-08-24 10:00:59 +08:00
//安全人工时
int wHours = db.SitePerson_PersonInOutNumber.Max(x => x.WorkHours) ?? 0;
2023-10-31 18:03:55 +08:00
this.divSafeWorkTime.InnerHtml = CountAqrgs().ToString().Split('.')[0];
2023-08-24 10:00:59 +08:00
//本月安全人工时
2023-10-31 18:03:55 +08:00
//int wHoursMonth = 0;
//DateTime? sDate = Funs.GetNewDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString());
//var dayReports = getMonthReportsByCompany(sDate);
//if (dayReports.Count > 0)
//{
// wHoursMonth = Convert.ToInt32(dayReports[0].DayWorkTime);
//}
DateTime d1 = getStartMonth();
DateTime d2 = getEndMonth();
2024-04-10 15:43:48 +08:00
this.divSafeWorkTimeMonth.InnerHtml = CountAqrgs(d1, d2).ToString().Split('.')[0];
2023-08-24 10:00:59 +08:00
2023-08-28 18:26:38 +08:00
//int wHoursMonth = db.SitePerson_PersonInOutNumber.Where(x => x.InOutDate > DateTime.Now.AddDays(-Convert.ToInt32(DateTime.Now.Date.Day)))
// .Max(x => x.WorkHours) ?? 0;
//this.divSafeWorkTimeMonth.InnerHtml = wHoursMonth.ToString();
2023-08-24 10:00:59 +08:00
//安全培训累计人员
2024-04-10 15:43:48 +08:00
var getTrainRecord = db.EduTrain_TrainRecord.Sum(x => x.TrainPersonNum) ?? 0;
2023-11-03 16:01:12 +08:00
//修改:增加博晟教育中的人数
var boShengCount = db.Bo_Sheng_TrainPerson.Where(x => (x.DeleteTag == "False" || x.DeleteTag == null)).ToList().Count;
this.divSafePersonNum.InnerHtml = (getTrainRecord + boShengCount).ToString();
2023-08-24 10:00:59 +08:00
//安全管理人员
var allSum = from x in Funs.DB.SitePerson_Person
2024-04-25 17:06:47 +08:00
where x.IsUsed == true && x.InTime < DateTime.Now && (x.OutTime == null || x.OutTime > DateTime.Now)
2023-08-24 10:00:59 +08:00
select x;
var glAllPerson = from x in allSum
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
2024-04-24 11:03:32 +08:00
//where (y.PostType == "1" || y.PostType == "4") //一般管理岗位和特种管理人员
where y.IsHsse == true
2023-08-24 10:00:59 +08:00
select x;
this.divSafeManagePersonNum.InnerText = glAllPerson.Count().ToString();
//质量管理人员
int CqmsManageNum = (from x in Funs.DB.Person_CompanyBranchPerson
2024-04-10 15:43:48 +08:00
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where x.IsOnJob == true && y.IsCQMS == true
select x).Count() +
(from x in Funs.DB.SitePerson_Person
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where x.IsUsed == true && y.IsCQMS == true
select x).Count();
2023-08-24 10:00:59 +08:00
this.divCqmsManageNum.InnerText = CqmsManageNum.ToString();
//质量培训人员
DateTime date = DateTime.Now.AddDays(-1);
int CqmsPxNum = (from x in Funs.DB.Comprehensive_InspectionPerson
2024-04-10 15:43:48 +08:00
where x.IsTrain == true
select x).Count();
2023-08-24 10:00:59 +08:00
divCqmsPxNum.InnerText = CqmsPxNum.ToString();
//在建项目
allProjects = ProjectService.GetAllProjectDropDownList();
int acount = allProjects.Count();
int pcount1 = 0;
int pcount2 = 0;
int pcount3 = 0;
2024-04-10 15:43:48 +08:00
if (acount > 0)
2023-08-24 10:00:59 +08:00
{
2024-04-10 15:43:48 +08:00
pcount1 = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).Count();
pcount2 = (from x in Funs.DB.SitePerson_Person where x.IsUsed == true select x).Count();
2023-08-24 10:00:59 +08:00
pcount3 = Count3();
}
2024-06-14 16:52:37 +08:00
div_zjxmCount.InnerHtml = pcount1.ToString() + "<div class=\"th\">个</div>";
div_cjrsCount.InnerHtml = pcount2.ToString() + "<div class=\"th\">人</div>";
div_wdgcCount.InnerHtml = pcount3.ToString() + "<div class=\"th\">个</div>";
2023-08-24 10:00:59 +08:00
2024-04-18 15:04:08 +08:00
//质量问题
getZlwt();
//质量共检
getZlgj();
//焊接
getHj();
//关键事项
getGjsx();
2023-08-24 10:00:59 +08:00
//人员信息
getSitePerson();
//项目人员图表
getProjectSitePerson();
//进度
getJd();
//整改数据
getZgsj();
//材料到货表格
getCldh();
}
}
2023-08-28 18:26:38 +08:00
#region
2023-10-31 18:03:55 +08:00
/// <summary>
/// 获取当前月的月末日期
/// </summary>
/// <returns></returns>
public static DateTime getEndMonth()
{
int span = Convert.ToInt32(System.DateTime.Now.Day);
System.DateTime dateEnd = System.DateTime.Now.AddMonths(1).AddDays(-span);
return dateEnd;
}
/// <summary>
/// 获取当前月初日期
/// </summary>
/// <returns></returns>
public static DateTime getStartMonth()
{
int span = Convert.ToInt32(System.DateTime.Now.Day);
span = span - 1;
System.DateTime dateStart = System.DateTime.Now.AddDays(-span);
return dateStart;
}
//安全人工时(穿透)
/// <summary>
/// 安全工时数
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected decimal CountAqrgs(DateTime? d1 = null, DateTime? d2 = null)
{
decimal cout1 = 0;
2024-04-10 15:43:48 +08:00
var datetime1 = d1;
var datetime2 = d2;
var getAllPersonInOutList = from x in Funs.DB.SitePerson_PersonInOutNumber
2023-10-31 18:03:55 +08:00
2024-04-10 15:43:48 +08:00
select x;
if (getAllPersonInOutList.Count() > 0)
{
2023-10-31 18:03:55 +08:00
if (datetime1.HasValue)
{
2024-04-10 15:43:48 +08:00
getAllPersonInOutList = getAllPersonInOutList.Where(x => x.InOutDate >= datetime1);
2023-10-31 18:03:55 +08:00
}
if (datetime2.HasValue)
{
2024-04-10 15:43:48 +08:00
getAllPersonInOutList = getAllPersonInOutList.Where(x => x.InOutDate <= datetime2);
2023-10-31 18:03:55 +08:00
}
2024-04-10 15:43:48 +08:00
if (getAllPersonInOutList.Count() > 0)
2023-10-31 18:03:55 +08:00
{
2024-04-10 15:43:48 +08:00
cout1 = getAllPersonInOutList.Sum(x => (long)x.WorkHours);
2023-10-31 18:03:55 +08:00
}
2024-04-10 15:43:48 +08:00
}
var getD1 = from x in Funs.DB.Accident_AccidentHandle
join y in Funs.DB.Base_Project on x.ProjectId equals y.ProjectId
where y.ProjectState == Const.ProjectState_1
select x;
var getD2 = from x in Funs.DB.Accident_AccidentReport
join y in Funs.DB.Base_Project on x.ProjectId equals y.ProjectId
where y.ProjectState == Const.ProjectState_1
select x;
if (datetime1.HasValue)
{
getD1 = getD1.Where(x => x.AccidentDate >= datetime1);
getD2 = getD2.Where(x => x.CompileDate >= datetime1);
}
if (datetime2.HasValue)
{
getD1 = getD1.Where(x => x.AccidentDate <= datetime2);
getD2 = getD2.Where(x => x.CompileDate <= datetime2);
}
if (getD1.Count() > 0)
{
cout1 = cout1 - getD1.Sum(x => x.WorkHoursLoss ?? 0);
}
if (getD2.Count() > 0)
{
cout1 = cout1 - getD2.Sum(x => x.WorkingHoursLoss ?? 0);
}
2023-10-31 18:03:55 +08:00
return cout1;
}
2023-08-28 18:26:38 +08:00
/// <summary>
/// 获取出入记录人工时-月报(项目级别)
/// </summary>
/// <returns></returns>
public static List<Model.SitePerson_MonthReport> getMonthReportsByCompany(DateTime? sDate)
{
Model.SGGLDB db = Funs.DB;
List<Model.SitePerson_MonthReport> reports = new List<Model.SitePerson_MonthReport>();
var getAllPersonInOutList = from x in db.SitePerson_PersonInOutNumber
2024-04-10 15:43:48 +08:00
2023-08-28 18:26:38 +08:00
select x;
if (getAllPersonInOutList.Count() > 0)
{
var getInMonths = (from x in getAllPersonInOutList select new { x.InOutDate.Year, x.InOutDate.Month }).Distinct();
if (sDate.HasValue)
{
getInMonths = getInMonths.Where(x => x.Year == sDate.Value.Year && x.Month == sDate.Value.Month);
}
foreach (var item in getInMonths)
{
DateTime compileDate = Funs.GetNewDateTimeOrNow(item.Year.ToString() + "-" + item.Month.ToString());
var getNow = getAllPersonInOutList.Where(x => x.InOutDate.Year == compileDate.Year && x.InOutDate.Month == compileDate.Month).Max(x => x.WorkHours);
if (getNow.HasValue)
{
Model.SitePerson_MonthReport reportItem = new Model.SitePerson_MonthReport
{
MonthReportId = SQLHelper.GetNewID(),
2024-04-10 15:43:48 +08:00
2023-08-28 18:26:38 +08:00
CompileDate = Funs.GetNewDateTime(item.Year.ToString() + "-" + item.Month.ToString()),
TotalPersonWorkTime = getNow,
};
DateTime upDate = compileDate.AddMonths(-1);
var getMax = getAllPersonInOutList.Where(x => x.InOutDate.Year == upDate.Year && x.InOutDate.Month == upDate.Month).Max(x => x.WorkHours) ?? 0;
reportItem.DayWorkTime = (getNow ?? 0) - getMax;
reports.Add(reportItem);
}
}
}
return reports;
}
#endregion
2023-08-24 10:00:59 +08:00
#region
protected string Project
{
get
{
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);
string name = string.Empty;
if (project1s.Count() > 0)
{
foreach (var project1 in project1s)
{
string state = string.Empty;
var c = consts.FirstOrDefault(x => x.ConstValue == project1.ProjectState2);
if (c != null)
{
state = c.ConstText;
}
name += "<li style=\"border:1px solid white; padding:3px;\" class=\"c-item disabled swiper-slide\"><div class=\"tit tit-read\"><div class=\"flex\" ><div class=\"tit-t flex1\">" + project1.ProjectName + "</div><div class=\"tit-v\">" + state + "</div></div></div></li>";
}
}
var provinceDic = from x in Funs.DB.RealName_City select x;
List<double> listdata = new List<double>();
List<string> jd = new List<string>();
List<string> sg = new List<string>();
List<string> time = new List<string>();
List<string> ht = new List<string>();
List<string> convert = new List<string>();
List<string> loc = new List<string>();
listdata.Add(allProjects.Count());
jd.Add("");
sg.Add("");
time.Add("");
ht.Add("");
List<string> provinces = new List<string>();
provinces.Add("上海");
provinces.Add("河北");
provinces.Add("山西");
provinces.Add("内蒙古");
provinces.Add("辽宁");
provinces.Add("吉林");
provinces.Add("黑龙江");
provinces.Add("江苏");
provinces.Add("浙江");
provinces.Add("安徽");
provinces.Add("福建");
provinces.Add("江西");
provinces.Add("山东");
provinces.Add("河南");
provinces.Add("湖北");
provinces.Add("湖南");
provinces.Add("广东");
provinces.Add("广西");
provinces.Add("海南");
provinces.Add("四川");
provinces.Add("贵州");
provinces.Add("云南");
provinces.Add("西藏");
provinces.Add("陕西");
provinces.Add("甘肃");
provinces.Add("青海");
provinces.Add("宁夏");
provinces.Add("新疆");
provinces.Add("北京");
provinces.Add("天津");
provinces.Add("重庆");
provinces.Add("香港");
provinces.Add("澳门");
provinces.Add("台湾");
Model.SGGLDB db = Funs.DB;
var accidentList1 = from x in db.Accident_AccidentPersonRecord
join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId
where y.AccidentTypeName.Contains("未遂")
select x;
var accidentList2 = from x in db.Accident_AccidentReportOther
join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue
where y.ConstText.Contains("未遂")
select x;
foreach (var province in provinces)
{
int accidentNum = 0;
DateTime date = DateTime.Now;
decimal money1 = 0, money2 = 0;
var projects = from x in allProjects
join y in provinceDic on x.Province equals y.ProvinceCode
where y.CnShortName == province
select x;
listdata.Add(projects.Count());
decimal progress = 0;
if (projects.Count() > 0)
{
convert.Add(province);
foreach (var item in projects)
{
//未遂事故
var accidentListProject1 = accidentList1.Where(x => x.ProjectId == item.ProjectId);
var accidentListProject2 = accidentList2.Where(x => x.ProjectId == item.ProjectId);
accidentNum = accidentListProject1.Count() + accidentListProject2.Count();
//时间
if (item.StartDate != null && item.StartDate < date)
{
date = Convert.ToDateTime(item.StartDate);
}
//合同额
if (item.ConstructionMoney != null)
{
money1 += item.ConstructionMoney.Value;
}
if (item.Progress != null)
{
progress = item.Progress.Value;
}
}
jd.Add("进度:" + progress.ToString("0.##") + "%");
sg.Add("未遂事故:" + accidentNum.ToString());
time.Add("时间:" + string.Format("{0:yyyy-MM-dd}", date));
ht.Add("合同额(" + money1.ToString("0.##") + "W收款额" + money2 + "W");
}
else
{
jd.Add("");
sg.Add("");
time.Add("");
ht.Add("");
}
}
foreach (var item in allProjects)
{
decimal jdNum = 0;
string mapStr = "";
int accidentNum = 0;
DateTime date = DateTime.Now;
decimal money1 = 0, money2 = 0;
string endDate = string.Empty;
int timeSpan = 0;
if (!string.IsNullOrEmpty(item.MapCoordinates))
{
mapStr = item.MapCoordinates + ",";
//未遂事故
var accidentListProject1 = accidentList1.Where(x => x.ProjectId == item.ProjectId);
var accidentListProject2 = accidentList2.Where(x => x.ProjectId == item.ProjectId);
accidentNum = accidentListProject1.Count() + accidentListProject2.Count();
//时间
if (item.StartDate != null && item.StartDate < date)
{
date = Convert.ToDateTime(item.StartDate);
}
if (item.EndDate != null)
{
endDate = string.Format("{0:yyyy-MM-dd}", item.EndDate);
}
if (item.StartDate != null && item.EndDate != null)
{
TimeSpan t = (TimeSpan)(item.EndDate - item.StartDate);
timeSpan = t.Days / 30;
}
//合同额
if (item.ConstructionMoney != null)
{
money1 += item.ConstructionMoney.Value;
}
if (item.Progress != null)
{
jdNum = item.Progress.Value;
}
mapStr += string.Format("{0:yyyy-MM-dd}", date) + "~" + endDate + ",";
if (timeSpan > 0)
{
mapStr += timeSpan.ToString() + "个月,";
}
else
{
mapStr += timeSpan.ToString() + ",";
}
//mapStr += accidentNum.ToString() + ",";
mapStr += jdNum.ToString("0.##") + "%,";
mapStr += money1.ToString("0.##") + ",";
mapStr += money2 + ",";
mapStr += item.ShortName + ",";
2023-10-31 18:03:55 +08:00
//修改日期 2023-10-30 10:43:57
//内容:项目名称、开工日期、完工日期、剩余天数、进度
2024-04-10 15:43:48 +08:00
mapStr += item.ProjectId + ",";
2023-10-31 18:03:55 +08:00
mapStr += string.Format("{0:yyyy-MM-dd}", item.StartDate) + ",";
if (string.IsNullOrEmpty(item.EndDate.ToString()))
{
mapStr += ",";
}
2024-04-10 15:43:48 +08:00
else
{
2023-10-31 18:03:55 +08:00
//获取剩余天数
var residueDay = DateDiff(DateTime.Now, Convert.ToDateTime(item.EndDate)).ToString();
2024-04-10 15:43:48 +08:00
mapStr += string.Format("{0:yyyy-MM-dd}", item.EndDate) + "," + residueDay;
2023-10-31 18:03:55 +08:00
}
2024-04-10 15:43:48 +08:00
2023-10-31 18:03:55 +08:00
2023-08-24 10:00:59 +08:00
loc.Add(mapStr);
}
}
series.name = name;
series.data = listdata;
series.jd = jd;
series.sg = sg;
series.time = time;
series.ht = ht;
series.convert = convert;
series.loc = loc;
return JsonConvert.SerializeObject(series);
}
}
2024-06-14 16:52:37 +08:00
#endregion
#region
protected string Project2
{
get
{
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)
{
if (!string.IsNullOrEmpty(item.MapCoordinates))
{
string startDate = string.Empty;
string endDate = string.Empty;
string residueDay = string.Empty;
if (item.StartDate != null)
{
startDate = string.Format("{0:yyyy-MM-dd}", item.StartDate);
}
if (item.EndDate != null)
{
endDate = string.Format("{0:yyyy-MM-dd}", item.EndDate);
//获取剩余天数
residueDay = DateDiff(DateTime.Now, Convert.ToDateTime(item.EndDate)).ToString();
}
decimal jdNum = 0;
if (item.Progress != null)
{
jdNum = item.Progress.Value;
}
str += "{name: '" + item.ShortName + "', value: [" + item.MapCoordinates + ", { value:'" + item.ShortName + "',value2:'" + startDate + "',value3:'" + endDate + "',value4:'" + residueDay + "',value5:'" + jdNum.ToString("0.##") + "%'}]},";
}
}
if (!string.IsNullOrEmpty(str))
{
str = str.Substring(0, str.Length - 1);
}
return str;
}
}
2023-10-31 18:03:55 +08:00
/// <summary>
/// 计算时间的相差天数
/// </summary>
/// <param name="dateStart"></param>
/// <param name="dateEnd"></param>
/// <returns></returns>
private int DateDiff(DateTime dateStart, DateTime dateEnd)
{
DateTime start = Convert.ToDateTime(dateStart.ToShortDateString());
DateTime end = Convert.ToDateTime(dateEnd.ToShortDateString());
TimeSpan sp = end.Subtract(start);
return sp.Days;
}
2023-08-24 10:00:59 +08:00
#endregion
#region
/// <summary>
/// 在施危大工程数量
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
protected int Count3()
{
int cout1 = 0;
2024-06-14 16:52:37 +08:00
cout1 = Funs.DB.Solution_LargerHazard.Where(x => x.States == Const.State_2).Count();
2023-08-24 10:00:59 +08:00
return cout1;
}
#endregion
#region
//质量问题总计
protected string zlallNumber;
//质量问题合格数量
protected string zlfinishNumber;
//质量问题整改率
protected string zlzgl;
protected string zgzglDataValue;
2024-04-10 15:43:48 +08:00
protected void getZlwt()
{
2023-08-24 10:00:59 +08:00
zlallNumber = (from x in Funs.DB.Check_CheckControl
where x.CheckDate <= DateTime.Now
select x).Count().ToString();
var num2 = (from x in Funs.DB.Check_CheckControl
where x.CheckDate <= DateTime.Now && x.State == "7"
select x).Count();
zlfinishNumber = num2.ToString();
var num3 = (from x in Funs.DB.Check_CheckControl
2024-04-10 15:43:48 +08:00
where x.CheckDate <= DateTime.Now && x.State != "7"
select x).Count();
2023-08-24 10:00:59 +08:00
var zgl = String.Format("{0:N2}", 100.0 * num2 / (num2 + num3));
zlzgl = zgl.ToString();
zgzglDataValue = (100 - (100.0 * num2 / (num2 + num3))).ToString();
}
#endregion
#region
protected string zlgjallNumber;
protected string zlgjfinishNumber;
protected string zlgjzgl;
protected string zggjzglDataValue;
2024-04-10 15:43:48 +08:00
protected void getZlgj()
{
2024-04-11 14:11:04 +08:00
var num1 = (from x in Funs.DB.ProcessControl_InspectionManagement
select x).Count();
2023-08-24 10:00:59 +08:00
//Check_JointCheck
2024-04-11 14:11:04 +08:00
zlgjallNumber = num1.ToString();
2023-08-24 10:00:59 +08:00
2024-04-11 14:11:04 +08:00
var num2 = (from x in Funs.DB.ProcessControl_InspectionManagement
where x.IsOnceQualified == true
2023-08-24 10:00:59 +08:00
select x).Count();
zlgjfinishNumber = num2.ToString();
2024-04-11 14:11:04 +08:00
var zgl = String.Format("{0:N2}", 100.0 * num2 / num1);
2023-08-24 10:00:59 +08:00
zlgjzgl = zgl.ToString();
2024-04-11 14:11:04 +08:00
zggjzglDataValue = (100 - (100.0 * num2 / num1)).ToString();
2023-08-24 10:00:59 +08:00
}
#endregion
#region
2024-04-10 15:43:48 +08:00
protected string hjallNumber = "0";
protected string hjfinishNumber = "0";
protected string hjzgl = "0";
2023-08-24 10:00:59 +08:00
2024-04-10 15:43:48 +08:00
protected string hjDataValue = "0";
2023-08-24 10:00:59 +08:00
protected void getHj()
{
Model.SingleSerie series = new Model.SingleSerie();
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
List<double> listdata = new List<double>();
double result = 0;
Model.SGGLDB db = Funs.DB;
2024-04-24 11:03:32 +08:00
var ndtLists = from x in db.ProcessControl_NondestructiveTest_New where x.ProfessionalName == "工艺管道" select x;
2024-04-19 15:48:37 +08:00
decimal a = 0, b = 0;
2023-11-03 12:19:22 +08:00
if (ndtLists.Count() > 0)
2023-08-24 10:00:59 +08:00
{
2024-04-19 15:48:37 +08:00
foreach (var project in allProjects)
2023-11-03 12:19:22 +08:00
{
2024-04-19 15:48:37 +08:00
var ndt = (from x in ndtLists
where x.ProjectId == project.ProjectId
orderby x.CreateDate descending
select x).FirstOrDefault();
if (ndt != null)
{
if (ndt.TotalQuantity.HasValue)
{
a += Math.Floor(ndt.TotalQuantity.Value * Funs.GetNewDecimalOrZero(ndt.TotalRate) / 100);
b += ndt.TotalQuantity.Value;
}
}
2023-11-03 12:19:22 +08:00
}
2023-08-24 10:00:59 +08:00
}
2024-04-19 15:48:37 +08:00
if (b > 0)
{
result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 2));
2023-08-24 10:00:59 +08:00
2024-04-19 15:48:37 +08:00
hjallNumber = b.ToString();
hjfinishNumber = a.ToString();
hjzgl = result.ToString();
hjDataValue = (100 - result).ToString();
}
2024-04-10 15:43:48 +08:00
2024-04-19 15:48:37 +08:00
//if (ndtLists.Count() > 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();
// }
//}
2023-08-24 10:00:59 +08:00
}
#endregion
#region
//准点率
protected string gjsxZdl = "0";
protected void getGjsx()
{
//Check_JointCheck
var znum = (from x in Funs.DB.GJSX
2024-04-10 15:43:48 +08:00
select x).Count();
2023-08-24 10:00:59 +08:00
divGjsxzj.InnerHtml = znum.ToString();
//到期应完成
2024-04-10 15:43:48 +08:00
var dqnum = (from x in Funs.DB.GJSX
where x.CompleteDate <= DateTime.Now
2023-08-24 10:00:59 +08:00
select x).Count().ToString();
divGjsxdq.InnerHtml = dqnum;
//未准点完成
var wzdnum = (from x in Funs.DB.GJSX
where x.CompleteDate <= DateTime.Now
2024-04-10 15:43:48 +08:00
&& x.State != "0"
select x).Count().ToString();
2023-08-24 10:00:59 +08:00
divGjsxwzd.InnerHtml = wzdnum;
//准点率,已完成/总数*100
2024-04-10 15:43:48 +08:00
var ywcnum = (from x in Funs.DB.GJSX
where x.CompleteDate <= DateTime.Now
&& x.State == "0"
select x).Count();
gjsxZdl = Math.Round((100.0 * ywcnum / znum), 2).ToString();
2023-08-24 10:00:59 +08:00
}
#endregion
#region
private void getSitePerson()
{
int AllCount = 0;
int MCount = 0;
var getallin = APIPageDataService.getPersonNumByCompany(DateTime.Now);
AllCount = getallin.Count();
if (AllCount > 0)
{
MCount = getallin.Where(x => x.PostType == Const.PostType_1).Count();
}
2024-06-14 16:52:37 +08:00
////当前现场总人数
div_xcrs.InnerHtml = AllCount.ToString();
//作业人数
div_zyxcrs.InnerHtml = (AllCount - MCount).ToString();
//管理人数
div_glxcrs.InnerHtml = MCount.ToString();
2023-08-24 10:00:59 +08:00
}
#endregion
#region
protected string ProjectPersonCount;
protected string ProjectPersonMc;
private void getProjectSitePerson()
{
2023-10-31 18:03:55 +08:00
var list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null)).ToList();
2023-08-24 10:00:59 +08:00
foreach (var item in list)
{
ProjectPersonMc += "'" + item.ShortName + "',";
2024-04-10 15:43:48 +08:00
ProjectPersonCount += "'" + APIPageDataService.getPersonNum(item.ProjectId, DateTime.Now).Count() + "',";
2023-08-24 10:00:59 +08:00
}
ProjectPersonMc = ProjectPersonMc.TrimEnd(',');
ProjectPersonCount = ProjectPersonCount.TrimEnd(',');
}
#endregion
#region
protected string ProjectJd;
protected string ProjectMc;
2024-04-10 15:43:48 +08:00
protected void getJd()
{
2023-08-24 10:00:59 +08:00
var list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null) && x.Progress != null).ToList();
foreach (var item in list)
{
2024-06-14 16:52:37 +08:00
ProjectJd += "'" + item.Progress.Value.ToString("0.##") + "',";
2023-08-24 10:00:59 +08:00
ProjectMc += "'" + item.ShortName + "',";
}
ProjectJd = ProjectJd.TrimEnd(',');
ProjectMc = ProjectMc.TrimEnd(',');
}
#endregion
#region
2024-04-10 15:43:48 +08:00
protected void getZgsj()
{
2023-08-24 10:00:59 +08:00
div_zgsj.InnerHtml = (GetGeneralClosedNum() + GetGeneralNotClosedNum()).ToString();
div_zgywc.InnerHtml = GetGeneralClosedNum().ToString();
div_zgwwc.InnerHtml = GetGeneralNotClosedNum().ToString();
2024-06-14 16:52:37 +08:00
div_zgwcl.InnerHtml = (100.0 * GetGeneralClosedNum() / (GetGeneralNotClosedNum() + GetGeneralClosedNum())).ToString("0.##") + "%";
2023-08-24 10:00:59 +08:00
}
/// <summary>
/// 获取隐患整改闭环项
/// </summary>
/// <returns></returns>
public static int GetGeneralClosedNum()
{
int result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
where x.States == "3"
select x).Count();
return result;
}
/// <summary>
/// 获取隐患未整改完成项
/// </summary>
/// <returns></returns>
public static int GetGeneralNotClosedNum()
{
int result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
where x.States != "3"
select x).Count();
return result;
}
#endregion
#region
protected string gdclHtml;
protected string sbclHtml;
2024-06-14 16:52:37 +08:00
protected string gdclHead = "<div class=\"th-p\">项目</div><div class=\"th-p\">管子</div><div class=\"th-p\">管件</div><div class=\"th-p\">阀门</div><div class=\"th-p\">垫片</div><div class=\"th-p\">紧固件</div>";
protected string sbclHead = "<div class=\"th-p\">项目</div><div class=\"th-p\">采购量</div><div class=\"th-p\">到货量</div><div class=\"th-p\">已到货百分比</div>";
2024-04-10 15:43:48 +08:00
private void getCldh()
{
2023-08-24 10:00:59 +08:00
//项目
var list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null)).ToList();
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)
{
#region
2024-06-14 16:52:37 +08:00
gdclHtml += " <div class=\"row\">";
2023-08-24 10:00:59 +08:00
var pname = item.ShortName;
2023-10-31 18:03:55 +08:00
if (item.ShortName.Length > 3)
2023-08-24 10:00:59 +08:00
{
2023-10-31 18:03:55 +08:00
pname = item.ShortName.Substring(0, 3) + "...";
2023-08-24 10:00:59 +08:00
}
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\" title =\"" + item.ShortName + "\">" + pname + "</div>";
2023-08-24 10:00:59 +08:00
var pid = BLL.ProjectService.GetCLProjectCodeByProjectId(item.ProjectId).ToString();
//管子
var num1 = PipelinList.Where(x => x.ProjectId == pid && x.C1 == "管子").FirstOrDefault();
if (num1 != null)
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">" + (num1.C7 == "" ? "0%" : num1.C7) + "</div>";
2023-08-24 10:00:59 +08:00
}
else
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">0%</div>";
2023-08-24 10:00:59 +08:00
}
var num2 = PipelinList.Where(x => x.ProjectId == pid && x.C1 == "管件法兰").FirstOrDefault();
if (num2 != null)
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">" + (num2.C7 == "" ? "0%" : num2.C7) + "</div>";
2023-08-24 10:00:59 +08:00
}
else
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">0%</div>";
2023-08-24 10:00:59 +08:00
}
var num3 = PipelinList.Where(x => x.ProjectId == pid && x.C1 == "阀门").FirstOrDefault();
if (num3 != null)
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">" + (num3.C7 == "" ? "0%" : num3.C7) + "</div>";
2023-08-24 10:00:59 +08:00
}
else
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">0%</div>";
2023-08-24 10:00:59 +08:00
}
var num4 = PipelinList.Where(x => x.ProjectId == pid && x.C1 == "垫片").FirstOrDefault();
if (num4 != null)
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">" + (num4.C7 == "" ? "0%" : num4.C7) + "</div>";
2023-08-24 10:00:59 +08:00
}
else
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">0%</div>";
2023-08-24 10:00:59 +08:00
}
var num5 = PipelinList.Where(x => x.ProjectId == pid && x.C1 == "紧固件").FirstOrDefault();
if (num5 != null)
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">" + (num5.C7 == "" ? "0%" : num5.C7) + "</div>";
2023-08-24 10:00:59 +08:00
}
else
{
2024-06-14 16:52:37 +08:00
gdclHtml += "<div class=\"th-p\">0%</div>";
2023-08-24 10:00:59 +08:00
}
gdclHtml += " </div>";
#endregion
#region
2024-06-14 16:52:37 +08:00
sbclHtml += " <div class=\"row\">";
2024-04-10 15:43:48 +08:00
pname = item.ShortName;
2023-10-31 18:03:55 +08:00
if (item.ShortName.Length > 5)
2023-08-24 10:00:59 +08:00
{
2023-10-31 18:03:55 +08:00
pname = item.ShortName.Substring(0, 5) + "...";
2023-08-24 10:00:59 +08:00
}
2024-06-14 16:52:37 +08:00
sbclHtml += "<div class=\"th-p\" title=\"" + item.ShortName + "\">" + pname + "</div>";
2023-08-24 10:00:59 +08:00
//采购量
var SbcllCglList = SbclList.Where(x => x.ProjectId == pid).ToList();
double SbcllCgl = 0.0;
double Sbdhs = 0.0;
foreach (var itemCgl in SbcllCglList)
{
if (string.IsNullOrEmpty(itemCgl.C7))
{
SbcllCgl += 0;
Sbdhs += 0;
}
2024-04-10 15:43:48 +08:00
else
{
SbcllCgl += Convert.ToDouble(itemCgl.C7);
2023-08-24 10:00:59 +08:00
Sbdhs += Convert.ToDouble(itemCgl.C9);
}
}
2024-06-14 16:52:37 +08:00
sbclHtml += "<div class=\"th-p\">" + SbcllCgl + "</div>";
sbclHtml += "<div class=\"th-p\">" + Sbdhs + "</div>";
2023-08-24 10:00:59 +08:00
//百分比
if (SbcllCgl + Sbdhs != 0)
{
var dhbfb = String.Format("{0:N2}", 100.0 * Sbdhs / (Sbdhs + SbcllCgl), 2) + "%";
2024-06-14 16:52:37 +08:00
sbclHtml += "<div class=\"th-p\">" + dhbfb + "</div>";
2023-08-24 10:00:59 +08:00
}
2024-04-10 15:43:48 +08:00
else
{
2024-06-14 16:52:37 +08:00
sbclHtml += "<div class=\"th-p\">0%</div>";
2023-08-24 10:00:59 +08:00
}
2024-04-10 15:43:48 +08:00
2023-08-24 10:00:59 +08:00
sbclHtml += " </div>";
#endregion
}
}
#endregion
2023-10-31 18:03:55 +08:00
/// <summary>
/// 获取未遂事件数
/// </summary>
/// <returns></returns>
public static int GetNearMissNum()
{
var 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;
}
2023-08-24 10:00:59 +08:00
}
}