bi_approve.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package biapprove
  2. import (
  3. "eta_gn/eta_api/controllers"
  4. "eta_gn/eta_api/models"
  5. biapprove "eta_gn/eta_api/services/bi_approve"
  6. "eta_gn/eta_api/utils"
  7. "time"
  8. )
  9. type BiApproveController struct {
  10. controllers.BaseAuthController
  11. }
  12. // List
  13. // @Title 审批列表
  14. // @Description 审批列表
  15. // @Param PageSize query int true "每页数据条数"
  16. // @Param CurrentIndex query int true "当前页页码"
  17. // @Param ListType query int true "列表类型:1-待处理;2-已处理;3-我发起的"
  18. // @Param ClassifyId query int false "分类ID"
  19. // @Param Keyword query string false "搜索关键词"
  20. // @Param ApproveState query int false "审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"
  21. // @Param TimeType query int false "时间类型:1-提交时间;2-处理时间;3-审批时间"
  22. // @Param StartTime query string false "开始时间"
  23. // @Param EndTime query string false "结束时间"
  24. // @Param SortField query int false "排序字段:1-提交时间;2-处理时间;3-审批时间"
  25. // @Param SortRule query int false "排序方式: 1-正序; 2-倒序(默认)"
  26. // @Success 200 {object} report_approve.ReportApproveListResp
  27. // @router /list [get]
  28. func (this *BiApproveController) List() {
  29. br := new(models.BaseResponse).Init()
  30. defer func() {
  31. if br.ErrMsg == "" {
  32. br.IsSendEmail = false
  33. }
  34. this.Data["json"] = br
  35. this.ServeJSON()
  36. }()
  37. pageSize, _ := this.GetInt("PageSize")
  38. currentIndex, _ := this.GetInt("CurrentIndex")
  39. listType, _ := this.GetInt("ListType")
  40. approveState, _ := this.GetInt("ApproveState")
  41. timeType, _ := this.GetInt("TimeType")
  42. startTime := this.GetString("StartTime")
  43. endTime := this.GetString("EndTime")
  44. // sortField, _ := this.GetInt("SortField")
  45. // sortRule, _ := this.GetInt("SortRule")
  46. classifyId, _ := this.GetInt("ClassifyId")
  47. keyword := this.GetString("Keyword")
  48. var pars []interface{}
  49. var condition string
  50. if pageSize <= 0 {
  51. pageSize = utils.PageSize10
  52. }
  53. if currentIndex <= 0 {
  54. currentIndex = 1
  55. }
  56. if classifyId > 0 {
  57. condition += ` AND classify_id = ? `
  58. pars = append(pars, classifyId)
  59. }
  60. if keyword != "" {
  61. condition += ` AND bi_title LIKE ? `
  62. pars = utils.GetLikeKeywordPars(pars, keyword, 1)
  63. }
  64. if approveState > 0 {
  65. condition += ` AND a.state = ? `
  66. pars = append(pars, approveState)
  67. }
  68. if startTime != "" && endTime != "" {
  69. _, err := time.Parse(utils.FormatDate, startTime)
  70. if err != nil {
  71. br.Msg = "开始时间格式错误"
  72. return
  73. }
  74. endTime, err := time.Parse(utils.FormatDate, endTime)
  75. endTime = endTime.AddDate(0, 0, 1)
  76. switch timeType {
  77. case 1:
  78. condition += ` AND create_time BETWEEN ? AND ? `
  79. pars = append(pars, startTime, endTime)
  80. case 2:
  81. condition += ` AND approve_time BETWEEN ? AND ? `
  82. pars = append(pars, startTime, endTime)
  83. case 3:
  84. condition += ` AND approve_time BETWEEN ? AND ? `
  85. pars = append(pars, startTime, endTime)
  86. default:
  87. br.Msg = "时间类型错误"
  88. return
  89. }
  90. }
  91. switch listType {
  92. case 1:
  93. condition += ` AND a.state = 1 AND a.approve_user_id = ?`
  94. pars = append(pars, this.SysUser.AdminId)
  95. case 2:
  96. condition += ` AND a.state IN (2,3) AND a.approve_user_id = ?`
  97. pars = append(pars, this.SysUser.AdminId)
  98. case 3:
  99. condition += ` AND a.state = ? `
  100. pars = append(pars, this.GetSession("username"))
  101. default:
  102. br.Msg = "列表类型错误"
  103. return
  104. }
  105. }
  106. // list
  107. // @Title 公共看板分类列表
  108. // @Description 公共看板分类列表
  109. // @Success 200 {object} report_approve.ReportApproveFlowDetailItem
  110. // @router /classify/list [get]
  111. func (this *BiApproveController) ClassifyList() {
  112. br := new(models.BaseResponse).Init()
  113. defer func() {
  114. if br.ErrMsg == "" {
  115. br.IsSendEmail = false
  116. }
  117. this.Data["json"] = br
  118. this.ServeJSON()
  119. }()
  120. res, msg, err := biapprove.GetPulicBiClassifyList()
  121. if err != nil {
  122. if msg == "" {
  123. br.Msg = "获取分类列表失败"
  124. } else {
  125. br.Msg = msg
  126. }
  127. br.ErrMsg = err.Error()
  128. return
  129. }
  130. br.Data = res
  131. br.Msg = "获取分类列表成功"
  132. br.Ret = 200
  133. br.Success = true
  134. }