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

1123 lines
54 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 FineUIPro.Web.BaseInfo;
using FineUIPro.Web.DataShow;
using FineUIPro.Web.SysManage;
using Model;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.common
{
public partial class mainProject2 : PageBase
{
/// <summary>
/// 项目id
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ProjectId = CurrUser.LoginProjectId;
Model.SGGLDB db = Funs.DB;
//安全人工时
int wHours = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == ProjectId).Max(x => x.WorkHours) ?? 0;
this.divSafeWorkTime.InnerHtml = wHours.ToString();
//本月安全人工时
int wHoursMonth = 0;
DateTime? sDate = Funs.GetNewDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString());
var dayReports = BLL.SitePerson_MonthReportService.getMonthReports(this.ProjectId, sDate);
if (dayReports.Count > 0)
{
wHoursMonth = Convert.ToInt32(dayReports[0].DayWorkTime);
}
this.divSafeWorkTimeMonth.InnerHtml = wHoursMonth.ToString();
//安全培训累计人员
var getTrainRecord = db.EduTrain_TrainRecord.Where(x => x.ProjectId == ProjectId).Max(x => x.TrainPersonNum) ?? 0;
this.divSafePersonNum.InnerHtml = getTrainRecord.ToString();
//安全管理人员
var allSum = from x in Funs.DB.SitePerson_Person
where x.ProjectId == ProjectId && x.IsUsed == true && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime.Value > DateTime.Now)
select x;
var glAllPerson = from x in allSum
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where y.IsHsse==true && x.ProjectId == ProjectId //安管人员
select x;
this.divSafeManagePersonNum.InnerHtml = glAllPerson.Count().ToString();
//未遂事故
var wsAccidentList1 = from x in db.Accident_AccidentPersonRecord
join y in db.Base_AccidentType on x.AccidentTypeId equals y.AccidentTypeId
where y.AccidentTypeName.Contains("未遂") && x.ProjectId == ProjectId
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("未遂") && x.ProjectId == ProjectId
select x;
this.divWS.InnerHtml = (wsAccidentList1.Count() + wsAccidentList2.Count()).ToString();
//整改数据
getZgsj();
//风险预警
getHazard();
//工程概况
getProjectInfo();
//质量培训人员
DateTime date = DateTime.Now.AddDays(-1);
int CqmsPxNum = (from x in Funs.DB.Comprehensive_InspectionPerson
where x.IsTrain == true && x.CompileDate.Value.Year == date.Year && x.CompileDate.Value.Month == date.Month && x.CompileDate.Value.Day == date.Day
select x).Count();
divCqmsPxNum.InnerHtml = CqmsPxNum.ToString();
//施工审批量
int sgspl = Funs.DB.Solution_CQMSConstructSolution.Where(x => x.ProjectId == ProjectId && x.State == "1").Count();
div_sgfaSpl.InnerHtml = sgspl.ToString();
GetJD();
//质量共检
getZlgj();
//焊接
getHj();
//加载质量问题
getZlwt();
//人员信息
getSitePerson();
//项目人员图表
getProjectSitePerson();
//工作台面
getGjsx();
getGztm();
//材料到货
getCldh();
}
}
#region
private void getSitePerson()
{
int AllCount = 0;
int MCount = 0;
var getallin = APIPageDataService.getPersonNum(ProjectId, DateTime.Now);
AllCount = getallin.Count();
if (AllCount > 0)
{
MCount = getallin.Where(x => x.PostType == Const.PostType_1).Count();
}
if (AllCount > 0)
{
////当前现场总人数
div_xcrs.InnerHtml = AllCount.ToString();
//作业人数
div_zyxcrs.InnerHtml = (AllCount - MCount).ToString();
//管理人数
div_glxcrs.InnerHtml = MCount.ToString();
}
}
#endregion
#region
protected string ProjectPersonCount;
protected string ProjectPersonMc;
private void getProjectSitePerson()
{
var list = Funs.DB.Base_Project.Where(x => (x.ProjectState == Const.ProjectState_1 || x.ProjectState == null) && x.Progress != null
&& x.ProjectId == ProjectId).ToList();
foreach (var item in list)
{
ProjectPersonMc += "'" + item.ShortName + "',";
ProjectPersonCount += "'" + APIPageDataService.getPersonNum(item.ProjectId, DateTime.Now).Count() + "',";
}
if (!string.IsNullOrEmpty(ProjectPersonMc) && !string.IsNullOrEmpty(ProjectPersonCount))
{
ProjectPersonMc = ProjectPersonMc.TrimEnd(',');
ProjectPersonCount = ProjectPersonCount.TrimEnd(',');
}
}
#endregion
#region
protected void getZgsj()
{
div_zgsj.InnerHtml = (GetGeneralClosedNum() + GetGeneralNotClosedNum()).ToString();
div_zgywc.InnerHtml = GetGeneralClosedNum().ToString();
div_zgwwc.InnerHtml = GetGeneralNotClosedNum().ToString();
div_zgwcl.InnerHtml = String.Format("{0:N2}", 100.0 * GetGeneralClosedNum() / (GetGeneralNotClosedNum() + GetGeneralClosedNum())).Replace("NaN","0") + "%";
}
/// <summary>
/// 获取隐患整改闭环项
/// </summary>
/// <returns></returns>
public int GetGeneralClosedNum()
{
int result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
where x.States == "3" && x.ProjectId == ProjectId
select x).Count();
return result;
}
/// <summary>
/// 获取隐患未整改完成项
/// </summary>
/// <returns></returns>
public int GetGeneralNotClosedNum()
{
int result = (from x in Funs.DB.HSSE_Hazard_HazardRegister
where x.States != "3" && x.ProjectId == ProjectId
select x).Count();
return result;
}
#endregion
#region
protected string divProjectNameTitle;
protected string divProjectAddressTitle;
protected string divProjectMoneyTitle;
protected string divOwnUnitTitle;
protected string divSGUnitTitle;
protected string divJLUnitTitle;
protected string divProjectImg;
protected string spanProjectName;
protected string spanProjectAddress;
protected string spanOwnUnit;
protected string spanSGUnit;
protected string spanJLUnit;
protected string spanRemark;
/// <summary>
///
/// </summary>
private void getProjectInfo()
{
divProjectNameTitle = "";
divProjectAddressTitle = "";
divProjectMoneyTitle = "";
divOwnUnitTitle = "";
divSGUnitTitle = "";
divJLUnitTitle = "";
divProjectImg = "<div class=\"swiper-slide\"><img src=\"./imags/16.png\"></div>";
var project = ProjectService.GetProjectByProjectId(this.ProjectId);
if (project != null)
{
spanProjectName = "<span title='" + project.ShortName + "'>" + project.ShortName + "</span>";
spanRemark = "<span title='" + project.Remark + "'>" + project.Remark + "</span>";
divProjectNameTitle = project.ProjectName;
if (!string.IsNullOrEmpty(project.ProjectAddress))
{
//this.divProjectAddress.InnerHtml = project.ProjectAddress.Length > 8 ? project.ProjectAddress.Substring(0, 8) + "..." : project.ProjectAddress;
spanProjectAddress = spanProjectName = "<span title='" + project.ProjectAddress + "'>" +
(project.ProjectAddress.Length > 8 ? project.ProjectAddress.Substring(0, 8) + "..." : project.ProjectAddress) + "</span>";
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;
spanOwnUnit = "<span title='" + unit_yz + "'>" +
(unit_yz.Length > 8 ? unit_yz.Substring(0, 8) + "..." : unit_yz) + "</span>";
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;
spanJLUnit = "<span title='" + unit_JL + "'>" +
(unit_JL.Length > 8 ? unit_JL.Substring(0, 8) + "..." : unit_JL) + "</span>";
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 + "...";
spanSGUnit = "<span title='" + unit_FB + "'>" +
(unit_FB.Length > 8 ? unit_FB.Substring(0, 8) + "..." : unit_FB + "...") + "</span>";
}
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() + "<span>天</span>";
}
if (project.StartDate.HasValue)
{
int pdays = (project.EndDate.Value - project.StartDate.Value).Days;
if (pdays >= 0)
{
this.divProjectDays.InnerHtml = pdays.ToString() + "<span>天</span>";
}
}
}
var allowExtensions = new List<string>
{
"jpg", "jpeg", "png", "bmp", "gif", // 图片文件类型
};
var getImag = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == project.ProjectId);
if (getImag != null && !string.IsNullOrEmpty(getImag.AttachUrl))
{
string url = getImag.AttachUrl.Replace('\\', '/');
var UrlList = Funs.GetStrListByStr(url, ',');
bool isHiddDefaultImg = false;
foreach (var item in UrlList)
{
if (!string.IsNullOrEmpty(item))
{
string atturl = Funs.RootPath + item.Replace(';', ' ').Trim();
string fileType = GetFileType(atturl);
if (File.Exists(atturl) && allowExtensions.Contains(fileType))
{
isHiddDefaultImg=true;
divProjectImg += string.Format(" <div class=\"swiper-slide\"><img src=\"{0}\"></div>", atturl.Replace(Funs.RootPath,"/"));
//this.divProjectImgs.Src = divProjectImg;
}
}
}
divProjectImg= divProjectImg.Replace("<div class=\"swiper-slide\"><img src=\"./imags/16.png\"></div>", "");
/*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();
//this.divProjectImgs.Src = divProjectImg;
}
}*/
}
}
}
private string GetFileType(string fileName)
{
string fileType = String.Empty;
int lastDotIndex = fileName.LastIndexOf(".");
if (lastDotIndex >= 0)
{
fileType = fileName.Substring(lastDotIndex + 1).ToLower();
}
return fileType;
}
#endregion
#region
protected string riskData1;
protected string riskData2;
protected string riskData3;
protected string riskData4;
/// <summary>
/// 获取风险管控
/// </summary>
private void getHazard()
{
var getHazards = from x in Funs.DB.Hazard_HazardSelectedItem
join y in Funs.DB.Base_RiskLevel on x.HazardLevel equals y.RiskLevelId
where x.ProjectId == ProjectId
select new { x.HazardSelectedItemId, y.RiskLevel };
var riskLevels = from x in Funs.DB.Base_RiskLevel select x;
List<int> RiskLevelNum = new List<int>();
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
riskData1 = getHazards.Count(x => x.RiskLevel == 1).ToString();
riskData2 = getHazards.Count(x => x.RiskLevel == 2).ToString();
riskData3 = getHazards.Count(x => x.RiskLevel == 3).ToString();
riskData4 = getHazards.Count(x => x.RiskLevel == 4).ToString();
}
/// <summary>
/// 资质预警
/// </summary>
protected string getEarlyWarningCounts()
{
int allCount = 0;
var getPersonQualitys = from x in Funs.DB.QualityAudit_PersonQuality
join y in Funs.DB.SitePerson_Person on x.PersonId equals y.PersonId
where x.LimitDate.HasValue && x.LimitDate < DateTime.Now && y.ProjectId == ProjectId
select x;
//// 预警人数
allCount = getPersonQualitys.Count();
return allCount.ToString();
}
/// <summary>
/// 机械预警
/// </summary>
/// <returns></returns>
protected int GetJxyjNum()
{
int result = 0;
//机具报验的到期提醒和过期提醒记录数加一起
//机具报验的到期提醒数
var num1 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && DateTime.Now < x.NextTestDate && x.ProjectId == ProjectId
&& ((DateTime)x.NextTestDate).AddDays(-15) < DateTime.Now).Count();
//过期提醒记录数
var num2 = Funs.DB.Comprehensive_InspectionMachine.Where(x => x.IsOnSite == true && x.NextTestDate < DateTime.Now && x.ProjectId == ProjectId).Count();
result = num1 + num2;
return result;
}
/// <summary>
/// 获取危大工程审批完成数
/// </summary>
/// <returns></returns>
protected int GetCompletedNum()
{
var result = Project_HSSEData_HSSEService.GetCompletedNum(ProjectId);
return result;
}
/// <summary>
/// 获取危大工程培训人次数
/// </summary>
/// <returns></returns>
protected int GetTrainPersonNum()
{
var result = Project_HSSEData_HSSEService.GetTrainPersonNum(ProjectId);
return result;
}
/// <summary>
/// 获取危大工程施工个数
/// </summary>
/// <returns></returns>
protected int GetConstructionNum()
{
var result = Project_HSSEData_HSSEService.GetConstructionNum(ProjectId);
return result;
}
/// <summary>
/// 获取危大工程完工个数
/// </summary>
/// <returns></returns>
protected int GetFinishedNum()
{
var result = Project_HSSEData_HSSEService.GetFinishedNum(ProjectId);
return result;
}
/// <summary>
/// 获取超危大工程审批完成数
/// </summary>
/// <returns></returns>
protected int GetSuperCompletedNum()
{
var result = Project_HSSEData_HSSEService.GetSuperCompletedNum(ProjectId);
return result;
}
/// <summary>
/// 获取超危大工程培训人次数
/// </summary>
/// <returns></returns>
protected int GetSuperTrainPersonNum()
{
var result = Project_HSSEData_HSSEService.GetSuperTrainPersonNum(ProjectId);
return result;
}
/// <summary>
/// 获取超危大工程施工个数
/// </summary>
/// <returns></returns>
protected int GetSuperConstructionNum()
{
var result = Project_HSSEData_HSSEService.GetSuperConstructionNum(ProjectId);
return result;
}
/// <summary>
/// 获取超危大工程完工个数
/// </summary>
/// <returns></returns>
protected int GetSuperFinishedNum()
{
var result = Project_HSSEData_HSSEService.GetSuperFinishedNum(ProjectId);
return result;
}
#endregion
#region
protected int getTodayCount()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.WorkStatesStr == "作业中").ToList().Count;
return result;
}
protected int getAllCount()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId ).ToList().Count;
return result;
}
/// <summary>
/// 动火作业许可证
/// </summary>
/// <returns></returns>
protected int getWrokCount0()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证" &&x.WorkStatesStr=="作业中").ToList().Count;
return result;
}
protected int getALLWrokCount0()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "动火作业许可证" ).ToList().Count;
return result;
}
protected int getWrokCount1()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
return result;
}
protected int getALLWrokCount1()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "高处作业许可证" ).ToList().Count;
return result;
}
protected int getWrokCount2()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
return result;
}
protected int getALLWrokCount2()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId && x.LicenseTypeName == "吊装作业许可证").ToList().Count;
return result;
}
protected int getWrokCount3()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证" && x.WorkStatesStr == "作业中").ToList().Count;
return result;
}
protected int getALLWrokCount3()
{
var result = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId
&& x.LicenseTypeName != "动火作业许可证" && x.LicenseTypeName != "高处作业许可证" && x.LicenseTypeName != "吊装作业许可证" ).ToList().Count;
return result;
}
#endregion
#region
//质量问题总计
protected string zlallNumber;
//质量问题合格数量
protected string zlfinishNumber;
//质量问题整改率
protected string zlzgl;
protected string zgzglDataValue;
protected void getZlwt()
{
zlallNumber = (from x in Funs.DB.Check_CheckControl
where x.CheckDate <= DateTime.Now && x.ProjectId == ProjectId
select x).Count().ToString();
var num2 = (from x in Funs.DB.Check_CheckControl
where x.CheckDate <= DateTime.Now && x.State == "7" && x.ProjectId == ProjectId
select x).Count();
zlfinishNumber = num2.ToString();
var num3 = (from x in Funs.DB.Check_CheckControl
where x.CheckDate <= DateTime.Now && x.State != "7" && x.ProjectId == ProjectId
select x).Count();
var zgl = String.Format("{0:N2}", 100.0 * num2 / (num2 + num3));
zlzgl = zgl.ToString().Replace("NaN", "0") ;
zgzglDataValue = (100 - (100.0 * num2 / (num2 + num3))).ToString();
}
#endregion
#region
protected string zlgjallNumber;
protected string zlgjfinishNumber;
protected string zlgjzgl;
protected string zggjzglDataValue;
protected void getZlgj()
{
//Check_JointCheck
zlgjallNumber = (from x in Funs.DB.Check_JointCheck
where x.CheckDate <= DateTime.Now && x.ProjectId == ProjectId
select x).Count().ToString();
var num2 = (from x in Funs.DB.Check_JointCheck
where x.CheckDate <= DateTime.Now && x.State == BLL.Const.JointCheck_Complete && x.ProjectId == ProjectId
select x).Count();
zlgjfinishNumber = num2.ToString();
var num3 = (from x in Funs.DB.Check_JointCheck
where x.CheckDate <= DateTime.Now && x.State != BLL.Const.JointCheck_Complete && x.ProjectId == ProjectId
select x).Count();
var zgl = "0";
if (num2 != 0)
{
zgl = String.Format("{0:N2}", 100.0 * num2 / (num2 + num3));
zlgjzgl = zgl.ToString();
zggjzglDataValue = (100 - (100.0 * num2 / (num2 + num3))).ToString();
}
else
{
zlgjzgl = zgl.ToString();
zggjzglDataValue = "0";
}
}
#endregion
#region
protected string hjallNumber = "0";
protected string hjfinishNumber = "0";
protected string hjzgl = "0";
protected string hjDataValue = "0";
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;
//一次检测合格焊口数
int oneCheckJotNum = (from x in db.HJGL_Batch_NDEItem
join y in db.HJGL_Batch_BatchTrustItem on x.TrustBatchItemId equals y.TrustBatchItemId
join z in db.HJGL_Batch_PointBatchItem on y.PointBatchItemId equals z.PointBatchItemId
join a in db.HJGL_Batch_NDE on x.NDEID equals a.NDEID
where z.PointDate != null && z.PointState == "1" && y.RepairRecordId == null
&& a.ProjectId == ProjectId
select x.NDEItemID).Count();
//一次检测返修焊口数
int oneCheckRepairJotNum = (from x in db.HJGL_Batch_NDEItem
join y in db.HJGL_Batch_BatchTrustItem on x.TrustBatchItemId equals y.TrustBatchItemId
join z in db.HJGL_Batch_PointBatchItem on y.PointBatchItemId equals z.PointBatchItemId
join a in db.HJGL_Batch_NDE on x.NDEID equals a.NDEID
where z.PointDate != null && z.PointState == "1" && y.RepairRecordId == null && x.CheckResult == "2"
&& a.ProjectId == ProjectId
select x.NDEItemID).Count();
if (oneCheckJotNum > 0)
{
var a = Convert.ToDouble(oneCheckJotNum - oneCheckRepairJotNum);
var b = Convert.ToDouble(oneCheckJotNum);
result = Convert.ToDouble(decimal.Round(decimal.Parse((a / b * 100).ToString()), 0));
hjallNumber = b.ToString();
hjfinishNumber = a.ToString();
hjzgl = result.ToString();
hjDataValue = (100 - result).ToString();
}
}
#endregion
#region 线
protected string swgclHtml;
protected void GetJD()
{
int index = 0;
var result = Funs.DB.View_JDGL_QuantityCompletion
.Where(qc => qc.ProjectId == this.CurrUser.LoginProjectId)
.OrderBy(qc => qc.SortIndex)
.ThenBy(qc => qc.Name)
.ToList();
foreach (var item in result)
{
index++;
swgclHtml += "<div class=\"tr1\">";
swgclHtml += string.Format("<div class=\"th r-line\" style=\"width: .625rem;\"><p>{0}</p></div>",index);
swgclHtml += string.Format("<div class=\"th r-line\" style=\"width: 1rem;\"><p>{0}</p> </div>",item.Name);
swgclHtml += string.Format("<div class=\"th r-line\" style=\"width: .8375rem;\"><p>{0}</p> </div>",item.Unit);
swgclHtml += string.Format(" <div class=\"th r-line\" style=\"width: .8375rem;\"><p>{0}</p> </div>",item.DesignNum);
swgclHtml += string.Format("<div class=\"th r-line\" style=\"width: 2.325rem;\"><p><span class=\"r-line s1\">{0}</span><span class=\"r-line s1\">{1}</span><span class=\"r-line s1\" style=\"border: none;\">{2}</span></p> </div>",item.PlanNum,item.RealNum,item.Rate);
swgclHtml += string.Format(" <div class=\"th r-line \" style=\"width: 2.325rem;\"><p><span class=\"r-line s1\">{0}</span><span class=\"r-line s1\">{1}</span><span class=\"r-line s1\" style=\"border: none;\">{2}</span></p> </div>",item.TotalPlanNum,item.TotalRealNum,item.TotalRate);
swgclHtml += string.Format("<div class=\"th r-line\" style=\"width: .8375rem;\"><p>{0}</p> </div>",item.SumRate);
swgclHtml += " </div>";
}
}
protected string Two
{
get
{
List<Model.SingleSerie> series = new List<Model.SingleSerie>();
Model.BusinessColumn businessColumn = new Model.BusinessColumn();
List<string> listCategories = new List<string>();
businessColumn.title = "赢得值曲线";
Model.Project_Installation installation = BLL.Project_InstallationService.GetProjectInstallationByProjectId(this.CurrUser.LoginProjectId);
if (installation != null)
{
Model.SingleSerie s = new Model.SingleSerie();
Model.SingleSerie s2 = new Model.SingleSerie();
Model.SingleSerie s3 = new Model.SingleSerie();
Model.SingleSerie s4 = new Model.SingleSerie();
Model.SingleSerie s5 = new Model.SingleSerie();
Model.SingleSerie s6 = new Model.SingleSerie();
List<double> listdata = new List<double>();
List<double> listdata2 = new List<double>();
List<double> listdata3 = new List<double>();
List<double> listdata4 = new List<double>();
List<double> listdata5 = new List<double>();
List<double> listdata6 = new List<double>();
string strSql = "select distinct (cast(YEAR(Months) as varchar(4))+'.'+cast(MONTH(Months) as varchar(2))) as 月份,t.Months," +
"ThisRealCost as '本月已完工作实际费用-ACWP',ThisPlanCost as '本月已完工作预算费用-BCWP',ThisPlanValue as '本月计划工作预算费用-BCWS',TotalPlanValue as '累计计划工作预算费用-BCWS',TotalRealCost as '累计已完工作实际费用-ACWP',TotalPlanCost as '累计已完工作预算费用-BCWP' " +
"from dbo.View_WBS_CostControlParentDetail as t where ParentId=@Id order by t.Months";
//string date = DateTime.Now.Year + "-" + DateTime.Now.Month + "-01";
SqlParameter[] parameter = new SqlParameter[]
{
new SqlParameter("@Id",installation.InstallationId),
//new SqlParameter("@Months",date),
};
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
decimal lastbcws = 0, bcws = 0, lastacwp = 0, acwp = 0, lastbcwp = 0, bcwp = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["本月已完工作实际费用-ACWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作实际费用-ACWP"].ToString()) / 10000;
dt.Rows[i]["本月已完工作预算费用-BCWP"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月已完工作预算费用-BCWP"].ToString()) / 10000;
dt.Rows[i]["本月计划工作预算费用-BCWS"] = Funs.GetNewDecimalOrZero(dt.Rows[i]["本月计划工作预算费用-BCWS"].ToString()) / 10000;
bcws = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计计划工作预算费用-BCWS"].ToString());
acwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作实际费用-ACWP"].ToString());
bcwp = Funs.GetNewDecimalOrZero(dt.Rows[i]["累计已完工作预算费用-BCWP"].ToString());
if (bcws == lastbcws)
{
if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now)
{
dt.Rows[i]["累计计划工作预算费用-BCWS"] = 0;
}
else
{
dt.Rows[i]["累计计划工作预算费用-BCWS"] = bcws / 10000;
}
}
else
{
dt.Rows[i]["累计计划工作预算费用-BCWS"] = bcws / 10000;
}
if (acwp == lastacwp)
{
if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now)
{
dt.Rows[i]["累计已完工作实际费用-ACWP"] = 0;
}
else
{
dt.Rows[i]["累计已完工作实际费用-ACWP"] = acwp / 10000;
}
}
else
{
dt.Rows[i]["累计已完工作实际费用-ACWP"] = acwp / 10000;
}
if (bcwp == lastbcwp)
{
if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) > DateTime.Now)
{
dt.Rows[i]["累计已完工作预算费用-BCWP"] = 0;
}
else
{
dt.Rows[i]["累计已完工作预算费用-BCWP"] = bcwp / 10000;
}
}
else
{
dt.Rows[i]["累计已完工作预算费用-BCWP"] = bcwp / 10000;
}
lastbcws = bcws;
lastacwp = acwp;
lastbcwp = bcwp;
listCategories.Add(dt.Rows[i]["月份"].ToString());
if (Funs.GetNewDateTimeOrNow(dt.Rows[i]["Months"].ToString()) <= DateTime.Now)
{
listdata.Add(Convert.ToDouble(dt.Rows[i]["本月计划工作预算费用-BCWS"]));
listdata2.Add(Convert.ToDouble(dt.Rows[i]["累计计划工作预算费用-BCWS"]));
listdata3.Add(Convert.ToDouble(dt.Rows[i]["本月已完工作预算费用-BCWP"]));
listdata4.Add(Convert.ToDouble(dt.Rows[i]["累计已完工作预算费用-BCWP"]));
listdata5.Add(Convert.ToDouble(dt.Rows[i]["本月已完工作实际费用-ACWP"]));
listdata6.Add(Convert.ToDouble(dt.Rows[i]["累计已完工作实际费用-ACWP"]));
}
}
s.data = listdata;
s2.data = listdata2;
s3.data = listdata3;
s4.data = listdata4;
s5.data = listdata5;
s6.data = listdata6;
series.Add(s);
series.Add(s2);
series.Add(s3);
series.Add(s4);
series.Add(s5);
series.Add(s6);
businessColumn.categories = listCategories;
businessColumn.series = series;
}
return JsonConvert.SerializeObject(businessColumn);
}
}
#endregion
#region
protected string Person
{
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>();
var persons = from x in db.SitePerson_Person where x.ProjectId == this.CurrUser.LoginProjectId && x.IsUsed == true && x.InTime <= DateTime.Now && (!x.OutTime.HasValue || x.OutTime > DateTime.Now) select x;
var posts = (from x in persons
join y in db.Base_WorkPost on x.WorkPostId equals y.WorkPostId
select y).Distinct();
Model.SingleSerie s = new Model.SingleSerie();
List<double> listdata = new List<double>();
//木工
listCategories.Add("木工");
int workPostCount1 = persons.Count(x => x.WorkPostId == Const.WorkPost_Carpentry);
listdata.Add(workPostCount1);
//钢筋工
listCategories.Add("钢筋工");
int workPostCount2 = persons.Count(x => x.WorkPostId == Const.WorkPost_SteelWorker);
listdata.Add(workPostCount2);
//瓦工
listCategories.Add("瓦工");
int workPostCount3 = persons.Count(x => x.WorkPostId == Const.WorkPost_Bricklayer);
listdata.Add(workPostCount3);
//混凝土工
listCategories.Add("混凝土工");
int workPostCount4 = persons.Count(x => x.WorkPostId == Const.WorkPost_ConcreteWorker);
listdata.Add(workPostCount4);
//钳工
listCategories.Add("钳工");
int workPostCount5 = persons.Count(x => x.WorkPostId == Const.WorkPost_Fitter1 || x.WorkPostId == Const.WorkPost_Fitter2);
listdata.Add(workPostCount5);
//焊工
listCategories.Add("焊工");
int workPostCount6 = persons.Count(x => x.WorkPostId == Const.WorkPost_Welder1 || x.WorkPostId == Const.WorkPost_Welder2 ||
x.WorkPostId == Const.WorkPost_Welder3 || x.WorkPostId == Const.WorkPost_Welder4 || x.WorkPostId == Const.WorkPost_Welder5);
listdata.Add(workPostCount6);
//铆工
listCategories.Add("铆工");
int workPostCount7 = persons.Count(x => x.WorkPostId == Const.WorkPost_Riveter);
listdata.Add(workPostCount7);
//管工
listCategories.Add("管工");
int workPostCount8 = persons.Count(x => x.WorkPostId == Const.WorkPost_Foreman);
listdata.Add(workPostCount8);
//电工
listCategories.Add("电工");
int workPostCount9 = persons.Count(x => x.WorkPostId == Const.WorkPost_Electrician1 || x.WorkPostId == Const.WorkPost_Electrician2
|| x.WorkPostId == Const.WorkPost_Electrician3);
listdata.Add(workPostCount9);
//仪表工
listCategories.Add("仪表工");
int workPostCount10 = persons.Count(x => x.WorkPostId == Const.WorkPost_Instrumentalist);
listdata.Add(workPostCount10);
//防腐保温工
listCategories.Add("防腐保温工");
int workPostCount11 = persons.Count(x => x.WorkPostId == Const.WorkPost_AnticorrosionWorker);
listdata.Add(workPostCount11);
//防腐保温工
listCategories.Add("管理人员");
int workPostCount12 = (from x in persons
join y in db.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where y.PostType == Const.PostType_1
select x).Count();
listdata.Add(workPostCount12);
//其他
listCategories.Add("其他");
int workPostCount13 = persons.Count() - workPostCount1 - workPostCount2 - workPostCount3 - workPostCount4 - workPostCount5 - workPostCount6 - workPostCount7
- workPostCount8 - workPostCount9 - workPostCount10 - workPostCount11 - workPostCount12;
listdata.Add(workPostCount13);
s.data = listdata;
series.Add(s);
businessColumn.categories = listCategories;
businessColumn.title = persons.Count().ToString();
businessColumn.series = series;
return JsonConvert.SerializeObject(businessColumn);
}
}
#endregion
#region
protected string getLicenseManager()
{
string returnHtml = "";
var list = Funs.DB.View_License_LicenseManager.Where(x => x.ProjectId == ProjectId).ToList();
foreach (var item in list)
{
var gfx = "风险作业";
if (item.IsHighRisk != true)
{
gfx = "非高风险";
}
var shortUnitname = Funs.DB.Base_Unit.Where(x => x.UnitId == item.UnitId).FirstOrDefault().ShortUnitName;
returnHtml += "<div class=\"li\">" + item.LicenseManagerCode + "-" + shortUnitname + "-" + item.WorkAreaName + "-" + gfx + "-" + item.LicenseTypeName
+ "</div>";
}
return returnHtml;
}
#endregion
#region
protected string gjsxRate = "0";
protected void getGztm()
{
//div_dbsxlist.InnerHtml = "";
string returnDbHtml = "<div></div>";
if (!string.IsNullOrEmpty(ProjectId))
{
//关键事项
string strSql = @"SELECT GJSXID AS DataId
,'0BEA2126-7A48-40EB-8E21-99148E91A22B' AS MenuId
,'关键事项待处理' AS MenuName
,GJSX.Detail AS Content
,users.UserId
,users.UserName
,GJSX.CreateDate AS DataTime
,CONVERT(varchar(100),GJSX.CreateDate, 23) AS DataTimeStr
,'../PZHGL/GJSX/GJSXListEdit.aspx?ToDo=ToDo&EditType=Edit&ID='+GJSXID AS PCUrl
FROM GJSX
LEFT JOIN Sys_User AS users ON users.UserId =@userId
WHERE GJSX.ProjectId=@projectId AND
GJSX.State != 0 AND (((select count(*) from GJSX_detail detail where detail.Progress_user=@userId and detail.GJSXID=GJSX.GJSXID)=0
and (select count(*) from GJSX_Process process where process.UserId=@userId and process.GJSXID=GJSX.GJSXID)>0)
or (GJSX.User_Acceptance like '%'+@userId+'%' and (select count(*) from GJSX_detail detail where detail.GJSXID=GJSX.GJSXID)=(select count(*) from GJSX_Process process where process.GJSXID=GJSX.GJSXID))
)";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@userId", CurrUser.UserId));
listStr.Add(new SqlParameter("@projectId", ProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
var Gjsxcount = tb.Rows.Count;
div_gjsx.InnerHtml = Gjsxcount.ToString();
var getDataList = Funs.DB.Sp_Project_GetToDoItems(this.CurrUser.LoginProjectId, this.CurrUser.UserId).ToList();
//待办事项、个人流程
div_dbsx.InnerHtml = getDataList.Count().ToString();
div_grlc.InnerHtml = getDataList.Count().ToString();
foreach (var item in getDataList)
{
returnDbHtml += "<div class=\"li\" style=\"cursor:pointer\" onclick=\"returnWindows('" + item.PCUrl + "')\"><span>" + item.MenuName + "</span><span>" + item.Content + "</span><span>" +
item.DataTime.ToString().Replace('/', '-').Split(' ')[0] + "</span></div>";
}
}
else {
returnDbHtml = "<div></div>";
}
this.div_dbsxlist.InnerHtml = returnDbHtml;
}
/// <summary>
/// 加载关键事项
/// </summary>
protected void getGjsx()
{
string returnDbHtml = "<div></div>";
////关键事项
if (!string.IsNullOrEmpty(ProjectId))
{
string strSql = @"SELECT GJSXID AS DataId
,'0BEA2126-7A48-40EB-8E21-99148E91A22B' AS MenuId
,'关键事项待处理' AS MenuName
,GJSX.Detail AS Content
,users.UserId
,users.UserName
,GJSX.CreateDate AS DataTime
,CONVERT(varchar(100),GJSX.CreateDate, 23) AS DataTimeStr
,'../PZHGL/GJSX/GJSXListEdit.aspx?ToDo=ToDo&EditType=Edit&ID='+GJSXID AS PCUrl
FROM GJSX
LEFT JOIN Sys_User AS users ON users.UserId =@userId
WHERE GJSX.ProjectId=@projectId AND
GJSX.State != 0 AND (((select count(*) from GJSX_detail detail where detail.Progress_user=@userId and detail.GJSXID=GJSX.GJSXID)=0
and (select count(*) from GJSX_Process process where process.UserId=@userId and process.GJSXID=GJSX.GJSXID)>0)
or (GJSX.User_Acceptance like '%'+@userId+'%' and (select count(*) from GJSX_detail detail where detail.GJSXID=GJSX.GJSXID)=(select count(*) from GJSX_Process process where process.GJSXID=GJSX.GJSXID))
)";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@userId", CurrUser.UserId));
listStr.Add(new SqlParameter("@projectId", ProjectId));
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
for (int i = 0; i < tb.Rows.Count; i++)
{
returnDbHtml += "<div class=\"li\" style=\"cursor:pointer\" " +
"onclick=\"returnWindows(\"" + tb.Rows[i]["PCUrl"] + "\")\"><span>" + tb.Rows[i]["MenuName"] + "</span><span>" + tb.Rows[i]["Content"] + "</span><span>" +
tb.Rows[i]["DataTime"].ToString().Replace('/', '-').Split(' ')[0] + "</span></div>";
}
}
else
{
returnDbHtml = "<div></div>";
}
this.div_gjsxlist.InnerHtml = returnDbHtml;
List<SqlParameter> listStaticListStr = new List<SqlParameter>();
listStaticListStr.Add(new SqlParameter("@UserID", null));
listStaticListStr.Add(new SqlParameter("@unit", null));
listStaticListStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId));
listStaticListStr.Add(new SqlParameter("@CNProfessional_ID", null));
listStaticListStr.Add(new SqlParameter("@questionType", null));
listStaticListStr.Add(new SqlParameter("@processMan", null)); listStaticListStr.Add(new SqlParameter("@User_Acceptance", null));
SqlParameter[] Staticparameter = listStaticListStr.ToArray();
DataTable statcitbDataTable = SQLHelper.GetDataTableRunProc("Sp_GJSXStatistic", Staticparameter);
var allcount = Funs.GetNewIntOrZero(statcitbDataTable.Rows[0]["allcount"].ToString()) ;
var closecount = Funs.GetNewIntOrZero(statcitbDataTable.Rows[0]["closecount"].ToString());
gjsxRate = String.Format("{0:N2}", 100.0 * closecount / allcount);
gjsxRate = gjsxRate.ToString().Replace("NaN", "0")+"%";
}
#endregion
/// <summary>
/// 关闭弹出窗
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
getGztm();
getGjsx();
}
/// <summary>
/// 打开待办
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnshowWindows(object sender, EventArgs e)
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("{0}", hiddenUrl.Value, "办理 - ")));
}
#region
protected string gdclHtml;
protected string sbclHtml;
protected string gdclHead = "<div class=\"trth\" style=\"background: rgba(33, 55, 113, .4);\"><div class=\"th r-line\" style=\"width: .7875rem;\"><p>材料类别</p></div><div class=\"th r-line\" style=\"width: .8375rem;\"><p>设计量</p></div><div class=\"th r-line\" style=\"width: 1.575rem;\"><p class=\"b-line\">采购量</p><p><span class=\"r-line\">采购量</span><span class=\"r-line\">百分比</span></p></div><div class=\"th r-line\" style=\"width: 1.575rem;\"><p class=\"b-line\">到货量</p><p><span class=\"r-line\">已到货</span><span class=\"r-line\">百分比</span></p></div><div class=\"th\" style=\"width: 1.575rem;\"><p class=\"b-line\">领料量</p><p><span class=\"r-line\">已领料</span><span>百分比</span></p></div></div>";
protected string sbclHead = "<div class=\"trth\" style=\"background: rgba(33, 55, 113, .4);\"><div class=\"th r-line\" style=\"width: 2.9875rem;\"><p>合同号</p></div>" +
"<div class=\"th r-line\" style=\"width: .7875rem;\"><p>采购总量</p></div>" +
"<div class=\"th r-line\" style=\"width: .7875rem;\"><p>发货总量</p></div>" +
"<div class=\"th r-line\" style=\"width: .7875rem;\"><p>到货总量</p></div>" +
"<div class=\"th r-line\" style=\"width: .9875rem;\"><p>到货百分比</p></div>";
private void getCldh()
{
//管道材料
var pid = BLL.ProjectService.GetCLProjectCodeByProjectId(ProjectId).ToString();
var list = Funs.DB.CLGL_PipelineMaterialSumList.Where(x => x.Type == "M" && x.ProjectId == pid);
foreach (var item in list)
{
gdclHtml += "<div class=\"tr\">";
gdclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + item.C1 + "</span>";
gdclHtml += "<span class=\"r-line\" style=\"width: .8375rem; \">" + (string.IsNullOrEmpty(item.C2) ? "0" : item.C2) + "</span>";
gdclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + (string.IsNullOrEmpty(item.C4) ? "0" : item.C4) + "</span>";
gdclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + (string.IsNullOrEmpty(item.C5) ? "0%" : item.C5) + "</span>";
gdclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + (string.IsNullOrEmpty(item.C6) ? "0" : item.C6) + "</span>";
gdclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + (string.IsNullOrEmpty(item.C7) ? "0%" : item.C7) + "</span>";
gdclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + (string.IsNullOrEmpty(item.C8) ? "0" : item.C8) + "</span>";
gdclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + (string.IsNullOrEmpty(item.C9) ? "0%" : item.C9) + "</span>";
gdclHtml += "</div>";
}
//设备材料
var SbclList = Funs.DB.CLGL_ContractListSum.Where(x => x.C1 == "设备" && x.ProjectId == pid);
foreach (var item in SbclList)
{
sbclHtml += "<div class=\"tr\">";
double SbcllCgl = 0.0;
double Sbdhs = 0.0;
if (string.IsNullOrEmpty(item.C7))
{
SbcllCgl += 0;
Sbdhs += 0;
}
else
{
SbcllCgl += Convert.ToDouble(item.C7);
Sbdhs += Convert.ToDouble(item.C9);
}
sbclHtml += "<span class=\"r-line\" style=\"width: 2.9875rem; \">" + item.C2 + "</span>";
sbclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + SbcllCgl + "</span>";
sbclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + item.C7 + "</span>";
sbclHtml += "<span class=\"r-line\" style=\"width: .7875rem; \">" + Sbdhs + "</span>";
//百分比
var dhbfb = "0%";
if (SbcllCgl + Sbdhs != 0)
{
dhbfb = String.Format("{0:N2}", 100.0 * Sbdhs / (Sbdhs + SbcllCgl), 2) + "%";
}
sbclHtml += "<span class=\"r-line\" style=\"width: .9875rem; \">" + dhbfb + "</span>";
sbclHtml += "</div>";
}
}
#endregion
}
}