SGGL_HBAZ/SGGL/FineUIPro.Web/common/main3.aspx.cs

491 lines
19 KiB
C#

using BLL;
using FineUIPro.Web.DataShow;
using Newtonsoft.Json;
using NPOI.SS.Util;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.common
{
public partial class main3 : PageBase
{
public string PassRate
{
get
{
return (string)ViewState["PassRate"];
}
set
{
ViewState["PassRate"] = value;
}
}
///合格率
protected double CheckControlRate;
protected double CQualifiedRate;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Model.SGGLDB db = Funs.DB;
////项目信息
getProjectInfo(db);
getPersonWorkTime(db);
//getSitePerson(db);
getCQMSProblem(db);
string strSql = "";
strSql = @"select SUM(cht_totalfilm) AS current_total_film
, SUM(cht_passfilm) AS current_pass_film from CH_CheckItem ch_checkitem left
join PW_JointInfo JointInfo on JointInfo.JOT_ID = ch_checkitem.JOT_ID";
// SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql);
if (tb != null && tb.Rows.Count > 0)
{
try
{
var rate = 100 * double.Parse(tb.Rows[0]["current_pass_film"].ToString()) / double.Parse(tb.Rows[0]["current_total_film"].ToString());
PassRate = "" + ((int)rate);
}
catch (Exception ex)
{
PassRate = "0";
}
}
var checkControls = from x in Funs.DB.Check_CheckControl select x;
int a = checkControls.Count();
divCheckControlAllNum.InnerHtml = a.ToString();
int b = checkControls.Count(x => x.State == BLL.Const.CheckControl_Complete);
divCheckControlOKNum.InnerHtml = b.ToString();
divCheckControlNotOKNum.InnerHtml = (checkControls.Count() - checkControls.Count(x => x.State == BLL.Const.CheckControl_Complete)).ToString();
CheckControlRate = 0;
if (a > 0)
{
CheckControlRate = Math.Round(b * 1.0 / a * 100, 1);
}
//整改率、合格率、焊接一次合格率
getRate();
}
}
#region
[WebMethod]
public static Object GetServiceData(string startdate, string enddate)
{
DateTime startd = Funs.GetNewDateTimeOrNow(string.Format("{0} {1}", startdate, "00:00:00"));
DateTime endd = Funs.GetNewDateTimeOrNow(string.Format("{0} {1}", enddate, "23:59:59"));
int m_count = Funs.DB.Project_ProjectUser.Count();
int job_count = (from x in Funs.DB.Meeting_ClassMeeting
where x.ClassMeetingDate >= startd && x.ClassMeetingDate <= endd
select new Model.MeetingItem
{
AttentPersonNum = x.AttentPersonNum ?? 0,
}).ToList().Sum(s => s.AttentPersonNum);
return new
{
m_count = m_count,
job_count = job_count,
all_count = job_count + m_count,
};
}
#endregion
#region
[WebMethod]
public static Object GetQualityProblemStatistics(string startdate, string enddate)
{
DateTime startd = Funs.GetNewDateTimeOrNow(string.Format("{0} {1}", startdate, "00:00:00"));
DateTime endd = Funs.GetNewDateTimeOrNow(string.Format("{0} {1}", enddate, "23:59:59"));
List<Model.Inspect_InspectionItem> list = (from x in Funs.DB.Inspect_InspectionItem
join i in Funs.DB.Inspect_Inspection on x.InspectionId equals i.InspectionId
where i.InspectType == "1" && x.CompileTime > startd && x.CompileTime < endd
select new Model.Inspect_InspectionItem()
).ToList();
return null;
}
#endregion
#region
[WebMethod]
public static Object GetSafetyProblemStatistics( string startdate, string enddate)
{
DateTime startd = Funs.GetNewDateTimeOrNow(string.Format("{0} {1}", startdate, "00:00:00"));
DateTime endd = Funs.GetNewDateTimeOrNow(string.Format("{0} {1}", enddate, "23:59:59"));
// 日常巡检总数
List<Model.HSSE_Hazard_HazardRegister> HAllList = Funs.DB.HSSE_Hazard_HazardRegister.Where(x => x.ProblemTypes == "1" && x.CheckTime > startd && x.CheckTime < endd).ToList();
int HAllCount = HAllList.Where(x => x.States != "4").Count();
int HDoneCount = HAllList.Where(x => x.States == "3").Count();
int HUnDoneCount = HAllCount - HDoneCount;
// 专项检查
List<Model.Inspect_InspectionItem> SpecialList = (from x in Funs.DB.Inspect_InspectionItem
join i in Funs.DB.Inspect_Inspection on x.InspectionId equals i.InspectionId
where i.InspectType == "1" && x.CompileTime > startd && x.CompileTime < endd
select new Model.Inspect_InspectionItem()).ToList();
int SAllCount = SpecialList.Count();
int SDoneCount = SpecialList.Where(x => x.States == "3").Count();
int SUnDoneCount = SAllCount - SDoneCount;
// 检查列表
var query = (
from hsse in Funs.DB.HSSE_Hazard_HazardRegister
where hsse.RectifyName != null && hsse.RegisterDate > startd && hsse.RegisterDate < endd
group hsse by hsse.RectifyName into g1
select new { type = g1.Key, count = g1.Count() }
).Concat(
from i in Funs.DB.Inspect_Inspection
join itm in Funs.DB.Inspect_InspectionItem on i.InspectionId equals itm.InspectionId
where i.ProblemTypeName != null && i.CreateTime > startd && i.CreateTime < endd && i.InspectType == "1"
group i by i.ProblemTypeName into g2
select new { type = g2.Key, count = g2.Count() }
)
.GroupBy(x => x.type)
.Select(g => new { type = g.Key, count = g.Sum(x => x.count) });
return new
{
AllCount = HAllCount + SAllCount,
DoneCount = HDoneCount + SDoneCount,
UnDoneCount = HUnDoneCount + SUnDoneCount,
CheckList = query
};
}
#endregion
#region
protected string ProjectInfo;
/// <summary>
/// 项目信息
/// </summary>
private List<Model.Base_Project> getProjectInfo(Model.SGGLDB db)
{
ProjectInfo = "[]";
var getProjects = db.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null) && (x.IsDelete == null || x.IsDelete == false));
string picHtml = "";
var getP = from x in db.InformationProject_Picture
join y in db.AttachFile on x.PictureId equals y.ToKeyId
where y.AttachFileId != null && y.AttachUrl != null
orderby x.UploadDate descending
select new { x.PictureId, x.Title, x.UploadDate, y.AttachUrl };
if (getP.Count() > 0)
{
foreach (var item in getP)
{
var geturl = Funs.GetStrListByStr(item.AttachUrl, ',');
foreach (var itemurl in geturl)
{
if (!string.IsNullOrEmpty(itemurl))
{
picHtml += @"<div class=""swiper-slide""><img src=""../" + itemurl + @""" /></div> ";
}
}
}
}
foreach (var p in getProjects)
{
try
{
string res = AttachFileService.getFileUrl(p.ProjectId, BLL.Const.SeverProjectSetMenuId);
string[] urls = res.Split(',');
foreach (string u in urls)
{
if (!string.IsNullOrEmpty(u))
{
picHtml += @"<div class=""swiper-slide""><img src=""../" + u + @""" /></div> ";
}
}
}
catch (Exception ex) { }
}
divProjectPic.InnerHtml = picHtml;
var array = new DecimalFormat(",###").Format(getProjects.Count()).ToArray();
string projectNum = "";
foreach (var s in array)
{
if (s != ',')
{
projectNum += "<span class=\"num-box\">" + s + "</span>";
}
else
{
projectNum += "<span >" + s + "</span>";
}
}
var persons = from x in db.SitePerson_Person
join y in db.Base_Project on x.ProjectId equals y.ProjectId
where x.IsUsed == true && (x.OutTime == null || x.OutTime > DateTime.Now) && (y.ProjectState == Const.ProjectState_1 || y.ProjectState == null) && (y.IsDelete == null || y.IsDelete == false)
select x;
var array2 = new DecimalFormat(",###").Format(persons.Count()).ToArray();
string personsNum = "";
foreach (var s in array2)
{
if (s != ',')
{
personsNum += "<span class=\"num-box\">" + s + "</span>";
}
else
{
personsNum += "<span >" + s + "</span>";
}
}
var getProjectMap = getProjects.Where(x => x.MapCoordinates.Length > 0);
if (getProjectMap.Count() > 0)
{
List<Model.SingleSerie> list = new List<Model.SingleSerie>();
foreach (var item in getProjectMap)
{
Model.SingleSerie newS = new Model.SingleSerie
{
name = "【" + Resources.Lan.ProjectName + "】:" + item.ProjectName
//+ "</br> 【项目状态】:" + GetProjectState(item.ProjectId)
+ "</br>【" + Resources.Lan.Start_time + "】:" + string.Format("{0:yyyy-MM-dd}", item.StartDate)
+ "</br>【" + Resources.Lan.TimeCompletion + "】:" + string.Format("{0:yyyy-MM-dd}", item.EndDate)
+ "</br>【" + Resources.Lan.ProjectAddress + "】:" + item.ProjectAddress + "@" + "indexProject.aspx?projectId=" + item.ProjectId,
//url = "indexProject.aspx?projectId=" + item.ProjectId,
cityname = Resources.Lan.China
};
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
/// <summary>
/// 获取安全人工时
/// </summary>
private void getPersonWorkTime(Model.SGGLDB db)
{
int wHours = 0;
var getMax = from x in db.SitePerson_DayReportDetail
join y in db.SitePerson_DayReport on x.DayReportId equals y.DayReportId
select x;
if (getMax.Count() > 0)
{
wHours = Convert.ToInt32(getMax.Sum(x => x.PersonWorkTime) ?? 0);
}
}
#endregion
#region
/// <summary>
/// 劳务统计
/// </summary>
private void getSitePerson(Model.SGGLDB db)
{
int AllCount = 0;
int MCount = 0;
DateTime dateValue = DateTime.Now.AddDays(-1);
List<Model.PageDataPersonInOutItem> getallin = new List<Model.PageDataPersonInOutItem>();
var getDayAll = from x in db.SitePerson_PersonInOut
where x.ChangeTime.Value.Year == dateValue.Year && x.ChangeTime.Value.Month == dateValue.Month
&& x.ChangeTime.Value.Day == dateValue.Day && x.IsIn == true
select x;
if (getDayAll.Count() > 0)
{
var getInMaxs = from x in getDayAll
select new Model.PageDataPersonInOutItem
{
PersonId = x.PersonId,
PostType = x.PostType,
WorkPostId = x.WorkPostId,
};
if (getInMaxs.Count() > 0)
{
getallin = getInMaxs.Distinct().ToList();
}
}
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();*/
}
}
#endregion
/// <summary>
/// 获取质量问题
/// </summary>
private void getCQMSProblem(Model.SGGLDB db)
{
CQualifiedRate = 0;
var imids = db.ProcessControl_InspectionManagementDetail.Select(y => y.InspectionId).Distinct();
var inspectionManagements = from x in db.ProcessControl_InspectionManagement where imids.Contains(x.InspectionId) 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);
}
}
}
protected string VideoURL
{
get
{
string username = ConfigurationManager.AppSettings["Video_USER"];
string password = ConfigurationManager.AppSettings["Video_PW"];
return ConfigurationManager.AppSettings["Video_URL"] + "#/screen?username=" + username + "&password=" + Funs.EncryptionPassword(password);
}
}
#region
/// <summary>
/// 安全隐患分析
/// </summary>
protected string SafeHiddenDanger
{
get
{
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.SingleSerie s = new Model.SingleSerie();
List<double> listdata = new List<double>();
List<string> list = new List<string>();
var getTypes = from x in Funs.DB.HSSE_Hazard_HazardRegisterTypes select x;
var getAllChecks = from x in Funs.DB.HSSE_Hazard_HazardRegister select x;
var getChecks = from x in Funs.DB.HSSE_Hazard_HazardRegister
group x by x.RegisterTypesId into g
select new { g.First().RegisterTypesId, Count = g.Count(x => x.RegisterTypesId == g.First().RegisterTypesId) };
var top5Checks = getChecks.OrderByDescending(x => x.Count).Take(5);
int top5Count = 0;
string typeName = string.Empty;
foreach (var item in top5Checks)
{
typeName = string.Empty;
var type = getTypes.FirstOrDefault(x => x.RegisterTypesId == item.RegisterTypesId);
if (type != null)
{
typeName = type.RegisterTypesName;
}
list.Add(typeName);
listdata.Add(item.Count);
top5Count += item.Count;
}
//list.Add("其他");
//listdata.Add(getAllChecks.Count() - top5Count);
s.data = listdata;
List<Dictionary<string, object>> res = new List<Dictionary<string, object>>();
for (int i = 0; i < list.Count() && i < 5; i++)
{
Dictionary<string, object> temp = new Dictionary<string, object>();
temp.Add("name", list[i]);
temp.Add("value", listdata[i]);
res.Add(temp);
}
return JsonConvert.SerializeObject(res);
}
}
#endregion
protected string VideoHost
{
get
{
string video_Url = ConfigurationManager.AppSettings["Video_URL"];
return video_Url;
}
}
protected string VideoPassWord
{
get
{
string video_PassWord = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == "aedadae4-ed77-4b5a-b1ed-6b8b3c075988");
if (project != null)
{
if (!string.IsNullOrEmpty(project.MonitorPW))
{
video_PassWord = Funs.EncryptionPassword(project.MonitorPW);
}
}
return video_PassWord;
}
}
protected string VideoUserName
{
get
{
string video_UserName = string.Empty;
var project = Funs.DB.Base_Project.FirstOrDefault(x => x.ProjectId == "aedadae4-ed77-4b5a-b1ed-6b8b3c075988");
if (project != null)
{
video_UserName = project.ProjectCode;
}
return video_UserName;
}
}
/// <summary>
/// 整改率、合格率、焊接一次合格率
/// </summary>
protected string RectificationRate = string.Empty;
protected string PassRates = string.Empty;
protected string FistPassRateWelding = string.Empty;
private void getRate()
{
RectificationRate = Resources.Lan.RectificationRate;
PassRates = Resources.Lan.PassRate;
FistPassRateWelding = Resources.Lan.FistPassRateWelding;
}
}
}