新增项目
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user