diff --git a/Myshipping.Application/Service/TrackingSystem/ServiceProjectService.cs b/Myshipping.Application/Service/TrackingSystem/ServiceProjectService.cs
index 52ca64a2..2a8b93e4 100644
--- a/Myshipping.Application/Service/TrackingSystem/ServiceProjectService.cs
+++ b/Myshipping.Application/Service/TrackingSystem/ServiceProjectService.cs
@@ -106,14 +106,9 @@ namespace Myshipping.Application
_logger.LogInformation($"更新服务项目前,获取原始记录 JSON={JSON.Serialize(model)}");
- /*
- 需要校验是否已有服务项目对应到服务流程,已对应的不能修改代码
- */
- if (!entity.SERVICE_PROJECT_CODE.Equals(model.SERVICE_PROJECT_CODE,StringComparison.OrdinalIgnoreCase))
- {
- ValidateServiceProject(entity, true);
- }
-
+
+ ValidateServiceProject(entity, OperateTypeEnum.Save);
+
entity.UpdatedTime = DateTime.Now;
entity.UpdatedUserId = UserManager.UserId;
entity.UpdatedUserName = UserManager.Name;
@@ -139,16 +134,40 @@ namespace Myshipping.Application
/// 校验
///
/// 服务项目详情
- /// 是否校验关系
+ /// 操作类型枚举
///
- private void ValidateServiceProject(ServiceProjectBaseInfo entity, bool isCheckRelation = false)
+ private void ValidateServiceProject(ServiceProjectBaseInfo entity, OperateTypeEnum opTypeEnum)
{
+ /*
+ 1、服务项目代码和名称不能低于2个字符。
+ 2、服务项目修改,需要判断当前服务项目是否关联服务流程。已关联的不能修改服务项目。
+ 3、取消启用时,需要判断当前服务项目是否关联服务流程。已关联的不能取消启用。
+ */
if (_serviceWorkFlowProjectRelationRepository.Any(a => a.SERVICE_PROJECT_ID == entity.PK_ID))
{
_logger.LogInformation($"当前服务项目已关联服务流程不能修改,{entity.SERVICE_PROJECT_CODE}");
throw Oops.Oh($"当前服务项目已关联服务流程不能修改", typeof(InvalidOperationException));
}
+
+ if (opTypeEnum == OperateTypeEnum.Save)
+ {
+ if (_serviceWorkFlowProjectRelationRepository.AsQueryable().Any(a => a.SERVICE_PROJECT_ID == entity.PK_ID))
+ {
+ throw Oops.Oh($"当前服务项目已关联服务流程,不能修改", typeof(InvalidOperationException));
+ }
+
+ if (entity.SERVICE_PROJECT_CODE.Length < 2 || entity.SERVICE_PROJECT_NAME.Length < 2)
+ throw Oops.Oh($"服务项目代码和状态名称不能小于2个字符,不能修改", typeof(InvalidOperationException));
+ }
+
+ if (opTypeEnum == OperateTypeEnum.SetUnEnable)
+ {
+ if (_serviceWorkFlowProjectRelationRepository.AsQueryable().Any(a => a.SERVICE_PROJECT_ID == entity.PK_ID))
+ {
+ throw Oops.Oh($"当前服务项目已关联服务流程,不能取消启用", typeof(InvalidOperationException));
+ }
+ }
}
#endregion
@@ -430,7 +449,7 @@ namespace Myshipping.Application
}
else if (opTypeEnum == OperateTypeEnum.SetUnEnable)
{
- ValidateServiceProject(model, true);
+ ValidateServiceProject(model, opTypeEnum);
model.IS_ENABLE = 0;
@@ -445,7 +464,7 @@ namespace Myshipping.Application
}
else if (opTypeEnum == OperateTypeEnum.Delete)
{
- ValidateServiceProject(model, true);
+ ValidateServiceProject(model, opTypeEnum);
model.IsDeleted = true;
diff --git a/Myshipping.Application/Service/TrackingSystem/StatusSkuBaseService.cs b/Myshipping.Application/Service/TrackingSystem/StatusSkuBaseService.cs
index 39ff09e6..87ebc851 100644
--- a/Myshipping.Application/Service/TrackingSystem/StatusSkuBaseService.cs
+++ b/Myshipping.Application/Service/TrackingSystem/StatusSkuBaseService.cs
@@ -147,7 +147,7 @@ namespace Myshipping.Application
///
/// 校验
///
- /// 服务项目详情
+ /// 服务状态详情
/// 操作类型枚举
///
private void ValidateServiceStatus(StatusSkuBaseInfo entity, OperateTypeEnum opTypeEnum)