From 950fc49cf898e6a6c620fc9152242133b7e400c5 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 20 May 2026 17:17:38 +0800 Subject: [PATCH 01/11] 1 --- DataBase/版本日志/SGGLDB_V2026-05-19-gf.sql | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/DataBase/版本日志/SGGLDB_V2026-05-19-gf.sql b/DataBase/版本日志/SGGLDB_V2026-05-19-gf.sql index 087bc6ba..2e89698a 100644 --- a/DataBase/版本日志/SGGLDB_V2026-05-19-gf.sql +++ b/DataBase/版本日志/SGGLDB_V2026-05-19-gf.sql @@ -4,4 +4,13 @@ GO insert into Sys_Menu values('2F027233-22EC-4063-A04F-FB9FE6A91588','ϲֿ',null,'HJGL/BaseInfo/Warehouse.aspx',30,'60F4B988-4D1D-48D6-A959-2EA4BD2978A1','Menu_HJGL',0,1,1) -GO \ No newline at end of file +GO + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('CFDC5365-2050-49F2-B1E5-8E5B7DA2D5DC','2F027233-22EC-4063-A04F-FB9FE6A91588','',1) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('E6303B08-335C-47B5-B1F9-AD2E70068838','2F027233-22EC-4063-A04F-FB9FE6A91588','޸',2) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('F7D6FE99-01C2-465E-8029-CF83BCB1362E','2F027233-22EC-4063-A04F-FB9FE6A91588','ɾ',3) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('DE51285D-5F2C-4122-BD80-C8CC2A68D027','2F027233-22EC-4063-A04F-FB9FE6A91588','',4) + GO \ No newline at end of file From 913b9cdee445b9dd4057d6ad1ee98f69eae82bcd Mon Sep 17 00:00:00 2001 From: fei550 <1420031550@qq.com> Date: Mon, 25 May 2026 14:41:26 +0800 Subject: [PATCH 02/11] =?UTF-8?q?feat(hjgl):=20=E6=8C=89=E8=AF=95=E5=8E=8B?= =?UTF-8?q?=E5=8C=85=E9=87=8D=E6=9E=84=E7=AE=A1=E7=BA=BF=E6=A0=91=E5=B9=B6?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 管线与试压包存在明确业务归属,相关焊接管理页面统一按 “单位工程-试压包-管线”展示和筛选,避免管线在单位工程下直接平铺。 --- DataBase/版本日志/SGGLDB_V2026-05-25-lpf.sql | 1 + SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 2 +- .../DataImport/MaterialInformation.aspx.cs | 157 +++++++++++------- .../HJGL/PreDesign/PrePipeline.aspx.cs | 99 ++++++++--- .../HJGL/WeldingManage/JotTwoDesign.aspx.cs | 138 +++++++++------ .../HJGL/WeldingManage/WeldMatMatch.aspx.cs | 111 +++++++++---- SGGL/FineUIPro.Web/common/Menu_DigData.xml | 63 ++++++- SGGL/FineUIPro.Web/common/Menu_HJGL.xml | 12 +- SGGL/FineUIPro.Web/common/Menu_HTGL.xml | 6 +- SGGL/FineUIPro.Web/common/Menu_JDGL.xml | 6 +- SGGL/FineUIPro.Web/common/Menu_PHTGL.xml | 2 +- SGGL/FineUIPro.Web/common/Menu_ZHGL.xml | 42 ----- 12 files changed, 418 insertions(+), 221 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2026-05-25-lpf.sql diff --git a/DataBase/版本日志/SGGLDB_V2026-05-25-lpf.sql b/DataBase/版本日志/SGGLDB_V2026-05-25-lpf.sql new file mode 100644 index 00000000..d91b7bf3 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-05-25-lpf.sql @@ -0,0 +1 @@ +UPDATE Sys_Menu set SuperMenu ='0' , SortIndex ='14' where MenuId ='1C6F9CA9-FDAC-4CE5-A19C-5536538851E1'; \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 4637a5cb..8bc11dec 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -17034,7 +17034,7 @@ - + diff --git a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs index a4f68d43..ff4ba3b1 100644 --- a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs @@ -90,26 +90,7 @@ namespace FineUIPro.Web.HJGL.DataImport { foreach (var q in unitWork1) { - string strSql = " SELECT DISTINCT [t0].[PipelineId] FROM [dbo].[HJGL_Pipeline] AS [t0]\r\nleft JOIN [dbo].[HJGL_PipeLineMat] AS [t1] ON [t0].[PipelineId] = [t1].[PipelineId]"; - strSql += "where [t0].[UnitWorkId] =@UnitWorkId "; - List listStr = new List(); - listStr.Add(new SqlParameter("@UnitWorkId", q.UnitWorkId)); - - if (!string.IsNullOrEmpty(txtMaterialCode.Text.Trim())) - { - strSql += " and [t1].[MaterialCode] like @MaterialCode"; - listStr.Add(new SqlParameter("@MaterialCode", "%" + txtMaterialCode.Text.Trim() + "%")); - - } - if (!string.IsNullOrEmpty(tvPipeCode.Text.Trim())) - { - strSql += " and [t0].[PipelineCode] like @PipelineCode"; - listStr.Add(new SqlParameter("@PipelineCode", "%" + tvPipeCode.Text.Trim() + "%")); - - } - SqlParameter[] parameter = listStr.ToArray(); - DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); - var a = dt.Rows.Count; + var a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); //int a = (from x in DBpipeline // join y in dbpipeLineMat on x.PipelineId equals y.PipelineId @@ -121,16 +102,13 @@ namespace FineUIPro.Web.HJGL.DataImport tn1.NodeID = q.UnitWorkId; tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; tn1.ToolTip = "施工单位:" + unitNamesUnitIds; - tn1.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn1.CommandName = "单位工程"; tn1.EnableExpandEvent = true; + tn1.EnableClickEvent = true; rootNode1.Nodes.Add(tn1); if (a > 0) { - // BindNodes(tn1); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn1.Nodes.Add(newNode); + BindTestPackageNodes(tn1); } } } @@ -139,27 +117,7 @@ namespace FineUIPro.Web.HJGL.DataImport foreach (var q in unitWork2) { - string strSql = " SELECT DISTINCT [t0].[PipelineId] FROM [dbo].[HJGL_Pipeline] AS [t0]\r\nleft JOIN [dbo].[HJGL_PipeLineMat] AS [t1] ON [t0].[PipelineId] = [t1].[PipelineId]"; - strSql += "where [t0].[UnitWorkId] =@UnitWorkId "; - List listStr = new List(); - listStr.Add(new SqlParameter("@UnitWorkId", q.UnitWorkId)); - - if (!string.IsNullOrEmpty(txtMaterialCode.Text.Trim())) - { - strSql += " and [t1].[MaterialCode] like @MaterialCode"; - listStr.Add(new SqlParameter("@MaterialCode", "%" + txtMaterialCode.Text.Trim() + "%")); - - } - if (!string.IsNullOrEmpty(tvPipeCode.Text.Trim())) - { - strSql += " and [t0].[PipelineCode] like @PipelineCode"; - listStr.Add(new SqlParameter("@PipelineCode", "%" + tvPipeCode.Text.Trim() + "%")); - - } - SqlParameter[] parameter = listStr.ToArray(); - DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter); - - var a = dt.Rows.Count; + var a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); //var b = (from x in Funs.DB.HJGL_Pipeline // join y in Funs.DB.HJGL_PipeLineMat on x.PipelineId equals y.PipelineId @@ -184,18 +142,14 @@ namespace FineUIPro.Web.HJGL.DataImport // tn2.Expanded = true; //} tn2.ToolTip = "施工单位:" + unitNamesUnitIds; - tn2.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn2.CommandName = "单位工程"; tn2.EnableExpandEvent = true; tn2.EnableClickEvent = true; rootNode2.Nodes.Add(tn2); if (a > 0) { - // BindNodes(tn2); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn2.Nodes.Add(newNode); + BindTestPackageNodes(tn2); } } } @@ -205,10 +159,99 @@ namespace FineUIPro.Web.HJGL.DataImport #region 暂不有 private void BindNodes(TreeNode node) { - BLL.PipelineService.BindTreeNodes(node, this.tvPipeCode.Text.Trim(), txtMaterialCode.Text.Trim(), this.CurrUser.LoginProjectId, pageSize); + var pipeline = GetTestPackagePipelineList(node.NodeID); + var hJGL_WeldJoints = (from x in Funs.DB.HJGL_WeldJoint where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); + int pageindex = int.Parse(node.CommandName.Split('|')[0]); + int pageCount = int.Parse(node.CommandName.Split('|')[1]); + if (pageindex <= pageCount) + { + pipeline = pipeline.Skip(pageSize * (pageindex - 1)).Take(pageSize).ToList(); + foreach (var item in pipeline) + { + var jotCount = (from x in hJGL_WeldJoints where x.PipelineId == item.PipelineId select x).Count(); + TreeNode newNode = new TreeNode(); + newNode.Text = item.PipelineCode + "【" + jotCount.ToString() + " " + "焊口" + "】"; + newNode.NodeID = item.PipelineId; + newNode.CommandName = "管线"; + newNode.EnableClickEvent = true; + node.Nodes.Add(newNode); + } + if (pageindex < pageCount) + { + TreeNode newNode = new TreeNode(); + newNode.Text = "加载"; + newNode.NodeID = SQLHelper.GetNewID(); + newNode.CommandName = "加载"; + newNode.Icon = Icon.ArrowDown; + newNode.EnableClickEvent = true; + node.Nodes.Add(newNode); + } + } } #endregion + private int GetUnitWorkTestPackagePipelineCount(string unitWorkId) + { + return (from x in Funs.DB.HJGL_Pipeline + join y in Funs.DB.PTP_PipelineList on x.PipelineId equals y.PipelineId + join z in Funs.DB.PTP_TestPackage on y.PTP_ID equals z.PTP_ID + join m in Funs.DB.HJGL_PipeLineMat.Where(e => e.MaterialCode.Contains(txtMaterialCode.Text.Trim())) + on x.PipelineId equals m.PipelineId into temp + from m in temp.DefaultIfEmpty() + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkId + && z.UnitWorkId == unitWorkId + && x.PipelineCode.Contains(tvPipeCode.Text.Trim()) + && (string.IsNullOrEmpty(txtMaterialCode.Text.Trim()) || m != null) + select x.PipelineId).Distinct().Count(); + } + + private void BindTestPackageNodes(TreeNode unitWorkNode) + { + var testPackages = (from x in Funs.DB.PTP_TestPackage + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkNode.NodeID + orderby x.TestPackageNo + select x).ToList(); + + foreach (var item in testPackages) + { + int pipelineCount = GetTestPackagePipelineList(item.PTP_ID).Count(); + if (pipelineCount == 0) + { + continue; + } + + TreeNode newNode = new TreeNode(); + newNode.Text = (string.IsNullOrEmpty(item.TestPackageNo) ? "未知" : item.TestPackageNo) + "【" + pipelineCount.ToString() + "】管线"; + newNode.NodeID = item.PTP_ID; + newNode.CommandName = 1 + "|" + Funs.GetEndPageNumber(pipelineCount, pageSize); + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + unitWorkNode.Nodes.Add(newNode); + + TreeNode loadNode = new TreeNode(); + loadNode.Text = "加载管线..."; + loadNode.NodeID = "加载管线..."; + newNode.Nodes.Add(loadNode); + } + } + + private List GetTestPackagePipelineList(string ptpId) + { + return (from x in Funs.DB.HJGL_Pipeline + join y in Funs.DB.PTP_PipelineList on x.PipelineId equals y.PipelineId + join m in Funs.DB.HJGL_PipeLineMat.Where(e => e.MaterialCode.Contains(txtMaterialCode.Text.Trim())) + on x.PipelineId equals m.PipelineId into temp + from m in temp.DefaultIfEmpty() + where y.PTP_ID == ptpId + && x.ProjectId == this.CurrUser.LoginProjectId + && x.PipelineCode.Contains(tvPipeCode.Text.Trim()) + && (string.IsNullOrEmpty(txtMaterialCode.Text.Trim()) || m != null) + orderby x.PipelineCode + select x).Distinct().ToList(); + } + protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { if (e.Node.Nodes[0].NodeID == "加载管线...") @@ -246,7 +289,7 @@ namespace FineUIPro.Web.HJGL.DataImport this.hdUnitWorkId.Text = string.Empty; if (pipeline != null) { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + this.hdUnitWorkId.Text = pipeline.UnitWorkId; this.BindGrid1(this.tvControlItem.SelectedNodeID, this.hdUnitWorkId.Text); this.BindGrid2(this.tvControlItem.SelectedNodeID, this.hdUnitWorkId.Text); @@ -696,7 +739,7 @@ namespace FineUIPro.Web.HJGL.DataImport protected void TabStrip1_TabIndexChanged(object sender, EventArgs e) { string pipelineid = ""; - if (this.tvControlItem.SelectedNode != null && this.tvControlItem.SelectedNode.CommandName != "单位工程") + if (this.tvControlItem.SelectedNode != null && this.tvControlItem.SelectedNode.CommandName == "管线") { pipelineid = this.tvControlItem.SelectedNodeID; } @@ -1021,4 +1064,4 @@ namespace FineUIPro.Web.HJGL.DataImport } } -} \ No newline at end of file +} diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs index 416882b3..219cbb56 100644 --- a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs @@ -89,23 +89,19 @@ namespace FineUIPro.Web.HJGL.PreDesign { foreach (var q in unitWork1) { - int a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipeArea == "1" && x.PipelineCode.Contains(txtPipelineCode.Text.Trim()) select x).Count(); + int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); TreeNode tn1 = new TreeNode(); tn1.NodeID = q.UnitWorkId; tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; tn1.ToolTip = "施工单位:" + unitNamesUnitIds; - tn1.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn1.CommandName = "单位工程"; tn1.EnableClickEvent = true; tn1.EnableExpandEvent = true; rootNode1.Nodes.Add(tn1); if (a > 0) { - // BindNodes(tn1); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn1.Nodes.Add(newNode); + BindTestPackageNodes(tn1); } //if (a > 0) //{ @@ -117,7 +113,7 @@ namespace FineUIPro.Web.HJGL.PreDesign { foreach (var q in unitWork2) { - int a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipeArea == "1" && x.PipelineCode.Contains(txtPipelineCode.Text.Trim()) select x).Count(); + int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); TreeNode tn2 = new TreeNode(); tn2.NodeID = q.UnitWorkId; @@ -127,17 +123,13 @@ namespace FineUIPro.Web.HJGL.PreDesign tn2.Expanded = true; } tn2.ToolTip = "施工单位:" + unitNamesUnitIds; - tn2.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn2.CommandName = "单位工程"; tn2.EnableClickEvent = true; tn2.EnableExpandEvent = true; rootNode2.Nodes.Add(tn2); if (a > 0) { - // BindNodes(tn1); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn2.Nodes.Add(newNode); + BindTestPackageNodes(tn2); } //if (a > 0) //{ @@ -152,10 +144,11 @@ namespace FineUIPro.Web.HJGL.PreDesign List pipeline = new List(); var pipelines = from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.PipeArea == "1" select x; pipeline = (from x in pipelines - where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == node.NodeID + join y in Funs.DB.PTP_PipelineList on x.PipelineId equals y.PipelineId + where y.PTP_ID == node.NodeID && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) orderby x.PipelineCode - select x).ToList(); + select x).Distinct().ToList(); int pageindex = int.Parse(node.CommandName.Split('|')[0]); int pageCount = int.Parse(node.CommandName.Split('|')[1]); if (pageindex <= pageCount) @@ -187,6 +180,61 @@ namespace FineUIPro.Web.HJGL.PreDesign } + + private int GetUnitWorkTestPackagePipelineCount(string unitWorkId) + { + return (from x in Funs.DB.HJGL_Pipeline + join y in Funs.DB.PTP_PipelineList on x.PipelineId equals y.PipelineId + join z in Funs.DB.PTP_TestPackage on y.PTP_ID equals z.PTP_ID + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkId + && z.UnitWorkId == unitWorkId + && x.PipeArea == "1" + && x.PipelineCode.Contains(txtPipelineCode.Text.Trim()) + select x.PipelineId).Distinct().Count(); + } + + private void BindTestPackageNodes(TreeNode unitWorkNode) + { + var testPackages = (from x in Funs.DB.PTP_TestPackage + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkNode.NodeID + orderby x.TestPackageNo + select x).ToList(); + + foreach (var item in testPackages) + { + int pipelineCount = GetTestPackagePipelineCount(item.PTP_ID); + if (pipelineCount == 0) + { + continue; + } + + TreeNode newNode = new TreeNode(); + newNode.Text = (string.IsNullOrEmpty(item.TestPackageNo) ? "未知" : item.TestPackageNo) + "【" + pipelineCount.ToString() + "】管线"; + newNode.NodeID = item.PTP_ID; + newNode.CommandName = 1 + "|" + Funs.GetEndPageNumber(pipelineCount, pageSize); + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + unitWorkNode.Nodes.Add(newNode); + + TreeNode loadNode = new TreeNode(); + loadNode.Text = "加载管线..."; + loadNode.NodeID = "加载管线..."; + newNode.Nodes.Add(loadNode); + } + } + + private int GetTestPackagePipelineCount(string ptpId) + { + return (from x in Funs.DB.HJGL_Pipeline + join y in Funs.DB.PTP_PipelineList on x.PipelineId equals y.PipelineId + where y.PTP_ID == ptpId + && x.ProjectId == this.CurrUser.LoginProjectId + && x.PipeArea == "1" + && x.PipelineCode.Contains(txtPipelineCode.Text.Trim()) + select x.PipelineId).Distinct().Count(); + } #endregion protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { @@ -205,20 +253,26 @@ namespace FineUIPro.Web.HJGL.PreDesign /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { - if (e.CommandName.Split('|').Length == 2) + if (e.CommandName == "单位工程") { this.hdUnitWorkId.Text = this.tvControlItem.SelectedNodeID; WeldingDailyService.InitDownListByUnitWortId(drpWeldingDailyCode, true, this.tvControlItem.SelectedNodeID); } + else if (e.CommandName.Split('|').Length == 2) + { + this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + + WeldingDailyService.InitDownListByUnitWortId(drpWeldingDailyCode, true, this.hdUnitWorkId.Text); + } else if (e.CommandName == "管线") { Model.HJGL_Pipeline pipeline = BLL.PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID); this.hdUnitWorkId.Text = string.Empty; if (pipeline != null) { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + this.hdUnitWorkId.Text = pipeline.UnitWorkId; } } else if (e.CommandName == "加载") @@ -255,12 +309,17 @@ namespace FineUIPro.Web.HJGL.PreDesign List listStr = new List(); - if (tvControlItem.SelectedNode.CommandName.Split('|').Length == 2) + if (tvControlItem.SelectedNode.CommandName == "单位工程") { strSql += " and pipe.UnitWorkId =@UnitWorkId"; listStr.Add(new SqlParameter("@UnitWorkId", this.tvControlItem.SelectedNodeID)); } + else if (tvControlItem.SelectedNode.CommandName.Split('|').Length == 2) + { + strSql += " and exists(select 1 from PTP_PipelineList ptpPipe where ptpPipe.PipelineId = pipe.PipelineId and ptpPipe.PTP_ID = @PTP_ID)"; + listStr.Add(new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID)); + } else if (tvControlItem.SelectedNode.CommandName == "管线") { strSql += " and com.PipelineId = @PipelineId "; @@ -708,4 +767,4 @@ if (!string.IsNullOrEmpty(drpFlowingSection.SelectedValue) && drpFlowingSection. } } -} \ No newline at end of file +} diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/JotTwoDesign.aspx.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/JotTwoDesign.aspx.cs index ccae6c1a..fbfcbb9a 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/JotTwoDesign.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/JotTwoDesign.aspx.cs @@ -86,31 +86,24 @@ namespace FineUIPro.Web.HJGL.WeldingManage int a = 0; if (cbAllPipeline.Checked) { - a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) select x).Count(); + a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); } else { - a = (from x in Funs.DB.HJGL_Pipeline - where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) - && (from y in Funs.DB.HJGL_WeldJoint where y.PipelineId == x.PipelineId && y.IsTwoJoint == true select y).Count() > 0 - select x).Count(); + a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); } var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); TreeNode tn1 = new TreeNode(); tn1.NodeID = q.UnitWorkId; tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; tn1.ToolTip = "施工单位:" + unitNamesUnitIds; - tn1.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn1.CommandName = "单位工程"; tn1.EnableClickEvent = true; tn1.EnableExpandEvent = true; rootNode1.Nodes.Add(tn1); if (a > 0) { - // BindNodes(tn1); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn1.Nodes.Add(newNode); + BindTestPackageNodes(tn1); } } } @@ -121,14 +114,11 @@ namespace FineUIPro.Web.HJGL.WeldingManage int a = 0; if (cbAllPipeline.Checked) { - a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) select x).Count(); + a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); } else { - a = (from x in Funs.DB.HJGL_Pipeline - where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) - && (from y in Funs.DB.HJGL_WeldJoint where y.PipelineId == x.PipelineId && y.IsTwoJoint == true select y).Count() > 0 - select x).Count(); + a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); } var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); TreeNode tn2 = new TreeNode(); @@ -139,17 +129,13 @@ namespace FineUIPro.Web.HJGL.WeldingManage tn2.Expanded = true; } tn2.ToolTip = "施工单位:" + unitNamesUnitIds; - tn2.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn2.CommandName = "单位工程"; tn2.EnableClickEvent = true; tn2.EnableExpandEvent = true; rootNode2.Nodes.Add(tn2); if (a > 0) { - // BindNodes(tn1); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn2.Nodes.Add(newNode); + BindTestPackageNodes(tn2); } } } @@ -158,27 +144,13 @@ namespace FineUIPro.Web.HJGL.WeldingManage private void BindNodes(TreeNode node) { List pipeline = new List(); - pipeline = (from x in Funs.DB.HJGL_Pipeline - where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == node.NodeID - && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) - orderby x.PipelineCode - select x).ToList(); if (cbAllPipeline.Checked) { - pipeline = (from x in Funs.DB.HJGL_Pipeline - where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == node.NodeID - && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) - orderby x.PipelineCode - select x).ToList(); + pipeline = GetTestPackagePipelineList(node.NodeID); } else { - pipeline = (from x in Funs.DB.HJGL_Pipeline - where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == node.NodeID - && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) - && (from y in Funs.DB.HJGL_WeldJoint where y.PipelineId == x.PipelineId && y.IsTwoJoint == true select y).Count() > 0 - orderby x.PipelineCode - select x).ToList(); + pipeline = GetTestPackagePipelineList(node.NodeID); } var hJGL_WeldJoints = (from x in Funs.DB.HJGL_WeldJoint where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); @@ -224,6 +196,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage newNode.Text = item.PipelineCode + "【" + jotCount.ToString() + " " + "焊口" + "】"; newNode.ToolTip = "管线号【焊口数】"; newNode.NodeID = item.PipelineId; + newNode.CommandName = "管线"; newNode.EnableClickEvent = true; node.Nodes.Add(newNode); } @@ -240,6 +213,65 @@ namespace FineUIPro.Web.HJGL.WeldingManage } } + private int GetUnitWorkTestPackagePipelineCount(string unitWorkId) + { + var testPackages = (from x in Funs.DB.PTP_TestPackage + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkId + select x.PTP_ID).ToList(); + + return testPackages.Select(x => GetTestPackagePipelineList(x).Count()).Sum(); + } + + private void BindTestPackageNodes(TreeNode unitWorkNode) + { + var testPackages = (from x in Funs.DB.PTP_TestPackage + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkNode.NodeID + orderby x.TestPackageNo + select x).ToList(); + + foreach (var item in testPackages) + { + int pipelineCount = GetTestPackagePipelineList(item.PTP_ID).Count(); + if (pipelineCount == 0) + { + continue; + } + + TreeNode newNode = new TreeNode(); + newNode.Text = (string.IsNullOrEmpty(item.TestPackageNo) ? "未知" : item.TestPackageNo) + "【" + pipelineCount.ToString() + "】管线"; + newNode.NodeID = item.PTP_ID; + newNode.CommandName = 1 + "|" + Funs.GetEndPageNumber(pipelineCount, pageSize); + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + unitWorkNode.Nodes.Add(newNode); + + TreeNode loadNode = new TreeNode(); + loadNode.Text = "加载管线..."; + loadNode.NodeID = "加载管线..."; + newNode.Nodes.Add(loadNode); + } + } + + private List GetTestPackagePipelineList(string ptpId) + { + var pipeline = (from x in Funs.DB.HJGL_Pipeline + join y in Funs.DB.PTP_PipelineList on x.PipelineId equals y.PipelineId + where y.PTP_ID == ptpId + && x.ProjectId == this.CurrUser.LoginProjectId + && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) + orderby x.PipelineCode + select x).Distinct().ToList(); + + if (!cbAllPipeline.Checked) + { + pipeline = pipeline.Where(x => (from y in Funs.DB.HJGL_WeldJoint where y.PipelineId == x.PipelineId && y.IsTwoJoint == true select y).Count() > 0).ToList(); + } + + return pipeline; + } + #region 点击TreeView /// /// 点击TreeView @@ -263,12 +295,12 @@ namespace FineUIPro.Web.HJGL.WeldingManage { if (pipeline != null) { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + this.hdUnitWorkId.Text = pipeline.UnitWorkId; this.BindGrid(); } else { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNodeID; + this.hdUnitWorkId.Text = e.CommandName.Split('|').Length == 2 ? this.tvControlItem.SelectedNode.ParentNode.NodeID : this.tvControlItem.SelectedNodeID; NoAuditBindGrid(); } @@ -362,8 +394,16 @@ namespace FineUIPro.Web.HJGL.WeldingManage WHERE IsTwoJoint = 1"; List listStr = new List { }; - strSql += " AND UnitWorkId =@UnitWorkId"; - listStr.Add(new SqlParameter("@UnitWorkId", this.tvControlItem.SelectedNodeID)); + if (this.tvControlItem.SelectedNode.CommandName.Split('|').Length == 2) + { + strSql += " AND EXISTS(SELECT 1 FROM PTP_PipelineList ptpPipe WHERE ptpPipe.PipelineId = View_HJGL_WeldJoint.PipelineId AND ptpPipe.PTP_ID = @PTP_ID)"; + listStr.Add(new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID)); + } + else + { + strSql += " AND UnitWorkId =@UnitWorkId"; + listStr.Add(new SqlParameter("@UnitWorkId", this.tvControlItem.SelectedNodeID)); + } if (!string.IsNullOrEmpty(this.txtWeldJointCode.Text.Trim())) { @@ -417,12 +457,12 @@ namespace FineUIPro.Web.HJGL.WeldingManage this.hdUnitWorkId.Text = string.Empty; if (pipeline != null) { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + this.hdUnitWorkId.Text = pipeline.UnitWorkId; this.BindGrid(); } else { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNodeID; + this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.CommandName.Split('|').Length == 2 ? this.tvControlItem.SelectedNode.ParentNode.NodeID : this.tvControlItem.SelectedNodeID; NoAuditBindGrid(); } @@ -1228,12 +1268,12 @@ namespace FineUIPro.Web.HJGL.WeldingManage this.hdUnitWorkId.Text = string.Empty; if (pipeline != null) { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + this.hdUnitWorkId.Text = pipeline.UnitWorkId; this.BindGrid(); } else { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNodeID; + this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.CommandName.Split('|').Length == 2 ? this.tvControlItem.SelectedNode.ParentNode.NodeID : this.tvControlItem.SelectedNodeID; NoAuditBindGrid(); } } @@ -1244,14 +1284,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage this.hdUnitWorkId.Text = string.Empty; if (pipeline != null) { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + this.hdUnitWorkId.Text = pipeline.UnitWorkId; this.BindGrid(); } else { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNodeID; + this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.CommandName.Split('|').Length == 2 ? this.tvControlItem.SelectedNode.ParentNode.NodeID : this.tvControlItem.SelectedNodeID; NoAuditBindGrid(); } } } -} \ No newline at end of file +} diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.cs index 23e995f0..2c7c3521 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.cs @@ -155,22 +155,20 @@ namespace FineUIPro.Web.HJGL.WeldingManage foreach (var q in unitWork1) { - int a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipeArea == PipeArea && x.WarehouseId == WarehouseId select x).Count(); + int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); TreeNode tn1 = new TreeNode(); tn1.NodeID = q.UnitWorkId; tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; tn1.ToolTip = "施工单位:" + unitNamesUnitIds; - tn1.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn1.CommandName = "单位工程"; tn1.EnableExpandEvent = true; + tn1.EnableClickEvent = true; + tn1.EnableCheckBox = false; rootNode1.Nodes.Add(tn1); if (a > 0) { - // BindNodes(tn1); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn1.Nodes.Add(newNode); + BindTestPackageNodes(tn1); } } } @@ -178,7 +176,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage { foreach (var q in unitWork2) { - int a = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == q.UnitWorkId && x.PipeArea == PipeArea && x.WarehouseId == WarehouseId select x).Count(); + int a = GetUnitWorkTestPackagePipelineCount(q.UnitWorkId); // var NowComPipelineCode = PipelineService.GetNoComPipelinesByUnitWordId(q.UnitWorkId); //int a = NowComPipelineCode.Count(); var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); @@ -190,7 +188,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage tn2.Expanded = true; } tn2.ToolTip = "施工单位:" + unitNamesUnitIds; - tn2.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + tn2.CommandName = "单位工程"; tn2.EnableExpandEvent = true; tn2.EnableClickEvent = true; tn2.EnableCheckBox = false; @@ -198,11 +196,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage rootNode2.Nodes.Add(tn2); if (a > 0) { - // BindNodes(tn2); - TreeNode newNode = new TreeNode(); - newNode.Text = "加载管线..."; - newNode.NodeID = "加载管线..."; - tn2.Nodes.Add(newNode); + BindTestPackageNodes(tn2); } } } @@ -215,22 +209,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage // node.Text += "|" + NowComPipelineCode.Count(); //} - var CompleteInOutPlanDetail_RelationList = from x in Funs.DB.Tw_InOutPlanDetail_Relation - join y in Funs.DB.Tw_InOutPlanMaster on x.InOutPlanMasterId equals y.Id - where y.State == (int)TwConst.State.已完成 && y.WarehouseCode == drpWarehouse.SelectedValue - select x; - - var pipeline = (from x in Funs.DB.HJGL_Pipeline - join y in CompleteInOutPlanDetail_RelationList on x.PipelineId equals y.PipelineId into temp - from y in temp.DefaultIfEmpty() - where y == null && x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == node.NodeID - && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) && x.WarehouseId==WarehouseId - orderby x.PipelineCode - select x).ToList(); - if (!string.IsNullOrEmpty(drpFlowingSection.SelectedValue) && drpFlowingSection.SelectedValue != Const._Null) - { - pipeline = pipeline.Where(x => x.FlowingSection == drpFlowingSection.SelectedValue).ToList(); - } + var pipeline = GetTestPackagePipelineList(node.NodeID); //pipeline= pipeline.Where(x => NowComPipelineCode.Contains(x.PipelineCode)).ToList(); if (!node.Text.Contains("|")) { @@ -268,6 +247,74 @@ namespace FineUIPro.Web.HJGL.WeldingManage } } + private int GetUnitWorkTestPackagePipelineCount(string unitWorkId) + { + var testPackageIds = (from x in Funs.DB.PTP_TestPackage + where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == unitWorkId + select x.PTP_ID).ToList(); + + return testPackageIds.Select(x => GetTestPackagePipelineList(x).Count()).Sum(); + } + + private void BindTestPackageNodes(TreeNode unitWorkNode) + { + var testPackages = (from x in Funs.DB.PTP_TestPackage + where x.ProjectId == this.CurrUser.LoginProjectId + && x.UnitWorkId == unitWorkNode.NodeID + orderby x.TestPackageNo + select x).ToList(); + + foreach (var item in testPackages) + { + int pipelineCount = GetTestPackagePipelineList(item.PTP_ID).Count(); + if (pipelineCount == 0) + { + continue; + } + + TreeNode newNode = new TreeNode(); + newNode.Text = (string.IsNullOrEmpty(item.TestPackageNo) ? "未知" : item.TestPackageNo) + "【" + pipelineCount.ToString() + "】管线"; + newNode.NodeID = item.PTP_ID; + newNode.CommandName = 1 + "|" + Funs.GetEndPageNumber(pipelineCount, pageSize); + newNode.EnableClickEvent = true; + newNode.EnableExpandEvent = true; + newNode.EnableCheckBox = false; + unitWorkNode.Nodes.Add(newNode); + + TreeNode loadNode = new TreeNode(); + loadNode.Text = "加载管线..."; + loadNode.NodeID = "加载管线..."; + loadNode.EnableCheckBox = false; + newNode.Nodes.Add(loadNode); + } + } + + private List GetTestPackagePipelineList(string ptpId) + { + var completeInOutPlanDetailRelationList = from x in Funs.DB.Tw_InOutPlanDetail_Relation + join y in Funs.DB.Tw_InOutPlanMaster on x.InOutPlanMasterId equals y.Id + where y.State == (int)TwConst.State.已完成 && y.WarehouseCode == drpWarehouse.SelectedValue + select x; + + var pipeline = (from x in Funs.DB.HJGL_Pipeline + join p in Funs.DB.PTP_PipelineList on x.PipelineId equals p.PipelineId + join y in completeInOutPlanDetailRelationList on x.PipelineId equals y.PipelineId into temp + from y in temp.DefaultIfEmpty() + where y == null + && p.PTP_ID == ptpId + && x.ProjectId == this.CurrUser.LoginProjectId + && x.PipeArea == PipeArea + && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) + && x.WarehouseId == WarehouseId + orderby x.PipelineCode + select x).ToList(); + if (!string.IsNullOrEmpty(drpFlowingSection.SelectedValue) && drpFlowingSection.SelectedValue != Const._Null) + { + pipeline = pipeline.Where(x => x.FlowingSection == drpFlowingSection.SelectedValue).ToList(); + } + return pipeline.Distinct().ToList(); + } + protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e) { if (e.Node.Nodes[0].NodeID == "加载管线...") @@ -491,7 +538,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage parameter3D.TagNum = ""; parameter3D.ButtonType = "3"; - if (this.tvControlItem.SelectedNode.CommandName.Split('|').Count() == 2) + if (this.tvControlItem.SelectedNode.CommandName == "单位工程") { parameter3D.ModelName = HJGL_DataImportService.Getlatest3DModelNameByUnitWorkId(tvControlItem.SelectedNodeID); var pipeline = (from x in Funs.DB.HJGL_Pipeline @@ -517,7 +564,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage this.hdUnitWorkId.Text = string.Empty; if (pipeline != null) { - this.hdUnitWorkId.Text = this.tvControlItem.SelectedNode.ParentNode.NodeID; + this.hdUnitWorkId.Text = pipeline.UnitWorkId; this.BindGrid(); } diff --git a/SGGL/FineUIPro.Web/common/Menu_DigData.xml b/SGGL/FineUIPro.Web/common/Menu_DigData.xml index b532a9bb..bb7a7a34 100644 --- a/SGGL/FineUIPro.Web/common/Menu_DigData.xml +++ b/SGGL/FineUIPro.Web/common/Menu_DigData.xml @@ -1,9 +1,51 @@  - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -16,12 +58,15 @@ + + + - - - - - + + + + + \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml index 562f836f..b5ac8281 100644 --- a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml @@ -12,14 +12,15 @@ + + - - - + + @@ -28,7 +29,7 @@ - + @@ -62,8 +63,7 @@ - - + diff --git a/SGGL/FineUIPro.Web/common/Menu_HTGL.xml b/SGGL/FineUIPro.Web/common/Menu_HTGL.xml index 95eeab91..129ab5fd 100644 --- a/SGGL/FineUIPro.Web/common/Menu_HTGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_HTGL.xml @@ -1,8 +1,8 @@  - - - + + + diff --git a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml index 8d4aa005..fd6a0762 100644 --- a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml @@ -1,7 +1,11 @@  - + + + + + \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml b/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml index 56efca63..53b0bd32 100644 --- a/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_PHTGL.xml @@ -4,10 +4,10 @@ - + diff --git a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml index 33fbfbf6..bd506a52 100644 --- a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml @@ -58,51 +58,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 9992a3a6d3df8ce2623a77492be7b9f118db8fa0 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Mon, 25 May 2026 15:03:59 +0800 Subject: [PATCH 03/11] 1 --- DataBase/版本日志/SGGLDB_V2026-05-25-gf.sql | 3 ++ SGGL/BLL/CLGL/TwInOutplandetailService.cs | 4 +- .../HJGL/BaseInfo/MaterialCodeLibService.cs | 6 ++- SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx | 11 ++-- .../File/Excel/DataIn/材料入库导入模板.xlsx | Bin 9391 -> 9413 bytes .../HJGL/BaseInfo/MaterialCodeLib.aspx | 8 ++- .../HJGL/BaseInfo/MaterialCodeLibEdit.aspx | 9 +++- .../HJGL/BaseInfo/MaterialCodeLibEdit.aspx.cs | 2 + .../MaterialCodeLibEdit.aspx.designer.cs | 9 ++++ SGGL/Model/CLGL/Tw_InputDataIn.cs | 20 +++++--- SGGL/Model/Model.cs | 48 ++++++++++++++++++ 11 files changed, 105 insertions(+), 15 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2026-05-25-gf.sql diff --git a/DataBase/版本日志/SGGLDB_V2026-05-25-gf.sql b/DataBase/版本日志/SGGLDB_V2026-05-25-gf.sql new file mode 100644 index 00000000..75d4c4f1 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-05-25-gf.sql @@ -0,0 +1,3 @@ +alter table HJGL_MaterialCodeLib add BatchNo nvarchar(50) null +alter table Tw_InOutPlanDetail add BatchNo nvarchar(50) null +GO \ No newline at end of file diff --git a/SGGL/BLL/CLGL/TwInOutplandetailService.cs b/SGGL/BLL/CLGL/TwInOutplandetailService.cs index 077be9c0..0b88df79 100644 --- a/SGGL/BLL/CLGL/TwInOutplandetailService.cs +++ b/SGGL/BLL/CLGL/TwInOutplandetailService.cs @@ -44,6 +44,7 @@ namespace BLL PipelineComponentId = x.PipelineComponentId, MaterialCode = x.MaterialCode, HeatNo = x.HeatNo, + BatchNo = x.BatchNo, PlanNum = x.PlanNum, ActNum = x.ActNum, PipelineComponentCode = y.PipelineComponentCode, @@ -121,7 +122,8 @@ namespace BLL PlanNum = item.PlanNum, ActNum = item.ActNum, SortIndex = sortIndex, - HeatNo = item.HeatNo + HeatNo = item.HeatNo, + BatchNo = item.BatchNo }; sortIndex++; details.Add(table); diff --git a/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs b/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs index bc61976a..129ee9cf 100644 --- a/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs +++ b/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs @@ -30,6 +30,7 @@ { MaterialCode = codeLib.MaterialCode, HeatNo = codeLib.HeatNo, + BatchNo = codeLib.BatchNo, MaterialName = codeLib.MaterialName, MaterialSpec = codeLib.MaterialSpec, MaterialMade = codeLib.MaterialMade, @@ -58,6 +59,7 @@ if (newCodeLib != null) { newCodeLib.HeatNo = codeLib.HeatNo; + newCodeLib.BatchNo = codeLib.BatchNo; newCodeLib.MaterialName = codeLib.MaterialName; newCodeLib.MaterialSpec = codeLib.MaterialSpec; newCodeLib.MaterialMade = codeLib.MaterialMade; @@ -103,9 +105,11 @@ { MaterialCode = item.MaterialCode, HeatNo = item.HeatNo, + BatchNo = item.BatchNo, MaterialName = item.MaterialName, MaterialSpec = item.MaterialSpec, - MaterialUnit = item.MaterialUnit + MaterialUnit = item.MaterialUnit, + MaterialDef = item.MaterialDef, }; details.Add(table); } diff --git a/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx b/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx index faac25eb..8912c95a 100644 --- a/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx +++ b/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx @@ -140,7 +140,7 @@ ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch"> @@ -162,14 +162,17 @@ FieldType="String" HeaderText="材料编码" TextAlign="Left" HeaderTextAlign="Center" > + FieldType="String" HeaderText="炉号" TextAlign="Left" HeaderTextAlign="Center"> + + - <%-- - --%> + diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/材料入库导入模板.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataIn/材料入库导入模板.xlsx index d8da1ea35fd3602c299aaa40491c08df25ead655..e8b790c00f49d428104b300d46de55608dac085d 100644 GIT binary patch delta 2397 zcmV-j38MC|NySO9;s$?rs02Vj0{{TP2LJ#M0001ZY%h0ja%*C5Z)+}iZEU1f-EPw` z6uw8|9U|XniPNTQqorv52^4LpTK98PX>t>Hv6k4uan?)|Z@?``NZj%aNFd&ZUGNqh zCv8V5LS;m)o#W$t`OZ1taSoo9X=2<^nKQwCg!gP@P#%hi@hg8Hot*||8yUGGJR*tU z)JL~8N6)%XpByZNyq*bhZ2$nzeH1H|d6t!jF-=LnCo;;xGZ!)?3QT!r<(Z@;%414Z znplo)x2%*fj%ox??t&raa~9Hp2#b_*Rf9;H5C!z}m}U72Ee&^pONqQLGBXru1`sor zFm+pjA|nmG(G`CelFSkayTq>yfNlYpm7-7`Fc#4TH2Qt$2{UN20lFZVu`m%vnOuYv~#! z%U+RGS1Lh9LUJ{Xn4*!7_Q4bj`mo?4Ll#-DUMdei&QpT2+lIQ{YA z-TmA5_g}wEC(oZBT~1!StZt?O5_rDVG${z0cC z)M>IHH8p?z`u_JcK@`$kX>qKi0r#W95!7QsZlF4#foR#hBS=4PT=GzQ`0}pNv-|sp zhi$Wmn~vFZ9NX*#xMw!{jiA|gTi6czZy*@i@xRDUHg@T#_ft`sAwGb)Q9 z3d2cI5-w29Fjtpw$SmWOttH)+OqiNPv4R+gU+28iEn7)1p(}}c+*MapmK9KJc)`ud zks`08^ZTukifjtl_Ysc>^^OX@5&YuTjawghDmhhB%gp$|9Mmxnw?7MJ0ihk!aQ_$4 z;8CF1p4$SRsehukg@nf)S9B(e-$*v;$ZWdQe8CEQP?R9l$aYYWSY5 zSWzVCAsT_i|2QXh4laVu$J2T1@6Jj3tMXEokzHX{vVZu^Qnr>8a36l4qG__1|FWdW@4^h$2q4^&5vb^J9Wj{O-Pg_CHEJi60HmW?Zyip~&< zQjmrXF7e0B0+(ip{4|M~OW;$*2IwILdk;%4Gb036|u)5o?Avc zX*XBv#w|Rn2M~g#xV0P(1v=3n+x;?J1ba{-Z4e)Z2;4`khKTDvVm(Am`-qQ2#Hf$B z8zRPi#HS%*)<=9EA|`#r{SXoL5pXWpjDh&Oj9A4TB7n-YU0j!{%Hbw6oI(d@QW$$W zSkqGl$Gng$DVpohHfTk*>-d2OVD4sG9Zxa=4d z)b=`flBRvJCro#JF8{N14_65Z7@4ocJplj!*^|^5D}QSbB9f$sg5b@AK0rveO(2<# z*^StvVhKe`gwlWqrI+GKs33}_;>+Y;-@?_1px(@JzF~ed-^?iO6W2k<)aNz>6>m10 z7*Q~oX+uxNhX=bG+Zb`7gQ+_VsEYfPZCqHr#dtOc%OO9*d=5N=r1)p>(?6lA8$ zd{-AT^nZJVdp^}oZc!>+hqRi_E#m4nU}UfWgzPKZ24EirwDT=!3b!>yXlXLeUd9R$ znnFI5O3kk?^Z2S*#KrXVPi`__hS6`exKFa1i?wAKmJfH?U?!m?8$6~-Tm|c&1)e2s z3ftKCQI~<(GgaKeNc27F9ax9K*RC-6F-`@qLqaHT&-3Y`4j~&&($`TPLOy)XqNiGW zI2+a^REN!@sC=9MZxSM3Q+o#h0RR6308mQ<1QY-U00;m803iS=_nov>vojhq0R)}W zs#ue18yKaB%(c1iX*aqHAM%I0z&~MXlH*hjVS){IxwaEv!PQ4&QiH;?RVP8 z9kQk9#iM&;)zR2AP1KCK7(PG6PmA08Zq-of_ErK=mPo;b0q!c3EkOl^O7Ni6p0D86 zE&QdI3gp!`+kJinyRY{I|CT(g%ia?~20jhzvmcbl(e+I}M_EkhI3$yhjB`3=^pX+s z+)g1r>2K5Zg>patUt-+i!g!pM3A-3EN(aOPAnS6U{)p@wv#1=p1qFAg1VBKOXChJo zL6f>7EgKan3!B^m004sr000;O000000000000000bdv%jMFEDBNFzW2dXtGGAR8E& zuf#n8007wn000yK000000000000000$dkk)Cj}|@owQby@FNugHy00000=>ty- delta 2408 zcmY+GdpHw{8^^cICBsIIu{CTillyc??u1OW8B5xs+$OhnP#I$El*>47b18Q2#o0H93} z0Du4h0J@)MFfGv6jYjj;p!@rA$n96Ajze3dCK*t=qr&qHH*iY)WaS0T)Q$%uZ`|Yx z6i=YhDMu~4gjsv-F2PX;S~d{E)sw9+ksF%Vu`ka$YYOYZ{76p=^IreiTzEEbB7{0^ z=Y(tLyP4$YK}5wfZmwnnS{h>iMB(t3baPz0cjRa9xI9Qi*!4<@wd?YoWk5i)2=So< zk8)1>{xRjn6f9P7fb=W}tF`zCSu!=1b6SNQLe;PRqa}~Q1yIwU@cgEhA?;|D*M$Y~YZy?5GFLZ0$(>QE({$uFI+U61!rG0kxbTJ9( zJj8!qIydRVZR&b57ROtsIp8-a^U7E8Zn;VfFll6%w$e&CbW(oz56Sy@ncqwf4iunt z0tLr_q6#0Da!t1bma}?>dnQ&+v^;l{tr0=BXnV@QnN+hcPa;AnDM8T$rZEJ+r7jEC%sO)=ve0qs4xfgR}>o@&w z1cbwWsrf#8Sse>HHeIYXzO-Pl1z~H;9Ihe=>l`?ko$o#L;s5|($c`70XG|q#YeB;+ zMj4NPJc*Rg6u4DdYg5+*Nq^{)f5e?x6It?U+Tq)*fo`T>=TU@zn$}#7zRrUF@5^;D zm8J&e)yZULoYbXGRV8~ne~BOKJ-aUi6RHczc(BtdNVcK7E`D=mDXb*#YJY=S8}S`z zxqFnm;+wIa>O&ZBW-@Rk47|^ro&ODI)wA}?4w4aY(4kh&-40QU(sEw1lM?)*O|5!} zr;J1w*hh|$8-F3#Pq8Vwob%qBGOOh@ZpxLsrDbi+vg@7iIim=3mLhIOC15QC`DdXK zc2eDC5Og|IrNonJcxfX$CuVWr#~p&xz_HT(qcXTP*zCcnwnJpbR&Cm|`ek8)#}J}d z$>`3E28?EzHP>pk(*U&nsCeADaet53We6K|rNBsrwqK6K$qH>q1>MiT$XxkW73T4F z+d%WU4$=*pP--|qGIpB7sPVTwIMRkAQ9BbgL+li`{+-f!yST7JpJwAm-#nooTO3(o>$>Ki`@Yn1!{tbPdmkzJdvqVPICy!H zUMW)eHfe2hZ(ryn1nQp>fkx%D$+*! z`6G~jX&JUVnpSX0={K>(PI3vDI%8iE(6t4o@S((U?fmDJZhO`Px5wKNcYPWm|5J2-vn9W?lvWb>i0&GBci&re(_LmLuS3r2G^y}C7KiX0_6$24Xb5%iskP56EWvh>Ak zaWlGx=%-5A^q#ldN|b`DCp)+VC1YtXURtyc{#lR?`a7r9W&*}~`hyX7PhdHwD&f~* z?A@WRNIHn)|9M0~J&*XvrQ#t0VtS*q?O<{MV|lw diff --git a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx index 6fe9ff9b..e64b6888 100644 --- a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx +++ b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx @@ -49,9 +49,13 @@ TextAlign="Left" SortField="MaterialCode"> + + @@ -93,7 +97,7 @@ [ExcelColumnIndex("B")] public string MaterialCode { get; set; } /// - /// 炉批号 + /// 炉号 /// [ExcelColumnIndex("C")] public string HeatNo { get; set; } /// + /// 批号 + /// + [ExcelColumnIndex("D")] public string BatchNo { get; set; } + /// /// 类型 /// - [ExcelColumnIndex("D")] public string MaterialName { get; set; } + [ExcelColumnIndex("E")] public string MaterialName { get; set; } /// /// 规格 /// - [ExcelColumnIndex("E")] public string MaterialSpec { get; set; } + [ExcelColumnIndex("F")] public string MaterialSpec { get; set; } + /// + /// 材料描述 + /// + [ExcelColumnIndex("G")] public string MaterialDef { get; set; } /// /// 单位 /// - [ExcelColumnIndex("F")] public string MaterialUnit { get; set; } + [ExcelColumnIndex("H")] public string MaterialUnit { get; set; } /// /// 数量 /// - [ExcelColumnIndex("G")] public string PlanNum { get; set; } + [ExcelColumnIndex("I")] public string PlanNum { get; set; } /// /// 类型 /// - [ExcelColumnIndex("H")] public string TypeString { get; set; } + [ExcelColumnIndex("J")] public string TypeString { get; set; } } } \ No newline at end of file diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 3cd275e2..57c7ffbe 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -100586,6 +100586,8 @@ namespace Model private string _HeatNo; + private string _BatchNo; + private EntityRef _Base_Project; private EntitySet _HJGL_PipeLineMat; @@ -100612,6 +100614,8 @@ namespace Model partial void OnMaterialUnitChanged(); partial void OnHeatNoChanging(string value); partial void OnHeatNoChanged(); + partial void OnBatchNoChanging(string value); + partial void OnBatchNoChanged(); #endregion public HJGL_MaterialCodeLib() @@ -100805,6 +100809,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BatchNo", DbType="NVarChar(50)")] + public string BatchNo + { + get + { + return this._BatchNo; + } + set + { + if ((this._BatchNo != value)) + { + this.OnBatchNoChanging(value); + this.SendPropertyChanging(); + this._BatchNo = value; + this.SendPropertyChanged("BatchNo"); + this.OnBatchNoChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_MaterialCodeLib_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] public Base_Project Base_Project { @@ -275610,6 +275634,8 @@ namespace Model private string _HeatNo; + private string _BatchNo; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -275630,6 +275656,8 @@ namespace Model partial void OnSortIndexChanged(); partial void OnHeatNoChanging(string value); partial void OnHeatNoChanged(); + partial void OnBatchNoChanging(string value); + partial void OnBatchNoChanged(); #endregion public Tw_InOutPlanDetail() @@ -275797,6 +275825,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_BatchNo", DbType="NVarChar(50)")] + public string BatchNo + { + get + { + return this._BatchNo; + } + set + { + if ((this._BatchNo != value)) + { + this.OnBatchNoChanging(value); + this.SendPropertyChanging(); + this._BatchNo = value; + this.SendPropertyChanged("BatchNo"); + this.OnBatchNoChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; From 48d6e95ff9b972ed1a04741fc7a675c8fbf2c82b Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Mon, 25 May 2026 19:46:30 +0800 Subject: [PATCH 04/11] 1 --- .../版本日志/SGGLDB_V2026-05-25-gf-002.sql | 2 ++ SGGL/BLL/CLGL/TwInOutplandetailService.cs | 4 ++- SGGL/BLL/CLGL/TwInOutplanmasterService.cs | 21 ++++++++++++--- SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx | 3 +++ .../File/Excel/DataIn/材料入库导入模板.xlsx | Bin 9413 -> 9448 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 2 +- SGGL/Model/CLGL/Tw_InputDataIn.cs | 4 +++ SGGL/Model/Model.cs | 24 ++++++++++++++++++ 8 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2026-05-25-gf-002.sql diff --git a/DataBase/版本日志/SGGLDB_V2026-05-25-gf-002.sql b/DataBase/版本日志/SGGLDB_V2026-05-25-gf-002.sql new file mode 100644 index 00000000..37c51ebd --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-05-25-gf-002.sql @@ -0,0 +1,2 @@ +alter table Tw_InOutPlanDetail add DeliveryDate datetime null +GO \ No newline at end of file diff --git a/SGGL/BLL/CLGL/TwInOutplandetailService.cs b/SGGL/BLL/CLGL/TwInOutplandetailService.cs index 0b88df79..618579b3 100644 --- a/SGGL/BLL/CLGL/TwInOutplandetailService.cs +++ b/SGGL/BLL/CLGL/TwInOutplandetailService.cs @@ -51,6 +51,7 @@ namespace BLL MaterialName = mat.MaterialName, MaterialDef = mat.MaterialDef, StockNum = stock.StockNum ?? 0, + DeliveryDate = x.DeliveryDate, } ; @@ -123,7 +124,8 @@ namespace BLL ActNum = item.ActNum, SortIndex = sortIndex, HeatNo = item.HeatNo, - BatchNo = item.BatchNo + BatchNo = item.BatchNo, + DeliveryDate = item.DeliveryDate }; sortIndex++; details.Add(table); diff --git a/SGGL/BLL/CLGL/TwInOutplanmasterService.cs b/SGGL/BLL/CLGL/TwInOutplanmasterService.cs index 679af536..00a63c23 100644 --- a/SGGL/BLL/CLGL/TwInOutplanmasterService.cs +++ b/SGGL/BLL/CLGL/TwInOutplanmasterService.cs @@ -275,9 +275,9 @@ namespace BLL { //if (temeplateDtoIns.Count == 0) //{ - responeData.code = 0; - responeData.message = errorWarehouseCode + "仓库不存在!"; - return responeData; + responeData.code = 0; + responeData.message = errorWarehouseCode + "仓库不存在!"; + return responeData; //} } var typeString = temeplateDtoIns.Select(x => x.TypeString).Distinct().ToList(); //获取导入文件的类型 @@ -293,7 +293,20 @@ namespace BLL responeData.message = errorWarehouseCode + "每次只能导入一种类型!"; return responeData; } - + var dateTypeString = temeplateDtoIns.Select(x => x.DeliveryDate).Distinct().ToList(); //获取导入文件的类型 + foreach (var item in dateTypeString) + { + try + { + DateTime date = Convert.ToDateTime(item); + } + catch (Exception) + { + responeData.code = 0; + responeData.message = errorWarehouseCode + "到货时间[" + item + "]格式错误!"; + return responeData; + } + } //var materialCodeList = temeplateDtoIns.Select(x => x.MaterialCode).Distinct().ToList(); //获取导入文件的材料编码 //var IsExitMaterialCode = diff --git a/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx b/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx index 8912c95a..69886fb7 100644 --- a/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx +++ b/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx @@ -176,6 +176,9 @@ + + diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/材料入库导入模板.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataIn/材料入库导入模板.xlsx index e8b790c00f49d428104b300d46de55608dac085d..cb9dff80fc47e1e9907a6d661ab61e4434b613ad 100644 GIT binary patch delta 2504 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 KY#{i53I73AT#g6; delta 2466 zcmV;T30?N+NySO9;s$?rs02Vj0{{TP2LJ#M0001ZY%h0ja%*C5Z)+}iZEU1f-EPw` z6uw8|9U|XniPNTQqorv52^4LpTK98PX>t>Hv6k4uan?)|Z@?``NZj%aNFd&ZUGNqh zCv8V5LS;m)o#W$t`OZ1taSoo9X=2<^nKQwCg!gP@P#%hi@hg8Hot*||8yUGGJR*tU z)JL~8N6)%XpByZNyq*bhZ2$nzeH1H|d6t!jF-=LnCo;;xGZ!)?3QT!r<(Z@;%414Z znplo)x2%*fj%ox??t&raa~9Hp2#b_*Rf9;H5C!z}m}U72Ee&^pONqQLGBXru1`sor zFm+pjA|nmG(G`CelFSkayTq>yfNlYpm7-7`Fc#4TH2Qt$2{UN20lFZVu`m%vnOuYv~#! z%U+RGS1Lh9LUJ{Xn4*!7_Q4bj`mo?4Ll#-DUMdei&QpT2+lIQ{YA z-TmA5_g}wEC(oZBT~1!StZt?O5_rDVG${z0cC z)M>IHH8p?z`u_JcK@`$kX>qKi0r#W95!7QsZlF4#foR#hBS=4PT=GzQ`0}pNv-|sp zhi$Wmn~vFZ9NX*#xMw!{jiA|gTi6czZy*@i@xRDUHg@T#_f zt`sAwGb)Q93d2cI5-w29Fjtpw$SmWOttH)+OqiNPv4R+gU+28iEn7)1p(}}c+*Map zmK9KJc)`udks`08^ZTukifjtl_Ysc>^^OX@5&YuTjawghDmhhB%gp$|9Mmxnw?7MJ z0ihk!aQ_$4;8CF1p4$SRsehukg@nf)S9B(e-$*v;$ZWdQe8CEQP?R z9l$aYYWSY5SWzVCAsT_i|2QXh4laVu$J2T1@6Jj3tMXEokzHX{vVZu^Qnr>8a36l4qG__1|FWdW@4^h$2q4^&5vb^J9Wj{O-Pg_CHEJi60H zmW?Zyip~&<QjmrXF7e0B0+(ip{4|M~OW;$*2IwILdk;%4Gb03 z6|u)5o?AvcX*XBv#w|Rn2M~g#xV0P(1v=3n+x;?J1ba{-Z4e)Z2;4`khKTDvVm(Am z`-qQ2#Hf$B8zRPi#HS%*)<=9EA|`#r{SXoL5pXWpjDh&Oj9A4TB7n-YU0j!{%Hbw6 zoI(d@QW$$WSkqGl$Gng$DVpohHfTk*>-d2OVD z4sG9Zxa=4d)b=`flBRvJCro#JF8`C@92K*x4?+nJ7@4ocJplj!*#ZCn6abU{BNl(8 zlFv%RKoG|7g72{GNe^~w4dgLxEWrptU+7c%sFgnK^KO>R*tT!*xp z%`M{UHeh710EFx-+Xi4C1+?=mXbQJAMQCX<&R)g}5t>3iluFI7FZ1}SSj5Hj^iOUw zUxv|dwYX2Rn~Sw&7?uxr*N=O8O*je_pwMd-EHl)1?D>f`SS#N=pv?UdY zrRV>7^JnB_wkeC?4UAQlP7#d=3P6iWD!oe4Lp~3uD6o!e$%{%uind_UEIU6-M9oBH z;LcPv7^lDno}?`kb&A%`)eK`R)=+XAd58AmvN9!i{%KaY=Hi8auK>q{OmGQ~OYS&s zfnj|lqCHZIBeH%qMF)@qLjfgdXEBW^{_#36rTw#^QwGjbxoz!t+Q%KTrRc?@dt=qn z*fdSljJg;;KgCar+xu?SQ0ewo0#KGn!Gr>IP;9J&Pscc=tFK$D;%QUO7e^CB%96)6jw z+yVdqg9iWr7ytkO0000000000004B8J0nE_hLeFKKn!{n004MwFLQKxY-N)VBo!MN znXkk>0RRBm0ssIM0000000000000000LYX5BPSav_nov>0RRAA0ssIJ0000000000 g0000005_9ABt8MelYS&U0f&>kBqj##ApigX0P)6amjD0& diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 8bc11dec..4637a5cb 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -17034,7 +17034,7 @@ - + diff --git a/SGGL/Model/CLGL/Tw_InputDataIn.cs b/SGGL/Model/CLGL/Tw_InputDataIn.cs index 712d5080..c681a0b7 100644 --- a/SGGL/Model/CLGL/Tw_InputDataIn.cs +++ b/SGGL/Model/CLGL/Tw_InputDataIn.cs @@ -48,6 +48,10 @@ namespace Model /// 类型 /// [ExcelColumnIndex("J")] public string TypeString { get; set; } + /// + /// 到货时间 + /// + [ExcelColumnIndex("K")] public string DeliveryDate { get; set; } } } \ No newline at end of file diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 57c7ffbe..8e6ba4ee 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -275636,6 +275636,8 @@ namespace Model private string _BatchNo; + private System.Nullable _DeliveryDate; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -275658,6 +275660,8 @@ namespace Model partial void OnHeatNoChanged(); partial void OnBatchNoChanging(string value); partial void OnBatchNoChanged(); + partial void OnDeliveryDateChanging(System.Nullable value); + partial void OnDeliveryDateChanged(); #endregion public Tw_InOutPlanDetail() @@ -275845,6 +275849,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DeliveryDate", DbType="DateTime")] + public System.Nullable DeliveryDate + { + get + { + return this._DeliveryDate; + } + set + { + if ((this._DeliveryDate != value)) + { + this.OnDeliveryDateChanging(value); + this.SendPropertyChanging(); + this._DeliveryDate = value; + this.SendPropertyChanged("DeliveryDate"); + this.OnDeliveryDateChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; From e8c005a7921314925a15e60f3c2858bdc1b09a41 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Mon, 25 May 2026 20:06:41 +0800 Subject: [PATCH 05/11] 1 --- SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs b/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs index 129ee9cf..228bc431 100644 --- a/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs +++ b/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs @@ -94,9 +94,9 @@ { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var materialCodes = from x in db.HJGL_MaterialCodeLib select x.MaterialCode; + var materialCodes = (from x in db.HJGL_MaterialCodeLib select x.MaterialCode + "_" + x.HeatNo + "_" + x.BatchNo).Distinct().ToList(); var ls = from x in list - where !materialCodes.Contains(x.MaterialCode) + where !materialCodes.Contains(x.MaterialCode + "_" + x.HeatNo + "_" + x.BatchNo) select x; List details = new List(); foreach (var item in ls) From 6d31a207824ee9c7df641fd79fbe6c4523d89840 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Tue, 26 May 2026 18:07:18 +0800 Subject: [PATCH 06/11] 1 --- DataBase/版本日志/SGGLDB_V2026-05-26-gf.sql | 2 ++ SGGL/BLL/CLGL/TwInOutplandetailService.cs | 4 +-- .../HJGL/BaseInfo/MaterialCodeLibService.cs | 34 ++++++++++++------- .../HJGL/BaseInfo/MaterialCodeLib.aspx | 6 ++-- .../HJGL/BaseInfo/MaterialCodeLib.aspx.cs | 6 ++-- .../BaseInfo/MaterialCodeLib.aspx.designer.cs | 4 +-- .../HJGL/BaseInfo/MaterialCodeLibEdit.aspx | 2 +- .../HJGL/BaseInfo/MaterialCodeLibEdit.aspx.cs | 15 ++++---- .../MaterialCodeLibEdit.aspx.designer.cs | 4 +-- SGGL/Model/Model.cs | 24 +++++++++++++ 10 files changed, 68 insertions(+), 33 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_V2026-05-26-gf.sql diff --git a/DataBase/版本日志/SGGLDB_V2026-05-26-gf.sql b/DataBase/版本日志/SGGLDB_V2026-05-26-gf.sql new file mode 100644 index 00000000..88e1dc90 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2026-05-26-gf.sql @@ -0,0 +1,2 @@ +alter table [dbo].[HJGL_MaterialCodeLib] add Code nvarchar(50) null +GO \ No newline at end of file diff --git a/SGGL/BLL/CLGL/TwInOutplandetailService.cs b/SGGL/BLL/CLGL/TwInOutplandetailService.cs index 618579b3..9d0868e8 100644 --- a/SGGL/BLL/CLGL/TwInOutplandetailService.cs +++ b/SGGL/BLL/CLGL/TwInOutplandetailService.cs @@ -42,7 +42,7 @@ namespace BLL Id = x.Id, InOutPlanMasterId = x.InOutPlanMasterId, PipelineComponentId = x.PipelineComponentId, - MaterialCode = x.MaterialCode, + MaterialCode = mat.Code, HeatNo = x.HeatNo, BatchNo = x.BatchNo, PlanNum = x.PlanNum, @@ -119,7 +119,7 @@ namespace BLL Id = SQLHelper.GetNewID(), InOutPlanMasterId = inoutPlanMasterId, PipelineComponentId = item.PipelineComponentId, - MaterialCode = item.MaterialCode, + MaterialCode = item.MaterialCode + "-" + item.HeatNo + "-" + item.BatchNo, PlanNum = item.PlanNum, ActNum = item.ActNum, SortIndex = sortIndex, diff --git a/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs b/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs index 228bc431..c2ab5c3e 100644 --- a/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs +++ b/SGGL/BLL/HJGL/BaseInfo/MaterialCodeLibService.cs @@ -37,7 +37,8 @@ MaterialDef = codeLib.MaterialDef, PipeGrade = codeLib.PipeGrade, MaterialUnit = codeLib.MaterialUnit, - ProjectId = codeLib.ProjectId + ProjectId = codeLib.ProjectId, + Code = codeLib.Code }; db.HJGL_MaterialCodeLib.InsertOnSubmit(newCodeLib); db.SubmitChanges(); @@ -66,6 +67,7 @@ newCodeLib.MaterialDef = codeLib.MaterialDef; newCodeLib.PipeGrade = codeLib.PipeGrade; newCodeLib.MaterialUnit = codeLib.MaterialUnit; + newCodeLib.Code = codeLib.Code; db.SubmitChanges(); } } @@ -94,24 +96,30 @@ { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var materialCodes = (from x in db.HJGL_MaterialCodeLib select x.MaterialCode + "_" + x.HeatNo + "_" + x.BatchNo).Distinct().ToList(); + var materialCodes = from x in db.HJGL_MaterialCodeLib select x.MaterialCode; var ls = from x in list - where !materialCodes.Contains(x.MaterialCode + "_" + x.HeatNo + "_" + x.BatchNo) + where !materialCodes.Contains(x.MaterialCode + "-" + x.HeatNo + "-" + x.BatchNo) select x; + List codes = new List(); List details = new List(); foreach (var item in ls) { - Model.HJGL_MaterialCodeLib table = new Model.HJGL_MaterialCodeLib + if (!codes.Contains(item.MaterialCode + "-" + item.HeatNo + "-" + item.BatchNo)) { - MaterialCode = item.MaterialCode, - HeatNo = item.HeatNo, - BatchNo = item.BatchNo, - MaterialName = item.MaterialName, - MaterialSpec = item.MaterialSpec, - MaterialUnit = item.MaterialUnit, - MaterialDef = item.MaterialDef, - }; - details.Add(table); + Model.HJGL_MaterialCodeLib table = new Model.HJGL_MaterialCodeLib + { + MaterialCode = item.MaterialCode + "-" + item.HeatNo + "-" + item.BatchNo, + HeatNo = item.HeatNo, + BatchNo = item.BatchNo, + MaterialName = item.MaterialName, + MaterialSpec = item.MaterialSpec, + MaterialUnit = item.MaterialUnit, + MaterialDef = item.MaterialDef, + Code = item.MaterialCode + }; + details.Add(table); + codes.Add(table.MaterialCode); + } } db.HJGL_MaterialCodeLib.InsertAllOnSubmit(details); diff --git a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx index e64b6888..4c64fc73 100644 --- a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx +++ b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx @@ -22,7 +22,7 @@ - @@ -44,9 +44,9 @@ - + TextAlign="Left" SortField="Code"> listStr = new List(); - if (!string.IsNullOrEmpty(this.txtMaterialCode.Text.Trim())) + if (!string.IsNullOrEmpty(this.txtCode.Text.Trim())) { - strSql += " AND MaterialCode LIKE @MaterialCode"; - listStr.Add(new SqlParameter("@MaterialCode", "%" + this.txtMaterialCode.Text.Trim() + "%")); + strSql += " AND Code LIKE @Code"; + listStr.Add(new SqlParameter("@Code", "%" + this.txtCode.Text.Trim() + "%")); } if (!string.IsNullOrEmpty(this.txtMaterialName.Text.Trim())) { diff --git a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx.designer.cs index 99ff4773..845d8d21 100644 --- a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLib.aspx.designer.cs @@ -58,13 +58,13 @@ namespace FineUIPro.Web.HJGL.BaseInfo { protected global::FineUIPro.Toolbar Toolbar2; /// - /// txtMaterialCode 控件。 + /// txtCode 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtMaterialCode; + protected global::FineUIPro.TextBox txtCode; /// /// txtMaterialName 控件。 diff --git a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx index e7b3f663..be3c6836 100644 --- a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx +++ b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx @@ -15,7 +15,7 @@ - diff --git a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.cs b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.cs index a9280db7..52dda9b8 100644 --- a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.cs @@ -23,7 +23,7 @@ namespace FineUIPro.Web.HJGL.BaseInfo Model.HJGL_MaterialCodeLib lib = BLL.MaterialCodeLibService.GetMaterialCodeLib(materialCode); if (lib != null) { - this.txtMaterialCode.Text = materialCode; + this.txtCode.Text = lib.Code; this.txtMaterialMade.Text = lib.MaterialMade; this.txtHeatNo.Text = lib.HeatNo; this.txtBatchNo.Text = lib.BatchNo; @@ -31,11 +31,11 @@ namespace FineUIPro.Web.HJGL.BaseInfo txtMaterialSpec.Text = lib.MaterialSpec; txtMaterialDef.Text = lib.MaterialDef; txtMaterialUnit.Text = lib.MaterialUnit; - txtMaterialCode.Enabled = false; + //txtMaterialCode.Enabled = false; } else { - txtMaterialCode.Enabled = true; + //txtMaterialCode.Enabled = true; } } } @@ -53,24 +53,25 @@ namespace FineUIPro.Web.HJGL.BaseInfo string materialCode = Request.Params["MaterialCode"]; if (string.IsNullOrEmpty(materialCode)) { - var q = Funs.DB.HJGL_MaterialCodeLib.FirstOrDefault(x => x.MaterialCode == this.txtMaterialCode.Text.Trim()); + var q = Funs.DB.HJGL_MaterialCodeLib.FirstOrDefault(x => x.MaterialCode == materialCode); if (q != null) { - Alert.ShowInTop("此材料编码已存在!", MessageBoxIcon.Warning); + Alert.ShowInTop("此材料编码、炉号、批号已存在!", MessageBoxIcon.Warning); return; } } Model.HJGL_MaterialCodeLib newLib = new Model.HJGL_MaterialCodeLib { - MaterialCode = this.txtMaterialCode.Text.Trim(), + MaterialCode = this.txtCode.Text.Trim() + "-" + this.txtHeatNo.Text.Trim() + "-" + this.txtBatchNo.Text.Trim(), HeatNo = this.txtHeatNo.Text.Trim(), BatchNo = this.txtBatchNo.Text.Trim(), MaterialName = this.txtMaterialName.Text.Trim(), MaterialSpec = this.txtMaterialSpec.Text.Trim(), MaterialMade = this.txtMaterialMade.Text.Trim(), MaterialDef = this.txtMaterialDef.Text.Trim(), - MaterialUnit = txtMaterialUnit.Text.Trim() + MaterialUnit = txtMaterialUnit.Text.Trim(), + Code = this.txtCode.Text.Trim() }; if (!string.IsNullOrEmpty(materialCode)) diff --git a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.designer.cs index 19a20257..13ad643c 100644 --- a/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HJGL/BaseInfo/MaterialCodeLibEdit.aspx.designer.cs @@ -40,13 +40,13 @@ namespace FineUIPro.Web.HJGL.BaseInfo { protected global::FineUIPro.Form SimpleForm1; /// - /// txtMaterialCode 控件。 + /// txtCode 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtMaterialCode; + protected global::FineUIPro.TextBox txtCode; /// /// txtHeatNo 控件。 diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 8e6ba4ee..a757b5cc 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -100588,6 +100588,8 @@ namespace Model private string _BatchNo; + private string _Code; + private EntityRef _Base_Project; private EntitySet _HJGL_PipeLineMat; @@ -100616,6 +100618,8 @@ namespace Model partial void OnHeatNoChanged(); partial void OnBatchNoChanging(string value); partial void OnBatchNoChanged(); + partial void OnCodeChanging(string value); + partial void OnCodeChanged(); #endregion public HJGL_MaterialCodeLib() @@ -100829,6 +100833,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Code", DbType="NVarChar(50)")] + public string Code + { + get + { + return this._Code; + } + set + { + if ((this._Code != value)) + { + this.OnCodeChanging(value); + this.SendPropertyChanging(); + this._Code = value; + this.SendPropertyChanged("Code"); + this.OnCodeChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_MaterialCodeLib_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] public Base_Project Base_Project { From 883493e02e8722703ba9276b206fd9141fb89b10 Mon Sep 17 00:00:00 2001 From: fei550 <1420031550@qq.com> Date: Tue, 26 May 2026 21:33:50 +0800 Subject: [PATCH 07/11] =?UTF-8?q?feat(hjgl):=E9=A2=84=E5=88=B6=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=9D=90=E6=96=99=E4=BF=A1=E6=81=AF=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9,=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=82=89=E5=8F=B7=E6=89=B9=E5=8F=B7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../File/Excel/DataIn/PipelineMat.xlsx | Bin 8784 -> 8986 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 2 +- .../HJGL/WeldingManage/PipelineMatIn.aspx.cs | 229 ++---------------- 3 files changed, 25 insertions(+), 206 deletions(-) diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/PipelineMat.xlsx b/SGGL/FineUIPro.Web/File/Excel/DataIn/PipelineMat.xlsx index 736e3a0f290fea6351a9bdbcf89602ec4d91a9ca..d21e1b9b26b67131f1ba5a4d3aadc30a8e7adb28 100644 GIT binary patch literal 8986 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 eZ_@t7{Pzs0tBHYJT>t - + diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineMatIn.aspx.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineMatIn.aspx.cs index c97666d8..719ec24c 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineMatIn.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/PipelineMatIn.aspx.cs @@ -133,207 +133,12 @@ namespace FineUIPro.Web.HJGL.WeldingManage } #endregion #region 将Dataset的数据导入数据库 - /// - /// 将Dataset的数据导入数据库 - /// - /// 数据集 - /// 数据集行数 - /// - private Model.ResponeData AddDatasetToSQL(DataTable pds, int Cols) - { - Model.ResponeData responeData = new Model.ResponeData(); - List result = new List(); - - int ic, ir; - ic = pds.Columns.Count; - ir = pds.Rows.Count; - if (ic < Cols) - { - responeData.code = 0; - responeData.message = "导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列"; - return responeData; - } - // DataRow[] dv = pds.Select("主项编号 <>'' and 管线号 <>'' and 材料编码 <>'' and 数量 <>''and 管线划分<>'' "); - DataRow[] dv = pds.Select(" 管线号 <>'' and 材料编码 <>'' and 数量 <>'' "); - - //导入数据库 - if (dv.Length > 0) - { - for (int i = 0; i < dv.Length; i++) - { - HJGL_PipeLineMat item = new HJGL_PipeLineMat(); - - #region 数据验证和赋值 - - - string unitworkId = string.Empty; - unitworkId = Request.Params["UnitWorkId"]; - string PipeArea = string.Empty;//管线划分 1工厂预制 2现场施工 - - if (dv[i]["管线号"] != null && !string.IsNullOrEmpty(dv[i]["管线号"].ToString())) - { - var pipeline = from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitWorkId == unitworkId && x.PipelineCode == dv[i]["管线号"].ToString().Trim() select x; - if (pipeline.Count() > 0) - { - item.PipelineId = pipeline.First().PipelineId; - PipeArea = pipeline.First().PipeArea; - } - else - { - // errorInfos += (i + 2) + "Line,"+ dv[i]["管线号"].ToString() + " [管线号] 不存在
"; - result.Add("不存在此管线号-" + dv[i]["管线号"].ToString()); - - - } - - } - else - { - //errorInfos += (i + 2) + "Line, [管线号] 不能为空
"; - result.Add((i + 2) + "Line, [管线号] 不能为空
"); - } - //if (dv[i]["管线划分"] != null && !string.IsNullOrEmpty(dv[i]["管线划分"].ToString())) - //{ - // string txtPipeArea = ""; - // switch (PipeArea) - // { - // case "1": - // txtPipeArea = "工厂预制"; - // break; - // case "2": - // txtPipeArea = "现场施工"; - // break; - // default: - // txtPipeArea = "无"; - // break; - // } - // if (!Equals(txtPipeArea, dv[i]["管线划分"].ToString().Trim())) - // { - // errorInfos += (i + 2) + "Line, [管线划分] 不匹配
"; - - // } - //} - //else - //{ - // errorInfos += (i + 2) + "Line, [管线划分] 不能为空
"; - - //} - - - if (dv[i]["材料编码"] != null && !string.IsNullOrEmpty(dv[i]["材料编码"].ToString())) - { - var lib = from x in Funs.DB.HJGL_MaterialCodeLib where x.MaterialCode == dv[i]["材料编码"].ToString() select x; - if (lib.Count() > 0) - { - item.MaterialCode = dv[i]["材料编码"].ToString(); - } - else - { - //errorInfos += (i + 2) + "Line," + dv[i]["材料编码"].ToString() + " [材料编码] 不存在
"; - result.Add("不存在此材料编码-" + dv[i]["材料编码"].ToString()); - - } - - } - else - { - //errorInfos += (i + 2) + "Line, [材料编码] 不能为空
"; - result.Add((i + 2) + "Line, [材料编码] 不能为空
"); - } - - if (dv[i]["数量"] != null && !string.IsNullOrEmpty(dv[i]["数量"].ToString())) - { - try - { - var number = Funs.GetNewDecimal(dv[i]["数量"].ToString()); - item.Number = number; - } - catch (Exception) - { - //errorInfos += "第" + (i + 2).ToString() + "行," + "数量格式输入有误
"; - result.Add("第" + (i + 2).ToString() + "行," + "数量格式输入有误
"); - } - - } - else - { - //errorInfos += (i + 2) + "Line, [数量] 不能为空
"; - result.Add((i + 2) + "Line, [数量] 不能为空
"); - } - - if (PipeArea == "1") - { - if (dv[i]["预制组件"] != null && !string.IsNullOrEmpty(dv[i]["预制组件"].ToString())) - { - item.PrefabricatedComponents = dv[i]["预制组件"].ToString(); - - } - else - { - result.Add((i + 2) + "Line, [预制组件] 不能为空
"); - } - } - var model = matList.Where(x => x.PipelineId == item.PipelineId && x.MaterialCode == item.MaterialCode && x.PrefabricatedComponents == item.PrefabricatedComponents); - if (model.Count() == 0) - { - matList.Add(item); - - } - //if (PipeArea == "1")//工厂预制 - //{ - - // var model= matList.Where(x => x.PrefabricatedComponents == item.PrefabricatedComponents && x.MaterialCode == item.MaterialCode); - // if (model.Count()==0) - // { - // matList.Add(item); - - // } - - //} else if (PipeArea == "2")//现场施工 - //{ - // var model = matList.Where(x => x.PipelineId == item.PipelineId && x.MaterialCode == item.MaterialCode); - // if (model.Count() == 0) - // { - // matList.Add(item); - - // } - //} - //item.PipeLineMatId= SQLHelper.GetNewID(typeof(Model.HJGL_PipeLineMat)); - //if (!matList.Select(x => x.MaterialCode).Contains(item.MaterialCode)) - //{ - // matList.Add(item); - //} - - #endregion - } - - } - else - { - responeData.code = 0; - responeData.message = "没有数据"; - - } - if (result.Count > 0) - { - // result = result.Substring(0, result.LastIndexOf("|")); - errorInfos = string.Join("|", result.Distinct()); - //Alert alert = new Alert(); - //alert.Message = result; - //alert.Target = Target.Self; - //alert.Show(); - responeData.code = 0; - responeData.message = errorInfos; - } - - return responeData; - } private Model.ResponeData AddDatasetToSQL(List pds, int count) { Model.ResponeData responeData = new Model.ResponeData(); List result = new List(); - if (count < 4) + if (count < 6) { responeData.code = 0; responeData.message = "导入Excel格式错误!Excel只有" + count.ToString().Trim() + "列"; @@ -377,16 +182,30 @@ namespace FineUIPro.Web.HJGL.WeldingManage if (pds[i].C != null && !string.IsNullOrEmpty(pds[i].C.ToString())) { - string materialCode = pds[i].C.ToString(); - var lib = from x in Funs.DB.HJGL_MaterialCodeLib where x.MaterialCode == materialCode select x; - if (lib.Count() > 0) + string materialCode = pds[i].C.ToString().Trim(); + string furnaceNo = pds[i].D == null ? string.Empty : pds[i].D.ToString().Trim(); + string batchNo = pds[i].E == null ? string.Empty : pds[i].E.ToString().Trim(); + if (pds[i].D == null || string.IsNullOrEmpty(pds[i].D.ToString())) { - item.MaterialCode = pds[i].C.ToString(); + result.Add((i + 2) + "Line, [炉号] 不能为空
"); } - else + if (pds[i].E == null || string.IsNullOrEmpty(pds[i].E.ToString())) { - result.Add("不存在此材料编码-" + pds[i].C.ToString()); + result.Add((i + 2) + "Line, [批号] 不能为空
"); + } + if (!string.IsNullOrEmpty(materialCode) && !string.IsNullOrEmpty(furnaceNo) && !string.IsNullOrEmpty(batchNo)) + { + string fullMaterialCode = materialCode + "-" + furnaceNo + "-" + batchNo; + var lib = from x in Funs.DB.HJGL_MaterialCodeLib where x.MaterialCode == fullMaterialCode select x; + if (lib.Count() > 0) + { + item.MaterialCode = fullMaterialCode; + } + else + { + result.Add("不存在此材料:" + fullMaterialCode); + } } } @@ -395,11 +214,11 @@ namespace FineUIPro.Web.HJGL.WeldingManage result.Add((i + 2) + "Line, [材料编码] 不能为空
"); } - if (pds[i].D != null && !string.IsNullOrEmpty(pds[i].D.ToString())) + if (pds[i].F != null && !string.IsNullOrEmpty(pds[i].F.ToString())) { try { - var number = Funs.GetNewDecimal(pds[i].D.ToString()); + var number = Funs.GetNewDecimal(pds[i].F.ToString()); item.Number = number; } catch (Exception) @@ -674,4 +493,4 @@ namespace FineUIPro.Web.HJGL.WeldingManage } } } -} \ No newline at end of file +} From 6b3db2099f72be3d6112d50c2d8030f92c24ebe9 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 27 May 2026 09:29:54 +0800 Subject: [PATCH 08/11] 1 --- SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx b/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx index 5959a00d..87d0941c 100644 --- a/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx +++ b/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx @@ -68,6 +68,12 @@ + + + + @@ -81,6 +87,9 @@ + + From 49d59df7dfb886d1b2950480f1b17b1941d9d506 Mon Sep 17 00:00:00 2001 From: fei550 <1420031550@qq.com> Date: Wed, 27 May 2026 12:01:30 +0800 Subject: [PATCH 09/11] =?UTF-8?q?feat(hjgl):=20=E6=94=AF=E6=8C=81=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=84=8A=E5=8F=A3=E5=AF=BC=E5=85=A5=E5=92=8C=E4=BC=98?= =?UTF-8?q?=E5=85=88=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 组件与焊口关系需要参与材料匹配、任务生成和出库明细计算。 新增组件焊口导入入口,并允许在材料匹配时手动指定优先组件, 确保按组件范围生成任务单和领料数据。 --- SGGL/BLL/CLGL/TwArrivalStatisticsService.cs | 17 +- SGGL/BLL/CLGL/TwInOutplanmasterService.cs | 51 ++- .../File/Fastreport/组件打印.frx | 4 +- SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 8 + .../HJGL/PreDesign/PrePipeline.aspx | 2 + .../HJGL/PreDesign/PrePipeline.aspx.cs | 6 + .../PreDesign/PrePipeline.aspx.designer.cs | 9 + .../PrePipelineComponentJointIn.aspx | 89 +++++ .../PrePipelineComponentJointIn.aspx.cs | 336 ++++++++++++++++++ ...ePipelineComponentJointIn.aspx.designer.cs | 143 ++++++++ .../HJGL/WeldingManage/WeldMatMatch.aspx | 13 +- .../HJGL/WeldingManage/WeldMatMatch.aspx.cs | 201 +++++++++-- .../WeldMatMatch.aspx.designer.cs | 9 + 13 files changed, 841 insertions(+), 47 deletions(-) create mode 100644 SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx create mode 100644 SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.cs create mode 100644 SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.designer.cs diff --git a/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs b/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs index d0831ae5..15542c32 100644 --- a/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs +++ b/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs @@ -240,7 +240,7 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc /// /// /// - public static List GetPipeMatMatch(string projectId, List pipelineIds, string warehouseCode) + public static List GetPipeMatMatch(string projectId, List pipelineIds, string warehouseCode, Dictionary> priorityComponents = null) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { @@ -271,7 +271,20 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc var newRequiredMaterials = new List(); foreach (string id in pipelineIds) { - newRequiredMaterials.AddRange(requiredMaterials.Where(x => x.PipelineId == id)); + var pipelineMaterials = requiredMaterials.Where(x => x.PipelineId == id).ToList(); + if (priorityComponents != null && priorityComponents.ContainsKey(id) && priorityComponents[id] != null && priorityComponents[id].Any()) + { + var components = priorityComponents[id]; + newRequiredMaterials.AddRange(pipelineMaterials + .Where(x => components.Contains(x.PrefabricatedComponents)) + .OrderBy(x => components.IndexOf(x.PrefabricatedComponents))); + newRequiredMaterials.AddRange(pipelineMaterials + .Where(x => !components.Contains(x.PrefabricatedComponents))); + } + else + { + newRequiredMaterials.AddRange(pipelineMaterials); + } } results = GetMatMatchOutput(newRequiredMaterials, warehouseCode, projectId); return results; diff --git a/SGGL/BLL/CLGL/TwInOutplanmasterService.cs b/SGGL/BLL/CLGL/TwInOutplanmasterService.cs index 00a63c23..c7a4032d 100644 --- a/SGGL/BLL/CLGL/TwInOutplanmasterService.cs +++ b/SGGL/BLL/CLGL/TwInOutplanmasterService.cs @@ -720,18 +720,41 @@ namespace BLL return; } var pipelineList = db.View_HJGL_WeldingTask.Where(e => e.UnitWorkId == unitworkid && e.UnitId == unitid && e.TaskDate.Value.Date == date.Date && e.SerialNumber == serialNumber).OrderBy(x => x.PipeLineSortIndex).Select(x => x.PipelineId).Distinct().ToList(); + var taskWeldJointIds = db.View_HJGL_WeldingTask + .Where(e => e.UnitWorkId == unitworkid && e.UnitId == unitid && e.TaskDate.Value.Date == date.Date && e.SerialNumber == serialNumber && e.WeldJointId != null) + .Select(e => e.WeldJointId) + .Distinct() + .ToList(); + var taskComponents = (from relation in db.HJGL_Pipeline_ComponentJoint + join component in db.HJGL_Pipeline_Component on relation.PipelineComponentId equals component.PipelineComponentId into componentJoin + from componentItem in componentJoin.DefaultIfEmpty() + join weldJointItem in db.HJGL_WeldJoint on relation.WeldJointId equals weldJointItem.WeldJointId + where taskWeldJointIds.Contains(relation.WeldJointId) + && weldJointItem.PipelineId != null + && (relation.PipelineComponentCode != null || (componentItem != null && componentItem.PipelineComponentCode != null)) + select new + { + PipelineId = weldJointItem.PipelineId, + PipelineComponentCode = componentItem != null && componentItem.PipelineComponentCode != null ? componentItem.PipelineComponentCode : relation.PipelineComponentCode + }).Distinct().ToList(); //领料出库需要排除散件材料 - var MaterDatial = from x in db.HJGL_PipeLineMat - join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode - where pipelineList.Contains(x.PipelineId) && x.PrefabricatedComponents != null - select new - { - x.PipelineId, - x.PrefabricatedComponents, - x.MaterialCode, - x.Number, - y.MaterialUnit, - }; + var allMaterDatial = (from x in db.HJGL_PipeLineMat + join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode + where pipelineList.Contains(x.PipelineId) && x.PrefabricatedComponents != null + select new + { + x.PipelineId, + x.PrefabricatedComponents, + x.MaterialCode, + x.Number, + y.MaterialUnit, + }).ToList(); + var componentPipelineIds = taskComponents.Select(x => x.PipelineId).Distinct().ToList(); + var MaterDatial = taskComponents.Any() + ? allMaterDatial.Where(mat => !componentPipelineIds.Contains(mat.PipelineId) + || taskComponents.Any(component => component.PipelineId == mat.PipelineId + && component.PipelineComponentCode == mat.PrefabricatedComponents)).ToList() + : allMaterDatial; //var outMateriaList = from x in db.HJGL_PipeLineMat // join y in db.HJGL_MaterialCodeLib on x.MaterialCode equals y.MaterialCode // where pipelineList.Contains(x.PipelineId) @@ -787,7 +810,7 @@ namespace BLL }; TwInOutplandetailService.Add(detail); } - var twinoutplandetailRelationList = MaterDatial.ToList().Select(x => new Tw_InOutPlanDetail_Relation + var twinoutplandetailRelationList = MaterDatial.Select(x => new Tw_InOutPlanDetail_Relation { PipelineId = x.PipelineId, MaterialCode = x.MaterialCode, @@ -826,7 +849,7 @@ namespace BLL }; TwInOutplandetailService.Add(detail); } - var twinoutplandetailRelationList = MaterDatial.ToList().Select(x => new Tw_InOutPlanDetail_Relation + var twinoutplandetailRelationList = MaterDatial.Select(x => new Tw_InOutPlanDetail_Relation { PipelineId = x.PipelineId, MaterialCode = x.MaterialCode, @@ -841,4 +864,4 @@ namespace BLL } -} \ No newline at end of file +} diff --git a/SGGL/FineUIPro.Web/File/Fastreport/组件打印.frx b/SGGL/FineUIPro.Web/File/Fastreport/组件打印.frx index 6892e540..8bdea399 100644 --- a/SGGL/FineUIPro.Web/File/Fastreport/组件打印.frx +++ b/SGGL/FineUIPro.Web/File/Fastreport/组件打印.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -99,7 +99,7 @@ namespace FastReport } - + diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 8bc11dec..d70cb478 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1595,6 +1595,7 @@ + @@ -10891,6 +10892,13 @@ PrePipelineQRCodeIn.aspx + + PrePipelineComponentJointIn.aspx + ASPXCodeBehind + + + PrePipelineComponentJointIn.aspx + ProductionSchedulingPlan.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx index e3aa99d9..27e2552c 100644 --- a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx @@ -88,6 +88,8 @@ + + diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs index 219cbb56..c672b73c 100644 --- a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.cs @@ -653,6 +653,12 @@ if (!string.IsNullOrEmpty(drpFlowingSection.SelectedValue) && drpFlowingSection. { PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("PrePipelineQRCodeIn.aspx?", "导入 - "))); + } + + protected void btnImportComponentJoint_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("PrePipelineComponentJointIn.aspx?", "导入 - "))); + } protected void btnSinglePreview_Click(object sender, EventArgs e) { diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.designer.cs index a464984d..60a019fc 100644 --- a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipeline.aspx.designer.cs @@ -239,6 +239,15 @@ namespace FineUIPro.Web.HJGL.PreDesign /// protected global::FineUIPro.Button btnImportQRCode; + /// + /// btnImportComponentJoint 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnImportComponentJoint; + /// /// btnBatchAdd 控件。 /// diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx new file mode 100644 index 00000000..e139b05c --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx @@ -0,0 +1,89 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PrePipelineComponentJointIn.aspx.cs" Inherits="FineUIPro.Web.HJGL.PreDesign.PrePipelineComponentJointIn" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.cs new file mode 100644 index 00000000..e02ce59f --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.cs @@ -0,0 +1,336 @@ +using BLL; +using MiniExcelLibs; +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Linq; + +namespace FineUIPro.Web.HJGL.PreDesign +{ + public partial class PrePipelineComponentJointIn : PageBase + { + private string initPath = Const.ExcelUrl; + + public static List ComponentJointList = new List(); + + public static string errorInfos = string.Empty; + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.hdFileName.Text = string.Empty; + if (ComponentJointList != null) + { + ComponentJointList.Clear(); + } + errorInfos = string.Empty; + } + } + + protected void btnAudit_Click(object sender, EventArgs e) + { + try + { + if (this.fuAttachUrl.HasFile == false) + { + ShowNotify("请您选择Excel文件!", MessageBoxIcon.Warning); + return; + } + string isXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower(); + if (isXls != ".xlsx") + { + ShowNotify("只可以选择Excel文件!", MessageBoxIcon.Warning); + return; + } + ComponentJointList.Clear(); + errorInfos = string.Empty; + + string rootPath = Server.MapPath("~/"); + string initFullPath = rootPath + initPath; + if (!Directory.Exists(initFullPath)) + { + Directory.CreateDirectory(initFullPath); + } + + this.hdFileName.Text = BLL.Funs.GetNewFileName() + isXls; + string filePath = initFullPath + this.hdFileName.Text; + this.fuAttachUrl.PostedFile.SaveAs(filePath); + ImportXlsToData(filePath); + } + catch (Exception ex) + { + Alert alert = new Alert + { + Message = "'" + ex.Message + "'", + Target = Target.Self + }; + alert.Show(); + } + } + + private void ImportXlsToData(string fileName) + { + var rows = MiniExcel.QueryAsDataTable(fileName, useHeaderRow: true); + Model.ResponeData responeData = AddDatasetToSQL(rows, 3); + if (responeData.code == 1) + { + ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success); + } + else + { + Alert alert = new Alert + { + Message = responeData.message, + Target = Target.Self + }; + alert.Show(); + } + } + + private Model.ResponeData AddDatasetToSQL(DataTable pds, int cols) + { + Model.ResponeData responeData = new Model.ResponeData(); + List result = new List(); + if (pds == null) + { + responeData.code = 0; + responeData.message = "导入数据为空!"; + return responeData; + } + + int ic = pds.Columns.Count; + int ir = pds.Rows.Count; + if (ic < cols || !pds.Columns.Contains("管线号") || !pds.Columns.Contains("预制组件") || !pds.Columns.Contains("焊口号")) + { + responeData.code = 0; + responeData.message = "导入Excel格式错误!模板列必须包含:管线号、预制组件、焊口号"; + return responeData; + } + if (ir == 0) + { + responeData.code = 0; + responeData.message = "导入数据为空!"; + return responeData; + } + + var getPipeline = from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId select x; + List importItems = new List(); + + for (int i = 0; i < ir; i++) + { + string pipelineCode = GetCellValue(pds.Rows[i], "管线号"); + string pipelineComponentCode = GetCellValue(pds.Rows[i], "预制组件"); + string weldJointCode = GetCellValue(pds.Rows[i], "焊口号"); + + if (string.IsNullOrEmpty(pipelineCode) && string.IsNullOrEmpty(pipelineComponentCode) && string.IsNullOrEmpty(weldJointCode)) + { + continue; + } + + if (string.IsNullOrEmpty(pipelineCode)) + { + result.Add("第" + (i + 2).ToString() + "行,管线号,此项为必填项!"); + continue; + } + if (string.IsNullOrEmpty(pipelineComponentCode)) + { + result.Add("第" + (i + 2).ToString() + "行,预制组件,此项为必填项!"); + continue; + } + if (string.IsNullOrEmpty(weldJointCode)) + { + result.Add("第" + (i + 2).ToString() + "行,焊口号,此项为必填项!"); + continue; + } + + var pipeline = getPipeline.FirstOrDefault(x => x.PipelineCode == pipelineCode); + if (pipeline == null) + { + result.Add("第" + (i + 2).ToString() + "行,不存在此管线号-" + pipelineCode); + continue; + } + + var pipelineComponent = HJGL_PipelineComponentService.GetPipelineComponentByCodeandpipelineId(pipelineComponentCode, pipeline.PipelineId); + if (pipelineComponent == null) + { + result.Add("第" + (i + 2).ToString() + "行,不存在此预制组件-" + pipelineComponentCode); + continue; + } + + var weldJoint = WeldJointService.GetWeldJointsByWeldJointCode(pipeline.PipelineId, weldJointCode); + if (weldJoint == null) + { + result.Add("第" + (i + 2).ToString() + "行,不存在此焊口号-" + weldJointCode); + continue; + } + + importItems.Add(new ComponentJointImportItem + { + PipelineId = pipeline.PipelineId, + PipelineCode = pipeline.PipelineCode, + PipelineComponentId = pipelineComponent.PipelineComponentId, + PipelineComponentCode = pipelineComponent.PipelineComponentCode, + WeldJointId = weldJoint.WeldJointId, + WeldJointCode = weldJoint.WeldJointCode + }); + } + + var conflictWeldJoints = importItems + .GroupBy(x => x.WeldJointId) + .Where(x => x.Select(y => y.PipelineComponentId).Distinct().Count() > 1) + .Select(x => x.First().PipelineCode + "-" + x.First().WeldJointCode) + .ToList(); + if (conflictWeldJoints.Count > 0) + { + result.Add("同一焊口不能导入到多个组件:" + string.Join("、", conflictWeldJoints)); + } + + if (result.Count > 0) + { + ComponentJointList.Clear(); + errorInfos = string.Join("|", result.Distinct()); + responeData.code = 0; + responeData.message = errorInfos; + return responeData; + } + + ComponentJointList = importItems + .GroupBy(x => new { x.PipelineComponentId, x.WeldJointId }) + .Select(x => x.First()) + .ToList(); + errorInfos = string.Empty; + responeData.code = ComponentJointList.Count > 0 ? 1 : 0; + responeData.message = ComponentJointList.Count > 0 ? string.Empty : "导入数据为空!"; + return responeData; + } + + protected void btnImport_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(errorInfos)) + { + if (!string.IsNullOrEmpty(this.hdFileName.Text)) + { + if (ComponentJointList.Count > 0) + { + this.Grid1.Hidden = false; + this.Grid1.DataIDField = "WeldJointId"; + this.Grid1.DataSource = ComponentJointList; + this.Grid1.DataBind(); + Grid1.RecordCount = ComponentJointList.Count; + } + } + else + { + ShowNotify("请先审核要导入的文件!", MessageBoxIcon.Warning); + } + } + else + { + ShowNotify("请先将错误数据修正,再重新导入提交!", MessageBoxIcon.Warning); + } + } + + protected void btnSave_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(errorInfos)) + { + ShowNotify("请先将错误数据修正,再重新导入提交!", MessageBoxIcon.Warning); + return; + } + + if (ComponentJointList.Count > 0) + { + foreach (var item in ComponentJointList) + { + var componentJoint = BLL.HJGL_PipelineComponentjointService.GetHJGL_Pipeline_ComponentJointByWeldJointId(item.WeldJointId); + if (componentJoint != null) + { + componentJoint.PipelineComponentCode = item.PipelineComponentCode; + componentJoint.PipelineComponentId = item.PipelineComponentId; + componentJoint.WeldJointCode = item.WeldJointCode; + componentJoint.WeldJointId = item.WeldJointId; + HJGL_PipelineComponentjointService.UpdateHJGL_Pipeline_ComponentJoint(componentJoint); + } + else + { + Model.HJGL_Pipeline_ComponentJoint newComponentJoint = new Model.HJGL_Pipeline_ComponentJoint(); + newComponentJoint.Id = SQLHelper.GetNewID(); + newComponentJoint.PipelineComponentCode = item.PipelineComponentCode; + newComponentJoint.PipelineComponentId = item.PipelineComponentId; + newComponentJoint.WeldJointCode = item.WeldJointCode; + newComponentJoint.WeldJointId = item.WeldJointId; + newComponentJoint.State = 0; + HJGL_PipelineComponentjointService.AddHJGL_Pipeline_ComponentJoint(newComponentJoint); + } + } + } + + string rootPath = Server.MapPath("~/"); + string filePath = rootPath + initPath + this.hdFileName.Text; + if (filePath != string.Empty && System.IO.File.Exists(filePath)) + { + System.IO.File.Delete(filePath); + } + ShowNotify("导入成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + protected void btnDownLoad_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string tempDirectory = rootPath + @"File\Excel\Temp\"; + if (!Directory.Exists(tempDirectory)) + { + Directory.CreateDirectory(tempDirectory); + } + string tempPath = tempDirectory + "组件焊口信息导入模板" + string.Format("{0:yyyyMMddHHmmss}", DateTime.Now) + ".xlsx"; + DataTable template = new DataTable(); + template.Columns.Add("管线号"); + template.Columns.Add("预制组件"); + template.Columns.Add("焊口号"); + MiniExcel.SaveAs(tempPath, template); + + FileInfo info = new FileInfo(tempPath); + long fileSize = info.Length; + Response.ClearContent(); + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("组件焊口信息导入模板.xlsx", System.Text.Encoding.UTF8)); + Response.ContentType = "excel/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.AddHeader("Content-Length", fileSize.ToString().Trim()); + Response.TransmitFile(tempPath, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(tempPath); + } + + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + this.Grid1.DataSource = ComponentJointList; + this.Grid1.DataBind(); + Grid1.RecordCount = ComponentJointList.Count; + } + + private string GetCellValue(DataRow row, string columnName) + { + return Convert.ToString(row[columnName]).Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "").Trim(); + } + + public class ComponentJointImportItem + { + public string PipelineId { get; set; } + + public string PipelineCode { get; set; } + + public string PipelineComponentId { get; set; } + + public string PipelineComponentCode { get; set; } + + public string WeldJointId { get; set; } + + public string WeldJointCode { get; set; } + } + } +} diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.designer.cs new file mode 100644 index 00000000..f94bc931 --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/PrePipelineComponentJointIn.aspx.designer.cs @@ -0,0 +1,143 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.HJGL.PreDesign +{ + + + public partial class PrePipelineComponentJointIn + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// hdFileName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdFileName; + + /// + /// btnDownLoad 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnDownLoad; + + /// + /// btnAudit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAudit; + + /// + /// btnImport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnImport; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// fuAttachUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FileUpload fuAttachUrl; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + } +} diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx index 08f8d3d3..e49f353f 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx @@ -34,6 +34,11 @@ background-color: green; } + .f-grid-row.priority { + background-color: #1e88e5; + color: #fff; + } + .f-grid-row { font-size: smaller; } @@ -138,7 +143,9 @@ - + + + @@ -174,9 +181,9 @@ + SortField="Id" SortDirection="ASC" OnSort="Grid1_Sort" EnableCheckBoxSelect="true"> > priorityComponents + { + get + { + var value = ViewState["priorityComponents"] as Dictionary>; + if (value == null) + { + value = new Dictionary>(); + ViewState["priorityComponents"] = value; + } + return value; + } + set + { + ViewState["priorityComponents"] = value; + } + } + protected void Page_Load(object sender, EventArgs e) { @@ -86,6 +104,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage ; HJGL_MaterialService.materialStockItems_FIELD = new List(); HJGL_MaterialService.materialStockItems_SHOP = new List(); dicSeclectPipeLine = new Dictionary(); + priorityComponents = new Dictionary>(); var pipeline = (from x in Funs.DB.HJGL_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId select x.FlowingSection).Distinct().ToList(); @@ -464,23 +483,66 @@ namespace FineUIPro.Web.HJGL.WeldingManage }*/ } - protected void Grid2_RowClick(object sender, GridRowClickEventArgs e) + + private void BindMaterialDetail(string pipelineId) { - var tb = tw_PipeMatMatchOutputs.Where(x => x.PipelineId == Grid2.SelectedRowID).ToList(); + var tb = tw_PipeMatMatchOutputs.Where(x => x.PipelineId == pipelineId).ToList(); Grid1.DataSource = tb; Grid1.DataBind(); + + var selectList = new List(); for (int i = 0; i < Grid1.Rows.Count; i++) { var model = Grid1.Rows[i].DataItem as Tw_PipeMatMatchOutput; - - if (model?.MatchRate < 1 || model?.MatchRate == null) + if (model == null) { - Grid1.Rows[i].RowCssClass = "red"; - + continue; } + if (IsPriorityComponent(model.PipelineId, model.PrefabricatedComponents)) + { + Grid1.Rows[i].RowCssClass = "priority"; + selectList.Add(model.Id); + } + else if (model.MatchRate < 1 || model.MatchRate == null) + { + Grid1.Rows[i].RowCssClass = "red"; + } } + Grid1.SelectedRowIDArray = selectList.ToArray(); + } + + private bool IsPriorityComponent(string pipelineId, string prefabricatedComponents) + { + return !string.IsNullOrEmpty(pipelineId) + && !string.IsNullOrEmpty(prefabricatedComponents) + && priorityComponents.ContainsKey(pipelineId) + && priorityComponents[pipelineId].Contains(prefabricatedComponents); + } + + private Dictionary> GetPriorityComponentList() + { + return priorityComponents + .Where(x => x.Value != null && x.Value.Any()) + .ToDictionary(x => x.Key, x => x.Value.ToList()); + } + + private void RefreshMatchResult() + { + tw_PipeMatMatchOutputs = TwArrivalStatisticsService.GetPipeMatMatch( + this.CurrUser.LoginProjectId, + dicSeclectPipeLine.Keys.ToList(), + drpWarehouse.SelectedValue, + GetPriorityComponentList()); + BindGrid3(); + BindGrid2(); + } + + protected void Grid2_RowClick(object sender, GridRowClickEventArgs e) + { + BindMaterialDetail(Grid2.SelectedRowID); + } protected void Grid1_RowClick(object sender, GridRowClickEventArgs e) { @@ -520,7 +582,14 @@ namespace FineUIPro.Web.HJGL.WeldingManage { Grid1.SortDirection = e.SortDirection; Grid1.SortField = e.SortField; - BindGrid(); + if (!string.IsNullOrEmpty(Grid2.SelectedRowID) && tw_PipeMatMatchOutputs != null && tw_PipeMatMatchOutputs.Any()) + { + BindMaterialDetail(Grid2.SelectedRowID); + } + else + { + BindGrid(); + } } #endregion @@ -613,10 +682,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage dicSeclectPipeLine.Add(node.NodeID, node.Text); } } - tw_PipeMatMatchOutputs = TwArrivalStatisticsService.GetPipeMatMatch(this.CurrUser.LoginProjectId, dicSeclectPipeLine.Keys.ToList(), drpWarehouse.SelectedValue); - - BindGrid3(); - BindGrid2(); + RefreshMatchResult(); } protected void btnDeletePipelineMatchMat_Click(object sender, EventArgs e) @@ -626,6 +692,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage foreach (string rowId in Grid3.SelectedRowIDArray) { dicSeclectPipeLine.Remove(rowId); + priorityComponents.Remove(rowId); var node = tvControlItem.FindNode(rowId); if (node != null) { @@ -633,25 +700,63 @@ namespace FineUIPro.Web.HJGL.WeldingManage } } - tw_PipeMatMatchOutputs = TwArrivalStatisticsService.GetPipeMatMatch(this.CurrUser.LoginProjectId, dicSeclectPipeLine.Keys.ToList(), drpWarehouse.SelectedValue); - - BindGrid3(); - BindGrid2(); + RefreshMatchResult(); } } + + protected void btnPriorityComponents_Click(object sender, EventArgs e) + { + string selectedPipelineId = Grid2.SelectedRowID; + if (string.IsNullOrEmpty(selectedPipelineId)) + { + ShowNotify("请先在材料匹配列表选择管线!", MessageBoxIcon.Warning); + return; + } + + var selectedComponents = new HashSet(); + foreach (int rowIndex in Grid1.SelectedRowIndexArray) + { + if (Grid1.DataKeys[rowIndex].Length < 3) + { + continue; + } + + string pipelineId = Grid1.DataKeys[rowIndex][1]?.ToString(); + string componentCode = Grid1.DataKeys[rowIndex][2]?.ToString(); + if (pipelineId == selectedPipelineId && !string.IsNullOrEmpty(componentCode)) + { + selectedComponents.Add(componentCode); + } + } + + if (selectedComponents.Any()) + { + priorityComponents[selectedPipelineId] = selectedComponents; + } + else + { + priorityComponents.Remove(selectedPipelineId); + } + + RefreshMatchResult(); + BindMaterialDetail(selectedPipelineId); + } + protected void btnGenTask_Click(object sender, EventArgs e) { if (Grid2.SelectedRowIDArray.Count() > 0) { - SaveTask(); - ShowNotify("生成任务单成功!", MessageBoxIcon.Warning); - // Alert.Show("生成任务单成功!", MessageBoxIcon.Warning); - Grid1.DataSource = null; - Grid1.DataBind(); - Grid2.DataSource = null; - Grid2.DataBind(); - Grid3.DataSource = null; - Grid3.DataBind(); + if (SaveTask()) + { + ShowNotify("生成任务单成功!", MessageBoxIcon.Warning); + // Alert.Show("生成任务单成功!", MessageBoxIcon.Warning); + Grid1.DataSource = null; + Grid1.DataBind(); + Grid2.DataSource = null; + Grid2.DataBind(); + Grid3.DataSource = null; + Grid3.DataBind(); + } } else { @@ -659,7 +764,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage } } - private void SaveTask() + private bool SaveTask() { var weldingRods = from x in Funs.DB.Base_Consumables where x.ConsumablesType == "2" select x; var weldingWires = from x in Funs.DB.Base_Consumables where x.ConsumablesType == "1" select x; @@ -679,6 +784,21 @@ namespace FineUIPro.Web.HJGL.WeldingManage { selectRowId = selectRowId.Where(x => x.JointAttribute == "预制口").ToList(); } + var priorityWeldJointIds = GetPriorityWeldJointIds(Grid2.SelectedRowIDArray.ToList()); + if (priorityWeldJointIds.Any()) + { + if (priorityWeldJointIds.Any(x => !x.Value.Any())) + { + ShowNotify("选中组件未找到关联焊口,无法按组件生成任务单!", MessageBoxIcon.Warning); + return false; + } + selectRowId = selectRowId.Where(x => !priorityWeldJointIds.ContainsKey(x.PipelineId) || priorityWeldJointIds[x.PipelineId].Contains(x.WeldJointId)).ToList(); + } + if (!selectRowId.Any()) + { + ShowNotify("未找到可生成任务单的焊口!", MessageBoxIcon.Warning); + return false; + } foreach (var weldjoint in selectRowId) { string canWeldingRodName = string.Empty; @@ -713,7 +833,7 @@ namespace FineUIPro.Web.HJGL.WeldingManage if (oldWeldTask != null) { ShowNotify("所选焊口已存在任务单,无法保存!", MessageBoxIcon.Warning); - return; + return false; } Model.HJGL_WeldJoint weldJoint = BLL.WeldJointService.GetWeldJointByWeldJointId(NewTask.WeldJointId); if (weldJoint != null) @@ -786,7 +906,36 @@ namespace FineUIPro.Web.HJGL.WeldingManage BLL.WeldTaskService.AddWeldTask(NewTask); } + return true; } + + private Dictionary> GetPriorityWeldJointIds(List selectedPipelineIds) + { + var result = new Dictionary>(); + var selectedPriority = priorityComponents + .Where(x => selectedPipelineIds.Contains(x.Key) && x.Value != null && x.Value.Any()) + .ToList(); + + foreach (var item in selectedPriority) + { + string pipelineId = item.Key; + var componentCodes = item.Value.ToList(); + var weldJointIds = (from joint in Funs.DB.HJGL_Pipeline_ComponentJoint + join weldJoint in Funs.DB.HJGL_WeldJoint on joint.WeldJointId equals weldJoint.WeldJointId + join component in Funs.DB.HJGL_Pipeline_Component on joint.PipelineComponentId equals component.PipelineComponentId into componentJoin + from componentItem in componentJoin.DefaultIfEmpty() + where joint.WeldJointId != null + && weldJoint.PipelineId == pipelineId + && ((componentItem != null && componentCodes.Contains(componentItem.PipelineComponentCode)) + || componentCodes.Contains(joint.PipelineComponentCode)) + select joint.WeldJointId).Distinct().ToList(); + + result[pipelineId] = new HashSet(weldJointIds); + } + + return result; + } + private bool IsCoverClass(string wpsClass, string matClass) { bool isCover = false; diff --git a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.designer.cs index 943a5341..1095bf1c 100644 --- a/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HJGL/WeldingManage/WeldMatMatch.aspx.designer.cs @@ -257,6 +257,15 @@ namespace FineUIPro.Web.HJGL.WeldingManage /// protected global::FineUIPro.Label lbNote; + /// + /// btnPriorityComponents 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPriorityComponents; + /// /// btnGenTask 控件。 /// From db191beccd00575f257c9ecc4cb8393bac926ff2 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 27 May 2026 14:52:43 +0800 Subject: [PATCH 10/11] 1 --- SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index d70cb478..65f577f8 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -17042,7 +17042,7 @@ - + From 729cf243383aa1cab06733798420bf2b63e9612d Mon Sep 17 00:00:00 2001 From: fei550 <1420031550@qq.com> Date: Wed, 27 May 2026 17:57:11 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=9D=90=E6=96=99?= =?UTF-8?q?=E7=BC=96=E7=A0=81=E5=92=8C=E6=89=B9=E6=AC=A1=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/BLL/CLGL/TwArrivalStatisticsService.cs | 9 ++++ .../CLGL/TwInOutplandetailRelationService.cs | 10 ++++- SGGL/BLL/CLGL/TwInOutplandetailService.cs | 5 ++- SGGL/BLL/CLGL/TwInputdetailBarCodeService.cs | 3 ++ SGGL/BLL/CLGL/TwInputdetailService.cs | 8 +++- SGGL/BLL/CLGL/TwMaterialstockService.cs | 5 ++- SGGL/BLL/CLGL/TwOutputdetailService..cs | 10 ++++- .../HJGL/PreDesign/HJGL_MaterialService.cs | 10 ++++- .../FineUIPro.Web/CLGL/ArrivalStatistics.aspx | 9 ++++ SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx | 7 ++- SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx | 3 ++ SGGL/FineUIPro.Web/CLGL/InputMaster.aspx | 18 ++++++++ SGGL/FineUIPro.Web/CLGL/MaterialStock.aspx | 9 ++++ SGGL/FineUIPro.Web/CLGL/OutPlanMaster.aspx | 37 +++++++++++++++- .../FineUIPro.Web/CLGL/OutPlanMasterEdit.aspx | 18 ++++++++ SGGL/FineUIPro.Web/CLGL/OutPlanMasterOut.aspx | 9 ++++ .../CLGL/OutPlanMasterSelect.aspx | 9 ++++ .../CLGL/OutPlanMasterSelect.aspx.cs | 5 ++- .../CLGL/OutPlanMasterSelectStock.aspx | 9 ++++ SGGL/FineUIPro.Web/CLGL/OutputMaster.aspx | 9 ++++ .../File/Fastreport/材料入库单.frx | 6 +-- .../HJGL/DataImport/MaterialInformation.aspx | 44 +++++++++++++++++-- .../DataImport/MaterialInformation.aspx.cs | 6 +-- .../HJGL/DataImport/MaterialStock.aspx | 14 +++++- SGGL/Model/CLGL/Tw_ArrivalStatisticsOutPut.cs | 3 ++ SGGL/Model/CLGL/Tw_InOutDetailOutput.cs | 4 ++ .../Model/CLGL/Tw_InputDetailBarCodeOutput.cs | 3 ++ SGGL/Model/CLGL/Tw_MaterialStockOutput.cs | 5 ++- SGGL/Model/CLGL/Tw_PipeMatMatchOutput.cs | 3 ++ .../PreDesign/Material/MaterialStockItem.cs | 14 +++++- 30 files changed, 276 insertions(+), 28 deletions(-) diff --git a/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs b/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs index 15542c32..896701d7 100644 --- a/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs +++ b/SGGL/BLL/CLGL/TwArrivalStatisticsService.cs @@ -70,6 +70,9 @@ namespace BLL StockNum = m == null ? 0 : (decimal)m.StockNum, NeedNum = x == null ? 0 : x.NeedNum, RealNum = y == null ? 0 : y.RealNum, + Code = z == null ? null : z.Code, + HeatNo = z == null ? null : z.HeatNo, + BatchNo = z == null ? null : z.BatchNo, MaterialName = z == null ? null : z.MaterialName, MaterialSpec = z == null ? null : z.MaterialSpec, MaterialUnit = z == null ? null : z.MaterialUnit, @@ -213,6 +216,9 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc PipelineCode = z.PipelineCode, PrefabricatedComponents = x.PrefabricatedComponents, MaterialCode = x.MaterialCode, + Code = y.Code, + HeatNo = y.HeatNo, + BatchNo = y.BatchNo, MaterialName = y.MaterialName, MaterialSpec = y.MaterialSpec, MaterialUnit = y.MaterialUnit, @@ -261,6 +267,9 @@ var stockList = TwMaterialstockService.GetTw_MaterialStockByModle(twMaterialStoc UnitWorkName = m.UnitWorkName, PrefabricatedComponents = x.PrefabricatedComponents, MaterialCode = x.MaterialCode, + Code = y.Code, + HeatNo = y.HeatNo, + BatchNo = y.BatchNo, MaterialName = y.MaterialName, MaterialSpec = y.MaterialSpec, MaterialUnit = y.MaterialUnit, diff --git a/SGGL/BLL/CLGL/TwInOutplandetailRelationService.cs b/SGGL/BLL/CLGL/TwInOutplandetailRelationService.cs index f8f618b1..ea011d04 100644 --- a/SGGL/BLL/CLGL/TwInOutplandetailRelationService.cs +++ b/SGGL/BLL/CLGL/TwInOutplandetailRelationService.cs @@ -66,6 +66,9 @@ namespace BLL y.PipelineCode, x.InOutPlanMasterId, x.MaterialCode, + Code = mat.Code, + mat.HeatNo, + mat.BatchNo, x.PrefabricatedComponents, x.Number, mat.MaterialName, @@ -219,7 +222,10 @@ namespace BLL 出库单编号 = master.CusBillCode, 管线号 = pipe.PipelineCode, 预制组件号 = x.PrefabricatedComponents, - 材料编码 = x.MaterialCode, + 材料主编码 = x.MaterialCode, + 材料编码 = y.Code, + 炉号 = y.HeatNo, + 批号 = y.BatchNo, 材料名称 = y.MaterialName, 材料描述 = y.MaterialDef, 单位 = y.MaterialUnit, @@ -228,4 +234,4 @@ namespace BLL return q; } } -} \ No newline at end of file +} diff --git a/SGGL/BLL/CLGL/TwInOutplandetailService.cs b/SGGL/BLL/CLGL/TwInOutplandetailService.cs index 9d0868e8..aec9d136 100644 --- a/SGGL/BLL/CLGL/TwInOutplandetailService.cs +++ b/SGGL/BLL/CLGL/TwInOutplandetailService.cs @@ -42,7 +42,8 @@ namespace BLL Id = x.Id, InOutPlanMasterId = x.InOutPlanMasterId, PipelineComponentId = x.PipelineComponentId, - MaterialCode = mat.Code, + MaterialCode = x.MaterialCode, + Code = mat.Code, HeatNo = x.HeatNo, BatchNo = x.BatchNo, PlanNum = x.PlanNum, @@ -200,4 +201,4 @@ namespace BLL } } -} \ No newline at end of file +} diff --git a/SGGL/BLL/CLGL/TwInputdetailBarCodeService.cs b/SGGL/BLL/CLGL/TwInputdetailBarCodeService.cs index 39b92a64..cec3453e 100644 --- a/SGGL/BLL/CLGL/TwInputdetailBarCodeService.cs +++ b/SGGL/BLL/CLGL/TwInputdetailBarCodeService.cs @@ -45,6 +45,9 @@ namespace BLL InputMasterId = x.InputMasterId, CusBillCode = master.CusBillCode, MaterialCode = x.MaterialCode, + Code = mat.Code, + HeatNo = mat.HeatNo, + BatchNo = mat.BatchNo, MaterialName = mat.MaterialName, MaterialDef = mat.MaterialDef, BarCode = x.BarCode diff --git a/SGGL/BLL/CLGL/TwInputdetailService.cs b/SGGL/BLL/CLGL/TwInputdetailService.cs index 4ac4a4e3..188ec6cf 100644 --- a/SGGL/BLL/CLGL/TwInputdetailService.cs +++ b/SGGL/BLL/CLGL/TwInputdetailService.cs @@ -40,6 +40,9 @@ namespace BLL InputMasterId = x.InputMasterId, PipelineComponentId = x.PipelineComponentId, MaterialCode = x.MaterialCode, + Code = mat.Code, + HeatNo = mat.HeatNo, + BatchNo = mat.BatchNo, PlanNum = x.PlanNum, ActNum = x.ActNum, PipelineComponentCode = y.PipelineComponentCode, @@ -135,7 +138,10 @@ namespace BLL select new { 入库单编号 = y.CusBillCode, - 材料编码 = x.MaterialCode, + 材料主编码 = x.MaterialCode, + 材料编码 = mat.Code, + 炉号 = mat.HeatNo, + 批号 = mat.BatchNo, 材料名称 = mat.MaterialName, 材料描述 = mat.MaterialDef, 计划数量 = x.PlanNum, diff --git a/SGGL/BLL/CLGL/TwMaterialstockService.cs b/SGGL/BLL/CLGL/TwMaterialstockService.cs index 6d3bcc3e..ac078e0b 100644 --- a/SGGL/BLL/CLGL/TwMaterialstockService.cs +++ b/SGGL/BLL/CLGL/TwMaterialstockService.cs @@ -42,6 +42,9 @@ namespace BLL PipeLineMatCode = x.PipeLineMatCode, StockNum = x.StockNum, ProjectId = x.ProjectId, + Code = mat.Code, + HeatNo = mat.HeatNo, + BatchNo = mat.BatchNo, MaterialName = mat.MaterialName, MaterialSpec = mat.MaterialSpec, MaterialUnit = mat.MaterialUnit, @@ -158,4 +161,4 @@ namespace BLL } } } -} \ No newline at end of file +} diff --git a/SGGL/BLL/CLGL/TwOutputdetailService..cs b/SGGL/BLL/CLGL/TwOutputdetailService..cs index 2c082dd1..bbd6db54 100644 --- a/SGGL/BLL/CLGL/TwOutputdetailService..cs +++ b/SGGL/BLL/CLGL/TwOutputdetailService..cs @@ -44,6 +44,9 @@ namespace BLL TypeInt = master.TypeInt, PipelineComponentId = x.PipelineComponentId, MaterialCode = x.MaterialCode, + Code = mat.Code, + HeatNo = mat.HeatNo, + BatchNo = mat.BatchNo, PlanNum = x.PlanNum, ActNum = x.ActNum, PipelineComponentCode = y.PipelineComponentCode, @@ -155,7 +158,10 @@ namespace BLL select new { 出库单编号 = master.CusBillCode, - 材料编码 = x.MaterialCode, + 材料主编码 = x.MaterialCode, + 材料编码 = y.Code, + 炉号 = y.HeatNo, + 批号 = y.BatchNo, 材料名称 = y.MaterialName, 材料描述 = y.MaterialDef, 计划数量 = x.PlanNum, @@ -165,4 +171,4 @@ namespace BLL } } -} \ No newline at end of file +} diff --git a/SGGL/BLL/HJGL/PreDesign/HJGL_MaterialService.cs b/SGGL/BLL/HJGL/PreDesign/HJGL_MaterialService.cs index 784ed5f9..f46f48e7 100644 --- a/SGGL/BLL/HJGL/PreDesign/HJGL_MaterialService.cs +++ b/SGGL/BLL/HJGL/PreDesign/HJGL_MaterialService.cs @@ -108,6 +108,9 @@ namespace BLL public static DataTable GetSHOPStockDt(string projectid) { string strSql = @" SELECT mat.MaterialCode, + lib.Code, + lib.HeatNo, + lib.BatchNo, lib.MaterialName, lib.MaterialSpec, lib.MaterialUnit, @@ -157,7 +160,7 @@ namespace BLL GROUP BY stockused.MaterialCode,stockused.MaterialName,stockused.MaterialUnit,stockused.MaterialSpec,stockused.MaterialMade ) AS aa ON mat.MaterialCode=aa.MaterialCode WHERE mat.projectid=@projectid - GROUP BY mat.MaterialCode,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num + GROUP BY mat.MaterialCode,lib.Code,lib.HeatNo,lib.BatchNo,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num "; List listStr = new List(); @@ -171,6 +174,9 @@ namespace BLL { string strSql = @" SELECT mat.MaterialCode, + lib.Code, + lib.HeatNo, + lib.BatchNo, lib.MaterialName, lib.MaterialSpec, lib.MaterialUnit, @@ -223,7 +229,7 @@ namespace BLL ON mat.MaterialCode=aa.MaterialCode WHERE mat.projectid=@Projectid AND Ins.State=@State - GROUP BY mat.MaterialCode,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num "; + GROUP BY mat.MaterialCode,lib.Code,lib.HeatNo,lib.BatchNo,lib.MaterialName,lib.MaterialSpec,lib.MaterialMade,lib.MaterialUnit,aa.num "; List listStr = new List(); listStr.Add(new SqlParameter("@Projectid", projectid)); listStr.Add(new SqlParameter("@PipeArea", BLL.PipelineService.PipeArea_SHOP)); diff --git a/SGGL/FineUIPro.Web/CLGL/ArrivalStatistics.aspx b/SGGL/FineUIPro.Web/CLGL/ArrivalStatistics.aspx index ef42c711..3e1f0ab4 100644 --- a/SGGL/FineUIPro.Web/CLGL/ArrivalStatistics.aspx +++ b/SGGL/FineUIPro.Web/CLGL/ArrivalStatistics.aspx @@ -61,8 +61,17 @@ + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx b/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx index 69886fb7..27081c7f 100644 --- a/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx +++ b/SGGL/FineUIPro.Web/CLGL/InPlanMaster.aspx @@ -158,8 +158,11 @@ - + + + diff --git a/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx b/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx index 87d0941c..8a8f7a58 100644 --- a/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx +++ b/SGGL/FineUIPro.Web/CLGL/InPlanMasterEdit.aspx @@ -66,6 +66,9 @@ + + + + + + + + @@ -179,8 +188,17 @@ FieldType="String" HeaderText="入库单编号" TextAlign="Left" HeaderTextAlign="Center"> + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/MaterialStock.aspx b/SGGL/FineUIPro.Web/CLGL/MaterialStock.aspx index ec77b46a..ecc6a8e7 100644 --- a/SGGL/FineUIPro.Web/CLGL/MaterialStock.aspx +++ b/SGGL/FineUIPro.Web/CLGL/MaterialStock.aspx @@ -65,8 +65,17 @@ FieldType="String" HeaderText="仓库编码" TextAlign="Left" HeaderTextAlign="Center"> + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/OutPlanMaster.aspx b/SGGL/FineUIPro.Web/CLGL/OutPlanMaster.aspx index 3fc1bf06..6e34cb4e 100644 --- a/SGGL/FineUIPro.Web/CLGL/OutPlanMaster.aspx +++ b/SGGL/FineUIPro.Web/CLGL/OutPlanMaster.aspx @@ -178,8 +178,17 @@ + + + + + + @@ -211,10 +220,22 @@ FieldType="String" HeaderText="预制组件号" HeaderTextAlign="Center" TextAlign="Left"> - + + + + + + @@ -262,10 +283,22 @@ FieldType="String" HeaderText="预制组件号" HeaderTextAlign="Center" TextAlign="Left"> - + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterEdit.aspx b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterEdit.aspx index 1df44192..f3b0c768 100644 --- a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterEdit.aspx +++ b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterEdit.aspx @@ -81,8 +81,17 @@ FieldType="String" HeaderText="管线号" TextAlign="Left" HeaderTextAlign="Center"> + + + + + + @@ -118,8 +127,17 @@ FieldType="String" HeaderText="管线号" TextAlign="Left" HeaderTextAlign="Center"> + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterOut.aspx b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterOut.aspx index e066e76b..75914890 100644 --- a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterOut.aspx +++ b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterOut.aspx @@ -61,8 +61,17 @@ FieldType="String" HeaderText="预制组件号" TextAlign="Left" HeaderTextAlign="Center"> + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx index fee957db..0d2499e0 100644 --- a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx +++ b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx @@ -87,8 +87,17 @@ + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx.cs b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx.cs index af52b468..a8e0e2b4 100644 --- a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx.cs +++ b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelect.aspx.cs @@ -233,6 +233,9 @@ namespace FineUIPro.Web.CLGL x.PipeLineMatId, x.PipelineId, x.MaterialCode, + lib.Code, + lib.HeatNo, + lib.BatchNo, lib.MaterialName, lib.MaterialSpec, lib.MaterialUnit, @@ -358,4 +361,4 @@ namespace FineUIPro.Web.CLGL #endregion } -} \ No newline at end of file +} diff --git a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelectStock.aspx b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelectStock.aspx index 68676741..2bdd6a00 100644 --- a/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelectStock.aspx +++ b/SGGL/FineUIPro.Web/CLGL/OutPlanMasterSelectStock.aspx @@ -64,8 +64,17 @@ FieldType="String" HeaderText="仓库编码" TextAlign="Left" HeaderTextAlign="Center"> + + + + + + diff --git a/SGGL/FineUIPro.Web/CLGL/OutputMaster.aspx b/SGGL/FineUIPro.Web/CLGL/OutputMaster.aspx index bc301bee..8640e859 100644 --- a/SGGL/FineUIPro.Web/CLGL/OutputMaster.aspx +++ b/SGGL/FineUIPro.Web/CLGL/OutputMaster.aspx @@ -177,8 +177,17 @@ FieldType="String" HeaderText="预制组件号" TextAlign="Left" HeaderTextAlign="Center"> --%> + + + + + + diff --git a/SGGL/FineUIPro.Web/File/Fastreport/材料入库单.frx b/SGGL/FineUIPro.Web/File/Fastreport/材料入库单.frx index d18c601f..4b64d246 100644 --- a/SGGL/FineUIPro.Web/File/Fastreport/材料入库单.frx +++ b/SGGL/FineUIPro.Web/File/Fastreport/材料入库单.frx @@ -1,5 +1,5 @@  - + using System; using System.Collections; using System.Collections.Generic; @@ -84,7 +84,7 @@ namespace FastReport } - + @@ -137,7 +137,7 @@ namespace FastReport - + diff --git a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx index 053453af..ff4b0ce8 100644 --- a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx +++ b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx @@ -119,9 +119,21 @@ FieldType="String" HeaderText="预制组件" HeaderTextAlign="Center" TextAlign="Left"> - + TextAlign="Left" Width="150px"> + + + + + + - + + + + + + @@ -211,10 +235,22 @@ - + + + + + + diff --git a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs index ff4ba3b1..36f6deb8 100644 --- a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs +++ b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialInformation.aspx.cs @@ -320,7 +320,7 @@ namespace FineUIPro.Web.HJGL.DataImport ///
private void BindGrid1(string pipelineId, string unitworkid) { - string strSql = @" SELECT pipe.PipeLineMatId, lib.MaterialCode,lib.MaterialName,lib.MaterialUnit, + string strSql = @" SELECT pipe.PipeLineMatId, lib.MaterialCode,lib.Code,lib.HeatNo,lib.BatchNo,lib.MaterialName,lib.MaterialUnit, lib.MaterialSpec,lib.MaterialMade,lib.MaterialDef,pipe.Number,pipe.PrefabricatedComponents FROM dbo.HJGL_PipeLineMat pipe LEFT JOIN dbo.HJGL_MaterialCodeLib lib ON lib.MaterialCode = pipe.MaterialCode @@ -355,7 +355,7 @@ namespace FineUIPro.Web.HJGL.DataImport } private void BindGrid2(string pipelineId, string unitworkid) { - string strSql = @" SELECT pipe.PipeLineMatId, lib.MaterialCode,lib.MaterialName,lib.MaterialUnit, + string strSql = @" SELECT pipe.PipeLineMatId, lib.MaterialCode,lib.Code,lib.HeatNo,lib.BatchNo,lib.MaterialName,lib.MaterialUnit, lib.MaterialSpec,lib.MaterialMade,lib.MaterialDef,pipe.Number FROM dbo.HJGL_PipeLineMat pipe LEFT JOIN dbo.HJGL_MaterialCodeLib lib ON lib.MaterialCode = pipe.MaterialCode @@ -386,7 +386,7 @@ namespace FineUIPro.Web.HJGL.DataImport private void BindGrid3(string pipelineId, string unitworkid) { - string strSql = @" SELECT pipe.PipeLineMatId, lib.MaterialCode,lib.MaterialName,lib.MaterialUnit, + string strSql = @" SELECT pipe.PipeLineMatId, lib.MaterialCode,lib.Code,lib.HeatNo,lib.BatchNo,lib.MaterialName,lib.MaterialUnit, lib.MaterialSpec,lib.MaterialMade,lib.MaterialDef,pipe.Number,pipe.PrefabricatedComponents FROM dbo.HJGL_PipeLineMat pipe LEFT JOIN dbo.HJGL_MaterialCodeLib lib ON lib.MaterialCode = pipe.MaterialCode diff --git a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialStock.aspx b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialStock.aspx index f0010b3a..a5e57063 100644 --- a/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialStock.aspx +++ b/SGGL/FineUIPro.Web/HJGL/DataImport/MaterialStock.aspx @@ -34,9 +34,21 @@ + + + + + + diff --git a/SGGL/Model/CLGL/Tw_ArrivalStatisticsOutPut.cs b/SGGL/Model/CLGL/Tw_ArrivalStatisticsOutPut.cs index 697f8620..2ba8370e 100644 --- a/SGGL/Model/CLGL/Tw_ArrivalStatisticsOutPut.cs +++ b/SGGL/Model/CLGL/Tw_ArrivalStatisticsOutPut.cs @@ -9,6 +9,9 @@ namespace Model public class Tw_ArrivalStatisticsOutPut { public string MaterialCode { get; set; } + public string Code { get; set; } + public string HeatNo { get; set; } + public string BatchNo { get; set; } public string MaterialName { get; set; } public string MaterialSpec { get; set; } public string MaterialUnit { get; set; } diff --git a/SGGL/Model/CLGL/Tw_InOutDetailOutput.cs b/SGGL/Model/CLGL/Tw_InOutDetailOutput.cs index ee7545c5..838cefec 100644 --- a/SGGL/Model/CLGL/Tw_InOutDetailOutput.cs +++ b/SGGL/Model/CLGL/Tw_InOutDetailOutput.cs @@ -17,6 +17,10 @@ namespace Model ///
public string HeatNo { get; set; } /// + /// 材料编码 + /// + public string Code { get; set; } + /// /// 材料名称 /// public string MaterialName { get; set; } diff --git a/SGGL/Model/CLGL/Tw_InputDetailBarCodeOutput.cs b/SGGL/Model/CLGL/Tw_InputDetailBarCodeOutput.cs index e1477f3b..c432dfac 100644 --- a/SGGL/Model/CLGL/Tw_InputDetailBarCodeOutput.cs +++ b/SGGL/Model/CLGL/Tw_InputDetailBarCodeOutput.cs @@ -7,6 +7,9 @@ namespace Model public string InputMasterId { get; set; } public string CusBillCode { get; set; } public string MaterialCode { get; set; } + public string Code { get; set; } + public string HeatNo { get; set; } + public string BatchNo { get; set; } public string MaterialName { get; set; } public string MaterialDef { get; set; } public string BarCode { get; set; } diff --git a/SGGL/Model/CLGL/Tw_MaterialStockOutput.cs b/SGGL/Model/CLGL/Tw_MaterialStockOutput.cs index 85daa9d9..49b83c4b 100644 --- a/SGGL/Model/CLGL/Tw_MaterialStockOutput.cs +++ b/SGGL/Model/CLGL/Tw_MaterialStockOutput.cs @@ -2,9 +2,12 @@ { public class Tw_MaterialStockOutput: Tw_MaterialStock { + public string Code { get; set; } + public string HeatNo { get; set; } + public string BatchNo { get; set; } public string MaterialName { get; set; } public string MaterialDef { get; set; } public string MaterialSpec { get; set; } public string MaterialUnit { get; set; } } -} \ No newline at end of file +} diff --git a/SGGL/Model/CLGL/Tw_PipeMatMatchOutput.cs b/SGGL/Model/CLGL/Tw_PipeMatMatchOutput.cs index 72534643..eb058fda 100644 --- a/SGGL/Model/CLGL/Tw_PipeMatMatchOutput.cs +++ b/SGGL/Model/CLGL/Tw_PipeMatMatchOutput.cs @@ -17,6 +17,9 @@ namespace Model public string UnitWorkName { get; set; } public string PrefabricatedComponents { get; set; } public string MaterialCode { get; set; } + public string Code { get; set; } + public string HeatNo { get; set; } + public string BatchNo { get; set; } public string MaterialName { get; set; } public string MaterialSpec { get; set; } public string MaterialUnit { get; set; } diff --git a/SGGL/Model/HJGL/PreDesign/Material/MaterialStockItem.cs b/SGGL/Model/HJGL/PreDesign/Material/MaterialStockItem.cs index 488a19c7..92f82e61 100644 --- a/SGGL/Model/HJGL/PreDesign/Material/MaterialStockItem.cs +++ b/SGGL/Model/HJGL/PreDesign/Material/MaterialStockItem.cs @@ -9,10 +9,22 @@ namespace Model public class MaterialStockItem { /// - /// 材料编码 + /// 材料主编码 /// public string MaterialCode { get; set; } /// + /// 材料编码 + /// + public string Code { get; set; } + /// + /// 炉号 + /// + public string HeatNo { get; set; } + /// + /// 批号 + /// + public string BatchNo { get; set; } + /// /// 材料名称 /// public string MaterialName { get; set; }