From e1a0c2d934a85c40f3abd31e2b02edbaf2b3af7c Mon Sep 17 00:00:00 2001 From: shecs <408299694@qq.com> Date: Sat, 25 May 2024 17:32:16 +0800 Subject: [PATCH 1/2] 11 --- HJGL/.vs/HJGL/v17/.suo | Bin 1370624 -> 1391104 bytes .../WeldingManage/JointInfoEdit.aspx | 2 +- .../WeldingManage/JointInfoEdit.aspx.cs | 2 +- .../JointInfoEdit.aspx.designer.cs | 4 +- .../WeldingManage/WeldReport.aspx.cs | 214 ++++++++--------- .../WeldingManage/WeldReportEdit.aspx.cs | 224 +++++++++--------- 6 files changed, 217 insertions(+), 229 deletions(-) diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index f90389382656426e9caa429325abd1dcde698906..4deefdbdacd554d964f6b119e2245991c7cb4c8e 100644 GIT binary patch delta 15989 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 J-4=OJ-aq!P8tDK4 diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfoEdit.aspx b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfoEdit.aspx index 9a42eb8..2969d39 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfoEdit.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfoEdit.aspx @@ -199,7 +199,7 @@ - - /// txtReportDate 控件。 + /// txtWeldingDate 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.Label txtReportDate; + protected global::FineUIPro.Label txtWeldingDate; /// /// ddlJointStatus 控件。 diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs index 1d834ac..ae4f339 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs @@ -489,6 +489,8 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage List pipelineIdList = new List(); // 焊工资质不符合条件信息 string eventArg = string.Empty; + // 焊工WPS验证 + string errorCheck = string.Empty; string installationId = string.Empty; string workAreaId = string.Empty; string unitId = string.Empty; @@ -593,7 +595,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage { var pipeline = from x in Funs.DB.Pipeline_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId - && x.InstallationId == insId && x.WorkAreaId==areaId && x.PipelineCode == ds.Tables[0].Rows[i]["管线号"].ToString() + && x.InstallationId == insId && x.WorkAreaId == areaId && x.PipelineCode == ds.Tables[0].Rows[i]["管线号"].ToString() select x; if (pipeline.Count() > 0) @@ -1040,7 +1042,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage } else { - if ((!string.IsNullOrEmpty(d.Material2Id) && steel.MaterialId!=d.Material2Id) + if ((!string.IsNullOrEmpty(d.Material2Id) && steel.MaterialId != d.Material2Id) && (!string.IsNullOrEmpty(d.Material1Id) && steel.MaterialId != d.Material1Id)) { errorInfos += (i + 2) + "行,材质2[" + ds.Tables[0].Rows[i]["材质2"].ToString() + "]验证不一至;"; @@ -1228,135 +1230,118 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage dayList.Add(d); - - // 判断资质 - //if (welderQueIsUse == true) - //{ + // WPS焊工判断资质 if (isExistFloor && isExistCell) { var wps = BLL.WPQListServiceService.GetWPQById(d.WPQId); if (!wps.WelderIds.Contains(cellWelderId)) { - if (!eventArg.Contains(ds.Tables[0].Rows[i]["盖面焊工号"].ToString())) - { - eventArg = eventArg + ds.Tables[0].Rows[i]["盖面焊工号"].ToString() + ","; - } - + errorCheck += (i + 2) + "行,盖面焊工号:[" + ds.Tables[0].Rows[i]["盖面焊工号"].ToString() + "]验证无焊WPS资质;"; } - + if (!wps.WelderIds.Contains(floorWelderId)) { - if (!eventArg.Contains(ds.Tables[0].Rows[i]["打底焊工号"].ToString())) - { - eventArg = eventArg + ds.Tables[0].Rows[i]["打底焊工号"].ToString() + ","; - } + errorCheck += (i + 2) + "行,打底焊工号:[" + ds.Tables[0].Rows[i]["打底焊工号"].ToString() + "]验证无焊WPS资质;"; } - //} + } - #region 焊工资质判断 ,暂不用,改为和WPS的焊工判断 - //if (!string.IsNullOrEmpty(errorInfos)) - //{ - // ShowNotify(errorInfos, MessageBoxIcon.Warning, 10000); - // return; - //} - //else - //{ - // // 判断资质 - // if (welderQueIsUse == true) - // { - // if (isExistFloor && isExistCell) - // { - // bool canSave = false; - // var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(jotId); - // var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId); - // string weldTypeGroup = joty.Flag; - // string weldTypeCode = joty.WeldTypeCode; - // string floorWelder = floorWelderId; - // string cellWelder = cellWelderId; - // //decimal? dia = jot.Dia; - // //decimal? sch = jot.Thickness; + #region 焊工合格项资质判断 + // 判断资质 + if (welderQueIsUse == true) + { + if (isExistFloor && isExistCell) + { + bool canSave = false; + var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(jotId); + var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId); + string weldTypeGroup = joty.Flag; + string weldTypeCode = joty.WeldTypeCode; + string floorWelder = floorWelderId; + string cellWelder = cellWelderId; + //decimal? dia = jot.Dia; + //decimal? sch = jot.Thickness; - // string weldingMethodCode = string.Empty; - // var wm = BLL.Base_WeldingMethodService.GetWeldingMethodByWeldingMethodId(jot.WeldingMethodId); - // if (wm != null) - // { - // weldingMethodCode = wm.WeldingMethodCode; - // } - // string[] wmeCodes = weldingMethodCode.Split('+'); + string weldingMethodCode = string.Empty; + var wm = BLL.Base_WeldingMethodService.GetWeldingMethodByWeldingMethodId(jot.WeldingMethodId); + if (wm != null) + { + weldingMethodCode = wm.WeldingMethodCode; + } + string[] wmeCodes = weldingMethodCode.Split('+'); - // string location = string.Empty; - // var loc = BLL.Base_WeldingLocationServie.GetWeldingLocationById(jot.WeldingLocationId); - // if (loc != null) - // { - // location = loc.WeldingLocationCode; - // } + string location = string.Empty; + var loc = BLL.Base_WeldingLocationServie.GetWeldingLocationById(jot.WeldingLocationId); + if (loc != null) + { + location = loc.WeldingLocationCode; + } - // string ste = jot.Material1Id; + string ste = jot.Material1Id; - // List floorWelderQualifys = (from x in Funs.DB.Welder_WelderQualify - // where x.WelderId == floorWelder && x.WeldingMethodId != null - // && x.WeldingLocationId != null && x.MaterialType != null - // && x.WeldType != null - // && x.ThicknessMax != null && x.SizesMin != null - // select x).ToList(); + List floorWelderQualifys = (from x in Funs.DB.Welder_WelderQualify + where x.WelderId == floorWelder && x.WeldingMethodId != null + && x.WeldingLocationId != null && x.MaterialType != null + && x.WeldType != null + && x.ThicknessMax != null && x.SizesMin != null + select x).ToList(); - // List cellWelderQualifys = (from x in Funs.DB.Welder_WelderQualify - // where x.WelderId == cellWelder && x.WeldingMethodId != null - // && x.WeldingLocationId != null && x.MaterialType != null - // && x.WeldType != null - // && x.ThicknessMax != null && x.SizesMin != null - // select x).ToList(); + List cellWelderQualifys = (from x in Funs.DB.Welder_WelderQualify + where x.WelderId == cellWelder && x.WeldingMethodId != null + && x.WeldingLocationId != null && x.MaterialType != null + && x.WeldType != null + && x.ThicknessMax != null && x.SizesMin != null + select x).ToList(); - // // 打底和盖面同一焊工 - // if (floorWelder == cellWelder) - // { - // if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) - // { - // if (wmeCodes.Count() <= 1) // 一种焊接方法 - // { - // canSave = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); - // } - // else // 大于一种焊接方法,如氩电联焊 - // { - // canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); - // } - // } - // } - // // 打底和盖面焊工不同 - // else - // { - // bool isok1 = false; - // bool isok2 = false; + // 打底和盖面同一焊工 + if (floorWelder == cellWelder) + { + if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) + { + if (wmeCodes.Count() <= 1) // 一种焊接方法 + { + canSave = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); + } + else // 大于一种焊接方法,如氩电联焊 + { + canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); + } + } + } + // 打底和盖面焊工不同 + else + { + bool isok1 = false; + bool isok2 = false; - // if (wmeCodes.Count() <= 1) // 一种焊接方法 - // { - // if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) - // { - // isok1 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); - // } - // if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0) - // { - // isok2 = IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); - // } - // if (isok1 && isok2) - // { - // canSave = true; - // } - // } - // else - // { - // canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); - // } - // } + if (wmeCodes.Count() <= 1) // 一种焊接方法 + { + if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) + { + isok1 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); + } + if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0) + { + isok2 = IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); + } + if (isok1 && isok2) + { + canSave = true; + } + } + else + { + canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); + } + } + + if (canSave == false) + { + eventArg = eventArg + jot.WeldJointCode + ","; + } + } + } - // if (canSave == false) - // { - // eventArg = eventArg + jot.WeldJointCode + ","; - // } - // } - // } - //} #endregion } @@ -1366,6 +1351,11 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage ShowNotify(errorInfos, MessageBoxIcon.Warning, 10000); return; } + else if (!string.IsNullOrEmpty(errorCheck)) + { + ShowNotify(errorCheck+ "请更正后再提交保存", MessageBoxIcon.Warning, 10000); + return; + } else { // 焊工资质符全条件 diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReportEdit.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReportEdit.aspx.cs index c3bbec5..e43ef3d 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReportEdit.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReportEdit.aspx.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Data; using System.Linq; using BLL; +using Model; using Newtonsoft.Json.Linq; namespace FineUIPro.Web.WeldingProcess.WeldingManage @@ -323,14 +324,15 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage return; } - // 焊工资质 + // 焊工合格项资质错误信息 string eventArg = string.Empty; - - // 验证错误 + // 焊工WPS验证错误信息 string errorCheck = string.Empty; + // 日报信息验证错误信息 + string errorInfos = string.Empty; List GetWeldingDailyItem = this.CollectGridJointInfo(); - #region 和焊口信息及所能焊的WPS验证 + #region 焊工所能焊的WPS验证 int rowIndex = 1; foreach (var item in GetWeldingDailyItem) { @@ -342,38 +344,29 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage { if (!wps.WelderIds.Contains(item.BackingWelderId)) { - if (!eventArg.Contains(item.BackingWelderId)) - { - eventArg += rowIndex + "行,焊工:" + item.BackingWelderCode + "无资质,"; - } + errorCheck += rowIndex + "行,焊工:" + item.BackingWelderCode + "无WPS焊接资质,"; } } else { if (!wps.WelderIds.Contains(item.BackingWelderId)) { - if (!eventArg.Contains(item.BackingWelderId)) - { - eventArg += rowIndex + "行,焊工:" + item.BackingWelderCode + "无资质,"; - } + errorCheck += rowIndex + "行,焊工:" + item.BackingWelderCode + "无WPS焊接资质,"; } if (!wps.WelderIds.Contains(item.CoverWelderId)) { - if (!eventArg.Contains(item.CoverWelderId)) - { - eventArg += rowIndex + "行,焊工:" + item.CoverWelderId + "无资质,"; - } + errorCheck += rowIndex + "行,焊工:" + item.CoverWelderId + "无WPS焊接资质,"; } } // 验证数据是否一至 if (!string.IsNullOrEmpty(item.WeldTypeId) && !string.IsNullOrEmpty(jot.WeldTypeId) && item.WeldTypeId != jot.WeldTypeId) { - errorCheck += rowIndex + "行,焊缝类型:" + item.WeldTypeId + "验证不一至,"; + errorInfos += rowIndex + "行,焊缝类型:" + item.WeldTypeId + "验证不一至,"; } if (!string.IsNullOrEmpty(item.JointAttribute) && !string.IsNullOrEmpty(jot.JointAttribute) && item.JointAttribute != jot.JointAttribute) { - errorCheck += rowIndex + "行,焊口属性:" + item.JointAttribute + "验证不一至,"; + errorInfos += rowIndex + "行,焊口属性:" + item.JointAttribute + "验证不一至,"; } //if (!string.IsNullOrEmpty(item.WeldingLocationId) && !string.IsNullOrEmpty(jot.WeldingLocationId) && item.WeldingLocationId != jot.WeldingLocationId) @@ -383,12 +376,12 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage if (item.Size!=null && jot.Size!=null && item.Size != jot.Size) { - errorCheck += rowIndex + "行,管径:" + item.JointAttribute + "验证不一至,"; + errorInfos += rowIndex + "行,管径:" + item.JointAttribute + "验证不一至,"; } if (!string.IsNullOrEmpty(item.ANSISCH) && !string.IsNullOrEmpty(jot.ANSISCH) && item.ANSISCH != jot.ANSISCH) { - errorCheck += rowIndex + "行,美标壁厚:" + item.ANSISCH + "验证不一至,"; + errorInfos += rowIndex + "行,美标壁厚:" + item.ANSISCH + "验证不一至,"; } //if (!string.IsNullOrEmpty(item.MaterialId1) && !string.IsNullOrEmpty(jot.Material1Id) && jot.Material1Id != item.MaterialId1) @@ -401,11 +394,11 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage //} if (!string.IsNullOrEmpty(item.Components1Id) && !string.IsNullOrEmpty(jot.PipeAssembly1Id) && jot.PipeAssembly1Id != item.Components1Id) { - errorCheck += rowIndex + "行,组件1:" + item.Components1Code + "验证不一至,"; + errorInfos += rowIndex + "行,组件1:" + item.Components1Code + "验证不一至,"; } if (!string.IsNullOrEmpty(item.Components2Id) && !string.IsNullOrEmpty(jot.PipeAssembly2Id) && jot.PipeAssembly2Id != item.Components2Id) { - errorCheck += rowIndex + "行,组件2:" + item.Components2Code + "验证不一至,"; + errorInfos += rowIndex + "行,组件2:" + item.Components2Code + "验证不一至,"; } //if (!string.IsNullOrEmpty(item.HeartNo1) && !string.IsNullOrEmpty(jot.HeartNo1) && jot.HeartNo1 != item.HeartNo1) @@ -418,7 +411,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage //} if (!string.IsNullOrEmpty(item.PipeSegment) && !string.IsNullOrEmpty(jot.PipeSegment) && jot.PipeSegment != item.PipeSegment) { - errorCheck += rowIndex + "行,所属管段:" + item.PipeSegment + "验证不一至,"; + errorInfos += rowIndex + "行,所属管段:" + item.PipeSegment + "验证不一至,"; } //if (!string.IsNullOrEmpty(item.WPQId) && !string.IsNullOrEmpty(jot.WPQId) && jot.WPQId != item.WPQId) //{ @@ -429,99 +422,99 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage } #endregion - #region 焊工资质判断,暂不用 - //// 焊工资质 - //foreach (var item in GetWeldingDailyItem) - //{ - // bool canSave = false; - // var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId); - // var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId); - // string weldTypeGroup = joty.Flag; - // string weldTypeCode = joty.WeldTypeCode; - // string floorWelder = item.BackingWelderId; - // string cellWelder = item.CoverWelderId; - // decimal? dia = item.Dia; - // decimal? sch = item.Thickness; - // //string wme = item.WeldingMethodCode; - // //string wmeCode = string.Empty; - // //var wm = BLL.HJGL_WeldingMethodService.GetWeldMethodByWMEID(item.WME_ID); - // //if (wm != null) - // //{ - // // wmeCode = wm.WME_Code; - // //} + #region 焊工资质判断 + // 焊工资质 + foreach (var item in GetWeldingDailyItem) + { + bool canSave = false; + var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId); + var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId); + string weldTypeGroup = joty.Flag; + string weldTypeCode = joty.WeldTypeCode; + string floorWelder = item.BackingWelderId; + string cellWelder = item.CoverWelderId; + decimal? dia = item.Dia; + decimal? sch = item.Thickness; + //string wme = item.WeldingMethodCode; + //string wmeCode = string.Empty; + //var wm = BLL.HJGL_WeldingMethodService.GetWeldMethodByWMEID(item.WME_ID); + //if (wm != null) + //{ + // wmeCode = wm.WME_Code; + //} - // string[] wmeCodes = item.WeldingMethodCode.Split('+'); - // string location = item.WeldingLocationCode; - // string ste = jot.Material1Id; - // var projectWelder = BLL.Welder_ProjectWelderService.GetProjectWelderByProjectIdAndWelderId(this.ProjectId,item.BackingWelderId); - // var projectUnit = BLL.Project_UnitService.GetProject_UnitByProjectIdUnitId(this.ProjectId,projectWelder.UnitId); - // if (projectUnit != null && projectUnit.WelderQueIsUse == true) - // { - // List floorWelderQualifys = (from x in Funs.DB.Welder_WelderQualify - // where x.WelderId == floorWelder && x.WeldingMethodId != null - // && x.WeldingLocationId != null && x.MaterialType != null - // && x.WeldType != null - // && x.ThicknessMax != null && x.SizesMin != null - // select x).ToList(); + string[] wmeCodes = item.WeldingMethodCode.Split('+'); + string location = item.WeldingLocationCode; + string ste = jot.Material1Id; + var projectWelder = BLL.Welder_ProjectWelderService.GetProjectWelderByProjectIdAndWelderId(this.ProjectId, item.BackingWelderId); + var projectUnit = BLL.Project_UnitService.GetProject_UnitByProjectIdUnitId(this.ProjectId, projectWelder.UnitId); + if (projectUnit != null && projectUnit.WelderQueIsUse == true) + { + List floorWelderQualifys = (from x in Funs.DB.Welder_WelderQualify + where x.WelderId == floorWelder && x.WeldingMethodId != null + && x.WeldingLocationId != null && x.MaterialType != null + && x.WeldType != null + && x.ThicknessMax != null && x.SizesMin != null + select x).ToList(); - // List cellWelderQualifys = (from x in Funs.DB.Welder_WelderQualify - // where x.WelderId == cellWelder && x.WeldingMethodId != null - // && x.WeldingLocationId != null && x.MaterialType != null - // && x.WeldType != null - // && x.ThicknessMax != null && x.SizesMin != null - // select x).ToList(); - // // 打底和盖面同一焊工 - // if (floorWelder == cellWelder) - // { - // if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) - // { - // if (wmeCodes.Count() <= 1) // 一种焊接方法 - // { - // canSave = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); - // } - // else // 大于一种焊接方法,如氩电联焊 - // { - // canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); - // } - // } - // } - // // 打底和盖面焊工不同 - // else - // { - // bool isok1 = false; - // bool isok2 = false; + List cellWelderQualifys = (from x in Funs.DB.Welder_WelderQualify + where x.WelderId == cellWelder && x.WeldingMethodId != null + && x.WeldingLocationId != null && x.MaterialType != null + && x.WeldType != null + && x.ThicknessMax != null && x.SizesMin != null + select x).ToList(); + // 打底和盖面同一焊工 + if (floorWelder == cellWelder) + { + if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) + { + if (wmeCodes.Count() <= 1) // 一种焊接方法 + { + canSave = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); + } + else // 大于一种焊接方法,如氩电联焊 + { + canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); + } + } + } + // 打底和盖面焊工不同 + else + { + bool isok1 = false; + bool isok2 = false; - // if (wmeCodes.Count() <= 1) // 一种焊接方法 - // { - // if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) - // { - // isok1 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); - // } - // if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0) - // { - // isok2 = IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); - // } - // if (isok1 && isok2) - // { - // canSave = true; - // } - // } - // else - // { - // canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); - // } - // } - // } - // else - // { - // canSave = true; - // } + if (wmeCodes.Count() <= 1) // 一种焊接方法 + { + if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0) + { + isok1 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); + } + if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0) + { + isok2 = IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch); + } + if (isok1 && isok2) + { + canSave = true; + } + } + else + { + canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch); + } + } + } + else + { + canSave = true; + } - // if (canSave == false) - // { - // eventArg = eventArg + jot.WeldJointCode + ","; - // } - //} + if (canSave == false) + { + eventArg = eventArg + jot.WeldJointCode + ","; + } + } #endregion #region 生成管线的随机数 不用了 @@ -725,7 +718,12 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage //} #endregion - if (!string.IsNullOrEmpty(errorCheck)) + if (!string.IsNullOrEmpty(errorInfos)) + { + ShowNotify(errorInfos, MessageBoxIcon.Warning, 10000); + return; + } + else if (!string.IsNullOrEmpty(errorCheck)) { errorCheck = errorCheck + "请更正后再提交保存"; ShowNotify(errorCheck, MessageBoxIcon.Warning, 10000); From 96615246311232a03bd24dd687edb1520bf8fea5 Mon Sep 17 00:00:00 2001 From: shecs <408299694@qq.com> Date: Sun, 26 May 2024 07:48:48 +0800 Subject: [PATCH 2/2] 11 --- HJGL/.vs/HJGL/v17/.suo | Bin 1391104 -> 1400832 bytes .../TrustManage/TrustBatchIn.aspx | 8 +- .../TrustManage/TrustBatchIn.aspx.cs | 198 +++++++++++++++++- .../TrustManage/TrustBatchIn.aspx.designer.cs | 9 + .../TrustManage/TrustBatchManage.aspx | 2 +- HJGL/Model/Model.cs | 156 ++++++-------- 6 files changed, 277 insertions(+), 96 deletions(-) diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index 4deefdbdacd554d964f6b119e2245991c7cb4c8e..49d07f0ce4112890547a24d4a7d28ff800ef4521 100644 GIT binary patch delta 21510 zcmd^n3tUvy+V@`jGPCDCgQFoKA`%fIqM4b;a745;MM5JhGsH`3rifUkCL@}8$YaRZ zJXU7Nv8{Q`P?F_aYU3p{BSW(?j~Q8MbRZ{y*u4R!HY@6l3ef)9 zw^8^f5yAC-Q#>1?NV^ca0S~a$BuQ5yd=I!AXa7u6e9E3B0S-=dSOdfB^_gMap_hq_XbT96oW4I84 zc1WKS0wDmR-gB2I_iI8Rgym8~Aeem#AxH{0&?E)_f)EJ03z}aj1frWl2-1K)z%L1b z;7vRr_;R5TfIa`b5C}S*qos(S69N$z*Et~&@yiK;xc8d~!8&U^Q}Y~>6iBqi-!>SL z+khP4c0kbY4up3CcQvK&MmP+(2gn761EQS3NW@10qk((R@wraaASNZLm32e7@ zFKdXcifyrv6`i(AlB|JYxR`=Cpa3S|Q{+L-Bs1bVU;(Uv4X^`lzzMj36u<*S0L=g| z&>Uz1TmeJ^ErBTDN+23&rNA)6AkrF$1=;{{KwBUlxC%%B5`q4}H9!*34rmVy13Cab zfKEV1U>&6IdW4;U>wqr6bf7D61JDil9nc-PQGwQ{A>spi13iIspcjw<^Z{-L`T}Es zen1wG2`m8y00V)WfJ!ucE5dAG5O5o?T!ocG$Ps=9+=2L=z+J#l;O-*)+yjgNa)IGM z9xxJE1k#T}I2yPY7z^YBwlzp92hF zw=7935WbC2l(`$?D>Uv9Xpg{kHV-$&L*F8dlLA{)Qi_l|f8C1g^9e+@BmEc*`?`4Eui<73bn4RFge+XlP3Y6`GPy@p zkC>yDKtlR6fo*a}yAR?ZJY#W{`H})jy;{obD%!J8>0s}TdkZeOx2ji8z&|~)Dlut4 zEA#b|S#-EupwKta5;oexVAG!c=EOjQZ(v|sddEOv&-oP*^19SSwJI@sKcnJ5x)Nyf zSFWV0tS*&G#b|k5_e3?2*tu5jp#-K)PYEPmx1apC%W;AD=b{5?U(VGbe$rJyxZbLU zFYTU+rXvG>+a5T4Puc#)7h2nm#Rs}QwgXjH+#EsmK2;5wj@voZ-vNi=aY(5%uOc17# z=V#CU74e^-I;SztdJyK%(3ppi&TR&J5B1svcWE)~LVO%%G~^GDN8eGd3Cp)91;zklfpNfnzV(WfENE+p9D WWJxD)xtdv3 zT9dDoDRC5E&7!N){BxNcDbcO9<`nxfm?iic;j64HLvMg&T!~cJklDI}D>;ofY1V6c zvp`wdVbex*#?>}3EikuY-+!Onj1Y3e3TR6N%Ow9jp7?&(C(bs9s_t3w!Om?X@?M=+ zvVH6ach7G5$4=9SebXlX$pe{Ue2t_%d-ey!AA{L>4>WlKwov%U#R!YBz3~S|&z8z< z0=_M3pzh5Wwj;n^f01@8mdLKRY)rVi>o#X>iu&2KqgT_ZQMw9?R~1A>&%Zln>94q-|wbs(^{tRbYXK zFt<{Y*5Y2t4$Q5Pl`r;6(k;j@flr$PIhu;ewHk_aU>FOR&z{7>YqhQcCizir!t*RV z53l8o>DK$0GzQQ03^G~DM}hgxkH{V0Jc-_GUW-UU~V%)Q=RcC%EmN7xhI{l=K`k~|>4{*f=d}l*NSYR$kOKWlz zX)B)m7E3s>N^Ae967Iq7=N0K8Oc?uBRoaC|-|wtSn-R{Kph~ULqnln(rJ)Glb!t*P zEXwXXHK_tU8Z=##W}@C5&?&LJ{C&A5^~Q5&U)CfO!n^jN5dIgv_>Ct083l7ylk_nP zTH2T-8wwPsnWUpgC*9SU@0@CqGLav8#w0C6gS`%#BnR#fV`eD{`Oyhx=@EoI2AidC zk$=l0X6b+%Yup4~dKdYnLv(2u8Z0i+!@Q~3u1le2SkugZ)DnL1`wENn10K9-vnA|A zZN@TAtUK4Yuu5}L!GvyB=`(cnnH;NRMcVOuYj}Y?4U?Q$D6@^$@alf}M@VD)?5n;u z34N4`rrM;%px}pZ+obt;Uj5V-rtCu}ZPHJ!B9Q1FyYwR}e0io_I)jSddDbqi0V}pw z*`+!>@bON&RDf{CXLjj+gxV>)Gy@e@VspoZbTe$u*bx3tp+oA22A{pbBTYm4`Jo;u z74^l=@<_sZjM(Fmx`T3ClnAL6_Hu-1oK=CXKi9W`Lf=ebeUtbpjhSR4n#tsxYqnR} z`!q1a%H-f3EUqfaS`%k02GU89zc`a;o+m@4$ke!DT+DwSh+#x*L`5 zoa(vPH8e2$FxW-(H+)s6uo}i@1}1%Y^}>*9@i&R`e~+(X4f`rDqF?>iF6+gNR1oMJ zJ4@gRZgzmJ`>v45S6TxPd|yIsb~{`1))DMuW^`h*n521P0^84w&P*WX)C&5z8|y-`(_J_6Ivj{L0DFOVfPH}QO;>=W?<2k+_y9Nn{24e1 zdJH68Hf)1^ft{27Ut00A~T=$3MGm0BjmJ^9-7{PDm3v>q^gTeKe2rpE?^pp0z(_CsGz25 zM<6ef@l&_MI0U2EqVURuFOFhkSak*qv0xr+88~t_ifVs{)nR^jW-;QJTs@yHk}oJ4 zOo9mBN>h^9S(Z*y+OfxiZz>S4(d@%!#FE*4;j)yU%>3$AkTBkm%q#BDF$?dP$EsO%DJzsO?v*hERWD!~X+ic!){bTcSu@%gWIneKd^lHW7UE&#k0_x(iwdMo zH1Q0BZG?@wp2Y@Y6_t!HZB6+#Y>SPwp=@@ObgX1c*kz=GSiIbW-N1Xs%da-|EyiD5)<&-Rlf97mS+x2$7s>#M+9WCkb3+sN8{8e`^uI-iHedjf;A~Pp{)p=j9^e#)TGo`LR6!jwF zpWpOZ@{n1%)7KzAXTZkkl7CWnQGWfW?{EJ8iJ~o?kWV$Y$en}P@)+`G%blb9W))0K zxqVb#T({|QgCv*-QQ-YNF7P@b0h(#YO!G$({Ay1Nsb( zyM62gx_OX1)#xg#Mw~2HC&-P0bG2L*rkYPaWDX|Dp$Orhtb;nN2ZVo;ZRUHE

