新增项目

This commit is contained in:
he
2022-04-26 10:44:10 +08:00
parent 76be637e50
commit 0b5d41c8b7
6 changed files with 48 additions and 16 deletions
@@ -114,6 +114,9 @@ namespace IRaCIS.Core.Application.Service.Inspection.DTO
public bool NeedSava { get; set; } = true;
}
@@ -7,7 +7,7 @@ namespace IRaCIS.Application.Interfaces
{
bool TrialExpeditedChange { get; set; }
Task<IResponseOutput> AddOrUpdateTrial(TrialCommand trialAddModel);
Task<IResponseOutput<Trial>> AddOrUpdateTrial(TrialCommand trialAddModel);
Task<IResponseOutput> ConfirmTrialVisitPlan(Guid trialId, bool confirmOrCancel = true);
Task<IResponseOutput> DeleteTrial(Guid trialId);
@@ -7,6 +7,7 @@ using IRaCIS.Core.Infra.EFCore;
using MassTransit;
using Microsoft.AspNetCore.Mvc;
using Panda.DynamicWebApi.Attributes;
using IRaCIS.Core.Infrastructure;
namespace IRaCIS.Application.Services
{
@@ -128,21 +129,22 @@ namespace IRaCIS.Application.Services
/// <param name="trialAddModel"></param>
/// <returns></returns>
[NonDynamicMethod]
public virtual async Task<IResponseOutput> AddOrUpdateTrial(TrialCommand trialAddModel)
public virtual async Task<IResponseOutput<Trial>> AddOrUpdateTrial(TrialCommand trialAddModel)
{
// 到时候 策略授权 统一改 归类
if (!(_userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.SuperAdmin))
{
return ResponseOutput.NotOk("仅PM/APM可以操作!");
throw new BusinessValidationFailedException("仅PM/APM可以操作!");
}
if (trialAddModel.Id == Guid.Empty || trialAddModel.Id == null)
{
if (await _trialRepository.AnyAsync(u => u.TrialCode == trialAddModel.TrialCode))
{
return ResponseOutput.NotOk("Same Trial ID already exists.");
throw new BusinessValidationFailedException("Same Trial ID already exists.");
}
var dbMaxCode = await _trialRepository.Where(t => t.CreateTime.Year == DateTime.Now.Year && t.TrialType == trialAddModel.TrialType).Select(t => t.Code).DefaultIfEmpty().MaxAsync();
@@ -171,7 +173,7 @@ namespace IRaCIS.Application.Services
//状态变更详细表
trial.ClinicalTrialProjectDetails.Add(new TrialStatusDetail() { TrialId = trial.Id, TrialStatus = (int)TrialEnrollStatus.ChooseDoctor });
trial = await _repository.AddAsync(trial);
trial = await _trialRepository.AddAsync(trial);
//如果是PM, 则需要将该人员添加到 运维人员表
//添加运维人员PM
@@ -189,7 +191,7 @@ namespace IRaCIS.Application.Services
_provider.Set(trial.Id.ToString(), StaticData.TrialInitializing, TimeSpan.FromDays(7));
return ResponseOutput.Result(success, new { Id = trial.Id, TrialCode = trial.TrialCode });
return ResponseOutput.Ok(trial);
}
else
{
@@ -197,13 +199,13 @@ namespace IRaCIS.Application.Services
if (!await _repository.AnyAsync<Trial>(u => u.Id == trialAddModel.Id && (u.TrialStatusStr == StaticData.TrialInitializing || u.TrialStatusStr == StaticData.TrialOngoing)))
{
return ResponseOutput.NotOk("项目初始化或者进行中时 才允许操作");
throw new BusinessValidationFailedException("项目初始化或者进行中时 才允许操作");
}
// 判断项目Id 是否已经存在
if (await _repository.AnyAsync<Trial>(u => u.TrialCode == updateModel.TrialCode && u.Id != updateModel.Id))
{
return ResponseOutput.NotOk("Same Trial ID already exists.");
throw new BusinessValidationFailedException("Same Trial ID already exists.");
}
@@ -229,8 +231,8 @@ namespace IRaCIS.Application.Services
_mapper.Map(updateModel, trial);
var success = await _repository.SaveChangesAsync();
return ResponseOutput.Result(success);
return ResponseOutput.Ok(trial);
}