From ef5993ae75775f41fb96a2567a6e2caa7d697278 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Tue, 13 May 2025 11:18:34 +0800 Subject: [PATCH] =?UTF-8?q?20250513=20=E6=8E=92=E4=BA=A7=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_V2025-05-13-001_bwj.sql | 94 +++ SGGL/BLL/BLL.csproj | 1 + .../ProductionSchedulingPlanService.cs | 124 ++++ SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 8 + .../PreDesign/ProductionSchedulingPlan.aspx | 171 ++++++ .../ProductionSchedulingPlan.aspx.cs | 427 ++++++++++++++ .../ProductionSchedulingPlan.aspx.designer.cs | 233 ++++++++ SGGL/FineUIPro.Web/common/Menu_HJGL.xml | 1 + SGGL/Model/Model.cs | 547 ++++++++++++++++++ 9 files changed, 1606 insertions(+) create mode 100644 DataBase/版本日志/SGGLDB_V2025-05-13-001_bwj.sql create mode 100644 SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs create mode 100644 SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx create mode 100644 SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.cs create mode 100644 SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.designer.cs diff --git a/DataBase/版本日志/SGGLDB_V2025-05-13-001_bwj.sql b/DataBase/版本日志/SGGLDB_V2025-05-13-001_bwj.sql new file mode 100644 index 00000000..92221b63 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2025-05-13-001_bwj.sql @@ -0,0 +1,94 @@ + +insert into Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) +values('53948077-B51D-4FF3-BFB0-AB4E27C42875','Ųƻ','HJGL/PreDesign/ProductionSchedulingPlan.aspx',70,'1E36EA73-D536-4215-BFB9-A8771937BD89','Menu_HJGL',0,1,1) +go +insert into Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) +values('824DDB94-628F-4A4D-9977-E38F039578AA','53948077-B51D-4FF3-BFB0-AB4E27C42875','',1) +insert into Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) +values('5491A74E-F3EC-4C1D-AA5D-BB0283C7E36D','53948077-B51D-4FF3-BFB0-AB4E27C42875','޸',2) +insert into Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) +values('9B72FF93-6E2F-41DF-8BA9-3A1C82923B3B','53948077-B51D-4FF3-BFB0-AB4E27C42875','ɾ',3) +insert into Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) +values('8AD82894-12DA-47E8-8382-3E27633750E0','53948077-B51D-4FF3-BFB0-AB4E27C42875','',4) +go + +CREATE TABLE [dbo].[HJGL_ProductionSchedulingPlan]( + [ProductionSchedulingPlanId] [nvarchar](50) NOT NULL, + [ProjectId] [nvarchar](50) NULL, + [PipelineId] [nvarchar](50) NULL, + [FlowNum] [nvarchar](50) NULL, + [MainItemName] [nvarchar](50) NULL, + [Material] [nvarchar](50) NULL, + [Caliber] [nvarchar](50) NULL, + [Dain] [decimal](18, 2) NULL, + [TotalDyne] [decimal](18, 2) NULL, + [TotalPriority] [nvarchar](50) NULL, + [PriorityTotalDyne] [decimal](18, 2) NULL, + [PlanStartDate] [datetime] NULL, + [PlanEndDate] [datetime] NULL, + [Days] [int] NULL, + [AvgDailyWorkload] [numeric](18, 2) NULL, + CONSTRAINT [PK_HJGL_ProductionSchedulingPlan] PRIMARY KEY CLUSTERED +( + [ProductionSchedulingPlanId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +ALTER TABLE [dbo].[HJGL_ProductionSchedulingPlan] WITH CHECK ADD CONSTRAINT [FK_HJGL_ProductionSchedulingPlan_Base_Project] FOREIGN KEY([ProjectId]) +REFERENCES [dbo].[Base_Project] ([ProjectId]) +GO + +ALTER TABLE [dbo].[HJGL_ProductionSchedulingPlan] CHECK CONSTRAINT [FK_HJGL_ProductionSchedulingPlan_Base_Project] +GO + +ALTER TABLE [dbo].[HJGL_ProductionSchedulingPlan] WITH CHECK ADD CONSTRAINT [FK_HJGL_ProductionSchedulingPlan_HJGL_Pipeline] FOREIGN KEY([PipelineId]) +REFERENCES [dbo].[HJGL_Pipeline] ([PipelineId]) +GO + +ALTER TABLE [dbo].[HJGL_ProductionSchedulingPlan] CHECK CONSTRAINT [FK_HJGL_ProductionSchedulingPlan_HJGL_Pipeline] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'PipelineId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ˮκ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'FlowNum' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'MainItemName' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'Material' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ھ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'Caliber' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'Dain' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ܴ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'TotalDyne' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ȼ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'TotalPriority' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ȼܴ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'PriorityTotalDyne' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ƻʼʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'PlanStartDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ƻʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'PlanEndDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'Days' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ƽÿ칤' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan', @level2type=N'COLUMN',@level2name=N'AvgDailyWorkload' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Ųƻ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'HJGL_ProductionSchedulingPlan' +GO + + diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index e1b6c6a9..41380b65 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -407,6 +407,7 @@ + diff --git a/SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs b/SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs new file mode 100644 index 00000000..878660bf --- /dev/null +++ b/SGGL/BLL/HJGL/PreDesign/ProductionSchedulingPlanService.cs @@ -0,0 +1,124 @@ +using Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace BLL +{ + /// + /// 排产计划 + /// + public class ProductionSchedulingPlanService + { + /// + /// 根据主键获取排产计划 + /// + /// + /// + public static Model.HJGL_ProductionSchedulingPlan GetProductionSchedulingPlanById(string productionSchedulingPlanId) + { + return Funs.DB.HJGL_ProductionSchedulingPlan.FirstOrDefault(e => e.ProductionSchedulingPlanId == productionSchedulingPlanId); + } + + /// + /// 根据管线Id获取排产计划 + /// + /// + /// + /// + public static Model.HJGL_ProductionSchedulingPlan GetProductionSchedulingPlanByPipelineId(string projectId, string pipelineId) + { + return Funs.DB.HJGL_ProductionSchedulingPlan.FirstOrDefault(e => e.ProjectId == projectId && e.PipelineId == pipelineId); + } + + /// + /// 增加排产计划 + /// + /// + public static void AddProductionSchedulingPlan(Model.HJGL_ProductionSchedulingPlan plan) + { + SGGLDB db = Funs.DB; + Model.HJGL_ProductionSchedulingPlan newPlan = new HJGL_ProductionSchedulingPlan(); + newPlan.ProductionSchedulingPlanId = plan.ProductionSchedulingPlanId; + newPlan.ProjectId = plan.ProjectId; + newPlan.PipelineId = plan.PipelineId; + newPlan.FlowNum = plan.FlowNum; + newPlan.MainItemName = plan.MainItemName; + newPlan.Material = plan.Material; + newPlan.Caliber = plan.Caliber; + newPlan.Dain = plan.Dain; + newPlan.TotalDyne = plan.TotalDyne; + newPlan.TotalPriority = plan.TotalPriority; + newPlan.PriorityTotalDyne = plan.PriorityTotalDyne; + newPlan.PlanStartDate = plan.PlanStartDate; + newPlan.PlanEndDate = plan.PlanEndDate; + newPlan.Days = plan.Days; + newPlan.AvgDailyWorkload = plan.Days; + db.HJGL_ProductionSchedulingPlan.InsertOnSubmit(newPlan); + db.SubmitChanges(); + } + + /// + /// 修改排产计划 + /// + /// + public static void UpdateProductionSchedulingPlan(Model.HJGL_ProductionSchedulingPlan plan) + { + Model.SGGLDB db = Funs.DB; + Model.HJGL_ProductionSchedulingPlan newPlan = db.HJGL_ProductionSchedulingPlan.FirstOrDefault(e => e.ProductionSchedulingPlanId == plan.ProductionSchedulingPlanId); + if (newPlan != null) + { + newPlan.PipelineId = plan.PipelineId; + newPlan.FlowNum = plan.FlowNum; + newPlan.MainItemName = plan.MainItemName; + newPlan.Material = plan.Material; + newPlan.Caliber = plan.Caliber; + newPlan.Dain = plan.Dain; + newPlan.TotalDyne = plan.TotalDyne; + newPlan.TotalPriority = plan.TotalPriority; + newPlan.PriorityTotalDyne = plan.PriorityTotalDyne; + newPlan.PlanStartDate = plan.PlanStartDate; + newPlan.PlanEndDate = plan.PlanEndDate; + newPlan.Days = plan.Days; + newPlan.AvgDailyWorkload = plan.Days; + try + { + db.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict); + } + catch (System.Data.Linq.ChangeConflictException ex) + { + foreach (System.Data.Linq.ObjectChangeConflict occ in db.ChangeConflicts) + { + //以下是解决冲突的三种方法,选一种即可 + // 使用当前数据库中的值,覆盖Linq缓存中实体对象的值 + occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues); + // 使用Linq缓存中实体对象的值,覆盖当前数据库中的值 + occ.Resolve(System.Data.Linq.RefreshMode.KeepCurrentValues); + // 只更新实体对象中改变的字段的值,其他的保留不变 + occ.Resolve(System.Data.Linq.RefreshMode.KeepChanges); + } + // 这个地方要注意,Catch方法中,我们前面只是指明了怎样来解决冲突,这个地方还需要再次提交更新,这样的话,值 //才会提交到数据库。 + db.SubmitChanges(); + } + } + } + + /// + /// 根据主键删除排产计划 + /// + /// + public static void DeleteProductionSchedulingPlanById(string productionSchedulingPlanId) + { + SGGLDB db = Funs.DB; + Model.HJGL_ProductionSchedulingPlan plan = db.HJGL_ProductionSchedulingPlan.FirstOrDefault(e => e.ProductionSchedulingPlanId == productionSchedulingPlanId); + if (plan != null) + { + db.HJGL_ProductionSchedulingPlan.DeleteOnSubmit(plan); + db.SubmitChanges(); + } + } + } +} diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 7162b274..6c5fc43a 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1558,6 +1558,7 @@ + @@ -10584,6 +10585,13 @@ PrePipelineQRCodeIn.aspx + + ProductionSchedulingPlan.aspx + ASPXCodeBehind + + + ProductionSchedulingPlan.aspx + TrainNumberManager.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx new file mode 100644 index 00000000..37679631 --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx @@ -0,0 +1,171 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProductionSchedulingPlan.aspx.cs" Inherits="FineUIPro.Web.HJGL.PreDesign.ProductionSchedulingPlan" %> + + + + + + + 排产计划 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + --%> + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.cs new file mode 100644 index 00000000..45ea38ee --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.cs @@ -0,0 +1,427 @@ +using BLL; +using MiniExcelLibs; +using Model; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Data.SqlTypes; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Web; +using System.Web.WebSockets; + +namespace FineUIPro.Web.HJGL.PreDesign +{ + public partial class ProductionSchedulingPlan : PageBase + { + public int pageSize = 20; + public static DataTable GridDataTable = new DataTable(); + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); + this.InitTreeMenu();//加载树 + //HJGL_PipelineComponentService.InitMainItemDownList(drpState, true); + //HJGL_PipelineComponentService.InitMainItemDownProductionStateList(drpProductionState, true); + + //var pipeline = (from x in Funs.DB.HJGL_Pipeline + // where x.ProjectId == this.CurrUser.LoginProjectId + // select x.FlowingSection).Distinct().ToList(); + //this.drpFlowingSection.DataTextField = "Value"; + //this.drpFlowingSection.DataValueField = "Value"; + //this.drpFlowingSection.DataSource = pipeline; + //this.drpFlowingSection.DataBind(); + //Funs.FineUIPleaseSelect(drpFlowingSection); + } + } + + #region 加载树装置-单位-工作区 + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + + TreeNode rootNode1 = new TreeNode(); + rootNode1.NodeID = "1"; + rootNode1.Text = "建筑工程"; + rootNode1.CommandName = "建筑工程"; + rootNode1.Selectable = false; + this.tvControlItem.Nodes.Add(rootNode1); + + TreeNode rootNode2 = new TreeNode(); + rootNode2.NodeID = "2"; + rootNode2.Text = "安装工程"; + rootNode2.CommandName = "安装工程"; + rootNode2.Expanded = true; + this.tvControlItem.Nodes.Add(rootNode2); + + var pUnits = (from x in Funs.DB.Project_ProjectUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); + // 获取当前用户所在单位 + var currUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId); + + var unitWorkList = (from x in Funs.DB.WBS_UnitWork + where x.ProjectId == this.CurrUser.LoginProjectId + && x.SuperUnitWork == null && x.UnitId != null && x.ProjectType != null + select x).ToList(); + + List unitWork1 = null; + List unitWork2 = null; + + //// 当前为施工单位,只能操作本单位的数据 + //if (currUnit != null && currUnit.UnitType == Const.ProjectUnitType_2) + //{ + // unitWork1 = (from x in unitWorkList + // where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "1" + // select x).ToList(); + // unitWork2 = (from x in unitWorkList + // where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "2" + // select x).ToList(); + //} + //else + //{ + unitWork1 = (from x in unitWorkList where x.ProjectType == "1" select x).ToList(); + unitWork2 = (from x in unitWorkList where x.ProjectType == "2" select x).ToList(); + //} + + if (unitWork1.Count() > 0) + { + 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.FlowingSection).Distinct().Count(); + var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); + TreeNode tn1 = new TreeNode(); + tn1.NodeID = q.UnitWorkId; + //tn1.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; + tn1.Text = q.UnitWorkName; + tn1.ToolTip = "施工单位:" + unitNamesUnitIds; + tn1.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + 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); + } + //if (a > 0) + //{ + // BindNodes(tn1); + //} + } + } + if (unitWork2.Count() > 0) + { + 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(); + var unitNamesUnitIds = BLL.UnitService.getUnitNamesUnitIds(q.UnitId); + TreeNode tn2 = new TreeNode(); + tn2.NodeID = q.UnitWorkId; + tn2.Text = q.UnitWorkName + "【" + a.ToString() + "】" + "管线"; + if (q.UnitWorkId == this.hdUnitWorkId.Text) + { + tn2.Expanded = true; + } + tn2.ToolTip = "施工单位:" + unitNamesUnitIds; + tn2.CommandName = 1 + "|" + Funs.GetEndPageNumber(a, pageSize); + 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); + } + //if (a > 0) + //{ + // BindNodes(tn2); + //} + } + } + } + + private void BindNodes(TreeNode node) + { + 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 && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim()) + orderby x.PipelineCode + 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 comCount = (from x in Funs.DB.HJGL_Pipeline_Component where x.PipelineId == item.PipelineId select x).Count(); + TreeNode newNode = new TreeNode(); + newNode.Text = item.PipelineCode + "【" + comCount.ToString() + " " + "组件" + "】"; + newNode.ToolTip = "管线号【组件数】"; + newNode.CommandName = "管线"; + newNode.NodeID = item.PipelineId; + 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 + protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e) + { + if (e.Node.Nodes[0].NodeID == "加载流水段...") + { + e.Node.Nodes.Clear(); + BindNodes(e.Node); + } + + } + #region 点击TreeView + /// + /// 点击TreeView + /// + /// + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + if (e.CommandName.Split('|').Length == 2) + { + this.hdUnitWorkId.Text = this.tvControlItem.SelectedNodeID; + } + 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; + SaveProductionSchedulingPlan(); + } + } + else if (e.CommandName == "加载") + { + string CommandName = e.Node.ParentNode.CommandName; + e.Node.ParentNode.CommandName = (int.Parse(CommandName.Split('|')[0]) + 1) + "|" + int.Parse(CommandName.Split('|')[1]); + TreeNode treeNode = e.Node.ParentNode; + treeNode.Nodes.Remove(e.Node); + BindNodes(e.Node.ParentNode); + } + this.BindGrid(); + } + + /// + /// 保存数据 + /// + /// + private void SaveProductionSchedulingPlan() + { + if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID)) + { + var schedulingPlan = BLL.ProductionSchedulingPlanService.GetProductionSchedulingPlanByPipelineId(this.CurrUser.LoginProjectId, this.tvControlItem.SelectedNodeID); + if (schedulingPlan == null) + { + Model.HJGL_ProductionSchedulingPlan newPlan = new HJGL_ProductionSchedulingPlan(); + newPlan.ProductionSchedulingPlanId = SQLHelper.GetNewID(typeof(Model.HJGL_ProductionSchedulingPlan)); + newPlan.ProjectId = this.CurrUser.LoginProjectId; + newPlan.PipelineId = this.tvControlItem.SelectedNodeID; + var pipeline = BLL.PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID); + if (pipeline!=null) + { + newPlan.FlowNum = pipeline.FlowingSection; + if (!string.IsNullOrEmpty(pipeline.UnitWorkId)) + { + newPlan.MainItemName = BLL.UnitWorkService.getUnitWorkByUnitWorkId(pipeline.UnitWorkId).UnitWorkName; + } + if (!string.IsNullOrEmpty(pipeline.PipingClassId)) + { + newPlan.Material = BLL.Base_PipingClassService.GetPipingClassByPipingClassId(pipeline.PipingClassId).SteelType; + } + } + BLL.ProductionSchedulingPlanService.AddProductionSchedulingPlan(newPlan); + } + } + } + #endregion + + #region 数据绑定 + /// + /// 数据绑定 + /// + private void BindGrid() + { + if (tvControlItem.SelectedNode == null) return; + string strSql = @"SELECT p.ProductionSchedulingPlanId, + p.ProjectId, + p.PipelineId, + p.FlowNum, + p.MainItemName, + p.Material, + p.Caliber, + p.Dain, + p.TotalDyne, + p.TotalPriority, + p.PriorityTotalDyne, + p.PlanStartDate, + p.PlanEndDate, + p.Days, + p.AvgDailyWorkload, + pipeline.UnitWorkId + FROM HJGL_ProductionSchedulingPlan p + left join HJGL_Pipeline as pipeline on pipeline.PipelineId = p.PipelineId + WHERE 1=1 "; + List listStr = new List(); + + if (tvControlItem.SelectedNode.CommandName.Split('|').Length == 2) + { + strSql += " and pipeline.UnitWorkId =@UnitWorkId"; + listStr.Add(new SqlParameter("@UnitWorkId", this.tvControlItem.SelectedNodeID)); + + } + else if (tvControlItem.SelectedNode.CommandName == "管线") + { + strSql += " and p.PipelineId = @PipelineId "; + listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID)); + + } + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + GridDataTable = tb; + // 2.获取当前分页数据 + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + #endregion + + #region 分页排序 + #region 页索引改变事件 + /// + /// 页索引改变事件 + /// + /// + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + BindGrid(); + } + #endregion + + #region 排序 + /// + /// 排序 + /// + /// + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + #endregion + + #region 分页选择下拉改变事件 + /// + /// 分页选择下拉改变事件 + /// + /// + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + #endregion + #endregion + + #region 维护事件 + protected void btnSearch_Click(object sender, EventArgs e) + { + BindGrid(); + } + + #endregion + + #region 关闭弹出窗口及刷新页面 + /// + /// 查询 + /// + /// + /// + protected void TextBox_TextChanged(object sender, EventArgs e) + { + this.BindGrid(); + } + protected void btnTreeFind_Click(object sender, EventArgs e) + { + this.InitTreeMenu(); + + } + #endregion + + #region 保存 + /// + /// 保存 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (this.Grid1.Rows.Count > 0) + { + foreach (JObject mergedRow in Grid1.GetMergedData()) + { + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + string rowId = Grid1.Rows[i].RowID; + var newPlan = BLL.ProductionSchedulingPlanService.GetProductionSchedulingPlanById(rowId); + if (newPlan != null) + { + newPlan.TotalPriority = values.Value("TotalPriority"); + newPlan.PriorityTotalDyne = Funs.GetNewDecimal(values.Value("PriorityTotalDyne")); + newPlan.PlanStartDate = Funs.GetNewDateTime(values.Value("PlanStartDate")); + newPlan.PlanEndDate = Funs.GetNewDateTime(values.Value("PlanEndDate")); + newPlan.Days = Funs.GetNewInt(values.Value("Days")); + newPlan.AvgDailyWorkload = Funs.GetNewDecimal(values.Value("AvgDailyWorkload")); + BLL.ProductionSchedulingPlanService.UpdateProductionSchedulingPlan(newPlan); + } + } + ShowNotify("保存成功!", MessageBoxIcon.Success); + BindGrid(); + } + } + #endregion + + #region 导出 + protected void btnOut_Click(object sender, EventArgs e) + { + + + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.designer.cs b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.designer.cs new file mode 100644 index 00000000..7468eff7 --- /dev/null +++ b/SGGL/FineUIPro.Web/HJGL/PreDesign/ProductionSchedulingPlan.aspx.designer.cs @@ -0,0 +1,233 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.HJGL.PreDesign +{ + + + public partial class ProductionSchedulingPlan + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// txtPipelineCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtPipelineCode; + + /// + /// hdUnitWorkId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdUnitWorkId; + + /// + /// btnTreeFind 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnTreeFind; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// panelCenterRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelCenterRegion; + + /// + /// Toolbar3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar3; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// txtTotalPriority 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtTotalPriority; + + /// + /// txtPriorityTotalDyne 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtPriorityTotalDyne; + + /// + /// txtPlanStartDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtPlanStartDate; + + /// + /// txtPlanEndDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtPlanEndDate; + + /// + /// txtDays 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtDays; + + /// + /// txtAvgDailyWorkload 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtAvgDailyWorkload; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + } +} diff --git a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml index 9eccc8db..be8fc4c9 100644 --- a/SGGL/FineUIPro.Web/common/Menu_HJGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_HJGL.xml @@ -16,6 +16,7 @@ + diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 9c9e67e6..2a5f02a6 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -686,6 +686,9 @@ namespace Model partial void InsertHJGL_PreWeldingDaily(HJGL_PreWeldingDaily instance); partial void UpdateHJGL_PreWeldingDaily(HJGL_PreWeldingDaily instance); partial void DeleteHJGL_PreWeldingDaily(HJGL_PreWeldingDaily instance); + partial void InsertHJGL_ProductionSchedulingPlan(HJGL_ProductionSchedulingPlan instance); + partial void UpdateHJGL_ProductionSchedulingPlan(HJGL_ProductionSchedulingPlan instance); + partial void DeleteHJGL_ProductionSchedulingPlan(HJGL_ProductionSchedulingPlan instance); partial void InsertHJGL_RepairRecord(HJGL_RepairRecord instance); partial void UpdateHJGL_RepairRecord(HJGL_RepairRecord instance); partial void DeleteHJGL_RepairRecord(HJGL_RepairRecord instance); @@ -3646,6 +3649,14 @@ namespace Model } } + public System.Data.Linq.Table HJGL_ProductionSchedulingPlan + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table HJGL_RepairRecord { get @@ -24315,6 +24326,8 @@ namespace Model private EntitySet _HJGL_Pipeline; + private EntitySet _HJGL_ProductionSchedulingPlan; + private EntitySet _HJGL_RepairRecord; private EntitySet _HJGL_WeldJoint; @@ -24681,6 +24694,7 @@ namespace Model this._HJGL_MaterialManage = new EntitySet(new Action(this.attach_HJGL_MaterialManage), new Action(this.detach_HJGL_MaterialManage)); this._HJGL_PC_PurgingCleaning = new EntitySet(new Action(this.attach_HJGL_PC_PurgingCleaning), new Action(this.detach_HJGL_PC_PurgingCleaning)); this._HJGL_Pipeline = new EntitySet(new Action(this.attach_HJGL_Pipeline), new Action(this.detach_HJGL_Pipeline)); + this._HJGL_ProductionSchedulingPlan = new EntitySet(new Action(this.attach_HJGL_ProductionSchedulingPlan), new Action(this.detach_HJGL_ProductionSchedulingPlan)); this._HJGL_RepairRecord = new EntitySet(new Action(this.attach_HJGL_RepairRecord), new Action(this.detach_HJGL_RepairRecord)); this._HJGL_WeldJoint = new EntitySet(new Action(this.attach_HJGL_WeldJoint), new Action(this.detach_HJGL_WeldJoint)); this._HJGL_HotProess_Trust = new EntitySet(new Action(this.attach_HJGL_HotProess_Trust), new Action(this.detach_HJGL_HotProess_Trust)); @@ -26252,6 +26266,19 @@ namespace Model } } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_ProductionSchedulingPlan_Base_Project", Storage="_HJGL_ProductionSchedulingPlan", ThisKey="ProjectId", OtherKey="ProjectId", DeleteRule="NO ACTION")] + public EntitySet HJGL_ProductionSchedulingPlan + { + get + { + return this._HJGL_ProductionSchedulingPlan; + } + set + { + this._HJGL_ProductionSchedulingPlan.Assign(value); + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_RepairRecord_Base_Project", Storage="_HJGL_RepairRecord", ThisKey="ProjectId", OtherKey="ProjectId", DeleteRule="NO ACTION")] public EntitySet HJGL_RepairRecord { @@ -28502,6 +28529,18 @@ namespace Model entity.Base_Project = null; } + private void attach_HJGL_ProductionSchedulingPlan(HJGL_ProductionSchedulingPlan entity) + { + this.SendPropertyChanging(); + entity.Base_Project = this; + } + + private void detach_HJGL_ProductionSchedulingPlan(HJGL_ProductionSchedulingPlan entity) + { + this.SendPropertyChanging(); + entity.Base_Project = null; + } + private void attach_HJGL_RepairRecord(HJGL_RepairRecord entity) { this.SendPropertyChanging(); @@ -97327,6 +97366,8 @@ namespace Model private EntitySet _HJGL_PipeLineMat; + private EntitySet _HJGL_ProductionSchedulingPlan; + private EntitySet _HJGL_WeldJoint; private EntitySet _PTP_BItemEndCheck; @@ -97422,6 +97463,7 @@ namespace Model this._HJGL_Pipeline_Component = new EntitySet(new Action(this.attach_HJGL_Pipeline_Component), new Action(this.detach_HJGL_Pipeline_Component)); this._WBS_UnitWork = default(EntityRef); this._HJGL_PipeLineMat = new EntitySet(new Action(this.attach_HJGL_PipeLineMat), new Action(this.detach_HJGL_PipeLineMat)); + this._HJGL_ProductionSchedulingPlan = new EntitySet(new Action(this.attach_HJGL_ProductionSchedulingPlan), new Action(this.detach_HJGL_ProductionSchedulingPlan)); this._HJGL_WeldJoint = new EntitySet(new Action(this.attach_HJGL_WeldJoint), new Action(this.detach_HJGL_WeldJoint)); this._PTP_BItemEndCheck = new EntitySet(new Action(this.attach_PTP_BItemEndCheck), new Action(this.detach_PTP_BItemEndCheck)); this._PTP_ItemEndCheck = new EntitySet(new Action(this.attach_PTP_ItemEndCheck), new Action(this.detach_PTP_ItemEndCheck)); @@ -98458,6 +98500,19 @@ namespace Model } } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_ProductionSchedulingPlan_HJGL_Pipeline", Storage="_HJGL_ProductionSchedulingPlan", ThisKey="PipelineId", OtherKey="PipelineId", DeleteRule="NO ACTION")] + public EntitySet HJGL_ProductionSchedulingPlan + { + get + { + return this._HJGL_ProductionSchedulingPlan; + } + set + { + this._HJGL_ProductionSchedulingPlan.Assign(value); + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_WeldJoint_HJGL_Pipeline", Storage="_HJGL_WeldJoint", ThisKey="PipelineId", OtherKey="PipelineId", DeleteRule="NO ACTION")] public EntitySet HJGL_WeldJoint { @@ -98590,6 +98645,18 @@ namespace Model entity.HJGL_Pipeline = null; } + private void attach_HJGL_ProductionSchedulingPlan(HJGL_ProductionSchedulingPlan entity) + { + this.SendPropertyChanging(); + entity.HJGL_Pipeline = this; + } + + private void detach_HJGL_ProductionSchedulingPlan(HJGL_ProductionSchedulingPlan entity) + { + this.SendPropertyChanging(); + entity.HJGL_Pipeline = null; + } + private void attach_HJGL_WeldJoint(HJGL_WeldJoint entity) { this.SendPropertyChanging(); @@ -99970,6 +100037,486 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.HJGL_ProductionSchedulingPlan")] + public partial class HJGL_ProductionSchedulingPlan : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _ProductionSchedulingPlanId; + + private string _ProjectId; + + private string _PipelineId; + + private string _FlowNum; + + private string _MainItemName; + + private string _Material; + + private string _Caliber; + + private System.Nullable _Dain; + + private System.Nullable _TotalDyne; + + private string _TotalPriority; + + private System.Nullable _PriorityTotalDyne; + + private System.Nullable _PlanStartDate; + + private System.Nullable _PlanEndDate; + + private System.Nullable _Days; + + private System.Nullable _AvgDailyWorkload; + + private EntityRef _Base_Project; + + private EntityRef _HJGL_Pipeline; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnProductionSchedulingPlanIdChanging(string value); + partial void OnProductionSchedulingPlanIdChanged(); + partial void OnProjectIdChanging(string value); + partial void OnProjectIdChanged(); + partial void OnPipelineIdChanging(string value); + partial void OnPipelineIdChanged(); + partial void OnFlowNumChanging(string value); + partial void OnFlowNumChanged(); + partial void OnMainItemNameChanging(string value); + partial void OnMainItemNameChanged(); + partial void OnMaterialChanging(string value); + partial void OnMaterialChanged(); + partial void OnCaliberChanging(string value); + partial void OnCaliberChanged(); + partial void OnDainChanging(System.Nullable value); + partial void OnDainChanged(); + partial void OnTotalDyneChanging(System.Nullable value); + partial void OnTotalDyneChanged(); + partial void OnTotalPriorityChanging(string value); + partial void OnTotalPriorityChanged(); + partial void OnPriorityTotalDyneChanging(System.Nullable value); + partial void OnPriorityTotalDyneChanged(); + partial void OnPlanStartDateChanging(System.Nullable value); + partial void OnPlanStartDateChanged(); + partial void OnPlanEndDateChanging(System.Nullable value); + partial void OnPlanEndDateChanged(); + partial void OnDaysChanging(System.Nullable value); + partial void OnDaysChanged(); + partial void OnAvgDailyWorkloadChanging(System.Nullable value); + partial void OnAvgDailyWorkloadChanged(); + #endregion + + public HJGL_ProductionSchedulingPlan() + { + this._Base_Project = default(EntityRef); + this._HJGL_Pipeline = default(EntityRef); + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductionSchedulingPlanId", DbType="NVarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string ProductionSchedulingPlanId + { + get + { + return this._ProductionSchedulingPlanId; + } + set + { + if ((this._ProductionSchedulingPlanId != value)) + { + this.OnProductionSchedulingPlanIdChanging(value); + this.SendPropertyChanging(); + this._ProductionSchedulingPlanId = value; + this.SendPropertyChanged("ProductionSchedulingPlanId"); + this.OnProductionSchedulingPlanIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + if (this._Base_Project.HasLoadedOrAssignedValue) + { + throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); + } + this.OnProjectIdChanging(value); + this.SendPropertyChanging(); + this._ProjectId = value; + this.SendPropertyChanged("ProjectId"); + this.OnProjectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PipelineId", DbType="NVarChar(50)")] + public string PipelineId + { + get + { + return this._PipelineId; + } + set + { + if ((this._PipelineId != value)) + { + if (this._HJGL_Pipeline.HasLoadedOrAssignedValue) + { + throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException(); + } + this.OnPipelineIdChanging(value); + this.SendPropertyChanging(); + this._PipelineId = value; + this.SendPropertyChanged("PipelineId"); + this.OnPipelineIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FlowNum", DbType="NVarChar(50)")] + public string FlowNum + { + get + { + return this._FlowNum; + } + set + { + if ((this._FlowNum != value)) + { + this.OnFlowNumChanging(value); + this.SendPropertyChanging(); + this._FlowNum = value; + this.SendPropertyChanged("FlowNum"); + this.OnFlowNumChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MainItemName", DbType="NVarChar(50)")] + public string MainItemName + { + get + { + return this._MainItemName; + } + set + { + if ((this._MainItemName != value)) + { + this.OnMainItemNameChanging(value); + this.SendPropertyChanging(); + this._MainItemName = value; + this.SendPropertyChanged("MainItemName"); + this.OnMainItemNameChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Material", DbType="NVarChar(50)")] + public string Material + { + get + { + return this._Material; + } + set + { + if ((this._Material != value)) + { + this.OnMaterialChanging(value); + this.SendPropertyChanging(); + this._Material = value; + this.SendPropertyChanged("Material"); + this.OnMaterialChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Caliber", DbType="NVarChar(50)")] + public string Caliber + { + get + { + return this._Caliber; + } + set + { + if ((this._Caliber != value)) + { + this.OnCaliberChanging(value); + this.SendPropertyChanging(); + this._Caliber = value; + this.SendPropertyChanged("Caliber"); + this.OnCaliberChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Dain", DbType="Decimal(18,2)")] + public System.Nullable Dain + { + get + { + return this._Dain; + } + set + { + if ((this._Dain != value)) + { + this.OnDainChanging(value); + this.SendPropertyChanging(); + this._Dain = value; + this.SendPropertyChanged("Dain"); + this.OnDainChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalDyne", DbType="Decimal(18,2)")] + public System.Nullable TotalDyne + { + get + { + return this._TotalDyne; + } + set + { + if ((this._TotalDyne != value)) + { + this.OnTotalDyneChanging(value); + this.SendPropertyChanging(); + this._TotalDyne = value; + this.SendPropertyChanged("TotalDyne"); + this.OnTotalDyneChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TotalPriority", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string TotalPriority + { + get + { + return this._TotalPriority; + } + set + { + if ((this._TotalPriority != value)) + { + this.OnTotalPriorityChanging(value); + this.SendPropertyChanging(); + this._TotalPriority = value; + this.SendPropertyChanged("TotalPriority"); + this.OnTotalPriorityChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PriorityTotalDyne", DbType="Decimal(18,2)")] + public System.Nullable PriorityTotalDyne + { + get + { + return this._PriorityTotalDyne; + } + set + { + if ((this._PriorityTotalDyne != value)) + { + this.OnPriorityTotalDyneChanging(value); + this.SendPropertyChanging(); + this._PriorityTotalDyne = value; + this.SendPropertyChanged("PriorityTotalDyne"); + this.OnPriorityTotalDyneChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanStartDate", DbType="DateTime")] + public System.Nullable PlanStartDate + { + get + { + return this._PlanStartDate; + } + set + { + if ((this._PlanStartDate != value)) + { + this.OnPlanStartDateChanging(value); + this.SendPropertyChanging(); + this._PlanStartDate = value; + this.SendPropertyChanged("PlanStartDate"); + this.OnPlanStartDateChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PlanEndDate", DbType="DateTime")] + public System.Nullable PlanEndDate + { + get + { + return this._PlanEndDate; + } + set + { + if ((this._PlanEndDate != value)) + { + this.OnPlanEndDateChanging(value); + this.SendPropertyChanging(); + this._PlanEndDate = value; + this.SendPropertyChanged("PlanEndDate"); + this.OnPlanEndDateChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Days", DbType="Int")] + public System.Nullable Days + { + get + { + return this._Days; + } + set + { + if ((this._Days != value)) + { + this.OnDaysChanging(value); + this.SendPropertyChanging(); + this._Days = value; + this.SendPropertyChanged("Days"); + this.OnDaysChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AvgDailyWorkload", DbType="Decimal(18,2)")] + public System.Nullable AvgDailyWorkload + { + get + { + return this._AvgDailyWorkload; + } + set + { + if ((this._AvgDailyWorkload != value)) + { + this.OnAvgDailyWorkloadChanging(value); + this.SendPropertyChanging(); + this._AvgDailyWorkload = value; + this.SendPropertyChanged("AvgDailyWorkload"); + this.OnAvgDailyWorkloadChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_ProductionSchedulingPlan_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] + public Base_Project Base_Project + { + get + { + return this._Base_Project.Entity; + } + set + { + Base_Project previousValue = this._Base_Project.Entity; + if (((previousValue != value) + || (this._Base_Project.HasLoadedOrAssignedValue == false))) + { + this.SendPropertyChanging(); + if ((previousValue != null)) + { + this._Base_Project.Entity = null; + previousValue.HJGL_ProductionSchedulingPlan.Remove(this); + } + this._Base_Project.Entity = value; + if ((value != null)) + { + value.HJGL_ProductionSchedulingPlan.Add(this); + this._ProjectId = value.ProjectId; + } + else + { + this._ProjectId = default(string); + } + this.SendPropertyChanged("Base_Project"); + } + } + } + + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_HJGL_ProductionSchedulingPlan_HJGL_Pipeline", Storage="_HJGL_Pipeline", ThisKey="PipelineId", OtherKey="PipelineId", IsForeignKey=true)] + public HJGL_Pipeline HJGL_Pipeline + { + get + { + return this._HJGL_Pipeline.Entity; + } + set + { + HJGL_Pipeline previousValue = this._HJGL_Pipeline.Entity; + if (((previousValue != value) + || (this._HJGL_Pipeline.HasLoadedOrAssignedValue == false))) + { + this.SendPropertyChanging(); + if ((previousValue != null)) + { + this._HJGL_Pipeline.Entity = null; + previousValue.HJGL_ProductionSchedulingPlan.Remove(this); + } + this._HJGL_Pipeline.Entity = value; + if ((value != null)) + { + value.HJGL_ProductionSchedulingPlan.Add(this); + this._PipelineId = value.PipelineId; + } + else + { + this._PipelineId = default(string); + } + this.SendPropertyChanged("HJGL_Pipeline"); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.HJGL_RepairRecord")] public partial class HJGL_RepairRecord : INotifyPropertyChanging, INotifyPropertyChanged {