|
@@ -35,6 +35,7 @@ using Hotline.Settings.TimeLimits;
|
|
using Hotline.Share.Dtos;
|
|
using Hotline.Share.Dtos;
|
|
using Hotline.Share.Dtos.Article;
|
|
using Hotline.Share.Dtos.Article;
|
|
using Hotline.Share.Dtos.CallCenter;
|
|
using Hotline.Share.Dtos.CallCenter;
|
|
|
|
+using Hotline.Share.Dtos.File;
|
|
using Hotline.Share.Dtos.FlowEngine;
|
|
using Hotline.Share.Dtos.FlowEngine;
|
|
using Hotline.Share.Dtos.FlowEngine.Workflow;
|
|
using Hotline.Share.Dtos.FlowEngine.Workflow;
|
|
using Hotline.Share.Dtos.Order;
|
|
using Hotline.Share.Dtos.Order;
|
|
@@ -2782,8 +2783,10 @@ public class OrderController : BaseController
|
|
[HttpGet("screen/{workflowId}/nextsteps")]
|
|
[HttpGet("screen/{workflowId}/nextsteps")]
|
|
public async Task<NextStepsDto> OrderScreenNextsteps(string workflowId)
|
|
public async Task<NextStepsDto> OrderScreenNextsteps(string workflowId)
|
|
{
|
|
{
|
|
- var workflow = await _workflowRepository.GetAsync(workflowId, HttpContext.RequestAborted);
|
|
|
|
- if (workflow != null)
|
|
|
|
|
|
+ var workflow = await _workflowDomainService.GetWorkflowAsync(workflowId, withDefine: true, withSteps: true, cancellationToken: HttpContext.RequestAborted);
|
|
|
|
+ var currentStep =
|
|
|
|
+ workflow.Steps.FirstOrDefault(d => d.Status == EWorkflowStepStatus.WaitForAccept || d.Status == EWorkflowStepStatus.WaitForHandle);
|
|
|
|
+ if (workflow != null)
|
|
{
|
|
{
|
|
var orderScreen = await _orderScreenRepository.Queryable().Includes(x => x.Order).Where(x => x.Id == workflow.ExternalId)
|
|
var orderScreen = await _orderScreenRepository.Queryable().Includes(x => x.Order).Where(x => x.Id == workflow.ExternalId)
|
|
.FirstAsync(HttpContext.RequestAborted);
|
|
.FirstAsync(HttpContext.RequestAborted);
|
|
@@ -2805,8 +2808,8 @@ public class OrderController : BaseController
|
|
result.Steps.Remove(result.Steps.First(x => x.Value == "中心班长"));
|
|
result.Steps.Remove(result.Steps.First(x => x.Value == "中心班长"));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- return result;
|
|
|
|
|
|
+ result.IsPickFile = _appOptions.Value.IsYiBin && currentStep.Name == "中心领导";
|
|
|
|
+ return result;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2918,16 +2921,60 @@ public class OrderController : BaseController
|
|
.Where(x => x.Id == dto.Id).ExecuteCommandAsync();
|
|
.Where(x => x.Id == dto.Id).ExecuteCommandAsync();
|
|
}
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
|
-
|
|
|
|
- #region 工单督办
|
|
|
|
-
|
|
|
|
- /// <summary>
|
|
|
|
- /// 工单督办列表
|
|
|
|
- /// </summary>
|
|
|
|
- /// <param name="dto"></param>
|
|
|
|
- /// <returns></returns>
|
|
|
|
- [HttpGet("supervise")]
|
|
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 获取工单甄别所有文件
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="id"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpGet("screen/all_file/{id}")]
|
|
|
|
+ public async Task<List<FileDto>> GetOrderScreenAllFile(string id)
|
|
|
|
+ {
|
|
|
|
+ var screen = await _orderScreenRepository.GetAsync(id);
|
|
|
|
+ var steps = await _workflowStepRepository.Queryable().Where(x => x.WorkflowId == screen.WorkflowId).ToListAsync();
|
|
|
|
+ var allFiles = new List<FileDto>();
|
|
|
|
+ if (screen != null)
|
|
|
|
+ {
|
|
|
|
+ var ids = screen.FileJson.Select(x => x.Id).ToList();
|
|
|
|
+ allFiles = await _fileRepository.GetFilesAsync(ids, HttpContext.RequestAborted);
|
|
|
|
+ }
|
|
|
|
+ foreach (var step in steps)
|
|
|
|
+ {
|
|
|
|
+ if (step.FileJson != null && step.FileJson.Any())
|
|
|
|
+ {
|
|
|
|
+ var ids = step.FileJson.Select(x => x.Id).ToList();
|
|
|
|
+ var stepFiles = await _fileRepository.GetFilesAsync(ids, HttpContext.RequestAborted);
|
|
|
|
+ allFiles.AddRange(stepFiles);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return allFiles;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 甄别审批办理
|
|
|
|
+ /// </summary>
|
|
|
|
+ [HttpPost("screen/next")]
|
|
|
|
+ [LogFilterAlpha("甄别审批办理")]
|
|
|
|
+ public async Task Next([FromBody] OrderScreenNextWorkflowDto dto)
|
|
|
|
+ {
|
|
|
|
+ if (dto.ProvinceFiles.Any())
|
|
|
|
+ {
|
|
|
|
+ var fileJson = await _fileRepository.AddFileAsync(dto.ProvinceFiles, dto.ScreenId, "", HttpContext.RequestAborted);
|
|
|
|
+ await _orderScreenRepository.Updateable().SetColumns(x => new OrderScreen { ProvinceFileJson = fileJson }).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
|
+ }
|
|
|
|
+ await _workflowDomainService.NextAsync(dto, cancellationToken: HttpContext.RequestAborted);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ #endregion
|
|
|
|
+
|
|
|
|
+ #region 工单督办
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 工单督办列表
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ [HttpGet("supervise")]
|
|
public async Task<PagedDto<SuperviseOrderDto>> SuperviseList([FromQuery] SuperviseListDto dto)
|
|
public async Task<PagedDto<SuperviseOrderDto>> SuperviseList([FromQuery] SuperviseListDto dto)
|
|
{
|
|
{
|
|
var (total, items) = await _orderSuperviseRepository.Queryable()
|
|
var (total, items) = await _orderSuperviseRepository.Queryable()
|