1092 lines
47 KiB
C#
1092 lines
47 KiB
C#
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; }
|
||
}
|
||
|
||
#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
|
||
}).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 }).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
|
||
select new { y.ProjectId,y.InspectionDate }).ToList();
|
||
////总数
|
||
var list21 = (from x in Funs.DB.ProcessControl_InspectionManagementDetail
|
||
join y in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId
|
||
|
||
select new { y.ProjectId}).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.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);
|
||
|
||
//WBS数据
|
||
model = new Inspection_Summary();
|
||
model.ProjectId = pid;
|
||
model.CompileDateMonth = this.drpCompileDateMonth.Text.Trim();
|
||
model.InspectionSummaryId = Guid.NewGuid().ToString();
|
||
model.InspectionSummaryMbId = "10";
|
||
model.SummeryResult = listWbs.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 = "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
|
||
{
|
||
// 包含 rowspan,colspan 的多表头,方便生成 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
|
||
|
||
|
||
}
|
||
} |