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
{