I% 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�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 - <%----%> + @@ -63,7 +63,7 @@

public static string errorInfos = string.Empty; + + public string BatchCode + { + get + { + return (string)ViewState["BatchCode"]; + } + set + { + ViewState["BatchCode"] = value; + } + } + #endregion #region 加载页面 @@ -98,6 +114,7 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage var pipeList = from x in Funs.DB.Pipeline_Pipeline where x.ProjectId == this.CurrUser.LoginProjectId select x; List logListData = new List(); string BatchNo = DateTime.Now.ToString("yyyyMMddHHmmss"); + BatchCode = BatchNo; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { string result = string.Empty; @@ -376,7 +393,7 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage } - void BindGrid1(string batchNo) + private void BindGrid1(string batchNo) { var result = Funs.DB.TrustBatchImportErrorLog.Where(t => t.BatchNo == batchNo).OrderBy(t => t.RowID).ToList(); this.Grid1.DataSource = result; @@ -572,9 +589,182 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage /// /// /// + protected void btnOut_Click(object sender, EventArgs e) { - + string rootPath = Server.MapPath("~/") + Const.ExcelUrl; + //模板文件 + string TempletFileName = rootPath + "TrustErrorOut.xlsx"; + //导出文件 + string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(filePath); + } + string ReportFileName = filePath + "out.xlsx"; + + FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read); + XSSFWorkbook hssfworkbook = new XSSFWorkbook(file); + + #region JointComprehensive + XSSFSheet reportModel = (XSSFSheet)hssfworkbook.GetSheet("Sheet1"); + + XSSFFont cs_content_Font1 = (XSSFFont)hssfworkbook.CreateFont(); //创建字体 + cs_content_Font1.FontName = "sans-serif";//字体 + cs_content_Font1.FontHeightInPoints = 9; //字体大小 + + ICellStyle style = hssfworkbook.CreateCellStyle(); + style.SetFont(cs_content_Font1); + + XSSFFont cs_content_Font = (XSSFFont)hssfworkbook.CreateFont(); //创建字体 + cs_content_Font.FontName = "sans-serif";//字体 + cs_content_Font.FontHeightInPoints = 10; //字体大小 + cs_content_Font.Color = HSSFColor.Red.Index; + + IDataFormat dataformat = hssfworkbook.CreateDataFormat(); + ICellStyle styleDate = hssfworkbook.CreateCellStyle(); + styleDate.SetFont(cs_content_Font1); + styleDate.DataFormat = dataformat.GetFormat("yyyy-mm-dd"); + + // 排序 + var result = Funs.DB.TrustBatchImportErrorLog.Where(t => t.BatchNo == this.BatchCode).OrderBy(t => t.RowID).ToList(); + + if (result.Count > 0) + { + var rowIndex = 1; + foreach (var itemOver in result) + { + if (reportModel.GetRow(rowIndex) == null) reportModel.CreateRow(rowIndex); + + #region 列赋值 + //行号 + if (reportModel.GetRow(rowIndex).GetCell(0) == null) reportModel.GetRow(rowIndex).CreateCell(0); + reportModel.GetRow(rowIndex).GetCell(0).SetCellValue(itemOver.RowID.ToString()); + reportModel.GetRow(rowIndex).GetCell(0).CellStyle = style; //将字体绑定到样式 + + //委托单 + if (reportModel.GetRow(rowIndex).GetCell(1) == null) reportModel.GetRow(rowIndex).CreateCell(1); + reportModel.GetRow(rowIndex).GetCell(1).SetCellValue(itemOver.TrustBatchCode); + reportModel.GetRow(rowIndex).GetCell(1).CellStyle = style; + //装置 + if (reportModel.GetRow(rowIndex).GetCell(2) == null) reportModel.GetRow(rowIndex).CreateCell(2); + reportModel.GetRow(rowIndex).GetCell(2).SetCellValue(itemOver.InstallCode); + reportModel.GetRow(rowIndex).GetCell(2).CellStyle = style; + //区域 + if (reportModel.GetRow(rowIndex).GetCell(3) == null) reportModel.GetRow(rowIndex).CreateCell(3); + reportModel.GetRow(rowIndex).GetCell(3).SetCellValue(itemOver.AreaCode); + reportModel.GetRow(rowIndex).GetCell(3).CellStyle = style; + //管线号 + if (reportModel.GetRow(rowIndex).GetCell(4) == null) reportModel.GetRow(rowIndex).CreateCell(4); + reportModel.GetRow(rowIndex).GetCell(4).SetCellValue(itemOver.PipelineCode); + reportModel.GetRow(rowIndex).GetCell(4).CellStyle = style; + + //焊口号 + if (reportModel.GetRow(rowIndex).GetCell(5) == null) reportModel.GetRow(rowIndex).CreateCell(5); + reportModel.GetRow(rowIndex).GetCell(5).SetCellValue(itemOver.WeldJointCode); + reportModel.GetRow(rowIndex).GetCell(5).CellStyle = style; + + //探伤类型 + if (reportModel.GetRow(rowIndex).GetCell(6) == null) reportModel.GetRow(rowIndex).CreateCell(6); + reportModel.GetRow(rowIndex).GetCell(6).SetCellValue(itemOver.DetectionType); + reportModel.GetRow(rowIndex).GetCell(6).CellStyle = style; + + //委托日期 + if (reportModel.GetRow(rowIndex).GetCell(7) == null) reportModel.GetRow(rowIndex).CreateCell(7); + reportModel.GetRow(rowIndex).GetCell(7).SetCellValue(itemOver.TrustDate); + reportModel.GetRow(rowIndex).GetCell(7).CellStyle = style; + + //检测单位 + if (reportModel.GetRow(rowIndex).GetCell(8) == null) reportModel.GetRow(rowIndex).CreateCell(8); + reportModel.GetRow(rowIndex).GetCell(8).SetCellValue(itemOver.UnitCode); + reportModel.GetRow(rowIndex).GetCell(8).CellStyle = style; + //表面 + if (reportModel.GetRow(rowIndex).GetCell(9) == null) reportModel.GetRow(rowIndex).CreateCell(9); + reportModel.GetRow(rowIndex).GetCell(9).SetCellValue(itemOver.SurfaceState); + reportModel.GetRow(rowIndex).GetCell(9).CellStyle = style; + + //检测时机 + if (reportModel.GetRow(rowIndex).GetCell(10) == null) reportModel.GetRow(rowIndex).CreateCell(10); + reportModel.GetRow(rowIndex).GetCell(10).SetCellValue(itemOver.Opportunity); + reportModel.GetRow(rowIndex).GetCell(10).CellStyle = style; + //错误 + if (reportModel.GetRow(rowIndex).GetCell(11) == null) reportModel.GetRow(rowIndex).CreateCell(11); + reportModel.GetRow(rowIndex).GetCell(11).SetCellValue(itemOver.Remark.Replace("|",",")); + reportModel.GetRow(rowIndex).GetCell(11).CellStyle = style; + + #endregion + + rowIndex++; + } + } + #endregion + reportModel.ForceFormulaRecalculation = true; + + using (FileStream filess = System.IO.File.OpenWrite(ReportFileName)) + { + hssfworkbook.Write(filess); + } + FileInfo filet = new FileInfo(ReportFileName); + Response.Clear(); + Response.Charset = "GB2312"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 + Response.AddHeader("Content-Disposition", "attachment; filename=委托单错误日志_" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx")); + // 添加头信息,指定文件大小,让浏览器能够显示下载进度 + Response.AddHeader("Content-Length", filet.Length.ToString()); + // 指定返回的是一个不能被客户端读取的流,必须被下载 + Response.ContentType = "application/ms-excel"; + // 把文件流发送到客户端 + Response.WriteFile(filet.FullName); + // 停止页面的执行 + Response.End(); + + //Response.ClearContent(); + //string filename = Funs.GetNewFileName(); + //Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode(Resources.Lan.JointComprehensive + filename, System.Text.Encoding.UTF8) + ".xls"); + //Response.ContentType = "application/excel"; + //Response.ContentEncoding = System.Text.Encoding.UTF8; + //Response.Write(GetGridTableHtml(Grid1)); + //Response.End(); + } + + /// + /// 导出方法 + /// + /// + /// + private string GetGridTableHtml(Grid grid) + { + StringBuilder sb = new StringBuilder(); + grid.PageSize = 10000; + BindGrid1(this.BatchCode); + sb.Append(""); + sb.Append(""); + sb.Append(""); + foreach (GridColumn column in grid.Columns) + { + sb.AppendFormat("", column.HeaderText); + } + sb.Append(""); + foreach (GridRow row in grid.Rows) + { + sb.Append(""); + foreach (GridColumn column in grid.Columns) + { + string html = row.Values[column.ColumnIndex].ToString(); + if (column.ColumnID == "Remark") + { + html = (row.FindControl("lablRemark") as AspNet.Label).Text; + } + sb.AppendFormat("", html); + } + + sb.Append(""); + } + + sb.Append("
{0}
{0}
"); + + return sb.ToString(); } /// diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchIn.aspx.designer.cs b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchIn.aspx.designer.cs index a33067c..ff417ae 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchIn.aspx.designer.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchIn.aspx.designer.cs @@ -77,6 +77,15 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage /// protected global::FineUIPro.Button btnDownLoad; + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// fuAttachUrl 控件。 /// diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx index 4d07f97..f95fcc7 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/TrustBatchManage.aspx @@ -227,7 +227,7 @@ _CreatedTime; - private string _Tabler; - #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -22534,12 +22534,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 +22607,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="NVarChar(50) NOT NULL", CanBeNull=false)] public string ProjectId { get @@ -22687,6 +22687,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(); + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Remark", DbType="NVarChar(255)")] public string Remark { @@ -22727,26 +22747,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(); - } - } - } - public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; @@ -22786,10 +22786,10 @@ namespace Model private int _Status; - private string _ReportNo; - private System.Nullable _CheckTime; + private string _ReportNo; + private System.Nullable _ReportTime; #region 可扩展性方法定义 @@ -22808,10 +22808,10 @@ namespace Model partial void OnAcceptanceChanged(); partial void OnStatusChanging(int value); partial void OnStatusChanged(); - partial void OnReportNoChanging(string value); - partial void OnReportNoChanged(); partial void OnCheckTimeChanging(System.Nullable value); partial void OnCheckTimeChanged(); + partial void OnReportNoChanging(string value); + partial void OnReportNoChanged(); partial void OnReportTimeChanging(System.Nullable value); partial void OnReportTimeChanged(); #endregion @@ -22921,7 +22921,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Name="status", Storage="_Status", DbType="Int NOT NULL")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Status", DbType="Int NOT NULL")] public int Status { get @@ -22941,26 +22941,6 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Name="reportNo", Storage="_ReportNo", DbType="NVarChar(50)")] - public string ReportNo - { - get - { - return this._ReportNo; - } - set - { - if ((this._ReportNo != value)) - { - this.OnReportNoChanging(value); - this.SendPropertyChanging(); - this._ReportNo = value; - this.SendPropertyChanged("ReportNo"); - this.OnReportNoChanged(); - } - } - } - [global::System.Data.Linq.Mapping.ColumnAttribute(Name="checkTime", Storage="_CheckTime", DbType="DateTime")] public System.Nullable CheckTime { @@ -22981,6 +22961,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Name="reportNo", Storage="_ReportNo", DbType="NVarChar(50)")] + public string ReportNo + { + get + { + return this._ReportNo; + } + set + { + if ((this._ReportNo != value)) + { + this.OnReportNoChanging(value); + this.SendPropertyChanging(); + this._ReportNo = value; + this.SendPropertyChanged("ReportNo"); + this.OnReportNoChanged(); + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Name="reportTime", Storage="_ReportTime", DbType="DateTime")] public System.Nullable ReportTime { @@ -39555,8 +39555,6 @@ namespace Model private string _ProjectId; - private System.Nullable _IsPMI; - private string _PipelineCode; private string _PipelineId; @@ -39687,22 +39685,6 @@ 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 { @@ -41711,6 +41693,8 @@ namespace Model private string _PipingClassCode; + private string _PIPClassCode; + private string _WeldingDate; private System.Nullable _IsCancel; @@ -41725,8 +41709,6 @@ namespace Model private string _DetectionType; - private string _PIPClassCode; - private string _PageNum; public View_Pipeline_WeldJoint() @@ -42821,6 +42803,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="_WeldingDate", DbType="VarChar(100)")] public string WeldingDate { @@ -42933,22 +42931,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="_PageNum", DbType="NVarChar(10)")] public string PageNum { @@ -47512,7 +47494,7 @@ namespace Model } } - [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WelderIds", DbType="VarChar(1000)")] + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WelderIds", DbType="NVarChar(MAX)", UpdateCheck=UpdateCheck.Never)] public string WelderIds { get