diff --git a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs index cd7ab7fbd..b9485e59d 100644 --- a/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs +++ b/IRaCIS.Core.API/Controllers/UploadDownLoadController.cs @@ -212,11 +212,12 @@ namespace IRaCIS.Core.API.Controllers private readonly IRepository _repository; private readonly IEasyCachingProvider _provider; - + private readonly QCCommon _qCCommon; public StudyController(IMapper mapper, IUserInfo userInfo, IWebHostEnvironment hostEnvironment, IMediator mediator, IEasyCachingProvider provider, - + QCCommon qCCommon, IRepository repository) { + _qCCommon = qCCommon; _provider = provider; _hostEnvironment = hostEnvironment; _mediator = mediator; @@ -439,7 +440,7 @@ namespace IRaCIS.Core.API.Controllers public async Task UploadVisitClinicalData(Guid subjectVisitId) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); var sv = _repository.Where(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefault().IfNullThrowException(); await FileUploadAsync(async (fileName) => @@ -677,7 +678,7 @@ namespace IRaCIS.Core.API.Controllers [FromServices] IRepository _noneDicomStudyRepository, [FromServices] IRepository _studyMonitorRepository) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); var sv = (await _repository.Where(t => t.Id == subjectVisitId).Select(t => new { t.TrialId, t.SiteId, t.SubjectId }).FirstOrDefaultAsync()).IfNullThrowConvertException(); diff --git a/IRaCIS.Core.Application/Resources/en-US.json b/IRaCIS.Core.Application/Resources/en-US.json index 606feb385..78a67f193 100644 --- a/IRaCIS.Core.Application/Resources/en-US.json +++ b/IRaCIS.Core.Application/Resources/en-US.json @@ -258,7 +258,7 @@ "User_EmailDup": "A user with the same email already exists in this user type.", "User_NewOldPwdSame": "The new password is the same as the old one.", "User_OldPwdInvalid": "Failed to verify the old password. ", - //UserService + "User_LegalEmail": "Please input a legal email", "User_VerificationCodeError": "The verification code is wrong.", "User_VerificationCodeExpired": "The verification code has expired.", "User_CreateFailed": "Check the email address or contact maintainers. The email fails to be sent and the account cannot be created", @@ -270,6 +270,7 @@ "UserType_InUse": "User already exists in that user type, and it cannot be deleted.", + // ------------------------------------------------------------QC-------------------------------------------------------------------- //QCCommon "QCCommon_CannotOperate": "CRC has submitted the image and it cannot be operated.", diff --git a/IRaCIS.Core.Application/Resources/zh-CN.json b/IRaCIS.Core.Application/Resources/zh-CN.json index 87b1091c0..622fcef29 100644 --- a/IRaCIS.Core.Application/Resources/zh-CN.json +++ b/IRaCIS.Core.Application/Resources/zh-CN.json @@ -241,7 +241,7 @@ "User_EmailDup": "该用户类型中已存在具有相同邮箱的用户。", "User_NewOldPwdSame": "新密码与旧密码相同。", "User_OldPwdInvalid": "旧密码验证失败。", - //UserService + "User_LegalEmail": "请输入合法的电子邮件", "User_VerificationCodeError": "验证码错误。", "User_VerificationCodeExpired": "验证码已经过期。", "User_CreateFailed": "请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功", @@ -252,6 +252,7 @@ //UserTypeService "UserType_InUse": "该用户类型中已存在用户,不能删除。", + // ------------------------------------------------------------QC-------------------------------------------------------------------- //QCCommon "QCCommon_CannotOperate": "CRC 已提交影像,不能进行操作。", diff --git a/IRaCIS.Core.Application/Service/Management/MenuService.cs b/IRaCIS.Core.Application/Service/Management/MenuService.cs index 51fa9e2f9..a954bbdc3 100644 --- a/IRaCIS.Core.Application/Service/Management/MenuService.cs +++ b/IRaCIS.Core.Application/Service/Management/MenuService.cs @@ -27,7 +27,8 @@ namespace IRaCIS.Application.Services var exp = new EntityVerifyExp() { VerifyExp = u => u.ParentId == menuAddOrUpdateModel.ParentId && u.MenuName == menuAddOrUpdateModel.MenuName, - VerifyMsg = "该父节点下已经存在同名的子节点。" + //---该父节点下已经存在同名的子节点。 + VerifyMsg = _localizer["Menu_ParentDupChild"] }; var menu = await _repository.InsertOrUpdateAsync(menuAddOrUpdateModel, true, exp); @@ -91,7 +92,8 @@ namespace IRaCIS.Application.Services { if (await menuRepository.AnyAsync(t => t.ParentId == menuId)) { - return ResponseOutput.NotOk("该节点存在子节点,请在删除子节点后,再删除该节点。"); + //---该节点存在子节点,请在删除子节点后,再删除该节点。 + return ResponseOutput.NotOk(_localizer["Menu_ChildExist"]); } var success =await menuRepository.BatchDeleteNoTrackingAsync(u => u.Id == menuId); diff --git a/IRaCIS.Core.Application/Service/Management/UserService.cs b/IRaCIS.Core.Application/Service/Management/UserService.cs index 2ae546c0c..94fb79e87 100644 --- a/IRaCIS.Core.Application/Service/Management/UserService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserService.cs @@ -49,7 +49,8 @@ namespace IRaCIS.Application.Services { if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => t.UserName == userName)) { - throw new BusinessValidationFailedException("用户名已经存在。"); + //---用户名已经存在。 + throw new BusinessValidationFailedException(_localizer["User_UsernameExist"]); } } @@ -57,7 +58,8 @@ namespace IRaCIS.Application.Services { if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.Phone == phone && t.UserTypeId == userTypeId))) { - throw new BusinessValidationFailedException("该用户类型中已存在具有相同的电话的用户。"); + //---该用户类型中已存在具有相同的电话的用户。 + throw new BusinessValidationFailedException(_localizer["User_PhoneDup"]); } } @@ -66,7 +68,8 @@ namespace IRaCIS.Application.Services { if (await _userRepository.WhereIf(userId != null, t => t.Id != userId).AnyAsync(t => (t.EMail == email && t.UserTypeId == userTypeId))) { - throw new BusinessValidationFailedException("该用户类型中已存在具有相同邮箱的用户。"); + //---该用户类型中已存在具有相同邮箱的用户。 + throw new BusinessValidationFailedException(_localizer["User_EmailDup"]); } } @@ -79,7 +82,8 @@ namespace IRaCIS.Application.Services if (oldPwd != null && oldPwd == newPwd) { - throw new BusinessValidationFailedException("新密码与旧密码相同。"); + //---新密码与旧密码相同。 + throw new BusinessValidationFailedException(_localizer["User_NewOldPwdSame"]); } @@ -87,12 +91,14 @@ namespace IRaCIS.Application.Services if (oldPwd != null && dbUser.Password != oldPwd) { - throw new BusinessValidationFailedException("旧密码验证失败。"); + //---旧密码验证失败。 + throw new BusinessValidationFailedException(_localizer["User_OldPwdInvalid"]); } if (dbUser.Password == newPwd) { - throw new BusinessValidationFailedException("新密码与旧密码相同。"); + //---新密码与旧密码相同。 + throw new BusinessValidationFailedException(_localizer["User_NewOldPwdSame"]); } @@ -113,7 +119,8 @@ namespace IRaCIS.Application.Services //检查手机或者邮箱是否有效 if (!Regex.IsMatch(email, @"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$")) { - return ResponseOutput.NotOk("Please input a legal email"); + //---Please input a legal email + return ResponseOutput.NotOk(_localizer["User_LegalEmail"]); } @@ -140,7 +147,8 @@ namespace IRaCIS.Application.Services if (verificationRecord == null) { - return ResponseOutput.NotOk("验证码错误。"); + //---验证码错误。 + return ResponseOutput.NotOk(_localizer["User_VerificationCodeError"]); } else @@ -148,7 +156,8 @@ namespace IRaCIS.Application.Services //检查验证码是否失效 if (verificationRecord.ExpirationTime < DateTime.Now) { - return ResponseOutput.NotOk("验证码已经过期。"); + //---验证码已经过期。 + return ResponseOutput.NotOk(_localizer["User_VerificationCodeExpired"]); } else //验证码正确 并且 没有超时 @@ -267,7 +276,8 @@ namespace IRaCIS.Application.Services } catch (Exception ex) { - throw new BusinessValidationFailedException("请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功"); + //---请检查邮箱地址或者联系维护人员, 邮件发送失败, 未能创建账户成功 + throw new BusinessValidationFailedException(_localizer["User_CreateFailed"]); } @@ -296,7 +306,8 @@ namespace IRaCIS.Application.Services if (!Regex.IsMatch(email, @"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$")) { - return ResponseOutput.NotOk("请输入一个正确的邮箱。"); + //---请输入一个正确的邮箱。 + return ResponseOutput.NotOk(_localizer["User_InvalidEmail"]); } @@ -305,7 +316,8 @@ namespace IRaCIS.Application.Services if (!exist) { - return ResponseOutput.NotOk("邮箱错误。"); + //---邮箱错误。 + return ResponseOutput.NotOk(_localizer["User_EmailError"]); } @@ -337,7 +349,8 @@ namespace IRaCIS.Application.Services if (verificationRecord == null) { - throw new BusinessValidationFailedException("验证码错误。"); + //---验证码错误。 + throw new BusinessValidationFailedException(_localizer["User_VerificationCodeError"]); } else { @@ -345,7 +358,8 @@ namespace IRaCIS.Application.Services if (verificationRecord.ExpirationTime < DateTime.Now) { - throw new BusinessValidationFailedException("验证码已经过期。"); + //---验证码已经过期。 + throw new BusinessValidationFailedException(_localizer["User_VerificationCodeExpired"]); } else //验证码正确 并且 没有超时 { @@ -561,7 +575,8 @@ namespace IRaCIS.Application.Services { if (await _userTrialRepository.AnyAsync(t => t.Id == userId)) { - return ResponseOutput.NotOk("该用户已经参加项目,不能够删除。"); + //---该用户已经参加项目,不能够删除。 + return ResponseOutput.NotOk(_localizer["User_InProject"]); } var success = await _userRepository.BatchDeleteNoTrackingAsync(t => t.Id == userId); @@ -625,7 +640,8 @@ namespace IRaCIS.Application.Services if (loginUser.Status == 0) { - return ResponseOutput.NotOk("该用户已经被禁用。", new LoginReturnDTO()); + //---该用户已经被禁用。 + return ResponseOutput.NotOk(_localizer["User_Disabled"], new LoginReturnDTO()); } userLoginReturnModel.BasicInfo = loginUser; diff --git a/IRaCIS.Core.Application/Service/Management/UserTypeService.cs b/IRaCIS.Core.Application/Service/Management/UserTypeService.cs index 8bc59d51e..8cf99be11 100644 --- a/IRaCIS.Core.Application/Service/Management/UserTypeService.cs +++ b/IRaCIS.Core.Application/Service/Management/UserTypeService.cs @@ -1,4 +1,4 @@ -//-------------------------------------------------------------------- +//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2021-11-03 09:38:11 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 @@ -79,7 +79,8 @@ namespace IRaCIS.Core.Application.Contracts { if ( await _repository.AnyAsync(t => t.UserTypeId == userTypeId)) { - return ResponseOutput.NotOk("该用户类型中已存在用户,不能删除"); + //---该用户类型中已存在用户,不能删除 + return ResponseOutput.NotOk(_localizer["UserType_InUse"]); } var success = await userTypeServiceRepository.BatchDeleteNoTrackingAsync(t => t.Id == userTypeId); diff --git a/IRaCIS.Core.Application/Service/QC/ClinicalDataService.cs b/IRaCIS.Core.Application/Service/QC/ClinicalDataService.cs index 3404bc925..a0c73a7f7 100644 --- a/IRaCIS.Core.Application/Service/QC/ClinicalDataService.cs +++ b/IRaCIS.Core.Application/Service/QC/ClinicalDataService.cs @@ -1,4 +1,4 @@ -//-------------------------------------------------------------------- +//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2021-11-22 11:29:44 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 @@ -19,15 +19,17 @@ namespace IRaCIS.Core.Application.Contracts private readonly IRepository _previousSurgeryRepository; private readonly IRepository _previousPdfRepository; private readonly IRepository _subjectVisitRepository; + private readonly QCCommon _qCCommon; - - public ClinicalDataService(IRepository previousHistoryRepository, + public ClinicalDataService(IRepository previousHistoryRepository, IRepository previousOtherRepository, IRepository previousSurgeryRepository, IRepository previousPDFRepository, - IRepository subjectVisitRepository + IRepository subjectVisitRepository, + QCCommon qCCommon ) { + _qCCommon = qCCommon; _previousOtherRepository = previousOtherRepository; _previousHistoryRepository = previousHistoryRepository; _previousSurgeryRepository = previousSurgeryRepository; @@ -96,7 +98,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpPost("{trialId:guid}")] public async Task> AddOrUpdatePreviousHistory(PreviousHistoryAddOrEdit addOrEditPreviousHistory) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousHistory.SubjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousHistory.SubjectVisitId); var entity = await _previousHistoryRepository.InsertOrUpdateAsync(addOrEditPreviousHistory, true); return ResponseOutput.Ok(entity.Id); @@ -106,7 +108,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousHistoryId:guid}")] public async Task DeletePreviousHistory(Guid previousHistoryId,Guid subjectVisitId) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); await _previousHistoryRepository.DeleteFromQueryAsync(t => t.Id == previousHistoryId,true); return ResponseOutput.Ok(); } @@ -123,7 +125,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpPost("{trialId:guid}")] public async Task> AddOrUpdatePreviousOther(PreviousOtherAddOrEdit addOrEditPreviousOther) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousOther.SubjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousOther.SubjectVisitId); var entity = await _previousOtherRepository.InsertOrUpdateAsync(addOrEditPreviousOther, true); return ResponseOutput.Ok(entity.Id); @@ -133,7 +135,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousOtherId:guid}")] public async Task DeletePreviousOther(Guid previousOtherId, Guid subjectVisitId) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); await _previousOtherRepository.DeleteFromQueryAsync(t => t.Id == previousOtherId,true); return ResponseOutput.Ok(); @@ -151,7 +153,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpPost("{trialId:guid}")] public async Task> AddOrUpdatePreviousSurgery(PreviousSurgeryAddOrEdit addOrEditPreviousSurgery) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousSurgery.SubjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousSurgery.SubjectVisitId); var entity = await _previousSurgeryRepository.InsertOrUpdateAsync(addOrEditPreviousSurgery, true); return ResponseOutput.Ok(entity.Id); } @@ -160,7 +162,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousSurgeryId:guid}")] public async Task DeletePreviousSurgery(Guid previousSurgeryId, Guid subjectVisitId) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); var success = await _previousSurgeryRepository.DeleteFromQueryAsync(t => t.Id == previousSurgeryId,true); return ResponseOutput.Ok(); } @@ -177,7 +179,7 @@ namespace IRaCIS.Core.Application.Contracts public async Task AddOrUpdatePreviousPDF(PreviousPDFAddOrEdit addOrEditPreviousPDF) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousPDF.SubjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditPreviousPDF.SubjectVisitId); var entity = await _previousPdfRepository.InsertOrUpdateAsync(addOrEditPreviousPDF, true); return ResponseOutput.Ok(entity.Id); @@ -186,7 +188,7 @@ namespace IRaCIS.Core.Application.Contracts [HttpDelete("{trialId:guid}/{subjectVisitId:guid}/{previousPDFId:guid}")] public async Task DeletePreviousPDF(Guid previousPDFId, Guid subjectVisitId) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); await _previousPdfRepository.DeleteFromQueryAsync(t => t.Id == previousPDFId,true); return ResponseOutput.Ok(); diff --git a/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs b/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs index c461842c9..fa912838f 100644 --- a/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs +++ b/IRaCIS.Core.Application/Service/QC/NoneDicomStudyService.cs @@ -21,12 +21,14 @@ namespace IRaCIS.Core.Application.Contracts private readonly IRepository _noneDicomStudyRepository; private readonly IRepository _noneDicomStudyFileRepository; private readonly AsyncLock _mutex = new AsyncLock(); + private readonly QCCommon _qCCommon; public NoneDicomStudyService(IRepository noneDicomStudyRepository, - + QCCommon qCCommon, IRepository noneDicomStudyFileRepository) { + _qCCommon = qCCommon; _noneDicomStudyRepository = noneDicomStudyRepository; _noneDicomStudyFileRepository = noneDicomStudyFileRepository; @@ -51,11 +53,11 @@ namespace IRaCIS.Core.Application.Contracts public async Task> AddOrUpdateNoneDicomStudy(NoneDicomStudyAddOrEdit addOrEditNoneDicomStudy) { - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditNoneDicomStudy.SubjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, addOrEditNoneDicomStudy.SubjectVisitId); if (_repository.Where(t => t.Id == addOrEditNoneDicomStudy.TrialId).Any(t => t.IsVerifyVisitImageDate==true)) { - await QCCommon.VerifyStudyImageDataAsync(_repository, addOrEditNoneDicomStudy.SubjectId, addOrEditNoneDicomStudy.SubjectVisitId, addOrEditNoneDicomStudy.ImageDate); + await _qCCommon.VerifyStudyImageDataAsync(_repository, addOrEditNoneDicomStudy.SubjectId, addOrEditNoneDicomStudy.SubjectVisitId, addOrEditNoneDicomStudy.ImageDate); } @@ -99,7 +101,7 @@ namespace IRaCIS.Core.Application.Contracts //提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除 - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); await _noneDicomStudyRepository.DeleteFromQueryAsync(noneDicomStudyId); @@ -119,7 +121,7 @@ namespace IRaCIS.Core.Application.Contracts public async Task DeleteNoneDicomStudyFile(Guid noneDicomStudyFileId, Guid subjectVisitId) { //提交了 但是IQC同意的时候 是可以删除的 | 普通提交后也不能删除 - await QCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); + await _qCCommon.VerifyIsCRCSubmmitAsync(_repository, _userInfo, subjectVisitId); var noneDicomStudyFile = await _noneDicomStudyFileRepository.FirstOrDefaultAsync(t => t.Id == noneDicomStudyFileId); diff --git a/IRaCIS.Core.Application/Service/QC/QCCommon.cs b/IRaCIS.Core.Application/Service/QC/QCCommon.cs index c414e915b..dba63d1bb 100644 --- a/IRaCIS.Core.Application/Service/QC/QCCommon.cs +++ b/IRaCIS.Core.Application/Service/QC/QCCommon.cs @@ -1,11 +1,15 @@ using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infrastructure; +using Microsoft.Extensions.Localization; using System.Linq.Expressions; namespace IRaCIS.Core.Application.Service { - public static class QCCommon + public class QCCommon: BaseService { + + + /// /// 验证CRC 是否已提交 已提交 就不允许进行任何操作,如果是IQC 那么还验证是否是当前任务领取人 /// @@ -14,7 +18,7 @@ namespace IRaCIS.Core.Application.Service /// /// /// - public static async Task VerifyIsCRCSubmmitAsync(IRepository _repository, IUserInfo _userInfo, Guid? subjectVisitId = null) + public async Task VerifyIsCRCSubmmitAsync(IRepository _repository, IUserInfo _userInfo, Guid? subjectVisitId = null) { if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ClinicalResearchCoordinator) { @@ -24,7 +28,8 @@ namespace IRaCIS.Core.Application.Service if (await _repository.AnyAsync(t => t.Id == subjectVisitId && t.SubmitState == SubmitStateEnum.Submitted && (!t.QCChallengeList.Any(u => u.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)))) { - throw new BusinessValidationFailedException("CRC 已提交影像,不能进行操作。"); + //---CRC 已提交影像,不能进行操作。 + throw new BusinessValidationFailedException(_localizer["QCCommon_CannotOperate"]); } } } @@ -40,22 +45,22 @@ namespace IRaCIS.Core.Application.Service } - public static async Task VerifyIsCanQCAsync(IRepository _repository, IUserInfo _userInfo, SubjectVisit? subjectVisit = null, Guid? subjectVisitId = null) + public async Task VerifyIsCanQCAsync(IRepository _repository, IUserInfo _userInfo, SubjectVisit? subjectVisit = null, Guid? subjectVisitId = null) { if (subjectVisitId != null) { subjectVisit = (await _repository.FirstOrDefaultAsync(t => t.Id == subjectVisitId)).IfNullThrowException(); } - if (subjectVisit!.CurrentActionUserId != _userInfo.Id) { - throw new BusinessValidationFailedException("您不是该质控任务当前领取人,没有操作权限!"); + //---您不是该质控任务当前领取人,没有操作权限! + throw new BusinessValidationFailedException(_localizer["QCCommon_NoPermission"]); } } - public static async Task VerifyStudyImageDataAsync(IRepository _repository, Guid subjectId, Guid subjectVisitId, DateTime imageDate) + public async Task VerifyStudyImageDataAsync(IRepository _repository, Guid subjectId, Guid subjectVisitId, DateTime imageDate) { var visitList = await _repository.Where(t => t.SubjectId == subjectId).Select(t => new { t.VisitNum, t.EarliestScanDate, t.LatestScanDate, t.Id }).ToListAsync(); @@ -68,7 +73,8 @@ namespace IRaCIS.Core.Application.Service if (before != null && before > imageDate) { - throw new BusinessValidationFailedException($"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误"); + //当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能早于前序访视检查时间{before?.ToString("yyyy-MM-dd")},请核对检查数据是否有误 + throw new BusinessValidationFailedException(_localizer["QCCommon_CheckTimeEarly", imageDate.ToString("yyyy-MM-dd"), before?.ToString("yyyy-MM-dd")]); } @@ -77,7 +83,8 @@ namespace IRaCIS.Core.Application.Service if (after != null && after < imageDate) { - throw new BusinessValidationFailedException($"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误"); + //$"当前访视检查时间{imageDate.ToString("yyyy-MM-dd")}不能晚于该访视之后的检查时间{after?.ToString("yyyy-MM-dd")},请核对检查数据是否有误" + throw new BusinessValidationFailedException(_localizer["QCCommon_CheckTimeLate", imageDate.ToString("yyyy-MM-dd"), after?.ToString("yyyy-MM-dd")]); } } diff --git a/后端提示语.xlsx b/后端提示语.xlsx index bef5403bb..1d9b077f2 100644 Binary files a/后端提示语.xlsx and b/后端提示语.xlsx differ