diff --git a/DataBase/hjglDB_7_2024.06.13(本机).rar b/DataBase/hjglDB_7_2024.06.13(本机).rar new file mode 100644 index 0000000..b5220eb Binary files /dev/null and b/DataBase/hjglDB_7_2024.06.13(本机).rar differ diff --git a/HJGL/.vs/HJGL/config/applicationhost.config b/HJGL/.vs/HJGL/config/applicationhost.config index e47cfd0..1963de0 100644 --- a/HJGL/.vs/HJGL/config/applicationhost.config +++ b/HJGL/.vs/HJGL/config/applicationhost.config @@ -162,7 +162,7 @@ - + @@ -250,7 +250,7 @@ - + diff --git a/HJGL/BLL/WeldingProcess/WelderTest/WelderTestService.cs b/HJGL/BLL/WeldingProcess/WelderTest/WelderTestService.cs index 19084de..9279d86 100644 --- a/HJGL/BLL/WeldingProcess/WelderTest/WelderTestService.cs +++ b/HJGL/BLL/WeldingProcess/WelderTest/WelderTestService.cs @@ -32,7 +32,7 @@ namespace BLL { return ; } - result.WelderId = input.WelderId; + //result.WelderId = input.WelderId; result.WeldMethodId = input.WeldMethodId; result.MaterialId = input.MaterialId; result.Remark = input.Remark; diff --git a/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx b/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx index b38e1dc..e1b12af 100644 --- a/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx +++ b/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx @@ -33,9 +33,12 @@ - + + diff --git a/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.cs b/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.cs index ff1df69..89b1b42 100644 --- a/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.cs +++ b/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.cs @@ -342,7 +342,28 @@ namespace FineUIPro.Web.PublicInfo.WPQ string wpsId = Grid1.SelectedRowID; var wps=BLL.WPQListServiceService.GetWPQById(wpsId); var welderList = from x in Funs.DB.Welder_ProjectWelder where x.ProjectId == this.CurrUser.LoginProjectId select x; - + string materialStr = string.Empty; + + if (wps.MaterialId1 != null) + { + string[] matList = wps.MaterialId1.Split('|'); + + foreach (var matId in matList) + { + var mat = from x in Funs.DB.Base_Material where x.MaterialId == matId select x; + if (mat.Count() > 0 && !materialStr.Contains(mat.First().MaterialType)) + { + materialStr += mat.First().MaterialType + ","; + } + + } + } + if (materialStr != null) + { + materialStr = materialStr.Substring(0, materialStr.Length - 1); + } + string[] wpsMaterial = materialStr.Split(','); + if (welderList.Count() > 0) { string testWelder = string.Empty; @@ -354,14 +375,81 @@ namespace FineUIPro.Web.PublicInfo.WPQ { foreach (var t in welderTestList) { - if (wps.MaterialId1.Contains(t.MaterialId) && wps.WeldingMethodId != null && wps.WeldingMethodId.Contains(t.WeldMethodId) && t.IsPass == true) + if (t.MaterialId != null && wps.WeldingMethodId != null) { - testWelder += welder.WelderId+"|"; - break; + string[] testMaterial = t.MaterialId.Split(','); + if (wpsMaterial.All(x => testMaterial.Contains(x)) && wps.WeldingMethodId.Contains(t.WeldMethodId) && t.IsPass == true) + { + testWelder += welder.WelderId + "|"; + break; + } } } } + } + if (testWelder != string.Empty) + { + testWelder = testWelder.Substring(0, testWelder.Length - 1); + wps.WelderIds = testWelder; + Funs.DB.SubmitChanges(); + ShowNotify("该WPS的可焊焊工已匹配!", MessageBoxIcon.Success); + BindGrid(); + } + else + { + ShowNotify("没有可匹配的焊工!", MessageBoxIcon.Success); + } + } + } + protected void BatchExtract_Click(object sender, EventArgs e) + { + var wpsList = from x in Funs.DB.WPQ_WPQList where x.ProjectId == CurrUser.LoginProjectId select x; + var welderList = from x in Funs.DB.Welder_ProjectWelder where x.ProjectId == this.CurrUser.LoginProjectId select x; + foreach (var wps in wpsList) + { + string testWelder = string.Empty; + string materialStr = string.Empty; + + if (wps.MaterialId1 != null) + { + string[] matList = wps.MaterialId1.Split('|'); + + foreach (var matId in matList) + { + var mat = from x in Funs.DB.Base_Material where x.MaterialId == matId select x; + if (mat.Count() > 0 && !materialStr.Contains(mat.First().MaterialType)) + { + materialStr += mat.First().MaterialType + ","; + } + + } + } + if (materialStr != null) + { + materialStr = materialStr.Substring(0, materialStr.Length - 1); + } + string[] wpsMaterial = materialStr.Split(','); + + // 焊工考试情况 + foreach (var welder in welderList) + { + var welderTestList = from x in Funs.DB.Welder_TestInfo where x.WelderId == welder.WelderId select x; + if (welderTestList.Count() > 0) + { + foreach (var t in welderTestList) + { + if (t.MaterialId != null && wps.WeldingMethodId != null) + { + string[] testMaterial = t.MaterialId.Split(','); + if (wpsMaterial.All(x => testMaterial.Contains(x)) && wps.WeldingMethodId.Contains(t.WeldMethodId) && t.IsPass == true) + { + testWelder += welder.WelderId + "|"; + break; + } + } + } + } } if (testWelder != string.Empty) { @@ -370,6 +458,9 @@ namespace FineUIPro.Web.PublicInfo.WPQ Funs.DB.SubmitChanges(); } } + + BindGrid(); + ShowNotify("所有WPS可焊焊工已匹配!", MessageBoxIcon.Success); } #endregion diff --git a/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.designer.cs b/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.designer.cs index 2085aec..4f5d3f0 100644 --- a/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.designer.cs +++ b/HJGL/FineUIPro.Web/PublicInfo/WPQ/WPQList.aspx.designer.cs @@ -113,6 +113,15 @@ namespace FineUIPro.Web.PublicInfo.WPQ /// protected global::FineUIPro.Button btnExtract; + /// + /// btnBatchExtract 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnBatchExtract; + /// /// lblNumber 控件。 /// diff --git a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx index 72b23e5..d826a9b 100644 --- a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx +++ b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx @@ -81,7 +81,7 @@ FieldType="String" HeaderTextAlign="Center" TextAlign="Center" HeaderText="焊接方法" Locked="true"> - diff --git a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx.cs b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx.cs index 9330994..9f83e46 100644 --- a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx.cs +++ b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfo.aspx.cs @@ -134,14 +134,12 @@ namespace FineUIPro.Web.WelderManage this.lblCode.Text = welder.WelderCode; this.lblName.Text = welder.WelderName; } - string strSql = @"SELECT A.*,b.WeldingMethodCode,C.MaterialCode, + string strSql = @"SELECT A.*,b.WeldingMethodCode, (case when A.IsPass=1 then '是' else '否' end ) As PassName , convert(varchar,A.CreatedDate,23) as TestDate FROM Welder_TestInfo AS A inner join Base_WeldingMethod as B on A.WeldMethodId=B.WeldingMethodId - inner join Base_Material as C on - A.MaterialId=C.MaterialId WHERE A.WelderId=@WelderId"; List listStr = new List(); listStr.Add(new SqlParameter("@WelderId", this.tvControlItem.SelectedNodeID)); @@ -384,12 +382,12 @@ namespace FineUIPro.Web.WelderManage var welderId = Funs.DB.Welder_Welder.FirstOrDefault(t => t.WelderCode == welderCode)?.WelderId; var methodId = Funs.DB.Base_WeldingMethod.FirstOrDefault(t => t.WeldingMethodCode == weldMethod)?.WeldingMethodId; - var materId = Funs.DB.Base_Material.FirstOrDefault(t => t.MaterialCode == weldMeatrail)?.MaterialId; + //var materId = Funs.DB.Base_Material.FirstOrDefault(t => t.MaterialCode == weldMeatrail)?.MaterialId; model.Id = SQLHelper.GetNewID(typeof(Model.Welder_TestInfo)); model.WeldMethodId = methodId; - model.MaterialId = materId; + model.MaterialId = weldMeatrail; model.IsPass = isPass == "是" ? true : false; - model.ProjectId = this.CurrUser.LoginProjectId; + model.ProjectId = "0"; model.WelderId = welderId; model.CreatedDate = DateTime.Parse(testDate); model.Remark = remark; @@ -563,16 +561,7 @@ namespace FineUIPro.Web.WelderManage model.isSuccess = false; listData.Add(model); } - if (string.IsNullOrEmpty(weldMeatrail)) - { - var model = new Model.ViewModels.ImportErrorViewModel(); - model.rowId = i; - model.createdTime = DateTime.Now; - model.columnName = "焊接材质"; - model.errMsg = "焊接材质不能为空"; - model.isSuccess = false; - listData.Add(model); - } + if (string.IsNullOrEmpty(isPass)) { var model = new Model.ViewModels.ImportErrorViewModel(); @@ -637,17 +626,25 @@ namespace FineUIPro.Web.WelderManage model.isSuccess = false; listData.Add(model); } - var isAnyMeaterail = Funs.DB.Base_Material.Any(t => t.MaterialCode == weldMeatrail); - if (!isAnyMeaterail) + + string type = "FeⅠ,FeⅡ,FeⅢ,FeⅣ,其他"; + var isAnyMeaterail = weldMeatrail.Split(','); + foreach (var item in isAnyMeaterail) { - var model = new Model.ViewModels.ImportErrorViewModel(); - model.rowId = i; - model.createdTime = DateTime.Now; - model.columnName = "焊接材质"; - model.errMsg = "焊接材质不存在"; - model.isSuccess = false; - listData.Add(model); + if (!type.Contains(item)) + { + var model = new Model.ViewModels.ImportErrorViewModel(); + model.rowId = i; + model.createdTime = DateTime.Now; + model.columnName = "焊接材质"; + model.errMsg = "材质应为FeⅠ,FeⅡ,FeⅢ,FeⅣ,其他,多个用','隔开"; + model.isSuccess = false; + listData.Add(model); + + break; + } } + } return listData; } diff --git a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx index 24b49b9..22e3dfa 100644 --- a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx +++ b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx @@ -28,9 +28,8 @@ - - - + diff --git a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.cs b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.cs index e673e0f..4f10c53 100644 --- a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.cs +++ b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.cs @@ -33,7 +33,7 @@ namespace FineUIPro.Web.WelderManage return; } drpIsPass.SelectedValue = result.IsPass.ToString(); - drpMaterial.SelectedValue=result.MaterialId.ToString(); + drpMaterialType.SelectedValueArray=result.MaterialId.Split(','); drpWeldMethod.SelectedValue = result.WeldMethodId.ToString(); txtCheckDate.Text = result.CreatedDate.Value.ToString("yyyy-MM-dd"); txtRemark.Text = result.Remark.ToString(); @@ -57,12 +57,11 @@ namespace FineUIPro.Web.WelderManage drpWeldMethod.DataBind(); drpWeldMethod.Items.Insert(0, new ListItem("请选择", "")); - var materList = Funs.DB.Base_Material.OrderBy(t=>t.MaterialCode).ToList(); - drpMaterial.DataSource= materList; - drpMaterial.DataTextField = "MaterialCode"; - drpMaterial.DataValueField = "MaterialId"; - drpMaterial.DataBind(); - drpMaterial.Items.Insert(0, new ListItem("请选择", "")); + this.drpMaterialType.DataTextField = "Text"; + this.drpMaterialType.DataValueField = "Value"; + this.drpMaterialType.DataSource = BLL.DropListService.MaterialTypeList(); + this.drpMaterialType.DataBind(); + Funs.FineUIPleaseSelect(this.drpMaterialType); } protected void btnSave_Click(object sender, EventArgs e) { @@ -88,16 +87,21 @@ namespace FineUIPro.Web.WelderManage var input = new Model.Welder_TestInfo(); input.CreatedDate = System.Convert.ToDateTime(txtCheckDate.Text); - input.ProjectId = this.CurrUser.LoginProjectId; + input.ProjectId = "0"; input.WeldMethodId = drpWeldMethod.SelectedValue; - input.WelderId = this.welderId; - input.MaterialId = drpMaterial.SelectedValue; + + if (drpMaterialType.SelectedValue != Const._Null) + { + input.MaterialId = string.Join(",", drpMaterialType.SelectedValueArray); + } + input.Remark = txtRemark.Text.Trim(); input.IsPass = drpIsPass.SelectedValue == "是" ? true : false; if (string.IsNullOrEmpty(this.Id)) { - BLL.WelderTestService.Add(input); + input.WelderId = this.welderId; + BLL.WelderTestService.Add(input); } else { diff --git a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.designer.cs b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.designer.cs index f1a0743..675d0c3 100644 --- a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.designer.cs +++ b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoEdit.aspx.designer.cs @@ -69,13 +69,13 @@ namespace FineUIPro.Web.WelderManage protected global::FineUIPro.DropDownList drpWeldMethod; /// - /// drpMaterial 控件。 + /// drpMaterialType 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.DropDownList drpMaterial; + protected global::FineUIPro.DropDownList drpMaterialType; /// /// txtCheckDate 控件。 diff --git a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoImportError.aspx b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoImportError.aspx index 01d02d5..243255b 100644 --- a/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoImportError.aspx +++ b/HJGL/FineUIPro.Web/WelderManage/WelderTestInfoImportError.aspx @@ -16,7 +16,7 @@ - +