WorkFlowBLLService.cs 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using PMS.DBService.WorkFlow;
  7. using PMS.EntityModels.WorkFlow;
  8. using PMS.Interface.WorkFlow;
  9. using PMS.BusinessModels.Problem;
  10. using PMS.BusinessModels.MobileProblem;
  11. using PMS.BusinessModels.Account;
  12. namespace PMS.BusinessService.WorkFlow
  13. {
  14. /// <summary>
  15. /// 创 建 人:王海洋
  16. /// 创建日期:2019-01-25
  17. /// 功能描述:问题工作流服务
  18. /// </summary>
  19. public class WorkFlowBLLService : IWorkFlow
  20. {
  21. //创建一个工作流数据库访问服务
  22. WorkFlowService workFlowDbService = WorkFlowService.Instance<WorkFlowService>();
  23. /// <summary>
  24. /// 获取新问题的流程ID
  25. /// </summary>
  26. /// <param name="categoryID">分类目录ID</param>
  27. /// <param name="personProperty">人员性质,1:本部人员,2:渠道人员,3: 操作员,4:医院管理员,5:卫计委管理员</param>
  28. /// <param name="problemProperty">问题性质,1:Bug,2:咨询,3:需求,4:优化</param>
  29. /// <returns>返回流程ID</returns>
  30. public int? GetNewProblemWorkFlowID(int categoryID, int personProperty, int problemProperty)
  31. {
  32. /* 1.首先根据目录ID,获取正常流程表
  33. * 2.根据人员性质与问题性质获取下一个目标ID
  34. */
  35. if (problemProperty == 3 && (personProperty == 1 || personProperty == 2))
  36. {//需求类问题(判断人员是否为项目人员,允许直接提交研发,技术支持也登记需求问题直接提交研发)
  37. return workFlowDbService.GetNewRequirementWorkFlowID(categoryID, personProperty, problemProperty);
  38. }
  39. else
  40. {//非需求类问题(按照正常流程进行)
  41. return workFlowDbService.GetNewBugProblemWorkFlowID(categoryID, personProperty);
  42. }
  43. }
  44. /// <summary>
  45. /// 获取提交问题的下一个工作流程ID
  46. /// </summary>
  47. /// <param name="categoryId">分类目录ID</param>
  48. /// <param name="personProperty">人员性质</param>
  49. /// <param name="problemId">问题ID</param>
  50. /// <returns>返回流程ID</returns>
  51. public int? GetSubmitProblemWorkFlowID(int personProperty, string problemId)
  52. {
  53. /*1.正常流程(当前人员性质与环节匹配)
  54. *2.跨级流程(当前人员性质与环节不匹配,不应该在这个环节处理)
  55. */
  56. int workflowId = workFlowDbService.GetSubmitNextWorkFlowID(personProperty, problemId);
  57. if (workflowId > 0)
  58. {//如果获取到下一个流程ID
  59. return workflowId;
  60. }
  61. else
  62. {//跨级处理(人员性质不是当前流程规则的人员为跨级处理)
  63. workflowId = workFlowDbService.GetSubmitSkipNextWorkFlowID(personProperty, problemId);
  64. return workflowId;
  65. }
  66. }
  67. /// <summary>
  68. /// 回退问题(根据问题执行记录的过程进行回退,找到当前所属的环节进行回退)
  69. /// 1.正常回退
  70. /// 2.跨级回退(如果来源流程ID大于,当前流程ID,则表示跨级节点)
  71. /// </summary>
  72. /// <param name="problemId">问题ID</param>
  73. /// <returns>回到的流程ID</returns>
  74. public int? GetBackProblemWorkFlowID( string problemId)
  75. {
  76. return workFlowDbService.GetBackWorkFlowID(problemId);
  77. }
  78. #region 问题操作相关业务模型
  79. /// <summary>
  80. /// 获取非提交回退类处理操作的进入流程Id
  81. /// </summary>
  82. /// <param name="problemId"></param>
  83. /// <param name="personProperty"></param>
  84. /// <returns></returns>
  85. public int? GetDealWorkId(string problemId,int personProperty,string JobCode)
  86. {
  87. return workFlowDbService.GetDealWorkId(problemId, personProperty, JobCode);
  88. }
  89. /// <summary>
  90. /// 问题受理
  91. /// </summary>
  92. /// <param name="Model"></param>
  93. /// <returns></returns>
  94. public bool ProblemAccept(ProblemDealModel Model)
  95. {
  96. var result = workFlowDbService.ProblemAccept(Model);
  97. return result == -1;
  98. }
  99. /// <summary>
  100. /// 问题回退
  101. /// </summary>
  102. /// <returns></returns>
  103. public bool ProblemRollBack(ProblemDealModel Model,out string ProcessId)
  104. {
  105. var result = workFlowDbService.ProblemRollBack(Model,out ProcessId);
  106. return result == -1;
  107. }
  108. /// <summary>
  109. /// 问题终止
  110. /// </summary>
  111. /// <param name="Model"></param>
  112. /// <returns></returns>
  113. public bool ProblemBreak(ProblemDealModel Model, out string ProcessId)
  114. {
  115. var result = workFlowDbService.ProblemBreak(Model,out ProcessId);
  116. return result == -1;
  117. }
  118. /// <summary>
  119. /// 问题指派
  120. /// </summary>
  121. /// <param name="Model"></param>
  122. /// <returns></returns>
  123. public bool ProblemAssgin(ProblemDealModel Model, out string ProcessId)
  124. {
  125. var result = workFlowDbService.ProblemAssgin(Model, out ProcessId);
  126. return result == -1;
  127. }
  128. /// <summary>
  129. /// 问题提交
  130. /// </summary>
  131. /// <param name="Model"></param>
  132. /// <returns></returns>
  133. public bool ProblemSubmit(ProblemDealModel Model)
  134. {
  135. return workFlowDbService.ProblemSubmit(Model);
  136. }
  137. /// <summary>
  138. /// 问题处理
  139. /// </summary>
  140. /// <param name="Model"></param>
  141. /// <returns></returns>
  142. public bool ProblemDeal(ProblemDealModel Model, out string ProcessId)
  143. {
  144. var result = workFlowDbService.ProblemDeal(Model, out ProcessId);
  145. return result == -1;
  146. }
  147. /// <summary>
  148. /// 问题完成
  149. /// </summary>
  150. /// <param name="Model"></param>
  151. /// <returns></returns>
  152. public bool ProblemSolution(ProblemDealModel Model, out string ProcessId,UserInfo user)
  153. {
  154. var result = workFlowDbService.ProblemSolution(Model, out ProcessId, user);
  155. return result == -1;
  156. }
  157. /// <summary>
  158. /// 撤销完成/终止
  159. /// </summary>
  160. /// <param name="ProblemId"></param>
  161. /// <param name="PersonId"></param>
  162. /// <returns></returns>
  163. public bool UndoProblem(string ProblemId, string PersonId)
  164. {
  165. var result = workFlowDbService.UndoProblem(ProblemId, PersonId);
  166. return result;
  167. }
  168. /// <summary>
  169. /// 计算耗时
  170. /// </summary>
  171. /// <param name="ProblemID"></param>
  172. /// <returns></returns>
  173. public Double PassTime(string ProblemID)
  174. {
  175. return workFlowDbService.PassTime(ProblemID);
  176. }
  177. /// <summary>
  178. /// 问题过程附件保存
  179. /// </summary>
  180. /// <param name="Model"></param>
  181. /// <returns></returns>
  182. public bool SaveProcessFile(ProcessFileModel Model)
  183. {
  184. var result = workFlowDbService.SaveProcessFile(Model);
  185. return result >0;
  186. }
  187. #endregion
  188. #region 其他操作
  189. /// <summary>
  190. /// 验证问题
  191. /// </summary>
  192. /// <param name="model"></param>
  193. /// <returns></returns>
  194. public bool AcceptancProblem(ProblemProcessModel model)
  195. {
  196. var result = workFlowDbService.AcceptancProblem(model);
  197. return result ;
  198. }
  199. /// <summary>
  200. /// 更新版本号
  201. /// </summary>
  202. /// <param name="model"></param>
  203. /// <returns></returns>
  204. public bool UpdateVersion(VersionManageModel model)
  205. {
  206. var result = workFlowDbService.UpdateVersion(model);
  207. return result;
  208. }
  209. #endregion
  210. }
  211. }