bi_approve_flow.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. package biapprove
  2. import (
  3. "encoding/json"
  4. "eta_gn/eta_api/controllers"
  5. "eta_gn/eta_api/models"
  6. "eta_gn/eta_api/models/bi_approve/request"
  7. "eta_gn/eta_api/models/bi_approve/response"
  8. biapprove "eta_gn/eta_api/services/bi_approve"
  9. "eta_gn/eta_api/utils"
  10. "strings"
  11. "github.com/rdlucklib/rdluck_tools/paging"
  12. )
  13. type BiApproveFlowController struct {
  14. controllers.BaseAuthController
  15. }
  16. // @router /flow/list [get]
  17. func (c *BiApproveFlowController) List() {
  18. br := new(models.BaseResponse).Init()
  19. defer func() {
  20. if br.ErrMsg == "" {
  21. br.IsSendEmail = false
  22. }
  23. c.Data["json"] = br
  24. c.ServeJSON()
  25. }()
  26. pageSize, _ := c.GetInt("PageSize")
  27. currentIndex, _ := c.GetInt("CurrentIndex")
  28. keyword := c.GetString("Keyword")
  29. classifyId, _ := c.GetInt("ClassifyId", 0)
  30. sortRule, _ := c.GetInt("SortRule", 2)
  31. if pageSize <= 0 {
  32. pageSize = utils.PageSize10
  33. }
  34. if currentIndex <= 0 {
  35. currentIndex = 1
  36. }
  37. var condition string
  38. var pars []interface{}
  39. if keyword != "" {
  40. condition = ` AND flow_name LIKE ?`
  41. pars = utils.GetLikeKeywordPars(pars, keyword, 1)
  42. }
  43. if classifyId > 0 {
  44. condition += ` AND classify_id = ?`
  45. pars = append(pars, classifyId)
  46. }
  47. startSize := paging.StartIndex(currentIndex, pageSize)
  48. orderMap := map[int]string{1: "ASC", 2: "DESC"}
  49. if sortRule == 0 {
  50. sortRule = 2
  51. }
  52. condition += " ORDER BY create_time " + orderMap[sortRule]
  53. res, total, msg, err := biapprove.GetBiApproveFlowList(condition, pars, startSize, pageSize)
  54. if err != nil {
  55. if msg != "" {
  56. br.Msg = msg
  57. } else {
  58. br.Msg = "获取审批流列表失败"
  59. }
  60. br.ErrMsg = "获取审批流列表失败, err:" + err.Error()
  61. return
  62. }
  63. page := paging.GetPaging(currentIndex, pageSize, total)
  64. resp := new(response.BiApproveFlowListResp)
  65. resp.List = res
  66. resp.Paging = page
  67. br.Data = resp
  68. br.Msg = "获取审批流列表成功"
  69. br.Success = true
  70. br.Ret = 200
  71. }
  72. // @router /flow/add [post]
  73. func (c *BiApproveFlowController) Add() {
  74. br := new(models.BaseResponse).Init()
  75. defer func() {
  76. if br.ErrMsg == "" {
  77. br.IsSendEmail = false
  78. }
  79. c.Data["json"] = br
  80. c.ServeJSON()
  81. }()
  82. var req *request.BiApproveFlowSaveReq
  83. if err := json.Unmarshal(c.Ctx.Input.RequestBody, &req); err != nil {
  84. br.Msg = "参数解析失败"
  85. br.ErrMsg = "参数解析失败, err:" + err.Error()
  86. return
  87. }
  88. req.FlowName = strings.TrimSpace(req.FlowName)
  89. if req.FlowName == "" {
  90. br.Msg = "审批流名称不能为空"
  91. return
  92. }
  93. if len([]rune(req.FlowName)) > 20 {
  94. br.Msg = "审批流名称最多输入20个字符"
  95. return
  96. }
  97. if req.ClassifyId <= 0 {
  98. br.Msg = "请选择审批分类"
  99. return
  100. }
  101. if len(req.Nodes) == 0 {
  102. br.Msg = "请添加审批流程"
  103. return
  104. }
  105. if req.BiApproveFlowId > 0 {
  106. br.Msg = "审批流已存在"
  107. return
  108. }
  109. _, msg, err := biapprove.SaveBiApproveFlow(req)
  110. if err != nil {
  111. if msg != "" {
  112. br.Msg = msg
  113. } else {
  114. br.Msg = "新增审批流失败"
  115. }
  116. br.ErrMsg = "新增审批流失败, err:" + err.Error()
  117. return
  118. }
  119. br.Msg = "新增审批流成功"
  120. br.Success = true
  121. br.Ret = 200
  122. }
  123. // @router /flow/edit [post]
  124. func (c *BiApproveFlowController) Edit() {
  125. br := new(models.BaseResponse).Init()
  126. defer func() {
  127. if br.ErrMsg == "" {
  128. br.IsSendEmail = false
  129. }
  130. c.Data["json"] = br
  131. c.ServeJSON()
  132. }()
  133. var req *request.BiApproveFlowSaveReq
  134. if err := json.Unmarshal(c.Ctx.Input.RequestBody, &req); err != nil {
  135. br.Msg = "参数解析失败"
  136. br.ErrMsg = "参数解析失败, err:" + err.Error()
  137. return
  138. }
  139. req.FlowName = strings.TrimSpace(req.FlowName)
  140. if req.FlowName == "" {
  141. br.Msg = "审批流名称不能为空"
  142. return
  143. }
  144. if len([]rune(req.FlowName)) > 20 {
  145. br.Msg = "审批流名称最多输入20个字符"
  146. return
  147. }
  148. if req.ClassifyId <= 0 {
  149. br.Msg = "请选择审批分类"
  150. return
  151. }
  152. if len(req.Nodes) == 0 {
  153. br.Msg = "请添加审批流程"
  154. return
  155. }
  156. if req.BiApproveFlowId == 0 {
  157. br.Msg = "审批流不存在, 请刷新重试"
  158. return
  159. }
  160. ok, msg, err := biapprove.SaveBiApproveFlow(req)
  161. if err != nil {
  162. if msg != "" {
  163. br.Msg = msg
  164. } else {
  165. br.Msg = "编辑审批流失败"
  166. }
  167. br.ErrMsg = "编辑审批流失败, err:" + err.Error()
  168. return
  169. }
  170. if !ok {
  171. br.Msg = msg
  172. return
  173. }
  174. br.Msg = "编辑审批流成功"
  175. br.Success = true
  176. br.Ret = 200
  177. }
  178. // @router /flow/remove [post]
  179. func (c *BiApproveFlowController) Remove() {
  180. br := new(models.BaseResponse).Init()
  181. defer func() {
  182. if br.ErrMsg == "" {
  183. br.IsSendEmail = false
  184. }
  185. c.Data["json"] = br
  186. c.ServeJSON()
  187. }()
  188. var req *request.BiApproveFlowRemoveResp
  189. if err := json.Unmarshal(c.Ctx.Input.RequestBody, &req); err != nil {
  190. br.Msg = "参数解析失败"
  191. br.ErrMsg = "参数解析失败, err:" + err.Error()
  192. return
  193. }
  194. if req.BiApproveFlowId <= 0 {
  195. br.Msg = "审批流不存在, 请刷新重试"
  196. return
  197. }
  198. ok, msg, err := biapprove.DeleteBiApproveFlow(req.BiApproveFlowId)
  199. if err != nil {
  200. if msg != "" {
  201. br.Msg = msg
  202. } else {
  203. br.Msg = "删除审批流失败"
  204. }
  205. br.ErrMsg = "删除审批流失败, err:" + err.Error()
  206. return
  207. }
  208. if !ok {
  209. br.Msg = msg
  210. return
  211. }
  212. br.Msg = "删除审批流成功"
  213. br.Success = true
  214. br.Ret = 200
  215. }
  216. // @router /flow/detail [get]
  217. func (c *BiApproveFlowController) Detail() {
  218. br := new(models.BaseResponse).Init()
  219. defer func() {
  220. if br.ErrMsg == "" {
  221. br.IsSendEmail = false
  222. }
  223. c.Data["json"] = br
  224. c.ServeJSON()
  225. }()
  226. sysUser := c.SysUser
  227. if sysUser == nil {
  228. br.Msg = "请登录"
  229. br.ErrMsg = "请登录,SysUser Is Empty"
  230. br.Ret = 408
  231. return
  232. }
  233. flowId, _ := c.GetInt("BiApproveFlowId")
  234. if flowId <= 0 {
  235. br.Msg = "审批流不存在"
  236. return
  237. }
  238. detail, msg, err := biapprove.GetBiApproveFlowDetail(flowId)
  239. if err != nil {
  240. if msg != "" {
  241. br.Msg = msg
  242. } else {
  243. br.Msg = "获取审批流详情失败"
  244. }
  245. br.ErrMsg = "获取审批流详情失败, err:" + err.Error()
  246. return
  247. }
  248. if detail == nil {
  249. br.Msg = "审批流不存在"
  250. return
  251. }
  252. br.Data = detail
  253. br.Ret = 200
  254. br.Success = true
  255. br.Msg = "获取审批流详情成功"
  256. }