WorkflowService.cs 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using wispro.sp.entity.workflowDefine;
  6. using wispro.sp.share;
  7. namespace wispro.sp.web.Services
  8. {
  9. public class WorkflowService
  10. {
  11. private readonly IHttpService _httpClient;
  12. public WorkflowService(IHttpService http)
  13. {
  14. _httpClient = http;
  15. }
  16. private List<BindObjectType> bindObjectTypes = new List<BindObjectType>()
  17. {
  18. new BindObjectType(){ Name ="绩效记录",ObjectTypeFullName = typeof(wispro.sp.entity.PerformanceItem).AssemblyQualifiedName },
  19. new BindObjectType(){ Name ="人员",ObjectTypeFullName = typeof(wispro.sp.entity.Staff).AssemblyQualifiedName}
  20. };
  21. public List<BindObjectType> GetBindObjects()
  22. {
  23. return bindObjectTypes;
  24. }
  25. public string GetBindObjectName(string ObjectTypeFullName)
  26. {
  27. var retObj = bindObjectTypes.FirstOrDefault<BindObjectType>(b => b.ObjectTypeFullName == ObjectTypeFullName);
  28. if(retObj != null)
  29. {
  30. return retObj.Name;
  31. }
  32. else
  33. {
  34. return "";
  35. }
  36. }
  37. List<entity.workflowDefine.Workflow> Workflows = new List<Workflow>();
  38. Dictionary<int, List<entity.workflowDefine.InputValueSetting>> InitInputValues = new Dictionary<int, List<InputValueSetting>>();
  39. public async Task<ApiSaveResponse> AddWorkflow(entity.workflowDefine.Workflow wf,share.ActionObject InitAction)
  40. {
  41. share.NewWorkflowObject newWorkflow = new share.NewWorkflowObject();
  42. newWorkflow.Workflow = wf;
  43. newWorkflow.InitAction = InitAction;
  44. //Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(newWorkflow));
  45. var ret = await _httpClient.Post<ApiSaveResponse>("WorkflowEngine/AddNew", newWorkflow);
  46. return ret;
  47. }
  48. public async Task<List<Workflow>> getAllWorkflows()
  49. {
  50. var retList = await _httpClient.Get<List<Workflow>>($"WorkflowEngine/GetAllWorkflows");
  51. return retList;
  52. }
  53. public async Task<Workflow> GetWorkflow(int Id)
  54. {
  55. Workflow ret = await _httpClient.Get<Workflow>($"WorkflowEngine/GetWorkflow?workflowId={Id}");
  56. //Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(ret));
  57. return ret;
  58. }
  59. public async Task<List<entity.workflowDefine.Step>> GetSteps(int Id)
  60. {
  61. var ret = await _httpClient.Get<List<entity.workflowDefine.Step>>($"WorkflowEngine/GetSteps?workflowId={Id}");
  62. return ret;
  63. }
  64. public async Task<List<entity.workflowDefine.Action>> GetActions(int workflowId)
  65. {
  66. var ret = await _httpClient.Get<List<entity.workflowDefine.Action>>($"WorkflowEngine/GetActions?workflowId={workflowId}");
  67. return ret;
  68. }
  69. public async Task<List<entity.workflowDefine.TrasferCondition>> GetTransfers(int workflowId)
  70. {
  71. var ret = await _httpClient.Get<List<entity.workflowDefine.TrasferCondition>>($"WorkflowEngine/GetTrasfers?workflowId={workflowId}");
  72. return ret;
  73. }
  74. public async Task<ApiSaveResponse> SaveStep(NewStepObject editStep)
  75. {
  76. var ret = await _httpClient.Post<ApiSaveResponse>("WorkflowEngine/SaveStep", editStep);
  77. return ret;
  78. }
  79. public async Task<ApiSaveResponse> SaveAction(entity.workflowDefine.Action editAction)
  80. {
  81. var ret = await _httpClient.Post<ApiSaveResponse>("WorkflowEngine/SaveAction", editAction);
  82. return ret;
  83. }
  84. public async Task<ApiSaveResponse> Delete(int id)
  85. {
  86. var ret = await _httpClient.Get<ApiSaveResponse>($"WorkflowEngine/DeleteWorkflow?workflowId={id}");
  87. return ret;
  88. }
  89. public async Task<ApiSaveResponse> SaveTransfer(entity.workflowDefine.TrasferCondition trasfer)
  90. {
  91. var ret = await _httpClient.Post<ApiSaveResponse>("WorkflowEngine/SaveTransfer", trasfer);
  92. return ret;
  93. }
  94. public async Task<ApiSaveResponse> DeleteAction(int id)
  95. {
  96. var ret = await _httpClient.Get<ApiSaveResponse>($"WorkflowEngine/DeleteAction?Id={id}");
  97. return ret;
  98. }
  99. public async Task<List<share.InputValueSettingObject>> getInputValueSteeing(int actionId)
  100. {
  101. var ret = await _httpClient.Get<List<InputValueSetting>>($"WorkflowEngine/getInputValueSteein?actionId={actionId}");
  102. var retList = new List<share.InputValueSettingObject>();
  103. if(ret != null)
  104. {
  105. foreach(var iv in ret)
  106. {
  107. if (iv.ParentSettingId == null)
  108. {
  109. InputValueSettingObject ivObj = new InputValueSettingObject();
  110. ivObj.InputValueSetting = iv;
  111. if(iv.valueType == EnumFieldType.List)
  112. {
  113. ivObj.Children = ret.Where<entity.workflowDefine.InputValueSetting>(s => s.ParentSettingId == iv.ParentSettingId).ToList();
  114. }
  115. retList.Add(ivObj);
  116. }
  117. }
  118. }
  119. //Console.WriteLine($"Services-GetInputValueSettings:{System.Text.Json.JsonSerializer.Serialize(retList)}");
  120. return retList;
  121. }
  122. public async Task<ApiSaveResponse> DeleteInputValueSetting(int Id)
  123. {
  124. var ret = await _httpClient.Get<ApiSaveResponse>($"WorkflowEngine/DeleteInputValueSetting?Id={Id}");
  125. return ret;
  126. }
  127. public async Task<ApiSaveResponse> DeleteStep(Step selectedObject)
  128. {
  129. var ret = await _httpClient.Get<ApiSaveResponse>($"WorkflowEngine/DeleteStep?Id={selectedObject.Id}");
  130. return ret;
  131. }
  132. public async Task<ApiSaveResponse> DeleteTransfer(TrasferCondition transfer)
  133. {
  134. var ret = await _httpClient.Get<ApiSaveResponse>($"WorkflowEngine/DeleteTransfer?Id={transfer.Id}");
  135. return ret;
  136. }
  137. public async Task<InputValueSetting> getInputValueSteeingById(int id)
  138. {
  139. var ret = await _httpClient.Get<InputValueSetting>($"WorkflowEngine/getInputValueSteeingById?Id={id}");
  140. return ret;
  141. }
  142. }
  143. }