2023-01-03 焊接日报增加导出

This commit is contained in:
李鹏飞 2023-01-03 17:00:08 +08:00
parent dc31914fe7
commit fa659582ee
7 changed files with 191 additions and 26 deletions

View File

@ -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

View File

@ -1,5 +1,9 @@
using Model; using Aspose.Words;
using Model;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq; using System.Linq;
namespace BLL namespace BLL
@ -283,7 +287,61 @@ namespace BLL
return list; return list;
} }
public static Dictionary<string, object> GetFileOutValueById(string WeldingDailyId)
{
var value = new Dictionary<string, object>();
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<SqlParameter> listStr = new List<SqlParameter>();
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<string, object> GetFileOutValueByUnitWorkId(string UnitWorkId,string Month)
{
var value = new Dictionary<string, object>();
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 #region
/// <summary> /// <summary>
/// 焊接日报下拉项 /// 焊接日报下拉项

View File

@ -78,10 +78,14 @@
</f:Label> </f:Label>
<f:Label ID="txtSumSize" Label="总达因" runat="server" <f:Label ID="txtSumSize" Label="总达因" runat="server"
LabelWidth="90px" LabelAlign="Right"> LabelWidth="90px" LabelAlign="Right">
</f:Label>
<f:Label ID="txtTeam" Label="班组数" runat="server"
LabelWidth="90px" LabelAlign="Right">
</f:Label> </f:Label>
<f:Label ID="txtRemark" Label="备注" runat="server" <f:Label ID="txtRemark" Label="备注" runat="server"
LabelWidth="90px" LabelAlign="Right"> LabelWidth="90px" LabelAlign="Right">
</f:Label> </f:Label>
</Items> </Items>
</f:Toolbar> </f:Toolbar>
<f:Toolbar ID="Toolbar3" runat="server"> <f:Toolbar ID="Toolbar3" runat="server">
@ -90,9 +94,7 @@
<f:TextBox ID="txtWelderCode" runat="server" Label="焊工号" EmptyText="输入查询条件" LabelAlign="Right" AutoPostBack="true" OnTextChanged="txtTextBox_TextChanged"></f:TextBox> <f:TextBox ID="txtWelderCode" runat="server" Label="焊工号" EmptyText="输入查询条件" LabelAlign="Right" AutoPostBack="true" OnTextChanged="txtTextBox_TextChanged"></f:TextBox>
<f:ToolbarFill ID="ToolbarFill1" runat="server"> <f:ToolbarFill ID="ToolbarFill1" runat="server">
</f:ToolbarFill> </f:ToolbarFill>
<f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Text="导出" Icon="FolderUp"
EnableAjax="false" DisableControlBeforePostBack="false">
</f:Button>
</Items> </Items>
</f:Toolbar> </f:Toolbar>
</Toolbars> </Toolbars>
@ -130,6 +132,10 @@
DataField="Dia" FieldType="String" HeaderTextAlign="Center" DataField="Dia" FieldType="String" HeaderTextAlign="Center"
TextAlign="Center" Width="80px"> TextAlign="Center" Width="80px">
</f:RenderField> </f:RenderField>
<f:RenderField HeaderText="DN公称直径" ColumnID="DNDia"
DataField="DNDia" FieldType="String" HeaderTextAlign="Center"
TextAlign="Center" Width="80px">
</f:RenderField>
<f:RenderField HeaderText="达因" ColumnID="Size" <f:RenderField HeaderText="达因" ColumnID="Size"
DataField="Size" FieldType="String" HeaderTextAlign="Center" DataField="Size" FieldType="String" HeaderTextAlign="Center"
TextAlign="Center" Width="80px"> TextAlign="Center" Width="80px">
@ -189,6 +195,9 @@
<f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" Icon="BulletEdit" EnablePostBack="true" <f:MenuButton ID="btnMenuEdit" OnClick="btnMenuEdit_Click" Icon="BulletEdit" EnablePostBack="true"
runat="server" Text="编辑"> runat="server" Text="编辑">
</f:MenuButton> </f:MenuButton>
<f:MenuButton ID="btnMenuOut" OnClick="btnOut_Click" Icon="FolderUp" EnableAjax="false" DisableControlBeforePostBack="false"
runat="server" Text="导出">
</f:MenuButton>
<f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true" <f:MenuButton ID="btnMenuDelete" OnClick="btnMenuDelete_Click" EnablePostBack="true"
Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Top" Icon="Delete" ConfirmText="删除选中行?" ConfirmTarget="Top"
runat="server" Text="删除"> runat="server" Text="删除">

View File

@ -1,8 +1,10 @@
using BLL; using BLL;
using MiniExcelLibs;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.IO;
using System.Linq; using System.Linq;
namespace FineUIPro.Web.HJGL.WeldingManage namespace FineUIPro.Web.HJGL.WeldingManage
@ -81,6 +83,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
tn1.NodeID = q.UnitWorkId; tn1.NodeID = q.UnitWorkId;
tn1.Text = q.UnitWorkName; tn1.Text = q.UnitWorkName;
tn1.ToolTip = "施工单位:" + u.UnitName; tn1.ToolTip = "施工单位:" + u.UnitName;
tn1.CommandName = "UnitWork";
rootNode1.Nodes.Add(tn1); rootNode1.Nodes.Add(tn1);
BindNodes(tn1); BindNodes(tn1);
} }
@ -94,6 +97,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
tn2.NodeID = q.UnitWorkId; tn2.NodeID = q.UnitWorkId;
tn2.Text = q.UnitWorkName; tn2.Text = q.UnitWorkName;
tn2.ToolTip = "施工单位:" + u.UnitName; tn2.ToolTip = "施工单位:" + u.UnitName;
tn2.CommandName = "UnitWork";
rootNode2.Nodes.Add(tn2); rootNode2.Nodes.Add(tn2);
BindNodes(tn2); BindNodes(tn2);
} }
@ -122,6 +126,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
newNode.Text = item.WeldingDailyCode; newNode.Text = item.WeldingDailyCode;
newNode.NodeID = item.WeldingDailyId; newNode.NodeID = item.WeldingDailyId;
newNode.EnableClickEvent = true; newNode.EnableClickEvent = true;
newNode.CommandName = "WeldingDaily";
node.Nodes.Add(newNode); node.Nodes.Add(newNode);
} }
} }
@ -185,7 +190,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage
{ {
string strSql = @"SELECT WeldingDailyId,WeldJointId,PipelineCode,WeldJointCode, string strSql = @"SELECT WeldingDailyId,WeldJointId,PipelineCode,WeldJointCode,
BackingWelderCode,CoverWelderCode,Material1Code,Material2Code, BackingWelderCode,CoverWelderCode,Material1Code,Material2Code,
Dia,Thickness,WeldTypeCode,WeldingMethodCode,WeldingWireCode,WeldingMode, Dia,DNDia,Thickness,WeldTypeCode,WeldingMethodCode,WeldingWireCode,WeldingMode,
WeldingRodCode,Size WeldingRodCode,Size
FROM dbo.View_HJGL_WeldJoint FROM dbo.View_HJGL_WeldJoint
WHERE WeldingDailyId=@WeldingDailyId"; WHERE WeldingDailyId=@WeldingDailyId";
@ -204,7 +209,9 @@ namespace FineUIPro.Web.HJGL.WeldingManage
SqlParameter[] parameter = listStr.ToArray(); SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
var SumDia = tb.AsEnumerable().Sum(x => x.Field<decimal>("Size")); var SumDia = tb.AsEnumerable().Sum(x => x.Field<decimal>("Size"));
var WelderCount = tb.AsEnumerable().Select(x => x.Field<string>("CoverWelderCode")).ToList().Distinct().Count();
txtSumSize.Text= SumDia.ToString(); txtSumSize.Text= SumDia.ToString();
txtTeam.Text = WelderCount.ToString();
// 2.获取当前分页数据 // 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1); //var table = this.GetPagedDataTable(Grid1, tb1);
Grid1.RecordCount = tb.Rows.Count; Grid1.RecordCount = tb.Rows.Count;
@ -496,15 +503,44 @@ namespace FineUIPro.Web.HJGL.WeldingManage
protected void btnOut_Click(object sender, EventArgs e) protected void btnOut_Click(object sender, EventArgs e)
{ {
Response.ClearContent(); var value = new Dictionary<string, object>();
string filename = txtWeldingDate.Text; string filename = "";
Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("焊接日报" + filename, System.Text.Encoding.UTF8) + ".xls"); switch (this.tvControlItem.SelectedNode.CommandName)
Response.ContentType = "application/excel"; {
Response.ContentEncoding = System.Text.Encoding.UTF8; case "UnitWork":
//this.Grid1.PageSize = this.; value = BLL.WeldingDailyService.GetFileOutValueByUnitWorkId(this.tvControlItem.SelectedNodeID, this.txtMonth.Text.Trim());
BindGrid(); var unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(tvControlItem.SelectedNodeID);
Response.Write(GetGridTableHtml(Grid1)); filename = "焊接日报-" + unitWork.UnitWorkName+ this.txtMonth.Text.Trim()+ ".xlsx";
Response.End(); 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);
}
} }
} }
} }

