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)