diff --git a/DataBase/版本日志/SGGLDB_V2023-01-03_001.sql b/DataBase/版本日志/SGGLDB_V2023-01-03_001.sql new file mode 100644 index 00000000..64819a75 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2023-01-03_001.sql @@ -0,0 +1,31 @@ + + +ALTER VIEW [dbo].[View_HJGL_WeldingTask] +AS +SELECT T.WeldTaskId,T.WeldJointId,T.CoverWelderId,T.BackingWelderId, + cov.WelderCode AS CoverWelderCode,back.WelderCode AS BackingWelderCode, + case when jot.JointAttribute is not null then jot.JointAttribute else T.JointAttribute end as JointAttribute, + T.WeldingMode,T.ProjectId,T.UnitWorkId,T.UnitId,T.TaskDate,T.Tabler,T.TableDate, + jot.WeldJointCode,jot.Dia,jot.DNDia, jot.Thickness,jot.Size,jot.WeldingLocationId, + CASE WHEN jot.WeldingDailyId IS NULL THEN '' ELSE '' END AS IsWelding, + P.PipelineCode,B.WeldTypeCode,M.WeldingMethodCode,L.WeldingLocationCode, + t.CanWelderCode,t.CanWelderId ,rod.ConsumablesName AS WeldingRodCode,T.CanWeldingRodName,T.CanWeldingWireName, + wire.ConsumablesName AS WeldingWireCode,jot.WeldingDailyId,p.PipeArea, + (case when charindex('/',jot.WeldJointCode)>0 +then RIGHT(jot.WeldJointCode,CHARINDEX('/',REVERSE(jot.WeldJointCode))-1) +else jot.WeldJointCode end) as WeldJointNum +from HJGL_WeldTask T +left join HJGL_WeldJoint jot on T.WeldJointId=jot.WeldJointId +LEFT JOIN dbo.SitePerson_Person cov ON cov.PersonId=t.CoverWelderId +LEFT JOIN dbo.SitePerson_Person back ON back.PersonId=t.BackingWelderId +LEFT join HJGL_Pipeline P on jot.PipelineId=P.PipelineId +left join Base_WeldType B on jot.WeldTypeId=B.WeldTypeId +LEFT join Base_WeldingMethod M on jot.WeldingMethodId=M.WeldingMethodId +left join Base_WeldingLocation L on jot.WeldingLocationId=L.WeldingLocationId +LEFT JOIN Base_Consumables AS wire ON wire.ConsumablesId=jot.WeldingWire +LEFT JOIN Base_Consumables AS rod ON rod.ConsumablesId=jot.WeldingRod + + +GO + + diff --git a/SGGL/BLL/HJGL/WeldingManage/WeldingDailyService.cs b/SGGL/BLL/HJGL/WeldingManage/WeldingDailyService.cs index 029715e1..626db984 100644 --- a/SGGL/BLL/HJGL/WeldingManage/WeldingDailyService.cs +++ b/SGGL/BLL/HJGL/WeldingManage/WeldingDailyService.cs @@ -1,5 +1,9 @@ -using Model; +using Aspose.Words; +using Model; +using System; using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; using System.Linq; namespace BLL @@ -283,7 +287,61 @@ namespace BLL return list; } + public static Dictionary GetFileOutValueById(string WeldingDailyId) + { + var value = new Dictionary(); + string strSql = @" SELECT + PipelineCode as '管线号', + WeldJointCode as '焊口号', + BackingWelderCode as '打底焊工', + CoverWelderCode as '盖面焊工', + Material1Code as '材质1' , + Material2Code as '材质2' , + Dia as '外径' , + DNDia as 'DN公称直径', + Thickness as '壁厚' , + WeldTypeCode as '焊缝类型' , + WeldingMethodCode as '焊接方法' , + WeldingWireCode as '焊丝' , + WeldingMode as '焊口机动化程度' , + WeldingRodCode as '焊条' , + Size as '达因' + FROM dbo.View_HJGL_WeldJoint + WHERE WeldingDailyId=@WeldingDailyId"; + List listStr = new List(); + listStr.Add(new SqlParameter("@WeldingDailyId", WeldingDailyId)); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + var WeldingDailyCode = (from x in Funs.DB.HJGL_WeldingDaily + where x.WeldingDailyId == WeldingDailyId + select x.WeldingDailyCode).FirstOrDefault(); + if (!string.IsNullOrEmpty(WeldingDailyCode)) + { + value.Add(WeldingDailyCode, tb); + } + return value; + } + public static Dictionary GetFileOutValueByUnitWorkId(string UnitWorkId,string Month) + { + var value = new Dictionary(); + var p = from x in Funs.DB.HJGL_WeldingDaily + where x.UnitWorkId == UnitWorkId + && x.WeldingDate < Convert.ToDateTime(Month + "-01").AddMonths(1) + && x.WeldingDate >= Convert.ToDateTime(Month + "-01") + orderby x.WeldingDailyCode descending + select x; + if (p.Count() > 0) + { + foreach (var item in p) + { + var detail = GetFileOutValueById(item.WeldingDailyId); + value.Add(detail.Keys.First(), detail.Values.First()); + + } + } + return value; + } #region 焊接日报下拉项 /// /// 焊接日报下拉项 diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx index eb71d123..f9852200 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx @@ -78,10 +78,14 @@ + + + @@ -90,9 +94,7 @@ - - + @@ -130,6 +132,10 @@ DataField="Dia" FieldType="String" HeaderTextAlign="Center" TextAlign="Center" Width="80px"> + + @@ -189,6 +195,9 @@ + + diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.cs index d500f3ee..8460014d 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.cs @@ -1,8 +1,10 @@ using BLL; +using MiniExcelLibs; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; namespace FineUIPro.Web.HJGL.WeldingManage @@ -81,6 +83,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage tn1.NodeID = q.UnitWorkId; tn1.Text = q.UnitWorkName; tn1.ToolTip = "施工单位:" + u.UnitName; + tn1.CommandName = "UnitWork"; rootNode1.Nodes.Add(tn1); BindNodes(tn1); } @@ -94,6 +97,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage tn2.NodeID = q.UnitWorkId; tn2.Text = q.UnitWorkName; tn2.ToolTip = "施工单位:" + u.UnitName; + tn2.CommandName = "UnitWork"; rootNode2.Nodes.Add(tn2); BindNodes(tn2); } @@ -122,6 +126,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage newNode.Text = item.WeldingDailyCode; newNode.NodeID = item.WeldingDailyId; newNode.EnableClickEvent = true; + newNode.CommandName = "WeldingDaily"; node.Nodes.Add(newNode); } } @@ -185,7 +190,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { string strSql = @"SELECT WeldingDailyId,WeldJointId,PipelineCode,WeldJointCode, BackingWelderCode,CoverWelderCode,Material1Code,Material2Code, - Dia,Thickness,WeldTypeCode,WeldingMethodCode,WeldingWireCode,WeldingMode, + Dia,DNDia,Thickness,WeldTypeCode,WeldingMethodCode,WeldingWireCode,WeldingMode, WeldingRodCode,Size FROM dbo.View_HJGL_WeldJoint WHERE WeldingDailyId=@WeldingDailyId"; @@ -204,7 +209,9 @@ namespace FineUIPro.Web.HJGL.WeldingManage SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); var SumDia = tb.AsEnumerable().Sum(x => x.Field("Size")); + var WelderCount = tb.AsEnumerable().Select(x => x.Field("CoverWelderCode")).ToList().Distinct().Count(); txtSumSize.Text= SumDia.ToString(); + txtTeam.Text = WelderCount.ToString(); // 2.获取当前分页数据 //var table = this.GetPagedDataTable(Grid1, tb1); Grid1.RecordCount = tb.Rows.Count; @@ -496,15 +503,44 @@ namespace FineUIPro.Web.HJGL.WeldingManage protected void btnOut_Click(object sender, EventArgs e) { - Response.ClearContent(); - string filename = txtWeldingDate.Text; - 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.; - BindGrid(); - Response.Write(GetGridTableHtml(Grid1)); - Response.End(); + var value = new Dictionary(); + string filename = ""; + switch (this.tvControlItem.SelectedNode.CommandName) + { + case "UnitWork": + value = BLL.WeldingDailyService.GetFileOutValueByUnitWorkId(this.tvControlItem.SelectedNodeID, this.txtMonth.Text.Trim()); + var unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID); + filename = "焊接日报-" + unitWork.UnitWorkName+ this.txtMonth.Text.Trim()+ ".xlsx"; + break; + case "WeldingDaily": + value = WeldingDailyService.GetFileOutValueById(this.tvControlItem.SelectedNodeID); + var daily = BLL.WeldingDailyService.GetPipeline_WeldingDailyByWeldingDailyId(tvControlItem.SelectedNodeID); + var unitwork = UnitWorkService.getUnitWorkByUnitWorkId(daily.UnitWorkId); + filename = "焊接日报-" + unitwork.UnitWorkName + daily.WeldingDailyCode + ".xlsx"; + break; + } + string path = Funs.RootPath + @"File\Excel\Temp\焊接日报.xlsx"; + path = path.Replace(".xlsx", string.Format("{0:yyyy-MM-dd-HH-mm}", DateTime.Now) + ".xlsx"); + if (value.Count>0) + { + MiniExcel.SaveAs(path, value); + + FileInfo info = new FileInfo(path); + long fileSize = info.Length; + System.Web.HttpContext.Current.Response.Clear(); + System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed"; + System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8)); + System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString()); + System.Web.HttpContext.Current.Response.TransmitFile(path, 0, fileSize); + System.Web.HttpContext.Current.Response.Flush(); + System.Web.HttpContext.Current.Response.Close(); + File.Delete(path); + } + else + { + Alert.ShowInTop("无数据,无法导出!", MessageBoxIcon.Warning); + + } } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.designer.cs index ff8a406c..5ba2b9a0 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReport.aspx.designer.cs @@ -158,6 +158,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.Label txtSumSize; + /// + /// txtTeam 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label txtTeam; + /// /// txtRemark 控件。 /// @@ -203,15 +212,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.ToolbarFill ToolbarFill1; - /// - /// btnOut 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnOut; - /// /// ToolbarSeparator1 控件。 /// @@ -275,6 +275,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.MenuButton btnMenuEdit; + /// + /// btnMenuOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuOut; + /// /// btnMenuDelete 控件。 /// diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReportEdit.aspx b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReportEdit.aspx index 7242e22c..5e42e260 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReportEdit.aspx +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldReportEdit.aspx @@ -162,6 +162,10 @@ DataField="Dia" SortField="Dia" FieldType="Double" HeaderTextAlign="Center" TextAlign="Left" Width="70px"> + + diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 021235c9..92391dcf 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -137968,7 +137968,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Remarks", DbType="NVarChar(1000)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Remarks", DbType="NVarChar(2000)")] public string Remarks { get @@ -138668,7 +138668,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PricingBasis", DbType="VarChar(50)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PricingBasis", DbType="VarChar(200)")] public string PricingBasis { get @@ -138728,7 +138728,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Clause", DbType="NVarChar(1000)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Clause", DbType="NVarChar(2000)")] public string Clause { get @@ -213391,6 +213391,8 @@ namespace Model private System.Nullable _Dia; + private string _DNDia; + private System.Nullable _Thickness; private System.Nullable _Size; @@ -213685,6 +213687,22 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DNDia", DbType="VarChar(50)")] + public string DNDia + { + get + { + return this._DNDia; + } + set + { + if ((this._DNDia != value)) + { + this._DNDia = value; + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Thickness", DbType="Decimal(8,3)")] public System.Nullable Thickness {