AppFlowController.Actions.cs 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. using System;
  2. using System.IO;
  3. using System.Threading.Tasks;
  4. using Datory;
  5. using GxPress.Common.Tools;
  6. using GxPress.Result;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Microsoft.AspNetCore.Mvc;
  9. namespace GxPress.Api.AppControllers
  10. {
  11. public partial class AppFlowController
  12. {
  13. /// <summary>
  14. /// 动作 - 审批
  15. /// </summary>
  16. /// <param name="request">审批意见</param>
  17. /// <returns></returns>
  18. [HttpPost("action/check")]
  19. [AllowAnonymous]
  20. public async Task<DefaultResult> ActionsCheck([FromBody] CheckRequest request)
  21. {
  22. if (!string.IsNullOrEmpty(request.Message) && request.Message.Length > 500)
  23. {
  24. throw new Exception("审批意见不能操作500字,请重新输入");
  25. }
  26. await _flowService.CheckAsync(request.TodoId, request.IsChecked, request.Message);
  27. return new DefaultResult
  28. {
  29. Value = true
  30. };
  31. }
  32. /// <summary>
  33. /// 动作 - 下载
  34. /// </summary>
  35. /// <param name="request">请求</param>
  36. /// <returns></returns>
  37. [HttpPost("action/download")]
  38. [AllowAnonymous]
  39. public async Task<DownloadResult> ActionsDownload([FromBody] ActionRequest request)
  40. {
  41. var url = await docService.MakeDoc(request.FlowId, _loginContext.AccountId);
  42. //var fileInfo = new FileInfo(StringUtils.AddPathDomain(url));
  43. // var resultPath = FileHelper.GetNewFilePath(".pdf");
  44. // WPSHelper.SetWordToPDF(fileInfo.FullName, resultPath.AbsolutePath);
  45. // return new DownloadResult
  46. // {
  47. // DownloadUrl = StringUtils.AddDomain(resultPath.RelativePath),
  48. // PreviewUrl = StringUtils.GetPreviewDocUrl(resultPath.RelativePath)
  49. // };
  50. return new DownloadResult
  51. {
  52. DownloadUrl = StringUtils.AddDomain(url),
  53. PreviewUrl = StringUtils.GetPreviewDocUrl(url)
  54. };
  55. }
  56. /// <summary>
  57. /// 动作 - 催办
  58. /// </summary>
  59. /// <param name="request">请求</param>
  60. /// <returns></returns>
  61. [HttpPost("action/remind")]
  62. [AllowAnonymous]
  63. public async Task<DefaultResult> ActionsRemind([FromBody] ActionRequest request)
  64. {
  65. return new DefaultResult
  66. {
  67. Value = await _flowService.RemindAsync(request.FlowId, _loginContext.AccountId)
  68. };
  69. }
  70. /// <summary>
  71. /// 动作 - 上会
  72. /// </summary>
  73. /// <param name="request">请求</param>
  74. /// <returns></returns>
  75. [HttpPost("action/meeting")]
  76. [AllowAnonymous]
  77. public async Task<DefaultResult> ActionsMeeting([FromBody] ActionRequest request)
  78. {
  79. // var todoId = request.FlowId;
  80. // var flowTodo = await _flowTodoRepository.GetAsync(request.FlowId);
  81. // if (flowTodo != null)
  82. // request.FlowId = flowTodo.FlowId;
  83. //await _flowRepository.UpdateStateAsync(request.FlowId, nameof(FlowState.Meeting));
  84. //修改当前用户的审核状态
  85. await _flowTodoRepository.UpdateAsync(Q.Set(nameof(Entity.WorkFlow.FlowTodo.IsDone), true).Set(nameof(Entity.WorkFlow.FlowTodo.IsChecked), false).Set(nameof(Entity.WorkFlow.FlowTodo.DoneType), 1).Where(nameof(Entity.WorkFlow.FlowTodo.Id), request.FlowId));
  86. return new DefaultResult
  87. {
  88. Value = true
  89. };
  90. }
  91. /// <summary>
  92. /// 动作 - 撤销上会
  93. /// </summary>
  94. /// <param name="request">请求</param>
  95. /// <returns></returns>
  96. [HttpPost("action/cancelMeeting")]
  97. [AllowAnonymous]
  98. public async Task<DefaultResult> ActionsCancelMeeting([FromBody] ActionRequest request)
  99. {
  100. //await _flowRepository.UpdateStateAsync(request.FlowId, nameof(FlowState.Checking));
  101. //修改当前操作人为带审核
  102. await _flowTodoRepository.UpdateAsync(Q.Where(nameof(Entity.WorkFlow.FlowTodo.Id), request.FlowId).Set(nameof(Entity.WorkFlow.FlowTodo.IsDone), false).Set(nameof(Entity.WorkFlow.FlowTodo.IsChecked), false).Set(nameof(Entity.WorkFlow.FlowTodo.DoneType), 0).Set(nameof(Entity.WorkFlow.FlowTodo.IsOperate), true));
  103. return new DefaultResult
  104. {
  105. Value = true
  106. };
  107. }
  108. /// <summary>
  109. /// 动作 - 转审
  110. /// </summary>
  111. /// <param name="request">请求</param>
  112. /// <returns></returns>
  113. [HttpPost("action/transferCheck")]
  114. [AllowAnonymous]
  115. public async Task<DefaultResult> ActionsTransferCheck([FromBody] ActionTransferCheckRequest request)
  116. {
  117. await _flowService.TransferCheckAsync(request.TodoId, request.TransferUserIds, request.Message, request.FileIds);
  118. // //修改当前用户的审核状态
  119. // await _flowTodoRepository.UpdateAsync(Q.Set(nameof(Entity.WorkFlow.FlowTodo.IsDone), true).Where(nameof(Entity.WorkFlow.FlowTodo.Id), request.TodoId).Where(nameof(Entity.WorkFlow.FlowTodo.UserId), _loginContext.AccountId));
  120. return new DefaultResult
  121. {
  122. Value = true
  123. };
  124. }
  125. /// <summary>
  126. /// 动作 - 重新提交
  127. /// </summary>
  128. /// <param name="request">请求</param>
  129. /// <returns></returns>
  130. [HttpPost("action/reAdd")]
  131. [AllowAnonymous]
  132. public async Task<DefaultResult> ActionsReAddCheck([FromBody] ActionRequest request)
  133. {
  134. await _flowService.ReAddAsync(request.FlowId);
  135. return new DefaultResult
  136. {
  137. Value = true
  138. };
  139. }
  140. /// <summary>
  141. /// 上会待定
  142. /// </summary>
  143. /// <param name="request"></param>
  144. /// <returns></returns>
  145. [HttpPost("action/wait")]
  146. public async Task<DefaultResult> ActionsWait(ActionRequest request)
  147. {
  148. return new DefaultResult
  149. {
  150. Value = await _flowService.ActionsWait(request.FlowId, _loginContext.AccountId)
  151. };
  152. }
  153. }
  154. }