ChengDa_English/SGGL/FineUIPro.Web/common/mainProject.aspx.cs

526 lines
22 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 BLL;
using FastReport.Editor.Common;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
namespace FineUIPro.Web.common
{
public partial class mainProject : PageBase
{
#region ID
/// <summary>
/// 项目ID
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ProjectId = string.Empty;
if (this.CurrUser != null)
{
this.ProjectId = this.CurrUser.LoginProjectId;
}
/// 获取安全人工时
getPersonWorkTime();
///劳务统计
getSitePerson();
///项目概况
getProjectInfo();
/// 获取质量问题
getCQMSProblem();
this.divQualityWarningNum.InnerHtml = (from x in Funs.DB.QualityAudit_PersonQuality
join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId
where y.ProjectId == this.ProjectId && x.LimitDate < DateTime.Now
select x).Count().ToString();
///产值
getOutputValues();
///获取天气
getWeatherValues();
}
}
#region
/// <summary>
/// 获取安全人工时
/// </summary>
private void getPersonWorkTime()
{
this.divSafeWorkTime.InnerHtml = "0000000000";
var ProjectTotal = (from x in Funs.DB.HSSE_MonthReportItem
join y in Funs.DB.HSSE_MonthReport on x.MonthReportId equals y.MonthReportId
where y.ProjectId == this.ProjectId && "安全生产人工时数" == x.ReportItem
select x.YearTotal).Sum();
decimal sumMonthCount = 0;
if (ProjectTotal.HasValue)
{
sumMonthCount = ProjectTotal.Value;
}
//var getMonts = Funs.DB.SeDin_MonthReport.Where(x => x.ProjectId == this.ProjectId).OrderBy(x => x.ReporMonth);
//var getmax = getMonts.FirstOrDefault();
//if (getMonts.Count() > 0)
//{
// foreach (var item in getMonts)
// {
// decimal monthCount = 0;
// var getItem = Funs.DB.SeDin_MonthReport2.FirstOrDefault(x => x.MonthReportId == item.MonthReportId);
// if (getItem != null && getItem.MonthWorkTime.HasValue)
// {
// monthCount = getItem.MonthWorkTime ?? 0;
// sumMonthCount += monthCount;
// if (sumMonthCount < getItem.ProjectWorkTime)
// {
// sumMonthCount = getItem.ProjectWorkTime ?? 0;
// }
// }
// }
//}
if (sumMonthCount>0)
{
this.divSafeWorkTime.InnerHtml = sumMonthCount.ToString("0000000000"); ;
}
else
{
this.divSafeWorkTime.InnerHtml = "0000000000";
}
if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482")
{
this.divSafeWorkTime.InnerHtml = "0005371120";
}
///整改单
var getRectify = from x in Funs.DB.View_Hazard_HazardRegister
where x.ProjectId == this.ProjectId && x.States != Const.State_0 && x.States != Const.State_R && x.States != null
group x by x.States into g
select new { g.Key,Count = g.Count()};
var allcout = getRectify.ToList();
if (allcout.Count > 0)
{
int total = 0;
int finish = 0;
foreach(var item in allcout)
{
total += item.Count;
if (item.Key.ToString() == "3")
{
finish += item.Count;
}
}
this.divAllRectify.InnerHtml = total.ToString();
this.divUCRectify .InnerHtml = (total - finish).ToString();
this.divCRectify.InnerHtml = finish.ToString();
}
}
#endregion
#region
protected string WorkPostS;
protected string InPostCounts;
protected string InDutyCounts;
/// <summary>
/// 劳务统计
/// </summary>
private void getSitePerson()
{
//var getEmployInOutRecords = Funs.DB.T_d_EmployInOutRecord.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RecordDate.Value == DateTime.Now.Date).ToList();
//string sql = @"select c.ConstText,b.PostType,count( *) num from SitePerson_Person a left join Base_WorkPost b on a.WorkPostId=b.WorkPostId
// LEFT JOIN Sys_Const AS c ON c.ConstValue = b.PostType and c.GroupId = 'PostType' where IsUsed =1 and InTime<='" + DateTime.Now.ToString("yyyy-MM-dd") + "' and (OutTime is null or OutTime>'" + DateTime.Now.ToString("yyyy-MM-dd") + @"' )
// and a.ProjectId='" + this.ProjectId + @"' and a.AuditorDate is not null
// group by c.ConstText,b.PostType ";
// List<SqlParameter> listStr = new List<SqlParameter>();
// SqlParameter[] parameter = listStr.ToArray();
// DataTable tb = SQLHelper.GetDataTableRunText(sql, parameter);
// int allcount = getEmployInOutRecords.Count();
// int mcount = 0;
// if (tb != null)
// {
// foreach (DataRow row in tb.Rows)
// {
// //allcount += int.Parse(row["num"].ToString());
// if (!string.IsNullOrEmpty(row["ConstText"].ToString()) && row["ConstText"].ToString().Contains("管理"))
// {
// mcount += int.Parse(row["num"].ToString());
// }
// }
// }
// this.divALLPerson.InnerHtml = allcount.ToString();
//if (allcount > mcount)
//{
// this.divGLPerson.InnerHtml = mcount.ToString();
// this.divZYPerson.InnerHtml = (allcount - mcount).ToString();
//}
//else
//{
// this.divGLPerson.InnerHtml = allcount.ToString();
// this.divZYPerson.InnerHtml = "0";
//}
var ProjectTotal1 = (from x in Funs.DB.HSSE_MonthReportItem
join y in Funs.DB.HSSE_MonthReport on x.MonthReportId equals y.MonthReportId
where ("成达公司HSE管理人数" == x.ReportItem || "分包商HSE管理人数" == x.ReportItem) && y.Years == DateTime.Now.Year && y.ProjectId==CurrUser.LoginProjectId
select x.YearTotal).Sum();
var ProjectTotal2 = (from x in Funs.DB.HSSE_MonthReportItem
join y in Funs.DB.HSSE_MonthReport on x.MonthReportId equals y.MonthReportId
where ("成达公司现场人数" == x.ReportItem || "分包商现场人数" == x.ReportItem) && y.Years == DateTime.Now.Year && y.ProjectId == CurrUser.LoginProjectId
select x.YearTotal).Sum();
if (ProjectTotal1.HasValue)
{
this.divGLPerson.InnerHtml = ProjectTotal1.Value.ToString();
}
if (ProjectTotal2.HasValue)
{
this.divALLPerson.InnerHtml = ProjectTotal2.Value.ToString();
}
if (ProjectTotal1.HasValue && ProjectTotal2.HasValue)
{
this.divZYPerson.InnerHtml = (ProjectTotal2.Value - ProjectTotal1.Value).ToString();
}
else if(ProjectTotal2.HasValue)
{
this.divZYPerson.InnerHtml = ProjectTotal2.Value .ToString();
}
var getallin = APIPageDataService.getPersonInOutNum(this.ProjectId, DateTime.Now.AddDays(-1));
WorkPostS = "[]";
InPostCounts = "[]";
InDutyCounts = "[]";
List<int> InPostCountList = new List<int>();
List<int> InDutyCountList = new List<int>();
List<string> worksList = new List<string>();
var getPersons = Funs.DB.SitePerson_Person.Where(x => x.ProjectId == this.ProjectId && x.IsUsed == 1 && x.InTime <= DateTime.Now
&& !x.OutTime.HasValue);
if (getPersons.Count() > 0)
{
var getWorkIds = getPersons.Where(x => x.WorkPostId != null).Select(x => x.WorkPostId).Distinct();
if (getWorkIds.Count() > 0)
{
foreach (var item in getWorkIds)
{
worksList.Add(WorkPostService.getWorkPostNameById(item));
int isPost = getPersons.Where(x => x.WorkPostId == item).Count();
InPostCountList.Add(isPost);
int inDuty = 0;
if (getallin.Count() > 0)
{
inDuty = getallin.Where(x => x.WorkPostId == item).Count();
}
InDutyCountList.Add(inDuty);
}
}
}
else
{
worksList.Add(" ");
InPostCountList.Add(0);
InDutyCountList.Add(0);
}
WorkPostS = JsonConvert.SerializeObject(worksList);
InPostCounts = JsonConvert.SerializeObject(InPostCountList);
InDutyCounts = JsonConvert.SerializeObject(InDutyCountList);
}
#endregion
#region
protected string divProjectNameTitle;
protected string divProjectAddressTitle;
protected string divProjectMoneyTitle;
protected string divOwnUnitTitle;
protected string divSGUnitTitle;
protected string divJLUnitTitle;
protected string divProjectImg;
/// <summary>
///
/// </summary>
private void getProjectInfo()
{
divProjectNameTitle = "";
divProjectAddressTitle = "";
divProjectMoneyTitle = "";
divOwnUnitTitle = "";
divSGUnitTitle = "";
divJLUnitTitle = "";
divProjectImg = "../res/indexv1/image/index2/center-bg.png";
var project = ProjectService.GetProjectByProjectId(this.ProjectId);
if (project != null)
{
this.divProjectName.InnerHtml = project.ShortName;
divProjectNameTitle = project.ProjectName;
if (!string.IsNullOrEmpty(project.ProjectAddress))
{
this.divProjectAddress.InnerHtml = project.ProjectAddress.Length >8 ? project.ProjectAddress.Substring(0,8) + "..." : project.ProjectAddress;
divProjectAddressTitle = project.ProjectAddress;
}
string unit_yz= ProjectService.getProjectUnitNameByUnitType(project.ProjectId, Const.ProjectUnitType_4);
if (!string.IsNullOrEmpty(unit_yz))
{
this.divOwnUnit.InnerHtml = unit_yz.Length > 8 ? unit_yz.Substring(0, 8) + "..." : unit_yz ;
divOwnUnitTitle = unit_yz;
}
string unit_JL= ProjectService.getProjectUnitNameByUnitType(project.ProjectId, Const.ProjectUnitType_3);
if (!string.IsNullOrEmpty(unit_JL))
{
this.divJLUnit.InnerHtml = unit_JL.Length > 8 ? unit_JL.Substring(0, 8) + "..." : unit_JL;
divJLUnitTitle = unit_JL;
}
string unit_FB = ProjectService.getProjectUnitNameByUnitType(project.ProjectId, Const.ProjectUnitType_2);
if (!string.IsNullOrEmpty(unit_FB))
{
this.divSGUnit.InnerHtml = unit_FB.Length > 8 ? unit_FB.Substring(0, 8)+"..." : unit_FB + "...";
}
var getSGName = from x in Funs.DB.Project_ProjectUnit
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == project.ProjectId && x.UnitType == Const.ProjectUnitType_2
select y.UnitName;
foreach (var item in getSGName)
{
divSGUnitTitle += item + "";
}
this.divProjectMoney.InnerHtml = divProjectMoneyTitle = project.ProjectMoney.ToString()+ "(万元)";
if (project.EndDate.HasValue)
{
this.divEndDate.InnerHtml = string.Format("{0:yyyy-MM-dd}", project.EndDate);
int endDays = (project.EndDate.Value - DateTime.Now).Days;
if (endDays >= 0)
{
this.divRemainingDays.InnerHtml = endDays.ToString();
}
if (project.StartDate.HasValue)
{
int pdays = (project.EndDate.Value - project.StartDate.Value).Days;
if (pdays >= 0)
{
this.divProjectDays.InnerHtml = pdays.ToString();
}
}
}
var getImag = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == project.ProjectId);
if (getImag != null && !string.IsNullOrEmpty(getImag.AttachUrl))
{
string url = getImag.AttachUrl.Replace('\\', '/');
string firtstUrl = Funs.GetStrListByStr(url, ',').FirstOrDefault();
if (!string.IsNullOrEmpty(firtstUrl))
{
string atturl = Funs.RootPath + firtstUrl.Replace(';', ' ').Trim();
if (File.Exists(atturl))
{
divProjectImg = "../"+ firtstUrl.Replace(';', ' ').Trim();
}
}
}
}
}
#endregion
#region
///整改率
protected double CRectificationRate;
///合格率
protected double CQualifiedRate;
/// 焊接一次合格率
protected double FirstPassRate;
/// <summary>
/// 获取质量问题
/// </summary>
private void getCQMSProblem()
{
CRectificationRate = 0;
CQualifiedRate = 0;
FirstPassRate = 0;
var getJointCheckDetail = from x in Funs.DB.Check_JointCheckDetail
join y in Funs.DB.Check_JointCheck on x.JointCheckId equals y.JointCheckId
where y.ProjectId == this.ProjectId
select x;
var getCheckControl = from x in Funs.DB.Check_CheckControl
where x.ProjectId == this.ProjectId
select x;
///问题总数
int AllCount = getJointCheckDetail.Count() + getCheckControl.Count();
this.divCQMSAllNum.InnerHtml = AllCount.ToString();
//if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482")
//{
// this.divCQMSAllNum.InnerHtml = "78";
//}
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;
this.divCQMSCAllNum.InnerHtml = CCount.ToString();
this.divCQMSUCAllNum.InnerHtml = (AllCount - CCount).ToString();
if (CCount > 0)
{
CRectificationRate = Math.Round(CCount * 1.0 / AllCount * 100, 1);
}
}
//if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482")
//{
// CRectificationRate = 97.44;
//}
//if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482")
//{
// this.divCQMSCAllNum.InnerHtml = "76";
// this.divCQMSUCAllNum.InnerHtml = "2";
//}
//var getSpotCheckDetail = from x in Funs.DB.Check_SpotCheckDetail
// // join z in Funs.DB.Check_SpotCheck on x.SpotCheckCode equals z.SpotCheckCode
// join y in Funs.DB.WBS_ControlItemAndCycle on x.ControlItemAndCycleId equals y.ControlItemAndCycleId
// where y.ProjectId == this.ProjectId && x.IsOK != null
// && y.ControlPoint != "C" && y.ControlPoint != "CR"
// //&& z.ProjectId == this.ProjectId
// 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);
// }
//}
var inspectionManagements = from x in Funs.DB.View_CQMS_InspectionManagementDetail where x.ProjectId == this.ProjectId 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);
}
}
if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482")
{
CQualifiedRate = 100;
}
///焊接一次合格率
var getJots = from x in Funs.DB.HJGL_Batch_NDEItem
join y in Funs.DB.HJGL_Batch_BatchTrustItem on x.TrustBatchItemId equals y.TrustBatchItemId
join z in Funs.DB.HJGL_Batch_PointBatchItem on y.PointBatchItemId equals z.PointBatchItemId
join a in Funs.DB.HJGL_Batch_NDE on x.NDEID equals a.NDEID
where z.PointDate != null && z.PointState == "1" && y.RepairRecordId == null
&& a.ProjectId == this.ProjectId
select x;
int allHJCount = getJots.Count();
if (allHJCount > 0)
{
var getOk = getJots.Where(x => x.CheckResult == "1");
int okHJCount = getOk.Count();
if (okHJCount > 0)
{
FirstPassRate = Math.Round(okHJCount * 1.0 / allHJCount * 100, 1);
}
}
if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482")
{
FirstPassRate = 97.63;
}
}
#endregion
#region
protected string SubUnitNames;
protected string OutputValues;
private void getOutputValues()
{
SubUnitNames = "[]";
OutputValues = "[]";
List<string> UnitNameList = new List<string>();
List<int> OutputValueList = new List<int>();
var getUnits = from x in Funs.DB.Project_ProjectUnit
join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
where x.ProjectId == this.ProjectId && (x.UnitType == Const.ProjectUnitType_2 || x.UnitType == Const.ProjectUnitType_6)
select new { x.UnitId, y.ShortUnitName };
if (getUnits.Count() > 0)
{
Random ro = new Random();
foreach (var item in getUnits)
{
UnitNameList.Add(item.ShortUnitName ?? " ");
int OutputValue = ro.Next(100);////获取分包单位产值
OutputValueList.Add(OutputValue);
}
}
else
{
UnitNameList.Add(" ");
OutputValueList.Add(0);
}
SubUnitNames = JsonConvert.SerializeObject(UnitNameList);
OutputValues = JsonConvert.SerializeObject(OutputValueList);
if (CurrUser.LoginProjectId == "b11a16ea-148c-4bae-a5a1-32158b599482")
{
SubUnitNames = "[\"达州\",\"正龙\",\"十三化建\",\"十四化建\",\"金鑫\",\"泰思特\",\"卓建达\",\"瑞达\",\"东方工建\",\"安徽天明\"]";
OutputValues = "[7151.84,7741.03,11814.82,11996.62,298.84,278.88,1473.14,2251.71,1511.37,0]";
}
}
#endregion
/// <summary>
/// 获取天气
/// </summary>
private void getWeatherValues()
{
var getW = WeatherService.GetWeather(this.ProjectId);
if (getW != null)
{
this.divInfo.InnerHtml = getW.WeatherRef;
this.divTEMP.InnerHtml = getW.AllTem;
this.divHJ1.InnerHtml = getW.CurrTem;
this.divHJ3.InnerHtml = getW.Humidity;
this.divHJ5.InnerHtml = getW.Power;
this.divHJ4.InnerHtml = getW.Aqi;
this.divHJ6.InnerHtml = getW.Aqi;
}
}
}
}