Kaynağa Gözat

Merge branch 'master' of http://110.188.24.182:10023/Fengwo/hotline

xf 1 yıl önce
ebeveyn
işleme
c74986aaf0

+ 32 - 6
src/Hotline.Api/Controllers/OrderController.cs

@@ -1175,12 +1175,37 @@ public class OrderController : BaseController
         }
     }
 
+
     /// <summary>
-    /// 延期列表
+    /// 工单延期修改后下一步流程
     /// </summary>
-    /// <returns></returns>
-    //[Permission(EPermission.DelayList)]
-    [HttpGet("delay")]
+    [HttpPost("delay/initial_nextFlow")]
+    [LogFilter("开始工单延期流程")]
+    public async Task InitialNextFlow([FromBody] DelayNextFlowDto dto)
+    {
+	    var delay = await _orderDelayRepository.GetAsync(dto.Data.Id);
+	    _mapper.Map(dto.Data, delay);
+	    if (dto.Data.Files.Any())
+		    delay.FileJson = await _fileRepository.AddFileAsync(dto.Data.Files, delay.Id, "", HttpContext.RequestAborted);
+	    await _orderDelayRepository.UpdateAsync(delay, HttpContext.RequestAborted);
+	    try
+	    {
+		    dto.NextWorkflow.WorkflowId = delay.WorkflowId;
+		    await _workflowApplication.NextAsync(dto.NextWorkflow,
+			    cancellationToken: HttpContext.RequestAborted);
+	    }
+	    catch (Exception e)
+	    {
+		    throw new UserFriendlyException($"工单延期下一步流程失败!, {e.Message}", "工单延期下一步流程失败");
+	    }
+    }
+
+	/// <summary>
+	/// 延期列表
+	/// </summary>
+	/// <returns></returns>
+	//[Permission(EPermission.DelayList)]
+	[HttpGet("delay")]
     public async Task<PagedDto<OrderDelayDto>> DelayList([FromQuery] DelayListDto dto)
     {
         var (total, items) = await _orderDelayRepository.Queryable(viewFilter: false)
@@ -1235,7 +1260,8 @@ public class OrderController : BaseController
             .FirstAsync(x => x.Id == id);
         var rspModel = _mapper.Map<OrderDelayDto>(model);
         rspModel.IsCanHandle = model.CanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId);
-        if (rspModel.FileJson != null && rspModel.FileJson.Any())
+        rspModel.Handle = await _workflowDomainService.CheckCurrentIsStartStepAsync(rspModel.WorkflowId, _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, HttpContext.RequestAborted);
+		if (rspModel.FileJson != null && rspModel.FileJson.Any())
         {
             var ids = rspModel.FileJson.Select(x => x.Id).ToList();
             rspModel.Files = await _fileRepository.GetFilesAsync(ids, HttpContext.RequestAborted);
@@ -1341,7 +1367,7 @@ public class OrderController : BaseController
     public async Task<PagedDto<OrderScreenListDto>> ScreenList([FromQuery] ScreenListDto dto)
     {
         var view = dto.source == 1;
-        var handler = dto.source == 1;
+        var handler = dto.source == 1 && dto.Status is EScreenStatus.Apply;
 
 		var query = _orderScreenRepository.Queryable(viewFilter: view, handlerFilter: handler)
             .Includes(x => x.Order)

+ 0 - 4
src/Hotline.Api/Controllers/TemplateDomainController.cs

@@ -68,8 +68,6 @@ namespace Hotline.Api.Controllers
 
             _mapper.Map(dto,model);
 
-
-
             Regex regex = new(@"\{[a-zA-Z0-9]{1,}\}");
             var matches = regex.Matches(model.Content);
             List<string> list = new List<string>();
@@ -84,8 +82,6 @@ namespace Hotline.Api.Controllers
             await _messageTemplateRepository.UpdateAsync(model, HttpContext.RequestAborted);
         }
 
-
-
         /// <summary>
         /// 查询详情
         /// </summary>

+ 7 - 0
src/Hotline.Share/Dtos/Order/OrderStartFlowDto.cs

@@ -25,6 +25,13 @@ namespace Hotline.Share.Dtos.Order
 		public NextWorkflowDto NextWorkflow { get; set; }
 	}
 
+    public class DelayNextFlowDto
+	{
+	    public OrderDelayDto Data { get; set; }
+
+	    public NextWorkflowDto NextWorkflow { get; set; }
+    }
+
 	public class DelayStartFlowDto : StartWorkflowDto<ApplyDelayDto>
     {
 

+ 5 - 0
src/Hotline.Share/Dtos/Order/QueryOrderDto.cs

@@ -373,6 +373,11 @@ namespace Hotline.Share.Dtos.Order
         public List<FileDto> Files { get; set; }
 
         public List<FileJson> FileJson { get; set; }
+
+        /// <summary>
+        /// 办理 true  审批 false 
+        /// </summary>
+        public bool Handle { get; set; }
 	}