From c45e79932b5e11549fe008621a5c4ef0dcd1ebbc Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Fri, 7 Aug 2026 11:13:22 +0800 Subject: [PATCH] =?UTF-8?q?20260807=20=E6=89=B9=E9=87=8F=E7=94=9F=E6=88=90?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/HJGLDB_DS_2026-08-07_bwj.sql | 22 +++ HJGL_DS/BLL/BLL.csproj | 4 + HJGL_DS/BLL/Common/CreateQRCodeService.cs | 85 ++++++++++ HJGL_DS/BLL/packages.config | 1 + .../File/Fastreport/焊口打印.frx | 156 ++++++++++++++++++ .../HotProessManage/638555165249887899.png | Bin 3555 -> 0 bytes .../HotProessManage/638555165250157901.gif | Bin 879 -> 0 bytes .../HotProessManage/638555165250197900.gif | Bin 1377 -> 0 bytes .../HotProessManage/638555165250247900.gif | Bin 1172 -> 0 bytes .../HotProessManage/638555165250297898.gif | Bin 1430 -> 0 bytes .../639008956132961833_焊口信息导入模板.xls | Bin 478720 -> 0 bytes .../HJGL/WeldingManage/JointInfo.aspx | 6 + .../HJGL/WeldingManage/JointInfo.aspx.cs | 103 ++++++++++++ .../WeldingManage/JointInfo.aspx.designer.cs | 27 +++ HJGL_DS/Model/Model.cs | 24 +++ 15 files changed, 428 insertions(+) create mode 100644 DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql create mode 100644 HJGL_DS/BLL/Common/CreateQRCodeService.cs create mode 100644 HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165249887899.png delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250157901.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250197900.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250247900.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250297898.gif delete mode 100644 HJGL_DS/FineUIPro.Web/FileUpload/WeldMat/QualityCertificate/639008956132961833_焊口信息导入模板.xls diff --git a/DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql b/DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql new file mode 100644 index 0000000..b4c6ac9 --- /dev/null +++ b/DataBase/版本日志/HJGLDB_DS_2026-08-07_bwj.sql @@ -0,0 +1,22 @@ + +alter table HJGL_PW_JointInfo add QRCodeAttachUrl nvarchar(200) +go + +CREATE view [dbo].[View_PrintJointInfo] +as +select joint.JOT_ID, +joint.ProjectId, +joint.ISO_ID, +unit.UnitName, +installation.InstallationName, +iso.ISO_IsoNo, +joint.JOT_JointNo, +joint.JOT_JointDesc, +Steel.STE_Code, +joint.QRCodeAttachUrl +from HJGL_PW_JointInfo as joint +left join HJGL_PW_IsoInfo as iso on iso.ISO_ID = joint.ISO_ID +left join Project_Installation as installation on installation.InstallationId = joint.InstallationId +left join Base_Unit as unit on unit.UnitId = iso.BSU_ID +LEFT JOIN HJGL_BS_Steel AS Steel ON Steel.STE_ID = joint.STE_ID +GO diff --git a/HJGL_DS/BLL/BLL.csproj b/HJGL_DS/BLL/BLL.csproj index 499139d..37b3876 100644 --- a/HJGL_DS/BLL/BLL.csproj +++ b/HJGL_DS/BLL/BLL.csproj @@ -112,6 +112,9 @@ + + ..\packages\ThoughtWorks.QRCode.1.1.0\lib\ThoughtWorks.QRCode.dll + @@ -135,6 +138,7 @@ + diff --git a/HJGL_DS/BLL/Common/CreateQRCodeService.cs b/HJGL_DS/BLL/Common/CreateQRCodeService.cs new file mode 100644 index 0000000..a8a3034 --- /dev/null +++ b/HJGL_DS/BLL/Common/CreateQRCodeService.cs @@ -0,0 +1,85 @@ +using System; +using System.IO; +using System.Text; +using ThoughtWorks.QRCode.Codec; +using System.Web.UI; + +namespace BLL +{ + /// + /// 上传附件相关 + /// + public class CreateQRCodeService + { + /// + /// 生成二维码方法一 + /// + public static string CreateCode_Simple(string nr) + { + string imageUrl = string.Empty; + if (!string.IsNullOrEmpty(nr)) + { + 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 = Funs.RootPath + UploadFileService.QRCodeImageFilePath; + //如果文件夹不存在,则创建 + if (!Directory.Exists(filepath)) + { + Directory.CreateDirectory(filepath); + } + string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; + FileStream fs = new FileStream(filepath + filename, FileMode.OpenOrCreate, FileAccess.Write); + image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); + fs.Close(); + image.Dispose(); + imageUrl= UploadFileService.QRCodeImageFilePath + filename; + } + return imageUrl; + } + + //public static string CreateCode_Simple2(string nr) + //{ + // string imageUrl = string.Empty; + // if (!string.IsNullOrEmpty(nr)) + // { + // 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 = Funs.RootPath + UploadFileService.WelderQRCodeImageFilePath; + // //如果文件夹不存在,则创建 + // if (!Directory.Exists(filepath)) + // { + // Directory.CreateDirectory(filepath); + // } + // string filename = DateTime.Now.ToString("yyyymmddhhmmssfff").ToString() + ".jpg"; + // FileStream fs = new FileStream(filepath + filename, FileMode.OpenOrCreate, FileAccess.Write); + // image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); + // fs.Close(); + // image.Dispose(); + // imageUrl = UploadFileService.WelderQRCodeImageFilePath + filename; + // } + // return imageUrl; + //} + + /// + /// + /// + /// + public static bool isHaveImage(string url) + { + string filepath = Funs.RootPath + url; + return File.Exists(filepath); + } + } +} \ No newline at end of file diff --git a/HJGL_DS/BLL/packages.config b/HJGL_DS/BLL/packages.config index 3816bf3..f5895ec 100644 --- a/HJGL_DS/BLL/packages.config +++ b/HJGL_DS/BLL/packages.config @@ -5,4 +5,5 @@ + \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx b/HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx new file mode 100644 index 0000000..741fb45 --- /dev/null +++ b/HJGL_DS/FineUIPro.Web/File/Fastreport/焊口打印.frx @@ -0,0 +1,156 @@ + + + using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Windows.Forms; +using System.Drawing; +using System.Data; +using FastReport; +using FastReport.Data; +using FastReport.Dialog; +using FastReport.Barcode; +using FastReport.Table; +using FastReport.Utils; + +namespace FastReport +{ + public class ReportScript + { + + /** + private void Table3_ManualBuild(object sender, EventArgs e) + { + // get the data source by its name + DataSourceBase rowData = Report.GetDataSource("Data"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Tabel_Data.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Tabel_Data.PrintColumns(); + + // now enumerate the data source and print the table body + while (rowData.HasMoreRows) + { + // print the table body + Tabel_Data.PrintRow(0); + Tabel_Data.PrintColumns(); + + // go next data source row + rowData.Next(); + } + + + // print the last table row - it is a footer + //Tabel_Data.PrintRow(2); + //Table3.PrintColumns(); + } + + + + private void Table4_ManualBuild(object sender, EventArgs e) + { + DataSourceBase rowData = Report.GetDataSource("Table1"); + // init the data source + rowData.Init(); + + // print the first table row - it is a header + Table4.PrintRow(0); + // each PrintRow call must be followed by either PrintColumn or PrintColumns call + // to print cells on the row + Table4.PrintColumns(); + + // now enumerate the data source and print the table body + + // print the table body + Table4.PrintRow(1); + Table4.PrintColumns(); + Table4.PrintRow(2); + Table4.PrintColumns(); + Table4.PrintRow(3); + Table4.PrintColumns(); + Table4.PrintRow(4); + Table4.PrintColumns(); + Table4.PrintRow(5); + Table4.PrintColumns(); + Table4.PrintRow(6); + Table4.PrintColumns(); + // go next data source row + rowData.Next(); + + } + + private void Table5_ManualBuild(object sender, EventArgs e) + { + Table5.PrintRow(0); + Table5.PrintColumns(); + Table5.PrintRow(1); + Table5.PrintColumns(); + } + **/ + + + + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165249887899.png b/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165249887899.png deleted file mode 100644 index 99bc9414a4ee44261149d6a04655ab5def7ba89f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3555 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 YRwMhR9L<9D=gV@=-r0_P=2FuC0V-|S;{X5v diff --git a/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250157901.gif b/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250157901.gif deleted file mode 100644 index 21f6832a5934837f0f34ee98572ccd72b17a1163..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 879 zcmZ?wbhEHbbYYNUc*el+9|RbH@IM2H17rayAilnH|L(P0m(O24xfh7`msRYackuJl zBcIot{Icon*RtN#LA}SzcK%eW*uVbb>&=(n?78`V|LqTl?tVJ``0Le|Keu0hd;Rs# zE6=~ERjgL)Jr=a~uG;+byI=oY{`%+D`wuVQy?^@o^Yy!T?!9+?<&|C6U*9d?RIy~$ zlFaN(kBKf(6%h$Vas8*;V`m4K9?Cj;|6tC#xa+UaU%z>^dtu1L=_P-^AN&3w=KH<$ z!}}ILJsI-uYW?TyRUa-_+`F*&)#<{kr`Jwyj{Es|^Xg8g+q=ploFon}&1*~6K0VX- z`N8gs+b912{BVDj)Sbm4AFggJE6ln%!)tH1&*2uktBcZqo&?H1U7n)w^Z3-;8(aTA zJbL}~@#hv6pFe;8`0?ZW_wOG+etiG_{kwPXUb=MY+_`hdj~_pH@Zj#=3MsD_;x%1{PSh#4hoQ$-r#5BnzYu2t?BehaqcKz0ETV-3Mx9{1zKw3h4*7n4G z$CkG3EjWIxeXV6iW@c7)UT9(7J}!kjcke2yEIzj;BPl8Q#fy~u1v=dKJ}A%T5|QIn zlH>T4ApCIA<0Y3mIvoU!wF)m$_ z#CvLOe6}BEbF5ml!Zex3uHwOib|J0k6&4?tyiYmo%lWF(>F23b4YOpkS(eT!9Fx>T z_N6@ZoD{v6C3N@0-{}iOrH%LwE#o+J*nOf-q|b*b&l^|RF4Q?AvE+$Jx!%!rYhor? z9xmbNm$Pm0Ir)*(F>J?srLYaRh2Cq3n0}Mf{IvbJfOd=f&bJ}ggVPK9Tvx70WbT@@ zY1-O55g$*+h84)gXs7)-xneoLY1)ebCRUFuDcy_}7yew{9P@aK?ag;v79HzV30&h* z*p$lND{T-};P)rWDJ*Zp`$<)f`#i;UBX)!+$~zz9PTQu$tGso|Nl`WR2frUFWKRG0 ze=&nGcLPh)q;46BjDQDCaz}zV*=C$M{-AF8lAul*`2>cOZ8BvyPN+;}VPdcb00%R| A;{X5v diff --git a/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250197900.gif b/HJGL_DS/FineUIPro.Web/FileUpload/HJGL/HotProessManage/638555165250197900.gif deleted file mode 100644 index 3da3cfee85bb029b3c6a721895a18be4a57d38b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1377 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 diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx index 1c3ed49..2b82106 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx @@ -124,6 +124,12 @@ + + + + + diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs index bee5856..65cb2a1 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.cs @@ -1538,5 +1538,108 @@ namespace FineUIPro.Web.HJGL.WeldingManage ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } + + /// + /// 批量生成二维码 + /// + /// + /// + protected void btnQR_Click(object sender, EventArgs e) + { + Model.SGGLDB db = Funs.DB; + var p = db.HJGL_PW_IsoInfo.Where(x => x.ISO_ID == this.tvControlItem.SelectedNodeID).FirstOrDefault(); + if (p != null) + { + var getJoints = from x in db.HJGL_PW_JointInfo + where x.ProjectId == this.ProjectId && x.ISO_ID == this.tvControlItem.SelectedNodeID + select x; + int num = 0; + if (getJoints.Any()) + { + foreach (var item in getJoints) + { + string url = CreateQRCodeService.CreateCode_Simple(item.JOT_ID); + if (!string.IsNullOrEmpty(url)) + { + item.QRCodeAttachUrl = url; + num++; + } + } + db.SubmitChanges(); + } + ShowNotify("操作完成,新生成二维码" + num.ToString() + "条", MessageBoxIcon.Success); + } + else + { + Alert.ShowInTop("请选择一条管线!", MessageBoxIcon.Warning); + return; + } + } + + #region 打印二维码 + protected void btnPrintJoint_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID)) + { + string initTemplatePath = ""; + string rootPath = Server.MapPath("~/"); + BLL.Common.FastReportService.ResetData(); + + Dictionary keyValuePairs = new Dictionary(); + //keyValuePairs.Add("ProjectName", projectName); + BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs); + + string strSql = "select * from View_PrintJointInfo where ProjectId=@projectId and ISO_ID =@isoId"; + + List listStr = new List + { + new SqlParameter("@projectId", this.CurrUser.LoginProjectId), + new SqlParameter("@isoId", this.tvControlItem.SelectedNodeID), + }; + + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + + DataTable dt = new DataTable(); + dt.TableName = "Table1"; + dt.Columns.Add("UnitName"); + dt.Columns.Add("WorkAreaCode"); + dt.Columns.Add("ISO_IsoNo"); + dt.Columns.Add("JOT_JointNo"); + dt.Columns.Add("JOT_JointDesc"); + dt.Columns.Add("STE_Code"); + dt.Columns.Add("QRCodeAttachUrl"); + + DataView dv = tb.DefaultView;//获取表视图 + dv.Sort = "JOT_JointNo ASC";//按照ID排序 + tb = dv.ToTable();//转为表 + DataRow[] rows = tb.DefaultView.ToTable().Select(); + foreach (var row in rows) + { + var newRow = dt.NewRow(); + newRow["ISO_IsoNo"] = row["ISO_IsoNo"].ToString(); + newRow["UnitName"] = row["UnitName"].ToString(); + newRow["WorkAreaCode"] = row["InstallationName"].ToString(); + newRow["JOT_JointNo"] = row["JOT_JointNo"].ToString(); + newRow["JOT_JointDesc"] = row["JOT_JointDesc"].ToString(); + newRow["STE_Code"] = row["STE_Code"].ToString(); + newRow["QRCodeAttachUrl"] = Funs.RootPath + row["QRCodeAttachUrl"].ToString(); + dt.Rows.Add(newRow); + } + BLL.Common.FastReportService.AddFastreportTable(dt); + initTemplatePath = "File\\Fastreport\\焊口打印.frx"; + + if (File.Exists(rootPath + initTemplatePath)) + { + PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../../common/ReportPrint/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath))); + } + } + else + { + Alert.ShowInTop("请选择要打印的管线!", MessageBoxIcon.Warning); + return; + } + } + #endregion } } \ No newline at end of file diff --git a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs index 9ab0cdc..37abab8 100644 --- a/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs +++ b/HJGL_DS/FineUIPro.Web/HJGL/WeldingManage/JointInfo.aspx.designer.cs @@ -365,6 +365,33 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.RadioButtonList rbHotProessResult; + /// + /// ToolbarFill3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill3; + + /// + /// btnQR 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQR; + + /// + /// btnPrintJoint 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPrintJoint; + /// /// Toolbar5 控件。 /// diff --git a/HJGL_DS/Model/Model.cs b/HJGL_DS/Model/Model.cs index 614c7b9..31e79bb 100644 --- a/HJGL_DS/Model/Model.cs +++ b/HJGL_DS/Model/Model.cs @@ -48941,6 +48941,8 @@ namespace Model private string _Y2; + private string _QRCodeAttachUrl; + private EntityRef _HJGL_BO_BatchDetail; private EntitySet _HJGL_BO_PreWeldReportMain; @@ -49201,6 +49203,8 @@ namespace Model partial void OnX2Changed(); partial void OnY2Changing(string value); partial void OnY2Changed(); + partial void OnQRCodeAttachUrlChanging(string value); + partial void OnQRCodeAttachUrlChanged(); #endregion public HJGL_PW_JointInfo() @@ -51303,6 +51307,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QRCodeAttachUrl", DbType="NVarChar(200)")] + public string QRCodeAttachUrl + { + get + { + return this._QRCodeAttachUrl; + } + set + { + if ((this._QRCodeAttachUrl != value)) + { + this.OnQRCodeAttachUrlChanging(value); + this.SendPropertyChanging(); + this._QRCodeAttachUrl = value; + this.SendPropertyChanged("QRCodeAttachUrl"); + this.OnQRCodeAttachUrlChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_BO_BatchDetail_HJGL_PW_JointInfo", Storage="_HJGL_BO_BatchDetail", ThisKey="JOT_ID", OtherKey="JOT_ID", IsUnique=true, IsForeignKey=false, DeleteRule="NO ACTION")] public HJGL_BO_BatchDetail HJGL_BO_BatchDetail {