From 988d168cbfe1b1dff116ab8b90f882e881dcdf95 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 27 Sep 2023 09:59:07 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2023-09-27.sql | 39 ++++ SGGL/BLL/API/APIPersonService.cs | 80 ++++++- SGGL/BLL/API/HSSE/APICheckSpecialService.cs | 103 ++++++--- .../HSSE/Check/Check_CheckSpecialService.cs | 9 +- SGGL/BLL/SysManage/UnitService.cs | 16 ++ .../File/Word/HSSE/专项检查.doc | Bin 29184 -> 11684 bytes .../HSSE/Check/CheckSpecial.aspx.cs | 206 ++++++++++++++---- .../HSSE/Check/CheckSpecialView.aspx | 32 ++- .../HSSE/Check/CheckSpecialView.aspx.cs | 4 + .../Check/CheckSpecialView.aspx.designer.cs | 75 +++++-- .../InformationAnalysis/CheckAnalysis.aspx.cs | 90 +++++--- .../APIItem/HSSE/CheckSpecialDetailItem.cs | 4 + SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs | 60 +++++ SGGL/Model/Model.cs | 120 ++++++++++ SGGL/WebAPI/Controllers/PersonController.cs | 23 ++ 15 files changed, 721 insertions(+), 140 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2023-09-27.sql diff --git a/DataBase/版本日志/SGGLDB_WH_2023-09-27.sql b/DataBase/版本日志/SGGLDB_WH_2023-09-27.sql new file mode 100644 index 00000000..e3bfcf70 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2023-09-27.sql @@ -0,0 +1,39 @@ +--רܼ쵥λ +alter table Check_CheckSpecial add ResponsibleUnit nvarchar(50) null; +--λ +alter table Check_CheckSpecial add WorkAreaId nvarchar(50) null; +-- +alter table Check_CheckSpecial add QuestionType nvarchar(50) null; +-- +alter table Check_CheckSpecial add ResponsibleMan nvarchar(50) null; +--ӱӴֶ +alter table Check_CheckSpecialDetail add CheckOpinions nvarchar(2000) null; + +----------------------------------------------------------޸Ա״̬ + +--1.ô +alter table SitePerson_Person disable trigger SitePerson_Person_Bak_TRIGGER; + +--α +DECLARE @projectid nvarchar(50) -- + +DECLARE mycursor CURSOR FOR select projectid from base_project where ProjectState='3' --α + +OPEN mycursor --α + +FETCH NEXT FROM mycursor INTO @projectid + +WHILE(@@FETCH_STATUS = 0) --еݣ@@FETCH_STATUSֵΪ0ʾFETCHִгɹ +BEGIN + update SitePerson_Person set IsUsed=0 where ProjectId=@projectid;--޸ + FETCH NEXT FROM mycursor INTO @projectid --ȡһα +END + +CLOSE mycursor --رα + +DEALLOCATE mycursor --ɾα +GO + +--ô +alter table SitePerson_Person enable trigger SitePerson_Person_Bak_TRIGGER; + diff --git a/SGGL/BLL/API/APIPersonService.cs b/SGGL/BLL/API/APIPersonService.cs index 7000b083..c89257b8 100644 --- a/SGGL/BLL/API/APIPersonService.cs +++ b/SGGL/BLL/API/APIPersonService.cs @@ -58,7 +58,7 @@ namespace BLL using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getPerson = from x in db.View_SitePerson_Person - where x.PersonId == personId || x.IdentityCard == personId + where (x.PersonId == personId || x.IdentityCard == personId) select new Model.PersonItem { PersonId = x.PersonId, @@ -1752,5 +1752,83 @@ namespace BLL return message; } + + #region 二维码扫码获取人员 + /// + /// 二维码扫码获取人员 + /// + /// + /// + public static Model.PersonItem getPersonByPersonIdQrcode(string personId) + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var getPerson = from x in db.View_SitePerson_Person + where (x.PersonId == personId || x.IdentityCard == personId) && x.IsUsed == true + select new Model.PersonItem + { + PersonId = x.PersonId, + CardNo = x.CardNo, + PersonName = x.PersonName, + Sex = x.Sex, + SexName = x.SexName, + IdentityCard = x.IdentityCard, + Address = x.Address, + ProjectId = x.ProjectId, + ProjectCode = x.ProjectCode, + ProjectName = x.ProjectName, + UnitId = x.UnitId, + UnitCode = x.UnitCode, + UnitName = x.UnitName, + TeamGroupId = x.TeamGroupId, + TeamGroupName = x.TeamGroupName, + WorkPostId = x.WorkPostId, + WorkPostName = x.WorkPostName, + InTime = string.Format("{0:yyyy-MM-dd}", x.InTime), + OutTime = string.Format("{0:yyyy-MM-dd}", x.OutTime), + OutResult = x.OutResult, + Telephone = x.Telephone, + PhotoUrl = x.PhotoUrl, + DepartName = x.DepartName, + IsUsed = x.IsUsed, + IsUsedName = x.IsUsed == false ? "不启用" : "启用", + AuditorId = x.AuditorId, + AuditorName = db.Sys_User.First(z => z.UserId == x.AuditorId).UserName, + IsForeign = x.IsForeign.HasValue ? x.IsForeign : false, + IsOutside = x.IsOutside.HasValue ? x.IsOutside : false, + AuditorDate = string.Format("{0:yyyy-MM-dd}", x.AuditorDate), + AttachUrl1 = x.IDCardUrl == null ? APIUpLoadFileService.getFileUrl(personId + "#1", null) : x.IDCardUrl.Replace('\\', '/'), + AttachUrl2 = APIUpLoadFileService.getFileUrl(personId + "#2", null), + AttachUrl3 = APIUpLoadFileService.getFileUrl(personId + "#3", null), + AttachUrl4 = getAttachUrl4(x.PersonId), + AttachUrl5 = APIUpLoadFileService.getFileUrl(personId + "#5", null), + IdcardType = x.IdcardType, + IdcardTypeName = x.IdcardTypeName, + IdcardStartDate = string.Format("{0:yyyy-MM-dd}", x.IdcardStartDate), + IdcardEndDate = string.Format("{0:yyyy-MM-dd}", x.IdcardEndDate), + IdcardForever = x.IdcardForever, + IdcardForeverStr = x.IdcardForeverStr, + PoliticsStatus = x.PoliticsStatus, + PoliticsStatusName = x.PoliticsStatusName, + IdcardAddress = x.IdcardAddress, + Nation = x.Nation, + NationName = x.NationName, + EduLevel = x.EduLevel, + EduLevelName = x.EduLevelName, + MaritalStatus = x.MaritalStatus, + MaritalStatusName = x.MaritalStatusName, + CountryCode = x.CountryCode, + CountryName = x.CountryName, + ProvinceCode = x.ProvinceCode, + ProvinceName = x.ProvinceName, + MainCNProfessionalId = x.MainCNProfessionalId, + MainCNProfessionalName = x.MainCNProfessionalName, + ViceCNProfessionalId = x.ViceCNProfessionalId, + ViceCNProfessionalName = x.ViceCNProfessionalName + }; + return getPerson.FirstOrDefault(); + } + } + #endregion } } diff --git a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs index 03c4a833..09c6c784 100644 --- a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs +++ b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs @@ -43,6 +43,18 @@ namespace BLL States = x.States, AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null), CheckSpecialDetailItems = getCheckSpecialDetailList(x.CheckSpecialId), + + ResponsibleUnit=x.ResponsibleUnit, + ResponsibleUnitName=UnitService.GetUnitNameByUnitId(x.ResponsibleUnit), + WorkAreaId=x.WorkAreaId, + WorkAreaName= UnitWorkService.GetUnitWorkName(x.WorkAreaId), + QuestionType=x.QuestionType, + QuestionTypeName=UnitService.GetQuestionTypeId(x.QuestionType), + + ResponsibleMan=x.ResponsibleMan, + + + }; return getInfo.FirstOrDefault(); } @@ -117,18 +129,38 @@ namespace BLL PartInPersons = UserService.getUserNamesUserIds(newItem.PartInPersonIds), PartInPersonNames = newItem.PartInPersonNames2, CompileMan = newItem.CompileManId, - States = Const.State_0, + States = newItem.States, + + ResponsibleUnit=newItem.ResponsibleUnit, + WorkAreaId=newItem.WorkAreaId, + QuestionType=newItem.QuestionType, + //审核人 + ResponsibleMan=newItem.ResponsibleMan }; //if (newItem.States != Const.State_1) //{ // newCheckSpecial.States = Const.State_0; //} - if (newItem.CheckSpecialDetailItems == null || newItem.CheckSpecialDetailItems.Count() == 0) + //if (newItem.CheckSpecialDetailItems == null || newItem.CheckSpecialDetailItems.Count() == 0) + //{ + // if (newItem.States == Const.State_1) + // { + // newCheckSpecial.States = Const.State_2; + // } + //} + + //如果审核状态不为空 + if (!string.IsNullOrEmpty(newItem.AuditState)) { - if (newItem.States == Const.State_1) + //不同意的话 + if (newItem.AuditState=="0") { - newCheckSpecial.States = Const.State_2; + newCheckSpecial.States = "0"; + } + else if (newItem.AuditState=="1") + { + newCheckSpecial.States = "2"; } } @@ -167,31 +199,32 @@ namespace BLL SaveCheckSpecialDetail(item); } //// 单据完成后 系统自动按照单位 整改要求生成隐患整改单 - if (newItem.States == Const.State_1) - { - var getC = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false); - if (getC == null) - { - newCheckSpecial.States = Const.State_2; - Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial); - } - else - { - var getNA = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false && (x.HandleStep== null || x.HandleStep=="")); - if (getNA == null) - { - var detailLists = db.Check_CheckSpecialDetail.Where(x => x.CheckSpecialId == newCheckSpecial.CheckSpecialId && x.CompleteStatus == false); - if (detailLists.Count() > 0) - { - message = Check_CheckSpecialService.IssueRectification(detailLists.ToList(), newCheckSpecial); - } - } - else - { - message += "存在待整改,没有处理措施的记录!"; - } - } - } + ///五环不需要 + //if (newItem.States == Const.State_1) + //{ + // var getC = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false); + // if (getC == null) + // { + // newCheckSpecial.States = Const.State_2; + // Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial); + // } + // else + // { + // var getNA = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false && (x.HandleStep== null || x.HandleStep=="")); + // if (getNA == null) + // { + // var detailLists = db.Check_CheckSpecialDetail.Where(x => x.CheckSpecialId == newCheckSpecial.CheckSpecialId && x.CompleteStatus == false); + // if (detailLists.Count() > 0) + // { + // message = Check_CheckSpecialService.IssueRectification(detailLists.ToList(), newCheckSpecial); + // } + // } + // else + // { + // message += "存在待整改,没有处理措施的记录!"; + // } + // } + //} } return message; } @@ -238,6 +271,7 @@ namespace BLL CheckItemDetailSetId = x.CheckItemSetId, CheckItemDetailContent = x.CheckItemSetContent, Rectification_Date = string.Format("{0:yyyy-MM-dd}", x.Rectification_Date), + CheckOpinions=x.CheckOpinions, }; return getInfo.ToList(); } @@ -290,6 +324,7 @@ namespace BLL CheckItemDetailSetId=x.CheckItemSetId, CheckItemDetailContent=x.CheckItemSetContent, Rectification_Date= string.Format("{0:yyyy-MM-dd}", x.Rectification_Date), + CheckOpinions=x.CheckOpinions }; return getInfo.First(); } @@ -316,7 +351,7 @@ namespace BLL UnitId = newDetail.UnitId, HandleStep = newDetail.HandleStep, HiddenHazardType = newDetail.HiddenHazardType, - CompleteStatus = newDetail.CompleteStatus ?? false, + CompleteStatus = newDetail.CompleteStatus, RectifyNoticeId = newDetail.RectifyNoticeId, LimitedDate = Funs.GetNewDateTime(newDetail.LimitedDate), CompletedDate = Funs.GetNewDateTime(newDetail.CompletedDate), @@ -325,10 +360,11 @@ namespace BLL CheckArea = newDetail.WorkAreaId, CheckContent = newDetail.CheckContent, - //整改日期、检查内容、检查内容id + //整改日期、检查内容、检查内容id、处理意见 CheckItemSetId= newDetail.CheckItemDetailSetId, CheckItemSetContent= newDetail.CheckItemDetailContent, - Rectification_Date = Funs.GetNewDateTime(newDetail.Rectification_Date) + Rectification_Date = Funs.GetNewDateTime(newDetail.Rectification_Date), + CheckOpinions=newDetail.CheckOpinions, }; if (newCheckSpecialDetail.CompleteStatus == false && newCheckSpecialDetail.HandleStep.Contains("1") && string.IsNullOrEmpty(newCheckSpecialDetail.HiddenHazardType)) { @@ -371,10 +407,11 @@ namespace BLL updateDetail.CheckArea = newCheckSpecialDetail.CheckArea; updateDetail.CheckContent = newCheckSpecialDetail.CheckContent; - //整改日期、检查内容、检查内容id + //整改日期、检查内容、检查内容id、处理意见 updateDetail.CheckItemSetId = newDetail.CheckItemDetailSetId; updateDetail.CheckItemSetContent = newDetail.CheckItemDetailContent; updateDetail.Rectification_Date = Funs.GetNewDateTime(newDetail.Rectification_Date); + updateDetail.CheckOpinions = newDetail.CheckOpinions; db.SubmitChanges(); } ////保存附件 diff --git a/SGGL/BLL/HSSE/Check/Check_CheckSpecialService.cs b/SGGL/BLL/HSSE/Check/Check_CheckSpecialService.cs index f349d0ac..621af157 100644 --- a/SGGL/BLL/HSSE/Check/Check_CheckSpecialService.cs +++ b/SGGL/BLL/HSSE/Check/Check_CheckSpecialService.cs @@ -244,7 +244,8 @@ namespace BLL { Model.RectifyNoticesItemItem newRItem = new Model.RectifyNoticesItemItem { - WrongContent = item.Unqualified + //WrongContent = item.Unqualified + WrongContent = item.CheckItemSetContent }; if (string.IsNullOrEmpty(rectifyNotices.CheckSpecialDetailId)) { @@ -298,7 +299,8 @@ namespace BLL foreach (var item in getUnitDItem) { Model.PunishNoticeItemItem newPItem = new Model.PunishNoticeItemItem(); - newPItem.PunishContent = item.Unqualified; + //newPItem.PunishContent = item.Unqualified; + newPItem.PunishContent = item.CheckItemSetContent; newPItem.SortIndex = item.SortIndex; punishNotice.PunishNoticeItemItem.Add(newPItem); if (string.IsNullOrEmpty(punishNotice.CheckSpecialDetailId)) @@ -335,7 +337,8 @@ namespace BLL foreach (var item in getUnitDItem) { Model.RectifyNoticesItemItem newRItem = new Model.RectifyNoticesItemItem(); - pauseNotice.ThirdContent += item.Unqualified; + //pauseNotice.ThirdContent += item.Unqualified; + pauseNotice.ThirdContent += item.CheckItemSetContent; string checkAreaName= UnitWorkService.GetNameById(item.CheckArea); if (!string.IsNullOrEmpty(checkAreaName)) { diff --git a/SGGL/BLL/SysManage/UnitService.cs b/SGGL/BLL/SysManage/UnitService.cs index dbe2aed1..647c8449 100644 --- a/SGGL/BLL/SysManage/UnitService.cs +++ b/SGGL/BLL/SysManage/UnitService.cs @@ -761,5 +761,21 @@ namespace BLL return q; } } + + /// + /// 获取问题类型名称 + /// + /// + /// + public static string GetQuestionTypeId(string RegisterTypesId) + { + string name = string.Empty; + var unit = Funs.DB.HSSE_Hazard_HazardRegisterTypes.FirstOrDefault(x => x.RegisterTypesId == RegisterTypesId); + if (unit != null) + { + name = unit.RegisterTypesName; + } + return name; + } } } diff --git a/SGGL/FineUIPro.Web/File/Word/HSSE/专项检查.doc b/SGGL/FineUIPro.Web/File/Word/HSSE/专项检查.doc index 84c6efe331fff65b4782a53368e0f2445f927b37..90ca6147444c181d9bd3db94f4f409aaffd0d7bd 100644 GIT binary patch literal 11684 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 E0S5Q9f&c&j literal 29184 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 C5Il$g diff --git a/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecial.aspx.cs b/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecial.aspx.cs index 29002a1c..c178df09 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecial.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecial.aspx.cs @@ -1,4 +1,5 @@ using Aspose.Words; +using Aspose.Words.Tables; using BLL; using System; using System.Collections.Generic; @@ -45,7 +46,7 @@ namespace FineUIPro.Web.HSSE.Check Technique_CheckItemSetService.InitCheckItemSetDropDownList(this.drpSupCheckItemSet, "2", "0", true); ////权限按钮方法 this.GetButtonPower(); - btnNew.OnClientClick = Window1.GetShowReference("CheckSpecialEdit.aspx") + "return false;"; + //btnNew.OnClientClick = Window1.GetShowReference("CheckSpecialEdit.aspx") + "return false;"; ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 BindGrid(); @@ -203,7 +204,9 @@ namespace FineUIPro.Web.HSSE.Check } else { - PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CheckSpecialEdit.aspx?CheckSpecialId={0}", CheckSpecialId, "编辑 - "))); + //PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CheckSpecialEdit.aspx?CheckSpecialId={0}", CheckSpecialId, "编辑 - "))); + //pc端只有台账 + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("CheckSpecialView.aspx?CheckSpecialId={0}", CheckSpecialId, "查看 - "))); } } } @@ -254,7 +257,7 @@ namespace FineUIPro.Web.HSSE.Check { if (buttonList.Contains(BLL.Const.BtnAdd)) { - this.btnNew.Hidden = false; + //this.btnNew.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { @@ -357,7 +360,7 @@ namespace FineUIPro.Web.HSSE.Check initTemplatePath = "File\\Word\\HSSE\\专项检查.doc"; uploadfilepath = rootPath + initTemplatePath; newUrl = uploadfilepath.Replace(".doc", string.Format("{0:yyyy-MM}", DateTime.Now) + ".doc"); - filePath = initTemplatePath.Replace(".doc", string.Format("{0:yyyy-MM}", DateTime.Now) + ".pdf"); + //filePath = initTemplatePath.Replace(".doc", string.Format("{0:yyyy-MM}", DateTime.Now) + ".pdf"); if (File.Exists(newUrl)) { File.Delete(newUrl); } @@ -427,6 +430,65 @@ namespace FineUIPro.Web.HSSE.Check } } + Bookmark bookmarkWorkAreaName = doc.Range.Bookmarks["WorkAreaName"]; + if (bookmarkWorkAreaName != null) + { + if (checkSpecial != null) + { + if (!string.IsNullOrEmpty(checkSpecial.WorkAreaId)) + { + bookmarkWorkAreaName.Text = UnitWorkService.GetUnitWorkName(checkSpecial.WorkAreaId); + } + + } + + } + + Bookmark bookmarkResponsibleName = doc.Range.Bookmarks["ResponsibleName"]; + if (bookmarkResponsibleName != null) + { + if (checkSpecial != null) + { + if (!string.IsNullOrEmpty(checkSpecial.ResponsibleUnit)) + { + bookmarkResponsibleName.Text = UnitService.GetUnitNameByUnitId(checkSpecial.ResponsibleUnit); + } + + } + + } + + Bookmark bookmarkQuestionName = doc.Range.Bookmarks["QuestionName"]; + if (bookmarkQuestionName != null) + { + if (checkSpecial != null) + { + if (!string.IsNullOrEmpty(checkSpecial.QuestionType)) + { + bookmarkQuestionName.Text = UnitService.GetQuestionTypeId(checkSpecial.QuestionType); + } + + } + + } + + Bookmark bookmarkPartInPersonNames = doc.Range.Bookmarks["PartInPersonNames"]; + if (bookmarkPartInPersonNames != null) + { + if (checkSpecial != null) + { + if (!string.IsNullOrEmpty(checkSpecial.PartInPersonNames)) + { + bookmarkPartInPersonNames.Text = checkSpecial.PartInPersonNames; + } + + } + + } + //WorkAreaName + // ResponsibleName + // QuestionName + // PartInPersonNames //专项检查列表 Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc); builder.MoveToBookmark("tab"); @@ -443,6 +505,57 @@ namespace FineUIPro.Web.HSSE.Check orderby x.SortIndex select x).ToList(); int num = 1; + #region 插入表头 + builder.InsertCell(); + builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + builder.CellFormat.Width = 40; + builder.Write("序号"); + + builder.InsertCell(); + builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + builder.CellFormat.Width = 100; + builder.Write("问题描述"); + + builder.InsertCell(); + builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + builder.CellFormat.Width = 250; + builder.CellFormat.WrapText = true; + builder.Write("检查内容"); + + //builder.InsertCell(); + //builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + //builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + //builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + //builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + //builder.CellFormat.Width = 60; + //builder.Write("处理结果"); + + builder.InsertCell(); + builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + builder.CellFormat.Width = 60; + builder.Write("整改期限"); + + builder.InsertCell(); + builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + builder.CellFormat.Width = 60; + builder.Write("处理措施"); + builder.EndRow(); + #endregion foreach (Model.View_CheckSpecialDetail detail in checkSpecialDetails) { //序号 @@ -451,80 +564,89 @@ namespace FineUIPro.Web.HSSE.Check builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 - builder.CellFormat.Width = 20; + builder.CellFormat.Width = 40; builder.Write(num.ToString()); - //单位工程 - builder.InsertCell(); - builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; - builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; - builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 - builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 - builder.CellFormat.Width = 55; - builder.Write(string.IsNullOrEmpty(detail.CheckAreaName) ? "" : detail.CheckAreaName); - //单位 - builder.InsertCell(); - builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; - builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; - builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 - builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 - builder.CellFormat.Width = 120; - builder.Write(string.IsNullOrEmpty(detail.UnitName) ? "" : detail.UnitName); + ////单位工程 + //builder.InsertCell(); + //builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + //builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + //builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + //builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + //builder.CellFormat.Width = 60; + //builder.Write(string.IsNullOrEmpty(detail.CheckAreaName) ? "" : detail.CheckAreaName); + ////单位 + //builder.InsertCell(); + //builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + //builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + //builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + //builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + //builder.CellFormat.Width = 120; + //builder.Write(string.IsNullOrEmpty(detail.UnitName) ? "" : detail.UnitName); //问题描述 builder.InsertCell(); builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 - builder.CellFormat.Width = 40; - builder.Write(string.IsNullOrEmpty(detail.Unqualified) ? "" : detail.Unqualified); - //问题类型 - builder.InsertCell(); - builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; - builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; - builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 - builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 builder.CellFormat.Width = 100; - builder.Write(string.IsNullOrEmpty(detail.CheckItemName)?"": detail.CheckItemName); + builder.Write(string.IsNullOrEmpty(detail.Unqualified) ? "" : detail.Unqualified); + //问题内容 + builder.InsertCell(); + builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;//水平居中对齐 + builder.CellFormat.Width = 250; + builder.CellFormat.WrapText = true; + builder.Write(string.IsNullOrEmpty(detail.CheckItemSetContent)?"": detail.CheckItemSetContent); - //处理结果 + ////处理结果 + //builder.InsertCell(); + //builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + //builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; + //builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 + //builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 + //builder.CellFormat.Width = 60; + //builder.Write(string.IsNullOrEmpty(detail.CompleteStatusName) ? "" : detail.CompleteStatusName); + //整改期限 builder.InsertCell(); builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 - builder.CellFormat.Width = 50; - builder.Write(string.IsNullOrEmpty(detail.CompleteStatusName) ? "" : detail.CompleteStatusName); + builder.CellFormat.Width = 60; + builder.Write(string.Format("{0:yyyy-MM-dd}", detail.Rectification_Date)); //隐患类别 builder.InsertCell(); builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 - builder.CellFormat.Width = 50; - builder.Write(string.IsNullOrEmpty(detail.HiddenHazardTypeName) ? "" : detail.HiddenHazardTypeName); + builder.CellFormat.Width = 60; + builder.Write(string.IsNullOrEmpty(detail.HandleStepLink) ? "" : detail.HandleStepLink); builder.EndRow(); num++; } builder.EndTable(); doc.Save(newUrl); //生成PDF文件 - string pdfUrl = newUrl.Replace(".doc", ".pdf"); + //string pdfUrl = newUrl.Replace(".doc", ".pdf"); Document doc1 = new Aspose.Words.Document(newUrl); //验证参数 - if (doc1 == null) { throw new Exception("Word文件无效"); } - doc1.Save(pdfUrl, Aspose.Words.SaveFormat.Pdf);//还可以改成其它格式 - string fileName = Path.GetFileName(filePath); - FileInfo info = new FileInfo(pdfUrl); + //if (doc1 == null) { throw new Exception("Word文件无效"); } + //doc1.Save(pdfUrl, Aspose.Words.SaveFormat.Pdf);//还可以改成其它格式 + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); long fileSize = info.Length; Response.Clear(); 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(pdfUrl, 0, fileSize); + Response.TransmitFile(newUrl, 0, fileSize); Response.Flush(); Response.Close(); File.Delete(newUrl); - File.Delete(pdfUrl); + //File.Delete(pdfUrl); } #endregion } diff --git a/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx b/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx index 3e87226e..4eb70936 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx +++ b/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx @@ -33,6 +33,18 @@ + + + + + + + + + + + + @@ -50,28 +62,28 @@ - - - --%> + <%-- - - --%> + - - - --%> + - - + --%> //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HSSE.Check { - - - public partial class CheckSpecialView { - +namespace FineUIPro.Web.HSSE.Check +{ + + + public partial class CheckSpecialView + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// SimpleForm1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Form SimpleForm1; - + /// /// txtCheckSpecialCode 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtCheckSpecialCode; - + /// /// rbType 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.RadioButtonList rbType; - + /// /// txtSupCheckItemSet 控件。 /// @@ -65,7 +67,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtSupCheckItemSet; - + /// /// txtCheckDate 控件。 /// @@ -74,7 +76,34 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtCheckDate; - + + /// + /// txtResponsibleUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtResponsibleUnit; + + /// + /// txtWorkAreaId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtWorkAreaId; + + /// + /// txtQuestionType 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtQuestionType; + /// /// txtPartInPersons 控件。 /// @@ -83,7 +112,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtPartInPersons; - + /// /// txtPartInPersonNames 控件。 /// @@ -92,7 +121,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtPartInPersonNames; - + /// /// Grid1 控件。 /// @@ -101,7 +130,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// Toolbar1 控件。 /// @@ -110,7 +139,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar1; - + /// /// lbTemp 控件。 /// @@ -119,7 +148,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label lbTemp; - + /// /// btnAttachUrl 控件。 /// @@ -128,7 +157,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnAttachUrl; - + /// /// ToolbarFill1 控件。 /// @@ -137,7 +166,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - + /// /// btnClose 控件。 /// @@ -146,7 +175,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnClose; - + /// /// hdId 控件。 /// @@ -155,7 +184,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.HiddenField hdId; - + /// /// hdAttachUrl 控件。 /// @@ -164,7 +193,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.HiddenField hdAttachUrl; - + /// /// WindowAtt 控件。 /// @@ -173,7 +202,7 @@ namespace FineUIPro.Web.HSSE.Check { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowAtt; - + /// /// Window1 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/InformationAnalysis/CheckAnalysis.aspx.cs b/SGGL/FineUIPro.Web/HSSE/InformationAnalysis/CheckAnalysis.aspx.cs index 7ca15220..e1888b58 100644 --- a/SGGL/FineUIPro.Web/HSSE/InformationAnalysis/CheckAnalysis.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/InformationAnalysis/CheckAnalysis.aspx.cs @@ -59,37 +59,66 @@ namespace FineUIPro.Web.HSSE.InformationAnalysis dtCheck.Columns.Add("检查类型", typeof(string)); dtCheck.Columns.Add("数量", typeof(string)); - List newCheckAnalyseView = new List(); - var checkAnalyseView = from x in Funs.DB.View_CheckAnalysis - where x.ProjectId == this.ProjectId - select x; - if (!string.IsNullOrEmpty(this.txtStarTime.Text)) - { - checkAnalyseView = checkAnalyseView.Where(x => x.CheckTime >= Funs.GetNewDateTime(this.txtStarTime.Text)); - } - if (!string.IsNullOrEmpty(this.txtEndTime.Text)) - { - checkAnalyseView = checkAnalyseView.Where(x => x.CheckTime <= Funs.GetNewDateTime(this.txtEndTime.Text)); - } - if (checkAnalyseView.Count() > 0) - { - foreach (var item in checkAnalyseView) - { - Model.SpResourceCollection view = new Model.SpResourceCollection - { - UnitName = BLL.Check_ProjectCheckItemSetService.ConvertCheckItemType(item.CheckItem), - TotalCount = 1 - }; - newCheckAnalyseView.Add(view); - } - } + //List newCheckAnalyseView = new List(); + //var checkAnalyseView = from x in Funs.DB.View_CheckAnalysis + // where x.ProjectId == this.ProjectId + // select x; + //if (!string.IsNullOrEmpty(this.txtStarTime.Text)) + //{ + // checkAnalyseView = checkAnalyseView.Where(x => x.CheckTime >= Funs.GetNewDateTime(this.txtStarTime.Text)); + //} + //if (!string.IsNullOrEmpty(this.txtEndTime.Text)) + //{ + // checkAnalyseView = checkAnalyseView.Where(x => x.CheckTime <= Funs.GetNewDateTime(this.txtEndTime.Text)); + //} + //if (checkAnalyseView.Count() > 0) + //{ + // foreach (var item in checkAnalyseView) + // { + // Model.SpResourceCollection view = new Model.SpResourceCollection + // { + // UnitName = BLL.Check_ProjectCheckItemSetService.ConvertCheckItemType(item.CheckItem), + // TotalCount = 1 + // }; + // newCheckAnalyseView.Add(view); + // } + //} - var checkType = newCheckAnalyseView.Select(x => x.UnitName).Distinct(); - foreach (var itemType in checkType) + //var checkType = newCheckAnalyseView.Select(x => x.UnitName).Distinct(); + string[] TypeArray = { "HSE巡检", "专项检查", "综合检查", "开工前检查", "季节性/节假日前检查" }; + #region 加载各项数据的子数据 + var count1 = Funs.DB.View_Hazard_HazardRegister.Where(x => x.ProjectId == this.ProjectId).ToList().Count(); + + var count2 = (from x in Funs.DB.Check_CheckSpecialDetail + join y in Funs.DB.Check_CheckSpecial on x.CheckSpecialId equals y.CheckSpecialId + select x).ToList().Count(); + + var count3 = (from x in Funs.DB.Check_CheckColligationDetail + join y in Funs.DB.Check_CheckColligation on x.CheckColligationId equals y.CheckColligationId + where y.ProjectId == this.ProjectId + select x).ToList().Count(); + + var count4 = (from x in Funs.DB.Check_CheckWorkDetail + join y in Funs.DB.Check_CheckWork on x.CheckWorkId equals y.CheckWorkId + where y.ProjectId == this.ProjectId + select x).ToList().Count; + + var count5 = (from x in Funs.DB.Check_CheckHolidayDetail + join y in Funs.DB.Check_CheckHoliday on x.CheckHolidayId equals y.CheckHolidayId + select x).ToList().Count(); + + List list = new List(); + list.Add(new CheckAnalysisModel() { itemType = TypeArray[0], count = count1 }); + list.Add(new CheckAnalysisModel() { itemType = TypeArray[1], count = count2 }); + list.Add(new CheckAnalysisModel() { itemType = TypeArray[2], count = count3 }); + list.Add(new CheckAnalysisModel() { itemType = TypeArray[3], count = count4 }); + list.Add(new CheckAnalysisModel() { itemType = TypeArray[4], count = count5 }); + #endregion + foreach (var itemType in list) { DataRow rowUnit = dtCheck.NewRow(); - rowUnit["检查类型"] = itemType; - rowUnit["数量"] = newCheckAnalyseView.Where(x => x.UnitName == itemType).Count(); + rowUnit["检查类型"] = itemType.itemType; + rowUnit["数量"] = itemType.count; dtCheck.Rows.Add(rowUnit); } @@ -97,6 +126,11 @@ namespace FineUIPro.Web.HSSE.InformationAnalysis this.gvCheck.DataBind(); this.ChartCostTime.CreateChart(BLL.ChartControlService.GetDataSourceChart(dtCheck, "危险因素分析", this.drpChartType.SelectedValue, 1150, 450, this.ckbShow.Checked)); } + + public class CheckAnalysisModel { + public string itemType { get; set; } + public int count { get; set; } + } #endregion #region 统计查询 diff --git a/SGGL/Model/APIItem/HSSE/CheckSpecialDetailItem.cs b/SGGL/Model/APIItem/HSSE/CheckSpecialDetailItem.cs index b5539e84..8d6f8c13 100644 --- a/SGGL/Model/APIItem/HSSE/CheckSpecialDetailItem.cs +++ b/SGGL/Model/APIItem/HSSE/CheckSpecialDetailItem.cs @@ -203,5 +203,9 @@ namespace Model /// public string Rectification_Date { get; set; } + /// + /// 处理意见 + /// + public string CheckOpinions { get; set; } } } diff --git a/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs b/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs index 91f4f824..bda13b16 100644 --- a/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs +++ b/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs @@ -180,5 +180,65 @@ namespace Model get; set; } + + /// + /// 受检单位 + /// + public string ResponsibleUnit + { + get; + set; + } + /// + /// 受检单位 + /// + public string ResponsibleUnitName + { + get; + set; + } + /// + /// 单位工程ID + /// + public string WorkAreaId + { + get; + set; + } + /// + /// 单位工程ID + /// + public string WorkAreaName + { + get; + set; + } + /// + /// 问题类型 + /// + public string QuestionType + { + get; + set; + } + /// + /// 问题类型 + /// + public string QuestionTypeName + { + get; + set; + } + + /// + /// 审核人 + /// + public string ResponsibleMan { get; set; } + + /// + /// 审核状态 + /// + public string AuditState { get; set; } + } } diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index f3139172..339bc509 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -59583,6 +59583,14 @@ namespace Model private string _CheckItemSetId; + private string _ResponsibleUnit; + + private string _WorkAreaId; + + private string _QuestionType; + + private string _ResponsibleMan; + private EntityRef _Base_Project; private EntityRef _Technique_CheckItemSet; @@ -59623,6 +59631,14 @@ namespace Model partial void OnPartInPersonNamesChanged(); partial void OnCheckItemSetIdChanging(string value); partial void OnCheckItemSetIdChanged(); + partial void OnResponsibleUnitChanging(string value); + partial void OnResponsibleUnitChanged(); + partial void OnWorkAreaIdChanging(string value); + partial void OnWorkAreaIdChanged(); + partial void OnQuestionTypeChanging(string value); + partial void OnQuestionTypeChanged(); + partial void OnResponsibleManChanging(string value); + partial void OnResponsibleManChanged(); #endregion public Check_CheckSpecial() @@ -59960,6 +59976,86 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResponsibleUnit", DbType="NVarChar(50)")] + public string ResponsibleUnit + { + get + { + return this._ResponsibleUnit; + } + set + { + if ((this._ResponsibleUnit != value)) + { + this.OnResponsibleUnitChanging(value); + this.SendPropertyChanging(); + this._ResponsibleUnit = value; + this.SendPropertyChanged("ResponsibleUnit"); + this.OnResponsibleUnitChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaId", DbType="NVarChar(50)")] + public string WorkAreaId + { + get + { + return this._WorkAreaId; + } + set + { + if ((this._WorkAreaId != value)) + { + this.OnWorkAreaIdChanging(value); + this.SendPropertyChanging(); + this._WorkAreaId = value; + this.SendPropertyChanged("WorkAreaId"); + this.OnWorkAreaIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QuestionType", DbType="NVarChar(50)")] + public string QuestionType + { + get + { + return this._QuestionType; + } + set + { + if ((this._QuestionType != value)) + { + this.OnQuestionTypeChanging(value); + this.SendPropertyChanging(); + this._QuestionType = value; + this.SendPropertyChanged("QuestionType"); + this.OnQuestionTypeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResponsibleMan", DbType="NVarChar(50)")] + public string ResponsibleMan + { + get + { + return this._ResponsibleMan; + } + set + { + if ((this._ResponsibleMan != value)) + { + this.OnResponsibleManChanging(value); + this.SendPropertyChanging(); + this._ResponsibleMan = value; + this.SendPropertyChanged("ResponsibleMan"); + this.OnResponsibleManChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Check_CheckSpecial_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] public Base_Project Base_Project { @@ -60099,6 +60195,8 @@ namespace Model private System.Nullable _Rectification_Date; + private string _CheckOpinions; + private EntityRef _Base_Unit; private EntityRef _WBS_UnitWork; @@ -60151,6 +60249,8 @@ namespace Model partial void OnCheckItemSetContentChanged(); partial void OnRectification_DateChanging(System.Nullable value); partial void OnRectification_DateChanged(); + partial void OnCheckOpinionsChanging(string value); + partial void OnCheckOpinionsChanged(); #endregion public Check_CheckSpecialDetail() @@ -60608,6 +60708,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CheckOpinions", DbType="NVarChar(2000)")] + public string CheckOpinions + { + get + { + return this._CheckOpinions; + } + set + { + if ((this._CheckOpinions != value)) + { + this.OnCheckOpinionsChanging(value); + this.SendPropertyChanging(); + this._CheckOpinions = value; + this.SendPropertyChanged("CheckOpinions"); + this.OnCheckOpinionsChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Check_CheckSpecialDetail_Base_Unit", Storage="_Base_Unit", ThisKey="UnitId", OtherKey="UnitId", IsForeignKey=true)] public Base_Unit Base_Unit { diff --git a/SGGL/WebAPI/Controllers/PersonController.cs b/SGGL/WebAPI/Controllers/PersonController.cs index 71118084..a146cd00 100644 --- a/SGGL/WebAPI/Controllers/PersonController.cs +++ b/SGGL/WebAPI/Controllers/PersonController.cs @@ -1083,5 +1083,28 @@ namespace WebAPI.Controllers return responeData; } #endregion + + #region 二维码扫码获取人员 + /// + /// 二维码扫码获取人员 + /// + /// + /// + public Model.ResponeData getPersonByPersonIdQrcode(string personId) + { + var responeData = new Model.ResponeData(); + try + { + responeData.data = APIPersonService.getPersonByPersonIdQrcode(personId); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + #endregion } } \ No newline at end of file From 7108e961521ec33f90b2ecb42309d3c51a790131 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 27 Sep 2023 15:58:06 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2023-09-27.sql | 372 ++++++++++++++++++ 1 file changed, 372 insertions(+) diff --git a/DataBase/版本日志/SGGLDB_WH_2023-09-27.sql b/DataBase/版本日志/SGGLDB_WH_2023-09-27.sql index e3bfcf70..81a2ba2f 100644 --- a/DataBase/版本日志/SGGLDB_WH_2023-09-27.sql +++ b/DataBase/版本日志/SGGLDB_WH_2023-09-27.sql @@ -36,4 +36,376 @@ GO --ô alter table SitePerson_Person enable trigger SitePerson_Person_Bak_TRIGGER; +GO + + +--ȡǰ˴ +ALTER PROCEDURE [dbo].[Sp_APP_GetToDoItems] + @projectId NVARCHAR(50)=NULL, + @userId NVARCHAR(200)=NULL +AS +/*ȡǰ˴*/ +BEGIN +SELECT HazardRegisterId AS DataId + ,'B6BE5FE0-CB84-47FF-A6C3-5AD9E1CCE079' AS MenuId + ,'ȫѲ' AS MenuName + ,register.RegisterDef AS Content + ,UserId + ,users.UserName + ,register.RegisterDate AS DataTime + ,CONVERT(varchar(100),register.RegisterDate, 23) AS DataTimeStr + ,'/pagesHSSE/safe/inspecitonconfirm' AS UrlStr +FROM HSSE_Hazard_HazardRegister AS register +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE register.ProjectId=@projectId AND +((register.states = '1' AND (register.ResponsibleMan =@userId OR register.CCManIds LIKE ('%'+@userId+'%') )) +OR (register.states = '2' AND register.CheckManId =@userId)) + +UNION ALL +SELECT PlanId AS DataId + ,'B782A26B-D85C-4F84-8B45-F7AA47B3159E' AS MenuId + ,'ѵƻ' AS MenuName + ,PlanName AS Content + ,UserId + ,users.UserName + ,DesignerDate AS DataTime + ,CONVERT(varchar(100),DesignerDate, 23) AS DataTimeStr + ,'/pagesTest/test/trainindex' AS UrlStr +FROM Training_Plan AS ePlan +LEFT JOIN Sys_User AS users ON ePlan.DesignerId= users.UserId +WHERE (ePlan.ProjectId=@projectId or (@projectId is null and ePlan.ProjectId is null)) + AND (States = '0' OR States = '1' ) AND ePlan.DesignerId =@userId + +UNION ALL +SELECT TestPlanId AS DataId + ,'FAF7F4A4-A4BC-4D94-9E88-0CF5A380DB34' AS MenuId + ,'Լƻ' AS MenuName + ,PlanName AS Content + ,UserId + ,users.UserName + ,PlanDate AS DataTime + ,CONVERT(varchar(100),PlanDate, 23) AS DataTimeStr + ,'/pagesTest/test/testplan' AS UrlStr +FROM Training_TestPlan AS TPlan +LEFT JOIN Sys_User AS users ON users.UserId =TPlan.PlanManId +WHERE (TPlan.ProjectId=@projectId or (@projectId is null and TPlan.ProjectId is null)) + AND (States = '0' OR States = '1' ) AND PlanManId =@userId + +UNION ALL +SELECT TaskId AS DataId + ,'E108F75D-89D0-4DCA-8356-A156C328805C' AS MenuId + ,'ѵ' AS MenuName + ,Plans.PlanName AS Content + ,users.UserId + ,users.UserName + ,TaskDate AS DataTime + ,CONVERT(varchar(100),TaskDate, 23) AS DataTimeStr + ,('/pagesTest/test/taskindex') AS UrlStr +FROM Training_Task AS Task + LEFT JOIN Sys_User AS users ON users.UserId =@userId + LEFT JOIN Training_Plan AS Plans ON Plans.PlanId =Task.PlanId +WHERE (Task.ProjectId=@projectId or (@projectId is null and Task.ProjectId is null)) + AND (Task.States IS NULL OR Task.States != 2) + AND Task.UserId = @userId + +UNION ALL +SELECT TestRecordId AS DataId + ,'0EEB138D-84F9-4686-8CBB-CAEAA6CF1B2A' AS MenuId + ,'ɨ뿼' AS MenuName + ,TestPlan.PlanName AS Content + ,TestRecord.TestManId + ,Person.PersonName + ,TestPlan.TestStartTime AS DataTime + ,CONVERT(varchar(100),TestPlan.TestStartTime, 23) AS DataTimeStr + ,('/pages/temp_index/index') AS UrlStr +FROM Training_TestRecord AS TestRecord +left join Training_TestPlan as TestPlan on TestRecord.TestPlanId = TestPlan.TestPlanId +left join SitePerson_Person as Person on Person.PersonId = TestRecord.TestManId +left join Sys_User as uses on Person.IdentityCard = uses.IdentityCard +WHERE (TestRecord.ProjectId=@projectId or (@projectId is null and TestRecord.ProjectId is null)) +AND TestPlan.States ='1' +AND TestRecord.TestEndTime IS NULL +AND (TestRecord.TestManId = @userId or uses.UserId = @userId) + +UNION ALL +SELECT FireWorkId AS DataId + ,'2E58D4F1-2FF1-450E-8A00-1CE3BBCF8D4B' AS MenuId + ,'ҵ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/dhuo/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_FireWork AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT HeightWorkId AS DataId + ,'DA1CAE8E-B5BF-4AC0-9996-AF6CAA412CA9' AS MenuId + ,'ߴҵ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/gchu/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_HeightWork AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT LimitedSpaceId AS DataId + ,'AEC9166D-1C91-45F0-8BFE-D3D0479A28C7' AS MenuId + ,'޿ռ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/sxkj/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_LimitedSpace AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT RadialWorkId AS DataId + ,'F72FF20B-D3EB-46A5-97F7-C99B2473A140' AS MenuId + ,'ҵ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/sx/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_RadialWork AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT OpenCircuitId AS DataId + ,'4E607E83-41FC-4F49-B26F-A21CFE38328F' AS MenuId + ,'·(ռ)' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/dlu/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_OpenCircuit AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT BreakGroundId AS DataId + ,'755C6AC9-2E38-4D4F-AF33-33CB1744A907' AS MenuId + ,'ҵ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/dtu/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_BreakGround AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT NightWorkId AS DataId + ,'7BBAE649-7B00-4475-A911-BFE3A37AC55B' AS MenuId + ,'ҹʩ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/yjsg/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_NightWork AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT LiftingWorkId AS DataId + ,'A1BE3AB6-9D4A-41E7-8870-E73423165451' AS MenuId + ,'װҵ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/dzhuang/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_LiftingWork AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT ElectricityId AS DataId + ,'48F64E0F-38B2-4BDC-9B61-6200BD02CBF5' AS MenuId + ,'ʱõ' AS MenuName + ,LicenseCode AS Content + ,UserId + ,users.UserName + ,ApplyDate AS DataTime + ,CONVERT(varchar(100),ApplyDate, 23) AS DataTimeStr + ,(CASE WHEN States = '0' THEN '/pagesWork/ldian/add' + ELSE '/pagesWork/dhuo/approval' END) AS UrlStr +FROM License_Electricity AS License + LEFT JOIN Sys_User AS users ON users.UserId =License.NextManId +WHERE License.ProjectId=@projectId + AND (States = '0' OR States = '1' OR States= '6') + AND License.NextManId LIKE '%'+ @userId+'%' + +UNION ALL +SELECT RectifyNoticesId AS DataId + ,'0038D764-D628-46F0-94FF-D0A22C3C45A3' AS MenuId + ,'' AS MenuName + ,(CASE WHEN Rectify.States =1 THEN 'ǩ' + WHEN Rectify.States =2 THEN 'ģ' + WHEN Rectify.States =3 THEN 'ˣ' + WHEN Rectify.States =4 THEN '飺' + WHEN Rectify.States =5 THEN 'ɣ' + ELSE 'ύ' END + RectifyNoticesCode) AS Content + ,users.UserId + ,users.UserName + ,CheckedDate AS DataTime + ,CONVERT(varchar(100),CheckedDate, 23) AS DataTimeStr + ,(CASE WHEN ISNULL(Rectify.States,0) =0 THEN '/pagesHSSE/rn/rn_add' --ύ + WHEN Rectify.States =1 THEN '/pagesHSSE/rn/rn_approval' --ǩ + WHEN Rectify.States =2 THEN '/pagesHSSE/rn/rn_rectify' -- + WHEN Rectify.States =3 THEN '/pagesHSSE/rn/rn_rectifycf' -- + WHEN Rectify.States =4 THEN '/pagesHSSE/rn/rn_confirm' -- + ELSE '/pagesHSSE/rn/rn_add' END) AS UrlStr +FROM Check_RectifyNotices AS Rectify + LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE Rectify.Projectid=@projectId AND Rectify.States <> 5 + AND ((ISNULL(Rectify.States,0) =0 AND Rectify.CompleteManId LIKE '%'+ @userId+'%') + OR (Rectify.States =1 AND Rectify.SignPerson LIKE '%'+ @userId+'%') + OR (Rectify.States =2 AND Rectify.DutyPersonId LIKE '%'+ @userId+'%') + OR (Rectify.States =3 AND Rectify.UnitHeadManId LIKE '%'+ @userId+'%') + OR (Rectify.States =4 AND Rectify.CheckPerson LIKE '%'+ @userId+'%') + OR (Rectify.ProfessionalEngineerId LIKE '%'+ @userId+'%' AND (ProfessionalEngineerTime1 IS NULL OR ProfessionalEngineerTime2 IS NULL)) + OR (Rectify.ConstructionManagerId LIKE '%'+ @userId+'%' AND (ConstructionManagerTime1 IS NULL OR ConstructionManagerTime2 IS NULL)) + OR (Rectify.ProjectManagerId LIKE '%'+ @userId+'%' AND (ProjectManagerTime1 IS NULL OR ProjectManagerTime2 IS NULL))) + +UNION ALL +SELECT PersonId AS DataId + ,'EE260447-028F-46AF-8864-9A5DC9DAA5BD' AS MenuId + ,'ֳԱ' AS MenuName + ,Person.PersonName AS Content + ,users.UserId + ,users.UserName + ,Person.InTime AS DataTime + ,CONVERT(varchar(100),Person.InTime, 23) AS DataTimeStr + ,('/pagesHSSE/info/peopledetail') AS UrlStr +FROM SitePerson_Person AS Person + LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE Person.ProjectId=@projectId AND (Person.IsUsed IS NULL OR Person.IsUsed= 0) + AND Person.AuditorId = @userId AND Person.AuditorDate IS NULL + + +UNION ALL +SELECT PauseNoticeId AS DataId + ,'C81DB7ED-165E-4C69-86B0-A3AAE37059FE' AS MenuId + ,'ͣ' AS MenuName + ,(CASE WHEN PauseNotice.PauseStates =1 THEN 'ǩ' + WHEN PauseNotice.PauseStates =2 THEN '׼' + WHEN PauseNotice.PauseStates =3 THEN 'գ' + ELSE 'ύ' END + PauseNoticeCode) AS Content + ,users.UserId + ,users.UserName + ,PauseTime AS DataTime + ,CONVERT(varchar(100),PauseTime, 23) AS DataTimeStr + ,(CASE WHEN ISNULL(PauseNotice.PauseStates,0) =0 THEN '/pagesHSSE/info/stop_add' --ύ + WHEN PauseNotice.PauseStates =1 AND PauseNotice.SignManId=@userId THEN '/pagesHSSE/info/stop_approval' --ǩ + WHEN PauseNotice.PauseStates =2 AND PauseNotice.ApproveManId=@userId THEN '/pagesHSSE/info/stop_confirm' --׼ + WHEN PauseNotice.PauseStates =3 AND PauseNotice.DutyPersonId=@userId THEN '/pagesHSSE/info/stop_feedback' -- + ELSE '/pagesHSSE/info/stop_add' END) AS UrlStr +FROM Check_PauseNotice AS PauseNotice + LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE PauseNotice.ProjectId=@projectId AND PauseNotice.PauseStates <> 4 + AND ((ISNULL(PauseNotice.PauseStates,0) =0 AND PauseNotice.CompileManId LIKE '%'+ @userId+'%') + OR (PauseNotice.PauseStates =1 AND PauseNotice.SignManId LIKE '%'+ @userId+'%') + OR (PauseNotice.PauseStates =2 AND PauseNotice.ApproveManId LIKE '%'+ @userId+'%') + OR (PauseNotice.PauseStates =3 AND PauseNotice.DutyPersonId LIKE '%'+ @userId+'%') + OR (PauseNotice.ProfessionalEngineerId LIKE '%'+ @userId+'%' AND ProfessionalEngineerTime IS NULL) + OR (PauseNotice.ConstructionManagerId LIKE '%'+ @userId+'%' AND ConstructionManagerTime IS NULL) + OR (PauseNotice.UnitHeadManId LIKE '%'+ @userId+'%' AND UnitHeadManTime IS NULL) + OR (PauseNotice.SupervisorManId LIKE '%'+ @userId+'%' AND SupervisorManTime IS NULL) + OR (PauseNotice.OwnerId LIKE '%'+ @userId+'%' AND OwnerTime IS NULL)) +UNION ALL +SELECT PunishNoticeId AS DataId + ,'755F1C1D-2178-47D8-9F82-A501B53A2436' AS MenuId + ,'' AS MenuName + ,(CASE WHEN PunishNotice.PunishStates =1 THEN 'ǩ' + WHEN PunishNotice.PunishStates =2 THEN '׼' + WHEN PunishNotice.PunishStates =3 THEN 'ִ' + ELSE 'ύ' END + PunishNoticeCode) AS Content + ,users.UserId + ,users.UserName + ,PunishNoticeDate AS DataTime + ,CONVERT(varchar(100),PunishNoticeDate, 23) AS DataTimeStr + ,(CASE WHEN ISNULL(PunishNotice.PunishStates,0) =0 THEN '/pagesTest/punish/add' --ύ + WHEN PunishNotice.PunishStates =1 AND PunishNotice.SignMan=@userId THEN '/pagesTest/punish/approval' --ǩ + WHEN PunishNotice.PunishStates =2 AND PunishNotice.ApproveMan=@userId THEN '/pagesTest/punish/rectify' --׼ + WHEN PunishNotice.PunishStates =3 AND PunishNotice.DutyPersonId=@userId THEN '/pagesTest/punish/rectifycf' --ִ + ELSE '/pagesTest/punish/detail' END) AS UrlStr +FROM Check_PunishNotice AS PunishNotice + LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE PunishNotice.ProjectId=@projectId AND PunishNotice.PunishStates <> 4 + AND ((ISNULL(PunishNotice.PunishStates,0) =0 AND PunishNotice.CompileMan LIKE '%'+ @userId+'%') + OR (PunishNotice.PunishStates =1 AND PunishNotice.SignMan LIKE '%'+ @userId+'%') + OR (PunishNotice.PunishStates =2 AND PunishNotice.ApproveMan LIKE '%'+ @userId+'%') + OR (PunishNotice.PunishStates =3 AND PunishNotice.DutyPersonId LIKE '%'+ @userId+'%') + OR (PunishNotice.ProfessionalEngineerId LIKE '%'+ @userId+'%' AND ProfessionalEngineerTime IS NULL) + OR (PunishNotice.ConstructionManagerId LIKE '%'+ @userId+'%' AND ConstructionManagerTime IS NULL) + OR (PunishNotice.UnitHeadManId LIKE '%'+ @userId+'%' AND UnitHeadManTime IS NULL)) +UNION ALL + +SELECT CheckSpecialId AS DataId + ,'1B08048F-93ED-4E84-AE65-DB7917EA2DFB' AS MenuId + ,'ר' AS MenuName + ,checkspecial.CheckSpecialCode+'ר' AS Content + ,UserId + ,users.UserName + ,checkspecial.CheckTime AS DataTime + ,CONVERT(varchar(100),checkspecial.CheckTime, 23) AS DataTimeStr + ,'/pagesHSSE/grow/special_detail' AS UrlStr +FROM Check_CheckSpecial AS checkspecial +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE checkspecial.ProjectId=@projectId AND +checkspecial.States='1' and checkspecial.ResponsibleMan=@userId + + +ORDER BY DataTime DESC +END + + + + + From 2e1c911889f8ff78f641f81db6a653d3c3f26afa Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 27 Sep 2023 17:33:57 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/BLL/API/HSSE/APIResourcesService.cs | 46 +++++++++++++++++------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/SGGL/BLL/API/HSSE/APIResourcesService.cs b/SGGL/BLL/API/HSSE/APIResourcesService.cs index 1aab6df0..21ccacce 100644 --- a/SGGL/BLL/API/HSSE/APIResourcesService.cs +++ b/SGGL/BLL/API/HSSE/APIResourcesService.cs @@ -357,22 +357,42 @@ namespace BLL /// /// 1-checkType;2-专项检查;3-综合检查 /// - public static List getCheckItemSetListBySupCheckItemId(string supTypeId, string checkType) + public static List getCheckItemSetListBySupCheckItemId(string supTypeId, string checkType,string supName="") { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var getDataLists = from x in db.Technique_CheckItemSet - where x.CheckType == checkType && (x.SupCheckItem == supTypeId || (supTypeId == null && x.SupCheckItem == "0")) - orderby x.SortIndex - select new Model.ResourcesItem - { - ResourcesId = x.CheckItemSetId, - ResourcesCode = x.MapCode, - ResourcesName = x.CheckItemName, - SupResourcesId = x.SupCheckItem, - IsEndLever = x.IsEndLever, - }; - return getDataLists.ToList(); + if (!string.IsNullOrEmpty(supName)) + { + var getDataLists = from x in db.Technique_CheckItemSet + where x.CheckType == checkType && (x.SupCheckItem == supTypeId || (supTypeId == null && x.SupCheckItem == "0")) + && x.CheckItemName.Contains(supName) + orderby x.SortIndex + select new Model.ResourcesItem + { + ResourcesId = x.CheckItemSetId, + ResourcesCode = x.MapCode, + ResourcesName = x.CheckItemName, + SupResourcesId = x.SupCheckItem, + IsEndLever = x.IsEndLever, + }; + return getDataLists.ToList(); + } + else { + var getDataLists = from x in db.Technique_CheckItemSet + where x.CheckType == checkType && (x.SupCheckItem == supTypeId || (supTypeId == null && x.SupCheckItem == "0")) + orderby x.SortIndex + select new Model.ResourcesItem + { + ResourcesId = x.CheckItemSetId, + ResourcesCode = x.MapCode, + ResourcesName = x.CheckItemName, + SupResourcesId = x.SupCheckItem, + IsEndLever = x.IsEndLever, + }; + return getDataLists.ToList(); + } + + } } From 98345cb94f57318d088d1a536de67a90d317754e Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Sat, 7 Oct 2023 16:58:43 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2023-09-30.sql | 47 ++ .../版本日志/SGGLDB_WH_2023-10-07.sql | 4 + SGGL/BLL/API/HSSE/APICheckSpecialService.cs | 228 ++++-- SGGL/BLL/ProjectData/ProjectService.cs | 4 + SGGL/FineUIPro.Web/ErrLog.txt | 22 + .../HSSE/Check/CheckSpecialView.aspx | 4 +- .../ProjectData/Installation.aspx.cs | 763 +++++++++--------- .../ProjectData/ProjectSetSave.aspx | 6 + .../ProjectData/ProjectSetSave.aspx.cs | 4 + .../ProjectSetSave.aspx.designer.cs | 114 +-- .../ProjectData/ProjectSetView.aspx | 6 + .../ProjectData/ProjectSetView.aspx.cs | 2 + .../ProjectSetView.aspx.designer.cs | 18 + SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs | 5 + SGGL/Model/Model.cs | 72 ++ .../HSSE/CheckSpecialController.cs | 27 +- 16 files changed, 829 insertions(+), 497 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2023-09-30.sql create mode 100644 DataBase/版本日志/SGGLDB_WH_2023-10-07.sql diff --git a/DataBase/版本日志/SGGLDB_WH_2023-09-30.sql b/DataBase/版本日志/SGGLDB_WH_2023-09-30.sql new file mode 100644 index 00000000..8c9b1c05 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2023-09-30.sql @@ -0,0 +1,47 @@ +--ר¼ +alter table Check_CheckSpecial add ReceiveMan nvarchar(2000) null; + +--States0- 1-ύ 2-ͨ 3-ȷ + + +--޸רϸͼ +/****** Object: View [dbo].[View_CheckSpecialDetail] Script Date: 2023/9/30 11:19:54 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO +/*LEFT JOIN Sys_Const AS const ON const.ConstValue = detail.HandleStep and const.GroupId='HandleStep'*/ +ALTER VIEW [dbo].[View_CheckSpecialDetail] +AS +SELECT detail.CheckSpecialDetailId, detail.CheckSpecialId, detail.CheckItem, checkItemSet.CheckItemName, detail.Unqualified, + detail.SortIndex, detail.UnitId, detail.HandleStep, detail.CompleteStatus, + (CASE WHEN detail.CompleteStatus = 1 THEN 'ϸ' ELSE 'ϸ' END) AS CompleteStatusName, detail.LimitedDate, + detail.CompletedDate, detail.CheckContent, detail.CheckArea, + workArea.UnitWorkName + (CASE WHEN workArea.ProjectType = '1' THEN '()' WHEN workArea.ProjectType = '2' THEN '(װ)' + ELSE '' END) AS CheckAreaName, detail.DataId, detail.DataType, unit.UnitName, + dbo.GetConstTextByIds(detail.HandleStep) AS HandleStepStr, + (CASE WHEN detail.DataType LIKE '%1%' THEN '·ĵ:' + + (SELECT RectifyNoticesCode + FROM Check_RectifyNotices + WHERE detail.DataId LIKE '%' + RectifyNoticesId + '%') ELSE '' END) + + (CASE WHEN detail.DataType LIKE '%2%' THEN '·:' + + (SELECT PunishNoticeCode + FROM Check_PunishNotice + WHERE detail.DataId LIKE '%' + PunishNoticeId + '%') ELSE '' END) + + (CASE WHEN detail.DataType = '3' THEN '·ͣ:' + + (SELECT PauseNoticeCode + FROM Check_PauseNotice + WHERE detail.DataId LIKE '%' + PauseNoticeId + '%') ELSE '' END) AS HandleStepLink, detail.HiddenHazardType, + (CASE WHEN detail.HiddenHazardType = '3' THEN 'ش' WHEN detail.HiddenHazardType = '2' THEN 'ϴ' WHEN detail.HiddenHazardType + = '1' THEN 'һ' ELSE '' END) AS HiddenHazardTypeName, detail.CheckItemSetId, detail.CheckItemSetContent, + detail.Rectification_Date +FROM dbo.Check_CheckSpecialDetail AS detail LEFT OUTER JOIN + dbo.Technique_CheckItemSet AS checkItemSet ON checkItemSet.CheckItemSetId = detail.CheckItem LEFT OUTER JOIN + dbo.Base_Unit AS unit ON unit.UnitId = detail.UnitId LEFT OUTER JOIN + dbo.WBS_UnitWork AS workArea ON detail.CheckArea = workArea.UnitWorkId + + +GO + + diff --git a/DataBase/版本日志/SGGLDB_WH_2023-10-07.sql b/DataBase/版本日志/SGGLDB_WH_2023-10-07.sql new file mode 100644 index 00000000..990bad7f --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2023-10-07.sql @@ -0,0 +1,4 @@ +alter table Base_Project add ProjType nvarchar(50) null +GO +alter table Base_Project add ProjPhase nvarchar(50) null +GO \ No newline at end of file diff --git a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs index 09c6c784..de0945c2 100644 --- a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs +++ b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs @@ -14,49 +14,96 @@ namespace BLL /// /// /// - public static Model.CheckSpecialItem getCheckSpecialById(string CheckSpecialId) + public static Model.CheckSpecialItem getCheckSpecialById(string CheckSpecialId,string state="0") { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var getInfo = from x in db.Check_CheckSpecial - where x.CheckSpecialId == CheckSpecialId - select new Model.CheckSpecialItem - { - CheckSpecialId = x.CheckSpecialId, - ProjectId = x.ProjectId, - CheckSpecialCode = x.CheckSpecialCode, - CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"), - CheckType = x.CheckType, - CheckItemSetId = x.CheckItemSetId, - CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName, - CheckPersonId = x.CheckPerson, - CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName, - CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime), - DaySummary = x.DaySummary, - PartInUnitIds = x.PartInUnits, - PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits), - PartInPersonIds = x.PartInPersonIds, - PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds), - PartInPersonNames2 = x.PartInPersonNames, - CompileManId = x.CompileMan, - CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName, - States = x.States, - AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null), - CheckSpecialDetailItems = getCheckSpecialDetailList(x.CheckSpecialId), + if (state == "0") + { + //状态是0的时候查看所有 + var getInfo = from x in db.Check_CheckSpecial + where x.CheckSpecialId == CheckSpecialId + select new Model.CheckSpecialItem + { + CheckSpecialId = x.CheckSpecialId, + ProjectId = x.ProjectId, + CheckSpecialCode = x.CheckSpecialCode, + CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"), + CheckType = x.CheckType, + CheckItemSetId = x.CheckItemSetId, + CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName, + CheckPersonId = x.CheckPerson, + CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName, + CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime), + DaySummary = x.DaySummary, + PartInUnitIds = x.PartInUnits, + PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits), + PartInPersonIds = x.PartInPersonIds, + PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds), + PartInPersonNames2 = x.PartInPersonNames, + CompileManId = x.CompileMan, + CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName, + States = x.States, + AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null), + CheckSpecialDetailItems = getCheckSpecialDetailList(x.CheckSpecialId,"0"), - ResponsibleUnit=x.ResponsibleUnit, - ResponsibleUnitName=UnitService.GetUnitNameByUnitId(x.ResponsibleUnit), - WorkAreaId=x.WorkAreaId, - WorkAreaName= UnitWorkService.GetUnitWorkName(x.WorkAreaId), - QuestionType=x.QuestionType, - QuestionTypeName=UnitService.GetQuestionTypeId(x.QuestionType), + ResponsibleUnit = x.ResponsibleUnit, + ResponsibleUnitName = UnitService.GetUnitNameByUnitId(x.ResponsibleUnit), + WorkAreaId = x.WorkAreaId, + WorkAreaName = UnitWorkService.GetUnitWorkName(x.WorkAreaId), + QuestionType = x.QuestionType, + QuestionTypeName = UnitService.GetQuestionTypeId(x.QuestionType), - ResponsibleMan=x.ResponsibleMan, + ResponsibleMan = x.ResponsibleMan, + ReceiveMan = x.ReceiveMan + }; + return getInfo.FirstOrDefault(); + } + else { + //状态是1的时候查看不合格的子项 + var getInfo = from x in db.Check_CheckSpecial + where x.CheckSpecialId == CheckSpecialId + select new Model.CheckSpecialItem + { + CheckSpecialId = x.CheckSpecialId, + ProjectId = x.ProjectId, + CheckSpecialCode = x.CheckSpecialCode, + CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"), + CheckType = x.CheckType, + CheckItemSetId = x.CheckItemSetId, + CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName, + CheckPersonId = x.CheckPerson, + CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName, + CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime), + DaySummary = x.DaySummary, + PartInUnitIds = x.PartInUnits, + PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits), + PartInPersonIds = x.PartInPersonIds, + PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds), + PartInPersonNames2 = x.PartInPersonNames, + CompileManId = x.CompileMan, + CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName, + States = x.States, + AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null), + CheckSpecialDetailItems = getCheckSpecialDetailList(x.CheckSpecialId,"1"), - }; - return getInfo.FirstOrDefault(); + ResponsibleUnit = x.ResponsibleUnit, + ResponsibleUnitName = UnitService.GetUnitNameByUnitId(x.ResponsibleUnit), + WorkAreaId = x.WorkAreaId, + WorkAreaName = UnitWorkService.GetUnitWorkName(x.WorkAreaId), + QuestionType = x.QuestionType, + QuestionTypeName = UnitService.GetQuestionTypeId(x.QuestionType), + + ResponsibleMan = x.ResponsibleMan, + ReceiveMan = x.ReceiveMan + + + }; + return getInfo.FirstOrDefault(); + } + } } #endregion @@ -68,12 +115,14 @@ namespace BLL /// /// /// - public static List getCheckSpecialList(string projectId, string states) + public static List getCheckSpecialList(string projectId, string states,string userid) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getCheckSpecial = from x in db.Check_CheckSpecial where x.ProjectId == projectId && x.States ==states + //当前保存人、审核人、确认人能看到 + &&(x.CompileMan==userid || x.ResponsibleMan==userid || userid.Contains(x.ReceiveMan)) orderby x.CheckSpecialCode descending select new Model.CheckSpecialItem { @@ -97,6 +146,7 @@ namespace BLL CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName, States = x.States, AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null), + ReceiveMan=x.ResponsibleMan }; return getCheckSpecial.ToList(); } @@ -237,43 +287,83 @@ namespace BLL /// /// /// - public static List getCheckSpecialDetailList(string checkSpecialId) + public static List getCheckSpecialDetailList(string checkSpecialId,string CompleteStatus="0") { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var getInfo = from x in db.Check_CheckSpecialDetail - where x.CheckSpecialId == checkSpecialId - orderby x.SortIndex - select new Model.CheckSpecialDetailItem - { - CheckSpecialDetailId = x.CheckSpecialDetailId, - CheckSpecialId = x.CheckSpecialId, - CheckItemSetId = x.CheckItem, - CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName, - CheckContent = x.CheckContent, - SortIndex = x.SortIndex, - Unqualified = x.Unqualified, - Suggestions = x.Suggestions, - WorkArea = db.WBS_UnitWork.First(y=>y.UnitWorkId ==x.CheckArea).UnitWorkName, - WorkAreaId=x.CheckArea, - UnitId = x.UnitId, - UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName, - HandleStep = x.HandleStep, - HandleStepName = getNames(x.HandleStep), - HiddenHazardType = x.HiddenHazardType, - HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"), - LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate), - CompleteStatus = x.CompleteStatus, - CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改", - CompletedDate = string.Format("{0:yyyy-MM-dd}", x.CompletedDate), - AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null), + if (CompleteStatus == "0") + { + var getInfo = from x in db.Check_CheckSpecialDetail + where x.CheckSpecialId == checkSpecialId + orderby x.SortIndex + select new Model.CheckSpecialDetailItem + { + CheckSpecialDetailId = x.CheckSpecialDetailId, + CheckSpecialId = x.CheckSpecialId, + CheckItemSetId = x.CheckItem, + CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName, + CheckContent = x.CheckContent, + SortIndex = x.SortIndex, + Unqualified = x.Unqualified, + Suggestions = x.Suggestions, + WorkArea = db.WBS_UnitWork.First(y => y.UnitWorkId == x.CheckArea).UnitWorkName, + WorkAreaId = x.CheckArea, + UnitId = x.UnitId, + UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName, + HandleStep = x.HandleStep, + HandleStepName = getNames(x.HandleStep), + HiddenHazardType = x.HiddenHazardType, + HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"), + LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate), + CompleteStatus = x.CompleteStatus, + CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改", + CompletedDate = string.Format("{0:yyyy-MM-dd}", x.CompletedDate), + AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null), - CheckItemDetailSetId = x.CheckItemSetId, - CheckItemDetailContent = x.CheckItemSetContent, - Rectification_Date = string.Format("{0:yyyy-MM-dd}", x.Rectification_Date), - CheckOpinions=x.CheckOpinions, - }; - return getInfo.ToList(); + CheckItemDetailSetId = x.CheckItemSetId, + CheckItemDetailContent = x.CheckItemSetContent, + Rectification_Date = string.Format("{0:yyyy-MM-dd}", x.Rectification_Date), + CheckOpinions = x.CheckOpinions, + }; + return getInfo.ToList(); + } + else { + //查询不合格子项 + var getInfo = from x in db.Check_CheckSpecialDetail + where x.CheckSpecialId == checkSpecialId && x.CompleteStatus==false + orderby x.SortIndex + select new Model.CheckSpecialDetailItem + { + CheckSpecialDetailId = x.CheckSpecialDetailId, + CheckSpecialId = x.CheckSpecialId, + CheckItemSetId = x.CheckItem, + CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName, + CheckContent = x.CheckContent, + SortIndex = x.SortIndex, + Unqualified = x.Unqualified, + Suggestions = x.Suggestions, + WorkArea = db.WBS_UnitWork.First(y => y.UnitWorkId == x.CheckArea).UnitWorkName, + WorkAreaId = x.CheckArea, + UnitId = x.UnitId, + UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName, + HandleStep = x.HandleStep, + HandleStepName = getNames(x.HandleStep), + HiddenHazardType = x.HiddenHazardType, + HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"), + LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate), + CompleteStatus = x.CompleteStatus, + CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改", + CompletedDate = string.Format("{0:yyyy-MM-dd}", x.CompletedDate), + AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null), + + CheckItemDetailSetId = x.CheckItemSetId, + CheckItemDetailContent = x.CheckItemSetContent, + Rectification_Date = string.Format("{0:yyyy-MM-dd}", x.Rectification_Date), + CheckOpinions = x.CheckOpinions, + }; + return getInfo.ToList(); + } + } } /// diff --git a/SGGL/BLL/ProjectData/ProjectService.cs b/SGGL/BLL/ProjectData/ProjectService.cs index a7b50ff4..2db27732 100644 --- a/SGGL/BLL/ProjectData/ProjectService.cs +++ b/SGGL/BLL/ProjectData/ProjectService.cs @@ -138,6 +138,8 @@ HJProjectCode = project.HJProjectCode, KZProjectCode = project.KZProjectCode, Progress = project.Progress, + ProjType = project.ProjType, + ProjPhase = project.ProjPhase, }; db.Base_Project.InsertOnSubmit(newProject); db.SubmitChanges(); @@ -186,6 +188,8 @@ newProject.HJProjectCode = project.HJProjectCode; newProject.KZProjectCode = project.KZProjectCode; newProject.Progress = project.Progress; + newProject.ProjType = project.ProjType; + newProject.ProjPhase = project.ProjPhase; db.SubmitChanges(); HSEDataCollectService.ProjectHSEDataCollectSubmission(newProject); } diff --git a/SGGL/FineUIPro.Web/ErrLog.txt b/SGGL/FineUIPro.Web/ErrLog.txt index 76e939ac..b012a6c2 100644 --- a/SGGL/FineUIPro.Web/ErrLog.txt +++ b/SGGL/FineUIPro.Web/ErrLog.txt @@ -3193,3 +3193,25 @@ IP地址:::1 出错时间:09/26/2023 18:55:14 + +错误信息开始=====> +错误类型:JsonReaderException +错误信息:Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1. +错误堆栈: + 在 Newtonsoft.Json.Linq.JArray.Load(JsonReader reader, JsonLoadSettings settings) + 在 Newtonsoft.Json.Linq.JArray.Parse(String json, JsonLoadSettings settings) + 在 Newtonsoft.Json.Linq.JArray.Parse(String json) + 在 FineUIPro.Web.ProjectData.Installation.btnMenuDown_Click(Object sender, EventArgs e) 位置 E:\工作\五环施工平台\SGGL_CWCEC\SGGL\FineUIPro.Web\ProjectData\Installation.aspx.cs:行号 257 + 在 FineUIPro.MenuButton.OnClick(EventArgs e) + 在 (MenuButton , EventArgs ) + 在 FineUIPro.MenuButton.RaisePostBackEvent(String eventArgument) + 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) + 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) + 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +出错时间:10/07/2023 16:42:46 +出错文件:http://localhost:8579/ProjectData/Installation.aspx +IP地址:::1 +操作人员:JT + +出错时间:10/07/2023 16:42:46 + diff --git a/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx b/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx index 4eb70936..08a475e7 100644 --- a/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx +++ b/SGGL/FineUIPro.Web/HSSE/Check/CheckSpecialView.aspx @@ -81,9 +81,9 @@ FieldType="String" HeaderTextAlign="Center" TextAlign="Left" HeaderText="整改期限"> - <%-- - --%> + x.CnProfessionName.Contains(name.Substring(0, 2))); - //拷贝专业 - if (cn != null) - { - if (cn.CnProfessionName != "防腐绝热" && cn.CnProfessionName != "地勘" && cn.CnProfessionName != "全厂地下主管网" && cn.CnProfessionName != "临时设施" && cn.CnProfessionName != "总图") - { - Model.WBS_CnProfession cnProfession = new Model.WBS_CnProfession(); - cnProfession.CnProfessionId = id; - cnProfession.CnProfessionName = cn.CnProfessionName; - cnProfession.CnProfessionCode = cn.CnProfessionCode; - cnProfession.InstallationId = parentId; - cnProfession.ProjectId = this.CurrUser.LoginProjectId; - cnProfession.StartDate = Funs.GetNewDateTime(planStart); - cnProfession.EndDate = Funs.GetNewDateTime(planFinish); - cnProfession.OldId = cn.CnProfessionId; - db.WBS_CnProfession.InsertOnSubmit(cnProfession); - db.SubmitChanges(); - //单位工程 - var unitProjects = unitProjectInits.Where(x => x.CnProfessionId == cn.CnProfessionId); - foreach (var unitProjectInit in unitProjects) - { - Model.Wbs_UnitProject unitProject = new Model.Wbs_UnitProject(); - unitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject)); - unitProject.UnitProjectCode = unitProjectInit.UnitProjectCode; - unitProject.UnitProjectName = unitProjectInit.UnitProjectName; - unitProject.InstallationId = parentId; - unitProject.SortIndex = unitProjectInit.SortIndex; - unitProject.SuperUnitProjectId = null; - unitProject.ProjectId = this.CurrUser.LoginProjectId; - unitProject.CnProfessionId = id; - unitProject.StartDate = Funs.GetNewDateTime(planStart); - unitProject.EndDate = Funs.GetNewDateTime(planFinish); - unitProject.Remark = unitProjectInit.Remark; - unitProject.IsIn = true; - db.Wbs_UnitProject.InsertOnSubmit(unitProject); - db.SubmitChanges(); - } - //分部分项 - var wbsSets = wbsSetInits.Where(x => x.CnProfessionId == cn.CnProfessionId); - foreach (var wbsSetInit in wbsSets) - { - Model.Wbs_WbsSet wbsSet = new Model.Wbs_WbsSet(); - wbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); - wbsSet.WbsSetCode = wbsSetInit.WbsSetCode; - wbsSet.WbsSetName = wbsSetInit.WbsSetName; - wbsSet.InstallationId = parentId; - wbsSet.CnProfessionId = id; - wbsSet.UnitProjectId = (from x in db.Wbs_UnitProject where x.UnitProjectCode == wbsSetInit.UnitProjectCode && x.CnProfessionId == id select x.UnitProjectId).FirstOrDefault(); - if (wbsSetInit.SuperWbsSetCode == null) - { - wbsSet.SuperWbsSetId = null; - } - else - { - wbsSet.SuperWbsSetId = (from x in db.Wbs_WbsSet - where x.WbsSetCode == wbsSetInit.SuperWbsSetCode && x.InstallationId == parentId && x.CnProfessionId == id - select x.WbsSetId).FirstOrDefault(); - } - wbsSet.ProjectId = this.CurrUser.LoginProjectId; - wbsSet.StartDate = Funs.GetNewDateTime(planStart); - wbsSet.EndDate = Funs.GetNewDateTime(planFinish); - wbsSet.Flag = wbsSetInit.Flag; - wbsSet.Way = wbsSetInit.Way; - wbsSet.Weights = wbsSetInit.Weights; - wbsSet.ControlItemDef = wbsSetInit.ControlItemDef; - wbsSet.ControlPoint = wbsSetInit.ControlPoint; - wbsSet.Remark = wbsSetInit.Remark; - wbsSet.IsIn = true; - db.Wbs_WbsSet.InsertOnSubmit(wbsSet); - db.SubmitChanges(); - var wbsSetMatchCostControls = wbsSetMatchCostControlInits.Where(x => x.WbsSetCode == wbsSetInit.WbsSetCode); - foreach (var wbsSetMatchCostControlInit in wbsSetMatchCostControls) - { - Model.WBS_WbsSetMatchCostControl wbsSetMatchCostControl = new Model.WBS_WbsSetMatchCostControl(); - wbsSetMatchCostControl.WbsSetMatchCostControlId = SQLHelper.GetNewID(); - wbsSetMatchCostControl.WbsSetId = wbsSet.WbsSetId; - wbsSetMatchCostControl.CostControlCode = wbsSetMatchCostControlInit.CostControlInitCode; - if (wbsSetMatchCostControl.WbsSetId != null) - { - db.WBS_WbsSetMatchCostControl.InsertOnSubmit(wbsSetMatchCostControl); - db.SubmitChanges(); - //拷贝费用清单项 - var costControlInits = from x in totalCostControlInits where x.CostControlInitCode == wbsSetMatchCostControlInit.CostControlInitCode orderby x.CostControlInitCode select x; - foreach (var costControlInit in costControlInits) - { - Model.WBS_CostControl costControl = new Model.WBS_CostControl(); - costControl.CostControlId = SQLHelper.GetNewID(); - costControl.ProjectId = this.CurrUser.LoginProjectId; - costControl.WbsSetId = wbsSetMatchCostControl.WbsSetId; - costControl.CostControlCode = costControlInit.CostControlInitCode; - costControl.CostControlName = costControlInit.CostControlInitName; - costControl.Unit = costControlInit.Unit; - db.WBS_CostControl.InsertOnSubmit(costControl); - db.SubmitChanges(); - } - } - } - } - } - else - { - var oldInstallation = Funs.DB.Project_Installation.FirstOrDefault(x => x.InstallationName == name); - if (oldInstallation == null) - { - Model.Project_Installation installation = new Model.Project_Installation(); - installation.InstallationId = id; - installation.ProjectId = this.CurrUser.LoginProjectId; - installation.InstallationCode = code; - installation.InstallationName = name; - installation.SuperInstallationId = sgId; - installation.StartDate = Funs.GetNewDateTime(planStart); - installation.EndDate = Funs.GetNewDateTime(planFinish); - installation.IsEnd = true; - installation.Def = remark; - db.Project_Installation.InsertOnSubmit(installation); - db.SubmitChanges(); - // 拷贝总图等专业下WBS内容 - //拷贝单位工程及子单位工程 - var unitProjects = unitProjectInits.Where(x => x.CnProfessionId == cn.CnProfessionId); - foreach (var unitProjectInit in unitProjects) - { - Model.Wbs_UnitProject unitProject = new Model.Wbs_UnitProject(); - unitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject)); - unitProject.UnitProjectCode = unitProjectInit.UnitProjectCode; - unitProject.UnitProjectName = unitProjectInit.UnitProjectName; - if (unitProjectInit.SuperUnitProject == null) - { - unitProject.SuperUnitProjectId = null; - } - else - { - unitProject.SuperUnitProjectId = (from x in Funs.DB.Wbs_UnitProject - where x.UnitProjectCode == unitProjectInit.SuperUnitProject && x.InstallationId == id - select x.UnitProjectId).FirstOrDefault(); - } - unitProject.InstallationId = id; - unitProject.SortIndex = unitProjectInit.SortIndex; - unitProject.ProjectId = this.CurrUser.LoginProjectId; - unitProject.StartDate = Funs.GetNewDateTime(planStart); - unitProject.EndDate = Funs.GetNewDateTime(planFinish); - unitProject.Remark = unitProjectInit.Remark; - unitProject.IsIn = true; - db.Wbs_UnitProject.InsertOnSubmit(unitProject); - db.SubmitChanges(); - } - //拷贝分部/子分部/分项/子分项 - var wbsSets = wbsSetInits.Where(x => x.CnProfessionId == cn.CnProfessionId); - foreach (var wbsSetInit in wbsSets) - { - Model.Wbs_WbsSet wbsSet = new Model.Wbs_WbsSet(); - wbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); - wbsSet.WbsSetCode = wbsSetInit.WbsSetCode; - wbsSet.WbsSetName = wbsSetInit.WbsSetName; - wbsSet.InstallationId = id; - wbsSet.UnitProjectId = (from x in Funs.DB.Wbs_UnitProject where x.UnitProjectCode == wbsSetInit.UnitProjectCode && x.InstallationId == id select x.UnitProjectId).FirstOrDefault(); - if (wbsSetInit.SuperWbsSetCode == null) - { - wbsSet.SuperWbsSetId = null; - } - else - { - wbsSet.SuperWbsSetId = (from x in Funs.DB.Wbs_WbsSet - where x.WbsSetCode == wbsSetInit.SuperWbsSetCode && x.InstallationId == id - select x.WbsSetId).FirstOrDefault(); - } - wbsSet.ProjectId = this.CurrUser.LoginProjectId; - wbsSet.StartDate = Funs.GetNewDateTime(planStart); - wbsSet.EndDate = Funs.GetNewDateTime(planFinish); - wbsSet.Flag = wbsSetInit.Flag; - wbsSet.Way = wbsSetInit.Way; - wbsSet.Weights = wbsSetInit.Weights; - wbsSet.ControlItemDef = wbsSetInit.ControlItemDef; - wbsSet.ControlPoint = wbsSetInit.ControlPoint; - wbsSet.Remark = wbsSetInit.Remark; - wbsSet.IsIn = true; - db.Wbs_WbsSet.InsertOnSubmit(wbsSet); - db.SubmitChanges(); - var wbsSetMatchCostControls = wbsSetMatchCostControlInits.Where(x => x.WbsSetCode == wbsSetInit.WbsSetCode); - foreach (var wbsSetMatchCostControlInit in wbsSetMatchCostControls) - { - Model.WBS_WbsSetMatchCostControl wbsSetMatchCostControl = new Model.WBS_WbsSetMatchCostControl(); - wbsSetMatchCostControl.WbsSetMatchCostControlId = SQLHelper.GetNewID(); - wbsSetMatchCostControl.WbsSetId = wbsSet.WbsSetId; - wbsSetMatchCostControl.CostControlCode = wbsSetMatchCostControlInit.CostControlInitCode; - if (wbsSetMatchCostControl.WbsSetId != null) - { - db.WBS_WbsSetMatchCostControl.InsertOnSubmit(wbsSetMatchCostControl); - db.SubmitChanges(); - //拷贝费用清单项 - var costControlInits = from x in totalCostControlInits where x.CostControlInitCode == wbsSetMatchCostControlInit.CostControlInitCode orderby x.CostControlInitCode select x; - foreach (var costControlInit in costControlInits) - { - Model.WBS_CostControl costControl = new Model.WBS_CostControl(); - costControl.CostControlId = SQLHelper.GetNewID(); - costControl.ProjectId = this.CurrUser.LoginProjectId; - costControl.WbsSetId = wbsSetMatchCostControl.WbsSetId; - costControl.CostControlCode = costControlInit.CostControlInitCode; - costControl.CostControlName = costControlInit.CostControlInitName; - costControl.Unit = costControlInit.Unit; - db.WBS_CostControl.InsertOnSubmit(costControl); - db.SubmitChanges(); - } - } - } - } - } - } - } - } - else if (level == "6" || level == "7") - { - if (name.Contains("防腐绝热") || name.Contains("地勘") || name.Contains("全厂地下主管网") || name.Contains("临时设施") || name.Contains("总图")) - { - var cn = cnProfessionInits.FirstOrDefault(x => x.CnProfessionName.Contains(name.Substring(0, 2))); - if (cn != null) - { - var oldInstallation = Funs.DB.Project_Installation.FirstOrDefault(x => x.InstallationName == name); - if (oldInstallation == null) - { - Model.Project_Installation installation = new Model.Project_Installation(); - installation.InstallationId = id; - installation.ProjectId = this.CurrUser.LoginProjectId; - installation.InstallationCode = code; - installation.InstallationName = name; - installation.SuperInstallationId = sgId; - installation.StartDate = Funs.GetNewDateTime(planStart); - installation.EndDate = Funs.GetNewDateTime(planFinish); - installation.IsEnd = true; - installation.Def = remark; - db.Project_Installation.InsertOnSubmit(installation); - db.SubmitChanges(); - // 拷贝总图等专业下WBS内容 - //拷贝单位工程及子单位工程 - var unitProjects = unitProjectInits.Where(x => x.CnProfessionId == cn.CnProfessionId); - foreach (var unitProjectInit in unitProjects) - { - Model.Wbs_UnitProject unitProject = new Model.Wbs_UnitProject(); - unitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject)); - unitProject.UnitProjectCode = unitProjectInit.UnitProjectCode; - unitProject.UnitProjectName = unitProjectInit.UnitProjectName; - if (unitProjectInit.SuperUnitProject == null) - { - unitProject.SuperUnitProjectId = null; - } - else - { - unitProject.SuperUnitProjectId = (from x in Funs.DB.Wbs_UnitProject - where x.UnitProjectCode == unitProjectInit.SuperUnitProject && x.InstallationId == id - select x.UnitProjectId).FirstOrDefault(); - } - unitProject.InstallationId = id; - unitProject.SortIndex = unitProjectInit.SortIndex; - unitProject.ProjectId = this.CurrUser.LoginProjectId; - unitProject.StartDate = Funs.GetNewDateTime(planStart); - unitProject.EndDate = Funs.GetNewDateTime(planFinish); - unitProject.Remark = unitProjectInit.Remark; - unitProject.IsIn = true; - db.Wbs_UnitProject.InsertOnSubmit(unitProject); - db.SubmitChanges(); - } - //拷贝分部/子分部/分项/子分项 - var wbsSets = wbsSetInits.Where(x => x.CnProfessionId == cn.CnProfessionId); - foreach (var wbsSetInit in wbsSets) - { - Model.Wbs_WbsSet wbsSet = new Model.Wbs_WbsSet(); - wbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); - wbsSet.WbsSetCode = wbsSetInit.WbsSetCode; - wbsSet.WbsSetName = wbsSetInit.WbsSetName; - wbsSet.InstallationId = id; - wbsSet.UnitProjectId = (from x in Funs.DB.Wbs_UnitProject where x.UnitProjectCode == wbsSetInit.UnitProjectCode && x.InstallationId == id select x.UnitProjectId).FirstOrDefault(); - if (wbsSetInit.SuperWbsSetCode == null) - { - wbsSet.SuperWbsSetId = null; - } - else - { - wbsSet.SuperWbsSetId = (from x in Funs.DB.Wbs_WbsSet - where x.WbsSetCode == wbsSetInit.SuperWbsSetCode && x.InstallationId == id - select x.WbsSetId).FirstOrDefault(); - } - wbsSet.ProjectId = this.CurrUser.LoginProjectId; - wbsSet.StartDate = Funs.GetNewDateTime(planStart); - wbsSet.EndDate = Funs.GetNewDateTime(planFinish); - wbsSet.Flag = wbsSetInit.Flag; - wbsSet.Way = wbsSetInit.Way; - wbsSet.Weights = wbsSetInit.Weights; - wbsSet.ControlItemDef = wbsSetInit.ControlItemDef; - wbsSet.ControlPoint = wbsSetInit.ControlPoint; - wbsSet.Remark = wbsSetInit.Remark; - wbsSet.IsIn = true; - db.Wbs_WbsSet.InsertOnSubmit(wbsSet); - db.SubmitChanges(); - var wbsSetMatchCostControls = wbsSetMatchCostControlInits.Where(x => x.WbsSetCode == wbsSetInit.WbsSetCode); - foreach (var wbsSetMatchCostControlInit in wbsSetMatchCostControls) - { - Model.WBS_WbsSetMatchCostControl wbsSetMatchCostControl = new Model.WBS_WbsSetMatchCostControl(); - wbsSetMatchCostControl.WbsSetMatchCostControlId = SQLHelper.GetNewID(); - wbsSetMatchCostControl.WbsSetId = wbsSet.WbsSetId; - wbsSetMatchCostControl.CostControlCode = wbsSetMatchCostControlInit.CostControlInitCode; - if (wbsSetMatchCostControl.WbsSetId != null) - { - db.WBS_WbsSetMatchCostControl.InsertOnSubmit(wbsSetMatchCostControl); - db.SubmitChanges(); - //拷贝费用清单项 - var costControlInits = from x in totalCostControlInits where x.CostControlInitCode == wbsSetMatchCostControlInit.CostControlInitCode orderby x.CostControlInitCode select x; - foreach (var costControlInit in costControlInits) - { - Model.WBS_CostControl costControl = new Model.WBS_CostControl(); - costControl.CostControlId = SQLHelper.GetNewID(); - costControl.ProjectId = this.CurrUser.LoginProjectId; - costControl.WbsSetId = wbsSetMatchCostControl.WbsSetId; - costControl.CostControlCode = costControlInit.CostControlInitCode; - costControl.CostControlName = costControlInit.CostControlInitName; - costControl.Unit = costControlInit.Unit; - db.WBS_CostControl.InsertOnSubmit(costControl); - db.SubmitChanges(); - } - } - } - } - } - } - } + proId= item["id"].ToString(); } } - ShowNotify("抽取成功!", MessageBoxIcon.Success); - InitTreeMenu(); + var returndata = BLL.APIGetHttpService.ControlHttp(Funs.ControlApiUrl + "/Projects/GetConstructionWbsList?ProjId=" + proId, "GET", contenttype, null, null); + if (!string.IsNullOrEmpty(returndata)) + { + JObject obj = JObject.Parse(returndata); + JArray arr = JArray.Parse(obj["result"].ToString()); + Model.SGGLDB db = Funs.DB; + //专业 + var cnProfessionInits = from x in db.WBS_CnProfessionInit select x; + //单位工程及子单位工程 + var unitProjectInits = from x in db.Wbs_UnitProjectInit orderby x.SuperUnitProject select x; + //分部/子分部/分项/子分项 + var wbsSetInits = (from x in db.WBS_WbsSetInit orderby x.SuperWbsSetCode select x).ToList(); + //费用清单对应关系 + var wbsSetMatchCostControlInits = from x in db.WBS_WbsSetMatchCostControlInit orderby x.WbsSetCode select x; + //费用清单项 + var totalCostControlInits = from x in db.WBS_CostControlInit orderby x.CostControlInitCode select x; + string sgId = string.Empty; + foreach (var item in arr) + { + string id = item["id"].ToString(); //记录Id,主键 + string parentId = item["parentId"].ToString(); //上一级记录Id + string code = item["code"].ToString(); //WBS编码 + string name = item["name"].ToString(); //WBS名称 + string level = item["level"].ToString(); //级别,0-7依次表示:项目、阶段(施工)、装置、工序、主项、专业、分部工程、分项工程 + string isLeaf = item["isLeaf"].ToString(); //是否末级 + string ppsId = item["ppsId"].ToString(); //阶段ID,3代表施工 + string projId = item["projId"].ToString(); //项目ID + string planStart = item["planStart"].ToString(); //计划开始日期 + string planFinish = item["planFinish"].ToString(); //计划完成日期 + string remark = item["remark"].ToString(); //备注 + if (level == "0" || level == "1" || level == "2" || level == "3" || level == "4") + { + Model.Project_Installation installation = new Model.Project_Installation(); + installation.InstallationId = id; + installation.ProjectId = this.CurrUser.LoginProjectId; + installation.InstallationCode = code; + installation.InstallationName = name; + installation.SuperInstallationId = parentId == "-1" ? "0" : parentId; + installation.StartDate = Funs.GetNewDateTime(planStart); + installation.EndDate = Funs.GetNewDateTime(planFinish); + installation.IsEnd = Convert.ToBoolean(isLeaf); + installation.Def = remark; + db.Project_Installation.InsertOnSubmit(installation); + db.SubmitChanges(); + if (name == "施工") + { + sgId = id; + } + } + else if (level == "5") + { + var cn = cnProfessionInits.FirstOrDefault(x => x.CnProfessionName.Contains(name.Substring(0, 2))); + //拷贝专业 + if (cn != null) + { + if (cn.CnProfessionName != "防腐绝热" && cn.CnProfessionName != "地勘" && cn.CnProfessionName != "全厂地下主管网" && cn.CnProfessionName != "临时设施" && cn.CnProfessionName != "总图") + { + Model.WBS_CnProfession cnProfession = new Model.WBS_CnProfession(); + cnProfession.CnProfessionId = id; + cnProfession.CnProfessionName = cn.CnProfessionName; + cnProfession.CnProfessionCode = cn.CnProfessionCode; + cnProfession.InstallationId = parentId; + cnProfession.ProjectId = this.CurrUser.LoginProjectId; + cnProfession.StartDate = Funs.GetNewDateTime(planStart); + cnProfession.EndDate = Funs.GetNewDateTime(planFinish); + cnProfession.OldId = cn.CnProfessionId; + db.WBS_CnProfession.InsertOnSubmit(cnProfession); + db.SubmitChanges(); + //单位工程 + var unitProjects = unitProjectInits.Where(x => x.CnProfessionId == cn.CnProfessionId); + foreach (var unitProjectInit in unitProjects) + { + Model.Wbs_UnitProject unitProject = new Model.Wbs_UnitProject(); + unitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject)); + unitProject.UnitProjectCode = unitProjectInit.UnitProjectCode; + unitProject.UnitProjectName = unitProjectInit.UnitProjectName; + unitProject.InstallationId = parentId; + unitProject.SortIndex = unitProjectInit.SortIndex; + unitProject.SuperUnitProjectId = null; + unitProject.ProjectId = this.CurrUser.LoginProjectId; + unitProject.CnProfessionId = id; + unitProject.StartDate = Funs.GetNewDateTime(planStart); + unitProject.EndDate = Funs.GetNewDateTime(planFinish); + unitProject.Remark = unitProjectInit.Remark; + unitProject.IsIn = true; + db.Wbs_UnitProject.InsertOnSubmit(unitProject); + db.SubmitChanges(); + } + //分部分项 + var wbsSets = wbsSetInits.Where(x => x.CnProfessionId == cn.CnProfessionId); + foreach (var wbsSetInit in wbsSets) + { + Model.Wbs_WbsSet wbsSet = new Model.Wbs_WbsSet(); + wbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); + wbsSet.WbsSetCode = wbsSetInit.WbsSetCode; + wbsSet.WbsSetName = wbsSetInit.WbsSetName; + wbsSet.InstallationId = parentId; + wbsSet.CnProfessionId = id; + wbsSet.UnitProjectId = (from x in db.Wbs_UnitProject where x.UnitProjectCode == wbsSetInit.UnitProjectCode && x.CnProfessionId == id select x.UnitProjectId).FirstOrDefault(); + if (wbsSetInit.SuperWbsSetCode == null) + { + wbsSet.SuperWbsSetId = null; + } + else + { + wbsSet.SuperWbsSetId = (from x in db.Wbs_WbsSet + where x.WbsSetCode == wbsSetInit.SuperWbsSetCode && x.InstallationId == parentId && x.CnProfessionId == id + select x.WbsSetId).FirstOrDefault(); + } + wbsSet.ProjectId = this.CurrUser.LoginProjectId; + wbsSet.StartDate = Funs.GetNewDateTime(planStart); + wbsSet.EndDate = Funs.GetNewDateTime(planFinish); + wbsSet.Flag = wbsSetInit.Flag; + wbsSet.Way = wbsSetInit.Way; + wbsSet.Weights = wbsSetInit.Weights; + wbsSet.ControlItemDef = wbsSetInit.ControlItemDef; + wbsSet.ControlPoint = wbsSetInit.ControlPoint; + wbsSet.Remark = wbsSetInit.Remark; + wbsSet.IsIn = true; + db.Wbs_WbsSet.InsertOnSubmit(wbsSet); + db.SubmitChanges(); + var wbsSetMatchCostControls = wbsSetMatchCostControlInits.Where(x => x.WbsSetCode == wbsSetInit.WbsSetCode); + foreach (var wbsSetMatchCostControlInit in wbsSetMatchCostControls) + { + Model.WBS_WbsSetMatchCostControl wbsSetMatchCostControl = new Model.WBS_WbsSetMatchCostControl(); + wbsSetMatchCostControl.WbsSetMatchCostControlId = SQLHelper.GetNewID(); + wbsSetMatchCostControl.WbsSetId = wbsSet.WbsSetId; + wbsSetMatchCostControl.CostControlCode = wbsSetMatchCostControlInit.CostControlInitCode; + if (wbsSetMatchCostControl.WbsSetId != null) + { + db.WBS_WbsSetMatchCostControl.InsertOnSubmit(wbsSetMatchCostControl); + db.SubmitChanges(); + //拷贝费用清单项 + var costControlInits = from x in totalCostControlInits where x.CostControlInitCode == wbsSetMatchCostControlInit.CostControlInitCode orderby x.CostControlInitCode select x; + foreach (var costControlInit in costControlInits) + { + Model.WBS_CostControl costControl = new Model.WBS_CostControl(); + costControl.CostControlId = SQLHelper.GetNewID(); + costControl.ProjectId = this.CurrUser.LoginProjectId; + costControl.WbsSetId = wbsSetMatchCostControl.WbsSetId; + costControl.CostControlCode = costControlInit.CostControlInitCode; + costControl.CostControlName = costControlInit.CostControlInitName; + costControl.Unit = costControlInit.Unit; + db.WBS_CostControl.InsertOnSubmit(costControl); + db.SubmitChanges(); + } + } + } + } + } + else + { + var oldInstallation = Funs.DB.Project_Installation.FirstOrDefault(x => x.InstallationName == name); + if (oldInstallation == null) + { + Model.Project_Installation installation = new Model.Project_Installation(); + installation.InstallationId = id; + installation.ProjectId = this.CurrUser.LoginProjectId; + installation.InstallationCode = code; + installation.InstallationName = name; + installation.SuperInstallationId = sgId; + installation.StartDate = Funs.GetNewDateTime(planStart); + installation.EndDate = Funs.GetNewDateTime(planFinish); + installation.IsEnd = true; + installation.Def = remark; + db.Project_Installation.InsertOnSubmit(installation); + db.SubmitChanges(); + // 拷贝总图等专业下WBS内容 + //拷贝单位工程及子单位工程 + var unitProjects = unitProjectInits.Where(x => x.CnProfessionId == cn.CnProfessionId); + foreach (var unitProjectInit in unitProjects) + { + Model.Wbs_UnitProject unitProject = new Model.Wbs_UnitProject(); + unitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject)); + unitProject.UnitProjectCode = unitProjectInit.UnitProjectCode; + unitProject.UnitProjectName = unitProjectInit.UnitProjectName; + if (unitProjectInit.SuperUnitProject == null) + { + unitProject.SuperUnitProjectId = null; + } + else + { + unitProject.SuperUnitProjectId = (from x in Funs.DB.Wbs_UnitProject + where x.UnitProjectCode == unitProjectInit.SuperUnitProject && x.InstallationId == id + select x.UnitProjectId).FirstOrDefault(); + } + unitProject.InstallationId = id; + unitProject.SortIndex = unitProjectInit.SortIndex; + unitProject.ProjectId = this.CurrUser.LoginProjectId; + unitProject.StartDate = Funs.GetNewDateTime(planStart); + unitProject.EndDate = Funs.GetNewDateTime(planFinish); + unitProject.Remark = unitProjectInit.Remark; + unitProject.IsIn = true; + db.Wbs_UnitProject.InsertOnSubmit(unitProject); + db.SubmitChanges(); + } + //拷贝分部/子分部/分项/子分项 + var wbsSets = wbsSetInits.Where(x => x.CnProfessionId == cn.CnProfessionId); + foreach (var wbsSetInit in wbsSets) + { + Model.Wbs_WbsSet wbsSet = new Model.Wbs_WbsSet(); + wbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); + wbsSet.WbsSetCode = wbsSetInit.WbsSetCode; + wbsSet.WbsSetName = wbsSetInit.WbsSetName; + wbsSet.InstallationId = id; + wbsSet.UnitProjectId = (from x in Funs.DB.Wbs_UnitProject where x.UnitProjectCode == wbsSetInit.UnitProjectCode && x.InstallationId == id select x.UnitProjectId).FirstOrDefault(); + if (wbsSetInit.SuperWbsSetCode == null) + { + wbsSet.SuperWbsSetId = null; + } + else + { + wbsSet.SuperWbsSetId = (from x in Funs.DB.Wbs_WbsSet + where x.WbsSetCode == wbsSetInit.SuperWbsSetCode && x.InstallationId == id + select x.WbsSetId).FirstOrDefault(); + } + wbsSet.ProjectId = this.CurrUser.LoginProjectId; + wbsSet.StartDate = Funs.GetNewDateTime(planStart); + wbsSet.EndDate = Funs.GetNewDateTime(planFinish); + wbsSet.Flag = wbsSetInit.Flag; + wbsSet.Way = wbsSetInit.Way; + wbsSet.Weights = wbsSetInit.Weights; + wbsSet.ControlItemDef = wbsSetInit.ControlItemDef; + wbsSet.ControlPoint = wbsSetInit.ControlPoint; + wbsSet.Remark = wbsSetInit.Remark; + wbsSet.IsIn = true; + db.Wbs_WbsSet.InsertOnSubmit(wbsSet); + db.SubmitChanges(); + var wbsSetMatchCostControls = wbsSetMatchCostControlInits.Where(x => x.WbsSetCode == wbsSetInit.WbsSetCode); + foreach (var wbsSetMatchCostControlInit in wbsSetMatchCostControls) + { + Model.WBS_WbsSetMatchCostControl wbsSetMatchCostControl = new Model.WBS_WbsSetMatchCostControl(); + wbsSetMatchCostControl.WbsSetMatchCostControlId = SQLHelper.GetNewID(); + wbsSetMatchCostControl.WbsSetId = wbsSet.WbsSetId; + wbsSetMatchCostControl.CostControlCode = wbsSetMatchCostControlInit.CostControlInitCode; + if (wbsSetMatchCostControl.WbsSetId != null) + { + db.WBS_WbsSetMatchCostControl.InsertOnSubmit(wbsSetMatchCostControl); + db.SubmitChanges(); + //拷贝费用清单项 + var costControlInits = from x in totalCostControlInits where x.CostControlInitCode == wbsSetMatchCostControlInit.CostControlInitCode orderby x.CostControlInitCode select x; + foreach (var costControlInit in costControlInits) + { + Model.WBS_CostControl costControl = new Model.WBS_CostControl(); + costControl.CostControlId = SQLHelper.GetNewID(); + costControl.ProjectId = this.CurrUser.LoginProjectId; + costControl.WbsSetId = wbsSetMatchCostControl.WbsSetId; + costControl.CostControlCode = costControlInit.CostControlInitCode; + costControl.CostControlName = costControlInit.CostControlInitName; + costControl.Unit = costControlInit.Unit; + db.WBS_CostControl.InsertOnSubmit(costControl); + db.SubmitChanges(); + } + } + } + } + } + } + } + } + else if (level == "6" || level == "7") + { + if (name.Contains("防腐绝热") || name.Contains("地勘") || name.Contains("全厂地下主管网") || name.Contains("临时设施") || name.Contains("总图")) + { + var cn = cnProfessionInits.FirstOrDefault(x => x.CnProfessionName.Contains(name.Substring(0, 2))); + if (cn != null) + { + var oldInstallation = Funs.DB.Project_Installation.FirstOrDefault(x => x.InstallationName == name); + if (oldInstallation == null) + { + Model.Project_Installation installation = new Model.Project_Installation(); + installation.InstallationId = id; + installation.ProjectId = this.CurrUser.LoginProjectId; + installation.InstallationCode = code; + installation.InstallationName = name; + installation.SuperInstallationId = sgId; + installation.StartDate = Funs.GetNewDateTime(planStart); + installation.EndDate = Funs.GetNewDateTime(planFinish); + installation.IsEnd = true; + installation.Def = remark; + db.Project_Installation.InsertOnSubmit(installation); + db.SubmitChanges(); + // 拷贝总图等专业下WBS内容 + //拷贝单位工程及子单位工程 + var unitProjects = unitProjectInits.Where(x => x.CnProfessionId == cn.CnProfessionId); + foreach (var unitProjectInit in unitProjects) + { + Model.Wbs_UnitProject unitProject = new Model.Wbs_UnitProject(); + unitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject)); + unitProject.UnitProjectCode = unitProjectInit.UnitProjectCode; + unitProject.UnitProjectName = unitProjectInit.UnitProjectName; + if (unitProjectInit.SuperUnitProject == null) + { + unitProject.SuperUnitProjectId = null; + } + else + { + unitProject.SuperUnitProjectId = (from x in Funs.DB.Wbs_UnitProject + where x.UnitProjectCode == unitProjectInit.SuperUnitProject && x.InstallationId == id + select x.UnitProjectId).FirstOrDefault(); + } + unitProject.InstallationId = id; + unitProject.SortIndex = unitProjectInit.SortIndex; + unitProject.ProjectId = this.CurrUser.LoginProjectId; + unitProject.StartDate = Funs.GetNewDateTime(planStart); + unitProject.EndDate = Funs.GetNewDateTime(planFinish); + unitProject.Remark = unitProjectInit.Remark; + unitProject.IsIn = true; + db.Wbs_UnitProject.InsertOnSubmit(unitProject); + db.SubmitChanges(); + } + //拷贝分部/子分部/分项/子分项 + var wbsSets = wbsSetInits.Where(x => x.CnProfessionId == cn.CnProfessionId); + foreach (var wbsSetInit in wbsSets) + { + Model.Wbs_WbsSet wbsSet = new Model.Wbs_WbsSet(); + wbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet)); + wbsSet.WbsSetCode = wbsSetInit.WbsSetCode; + wbsSet.WbsSetName = wbsSetInit.WbsSetName; + wbsSet.InstallationId = id; + wbsSet.UnitProjectId = (from x in Funs.DB.Wbs_UnitProject where x.UnitProjectCode == wbsSetInit.UnitProjectCode && x.InstallationId == id select x.UnitProjectId).FirstOrDefault(); + if (wbsSetInit.SuperWbsSetCode == null) + { + wbsSet.SuperWbsSetId = null; + } + else + { + wbsSet.SuperWbsSetId = (from x in Funs.DB.Wbs_WbsSet + where x.WbsSetCode == wbsSetInit.SuperWbsSetCode && x.InstallationId == id + select x.WbsSetId).FirstOrDefault(); + } + wbsSet.ProjectId = this.CurrUser.LoginProjectId; + wbsSet.StartDate = Funs.GetNewDateTime(planStart); + wbsSet.EndDate = Funs.GetNewDateTime(planFinish); + wbsSet.Flag = wbsSetInit.Flag; + wbsSet.Way = wbsSetInit.Way; + wbsSet.Weights = wbsSetInit.Weights; + wbsSet.ControlItemDef = wbsSetInit.ControlItemDef; + wbsSet.ControlPoint = wbsSetInit.ControlPoint; + wbsSet.Remark = wbsSetInit.Remark; + wbsSet.IsIn = true; + db.Wbs_WbsSet.InsertOnSubmit(wbsSet); + db.SubmitChanges(); + var wbsSetMatchCostControls = wbsSetMatchCostControlInits.Where(x => x.WbsSetCode == wbsSetInit.WbsSetCode); + foreach (var wbsSetMatchCostControlInit in wbsSetMatchCostControls) + { + Model.WBS_WbsSetMatchCostControl wbsSetMatchCostControl = new Model.WBS_WbsSetMatchCostControl(); + wbsSetMatchCostControl.WbsSetMatchCostControlId = SQLHelper.GetNewID(); + wbsSetMatchCostControl.WbsSetId = wbsSet.WbsSetId; + wbsSetMatchCostControl.CostControlCode = wbsSetMatchCostControlInit.CostControlInitCode; + if (wbsSetMatchCostControl.WbsSetId != null) + { + db.WBS_WbsSetMatchCostControl.InsertOnSubmit(wbsSetMatchCostControl); + db.SubmitChanges(); + //拷贝费用清单项 + var costControlInits = from x in totalCostControlInits where x.CostControlInitCode == wbsSetMatchCostControlInit.CostControlInitCode orderby x.CostControlInitCode select x; + foreach (var costControlInit in costControlInits) + { + Model.WBS_CostControl costControl = new Model.WBS_CostControl(); + costControl.CostControlId = SQLHelper.GetNewID(); + costControl.ProjectId = this.CurrUser.LoginProjectId; + costControl.WbsSetId = wbsSetMatchCostControl.WbsSetId; + costControl.CostControlCode = costControlInit.CostControlInitCode; + costControl.CostControlName = costControlInit.CostControlInitName; + costControl.Unit = costControlInit.Unit; + db.WBS_CostControl.InsertOnSubmit(costControl); + db.SubmitChanges(); + } + } + } + } + } + } + } + } + } + ShowNotify("抽取成功!", MessageBoxIcon.Success); + InitTreeMenu(); + } } } else diff --git a/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx b/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx index 4e4516d0..5c73709e 100644 --- a/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx +++ b/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx @@ -147,6 +147,12 @@ + + + + + + diff --git a/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.cs b/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.cs index 871a857f..5d257036 100644 --- a/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.cs +++ b/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.cs @@ -168,6 +168,8 @@ namespace FineUIPro.Web.ProjectData this.txtEnglishRemark.Text = project.EnglishRemark; this.txtHJProjectCode.Text = project.HJProjectCode; this.txtKZProjectCode.Text = project.KZProjectCode; + this.txtProjType.Text = project.ProjType; + this.txtProjPhase.Text = project.ProjPhase; if (project.Progress != null) { this.txtProgress.Text = project.Progress.ToString(); @@ -209,6 +211,8 @@ namespace FineUIPro.Web.ProjectData City = this.txtCity.Text.Trim(), EnglishRemark = this.txtEnglishRemark.Text.Trim(), Progress = Funs.GetNewDecimal(this.txtProgress.Text), + ProjType = this.txtProjType.Text.Trim(), + ProjPhase = this.txtProjPhase.Text.Trim(), }; if (string.IsNullOrEmpty(project.JTProjectCode)) { diff --git a/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.designer.cs b/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.designer.cs index 0429f13e..feb4f79d 100644 --- a/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/ProjectData/ProjectSetSave.aspx.designer.cs @@ -7,13 +7,11 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.ProjectData -{ - - - public partial class ProjectSetSave - { - +namespace FineUIPro.Web.ProjectData { + + + public partial class ProjectSetSave { + /// /// form1 控件。 /// @@ -22,7 +20,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -31,7 +29,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// SimpleForm1 控件。 /// @@ -40,7 +38,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Form SimpleForm1; - + /// /// txtProjectName 控件。 /// @@ -49,7 +47,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtProjectName; - + /// /// txtProjectCode 控件。 /// @@ -58,7 +56,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtProjectCode; - + /// /// txtShortName 控件。 /// @@ -67,7 +65,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtShortName; - + /// /// drpProjectType 控件。 /// @@ -76,7 +74,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpProjectType; - + /// /// drpProjectState 控件。 /// @@ -85,7 +83,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpProjectState; - + /// /// drpProjectState2 控件。 /// @@ -94,7 +92,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpProjectState2; - + /// /// txtStartDate 控件。 /// @@ -103,7 +101,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DatePicker txtStartDate; - + /// /// txtEndDate 控件。 /// @@ -112,7 +110,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DatePicker txtEndDate; - + /// /// txtContractNo 控件。 /// @@ -121,7 +119,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtContractNo; - + /// /// txtDuration 控件。 /// @@ -130,7 +128,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtDuration; - + /// /// drpProjectManager 控件。 /// @@ -139,7 +137,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpProjectManager; - + /// /// drpConstructionManager 控件。 /// @@ -148,7 +146,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpConstructionManager; - + /// /// drpQAManager 控件。 /// @@ -157,7 +155,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpQAManager; - + /// /// drpHSSEManager 控件。 /// @@ -166,7 +164,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpHSSEManager; - + /// /// drpDriveManager 控件。 /// @@ -175,7 +173,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpDriveManager; - + /// /// drpUnit 控件。 /// @@ -184,7 +182,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpUnit; - + /// /// txtProjectAddress 控件。 /// @@ -193,7 +191,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtProjectAddress; - + /// /// txtJTProjectCode 控件。 /// @@ -202,7 +200,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtJTProjectCode; - + /// /// ckbIsForeign 控件。 /// @@ -211,7 +209,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.CheckBox ckbIsForeign; - + /// /// txtWorkRange 控件。 /// @@ -220,7 +218,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextArea txtWorkRange; - + /// /// txtRemark 控件。 /// @@ -229,7 +227,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextArea txtRemark; - + /// /// txtProjectMoney 控件。 /// @@ -238,7 +236,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtProjectMoney; - + /// /// txtConstructionMoney 控件。 /// @@ -247,7 +245,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtConstructionMoney; - + /// /// txtTelephone 控件。 /// @@ -256,7 +254,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtTelephone; - + /// /// drpCountry 控件。 /// @@ -265,7 +263,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpCountry; - + /// /// drpProvince 控件。 /// @@ -274,7 +272,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpProvince; - + /// /// txtCity 控件。 /// @@ -283,7 +281,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtCity; - + /// /// txtMapCoordinates 控件。 /// @@ -292,7 +290,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtMapCoordinates; - + /// /// bottomPanel 控件。 /// @@ -301,7 +299,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ContentPanel bottomPanel; - + /// /// txtEnglishRemark 控件。 /// @@ -310,7 +308,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtEnglishRemark; - + /// /// txtHJProjectCode 控件。 /// @@ -319,7 +317,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtHJProjectCode; - + /// /// txtKZProjectCode 控件。 /// @@ -328,7 +326,25 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtKZProjectCode; - + + /// + /// txtProjType 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProjType; + + /// + /// txtProjPhase 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProjPhase; + /// /// txtProgress 控件。 /// @@ -337,7 +353,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.NumberBox txtProgress; - + /// /// Toolbar1 控件。 /// @@ -346,7 +362,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar1; - + /// /// ckIsUpTotalMonth 控件。 /// @@ -355,7 +371,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.CheckBox ckIsUpTotalMonth; - + /// /// btnAttachUrl 控件。 /// @@ -364,7 +380,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnAttachUrl; - + /// /// btnSave 控件。 /// @@ -373,7 +389,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSave; - + /// /// btnClose 控件。 /// @@ -382,7 +398,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnClose; - + /// /// hdCompileMan 控件。 /// @@ -391,7 +407,7 @@ namespace FineUIPro.Web.ProjectData /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.HiddenField hdCompileMan; - + /// /// WindowAtt 控件。 /// diff --git a/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx b/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx index 91db6d71..686dee6f 100644 --- a/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx +++ b/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx @@ -106,6 +106,12 @@ + + + + + + diff --git a/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.cs b/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.cs index a9b1e359..92b46111 100644 --- a/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.cs +++ b/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.cs @@ -102,6 +102,8 @@ namespace FineUIPro.Web.ProjectData this.txtEnglishRemark.Text = project.EnglishRemark; this.txtHJProjectCode.Text = project.HJProjectCode; this.txtKZProjectCode.Text = project.KZProjectCode; + this.txtProjType.Text = project.ProjType; + this.txtProjPhase.Text = project.ProjPhase; if (project.Progress != null) { this.txtProgress.Text = project.Progress.ToString(); diff --git a/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.designer.cs b/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.designer.cs index cbd49494..0dddc5da 100644 --- a/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/ProjectData/ProjectSetView.aspx.designer.cs @@ -300,6 +300,24 @@ namespace FineUIPro.Web.ProjectData { /// protected global::FineUIPro.TextBox txtKZProjectCode; + /// + /// txtProjType 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProjType; + + /// + /// txtProjPhase 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProjPhase; + /// /// txtEnglishRemark 控件。 /// diff --git a/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs b/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs index bda13b16..69814a79 100644 --- a/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs +++ b/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs @@ -240,5 +240,10 @@ namespace Model /// public string AuditState { get; set; } + /// + /// 接收人 + /// + public string ReceiveMan { get; set; } + } } diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 339bc509..cf137fd9 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -25021,6 +25021,10 @@ namespace Model private string _ProjectAttribute; + private string _ProjType; + + private string _ProjPhase; + private EntitySet _Accident_AccidentHandle; private EntitySet _Accident_AccidentPersonRecord; @@ -25675,6 +25679,10 @@ namespace Model partial void OnCLProjectCodeChanged(); partial void OnProjectAttributeChanging(string value); partial void OnProjectAttributeChanged(); + partial void OnProjTypeChanging(string value); + partial void OnProjTypeChanged(); + partial void OnProjPhaseChanging(string value); + partial void OnProjPhaseChanged(); #endregion public Base_Project() @@ -26699,6 +26707,46 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjType", DbType="NVarChar(50)")] + public string ProjType + { + get + { + return this._ProjType; + } + set + { + if ((this._ProjType != value)) + { + this.OnProjTypeChanging(value); + this.SendPropertyChanging(); + this._ProjType = value; + this.SendPropertyChanged("ProjType"); + this.OnProjTypeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjPhase", DbType="NVarChar(50)")] + public string ProjPhase + { + get + { + return this._ProjPhase; + } + set + { + if ((this._ProjPhase != value)) + { + this.OnProjPhaseChanging(value); + this.SendPropertyChanging(); + this._ProjPhase = value; + this.SendPropertyChanged("ProjPhase"); + this.OnProjPhaseChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Accident_AccidentHandle_Base_Project", Storage="_Accident_AccidentHandle", ThisKey="ProjectId", OtherKey="ProjectId", DeleteRule="NO ACTION")] public EntitySet Accident_AccidentHandle { @@ -59591,6 +59639,8 @@ namespace Model private string _ResponsibleMan; + private string _ReceiveMan; + private EntityRef _Base_Project; private EntityRef _Technique_CheckItemSet; @@ -59639,6 +59689,8 @@ namespace Model partial void OnQuestionTypeChanged(); partial void OnResponsibleManChanging(string value); partial void OnResponsibleManChanged(); + partial void OnReceiveManChanging(string value); + partial void OnReceiveManChanged(); #endregion public Check_CheckSpecial() @@ -60056,6 +60108,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ReceiveMan", DbType="NVarChar(2000)")] + public string ReceiveMan + { + get + { + return this._ReceiveMan; + } + set + { + if ((this._ReceiveMan != value)) + { + this.OnReceiveManChanging(value); + this.SendPropertyChanging(); + this._ReceiveMan = value; + this.SendPropertyChanged("ReceiveMan"); + this.OnReceiveManChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_Check_CheckSpecial_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] public Base_Project Base_Project { diff --git a/SGGL/WebAPI/Controllers/HSSE/CheckSpecialController.cs b/SGGL/WebAPI/Controllers/HSSE/CheckSpecialController.cs index 98d016f0..66405e52 100644 --- a/SGGL/WebAPI/Controllers/HSSE/CheckSpecialController.cs +++ b/SGGL/WebAPI/Controllers/HSSE/CheckSpecialController.cs @@ -16,12 +16,12 @@ namespace WebAPI.Controllers /// /// /// - public Model.ResponeData getCheckSpecialById(string CheckSpecialId) + public Model.ResponeData getCheckSpecialById(string CheckSpecialId,string state="0") { var responeData = new Model.ResponeData(); try { - responeData.data = APICheckSpecialService.getCheckSpecialById(CheckSpecialId); + responeData.data = APICheckSpecialService.getCheckSpecialById(CheckSpecialId, state); } catch (Exception ex) { @@ -41,12 +41,12 @@ namespace WebAPI.Controllers /// /// /// - public Model.ResponeData getCheckSpecialList(string projectId, string states, int pageIndex) + public Model.ResponeData getCheckSpecialList(string projectId, string states, int pageIndex,string userid) { var responeData = new Model.ResponeData(); try { - var getDataList = APICheckSpecialService.getCheckSpecialList(projectId, states); + var getDataList = APICheckSpecialService.getCheckSpecialList(projectId, states, userid); int pageCount = getDataList.Count(); if (pageCount > 0 && pageIndex > 0) { @@ -133,5 +133,24 @@ namespace WebAPI.Controllers return responeData; } #endregion + + /// + /// 加载措施 + /// + /// + public Model.ResponeData getGroup_HandleStep() + { + var responeData = new Model.ResponeData(); + try + { + responeData.data = ConstValue.drpConstItemList(BLL.ConstValue.Group_HandleStep); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } } } From ac0efd6f370f7683a9c74cb8ae6590aec3e3e088 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Sat, 7 Oct 2023 17:43:32 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/BLL/API/HSSE/APICheckSpecialService.cs | 16 +++++++++------- SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs index de0945c2..3c15b020 100644 --- a/SGGL/BLL/API/HSSE/APICheckSpecialService.cs +++ b/SGGL/BLL/API/HSSE/APICheckSpecialService.cs @@ -55,8 +55,8 @@ namespace BLL QuestionTypeName = UnitService.GetQuestionTypeId(x.QuestionType), ResponsibleMan = x.ResponsibleMan, - ReceiveMan = x.ReceiveMan - + ReceiveMan = x.ReceiveMan, + ReceiveManName = UserService.getUserNamesUserIds(x.ReceiveMan) }; return getInfo.FirstOrDefault(); @@ -97,8 +97,8 @@ namespace BLL QuestionTypeName = UnitService.GetQuestionTypeId(x.QuestionType), ResponsibleMan = x.ResponsibleMan, - ReceiveMan = x.ReceiveMan - + ReceiveMan = x.ReceiveMan, + ReceiveManName = UserService.getUserNamesUserIds(x.ReceiveMan) }; return getInfo.FirstOrDefault(); @@ -122,7 +122,7 @@ namespace BLL var getCheckSpecial = from x in db.Check_CheckSpecial where x.ProjectId == projectId && x.States ==states //当前保存人、审核人、确认人能看到 - &&(x.CompileMan==userid || x.ResponsibleMan==userid || userid.Contains(x.ReceiveMan)) + &&(x.CompileMan==userid || x.ResponsibleMan==userid || userid.Split(',').Contains(x.ReceiveMan)) orderby x.CheckSpecialCode descending select new Model.CheckSpecialItem { @@ -146,7 +146,8 @@ namespace BLL CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName, States = x.States, AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null), - ReceiveMan=x.ResponsibleMan + ReceiveMan=x.ReceiveMan, + ReceiveManName= UserService.getUserNamesUserIds(x.ReceiveMan) }; return getCheckSpecial.ToList(); } @@ -185,7 +186,8 @@ namespace BLL WorkAreaId=newItem.WorkAreaId, QuestionType=newItem.QuestionType, //审核人 - ResponsibleMan=newItem.ResponsibleMan + ResponsibleMan=newItem.ResponsibleMan, + ReceiveMan=newItem.ReceiveMan }; //if (newItem.States != Const.State_1) //{ diff --git a/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs b/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs index 69814a79..0bcae846 100644 --- a/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs +++ b/SGGL/Model/APIItem/HSSE/CheckSpecialItem.cs @@ -245,5 +245,6 @@ namespace Model /// public string ReceiveMan { get; set; } + public string ReceiveManName { get; set; } } } From e2b5b2e4b961b4ec926492d37235d2cf817db1cd Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Sun, 8 Oct 2023 10:38:24 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2023-10-08.sql | 27 + .../HSSE/APIGeneralEquipmentQualityService.cs | 148 ++ SGGL/BLL/BLL.csproj | 2 + SGGL/BLL/Common/NPOIExcel.cs | 1559 +++++++++++++++++ .../HSSE/QualityAudit/EquipmentQuality.aspx | 3 +- .../QualityAudit/EquipmentQuality.aspx.cs | 118 ++ .../EquipmentQuality.aspx.designer.cs | 59 +- .../QualityAudit/GeneralEquipmentQuality.aspx | 3 +- .../GeneralEquipmentQuality.aspx.cs | 132 +- .../GeneralEquipmentQuality.aspx.designer.cs | 59 +- .../APIItem/HSSE/EquipmentQualityItem.cs | 8 + SGGL/Model/Model.cs | 305 ++++ .../HSSE/GeneralEquipmentQualityController.cs | 160 ++ SGGL/WebAPI/WebAPI.csproj | 1 + 14 files changed, 2531 insertions(+), 53 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2023-10-08.sql create mode 100644 SGGL/BLL/API/HSSE/APIGeneralEquipmentQualityService.cs create mode 100644 SGGL/BLL/Common/NPOIExcel.cs create mode 100644 SGGL/WebAPI/Controllers/HSSE/GeneralEquipmentQualityController.cs diff --git a/DataBase/版本日志/SGGLDB_WH_2023-10-08.sql b/DataBase/版本日志/SGGLDB_WH_2023-10-08.sql new file mode 100644 index 00000000..9ae0578d --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2023-10-08.sql @@ -0,0 +1,27 @@ +Create VIEW [dbo].[View_QualityAudit_GeneralEquipmentQuality] AS +/*豸Ϣбͼ*/ +SELECT equ.GeneralEquipmentQualityId + ,equ.ProjectId + ,equ.GeneralEquipmentQualityCode + ,equ.UnitId + ,Unit.UnitName + ,equ.SpecialEquipmentId + ,sp.SpecialEquipmentName + ,equ.[IsQualified] + ,equ.EquipmentCount + ,equ.InDate + ,equ.Remark + ,equ.CompileMan + ,U.UserName AS CompileManName + ,equ.CompileDate + ,equ.QRCodeAttachUrl + ,REPLACE(a.AttachUrl,'\', '/') AS AttachUrl +FROM QualityAudit_GeneralEquipmentQuality AS equ +LEFT JOIN Base_Unit AS Unit ON Unit.UnitId=equ.UnitId +LEFT JOIN Base_SpecialEquipment AS sp ON equ.SpecialEquipmentId = sp.SpecialEquipmentId +LEFT JOIN Sys_User AS U ON U.UserId = equ.CompileMan +LEFT JOIN AttachFile AS a ON a.ToKeyId = equ.GeneralEquipmentQualityId + + + +GO diff --git a/SGGL/BLL/API/HSSE/APIGeneralEquipmentQualityService.cs b/SGGL/BLL/API/HSSE/APIGeneralEquipmentQualityService.cs new file mode 100644 index 00000000..458e6492 --- /dev/null +++ b/SGGL/BLL/API/HSSE/APIGeneralEquipmentQualityService.cs @@ -0,0 +1,148 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using EmitMapper; + +namespace BLL +{ + public static class APIGeneralEquipmentQualityService + { + #region 根据equipmentQualityId获取机具设备信息 + /// + /// 根据equipmentQualityId获取机具设备信息 + /// + /// + /// + public static Model.EquipmentQualityItem getEquipmentQualityByEquipmentQualityIdFactoryCode(string equipmentQualityId) + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var getEquipmentQuality = (from x in db.View_QualityAudit_GeneralEquipmentQuality + where x.GeneralEquipmentQualityId == equipmentQualityId + select new Model.EquipmentQualityItem + { + EquipmentQualityId = x.GeneralEquipmentQualityId, + ProjectId = x.ProjectId, + EquipmentQualityCode = x.GeneralEquipmentQualityCode, + EquipmentCount = x.EquipmentCount.HasValue? x.EquipmentCount.Value.ToString():"", + UnitId = x.UnitId, + IsQualified =x.IsQualified.HasValue? x.IsQualified.Value?"是":"否":"", + UnitName = x.UnitName, + SpecialEquipmentName = x.SpecialEquipmentName, + InDate = string.Format("{0:yyyy-MM-dd}", x.InDate), + Remark = x.Remark, + CompileManId = x.CompileMan, + CompileManName = x.CompileManName, + CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate), + AttachUrl = x.AttachUrl.Replace('\\', '/') + }); ; + return getEquipmentQuality.FirstOrDefault(); + } + } + #endregion + + #region 获取机具设备列表信息 + /// + /// 获取机具设备列表信息 + /// + /// + /// + /// + /// + public static List getEquipmentQualityList(string projectId, string unitId, string strParam) + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var getEquipmentQuality = from x in db.View_QualityAudit_GeneralEquipmentQuality + where x.ProjectId == projectId && (x.UnitId == unitId || unitId == null) + && (strParam == null || x.SpecialEquipmentName.Contains(strParam) ) + orderby x.GeneralEquipmentQualityCode descending + select new Model.EquipmentQualityItem + { + EquipmentQualityId = x.GeneralEquipmentQualityId, + ProjectId = x.ProjectId, + EquipmentQualityCode = x.GeneralEquipmentQualityCode, + EquipmentCount = x.EquipmentCount.HasValue ? x.EquipmentCount.Value.ToString() : "", + UnitId = x.UnitId, + IsQualified = x.IsQualified.HasValue ? x.IsQualified.Value ? "是" : "否" : "", + UnitName = x.UnitName, + SpecialEquipmentName = x.SpecialEquipmentName, + InDate = string.Format("{0:yyyy-MM-dd}", x.InDate), + Remark = x.Remark, + CompileManId = x.CompileMan, + CompileManName = x.CompileManName, + CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate), + AttachUrl = x.AttachUrl.Replace('\\', '/') + }; + return getEquipmentQuality.ToList(); + } + } + #endregion + + #region 保存QualityAudit_EquipmentQuality + /// + /// 保存QualityAudit_EquipmentQuality + /// + /// 机具设备资质 + /// + public static void SaveEquipmentQuality(Model.EquipmentQualityItem newItem) + { + Model.SGGLDB db = Funs.DB; + Model.QualityAudit_GeneralEquipmentQuality newEquipmentQuality = new Model.QualityAudit_GeneralEquipmentQuality + { + GeneralEquipmentQualityId = newItem.EquipmentQualityId, + ProjectId = newItem.ProjectId, + GeneralEquipmentQualityCode = newItem.EquipmentQualityCode, + UnitId = newItem.UnitId, + SpecialEquipmentId = newItem.SpecialEquipmentId, + InDate = Funs.GetNewDateTime(newItem.InDate), + Remark = newItem.Remark, + CompileMan = newItem.CompileManId, + }; + if (!string.IsNullOrEmpty(newItem.IsQualified)) + { + if ("1".Equals(newItem.IsQualified)) + { + newEquipmentQuality.IsQualified = true; + } + else + { + newEquipmentQuality.IsQualified = false; + + } + } + if (!string.IsNullOrEmpty(newItem.EquipmentCount)) + { + try + { + newEquipmentQuality.EquipmentCount = int.Parse(newItem.EquipmentCount); + } + catch (Exception e) { } + } + var updateEquipmentQuality = db.QualityAudit_GeneralEquipmentQuality.FirstOrDefault(x => x.GeneralEquipmentQualityId == newItem.EquipmentQualityId); + if (updateEquipmentQuality == null) + { + newEquipmentQuality.CompileDate = DateTime.Now; + newEquipmentQuality.GeneralEquipmentQualityId = SQLHelper.GetNewID(); + newEquipmentQuality.GeneralEquipmentQualityCode = BLL.CodeRecordsService.ReturnCodeByMenuIdProjectId(BLL.Const.GeneralEquipmentQualityMenuId, newItem.ProjectId, newItem.UnitId); + GeneralEquipmentQualityService.AddGeneralEquipmentQuality(newEquipmentQuality); + } + else + { + GeneralEquipmentQualityService.UpdateGeneralEquipmentQuality(newEquipmentQuality); + } + if (!string.IsNullOrEmpty(newItem.AttachUrl)) + { + ////保存附件 + UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newItem.AttachUrl, 10, null), newItem.AttachUrl, Const.GeneralEquipmentQualityMenuId, newEquipmentQuality.GeneralEquipmentQualityId); + } + else + { + CommonService.DeleteAttachFileById(newEquipmentQuality.GeneralEquipmentQualityId); + } + } + #endregion + } +} diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index f8b66252..81372eff 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -103,6 +103,7 @@ + @@ -174,6 +175,7 @@ + diff --git a/SGGL/BLL/Common/NPOIExcel.cs b/SGGL/BLL/Common/NPOIExcel.cs new file mode 100644 index 00000000..62868551 --- /dev/null +++ b/SGGL/BLL/Common/NPOIExcel.cs @@ -0,0 +1,1559 @@ +using NPOI.HSSF.UserModel; +using NPOI.SS.UserModel; +using NPOI.SS.Util; +using NPOI.XSSF.UserModel; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Linq; +using System.Text; + +namespace BLL.Common +{ + public class NPOIExcel + { + internal IWorkbook Book { get; set; } + + private int sheetID = 0; + /// + /// 当前活动的SheetID,所有的操作将指向这个Sheet + /// + public int ActiveSheetID + { + get + { + return sheetID; + } + set + { + sheetID = value; + } + } + + /// + /// 当前活动的SheetName,所有的操作将指向这个Sheet + /// + public String ActiveSheetName + { + get + { + return Book.GetSheetAt(sheetID).SheetName; + } + set + { + sheetID = Book.GetSheetIndex(value); + } + } + /// + /// 当前活动的Sheet,所有的操作将指向这个Sheet + /// + public ISheet ActiveSheet + { + get + { + return Book.GetSheetAt(sheetID); + } + } + + /// + /// 第一行非空行的行号 + /// + public int FirstRowNum + { + get + { + return Book.GetSheetAt(sheetID).FirstRowNum; + } + } + + /// + /// 最后一行非空行的行号 + /// + public int LastRostNum + { + get + { + return Book.GetSheetAt(sheetID).LastRowNum; + } + } + + /// + /// 无模板的Excel生成或操作 + /// + public NPOIExcel() + { + Book = new HSSFWorkbook(); + Book.CreateSheet(); + } + + public NPOIExcel(Stream fileStream, String fileName) + { + if (fileName.Substring(fileName.LastIndexOf(".")) == ".xls") + { + Book = new HSSFWorkbook(fileStream); + } + else + { + Book = new XSSFWorkbook(fileStream); + } + } + /// + /// 带模板或数据的Excel生成或操作 + /// + /// + public NPOIExcel(String fileName) + { + Book = CreateBook(fileName); + } + + /// + /// 创建Excel Book + /// + /// 模板文件名 + /// + private IWorkbook CreateBook(String fileName) + { + FileInfo file = new FileInfo(fileName); + if (!file.Exists) + { + File.Create(fileName).Close(); + } + FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); + IWorkbook book; + if (file.Extension == ".xls") + { + book = new HSSFWorkbook(fs); + } + else + { + book = new XSSFWorkbook(fs); + } + fs.Close(); + if (book.NumberOfSheets == 0) + { + book.CreateSheet(); + } + return book; + } + + /// + /// 新建Sheet + /// + /// 新建Sheet + public ISheet CreateSheet() + { + return Book.CreateSheet(); + } + + /// + /// 新建Sheet + /// + /// 新建Sheet的名称 + /// 新建Sheet + public ISheet CreateSheet(String sheetName) + { + return Book.CreateSheet(sheetName); + } + + /// + /// 设置行高 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + /// 高度 + public void SetRowHeight(int rowIndex, float height) + { + IRow row = Book.GetSheetAt(sheetID).GetRow(rowIndex); + if (row == null) + { + row = Book.GetSheetAt(sheetID).CreateRow(rowIndex); + } + row.Height = (short)(height * 20); + } + + /// + /// 设置列宽 + /// 注:只对当前ActiveSheet有效 + /// + /// 列号 + /// 宽度 + public void SetColumnWidth(int columnIndex, short width) + { + Book.GetSheetAt(sheetID).SetColumnWidth(columnIndex, width * 256); + } + + /// + /// 获取或设置默认行高 + /// 注:只对当前ActiveSheet有效 + /// + public short DefaultRowHeight + { + get + { + return (short)(Book.GetSheetAt(sheetID).DefaultRowHeight / 20); + } + set + { + Book.GetSheetAt(sheetID).DefaultRowHeight = (short)(value * 20); + + } + } + + /// + /// 获取或设置默认列宽 + /// 注:只对当前ActiveSheet有效 + /// + public int DefaultColWidth + { + get + { + return Book.GetSheetAt(sheetID).DefaultColumnWidth; + } + set + { + Book.GetSheetAt(sheetID).DefaultColumnWidth = value; + } + } + + /// + /// 某一列的列宽自动调整大小 + /// 注:只对当前ActiveSheet有效 + /// + /// 列号 + public void AutoColWidth(int colIndex) + { + Book.GetSheetAt(sheetID).AutoSizeColumn(colIndex, true); + } + + /// + /// 隐藏一行 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + public void HiddenRow(int rowIndex) + { + IRow row = Book.GetSheetAt(sheetID).GetRow(rowIndex); + if (row == null) + { + row = Book.GetSheetAt(sheetID).CreateRow(rowIndex); + } + row.ZeroHeight = true; + } + + /// + /// 删除一行 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + public void RemoveRow(int rowIndex) + { + IRow row = Book.GetSheetAt(sheetID).GetRow(rowIndex); + if (row != null) + { + ActiveSheet.RemoveRow(row); + } + } + + /// + /// 读取单元格的值 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + /// 列号 + /// 单元格的值 + public object ReadValue(int rowIndex, int columnIndex, bool? isDateTime = null) + { + try + { + ICell cell = Book.GetSheetAt(sheetID).GetRow(rowIndex).GetCell(columnIndex); + short df = cell.CellStyle.DataFormat; + + //return cell.ToString(); + switch (cell.CellType) + { + case CellType.Blank: + return null; + case CellType.Boolean: + return cell.BooleanCellValue; + case CellType.Error: + throw new Exception("Cell Value Error"); + case CellType.Formula: + { + switch (cell.CachedFormulaResultType) + { + case CellType.Blank: + return ""; + case CellType.Boolean: + return cell.BooleanCellValue; + case CellType.Error: + throw new Exception("Cell Value Error"); + case CellType.Formula: + throw new Exception("The Formula of this cell is too complex!"); + case CellType.Numeric: + if (isDateTime == null) + { + if (DateUtil.IsCellDateFormatted(cell)) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + } + else if (isDateTime == true) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + case CellType.String: + return cell.StringCellValue; + case CellType.Unknown: + return cell.ToString(); + default: + return cell.ToString(); + } + } + case CellType.Numeric: + { + if (isDateTime == null) + { + if (DateUtil.IsCellDateFormatted(cell)) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + } + else if (isDateTime == true) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + } + case CellType.String: + return cell.StringCellValue; + case CellType.Unknown: + return cell.ToString(); + default: + return cell.ToString(); + } + } + catch (System.NullReferenceException) + { + return null; + } + catch (Exception ex) + { + throw ex; + } + } + + /// + /// 设置单元格的值 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + /// 列号 + /// 单元格的值 + public void SetValue(int rowIndex, int columnIndex, object value) + { + SetValue(rowIndex, columnIndex, value, false); + } + public void SetPicValue(int rowIndex, int columnIndex, string value) + { + byte[] bytes = System.IO.File.ReadAllBytes(value); + int pictureIdx = Book.AddPicture(bytes, PictureType.JPEG); + + // 第三步:创建画部 + IDrawing patriarch = ActiveSheet.CreateDrawingPatriarch(); + // 第四步:设置锚点 + int rowline = 1; // y方向 + // 参数说明:(在起始单元格的X坐标0-1023,Y的坐标0-255,在终止单元格的X坐标0-1023,Y的坐标0-255,起始单元格列数,行数,终止单元格列数,行数) + IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, columnIndex, rowIndex, columnIndex+1, rowIndex + 1); + // 第五步:把图片插到相应的位置+1 + IPicture pict = patriarch.CreatePicture(anchor, pictureIdx); + + + } + /// + /// 设置单元格的值 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + /// 列号 + /// 单元格的值 + /// 是否是公式 + public void SetValue(int rowIndex, int columnIndex, object value, bool isFormula) + { + IRow row = Book.GetSheetAt(sheetID).GetRow(rowIndex); + if (row == null) + { + row = Book.GetSheetAt(sheetID).CreateRow(rowIndex); + } + ICell cell = row.GetCell(columnIndex); + if (cell == null) + { + cell = row.CreateCell(columnIndex); + } + if (value == null) + { + cell.SetCellValue(""); + } + if (isFormula) + { + cell.SetCellFormula(value.ToString()); + } + else + { + if (value is short) + { + cell.SetCellValue((short)value); + } + else if (value is int) + { + cell.SetCellValue((int)value); + } + else if (value is long) + { + cell.SetCellValue((long)value); + } + else if (value is float) + { + cell.SetCellValue((float)value); + } + else if (value is double) + { + cell.SetCellValue((double)value); + } + else if (value is bool) + { + cell.SetCellValue((bool)value); + } + else if (value is DateTime) + { + cell.SetCellValue((DateTime)value); + } + else if (value == null) + { + } + else + { + cell.SetCellValue(value.ToString()); + } + } + + } + + /// + /// 设置一个区域内的单元格的值范围 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行 + /// 结束行 + /// 开始列 + /// 结束列 + /// 验证类型 + /// 验证方式 + /// 最小值 + /// 最大值 + public void SetValueRange(int startRowIndex, int EndRowIndex, int startColInex, int endColIndex, NPOIDataType type, OperatorTypes operatorType, String minValue, String maxValue) + { + SetValueRange(startRowIndex, EndRowIndex, startColInex, endColIndex, type, operatorType, minValue, maxValue, "", ""); + } + + /// + /// 设置一个区域内的单元格的值范围 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行 + /// 结束行 + /// 开始列 + /// 结束列 + /// 验证类型 + /// 验证方式 + /// 最小值 + /// 最大值 + /// 数据格式 + public void SetValueRange(int startRowIndex, int EndRowIndex, int startColInex, int endColIndex, NPOIDataType type, OperatorTypes operatorType, String minValue, String maxValue, String formate) + { + SetValueRange(startRowIndex, EndRowIndex, startColInex, endColIndex, type, operatorType, minValue, maxValue, formate, ""); + } + + /// + /// 设置一个区域内的单元格的值范围 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行 + /// 结束行 + /// 开始列 + /// 结束列 + /// 验证类型 + /// 验证方式 + /// 最小值 + /// 最大值 + /// 数据格式 + /// 报错信息 + public void SetValueRange(int startRowIndex, int EndRowIndex, int startColInex, int endColIndex, NPOIDataType type, OperatorTypes operatorType, String minValue, String maxValue, String formate, String AlertMassage) + { + CellRangeAddressList regions = new CellRangeAddressList(startRowIndex, EndRowIndex, startColInex, endColIndex); + DVConstraint constraint = DVConstraint.CreateNumericConstraint(ValidationType.ANY, 0, null, null); + switch (type) + { + case NPOIDataType.Integer: + constraint = DVConstraint.CreateNumericConstraint(ValidationType.INTEGER, (int)operatorType, minValue, maxValue); + break; + case NPOIDataType.Float: + constraint = DVConstraint.CreateNumericConstraint(ValidationType.DECIMAL, (int)operatorType, minValue, maxValue); + break; + case NPOIDataType.Date: + if (formate == "") + { + formate = "yyyy/MM/dd"; + } + constraint = DVConstraint.CreateDateConstraint((int)operatorType, minValue, maxValue, formate); + break; + case NPOIDataType.Time: + constraint = DVConstraint.CreateTimeConstraint((int)operatorType, minValue, maxValue); + break; + case NPOIDataType.TextLength: + constraint = DVConstraint.CreateNumericConstraint(ValidationType.TEXT_LENGTH, (int)operatorType, minValue, maxValue); + break; + default: + break; + } + + HSSFDataValidation dataValidate1 = new HSSFDataValidation(regions, constraint); + if (!String.IsNullOrEmpty(AlertMassage)) + { + dataValidate1.CreateErrorBox("Error", AlertMassage); + } + ActiveSheet.AddValidationData(dataValidate1); + + } + + /// + /// 设置一个区域内的单元格的值范围 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行 + /// 结束行 + /// 开始列 + /// 结束列 + /// 值系列 + public void SetValueRange(int startRowIndex, int EndRowIndex, int startColInex, int endColIndex, String[] dataRange) + { + + SetValueRange(startRowIndex, EndRowIndex, startColInex, endColIndex, dataRange, ""); + } + + /// + /// 设置一个区域内的单元格的值范围 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行 + /// 结束行 + /// 开始列 + /// 结束列 + /// 值系列 + /// 报错信息 + public void SetValueRange(int startRowIndex, int endRowIndex, int startColInex, int endColIndex, String[] dataRange, String alertMassage) + { + ISheetConditionalFormatting hscf = ActiveSheet.SheetConditionalFormatting; + CellRangeAddress[] regions = { + new CellRangeAddress(startRowIndex, endRowIndex,startColInex,endColIndex) + }; + + CellRangeAddressList rangeList = new CellRangeAddressList(); + rangeList.AddCellRangeAddress(new CellRangeAddress(startRowIndex, endRowIndex, startColInex, endColIndex)); + DVConstraint dvconstraint = DVConstraint.CreateExplicitListConstraint(dataRange); + HSSFDataValidation dataValidation = new HSSFDataValidation(rangeList, dvconstraint); + + if (!String.IsNullOrEmpty(alertMassage)) + { + dataValidation.CreateErrorBox("Error", alertMassage); + } + + ActiveSheet.AddValidationData(dataValidation); + } + + /// + /// 设置一个区域内的单元格的值范围 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行 + /// 结束行 + /// 开始列 + /// 结束列 + /// 计算公式 + /// 报错信息 + public void SetValueRange(int startRowIndex, int endRowIndex, int startColInex, int endColIndex, String Formula, String alertMassage) + { + ISheetConditionalFormatting hscf = ActiveSheet.SheetConditionalFormatting; + CellRangeAddress[] regions = { + new CellRangeAddress(startRowIndex, endRowIndex,startColInex,endColIndex) + }; + + CellRangeAddressList rangeList = new CellRangeAddressList(); + rangeList.AddCellRangeAddress(new CellRangeAddress(startRowIndex, endRowIndex, startColInex, endColIndex)); + DVConstraint dvconstraint = DVConstraint.CreateFormulaListConstraint(Formula); + HSSFDataValidation dataValidation = new HSSFDataValidation(rangeList, dvconstraint); + + if (!String.IsNullOrEmpty(alertMassage)) + { + dataValidation.CreateErrorBox("Error", alertMassage); + } + + ActiveSheet.AddValidationData(dataValidation); + } + + /// + /// 设置一个区域内的单元格的值范围 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行 + /// 结束行 + /// 开始列 + /// 结束列 + /// 计算公式 + public void SetValueRange(int startRowIndex, int endRowIndex, int startColInex, int endColIndex, String Formula) + { + SetValueRange(startRowIndex, endColIndex, startRowIndex, endColIndex, Formula, ""); + } + + /// + /// 生成单元格样式 + /// + /// 与当前Excel相关的单元格样式 + public ICellStyle CreateCellStyle() + { + return Book.CreateCellStyle(); + } + + /// + /// 生成字体 + /// + /// 与当前Excel相关的字体 + public IFont CreateFont() + { + return Book.CreateFont(); + } + + /// + /// 设置单元格样式 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + /// 列号 + /// 样式 + public void SetStyle(int rowIndex, int columnIndex, ICellStyle style) + { + IRow row = Book.GetSheetAt(sheetID).GetRow(rowIndex); + if (row == null) + { + row = Book.GetSheetAt(sheetID).CreateRow(rowIndex); + } + ICell cell = row.GetCell(columnIndex); + if (cell == null) + { + cell = row.CreateCell(columnIndex); + } + cell.CellStyle = style; + } + + /// + /// 合并单元格 + /// 注:只对当前ActiveSheet有效 + /// + /// 开始行号 + /// 开始列号 + /// 结束行号 + /// 结束列号 + public void MergeCells(int startRowIndex, int startColumnIndex, int endRowIndex, int endColumnIndex) + { + int Index = Book.GetSheetAt(sheetID).AddMergedRegion(new CellRangeAddress(startRowIndex, endRowIndex, startColumnIndex, endColumnIndex)); + } + + /// + /// 拆分单元格 + /// 注1:只对当前ActiveSheet有效 + /// 注2:只有合并的单元格才能拆分 + /// + /// 开始行号 + /// 开始列号 + public void UnMergeCells(int startRowIndex, int startColumnIndex) + { + int merges = Book.GetSheetAt(sheetID).NumMergedRegions; + CellRangeAddress merge; + for (int i = 0; i < merges; i++) + { + merge = Book.GetSheetAt(sheetID).GetMergedRegion(i); + if (merge.FirstRow == startRowIndex && merge.FirstColumn == startColumnIndex) + { + Book.GetSheetAt(sheetID).RemoveMergedRegion(i); + break; + } + } + } + + /// + /// 保存到文件 + /// 注:有模板的,文件扩展名与模板一样;没有模板的,文件扩展名为“.xls”; + /// + /// 保存文件名 + public void Save(String fileName) + { + FileStream file = new FileStream(fileName, FileMode.Create); + Book.Write(file); + file.Close(); + } + + /// + /// 保存到流 + /// 注:保存或下载时,有模板的,文件扩展名与模板一样;没有模板的,文件扩展名为“.xls”; + /// + /// 内存流 + public MemoryStream Save() + { + MemoryStream ms = new MemoryStream(); + Book.Write(ms); + return ms; + } + + /// + /// 把Excel读成DataSet + /// 注:必须是正规表格式 + /// + /// 读出的Excel + public DataSet ReadAsDataSet() + { + DataSet rtn = new DataSet(); + for (int i = 0; i < SheetCount; i++) + { + ISheet sheet = Book.GetSheetAt(i); + rtn.Tables.Add(GetDataTableBySheet(sheet)); + } + return rtn; + } + + private DataTable GetDataTableBySheet(ISheet sheet) + { + DataTable dt = new DataTable(sheet.SheetName); + int maxCols = 0; + object value; + while ((value = ReadValue(sheet, 0, maxCols)) != null) + { + dt.Columns.Add(value.ToString()); + maxCols++; + } + + int row = 1; + + bool emptyRow = false; + int emptyRowCount = 0; + while (emptyRowCount < 10) + { + emptyRow = true; + DataRow dr = dt.NewRow(); + for (int i = 0; i < maxCols; i++) + { + value = ReadValue(sheet, row, i); + if (value != null) + { + dr[i] = value; + emptyRow = false; + } + } + if (!emptyRow) + { + dt.Rows.Add(dr); + emptyRowCount = 0; + } + else + { + emptyRowCount++; + } + row++; + } + + return dt; + } + + /// + /// 根据SheetName导出数据为DataTable + /// + /// Sheet名称 + /// + public DataTable GetDataTableBySheet(String sheetName) + { + + ISheet sheet = Book.GetSheet(sheetName); + if (sheet != null) + { + return GetDataTableBySheet(sheet); + } + return null; + + } + + /// + /// 根据SheetName导出数据为DataTable + /// + /// Sheet编号 + /// + public DataTable GetDataTableBySheet(int sheetIndex) + { + + ISheet sheet = Book.GetSheetAt(sheetIndex); + if (sheet != null) + { + return GetDataTableBySheet(sheet); + } + return null; + + } + + /// + /// 写入表格 + /// + /// 表格数据 + /// 写入的起始列 + /// 写入的起始行 + /// 标题颜色 + /// 是否需要四周边框 + public void WriteDataTable(DataTable Data, int col = 1, int row = 1, short? titleColor = null, bool fullBorder = true) + { + if (Data == null) + { + return; + } + + var titleStyle = CreateCellStyle(); + var rowStyle = CreateCellStyle(); + if (titleColor != null) + titleStyle.FillForegroundColor = titleColor.Value; + + titleStyle.FillPattern = FillPattern.SolidForeground; + if (fullBorder) + { + titleStyle.BorderBottom = BorderStyle.Thin; + titleStyle.BorderLeft = BorderStyle.Thin; + titleStyle.BorderRight = BorderStyle.Thin; + titleStyle.BorderTop = BorderStyle.Thin; + titleStyle.BottomBorderColor = NPOIColor.BLACK; + titleStyle.LeftBorderColor = NPOIColor.BLACK; + titleStyle.RightBorderColor = NPOIColor.BLACK; + titleStyle.TopBorderColor = NPOIColor.BLACK; + rowStyle.BorderBottom = BorderStyle.Thin; + rowStyle.BorderLeft = BorderStyle.Thin; + rowStyle.BorderRight = BorderStyle.Thin; + rowStyle.BorderTop = BorderStyle.Thin; + rowStyle.BottomBorderColor = NPOIColor.BLACK; + rowStyle.LeftBorderColor = NPOIColor.BLACK; + rowStyle.RightBorderColor = NPOIColor.BLACK; + rowStyle.TopBorderColor = NPOIColor.BLACK; + } + + int iCol = 0, iRow = 1; + + foreach (DataColumn dc in Data.Columns) + { + SetValue(row, col + iCol, dc.ColumnName); + SetStyle(row, col + iCol, titleStyle); + iCol++; + } + + rowStyle.FillForegroundColor = NPOIColor.WHITE; + + foreach (DataRow dr in Data.Rows) + { + iCol = 0; + foreach (DataColumn dc in Data.Columns) + { + SetValue(row + iRow, col + iCol, dr[dc]); + SetStyle(row + iRow, col + iCol, rowStyle); + iCol++; + } + iRow++; + } + + for (int i = 0; i < iCol; i++) + { + this.AutoColWidth(i); + } + } + + /// + /// 读取单元格的值 + /// 注:只对当前ActiveSheet有效 + /// + /// 行号 + /// 列号 + /// 单元格的值 + public object ReadValue(ISheet sheet, int rowIndex, int columnIndex, bool? isDateTime = null) + { + try + { + ICell cell = sheet.GetRow(rowIndex).GetCell(columnIndex); + short df = cell.CellStyle.DataFormat; + + //return cell.ToString(); + switch (cell.CellType) + { + case CellType.Blank: + return null; + case CellType.Boolean: + return cell.BooleanCellValue; + case CellType.Error: + throw new Exception("Cell Value Error"); + case CellType.Formula: + { + switch (cell.CachedFormulaResultType) + { + case CellType.Blank: + return ""; + case CellType.Boolean: + return cell.BooleanCellValue; + case CellType.Error: + throw new Exception("Cell Value Error"); + case CellType.Formula: + throw new Exception("The Formula of this cell is too complex!"); + case CellType.Numeric: + if (isDateTime == null) + { + if (DateUtil.IsCellDateFormatted(cell)) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + } + else if (isDateTime == true) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + case CellType.String: + return cell.StringCellValue; + case CellType.Unknown: + return cell.ToString(); + default: + return cell.ToString(); + } + } + case CellType.Numeric: + { + if (isDateTime == null) + { + if (DateUtil.IsCellDateFormatted(cell)) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + } + else if (isDateTime == true) + { + return cell.DateCellValue; + } + else + { + return cell.NumericCellValue; + } + } + case CellType.String: + return cell.StringCellValue; + case CellType.Unknown: + return cell.ToString(); + default: + return cell.ToString(); + } + } + catch (System.NullReferenceException) + { + return null; + } + catch (Exception ex) + { + throw ex; + } + } + + public int SheetCount + { + get + { + return Book.NumberOfSheets; + } + } + + public String GetSheetName(int Index) + { + return Book.GetSheetName(Index); + } + + public void AddPicture(byte[] data, int row, int col) + { + int picIndex = Book.AddPicture(data, PictureType.PNG); + + IDrawing draw = ActiveSheet.CreateDrawingPatriarch(); + + IClientAnchor anchor = draw.CreateAnchor(0, 0, 255, 255, col, row, col + 5, col + 5); + IPicture pic = draw.CreatePicture(anchor, picIndex); + pic.Resize(); + } + } + + public enum OperatorTypes + { + /// + /// 介于最大值与小值之间 + /// + BETWEEN = OperatorType.BETWEEN, + /// + /// 等于最小值 + /// + EQUAL = OperatorType.EQUAL, + /// + /// 大于或等于最小值 + /// + GREATER_OR_EQUAL = OperatorType.GREATER_OR_EQUAL, + /// + /// 大于最小值 + /// + GREATER_THAN = OperatorType.GREATER_THAN, + /// + /// 忽略 + /// + NO_COMPARISON = OperatorType.IGNORED, + /// + /// 小于或等于最小值 + /// + LESS_OR_EQUAL = OperatorType.LESS_OR_EQUAL, + /// + /// 小于最小值 + /// + LESS_THAN = OperatorType.LESS_THAN, + /// + /// 不在最小值与最大值之间 + /// + NOT_BETWEEN = OperatorType.NOT_BETWEEN, + /// + /// 不等于最小值 + /// + NOT_EQUAL = OperatorType.NOT_EQUAL + } + + public enum NPOIDataType + { + /// + /// 验证整数 + /// + Integer, + /// + /// 验证符点数 + /// + Float, + /// + /// 验证日期 + /// + Date, + /// + /// 验证时间 + /// + Time, + /// + /// 验证字符长度 + /// + TextLength + } + + public static class NPOIColor + { + + /// + /// 红色 + /// + public static short RED { get { return NPOI.HSSF.Util.HSSFColor.Red.Index; } } + + /// + /// 蓝色 + /// + public static short BLUE { get { return NPOI.HSSF.Util.HSSFColor.Blue.Index; } } + + /// + /// 浅绿色 + /// + public static short AQUA { get { return NPOI.HSSF.Util.HSSFColor.Aqua.Index; } } + + /// + /// 自动 + /// + public static short AUTOMATIC { get { return NPOI.HSSF.Util.HSSFColor.Automatic.Index; } } + + /// + /// 黑色 + /// + public static short BLACK { get { return NPOI.HSSF.Util.HSSFColor.Black.Index; } } + + /// + /// 蓝灰色 + /// + public static short BLUE_GREY { get { return NPOI.HSSF.Util.HSSFColor.BlueGrey.Index; } } + + /// + /// 明绿色 + /// + public static short BRIGHT_GREEN { get { return NPOI.HSSF.Util.HSSFColor.BrightGreen.Index; } } + + /// + /// 棕色 + /// + public static short BROWN { get { return NPOI.HSSF.Util.HSSFColor.Brown.Index; } } + + /// + /// 正常 + /// + public static short COLOR_NORMAL { get { return NPOI.HSSF.Util.HSSFColor.COLOR_NORMAL; } } + + /// + /// 珊瑚色 + /// + public static short CORAL { get { return NPOI.HSSF.Util.HSSFColor.Coral.Index; } } + + /// + /// 亮蓝色 + /// + public static short CORNFLOWER_BLUE { get { return NPOI.HSSF.Util.HSSFColor.CornflowerBlue.Index; } } + + /// + /// 深蓝色 + /// + public static short DARK_BLUE { get { return NPOI.HSSF.Util.HSSFColor.DarkBlue.Index; } } + + /// + /// 深绿色 + /// + public static short DARK_GREEN { get { return NPOI.HSSF.Util.HSSFColor.DarkGreen.Index; } } + + /// + /// 深红色 + /// + public static short DARK_RED { get { return NPOI.HSSF.Util.HSSFColor.DarkRed.Index; } } + + /// + /// 深茶色 + /// + public static short DARK_TEAL { get { return NPOI.HSSF.Util.HSSFColor.DarkTeal.Index; } } + + /// + /// 深黄 + /// + public static short DARK_YELLOW { get { return NPOI.HSSF.Util.HSSFColor.DarkYellow.Index; } } + + /// + /// 金色 + /// + public static short GOLD { get { return NPOI.HSSF.Util.HSSFColor.Gold.Index; } } + + /// + /// 绿色 + /// + public static short GREEN { get { return NPOI.HSSF.Util.HSSFColor.Green.Index; } } + + /// + /// 25%灰色 + /// + public static short GREY_25_PERCENT { get { return NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index; } } + + /// + /// 40%灰色 + /// + public static short GREY_40_PERCENT { get { return NPOI.HSSF.Util.HSSFColor.Grey40Percent.Index; } } + + /// + /// 50%灰色 + /// + public static short GREY_50_PERCENT { get { return NPOI.HSSF.Util.HSSFColor.Grey50Percent.Index; } } + + /// + /// 80%灰色 + /// + public static short GREY_80_PERCENT { get { return NPOI.HSSF.Util.HSSFColor.Grey80Percent.Index; } } + + /// + /// 靛蓝色 + /// + public static short INDIGO { get { return NPOI.HSSF.Util.HSSFColor.Indigo.Index; } } + + /// + /// 淡紫色 + /// + public static short LAVENDER { get { return NPOI.HSSF.Util.HSSFColor.Lavender.Index; } } + + /// + /// 粉黄色 + /// + public static short LEMON_CHIFFON { get { return NPOI.HSSF.Util.HSSFColor.LemonChiffon.Index; } } + + /// + /// 淡蓝色 + /// + public static short LIGHT_BLUE { get { return NPOI.HSSF.Util.HSSFColor.LightBlue.Index; } } + + /// + /// 淡亮蓝色 + /// + public static short LIGHT_CORNFLOWER_BLUE { get { return NPOI.HSSF.Util.HSSFColor.LightCornflowerBlue.Index; } } + + /// + /// 淡绿色 + /// + public static short LIGHT_GREEN { get { return NPOI.HSSF.Util.HSSFColor.LightGreen.Index; } } + + /// + /// 淡桔黄色 + /// + public static short LIGHT_ORANGE { get { return NPOI.HSSF.Util.HSSFColor.LightOrange.Index; } } + + /// + /// 淡蓝绿色 + /// + public static short LIGHT_TURQUOISE { get { return NPOI.HSSF.Util.HSSFColor.LightTurquoise.Index; } } + + /// + /// 淡黄色 + /// + public static short LIGHT_YELLOW { get { return NPOI.HSSF.Util.HSSFColor.LightYellow.Index; } } + + /// + /// 绿黄色 + /// + public static short LIME { get { return NPOI.HSSF.Util.HSSFColor.Lime.Index; } } + + /// + /// 栗色 + /// + public static short MAROON { get { return NPOI.HSSF.Util.HSSFColor.Maroon.Index; } } + + /// + /// 橄榄绿色 + /// + public static short OLIVE_GREEN { get { return NPOI.HSSF.Util.HSSFColor.OliveGreen.Index; } } + + /// + /// 桔色 + /// + public static short ORANGE { get { return NPOI.HSSF.Util.HSSFColor.Orange.Index; } } + + /// + /// 白灰蓝色 + /// + public static short PALE_BLUE { get { return NPOI.HSSF.Util.HSSFColor.PaleBlue.Index; } } + + /// + /// 粉红色 + /// + public static short PINK { get { return NPOI.HSSF.Util.HSSFColor.Pink.Index; } } + + /// + /// 紫红色 + /// + public static short PLUM { get { return NPOI.HSSF.Util.HSSFColor.Plum.Index; } } + + /// + /// 玫瑰红色 + /// + public static short ROSE { get { return NPOI.HSSF.Util.HSSFColor.Rose.Index; } } + + /// + /// 高贵蓝 + /// + public static short ROYAL_BLUE { get { return NPOI.HSSF.Util.HSSFColor.RoyalBlue.Index; } } + + /// + /// 海绿色 + /// + public static short SEA_GREEN { get { return NPOI.HSSF.Util.HSSFColor.SeaGreen.Index; } } + + /// + /// 天空蓝 + /// + public static short SKY_BLUE { get { return NPOI.HSSF.Util.HSSFColor.SkyBlue.Index; } } + + /// + /// 棕褐色 + /// + public static short TAN { get { return NPOI.HSSF.Util.HSSFColor.Tan.Index; } } + + /// + /// 茶色 + /// + public static short TEAL { get { return NPOI.HSSF.Util.HSSFColor.Teal.Index; } } + + /// + /// 蓝绿色 + /// + public static short TURQUOISE { get { return NPOI.HSSF.Util.HSSFColor.Turquoise.Index; } } + + /// + /// 紫色 + /// + public static short VIOLET { get { return NPOI.HSSF.Util.HSSFColor.Violet.Index; } } + + /// + /// 白色 + /// + public static short WHITE { get { return NPOI.HSSF.Util.HSSFColor.White.Index; } } + + /// + /// 黄色 + /// + public static short YELLOW { get { return NPOI.HSSF.Util.HSSFColor.Yellow.Index; } } + + } + + /// + /// 针对excel的Oledb + /// + public class OleDbExcel + { + /// + /// OLEDB连接 + /// + public OleDbConnection Connection + { + get; + set; + } + + /// + /// 用Oledb对Excel进行操作 + /// 注:必须是标准表形式Excel内容 + /// + /// Excel文件 + public OleDbExcel(String excelFile) + { + String conStr = String.Empty; + FileInfo file = new FileInfo(excelFile); + if (!file.Exists) { throw new Exception("文件不存在"); } + String extension = file.Extension; + switch (extension) + { + case ".xls": + conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; + break; + case ".xlsx": + conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFile + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'"; + break; + default: + conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFile + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; + break; + } + + //链接Excel + Connection = new OleDbConnection(conStr); + } + + private List tableNames; + + /// + /// 获取Excel内的Sheet名称 + /// + public List Sheets + { + get + { + if (tableNames == null) + { + try + { + tableNames = new List(); + //读取Excel里面的sheet名 + Connection.Open(); + + DataTable schemaTable = Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); + + for (int i = 0; i < schemaTable.Rows.Count; i++) + { + DataRow dr = schemaTable.Rows[i]; + String tbName = dr["table_name"].ToString(); + if (tbName[tbName.Length - 1] == '$') + { + tableNames.Add(tbName); + } + } + Connection.Close(); + } + catch (Exception ex) + { + if (Connection.State != ConnectionState.Closed) + { + Connection.Close(); + } + throw new Exception(ex.Message, ex); + } + } + return tableNames; + } + } + + /// + /// 查询出所有数据 + /// + /// Sheet名称 + /// sheet内的所有数据 + public DataSet QueryAll(String tableName) + { + try + { + DataSet excelData = new DataSet(); + OleDbDataAdapter adapter = new OleDbDataAdapter(); + adapter.SelectCommand = new OleDbCommand(); + adapter.SelectCommand.Connection = Connection; + adapter.SelectCommand.CommandText = String.Format("SELECT * FROM {0}", "[" + tableName + "]"); + adapter.Fill(excelData); + return excelData; + } + catch (Exception ex) + { + if (Connection.State != ConnectionState.Closed) + { + Connection.Close(); + } + throw new Exception(ex.Message, ex); + } + } + + /// + /// 查询出所有数据 + /// + /// Sheet序号(从0开始) + /// sheet内的所有数据 + public DataSet QueryAll(int tableIndex) + { + return QueryAll(Sheets[tableIndex]); + } + + /// + /// 利用Sql进行查询 + /// + /// Sql语句 + /// 查询出的数据 + public DataSet Query(String sql) + { + try + { + DataSet excelData = new DataSet(); + OleDbDataAdapter adapter = new OleDbDataAdapter(sql, Connection); + adapter.Fill(excelData); + return excelData; + } + catch (Exception ex) + { + if (Connection.State != ConnectionState.Closed) + { + Connection.Close(); + } + throw new Exception(ex.Message, ex); + } + } + + /// + /// 利用Sql进行查询 + /// + /// Sql语句 + /// 查询参数 + /// 查询出的数据 + public DataSet Query(String sql, params OleDbParameter[] param) + { + try + { + DataSet excelData = new DataSet(); + OleDbDataAdapter adapter = new OleDbDataAdapter(sql, Connection); + adapter.SelectCommand.Parameters.AddRange(param); + adapter.Fill(excelData); + return excelData; + } + catch (Exception ex) + { + if (Connection.State != ConnectionState.Closed) + { + Connection.Close(); + } + throw new Exception(ex.Message, ex); + } + } + + /// + /// 利用Sql进行数据操作 + /// + /// sql语句 + /// 影响的行数 + public int ExecuteSql(String sql) + { + try + { + Connection.Open(); + OleDbCommand cmd = Connection.CreateCommand(); + cmd.CommandText = sql; + int rtn = cmd.ExecuteNonQuery(); + Connection.Close(); + return rtn; + } + catch (Exception ex) + { + if (Connection.State != ConnectionState.Closed) + { + Connection.Close(); + } + throw new Exception(ex.Message, ex); + } + } + + /// + /// 利用Sql进行数据操作 + /// + /// sql语句 + /// 执行参数 + /// 影响的行数 + public int ExecuteSql(String sql, params OleDbParameter[] param) + { + try + { + Connection.Open(); + OleDbCommand cmd = Connection.CreateCommand(); + cmd.CommandText = sql; + cmd.Parameters.AddRange(param); + int rtn = cmd.ExecuteNonQuery(); + Connection.Close(); + return rtn; + } + catch (Exception ex) + { + if (Connection.State != ConnectionState.Closed) + { + Connection.Close(); + } + throw new Exception(ex.Message, ex); + } + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx b/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx index 9cf6fddb..08f3b06f 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx @@ -36,7 +36,8 @@ + + diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.cs b/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.cs index 14616a04..6506bee0 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.cs @@ -1,10 +1,13 @@ using BLL; +using BLL.Common; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; using System.Text; +using ThoughtWorks.QRCode.Codec; using AspNet = System.Web.UI.WebControls; namespace FineUIPro.Web.HSSE.QualityAudit @@ -294,5 +297,120 @@ namespace FineUIPro.Web.HSSE.QualityAudit } } #endregion + + protected void btnQR_Click(object sender, EventArgs e) + { + string strSql = @"SELECT EquipmentQuality.EquipmentQualityId, CodeRecords.Code AS EquipmentQualityCode, + EquipmentQuality.FactoryCode ,EquipmentQuality.QRCodeAttachUrl + FROM QualityAudit_EquipmentQuality AS EquipmentQuality + LEFT JOIN Sys_CodeRecords AS CodeRecords ON EquipmentQuality.EquipmentQualityId = CodeRecords.DataId + LEFT JOIN Base_SpecialEquipment AS SpecialEquipment ON SpecialEquipment.SpecialEquipmentId = EquipmentQuality.SpecialEquipmentId WHERE 1=1 "; + List listStr = new List(); + if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) + { + strSql += " AND EquipmentQuality.ProjectId = @ProjectId"; + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + } + if (!string.IsNullOrEmpty(this.txtEquipmentQualityCode.Text.Trim())) + { + strSql += " AND EquipmentQualityCode LIKE @EquipmentQualityCode"; + listStr.Add(new SqlParameter("@EquipmentQualityCode", "%" + this.txtEquipmentQualityCode.Text.Trim() + "%")); + } + if (this.drpUnitId.SelectedValue != BLL.Const._Null) + { + strSql += " AND EquipmentQuality.UnitId = @UnitId"; + listStr.Add(new SqlParameter("@UnitId", this.drpUnitId.SelectedValue.Trim())); + } + if (!string.IsNullOrEmpty(this.txtSpecialEquipmentName.Text.Trim())) + { + strSql += " AND SpecialEquipmentName LIKE @SpecialEquipmentName"; + listStr.Add(new SqlParameter("@SpecialEquipmentName", "%" + this.txtSpecialEquipmentName.Text.Trim() + "%")); + } + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + + NPOIExcel excel = new NPOIExcel(); + excel.SetColumnWidth(0, 50); + excel.SetColumnWidth(1, 50); + excel.SetColumnWidth(2, 50); + for (int i = 0; i < tb.Rows.Count; i++) + { + if (i % 3 == 0) + { + excel.SetRowHeight(2 * (int)(i / 3), 200); + } + string QRCodeAttachUrl = tb.Rows[i]["QRCodeAttachUrl"].ToString(); + string EquipmentQualityCode = tb.Rows[i]["EquipmentQualityCode"].ToString(); + if (string.IsNullOrEmpty(QRCodeAttachUrl)) + { + try + { + var equipmentQuality = Funs.DB.QualityAudit_EquipmentQuality.FirstOrDefault(x => x.EquipmentQualityId == tb.Rows[i]["EquipmentQualityId"].ToString()); + equipmentQuality.QRCodeAttachUrl = CreateCode_Simple("equipment$" + tb.Rows[i]["FactoryCode"].ToString()); + QRCodeAttachUrl = equipmentQuality.QRCodeAttachUrl; + Funs.DB.SubmitChanges(); + } + catch (Exception e1) { } + + } + //add picture data to this workbook. + excel.SetPicValue(2 * (int)(i / 3), i % 3, Server.MapPath("~/") + QRCodeAttachUrl); + excel.SetValue(2 * (int)(i / 3) + 1, i % 3, EquipmentQualityCode); + } + string initTemplatePath = Const.ExcelUrl + Funs.GetNewFileName() + ".xls"; + string uploadfilepath = Server.MapPath("~/") + initTemplatePath; + string fileName = Path.GetFileName(initTemplatePath); + excel.Save(uploadfilepath); + FileInfo info = new FileInfo(uploadfilepath); + + 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(uploadfilepath, 0, fileSize); + Response.Flush(); + Response.End(); + + + + } + + private string CreateCode_Simple(string nr) + { + try + { + string imageUrl = string.Empty; + QRCodeEncoder qrCodeEncoder = new QRCodeEncoder + { + QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE, + QRCodeScale = nr.Length, + QRCodeVersion = 0, + QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M + }; + System.Drawing.Image image = qrCodeEncoder.Encode(nr, Encoding.UTF8); + string filepath = Server.MapPath("~/") + UploadFileService.QRCodeImageFilePath; + //如果文件夹不存在,则创建 + if (!Directory.Exists(filepath)) + { + Directory.CreateDirectory(filepath); + } + string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; + imageUrl = filepath + filename; + FileStream fs = new FileStream(imageUrl, FileMode.OpenOrCreate, FileAccess.Write); + image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); + fs.Close(); + image.Dispose(); + return UploadFileService.QRCodeImageFilePath + filename; + } + + catch (Exception ex) + + { + } + return ""; + } + + } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.designer.cs index 1b1a9e21..d1027b11 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/EquipmentQuality.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HSSE.QualityAudit { - - - public partial class EquipmentQuality { - +namespace FineUIPro.Web.HSSE.QualityAudit +{ + + + public partial class EquipmentQuality + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// Toolbar2 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar2; - + /// /// txtEquipmentQualityCode 控件。 /// @@ -65,7 +67,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtEquipmentQualityCode; - + /// /// drpUnitId 控件。 /// @@ -74,7 +76,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpUnitId; - + /// /// txtSpecialEquipmentName 控件。 /// @@ -83,7 +85,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtSpecialEquipmentName; - + /// /// ToolbarFill1 控件。 /// @@ -92,7 +94,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - + /// /// btnNew 控件。 /// @@ -101,7 +103,16 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnNew; - + + /// + /// btnQR 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQR; + /// /// btnOut 控件。 /// @@ -110,7 +121,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnOut; - + /// /// lblNumber 控件。 /// @@ -119,7 +130,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label lblNumber; - + /// /// ToolbarSeparator1 控件。 /// @@ -128,7 +139,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; - + /// /// ToolbarText1 控件。 /// @@ -137,7 +148,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -146,7 +157,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -155,7 +166,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// WindowAtt 控件。 /// @@ -164,7 +175,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowAtt; - + /// /// Menu1 控件。 /// @@ -173,7 +184,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuEdit 控件。 /// @@ -182,7 +193,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuEdit; - + /// /// btnMenuDelete 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx index 79b9f6df..015698e7 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx @@ -38,7 +38,8 @@ + + diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs index 0532f26f..1fcbfec5 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs @@ -1,10 +1,13 @@ using BLL; +using BLL.Common; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; using System.Text; +using ThoughtWorks.QRCode.Codec; using AspNet = System.Web.UI.WebControls; namespace FineUIPro.Web.HSSE.QualityAudit @@ -50,7 +53,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) { Grid1.PageSize = this.CurrUser.PageSize.Value; - } + } this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); // 绑定表格 this.BindGrid(); @@ -109,7 +112,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; - + var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); @@ -265,11 +268,134 @@ namespace FineUIPro.Web.HSSE.QualityAudit Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("一般机具设备资质" + filename, System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; - this.Grid1.PageSize = this.Grid1.RecordCount; + this.Grid1.PageSize = this.Grid1.RecordCount; BindGrid(); Response.Write(GetGridTableHtml(Grid1)); Response.End(); } #endregion + + + + + + protected void btnQR_Click(object sender, EventArgs e) + { + string strSql = @"SELECT GeneralEquipmentQuality.GeneralEquipmentQualityId," + + @"CodeRecords.Code AS GeneralEquipmentQualityCode," + + @"GeneralEquipmentQuality.GeneralEquipmentQualityCode," + + @"GeneralEquipmentQuality.QRCodeAttachUrl," + + @"SpecialEquipment.SpecialEquipmentName" + + @" FROM QualityAudit_GeneralEquipmentQuality AS GeneralEquipmentQuality " + + @" LEFT JOIN Base_SpecialEquipment AS SpecialEquipment ON SpecialEquipment.SpecialEquipmentId = GeneralEquipmentQuality.SpecialEquipmentId " + + @" LEFT JOIN Sys_CodeRecords AS CodeRecords ON GeneralEquipmentQuality.GeneralEquipmentQualityId = CodeRecords.DataId WHERE 1=1 "; + List listStr = new List(); + if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) + { + strSql += " AND GeneralEquipmentQuality.ProjectId = @ProjectId"; + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + } + if (BLL.ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(this.ProjectId, this.CurrUser.UnitId)) + { + strSql += " AND GeneralEquipmentQuality.UnitId = @UnitId"; ///状态为已完成 + listStr.Add(new SqlParameter("@UnitId", this.CurrUser.UnitId)); + } + if (!string.IsNullOrEmpty(this.txtGeneralEquipmentQualityCode.Text.Trim())) + { + strSql += " AND GeneralEquipmentQualityCode LIKE @GeneralEquipmentQualityCode"; + listStr.Add(new SqlParameter("@GeneralEquipmentQualityCode", "%" + this.txtGeneralEquipmentQualityCode.Text.Trim() + "%")); + } + if (!string.IsNullOrEmpty(this.txtUnitName.Text.Trim())) + { + strSql += " AND UnitName LIKE @UnitName"; + listStr.Add(new SqlParameter("@UnitName", "%" + this.txtUnitName.Text.Trim() + "%")); + } + if (!string.IsNullOrEmpty(this.txtSpecialEquipmentName.Text.Trim())) + { + strSql += " AND SpecialEquipmentName LIKE @SpecialEquipmentName"; + listStr.Add(new SqlParameter("@SpecialEquipmentName", "%" + this.txtSpecialEquipmentName.Text.Trim() + "%")); + } + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + + NPOIExcel excel = new NPOIExcel(); + excel.SetColumnWidth(0, 50); + excel.SetColumnWidth(1, 50); + excel.SetColumnWidth(2, 50); + for (int i = 0; i < tb.Rows.Count; i++) + { + if (i % 3 == 0) + { + excel.SetRowHeight(2 * (int)(i / 3), 200); + } + string QRCodeAttachUrl = tb.Rows[i]["QRCodeAttachUrl"].ToString(); + string GeneralEquipmentQualityCode = tb.Rows[i]["GeneralEquipmentQualityCode"].ToString(); + if (string.IsNullOrEmpty(QRCodeAttachUrl)) + { + try + { + var equipmentQuality = Funs.DB.QualityAudit_GeneralEquipmentQuality.FirstOrDefault(x => x.GeneralEquipmentQualityId == tb.Rows[i]["GeneralEquipmentQualityId"].ToString()); + equipmentQuality.QRCodeAttachUrl = CreateCode_Simple("equipment$" + tb.Rows[i]["GeneralEquipmentQualityId"].ToString()); + QRCodeAttachUrl = equipmentQuality.QRCodeAttachUrl; + Funs.DB.SubmitChanges(); + } + catch (Exception e1) { } + } + //add picture data to this workbook. + excel.SetPicValue(2 * (int)(i / 3), i % 3, Server.MapPath("~/") + QRCodeAttachUrl); + excel.SetValue(2 * (int)(i / 3) + 1, i % 3, GeneralEquipmentQualityCode); + } + string initTemplatePath = Const.ExcelUrl + Funs.GetNewFileName() + ".xls"; + string uploadfilepath = Server.MapPath("~/") + initTemplatePath; + string fileName = Path.GetFileName(initTemplatePath); + excel.Save(uploadfilepath); + FileInfo info = new FileInfo(uploadfilepath); + + 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(uploadfilepath, 0, fileSize); + Response.Flush(); + Response.End(); + + + + } + private string CreateCode_Simple(string nr) + { + try + { + string imageUrl = string.Empty; + QRCodeEncoder qrCodeEncoder = new QRCodeEncoder + { + QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE, + QRCodeScale = nr.Length, + QRCodeVersion = 0, + QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M + }; + System.Drawing.Image image = qrCodeEncoder.Encode(nr, Encoding.UTF8); + string filepath = Server.MapPath("~/") + UploadFileService.QRCodeImageFilePath; + //如果文件夹不存在,则创建 + if (!Directory.Exists(filepath)) + { + Directory.CreateDirectory(filepath); + } + string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; + imageUrl = filepath + filename; + FileStream fs = new FileStream(imageUrl, FileMode.OpenOrCreate, FileAccess.Write); + image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); + fs.Close(); + image.Dispose(); + return UploadFileService.QRCodeImageFilePath + filename; + } + + catch (Exception ex) + + { + } + return ""; + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.designer.cs index ec16217b..fcba2593 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.HSSE.QualityAudit { - - - public partial class GeneralEquipmentQuality { - +namespace FineUIPro.Web.HSSE.QualityAudit +{ + + + public partial class GeneralEquipmentQuality + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// Toolbar2 控件。 /// @@ -56,7 +58,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar2; - + /// /// txtGeneralEquipmentQualityCode 控件。 /// @@ -65,7 +67,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtGeneralEquipmentQualityCode; - + /// /// txtUnitName 控件。 /// @@ -74,7 +76,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtUnitName; - + /// /// txtSpecialEquipmentName 控件。 /// @@ -83,7 +85,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox txtSpecialEquipmentName; - + /// /// ToolbarFill1 控件。 /// @@ -92,7 +94,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - + /// /// btnNew 控件。 /// @@ -101,7 +103,16 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnNew; - + + /// + /// btnQR 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQR; + /// /// btnOut 控件。 /// @@ -110,7 +121,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnOut; - + /// /// lblNumber 控件。 /// @@ -119,7 +130,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label lblNumber; - + /// /// ToolbarSeparator1 控件。 /// @@ -128,7 +139,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; - + /// /// ToolbarText1 控件。 /// @@ -137,7 +148,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -146,7 +157,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -155,7 +166,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// WindowAtt 控件。 /// @@ -164,7 +175,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowAtt; - + /// /// Menu1 控件。 /// @@ -173,7 +184,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuEdit 控件。 /// @@ -182,7 +193,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuEdit; - + /// /// btnMenuDelete 控件。 /// diff --git a/SGGL/Model/APIItem/HSSE/EquipmentQualityItem.cs b/SGGL/Model/APIItem/HSSE/EquipmentQualityItem.cs index 16689aae..8b1b84da 100644 --- a/SGGL/Model/APIItem/HSSE/EquipmentQualityItem.cs +++ b/SGGL/Model/APIItem/HSSE/EquipmentQualityItem.cs @@ -95,5 +95,13 @@ namespace Model /// 附件 /// public string AttachUrl { get; set; } + /// + /// 是否合格 + /// + public string IsQualified { get; set; } + /// + /// 数量 + /// + public string EquipmentCount { get; set; } } } diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index cf137fd9..8db11614 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -9179,6 +9179,14 @@ namespace Model } } + public System.Data.Linq.Table View_QualityAudit_GeneralEquipmentQuality + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table View_QualityAudit_PersonQuality { get @@ -393032,6 +393040,303 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_QualityAudit_GeneralEquipmentQuality")] + public partial class View_QualityAudit_GeneralEquipmentQuality + { + + private string _GeneralEquipmentQualityId; + + private string _ProjectId; + + private string _GeneralEquipmentQualityCode; + + private string _UnitId; + + private string _UnitName; + + private string _SpecialEquipmentId; + + private string _SpecialEquipmentName; + + private System.Nullable _IsQualified; + + private System.Nullable _EquipmentCount; + + private System.Nullable _InDate; + + private string _Remark; + + private string _CompileMan; + + private string _CompileManName; + + private System.Nullable _CompileDate; + + private string _QRCodeAttachUrl; + + private string _AttachUrl; + + public View_QualityAudit_GeneralEquipmentQuality() + { + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GeneralEquipmentQualityId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string GeneralEquipmentQualityId + { + get + { + return this._GeneralEquipmentQualityId; + } + set + { + if ((this._GeneralEquipmentQualityId != value)) + { + this._GeneralEquipmentQualityId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this._ProjectId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GeneralEquipmentQualityCode", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string GeneralEquipmentQualityCode + { + get + { + return this._GeneralEquipmentQualityCode; + } + set + { + if ((this._GeneralEquipmentQualityCode != value)) + { + this._GeneralEquipmentQualityCode = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string UnitId + { + get + { + return this._UnitId; + } + set + { + if ((this._UnitId != value)) + { + this._UnitId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitName", DbType="NVarChar(200)")] + public string UnitName + { + get + { + return this._UnitName; + } + set + { + if ((this._UnitName != value)) + { + this._UnitName = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecialEquipmentId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string SpecialEquipmentId + { + get + { + return this._SpecialEquipmentId; + } + set + { + if ((this._SpecialEquipmentId != value)) + { + this._SpecialEquipmentId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SpecialEquipmentName", DbType="NVarChar(50)")] + public string SpecialEquipmentName + { + get + { + return this._SpecialEquipmentName; + } + set + { + if ((this._SpecialEquipmentName != value)) + { + this._SpecialEquipmentName = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsQualified", DbType="Bit")] + public System.Nullable IsQualified + { + get + { + return this._IsQualified; + } + set + { + if ((this._IsQualified != value)) + { + this._IsQualified = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EquipmentCount", DbType="Int")] + public System.Nullable EquipmentCount + { + get + { + return this._EquipmentCount; + } + set + { + if ((this._EquipmentCount != value)) + { + this._EquipmentCount = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InDate", DbType="DateTime")] + public System.Nullable InDate + { + get + { + return this._InDate; + } + set + { + if ((this._InDate != value)) + { + this._InDate = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Remark", DbType="NVarChar(500)")] + public string Remark + { + get + { + return this._Remark; + } + set + { + if ((this._Remark != value)) + { + this._Remark = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CompileMan", DbType="NVarChar(50)")] + public string CompileMan + { + get + { + return this._CompileMan; + } + set + { + if ((this._CompileMan != value)) + { + this._CompileMan = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CompileManName", DbType="NVarChar(50)")] + public string CompileManName + { + get + { + return this._CompileManName; + } + set + { + if ((this._CompileManName != value)) + { + this._CompileManName = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CompileDate", DbType="DateTime")] + public System.Nullable CompileDate + { + get + { + return this._CompileDate; + } + set + { + if ((this._CompileDate != value)) + { + this._CompileDate = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QRCodeAttachUrl", DbType="NVarChar(200)")] + public string QRCodeAttachUrl + { + get + { + return this._QRCodeAttachUrl; + } + set + { + if ((this._QRCodeAttachUrl != value)) + { + this._QRCodeAttachUrl = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AttachUrl", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string AttachUrl + { + get + { + return this._AttachUrl; + } + set + { + if ((this._AttachUrl != value)) + { + this._AttachUrl = value; + } + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_QualityAudit_PersonQuality")] public partial class View_QualityAudit_PersonQuality { diff --git a/SGGL/WebAPI/Controllers/HSSE/GeneralEquipmentQualityController.cs b/SGGL/WebAPI/Controllers/HSSE/GeneralEquipmentQualityController.cs new file mode 100644 index 00000000..30335139 --- /dev/null +++ b/SGGL/WebAPI/Controllers/HSSE/GeneralEquipmentQualityController.cs @@ -0,0 +1,160 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; +using BLL; + +namespace WebAPI.Controllers +{ + /// + /// 一般机具设备资质 + /// + public class GeneralEquipmentQualityController : ApiController + { + #region 根据equipmentQualityId获取机具设备资质信息 + /// + /// 根据equipmentQualityId获取机具设备资质信息 + /// + /// + /// + public Model.ResponeData getEquipmentQualityByEquipmentQualityId(string equipmentQualityId) + { + var responeData = new Model.ResponeData(); + try + { + responeData.data = APIGeneralEquipmentQualityService.getEquipmentQualityByEquipmentQualityIdFactoryCode(equipmentQualityId); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + #endregion + + + + #region 根据projectId、unitid获取机具设备资质信息 + /// + /// 根据projectId、unitid获取机具设备资质信息 + /// + /// + /// + /// + /// + public Model.ResponeData getEquipmentQualityByProjectIdUnitId(string projectId, string unitId, int pageIndex) + { + var responeData = new Model.ResponeData(); + try + { + var getDataList = APIGeneralEquipmentQualityService.getEquipmentQualityList(projectId, unitId, null); + int pageCount = getDataList.Count(); + if (pageCount > 0 && pageIndex > 0) + { + getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); + } + responeData.data = new { pageCount, getDataList }; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + #endregion + + #region 根据projectId、unitid获取机具设备资质信息-查询 + /// + /// 根据projectId、unitid获取机具设备资质信息 + /// + /// + /// + /// + /// 查询条件 + /// + public Model.ResponeData getEquipmentQualityByProjectIdUnitIdQuery(string projectId, string unitId, string strParam, int pageIndex) + { + var responeData = new Model.ResponeData(); + try + { + var getDataList = APIGeneralEquipmentQualityService.getEquipmentQualityList(projectId, unitId, strParam); + int pageCount = getDataList.Count(); + if (pageCount > 0 && pageIndex > 0) + { + getDataList = getDataList.Skip(Funs.PageSize * (pageIndex - 1)).Take(Funs.PageSize).ToList(); + } + responeData.data = new { pageCount, getDataList }; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + return responeData; + } + #endregion + + #region 根据projectId、unitid获取特岗机具设备资质资质各状态数 + /// + /// 根据projectId、unitid获取特岗机具设备资质资质各状态数 + /// + /// + /// + /// + public Model.ResponeData getEquipmentQualityCount(string projectId, string unitId) + { + var responeData = new Model.ResponeData(); + try + { + var getDataList = new Model.SGGLDB(Funs.ConnString).QualityAudit_GeneralEquipmentQuality.Where(x => x.ProjectId == projectId); + if (ProjectUnitService.GetProjectUnitTypeByProjectIdUnitId(projectId, unitId)) + { + getDataList = getDataList.Where(x => x.UnitId == unitId); + } + ////总数 + int tatalCount = getDataList.Count(); + + responeData.data = new { tatalCount }; + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + #endregion + + + + #region 保存QualityAudit_EquipmentQuality + /// + /// 保存QualityAudit_EquipmentQuality + /// + /// 机具设备资质 + /// + [HttpPost] + public Model.ResponeData SaveEquipmentQuality([FromBody] Model.EquipmentQualityItem newitem) + { + var responeData = new Model.ResponeData(); + try + { + APIGeneralEquipmentQualityService.SaveEquipmentQuality(newitem); + } + catch (Exception ex) + { + responeData.code = 0; + responeData.message = ex.Message; + } + + return responeData; + } + #endregion + } +} diff --git a/SGGL/WebAPI/WebAPI.csproj b/SGGL/WebAPI/WebAPI.csproj index 43dc784e..47f019c7 100644 --- a/SGGL/WebAPI/WebAPI.csproj +++ b/SGGL/WebAPI/WebAPI.csproj @@ -153,6 +153,7 @@ + From d85160bb0aa241ea81705b87b6a2b3f8c06a7f5c Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Sun, 8 Oct 2023 14:17:29 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DataBase/版本日志/SGGLDB_WH_2023-10-08.sql | 4 ++++ .../HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs | 2 +- .../HSSE/QualityAudit/GeneralEquipmentQualityEdit.aspx.cs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/DataBase/版本日志/SGGLDB_WH_2023-10-08.sql b/DataBase/版本日志/SGGLDB_WH_2023-10-08.sql index 9ae0578d..3b5aaea3 100644 --- a/DataBase/版本日志/SGGLDB_WH_2023-10-08.sql +++ b/DataBase/版本日志/SGGLDB_WH_2023-10-08.sql @@ -25,3 +25,7 @@ LEFT JOIN AttachFile AS a ON a.ToKeyId = equ.GeneralEquipmentQualityId GO + + +update QualityAudit_GeneralEquipmentQuality set QRCodeAttachUrl =NULL +GO \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs index 1fcbfec5..999410a1 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQuality.aspx.cs @@ -335,7 +335,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit try { var equipmentQuality = Funs.DB.QualityAudit_GeneralEquipmentQuality.FirstOrDefault(x => x.GeneralEquipmentQualityId == tb.Rows[i]["GeneralEquipmentQualityId"].ToString()); - equipmentQuality.QRCodeAttachUrl = CreateCode_Simple("equipment$" + tb.Rows[i]["GeneralEquipmentQualityId"].ToString()); + equipmentQuality.QRCodeAttachUrl = CreateCode_Simple("equipments$" + tb.Rows[i]["GeneralEquipmentQualityId"].ToString()); QRCodeAttachUrl = equipmentQuality.QRCodeAttachUrl; Funs.DB.SubmitChanges(); } diff --git a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQualityEdit.aspx.cs b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQualityEdit.aspx.cs index ffed5d21..ed67f390 100644 --- a/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQualityEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/HSSE/QualityAudit/GeneralEquipmentQualityEdit.aspx.cs @@ -215,7 +215,7 @@ namespace FineUIPro.Web.HSSE.QualityAudit this.SaveData(false); } - PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("~/Controls/SeeQRImage.aspx?GeneralEquipmentQualityId={0}&strCode={1}", this.GeneralEquipmentQualityId, "equipment$" + this.GeneralEquipmentQualityId), "二维码查看", 400, 400)); + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("~/Controls/SeeQRImage.aspx?GeneralEquipmentQualityId={0}&strCode={1}", this.GeneralEquipmentQualityId, "equipments$" + this.GeneralEquipmentQualityId), "二维码查看", 400, 400)); } } } \ No newline at end of file