CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/ZHGL/InspectionSummary/InspectionSummary.aspx.cs

1134 lines
49 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.Data;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using BLL;
using Model;
using AspNet = System.Web.UI.WebControls;
namespace FineUIPro.Web.ZHGL.InspectionSummary
{
public partial class InspectionSummary : PageBase
{
/// <summary>
/// 页面加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
}
/// <summary>
/// 加载表头
/// </summary>
protected void Page_Init(object sender, EventArgs e)
{
InitGrid();
}
#region
private void InitGrid()
{
//根据在建项目获取表头
var list = Funs.DB.Base_Project.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).OrderBy(x => x.ProjectCode).ToList();
for (int i = 0; i < list.Count; i++)
{
GroupField p = new GroupField();
p.Width = Unit.Pixel(200);
p.HeaderText = list[i].ShortName;
p.TextAlign = TextAlign.Left;
//p.HeaderToolTip= list[i].
BoundField person = new BoundField();
person.Width = Unit.Pixel(200);
person.DataField = "ThisProject" + (i + 1).ToString();
#region
var textJl = "";
var getPUser = Funs.DB.Project_ProjectUser.Where(x => x.ProjectId == list[i].ProjectId);
var getSysUser = Funs.DB.Sys_User;
if (getPUser.Count() > 0)
{
///施工经理
var c = getPUser.FirstOrDefault(x => x.RoleId.Contains(BLL.Const.ConstructionManager));
if (c != null)
{
textJl += getSysUser.Where(x => x.UserId == c.UserId).FirstOrDefault().UserName + ",";
}
////安全经理
var h = getPUser.FirstOrDefault(x => x.RoleId.Contains(BLL.Const.HSSEManager));
if (h != null)
{
textJl += getSysUser.Where(x => x.UserId == h.UserId).FirstOrDefault().UserName + ",";
}
////质量经理
var qa = getPUser.FirstOrDefault(x => x.RoleId.Contains(BLL.Const.QAManager));
if (qa != null)
{
textJl += getSysUser.Where(x => x.UserId == qa.UserId).FirstOrDefault().UserName;
}
}
#endregion
person.HeaderText = textJl;
person.DataToolTipField = "CompileDate" + (i + 1).ToString();
person.ColumnID = "ThisProject" + (i + 1).ToString();
p.Columns.Add(person);
Grid1.Columns.Add(p);
}
}
#endregion
/// <summary>
/// 判断生成操作
/// </summary>
protected void btnNew_Juge(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.drpCompileDateMonth.Text.Trim()))
{
ShowNotify("日期不能为空。", MessageBoxIcon.Warning);
PageContext.RegisterStartupScript("CloseRefresh()");
return;
}
//根据日期查询是否有数据
var modelSum = Funs.DB.Inspection_Summary.Where(x => x.CompileDateMonth == this.drpCompileDateMonth.Text.Trim()).FirstOrDefault();
//查到数据,二次确认
if (modelSum != null)
{
PageContext.RegisterStartupScript(Confirm.GetShowReference("该日期已生成数据,是否确认重新生成?", String.Empty, MessageBoxIcon.Question,
PageManager1.GetCustomEventReference(false, "Confirmgd_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
PageContext.RegisterStartupScript("CloseRefresh()");
}
else
{
btnNew_Click();
}
}
/// <summary>
/// 确认按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
{
if (e.EventArgument == "Confirmgd_OK" || e.EventArgument == "Confirmgy_OK")
{
// 根据日期查询是否有数据
var modelSum = Funs.DB.Inspection_Summary.Where(x => x.CompileDateMonth == this.drpCompileDateMonth.Text.Trim()).FirstOrDefault();
//删除数据
InspectionSummaryService.Delete(modelSum.CompileDateMonth);
BindGrid();
btnNew_Click();
}
}
public class ProjectIdAndDate {
public string ProjectId { get; set; }
public DateTime? Mdate { get; set; }
public string state { get; set; }
}
#region
protected void btnNew_Click()
{
if (string.IsNullOrEmpty(this.drpCompileDateMonth.Text.Trim()))
{
ShowNotify("日期不能为空。", MessageBoxIcon.Warning);
PageContext.RegisterStartupScript("CloseRefresh()");
return;
}
List<Inspection_Summary> allList = new List<Inspection_Summary>();
#region
//1.获取项目
var SummeryResult = "0";
#region
var getPersonLists = (from x in Funs.DB.View_SitePerson_Person
select new
{
x.ProjectId
}).ToList();
//特种作业人员
var tzPersonList = (from x in Funs.DB.SitePerson_Person
join y in Funs.DB.Base_WorkPost on x.WorkPostId equals y.WorkPostId
where y.PostType == Const.PostType_2 && x.OutTime == null
select new { x.ProjectId, y.PostType }).ToList();
//移动端安全巡检
var list2 = Funs.DB.View_Hazard_HazardRegister.Select(x => new View_Hazard_HazardRegister
{
ProblemTypes = x.ProblemTypes,
ProjectId = x.ProjectId,
CheckTime=x.CheckTime,
States=x.States
}).Where(x => x.ProblemTypes == "1").ToList();
//周例会
var list3 = Funs.DB.Meeting_WeekMeeting.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.WeekMeetingDate }).ToList();
//月例会
var list4 = Funs.DB.Meeting_MonthMeeting.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.MonthMeetingDate }).ToList();
//作业票
var list5 = Funs.DB.View_License_LicenseManager
.Select(x => new ProjectIdAndDate { ProjectId = x.ProjectId, Mdate = x.CompileDate })
.ToList();
//工程师日志
var list6 = (from x in Funs.DB.Manager_HSSELog
where x.IsVisible !=false
select new
{
x.ProjectId,
x.CompileDate,
x.IsVisible
}).ToList();
//HSE管理月报
var list7 = Funs.DB.Manager_MonthReportC.Select(x=> new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.Months }).ToList();
//质量巡检
var list8 = Funs.DB.Check_CheckControl.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.CheckDate,state=x.State }).ToList();
//设备材料报验
var list10 = Funs.DB.Comprehensive_InspectionEquipment.Select
(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.InspectionDate }).ToList();
//人员报验
var list11 = Funs.DB.Comprehensive_InspectionPerson.
Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.ApprovalTime }).ToList();
//机具报验
var list13 = Funs.DB.Comprehensive_InspectionMachine
.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.InspectionDate }).ToList();
//设计变更管理
var list14 = Funs.DB.Comprehensive_DesignChangeOrder
.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.IssuedDate }).ToList();
//施工方案管理
var list15 = Funs.DB.Comprehensive_GeneralPlanApproval
.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.ApprovalDate }).ToList();
//设计交底管理
var list16 = Funs.DB.Comprehensive_DesignDetails
.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.DetailsDate }).ToList();
//NCR
var list17 = Funs.DB.Comprehensive_NCRManagement
.Select(x=>new ProjectIdAndDate { ProjectId=x.ProjectId, Mdate = x.IssuedDate }).ToList();
//质量周报
var list18 = (from x in Funs.DB.Report_WeekAndMonthReport
where x.ReportType=="1"
select new
{
x.ProjectId,
x.EndDate,
x.ReportType
}).ToList();
//质量月报
var list19 = (from x in Funs.DB.Report_WeekAndMonthReport
where x.ReportType == "2"
select new
{
x.ProjectId,
x.EndDate,
x.ReportType
}).ToList();
//一次共检合格数
var list20 = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
where y.IsOnceQualified == true && y.InspectionDate != null
select new { y.ProjectId,y.InspectionDate,y.IsOnceQualified,x.InspectionId, Isid= y.InspectionId }).ToList();
////总数
var list21 = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
join y in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
where y.InspectionDate != null
select new { y.ProjectId, x.InspectionId, Isid = y.InspectionId,y.InspectionDate }).ToList();
//关键事项
var list22 = (from x in Funs.DB.GJSX
select new
{
x.ProjectId,
x.CreateDate
}).ToList();
//人脸考勤
//var list23 = (from x in Funs.DB.T_d_facerecord
// select new { x.ProjectId }).ToList();
//实名制是否启用
var list24 = (from x in Funs.DB.RealName_SynchroSet
join y in Funs.DB.Base_Project on x.ProCode equals y.ProjectCode
select new { y.ProjectId }).ToList();
#endregion
List<String> listProjectid = new List<string>();
var list = (from x in Funs.DB.Base_Project
where x.ProjectState == Const.ProjectState_1 || x.ProjectState == null
orderby x.ProjectCode
select new
{
x.ProjectId,
x.ProjectState,
x.ProjectCode
}).ToList();
//查询所有的projectid数据
for (int i = 0; i < list.Count; i++)
{
listProjectid.Add(list[i].ProjectId);
}
//wbs数据查询
var listWbs = Funs.DB.WBS_BreakdownProject.Select(x => new { ProjectId = x.ProjectId }).ToList();
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
for (int i = 0; i < list.Count; i++)
{
var pid = list[i].ProjectId;
#region
Inspection_Summary model = new Inspection_Summary();
model.ProjectId = pid;
//显示日期
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
//人员信息档案
model.InspectionSummaryMbId = "1";
model.SummeryResult = getPersonLists.Where(x => x.ProjectId == pid).ToList().Count().ToString();
allList.Add(model);
//特种作业人员
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "2";
model.SummeryResult = tzPersonList.Where(x=>x.ProjectId==pid).Count().ToString();
allList.Add(model);
//安全巡检
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "3";
var AqxjCount = list2.Where(x => x.ProjectId == pid).ToList().Count();
model.SummeryResult = AqxjCount.ToString();
//时间
if (AqxjCount > 0)
{
model.CompileDate = list2.Where(x => x.ProjectId == pid).OrderByDescending(x=>x.CheckTime).FirstOrDefault().CheckTime;
}
allList.Add(model);
//安全巡检已闭合
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "28";
AqxjCount = list2.Where(x => x.ProjectId == pid && x.States=="3").ToList().Count();
model.SummeryResult = AqxjCount.ToString();
//时间
if (AqxjCount > 0)
{
model.CompileDate = list2.Where(x => x.ProjectId == pid).OrderByDescending(x => x.CheckTime).FirstOrDefault().CheckTime;
}
allList.Add(model);
//周例会
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDate = DateTime.Now;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "4";
var ZlhCount = list3.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = ZlhCount.ToString();
if (ZlhCount > 0)
{
//会议时间
model.CompileDate = list3.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//月例会
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "5";
var YlhCount = list4.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = YlhCount.ToString();
if (YlhCount > 0)
{
//会议时间
model.CompileDate = list4.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//作业票
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "6";
var ZypCount = list5.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = ZypCount.ToString();
if (ZypCount>0)
{
//申请时间
model.CompileDate = list5.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//工作报告
//工程师日志
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "7";
var GcsrzCount = list6.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = GcsrzCount.ToString();
if (GcsrzCount>0)
{
//日志时间
model.CompileDate = list6.Where(x => x.ProjectId == pid).OrderByDescending(x => x.CompileDate).FirstOrDefault().CompileDate;
}
allList.Add(model);
//HSE管理月报
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "8";
var HsseGlybCount = list7.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = HsseGlybCount.ToString();
if (HsseGlybCount>0)
{
var date = Convert.ToDateTime(list7.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().
Mdate);
date = date.AddDays(24);
//月份显示25号
model.CompileDate = date;
}
allList.Add(model);
#endregion
#region
//质量巡检
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDate = DateTime.Now;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "9";
var ZlxjCount = list8.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = ZlxjCount.ToString();
if (ZlxjCount>0)
{
//巡检日期
model.CompileDate = list8.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//质量巡检已闭合项
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDate = DateTime.Now;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "29";
//已闭合
ZlxjCount = list8.Where(x => x.ProjectId == pid&&x.state=="7").ToList().Count;
model.SummeryResult = ZlxjCount.ToString();
if (ZlxjCount > 0)
{
//巡检日期
model.CompileDate = list8.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//WBS数据
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "10";
var WbsCount = listWbs.Where(x => x.ProjectId == pid).ToList().Count;
if (WbsCount > 0)
{
model.SummeryResult = "已裁剪";
}
else {
model.SummeryResult = "未裁剪";
}
allList.Add(model);
//综合管理
//设备材料报验
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "11";
var SbclByCount = list10.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = SbclByCount.ToString();
if (SbclByCount>0)
{
//报验日期
model.CompileDate = list10.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//人员报验
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "12";
var RybyCount = list11.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = RybyCount.ToString();
if (RybyCount>0)
{
//批准日期
model.CompileDate = list11.Where(x => x.ProjectId == pid && x.Mdate != null).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//机具报验
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "13";
var JjbyCount = list13.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = JjbyCount.ToString();
if (JjbyCount>0)
{
//报验日期
model.CompileDate = list13.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//设计变更单管理
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "14";
var SjdbgCount = list14.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = SjdbgCount.ToString();
if (SjdbgCount>0)
{
//下发日期
model.CompileDate = list14.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//施工方案管理
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "15";
var SgfaCount = list15.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = SgfaCount.ToString();
if (SgfaCount>0)
{
//审批日期
model.CompileDate = list15.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//设计交底管理
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "16";
var SjjdCount = list16.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = SjjdCount.ToString();
if (SjjdCount>0)
{
//交底日期
model.CompileDate = list16.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//NCR
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "17";
var NcrCount = list17.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = NcrCount.ToString();
if (NcrCount>0)
{
//下发日期
model.CompileDate = list17.Where(x => x.ProjectId == pid).OrderByDescending(x => x.Mdate).FirstOrDefault().Mdate;
}
allList.Add(model);
//质量报表管理
//质量周报
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "18";
var SgzbCount = list18.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = SgzbCount.ToString();
if (SgzbCount>0)
{
//StartDate,EndDate
model.CompileDate = list18.Where(x => x.ProjectId == pid).OrderByDescending(x => x.EndDate).FirstOrDefault().EndDate;
}
allList.Add(model);
//质量月报
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "19";
var SgybCount = list19.Where(x => x.ProjectId == pid).ToList().Count;
model.SummeryResult = SgybCount.ToString();
if (SgybCount>0)
{
//StartDate,EndDate
model.CompileDate = list19.Where(x => x.ProjectId == pid).OrderByDescending(x => x.EndDate).FirstOrDefault().EndDate;
}
allList.Add(model);
//过程控制管理
//一次共检合格数
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "20";
var hgs = list20.Where(x=>x.ProjectId==pid).ToList().Count();
if (hgs>0)
{
//验收日期
model.CompileDate = list20.Where(x => x.ProjectId == pid).OrderByDescending(x => x.InspectionDate).FirstOrDefault().InspectionDate;
}
model.SummeryResult = hgs.ToString();
allList.Add(model);
//总数
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "21";
var zs = list21.Where(x => x.ProjectId == pid).ToList().Count();
model.SummeryResult = zs.ToString();
allList.Add(model);
//一次共检合格合格率
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "22";
if (zs > 0)
{
model.SummeryResult = String.Format("{0:N2}", 100 * hgs / zs) + "%";
}
else
{
model.SummeryResult = "0%";
}
allList.Add(model);
#endregion
#region
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "23";
var GjsxCount = list22.Where(x => x.ProjectId == pid).ToList().Count();
model.SummeryResult = GjsxCount.ToString();
if (GjsxCount>0)
{
//提出日期
model.CompileDate = list22.Where(x => x.ProjectId == pid).OrderByDescending(x => x.CreateDate).FirstOrDefault().CreateDate;
}
allList.Add(model);
#endregion
#region
//人脸考勤
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "24";
var Rykq =db.T_d_facerecord.Where(x => x.ProjectId == pid).FirstOrDefault();
if (Rykq !=null)
{
model.SummeryResult = "已对接";
}
else {
model.SummeryResult = "未对接";
}
allList.Add(model);
//集团实名制对接
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "25";
var Smz = list24.Where(x => x.ProjectId == pid).ToList().Count;
if (Smz > 0)
{
model.SummeryResult = "已对接";
}
else
{
model.SummeryResult = "未对接";
}
allList.Add(model);
#endregion
#region
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "26";
model.SummeryResult = "";
allList.Add(model);
#endregion
#region ()
model = new Inspection_Summary();
model.ProjectId = pid;
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
model.InspectionSummaryId = Guid.NewGuid().ToString();
model.InspectionSummaryMbId = "27";
model.SummeryResult = "";
allList.Add(model);
#endregion
}
}
InspectionSummaryService.AddAll(allList);
#endregion
ShowNotify("生成成功!", MessageBoxIcon.Success);
BindGrid();
PageContext.RegisterStartupScript("CloseRefresh()");
}
#endregion
#region
protected void btnSearch_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.drpCompileDateMonth.Text.Trim()))
{
ShowNotify("日期不能为空。", MessageBoxIcon.Warning);
PageContext.RegisterStartupScript("CloseRefresh()");
return;
}
//根据日期来加载 先判断有没有,没有则提示生成。
var count = Funs.DB.Inspection_Summary.Where(x => x.CompileDateMonth == this.drpCompileDateMonth.Text.Trim()).ToList().Count();
if (count == 0)
{
BindGrid();
ShowNotify("当前日期暂无数据,请点击生成。", MessageBoxIcon.Warning);
PageContext.RegisterStartupScript("CloseRefresh()");
return;
}
BindGrid();
PageContext.RegisterStartupScript("CloseRefresh()");
}
#endregion
#region
private void BindGrid()
{
DataTable table = new DataTable();
table.Columns.Add(new DataColumn("SNumber", typeof(string)));
table.Columns.Add(new DataColumn("ModuleName", typeof(string)));
table.Columns.Add(new DataColumn("MenuP", typeof(string)));
table.Columns.Add(new DataColumn("MenuC", typeof(string)));
table.Columns.Add(new DataColumn("InspectionSummaryId", typeof(string)));
var list = Funs.DB.Base_Project.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).OrderBy(x => x.ProjectCode).ToList();
for (int i = 0; i < list.Count; i++)
{
//当前数值的列
table.Columns.Add(new DataColumn("ThisProject" + (i + 1).ToString(), typeof(string)));
//当前日期的列
table.Columns.Add(new DataColumn("CompileDate" + (i + 1).ToString(), typeof(string)));
}
DataRow row;
var SumModels = Funs.DB.Inspection_Summary.Where(x => x.CompileDateMonth == this.drpCompileDateMonth.Text.Trim()).FirstOrDefault();
if (SumModels == null)
{
table = null;
Grid1.DataSource = table;
Grid1.DataBind();
return;
}
else {
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
{
//首先获取模板表
var mbList = db.Inspection_SummaryMb.OrderBy(x => x.SortId).ToList();
for (int i = 0; i < mbList.Count; i++)
{
row = table.NewRow();
row[0] = mbList[i].SNumber;
row[1] = mbList[i].ModuleName;
row[2] = mbList[i].MenuP;
row[3] = mbList[i].MenuC;
row[4] = Guid.NewGuid().ToString();
int indexMb = 5;
//开始获取每列项目的数据
for (int k = 0; k < list.Count; k++)
{
var SumModel = db.Inspection_Summary.Where(x => x.ProjectId == list[k].ProjectId
&& x.InspectionSummaryMbId == mbList[i].InspectionSummaryMbId
&& x.CompileDateMonth == this.drpCompileDateMonth.Text.Trim()).FirstOrDefault();
row[indexMb] = SumModel.SummeryResult;
indexMb += 1;
row[indexMb] = SumModel.CompileDate.ToString().Split(' ')[0].Replace('/','-');
indexMb += 1;
}
table.Rows.Add(row);
}
}
}
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region excel
protected void btnOut_Click(object sender, EventArgs e)
{
Response.ClearContent();
var FileName = "各项目巡查汇总(" + this.drpCompileDateMonth.Text.Trim() + ")";
Response.AddHeader("content-disposition", "attachment; filename="+ FileName + ".xls");
Response.ContentType = "application/vnd.ms-excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Write(GetGridTableHtml(Grid1));
Response.End();
}
#endregion
/// <summary>
/// 格式化html
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
private string GetGridTableHtml(Grid grid)
{
StringBuilder sb = new StringBuilder();
MultiHeaderTable mht = new MultiHeaderTable();
mht.ResolveMultiHeaderTable(Grid1.Columns);
sb.Append("<meta http-equiv=\"Content-Type\" content=\"application/vnd.ms-excel;charset=utf-8\"/>");
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
////列数
//var rowCount = "";
//var list = Funs.DB.Base_Project.Where(x => x.ProjectState == Const.ProjectState_1 || x.ProjectState == null).OrderBy(x => x.ProjectCode).ToList();
//for (int i = 0; i < list.Count; i++)
//{
// rowCount+="{}"
//}
foreach (List<object[]> rows in mht.MultiTable)
{
sb.Append("<tr>");
foreach (object[] cell in rows)
{
int rowspan = Convert.ToInt32(cell[0]);
int colspan = Convert.ToInt32(cell[1]);
GridColumn column = cell[2] as GridColumn;
sb.AppendFormat("<th{0}{1}{2}>{3}</th>",
rowspan != 1 ? " rowspan=\"" + rowspan + "\"" : "",
colspan != 1 ? " colspan=\"" + colspan + "\"" : "",
colspan != 1 ? " style=\"text-align:center;\"" : "",
column.HeaderText);
}
sb.Append("</tr>");
}
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
int i = 0;
string MenuC = "";
foreach (GridColumn column in mht.Columns)
{
string html = row.Values[column.ColumnIndex].ToString();
if (column.ColumnID == "tfNumber")
{
html = (row.FindControl("spanNumber") as System.Web.UI.HtmlControls.HtmlGenericControl).InnerText;
}
else if (column.ColumnID == "tfGender")
{
html = (row.FindControl("labGender") as AspNet.Label).Text;
}
else if (column.ColumnID == "MenuC")
{
MenuC= html;
}
else if (column.ColumnID == "ThisProject" + (i + 1).ToString()) {
//指定哪些列再做二次加载
if (MenuC=="安全巡检"|| MenuC == "周例会" || MenuC == "月例会" || MenuC == "作业票" || MenuC == "工程师日志" || MenuC == "HSE管理月报"
|| MenuC == "质量巡检"|| MenuC == "设备材料报验" || MenuC == "人员报验" || MenuC == "机具报验"
|| MenuC == "设计变更单管理" || MenuC == "施工方案管理"|| MenuC == "设计交底管理" || MenuC == "NCR" || MenuC == "质量周报"
|| MenuC == "质量月报" || MenuC == "一次共检合格数" || MenuC == "关键事项")
{
var rq = MidStrEx(html, "\"", "\"");
var num = MidStrEx(html, ">", "<");
if (!string.IsNullOrEmpty(num)&& num!="0")
{
//某些列需要数量加日期显示
html = "<span>" + num + "(" + rq + ")</span>";
}
}
i += 1;
}
sb.AppendFormat("<td>{0}</td>", html);
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
public static string MidStrEx(string sourse, string startstr, string endstr)
{
string result = string.Empty;
int startindex, endindex;
try
{
startindex = sourse.IndexOf(startstr);
if (startindex == -1)
return result;
string tmpstr = sourse.Substring(startindex + startstr.Length);
endindex = tmpstr.IndexOf(endstr);
if (endindex == -1)
return result;
result = tmpstr.Remove(endindex);
}
catch (Exception ex)
{
}
return result;
}
#region
/// <summary>
/// 处理多表头的类
/// </summary>
public class MultiHeaderTable
{
// 包含 rowspancolspan 的多表头,方便生成 HTML 的 table 标签
public List<List<object[]>> MultiTable = new List<List<object[]>>();
// 最终渲染的列数组
public List<GridColumn> Columns = new List<GridColumn>();
public void ResolveMultiHeaderTable(GridColumnCollection columns)
{
List<object[]> row = new List<object[]>();
foreach (GridColumn column in columns)
{
object[] cell = new object[4];
cell[0] = 1; // rowspan
cell[1] = 1; // colspan
cell[2] = column;
cell[3] = null;
row.Add(cell);
}
ResolveMultiTable(row, 0);
ResolveColumns(row);
}
private void ResolveColumns(List<object[]> row)
{
foreach (object[] cell in row)
{
GroupField groupField = cell[2] as GroupField;
if (groupField != null && groupField.Columns.Count > 0)
{
List<object[]> subrow = new List<object[]>();
foreach (GridColumn column in groupField.Columns)
{
subrow.Add(new object[]
{
1,
1,
column,
groupField
});
}
ResolveColumns(subrow);
}
else
{
Columns.Add(cell[2] as GridColumn);
}
}
}
private void ResolveMultiTable(List<object[]> row, int level)
{
List<object[]> nextrow = new List<object[]>();
foreach (object[] cell in row)
{
GroupField groupField = cell[2] as GroupField;
if (groupField != null && groupField.Columns.Count > 0)
{
// 如果当前列包含子列,则更改当前列的 colspan以及增加父列向上递归的colspan
cell[1] = Convert.ToInt32(groupField.Columns.Count);
PlusColspan(level - 1, cell[3] as GridColumn, groupField.Columns.Count - 1);
foreach (GridColumn column in groupField.Columns)
{
nextrow.Add(new object[]
{
1,
1,
column,
groupField
});
}
}
}
MultiTable.Add(row);
// 如果当前下一行,则增加上一行(向上递归)中没有子列的列的 rowspan
if (nextrow.Count > 0)
{
PlusRowspan(level);
ResolveMultiTable(nextrow, level + 1);
}
}
private void PlusRowspan(int level)
{
if (level < 0)
{
return;
}
foreach (object[] cells in MultiTable[level])
{
GroupField groupField = cells[2] as GroupField;
if (groupField != null && groupField.Columns.Count > 0)
{
// ...
}
else
{
cells[0] = Convert.ToInt32(cells[0]) + 1;
}
}
PlusRowspan(level - 1);
}
private void PlusColspan(int level, GridColumn parent, int plusCount)
{
if (level < 0)
{
return;
}
foreach (object[] cells in MultiTable[level])
{
GridColumn column = cells[2] as GridColumn;
if (column == parent)
{
cells[1] = Convert.ToInt32(cells[1]) + plusCount;
PlusColspan(level - 1, cells[3] as GridColumn, plusCount);
}
}
}
}
#endregion
}
}