using BLL; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Net; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO.Compression; namespace FineUIPro.Web.CQMS.Check { public partial class SpotCheckStatistics : PageBase { /// /// 项目id /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { UnitService.InitUnitByProjectIdUnitTypeDropDownList(drpUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, true);//施工单位 UnitWorkService.InitUnitWorkDownList(drpUnitWork, this.CurrUser.LoginProjectId, true);//单位工程 CNProfessionalService.InitCNProfessionalDownList(drpCNProfessional, true);//专业 Funs.FineUIPleaseSelect(this.drpControlPoint);//控制点等级 Funs.FineUIPleaseSelect(drpIsOK); Funs.FineUIPleaseSelect(drpIsDataOK); BindGrid(); } } public void BindGrid() { this.ProjectId = this.CurrUser.LoginProjectId; string strSql = @"select * from View_Check_SoptCheckDetail where 1=1"; List listStr = new List(); strSql += " AND ProjectId = @ProjectId"; listStr.Add(new SqlParameter("@ProjectId", this.ProjectId)); if (drpUnit.SelectedValue != BLL.Const._Null && drpUnit.SelectedValue != null) { strSql += " AND UnitId = @UnitId"; listStr.Add(new SqlParameter("@UnitId", this.drpUnit.SelectedValue)); } if (!string.IsNullOrEmpty(txtStartTime.Text.Trim())) { strSql += " AND SpotCheckDate >= @SpotCheckDate"; listStr.Add(new SqlParameter("@SpotCheckDate", txtStartTime.Text.Trim() + " 00:00:00")); } if (!string.IsNullOrEmpty(txtEndTime.Text.Trim())) { strSql += " AND SpotCheckDate <= @SpotCheckDateE"; listStr.Add(new SqlParameter("@SpotCheckDateE", txtEndTime.Text.Trim() + " 23:59:59")); } string controlPoint = string.Empty; string[] strs = this.drpControlPoint.SelectedValueArray; foreach (var item in strs) { controlPoint += item + ","; } if (!string.IsNullOrEmpty(controlPoint)) { controlPoint = controlPoint.Substring(0, controlPoint.LastIndexOf(",")); } if (controlPoint != BLL.Const._Null) { strSql += " AND CHARINDEX(ControlPoint,@ControlPoint)>0"; listStr.Add(new SqlParameter("@ControlPoint", controlPoint)); } if (drpUnitWork.SelectedValue != BLL.Const._Null && drpUnitWork.SelectedValue != null) { //string unitWorkIds = BLL.UnitWorkService.GetUnitWorkIdsByUnitWorkId(this.drpUnitWork.SelectedValue); //strSql += " AND CHARINDEX(UnitWorkId,@UnitWorkId)>0"; //listStr.Add(new SqlParameter("@UnitWorkId", unitWorkIds)); strSql += " AND UnitWorkId=@UnitWorkId"; listStr.Add(new SqlParameter("@UnitWorkId", drpUnitWork.SelectedValue)); } if (drpCNProfessional.SelectedValue != BLL.Const._Null && drpCNProfessional.SelectedValue != null) { strSql += " AND CNProfessionalCode = @CNProfessionalCode"; listStr.Add(new SqlParameter("@CNProfessionalCode", this.drpCNProfessional.SelectedValue)); } if (drpIsOK.SelectedValue != BLL.Const._Null && drpIsOK.SelectedValue != null) { strSql += " AND IsOK = @IsOK"; listStr.Add(new SqlParameter("@IsOK", this.drpIsOK.SelectedValue)); } if (drpIsDataOK.SelectedValue != BLL.Const._Null && drpIsDataOK.SelectedValue != null) { strSql += " AND IsDataOK = @IsDataOK"; listStr.Add(new SqlParameter("@IsDataOK", this.drpIsDataOK.SelectedValue)); } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); for (int i = 0; i < Grid1.Rows.Count; i++) { string rowID = Grid1.Rows[i].RowID; if (rowID.Count() > 0) { Model.Check_SpotCheckDetail detail = BLL.SpotCheckDetailService.GetSpotCheckDetail(rowID); if (detail.IsOK == false || detail.IsDataOK == "0") { Grid1.Rows[i].RowCssClass = " Yellow "; } } } } /// /// 把状态转换代号为文字形式 /// /// /// protected string ConvertState(object state) { if (state != null) { if (state.ToString() == BLL.Const.SpotCheck_ReCompile) { return "重新编制"; } else if (state.ToString() == BLL.Const.SpotCheck_Compile) { return "编制"; } else if (state.ToString() == BLL.Const.SpotCheck_Audit1) { return "总包专业工程师确认"; } else if (state.ToString() == BLL.Const.SpotCheck_Audit2) { return "监理专业工程师确认"; } else if (state.ToString() == BLL.Const.SpotCheck_Audit3) { return "分包专业工程师上传资料"; } else if (state.ToString() == BLL.Const.SpotCheck_Audit5R) { return "分包专业工程师重新上传资料"; } else if (state.ToString() == BLL.Const.SpotCheck_Audit4) { return "总包专业工程师确认资料合格"; } else if (state.ToString() == BLL.Const.SpotCheck_Complete) { return "审批完成"; } else { return ""; } } return ""; } /// /// 获取控制点级别 /// /// /// protected string ConvertControlPoint(object ControlItemAndCycleId) { string controlPoint = string.Empty; if (ControlItemAndCycleId != null) { Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleById(ControlItemAndCycleId.ToString()); if (c != null) { controlPoint = c.ControlPoint; } } return controlPoint; } /// /// 根据主键返回共检日期 /// /// /// protected string ConvertSpotCheckDate(object SpotCheckCode) { if (SpotCheckCode != null) { Model.Check_SpotCheck spotCheck = BLL.SpotCheckService.GetSpotCheckBySpotCheckCode(SpotCheckCode.ToString()); if (spotCheck != null) { if (spotCheck.CheckDateType == "1") { return string.Format("{0:yyyy-MM-dd HH:mm}", spotCheck.SpotCheckDate); } else { return string.Format("{0:yyyy-MM-dd HH:mm}", spotCheck.SpotCheckDate) + "—" + string.Format("{0:yyyy-MM-dd HH:mm}", spotCheck.SpotCheckDate2); } } } return ""; } /// /// 获取共检内容 /// /// /// protected string ConvertDetailName(object ControlItemAndCycleId) { string name = string.Empty; if (ControlItemAndCycleId != null) { Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleById(ControlItemAndCycleId.ToString()); if (c != null) { name = c.ControlItemContent; Model.WBS_WorkPackage w = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); if (w != null) { name = w.PackageContent + "/" + name; Model.WBS_WorkPackage pw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(w.SuperWorkPackageId); if (pw != null) { name = pw.PackageContent + "/" + name; Model.WBS_WorkPackage ppw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(pw.SuperWorkPackageId); if (ppw != null) { name = ppw.PackageContent + "/" + name; Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(ppw.UnitWorkId); if (u != null) { name = u.UnitWorkName + "/" + name; } } else { Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(pw.UnitWorkId); if (u != null) { name = u.UnitWorkName + "/" + name; } } } else { Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(w.UnitWorkId); if (u != null) { name = u.UnitWorkName + "/" + name; } } } } } return name; } /// /// 获取共检内容 /// /// /// protected string ConvertDetailName2(object ControlItemAndCycleId) { string name = string.Empty; if (ControlItemAndCycleId != null) { Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleById(ControlItemAndCycleId.ToString()); if (c != null) { name = c.ControlItemContent.Replace("/", "-"); //将WBS内容中的/替换成-,避免生成的文件夹目录不对 Model.WBS_WorkPackage w = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); if (w != null) { name = w.PackageContent.Replace("/", "-") + "/" + name; Model.WBS_WorkPackage pw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(w.SuperWorkPackageId); if (pw != null) { name = pw.PackageContent.Replace("/", "-") + "/" + name; Model.WBS_WorkPackage ppw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(pw.SuperWorkPackageId); if (ppw != null) { name = ppw.PackageContent.Replace("/", "-") + "/" + name; Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(ppw.UnitWorkId); if (u != null) { name = u.UnitWorkName.Replace("/", "-") + BLL.UnitWorkService.GetProjectType(u.ProjectType) + "/" + name; } } else { Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(pw.UnitWorkId); if (u != null) { name = u.UnitWorkName.Replace("/", "-") + BLL.UnitWorkService.GetProjectType(u.ProjectType) + "/" + name; } } } else { Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(w.UnitWorkId); if (u != null) { name = u.UnitWorkName.Replace("/", "-") + BLL.UnitWorkService.GetProjectType(u.ProjectType) + "/" + name; } } } } } return name; } /// /// 获取共检结果 /// /// /// protected string ConvertIsOK(object IsOK) { string isOK = string.Empty; if (IsOK != null) { if (IsOK.ToString() != "") { if (Convert.ToBoolean(IsOK)) { isOK = "合格"; } else { isOK = "不合格"; } } } return isOK; } /// /// 获取资料结果 /// /// /// protected string ConvertIsDataOK(object IsDataOK) { string isDataOK = string.Empty; if (IsDataOK != null) { if (IsDataOK.ToString() != "") { if (IsDataOK.ToString() == "1") { isDataOK = "合格"; } else if (IsDataOK.ToString() == "0") { isDataOK = "不合格"; } else { isDataOK = "不需要"; } } } return isDataOK; } protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindGrid(); } protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { string itemId = Grid1.DataKeys[e.RowIndex][0].ToString(); if (e.CommandName == "attchUrl") { PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CQMS/SpotCheck&menuId={1}&type=-1", itemId, BLL.Const.SpotCheckMenuId))); } } protected void btnSearch_Click(object sender, EventArgs e) { BindGrid(); } protected void btnRset_Click(object sender, EventArgs e) { drpUnit.SelectedIndex = 0; drpCNProfessional.SelectedIndex = 0; drpUnitWork.SelectedIndex = 0; drpControlPoint.SelectedIndex = 0; drpIsOK.SelectedIndex = 0; drpIsDataOK.SelectedIndex = 0; txtStartTime.Text = ""; txtEndTime.Text = ""; BindGrid(); } protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } #region 导出按钮 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { if (this.drpUnitWork.SelectedValue != BLL.Const._Null) { string s = ""; string t = s.Replace('\\', '/'); string filePath = string.Empty; string rootPath = Server.MapPath("~/"); var details = from x in Funs.DB.View_Check_SoptCheckDetail where x.UnitWorkId == this.drpUnitWork.SelectedValue && x.IsDataOK == "1" select x; string projectCode = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectCode; string unitWorkName = string.Empty; string unitWorkName2 = string.Empty; Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(this.drpUnitWork.SelectedValue); string projectType = string.Empty; if (u != null) { unitWorkName = u.UnitWorkName.Replace("/", "-") + BLL.UnitWorkService.GetProjectType(u.ProjectType); if (u.ProjectType == "1") { projectType = "建筑"; } else if (u.ProjectType == "2") { projectType = "安装"; } unitWorkName2 = projectType + "-" + u.UnitWorkName.Replace("/", "-"); } if (details.Count() > 0) { foreach (var detail in details) { string name = ConvertDetailName2(detail.ControlItemAndCycleId); string unitWorkFilePath = rootPath + "FileUpload\\WBSFile\\" + projectCode + "\\" + name; if (!Directory.Exists(unitWorkFilePath)) { Directory.CreateDirectory(unitWorkFilePath); } string attachFileUrls = BLL.AttachFileService.getFileUrl(detail.SpotCheckDetailId); string[] urls = attachFileUrls.Split(','); foreach (var url in urls) { string atturl = Funs.RootPath + url; if (File.Exists(atturl)) { //File.Copy(atturl, unitWorkFilePath + url.Substring(url.LastIndexOf("/"))); string newUrlPath = url.Substring(url.LastIndexOf("/")); string newUrl = unitWorkFilePath + "/" + newUrlPath.Substring(newUrlPath.IndexOf("_") + 1); if (!File.Exists(newUrl)) { File.Copy(atturl, newUrl); } } } } string startPath = rootPath + "FileUpload\\WBSFile\\" + projectCode + "\\" + unitWorkName; string zipPath = rootPath + "FileUpload\\WBSFile\\" + projectCode + "\\" + unitWorkName + ".zip"; string zipPath2 = rootPath + "FileUpload\\WBSFile\\" + projectCode + "\\" + unitWorkName2 + ".zip"; ZipFile.CreateFromDirectory(startPath, zipPath); string fileName = Path.GetFileName(zipPath2); FileInfo info = new FileInfo(zipPath); long fileSize = info.Length; Response.ClearContent(); Response.ContentType = "application/x-zip-compressed"; Response.AddHeader("content-disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); Response.AddHeader("Content-Length", fileSize.ToString()); Response.TransmitFile(zipPath, 0, fileSize); Response.Flush(); Response.Close(); File.Delete(zipPath); } else { ShowNotify("该单位工程尚无资料可以导出!", MessageBoxIcon.Warning); } } else { ShowNotify("请选择单位工程进行导出!", MessageBoxIcon.Warning); } } #endregion } }