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

472 lines
25 KiB
C#
Raw Normal View History

2021-04-30 10:28:37 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Newtonsoft.Json;
namespace FineUIPro.Web.common
{
public partial class main : PageBase
{
//protected string ProjectJSStr;
List<Model.Base_Project> allProjects;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
#region
allProjects = ProjectService.GetAllProjectDropDownList();
int acount = allProjects.Count();
//工地总数
this.numProjetcA.InnerHtml = acount.ToString();
int pcount1 = 0;
int pcount2 = 0;
int pcount3 = 0;
if (acount > 0)
{
pcount1 = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).Count();
pcount2 = allProjects.Where(x => x.ProjectState == Const.ProjectState_2).Count();
pcount3 = allProjects.Where(x => x.ProjectState == Const.ProjectState_3).Count();
}
//在建
this.numProjetc1.InnerHtml = pcount1.ToString();
//停工
this.numProjetc2.InnerHtml = pcount2.ToString();
//竣工
this.numProjetc3.InnerHtml = pcount3.ToString();
#endregion
#region
this.divJD.InnerHtml = "<div class='flex tab-h'><div class='txt'>&nbsp;&nbsp;&nbsp;&nbsp;项目</div><div class='flex1' style='text-align: center'>进度条</div><div class='txt'>进度百分比</div></div><div id='divJD_wrap' class='swiper-container'>";
var project1s = allProjects.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null);
foreach (var project1 in project1s)
{
this.divJD.InnerHtml += "<div class='flex tab-i'><div class='txt' style='color: #00a2e9'>" + project1.ShortName + "</div><div class='flex1 flex line-wrap'><div class='line-item'><div class='normal' style='width: 80%'></div></div></div><div class='txt' style='color: #00a2e9'>80%</div></div>";
}
this.divJD.InnerHtml += "</div>";
#endregion
}
}
#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 + ",";
mapStr += item.ProjectId;
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);
}
}
#endregion
#region
protected string Person
{
get
{
Model.SGGLDB db = Funs.DB;
Model.PieData totalPie = new Model.PieData();
List<Model.Pie> pie = new List<Model.Pie>();
List<string> data = new List<string>();
List<Model.PieData> pieData = new List<Model.PieData>();
List<Model.PieData> pieDataStr = new List<Model.PieData>();
var personLists = from x in db.SitePerson_Person where x.IsUsed == true select x;
var getProjectIds = (from x in personLists
group x by x.ProjectId into g
select new { g.First().ProjectId, pCout = g.Count() }).OrderByDescending(x => x.pCout).Take(5).Select(x => x.ProjectId);
// var projects = BLL.ProjectService.GetProjectWorkList();
var whPersons = personLists.Where(x => x.UnitId == BLL.Const.UnitId_CWCEC);
var projectUnits = from x in db.Project_ProjectUnit
join y in db.Base_Unit on x.UnitId equals y.UnitId
where x.UnitType == "2"
select new { UnitId = x.UnitId, ProjectId = x.ProjectId, UnitName = y.UnitName };
Model.PieData p = new Model.PieData();
p.value = whPersons.Count();
p.name = "五环";
pieData.Add(p);
data.Add("五环");
Model.Pie whPie = new Model.Pie();
List<Model.PieData> whPieData = new List<Model.PieData>();
whPie.name = "五环";
Model.PieData whPieDataStr = new Model.PieData();
whPieDataStr.name = "五环";
string whStr = "<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\">五环</div><div class=\"tit-v\"></div></div></div></li>";
foreach (var IdItem in getProjectIds)
{
var getProject = ProjectService.GetProjectByProjectId(IdItem);
if (getProject != null)
{
//五环人员分布
Model.PieData wh = new Model.PieData();
wh.name = getProject.ShortName;
wh.value = whPersons.Count(x => x.ProjectId == getProject.ProjectId);
whPieData.Add(wh);
whStr += "<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\">" + getProject.ProjectName + "</div><div class=\"tit-v\">" + wh.value + "</div></div></div></li>";
//各项目分布
Model.PieData projectPie = new Model.PieData();
projectPie.value = personLists.Count(x => x.ProjectId == getProject.ProjectId);
projectPie.name = getProject.ShortName;
pieData.Add(projectPie);
Model.Pie xmPie = new Model.Pie();
List<Model.PieData> xmPieData = new List<Model.PieData>();
var pUnits = projectUnits.Where(x => x.ProjectId == getProject.ProjectId);
Model.PieData projectPieDataStr = new Model.PieData();
projectPieDataStr.name = getProject.ShortName;
string projectStr = "<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\">" + getProject.ProjectName + "</div><div class=\"tit-v\"></div></div></div></li>";
foreach (var pUnit in pUnits)
{
Model.PieData xm = new Model.PieData();
xm.name = pUnit.UnitName;
xm.value = personLists.Count(x => x.ProjectId == getProject.ProjectId && x.UnitId == pUnit.UnitId);
xmPieData.Add(xm);
projectStr += "<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\">" + pUnit.UnitName + "</div><div class=\"tit-v\">" + xm.value + "</div></div></div></li>";
}
projectPieDataStr.str = projectStr;
pieDataStr.Add(projectPieDataStr);
xmPie.name = getProject.ShortName;
xmPie.showList = xmPieData;
pie.Add(xmPie);
data.Add(getProject.ShortName);
}
}
whPie.showList = whPieData;
whPieDataStr.str = whStr;
pieDataStr.Add(whPieDataStr);
List<Model.Pie> newPie = new List<Model.Pie>();
newPie.Add(whPie);
newPie.AddRange(pie);
totalPie.p = newPie;
totalPie.pData = pieData;
totalPie.data = data;
totalPie.dataStr = pieDataStr;
return JsonConvert.SerializeObject(totalPie);
}
}
protected string PersonAll
{
get
{
Model.SGGLDB db = Funs.DB;
Model.PieData totalPie = new Model.PieData();
List<Model.PieData> pieDataStr = new List<Model.PieData>();
var personLists = from x in db.SitePerson_Person where x.IsUsed == true select x;
var projects = BLL.ProjectService.GetProjectWorkList();
Model.PieData whPieDataStr = new Model.PieData();
whPieDataStr.name = "五环";
string whStr = string.Empty;
foreach (var project in projects)
{
//五环人员分布
var whvalues = personLists.Count(x => x.ProjectId == project.ProjectId);
whStr += "<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\">" + project.ProjectName + "</div><div class=\"tit-v\">" + whvalues + "</div></div></div></li>";
////各项目分布
//var xmvalue = personLists.Count(x => x.ProjectId == project.ProjectId);
//Model.PieData projectPieDataStr = new Model.PieData();
//whStr += "<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\">" + project.ProjectName + "</div><div class=\"tit-v\">" + xmvalue + "</div></div></div></li>";
//projectPieDataStr.str = projectStr;
//pieDataStr.Add(projectPieDataStr);
}
whPieDataStr.str = whStr;
pieDataStr.Add(whPieDataStr);
totalPie.dataStr = pieDataStr;
return JsonConvert.SerializeObject(totalPie);
}
}
#endregion
#region
protected string Accident
{
get
{
Model.SGGLDB db = Funs.DB;
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
List<string> listCategories = new List<string>();
businessColumn.title = "质量事故";
var projects = BLL.ProjectService.GetProjectWorkList();
Model.SingleSerie s = new Model.SingleSerie();
List<double> listdata = new List<double>();
List<double> listdata2 = new List<double>();
List<double> listdata3 = new List<double>();
List<decimal> listdata4 = new List<decimal>();
var swAccidentList1 = 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 swAccidentList2 = from x in db.Accident_AccidentReport
join y in db.Sys_Const on x.AccidentTypeId equals y.ConstValue
where (y.ConstText.Contains("轻伤") || y.ConstText.Contains("重伤") || y.ConstText.Contains("死亡")) && y.GroupId == ConstValue.Group_AccidentReportRegistration
select x;
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;
var qualityAccidents = from x in db.Comprehensive_QualityAccident select x;
foreach (var project in projects)
{
listCategories.Add(project.ShortName);
listdata4.Add(project.Progress ?? 0);
int qualityAccidentProjectsCount = qualityAccidents.Count(x => x.ProjectId == project.ProjectId);
int wsAccidentListCount1 = wsAccidentList1.Count(x => x.ProjectId == project.ProjectId);
int wsAccidentListCount2 = wsAccidentList2.Count(x => x.ProjectId == project.ProjectId);
int swAccidentListCount1 = swAccidentList1.Count(x => x.ProjectId == project.ProjectId);
int swAccidentListCount2 = swAccidentList2.Count(x => x.ProjectId == project.ProjectId);
listdata.Add(qualityAccidentProjectsCount);
listdata2.Add(wsAccidentListCount1 + wsAccidentListCount2);
listdata3.Add(swAccidentListCount1 + swAccidentListCount2);
}
s.data = listdata;
s.data2 = listdata2;
s.data3 = listdata3;
s.data4 = listdata4;
series.Add(s);
businessColumn.categories = listCategories;
businessColumn.series = series;
return JsonConvert.SerializeObject(businessColumn);
}
}
#endregion
#region
protected string swiper_One
{
get
{
var getGJSX = (from x in Funs.DB.GJSX
join y in Funs.DB.Base_QuestionType on x.QuestionTypeID equals y.QuestionTypeID
where (y.QuestionTypeName.Contains("紧急") || y.QuestionTypeName.Contains("重要")) && x.State != "0"
2021-04-30 10:28:37 +08:00
orderby x.CreateDate
select new { x.GJSXID, x.Detail, x.CreateDate, x.ProjectId, y.QuestionTypeName }).Distinct().Take(20);
2021-04-30 10:28:37 +08:00
string strNoticeHtml = string.Empty;
var readIds = from x in Funs.DB.Sys_UserRead where x.UserId == this.CurrUser.UserId select x.DataId;
foreach (var item in getGJSX)
{
string url = "../PZHGL/GJSX/GJSXList.aspx?projectId=" + item.ProjectId;
//var attachFile = BLL.AttachFileService.GetAttachFile(item.NoticeId, BLL.Const.ServerNoticeMenuId);
//if (attachFile != null && !string.IsNullOrEmpty(attachFile.AttachUrl))
//{
// url = "../" + attachFile.AttachUrl.Split(',')[0].Replace("\\", "/");
//}
string projectShortName = BLL.ProjectService.GetShortNameByProjectId(item.ProjectId);
if (item.QuestionTypeName.Contains("紧急"))
{
strNoticeHtml += "<li data-id=\"" + url + "\" notice-id=\"" + item.GJSXID + "\" class=\"c-item swiper-slide\"><div class=\"tit\" title=\"" + item.Detail + "\"><div class=\"flex\" ><div class=\"tit-t flex1\" style=\"color:red;\">" + projectShortName + "/" + item.Detail + "</div><div class=\"tit-v\">" + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "</div></div></div></li>";
}
else
{
strNoticeHtml += "<li data-id=\"" + url + "\" notice-id=\"" + item.GJSXID + "\" class=\"c-item swiper-slide\"><div class=\"tit\" title=\"" + item.Detail + "\"><div class=\"flex\" ><div class=\"tit-t flex1\" style=\"color:yellow;\">" + projectShortName + "/" + item.Detail + "</div><div class=\"tit-v\">" + string.Format("{0:yyyy-MM-dd}", item.CreateDate) + "</div></div></div></li>";
}
}
return "<ul class=\"content-ul swiper-wrapper\">" + strNoticeHtml + "</ul>";
}
}
#endregion
protected void imgBtn_Click(object sender, EventArgs e)
{
Model.GJSX gjsx = BLL.GJSXService.GetGJSXById(this.hdNoticeId.Value);
if (gjsx != null)
{
BLL.APIUserService.getSaveUserRead(BLL.Const.GJSXMenuId, gjsx.ProjectId, this.CurrUser.UserId, gjsx.GJSXID);
}
}
}
}