View File

@ -158,6 +158,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks> /// </remarks>
protected global::FineUIPro.Label txtSumSize; protected global::FineUIPro.Label txtSumSize;
/// <summary>
/// txtTeam 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label txtTeam;
/// <summary> /// <summary>
/// txtRemark 控件。 /// txtRemark 控件。
/// </summary> /// </summary>
@ -203,15 +212,6 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks> /// </remarks>
protected global::FineUIPro.ToolbarFill ToolbarFill1; protected global::FineUIPro.ToolbarFill ToolbarFill1;
/// <summary>
/// btnOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Button btnOut;
/// <summary> /// <summary>
/// ToolbarSeparator1 控件。 /// ToolbarSeparator1 控件。
/// </summary> /// </summary>
@ -275,6 +275,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage
/// </remarks> /// </remarks>
protected global::FineUIPro.MenuButton btnMenuEdit; protected global::FineUIPro.MenuButton btnMenuEdit;
/// <summary>
/// btnMenuOut 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.MenuButton btnMenuOut;
/// <summary> /// <summary>
/// btnMenuDelete 控件。 /// btnMenuDelete 控件。
/// </summary> /// </summary>

View File

@ -162,6 +162,10 @@
DataField="Dia" SortField="Dia" FieldType="Double" HeaderTextAlign="Center" TextAlign="Left" DataField="Dia" SortField="Dia" FieldType="Double" HeaderTextAlign="Center" TextAlign="Left"
Width="70px"> Width="70px">
</f:RenderField> </f:RenderField>
<f:RenderField HeaderText="DN公称直径" ColumnID="DNDia"
DataField="DNDia" SortField="DNDia" FieldType="String" HeaderTextAlign="Center" TextAlign="Left"
Width="70px">
</f:RenderField>
<f:RenderField HeaderText="壁厚" ColumnID="Thickness" <f:RenderField HeaderText="壁厚" ColumnID="Thickness"
DataField="Thickness" SortField="Thickness" FieldType="Double" HeaderTextAlign="Center" DataField="Thickness" SortField="Thickness" FieldType="Double" HeaderTextAlign="Center"
TextAlign="Left" Width="70px"> TextAlign="Left" Width="70px">

View File

@ -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 public string Remarks
{ {
get 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 public string PricingBasis
{ {
get 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 public string Clause
{ {
get get
@ -213391,6 +213391,8 @@ namespace Model
private System.Nullable<decimal> _Dia; private System.Nullable<decimal> _Dia;
private string _DNDia;
private System.Nullable<decimal> _Thickness; private System.Nullable<decimal> _Thickness;
private System.Nullable<decimal> _Size; private System.Nullable<decimal> _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)")] [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Thickness", DbType="Decimal(8,3)")]
public System.Nullable<decimal> Thickness public System.Nullable<decimal> Thickness
{ {