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
+}