From 25671f28b992cb07df7b04372c6961177bc0903e Mon Sep 17 00:00:00 2001 From: jackchenyang <874821510@qq.com> Date: Sun, 26 May 2024 21:28:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9PMI=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HJGL/.vs/HJGL/v17/.suo | Bin 901120 -> 1064960 bytes .../PMI/PMIDelegationReport.aspx.cs | 66 +-- .../WeldingProcess/PMI/PMISelectList.aspx.cs | 164 +++---- HJGL/Model/Model.cs | 407 +++++++++++++++--- 4 files changed, 438 insertions(+), 199 deletions(-) diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index da65216b768d3facc5cea5c793b1f161a524dd36..dac5a526324765aa09c1a96030e43870b3c6fe46 100644 GIT binary patch delta 86377 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 z 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 ex{a%I&*V4?s8PBha9E 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 private void BindGrid() { - string sql = @"select *from ( - select - projectId, - InstallationId, - WorkAreaId, - UnitId, - PipelineId, - InstallationCode, - WorkAreaCode, - PipelineCode, - PMINum, - isnull((convert(float,PMIBySNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateBys, - PMIBySNum, - isnull( (convert(float,PMIByFNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateByf, - PMIByFNum - from ( - select - a.projectId, - a.InstallationId, - a.WorkAreaId, - a.UnitId, - a.PipelineId, - b.InstallationCode, - c.WorkAreaCode, - a.PipelineCode, - (select count(1) from Pipeline_WeldJoint as d where isPMI=1 and d.PipelineId=a.PipelineId) as PMINum, - ( - select count(1) from PMI_Delegation as pd inner join PMI_DelegationDetails as pdd on pd.Id=pdd.PMIId - inner join Pipeline_WeldJoint as pwj on pdd.JointId=pwj.WeldJointId - where pd.InstallationId=a.InstallationId and pd.UnitId=a.UnitId and pdd.WorkAreaId=a.WorkAreaId - and pwj.PipelineId=a.PipelineId and pwj.JointAttribute='活动S' and pwj.isPMI=1 - ) as PMIBySNum, - ( - select count(1) from PMI_Delegation as pd inner join PMI_DelegationDetails as pdd on pd.Id=pdd.PMIId - inner join Pipeline_WeldJoint as pwj on pdd.JointId=pwj.WeldJointId - where pd.InstallationId=a.InstallationId and pd.UnitId=a.UnitId and pdd.WorkAreaId=a.WorkAreaId - and pwj.PipelineId=a.PipelineId and pwj.JointAttribute='固定F' and pwj.isPMI=1 - ) as PMIByFNum - from Pipeline_Pipeline as a - left join Project_Installation as b on a.InstallationId=b.InstallationId - left join Project_WorkArea as c on a.WorkAreaId=c.WorkAreaId - ) as t - ) as H where projectId=@projectId "; - List listStr = new List(); - listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId)); + var query = Funs.DB.View_PMIDetections.Where(t => t.ProjectId == this.CurrUser.LoginProjectId).AsQueryable(); + + if (this.drpUnitId.SelectedValue != BLL.Const._Null) { - sql += " and UnitId=@unitId"; - listStr.Add(new SqlParameter("@unitId", this.drpUnitId.SelectedValue)); + query = query.Where(t => t.UnitId == this.drpUnitId.SelectedValue); } if (this.drpWorkAreaId.SelectedValue != BLL.Const._Null) { - sql += " and WorkAreaId=@workAreaId "; - listStr.Add(new SqlParameter("@workAreaId", this.drpWorkAreaId.SelectedValue)); + query = query.Where(t => t.WorkAreaId == this.drpWorkAreaId.SelectedValue); } if (this.drpIsALl.SelectedValue=="报警") { - sql += " and ((RateBys<=2 and PMIBySNum<=2) or RateByf<=2 and PMIByFNum<=2)"; + query = query.Where(t=>(t.RateBys<=2 && t.PMIBySNum<=2) || (t.RateByf<=2 && t.PMIByFNum<=2)); } if (!string.IsNullOrEmpty(this.txtPipelineCode.Text)) { - sql += " and PipelineCode like '%'+@PipelineCode+'%'"; - listStr.Add(new SqlParameter("@PipelineCode", this.txtPipelineCode.Text.Trim())); + query = query.Where(t => t.PipelineCode.Contains(this.txtPipelineCode.Text)); } - SqlParameter[] parameter = listStr.ToArray(); - DataTable tb = SQLHelper.GetDataTableRunText(sql, parameter); - this.Grid1.RecordCount = tb.Rows.Count; - var table = this.GetPagedDataTable(Grid1, tb); + var dataList=query.ToList(); + this.Grid1.RecordCount = dataList.Count; + var table = this.GetPagedDataTable(Grid1, dataList); Grid1.DataSource = table; Grid1.DataBind(); } diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs index a3a00ea..8b77167 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMISelectList.aspx.cs @@ -36,7 +36,6 @@ namespace FineUIPro.Web.WeldingProcess.PMI { this.InitTreeMenu();//加载树 this.BindGrid(); - this.TotalPMIReport(); } } #endregion @@ -55,6 +54,14 @@ namespace FineUIPro.Web.WeldingProcess.PMI rootNode.Expanded = true; this.tvControlItem.Nodes.Add(rootNode); var dictWorkArea = GetWorkAreaDict(); + //查询出来未达到PMI检测比例的数据 + var pmiNocheckList = Funs.DB.View_PMIDetections + .Where(t => t.ProjectId == this.ProjectId + && t.InstallationId == this.installId + && t.UnitId == this.UnitId + && (t.RateBys <= 2 && t.PMIBySNum <= 2) || (t.RateByf <= 2 && t.PMIByFNum <= 2)) + .AsQueryable(); + //排除已经委托过的 var listData= (from a in Funs.DB.PMI_Delegation.AsQueryable() join b in Funs.DB.PMI_DelegationDetails.AsQueryable() on @@ -62,21 +69,33 @@ namespace FineUIPro.Web.WeldingProcess.PMI select b.JointId ).Distinct().ToList(); - //查询带有PMI处理的管线数据 + //查询带有PMI处理且已经焊接过的管线数据 var iso = from a in Funs.DB.View_Pipeline_WeldJoint where a.IsPMI==true && a.ProjectId==this.ProjectId && a.UnitId==this.UnitId - && a.InstallationId==this.installId + && a.InstallationId==this.installId && (a.WeldingDailyId != "" && a.WeldingDailyId!=null) select new {a.PipelineId,a.PipelineCode,a.WorkAreaId,a.WeldJointCode,a.WeldJointId } ; - + + iso = from a in iso join b in pmiNocheckList on a.PipelineId equals b.PipelineId + select new { + a.PipelineId, + a.PipelineCode, + a.WorkAreaId, + a.WeldJointCode, + a.WeldJointId + }; + if (listData.Count > 0) { iso = iso.Where(a => !listData.Contains(a.WeldJointId)); } + if (!string.IsNullOrEmpty(this.txtIsono.Text)) { iso = iso.Where(a => a.PipelineCode.Contains(this.txtIsono.Text.Trim())); } + + var isoList = iso.Select(x => new { x.PipelineId,x.PipelineCode,x.WorkAreaId}).OrderBy(x => x.PipelineCode).Distinct().ToList(); if (isoList.Count > 0) { @@ -140,6 +159,35 @@ namespace FineUIPro.Web.WeldingProcess.PMI /// private void BindGrid() { + //未达标的活动S口 + var pmiViewJointBy_S = (from a in Funs.DB.View_PMIDetections + join b in Funs.DB.Pipeline_WeldJoint + on a.PipelineId equals b.PipelineId + where a.ProjectId == this.ProjectId + && a.InstallationId == this.installId + && a.UnitId == this.UnitId + && b.JointAttribute == "活动S" + && a.PipelineId == this.tvControlItem.SelectedNodeID + + && (b.WeldingDailyId != null && b.WeldingDailyId != "") + && (a.RateBys > 2 || a.PMIBySNum > 2) + select b.WeldJointId) + .ToList(); + //未达标的固定F口 + var pmiViewJointBy_F = (from a in Funs.DB.View_PMIDetections + join b in Funs.DB.Pipeline_WeldJoint + on a.PipelineId equals b.PipelineId + where a.ProjectId == this.ProjectId + && a.InstallationId == this.installId + && a.UnitId == this.UnitId + && b.JointAttribute == "固定F" + && a.PipelineId == this.tvControlItem.SelectedNodeID + && (b.WeldingDailyId != null && b.WeldingDailyId != "") + && (a.RateByf >2 && a.PMIByFNum > 2) + select b.WeldJointId) + .ToList(); + + //排除已经选择过的焊口 var listData = (from a in Funs.DB.PMI_Delegation.AsQueryable() join b in Funs.DB.PMI_DelegationDetails.AsQueryable() on @@ -149,10 +197,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI string[] arr = this.weldJointIds.Split('|'); var query = Funs.DB.View_Pipeline_WeldJoint.Where(t => t.IsPMI == true && t.PipelineId == this.tvControlItem.SelectedNodeID); - if (arr.Length > 0) - { - listData.Add(arr[0]); - } + if (listData.Count > 0) { query = query.Where(t => !listData.Contains(t.WeldJointId)); @@ -161,7 +206,14 @@ namespace FineUIPro.Web.WeldingProcess.PMI { query = query.Where(t => t.WeldJointCode == this.txtJointNo.Text); } - + if (pmiViewJointBy_S.Count > 0) + { + query = query.Where(t => t.JointAttribute != "活动S"); + } + if (pmiViewJointBy_F.Count > 0) + { + query = query.Where(t => t.JointAttribute != "固定F"); + } var data= query.ToList() ; if (!string.IsNullOrEmpty(weldJointIds)) { @@ -232,75 +284,39 @@ namespace FineUIPro.Web.WeldingProcess.PMI #endregion #region 统计比例 + private void TotalPMIReport() { - string sql = @"select *from ( - select - projectId, - InstallationId, - WorkAreaId, - UnitId, - PipelineId, - InstallationCode, - WorkAreaCode, - PipelineCode, - PMINum, - isnull((convert(float,PMIBySNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateBys, - PMIBySNum, - isnull( (convert(float,PMIByFNum)/NULLIF(convert(float,PMINum),0)*100),0) as RateByf, - PMIByFNum - from ( - select - a.projectId, - a.InstallationId, - a.WorkAreaId, - a.UnitId, - a.PipelineId, - b.InstallationCode, - c.WorkAreaCode, - a.PipelineCode, - (select count(1) from Pipeline_WeldJoint as d where isPMI=1 and d.PipelineId=a.PipelineId) as PMINum, - ( - select count(1) from PMI_Delegation as pd inner join PMI_DelegationDetails as pdd on pd.Id=pdd.PMIId - inner join Pipeline_WeldJoint as pwj on pdd.JointId=pwj.WeldJointId - where pd.InstallationId=a.InstallationId and pd.UnitId=a.UnitId and pdd.WorkAreaId=a.WorkAreaId - and pwj.PipelineId=a.PipelineId and pwj.JointAttribute='活动S' and pwj.isPMI=1 - ) as PMIBySNum, - ( - select count(1) from PMI_Delegation as pd inner join PMI_DelegationDetails as pdd on pd.Id=pdd.PMIId - inner join Pipeline_WeldJoint as pwj on pdd.JointId=pwj.WeldJointId - where pd.InstallationId=a.InstallationId and pd.UnitId=a.UnitId and pdd.WorkAreaId=a.WorkAreaId - and pwj.PipelineId=a.PipelineId and pwj.JointAttribute='固定F' and pwj.isPMI=1 - ) as PMIByFNum - from Pipeline_Pipeline as a - left join Project_Installation as b on a.InstallationId=b.InstallationId - left join Project_WorkArea as c on a.WorkAreaId=c.WorkAreaId - ) as t - ) as H where projectId=@projectId and PipelineId=@PipelineId "; - List listStr = new List(); - listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId)); - listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID)); - SqlParameter[] parameter = listStr.ToArray(); - DataTable dt = SQLHelper.GetDataTableRunText(sql, parameter); - if (dt.Rows.Count > 0) + var query = Funs.DB.View_PMIDetections.AsQueryable(); + if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId)) { - string PMIByFNum = dt.Rows[0]["PMIByFNum"].ToString(); - string PMIBySNum=dt.Rows[0]["PMIBySNum"].ToString(); - string RateByF=dt.Rows[0]["RateByF"].ToString(); - string RateByS = dt.Rows[0]["RateByS"].ToString(); - lblnumbyf.Text = "预制检测数量:" + PMIByFNum; - lblnumbys.Text = "安装检测数量:" + PMIBySNum; - lblratebyf.Text = "预制检测比例:" + Math.Round(decimal.Parse(RateByF), 2)+"%"; - lblratebys.Text = "安装检测比例:" + Math.Round(decimal.Parse(RateByS), 2) + "%"; + query=query.Where(t=>t.ProjectId == this.CurrUser.LoginProjectId); + } + if (!string.IsNullOrEmpty(this.installId)) + { + query=query.Where(t=>t.InstallationId==this.installId); + } + if (!string.IsNullOrEmpty(this.UnitId)) + { + query=query.Where(t=>t.UnitId==this.UnitId); + } + if (!string.IsNullOrEmpty(txtIsono.Text)) + { + query = query.Where(t => t.PipelineCode.Contains(txtIsono.Text.Trim())); + } + if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID)) + { + query=query.Where(t=>t.PipelineId==this.tvControlItem.SelectedNodeID); + } + query = query.Where(t => (t.RateBys <= 2 && t.PMIBySNum <= 2) || (t.RateByf <= 2 && t.PMIByFNum <= 2)); + var pmiInfo = query.FirstOrDefault(); + if (pmiInfo!=null) + { + lblnumbyf.Text = "安装检测数量:" + pmiInfo.PMIByFNum; + lblnumbys.Text = "预制检测数量:" + pmiInfo.PMIBySNum; + lblratebyf.Text = "安装检测比例:" + Math.Round(pmiInfo.RateByf, 2)+"%"; + lblratebys.Text = "预制检测比例:" + Math.Round(pmiInfo.RateBys, 2) + "%"; - //if(Math.Round(decimal.Parse(RateByF), 2)>0 && Math.Round(decimal.Parse(RateByF), 2) <= 2) - //{ - // lblratebyf.CssStyle = "{color:red}"; - //} - //if (Math.Round(decimal.Parse(RateByS), 2) > 0 && Math.Round(decimal.Parse(RateByS), 2) <= 2) - //{ - // lblratebys.CssStyle = "{color:red}"; - //} } } #endregion diff --git a/HJGL/Model/Model.cs b/HJGL/Model/Model.cs index 7de5b22..a617c00 100644 --- a/HJGL/Model/Model.cs +++ b/HJGL/Model/Model.cs @@ -1155,6 +1155,14 @@ namespace Model } } + public System.Data.Linq.Table View_PMIDetections + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table View_PTP_TestPackageAudit { get @@ -22510,12 +22518,12 @@ namespace Model private string _DetectionStandard; - private string _Tabler; - private string _Remark; private System.Nullable _CreatedTime; + private string _Tabler; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -22534,12 +22542,12 @@ namespace Model partial void OnUnitIdChanged(); partial void OnDetectionStandardChanging(string value); partial void OnDetectionStandardChanged(); - partial void OnTablerChanging(string value); - partial void OnTablerChanged(); partial void OnRemarkChanging(string value); partial void OnRemarkChanged(); partial void OnCreatedTimeChanging(System.Nullable value); partial void OnCreatedTimeChanged(); + partial void OnTablerChanging(string value); + partial void OnTablerChanged(); #endregion public PMI_Delegation() @@ -22607,7 +22615,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")] public string ProjectId { get @@ -22687,26 +22695,6 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Tabler", DbType="NVarChar(50)")] - public string Tabler - { - get - { - return this._Tabler; - } - set - { - if ((this._Tabler != value)) - { - this.OnTablerChanging(value); - this.SendPropertyChanging(); - this._Tabler = value; - this.SendPropertyChanged("Tabler"); - this.OnTablerChanged(); - } - } - } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Remark", DbType="NVarChar(255)")] public string Remark { @@ -22747,6 +22735,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Tabler", DbType="NVarChar(50)")] + public string Tabler + { + get + { + return this._Tabler; + } + set + { + if ((this._Tabler != value)) + { + this.OnTablerChanging(value); + this.SendPropertyChanging(); + this._Tabler = value; + this.SendPropertyChanged("Tabler"); + this.OnTablerChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -22786,10 +22794,10 @@ namespace Model private int _Status; - private System.Nullable _CheckTime; - private string _ReportNo; + private System.Nullable _CheckTime; + private System.Nullable _ReportTime; private string _WorkAreaId; @@ -22810,10 +22818,10 @@ namespace Model partial void OnAcceptanceChanged(); partial void OnStatusChanging(int value); partial void OnStatusChanged(); - partial void OnCheckTimeChanging(System.Nullable value); - partial void OnCheckTimeChanged(); partial void OnReportNoChanging(string value); partial void OnReportNoChanged(); + partial void OnCheckTimeChanging(System.Nullable value); + partial void OnCheckTimeChanged(); partial void OnReportTimeChanging(System.Nullable value); partial void OnReportTimeChanged(); partial void OnWorkAreaIdChanging(string value); @@ -22925,7 +22933,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Status", DbType="Int NOT NULL")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Name="status", Storage="_Status", DbType="Int NOT NULL")] public int Status { get @@ -22945,26 +22953,6 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Name="checkTime", Storage="_CheckTime", DbType="DateTime")] - public System.Nullable CheckTime - { - get - { - return this._CheckTime; - } - set - { - if ((this._CheckTime != value)) - { - this.OnCheckTimeChanging(value); - this.SendPropertyChanging(); - this._CheckTime = value; - this.SendPropertyChanged("CheckTime"); - this.OnCheckTimeChanged(); - } - } - } - [global::System.Data.Linq.Mapping.ColumnAttribute(Name="reportNo", Storage="_ReportNo", DbType="NVarChar(50)")] public string ReportNo { @@ -22985,6 +22973,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Name="checkTime", Storage="_CheckTime", DbType="DateTime")] + public System.Nullable CheckTime + { + get + { + return this._CheckTime; + } + set + { + if ((this._CheckTime != value)) + { + this.OnCheckTimeChanging(value); + this.SendPropertyChanging(); + this._CheckTime = value; + this.SendPropertyChanged("CheckTime"); + this.OnCheckTimeChanged(); + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Name="reportTime", Storage="_ReportTime", DbType="DateTime")] public System.Nullable ReportTime { @@ -39579,6 +39587,8 @@ namespace Model private string _ProjectId; + private System.Nullable _IsPMI; + private string _PipelineCode; private string _PipelineId; @@ -39709,6 +39719,22 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Name="isPMI", Storage="_IsPMI", DbType="Bit")] + public System.Nullable IsPMI + { + get + { + return this._IsPMI; + } + set + { + if ((this._IsPMI != value)) + { + this._IsPMI = value; + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PipelineCode", DbType="NVarChar(100)")] public string PipelineCode { @@ -41717,8 +41743,6 @@ namespace Model private string _PipingClassCode; - private string _PIPClassCode; - private string _WeldingDate; private System.Nullable _IsCancel; @@ -41733,6 +41757,8 @@ namespace Model private string _DetectionType; + private string _PIPClassCode; + private string _PageNum; public View_Pipeline_WeldJoint() @@ -42827,22 +42853,6 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PIPClassCode", DbType="NVarChar(50)")] - public string PIPClassCode - { - get - { - return this._PIPClassCode; - } - set - { - if ((this._PIPClassCode != value)) - { - this._PIPClassCode = value; - } - } - } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WeldingDate", DbType="VarChar(100)")] public string WeldingDate { @@ -42955,6 +42965,22 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PIPClassCode", DbType="NVarChar(50)")] + public string PIPClassCode + { + get + { + return this._PIPClassCode; + } + set + { + if ((this._PIPClassCode != value)) + { + this._PIPClassCode = value; + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PageNum", DbType="NVarChar(10)")] public string PageNum { @@ -43287,6 +43313,249 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_PMIDetections")] + public partial class View_PMIDetections + { + + private string _ProjectId; + + private string _InstallationId; + + private string _WorkAreaId; + + private string _UnitId; + + private string _PipelineId; + + private string _InstallationCode; + + private string _WorkAreaCode; + + private string _PipelineCode; + + private System.Nullable _PMINum; + + private double _RateBys; + + private System.Nullable _PMIBySNum; + + private double _RateByf; + + private System.Nullable _PMIByFNum; + + public View_PMIDetections() + { + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Name="projectId", Storage="_ProjectId", DbType="NVarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this._ProjectId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InstallationId", DbType="NVarChar(50)")] + public string InstallationId + { + get + { + return this._InstallationId; + } + set + { + if ((this._InstallationId != value)) + { + this._InstallationId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaId", DbType="NVarChar(50)")] + public string WorkAreaId + { + get + { + return this._WorkAreaId; + } + set + { + if ((this._WorkAreaId != value)) + { + this._WorkAreaId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnitId", DbType="NVarChar(50)")] + public string UnitId + { + get + { + return this._UnitId; + } + set + { + if ((this._UnitId != value)) + { + this._UnitId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PipelineId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] + public string PipelineId + { + get + { + return this._PipelineId; + } + set + { + if ((this._PipelineId != value)) + { + this._PipelineId = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InstallationCode", DbType="NVarChar(50)")] + public string InstallationCode + { + get + { + return this._InstallationCode; + } + set + { + if ((this._InstallationCode != value)) + { + this._InstallationCode = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkAreaCode", DbType="NVarChar(20)")] + public string WorkAreaCode + { + get + { + return this._WorkAreaCode; + } + set + { + if ((this._WorkAreaCode != value)) + { + this._WorkAreaCode = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PipelineCode", DbType="NVarChar(100)")] + public string PipelineCode + { + get + { + return this._PipelineCode; + } + set + { + if ((this._PipelineCode != value)) + { + this._PipelineCode = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PMINum", DbType="Int")] + public System.Nullable PMINum + { + get + { + return this._PMINum; + } + set + { + if ((this._PMINum != value)) + { + this._PMINum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RateBys", DbType="Float NOT NULL")] + public double RateBys + { + get + { + return this._RateBys; + } + set + { + if ((this._RateBys != value)) + { + this._RateBys = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PMIBySNum", DbType="Int")] + public System.Nullable PMIBySNum + { + get + { + return this._PMIBySNum; + } + set + { + if ((this._PMIBySNum != value)) + { + this._PMIBySNum = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RateByf", DbType="Float NOT NULL")] + public double RateByf + { + get + { + return this._RateByf; + } + set + { + if ((this._RateByf != value)) + { + this._RateByf = value; + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PMIByFNum", DbType="Int")] + public System.Nullable PMIByFNum + { + get + { + return this._PMIByFNum; + } + set + { + if ((this._PMIByFNum != value)) + { + this._PMIByFNum = value; + } + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_PTP_TestPackageAudit")] public partial class View_PTP_TestPackageAudit { @@ -47518,7 +47787,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WelderIds", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WelderIds", DbType="VarChar(1000)")] public string WelderIds { get