using IRaCIS.Application.ViewModels; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Contracts.RequestAndResponse; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; namespace IRaCIS.Core.API.Controllers.Trial { /// /// TP、Global、AD 工作量分配查看 /// [Route("workload")] [ApiController, Authorize, ApiExplorerSettings(GroupName = "Trial")] public class WorkloadDistributionController : ControllerBase { private readonly IWorkloadDistributionService _workloadDistributionService; public WorkloadDistributionController(IWorkloadDistributionService workloadDistributionService) { _workloadDistributionService = workloadDistributionService; } /// /// TP 工作量分配列表 /// /// /// [HttpPost, Route("getWorkloadTPList")] public IResponseOutput> GetWorkloadTPList(WorkloadDistributionQueryParam param) { return ResponseOutput.Ok(_workloadDistributionService.GetWorkloadTPList(param)); } /// /// 批量分配Tp /// /// /// [HttpPost, Route("DistributeTP")] public IResponseOutput DistributeTP(WorkloadTPCommand workloadTPCommand) { return _workloadDistributionService.DistributeTP(workloadTPCommand); } //修改单个TP [HttpPost, Route("UpdateDistributeTP/{tpId:guid}/{reviewerId:guid}/{studyId:guid}")] public IResponseOutput UpdateDistributeTP(Guid tpId, Guid reviewerId,Guid studyId) { return _workloadDistributionService.UpdateDistributeTP(tpId,reviewerId, studyId); } [HttpPost, Route("getWorkloadADList")] public IResponseOutput> GetWorkloadADList(WorkloadDistributionQueryParam param) { return ResponseOutput.Ok(_workloadDistributionService.GetWorkloadADList(param)); } /// /// 批量分配AD /// /// /// [HttpPost, Route("DistributeAD")] public IResponseOutput DistributeAD(WorkloadAdCommand workloadTPCommand) { return ResponseOutput.Result(_workloadDistributionService.DistributeAD(workloadTPCommand)); } //修改单个TP [HttpPost, Route("UpdateDistributeAD/{tpId:guid}/{reviewerId:guid}")] public IResponseOutput UpdateDistributeAD(Guid tpId, Guid reviewerId) { return ResponseOutput.Result(_workloadDistributionService.UpdateDistributeAD(tpId, reviewerId)); } [HttpPost, Route("getWorkloadGlobalList")] public IResponseOutput> GetWorkloadGlobalList(WorkloadDistributionQueryParam param) { return ResponseOutput.Ok(_workloadDistributionService.GetWorkloadGlobalList(param)); } /// /// 批量分配Global /// /// /// [HttpPost, Route("DistributeGlobal")] public IResponseOutput DistributeGlobal(WorkloadGlobalCommand workloadGCommand) { return _workloadDistributionService.DistributeGlobal(workloadGCommand); } //修改单个Global [HttpPost, Route("UpdateDistributeGlobal/{tpId:guid}/{reviewerId:guid}/{subjectId:guid}/{visitNum}")] public IResponseOutput UpdateDistributeGlobal(Guid tpId, Guid reviewerId,Guid subjectId, decimal visitNum) { return _workloadDistributionService.UpdateDistributeGlobal(tpId, reviewerId,subjectId,visitNum); } [HttpGet, Route("GetWorkloadDetailList/{workloadId:guid}")] [AllowAnonymous] public IResponseOutput GetWorkloadDetailList(Guid workloadId) { return _workloadDistributionService.GetWorkloadDetail(workloadId); } [HttpPost, Route("UpdateGlobalStatus/{globalId:guid}")] public IResponseOutput UpdateGlobalStatus(Guid globalId) { return _workloadDistributionService.UpdateGlobalStatus(globalId); } } }