diff --git a/SGGL/BLL/HJGL/PreDesign/PackagingManageService .cs b/SGGL/BLL/HJGL/PreDesign/PackagingManageService .cs index c5fd648d..a9ad5407 100644 --- a/SGGL/BLL/HJGL/PreDesign/PackagingManageService .cs +++ b/SGGL/BLL/HJGL/PreDesign/PackagingManageService .cs @@ -143,19 +143,30 @@ namespace BLL /// 当该预制组件已被包装时抛出异常 public static void AddPipelineComponentToPackaging(string packagingManageId, string pipelineComponentId) { - var ComponentModel = BLL.HJGL_PipelineComponentService.GetPipelineComponentById(pipelineComponentId); - if (ComponentModel != null) + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var model = new Model.HJGL_PackagingManageDetail() + bool existsInCurrentPackaging = db.HJGL_PackagingManageDetail.Any(x => x.PackagingManageId == packagingManageId && x.PipelineComponentId == pipelineComponentId); + if (existsInCurrentPackaging) { - Id = SQLHelper.GetNewID(), - PackagingManageId = packagingManageId, - PipelineId = ComponentModel.PipelineId, - PipelineComponentId = pipelineComponentId, - CreateTime = DateTime.Now, - CreateUser = null, - }; - HJGLPackagingmanagedetailService.Add(model); + return; + } + ValidatePipelineComponentsNotInOtherPackaging(pipelineComponentId); + + var ComponentModel = BLL.HJGL_PipelineComponentService.GetPipelineComponentById(pipelineComponentId); + if (ComponentModel != null) + { + var model = new Model.HJGL_PackagingManageDetail() + { + Id = SQLHelper.GetNewID(), + PackagingManageId = packagingManageId, + PipelineId = ComponentModel.PipelineId, + PipelineComponentId = pipelineComponentId, + CreateTime = DateTime.Now, + CreateUser = null, + }; + db.HJGL_PackagingManageDetail.InsertOnSubmit(model); + db.SubmitChanges(); + } } } @@ -172,6 +183,7 @@ namespace BLL db1.HJGL_PackagingManage.DeleteOnSubmit(table); db1.SubmitChanges(); } + HJGLPackagingmanagedetailService.DeleteByPackagingManageId(PackagingManageId); } /// @@ -632,6 +644,11 @@ namespace BLL } // 创建新的包装明细记录 + var addedComponentIds = allComponentIds.Except(existingComponentIds).ToList(); + foreach (var item in addedComponentIds) + { + ValidatePipelineComponentsNotInOtherPackaging(item); + } var newDetailList = new List(); foreach (var item in allComponentIds) { @@ -671,6 +688,28 @@ namespace BLL /// 获取包装状态下拉框选项 /// /// 包装状态列表,包含状态文本和值的映射关系 + private static void ValidatePipelineComponentsNotInOtherPackaging(string pipelineComponentId) + { + if (string.IsNullOrEmpty(pipelineComponentId)) + { + return; + } + + var existDetail = (from detail in Funs.DB.HJGL_PackagingManageDetail + join pack in Funs.DB.HJGL_PackagingManage on detail.PackagingManageId equals pack.PackagingManageId + where detail.PipelineComponentId == pipelineComponentId + select new + { + detail.PipelineComponentId, + PackagingCode = pack == null ? null : pack.PackagingCode + }).FirstOrDefault(); + if (existDetail != null) + { + string packagingCodeText = string.IsNullOrEmpty(existDetail.PackagingCode) ? string.Empty : (",包装编号:" + existDetail.PackagingCode); + throw new Exception("组件已在其他包装中存在" + packagingCodeText + "。"); + } + } + public static ListItem[] GetState() { ListItem[] list = new ListItem[3]; @@ -753,4 +792,4 @@ namespace BLL } #endregion Methods } -} \ No newline at end of file +} diff --git a/SGGL/BLL/HJGL/PreDesign/TrainNumberManageService.cs b/SGGL/BLL/HJGL/PreDesign/TrainNumberManageService.cs index 7de5b25c..8efb265e 100644 --- a/SGGL/BLL/HJGL/PreDesign/TrainNumberManageService.cs +++ b/SGGL/BLL/HJGL/PreDesign/TrainNumberManageService.cs @@ -144,11 +144,19 @@ namespace BLL public static void DeleteById(string Id) { - Model.HJGL_TrainNumberManage table = Funs.DB.HJGL_TrainNumberManage.FirstOrDefault(x => x.Id == Id); + var db = Funs.DB; + Model.HJGL_TrainNumberManage table = db.HJGL_TrainNumberManage.FirstOrDefault(x => x.Id == Id); if (table != null) { - Funs.DB.HJGL_TrainNumberManage.DeleteOnSubmit(table); - Funs.DB.SubmitChanges(); + var packagingList = db.HJGL_PackagingManage.Where(x => x.TrainNumberId == Id).ToList(); + foreach (var item in packagingList) + { + item.TrainNumberId = null; + item.TrainNumber = null; + } + + db.HJGL_TrainNumberManage.DeleteOnSubmit(table); + db.SubmitChanges(); } } @@ -167,4 +175,4 @@ namespace BLL } } } -} \ No newline at end of file +}