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

472 lines
25 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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"
orderby x.CreateDate
select new { x.GJSXID, x.Detail, x.CreateDate, x.ProjectId, y.QuestionTypeName }).Distinct().Take(20);
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);
}
}
}
}