safe_audit_api.go 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. /*
  2. * @description: 安全巡检审批相关
  3. * @Author: LanJianRong
  4. * @Date: 2020-12-18
  5. * @FilePath: \construction_management\web\api\safe_rpc_api.go
  6. */
  7. package api
  8. import (
  9. "fmt"
  10. "github.com/kataras/iris/v12"
  11. "go.mod/services"
  12. "go.mod/web/utils"
  13. )
  14. type SafeAuditApi struct {
  15. //框架-web应用上下文环境
  16. Ctx iris.Context
  17. // 需要用的service
  18. SafeAuditService services.SafeAuditService
  19. }
  20. // @Summary 开始审批
  21. // @Tags 安全巡检-审批
  22. // @Description 开始审批
  23. // @Accept json
  24. // @Produce json
  25. // @Security ApiKeyAuth
  26. // @Param safe_id body string true "质量巡检id"
  27. // @Param bidsection_id body string true "标段id"
  28. // @Param auditors body array true "审核组"
  29. // @Param reAuditors body array true "复查组"
  30. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  31. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  32. // @Router /api/safe_audit/start [post]
  33. func (c *SafeAuditApi) PostStart() {
  34. // 1.规则验证
  35. safeAuditData, err := c.SafeAuditService.ValidStart(c.Ctx)
  36. if err != nil {
  37. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  38. return
  39. }
  40. // 2.获取bid
  41. bidsectionId, err := utils.GetDecryptId(safeAuditData.BidsectionId)
  42. if err != nil {
  43. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  44. return
  45. }
  46. // 3.获取safeId
  47. safeId, err := utils.GetDecryptId(safeAuditData.SafeId)
  48. if err != nil {
  49. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  50. return
  51. }
  52. // 4.解析审批组id、复查组id
  53. var auditors []int
  54. for _, item := range safeAuditData.Auditors {
  55. auditId, _ := utils.GetDecryptId(item)
  56. auditors = append(auditors, auditId)
  57. }
  58. var reAuditors []int
  59. for _, item := range safeAuditData.ReAuditors {
  60. auditId, _ := utils.GetDecryptId(item)
  61. reAuditors = append(reAuditors, auditId)
  62. }
  63. // 5.获取当前用户id
  64. uid, err := utils.GetProjectAccountId(c.Ctx)
  65. if err != nil {
  66. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  67. return
  68. }
  69. // 6.获取当前项目id
  70. pid, err := utils.GetProjectId(c.Ctx)
  71. if err != nil {
  72. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  73. return
  74. }
  75. // 7.执行sql
  76. err = c.SafeAuditService.StartAudit(safeId, bidsectionId, auditors, reAuditors, uid, pid, safeAuditData.Inspection, safeAuditData.InspectionDetail, safeAuditData.Demand, safeAuditData.CreateTime)
  77. if err != nil {
  78. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  79. return
  80. }
  81. c.Ctx.JSON(iris.Map{
  82. "code": 0,
  83. "msg": "插入成功",
  84. })
  85. }
  86. // @Summary 关闭审批流程
  87. // @Tags 安全巡检-审批
  88. // @Description 直接停止审批流程
  89. // @Accept json
  90. // @Produce json
  91. // @Param id body string true "审批流程id"
  92. // @Param safe_id body string true "巡检id"
  93. // @Param opinion body string true "审批意见"
  94. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  95. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  96. // @Router /api/safe_audit/close [post]
  97. func (c *SafeAuditApi) PostClose() {
  98. // 1.规则验证
  99. safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx)
  100. if err != nil {
  101. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  102. return
  103. }
  104. // 2.获取审批记录id
  105. id, err := utils.GetDecryptId(safeAuditData.Id)
  106. if err != nil {
  107. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  108. return
  109. }
  110. // 3.获取安全巡检记录id
  111. safeId, err := utils.GetDecryptId(safeAuditData.SafeId)
  112. if err != nil {
  113. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  114. return
  115. }
  116. // 4.解析登录id
  117. uid, err := utils.GetProjectAccountId(c.Ctx)
  118. if err != nil {
  119. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  120. return
  121. }
  122. // 5. 执行sql
  123. err = c.SafeAuditService.CloseAudit(id, safeAuditData.Opinion, uid, safeId)
  124. if err != nil {
  125. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  126. return
  127. }
  128. // 6. 返回结果
  129. c.Ctx.JSON(iris.Map{
  130. "code": 0,
  131. "msg": "请求成功",
  132. })
  133. }
  134. // @Summary 审批退回
  135. // @Tags 安全巡检-审批
  136. // @Description
  137. // @Accept json
  138. // @Produce json
  139. // @Param id body string true "审批id"
  140. // @Param safe_id body string true "巡检id"
  141. // @Param audit_id body string false "回滚的审批流程id, 不传则退回到上报人"
  142. // @Param opinion body string true "审批意见"
  143. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  144. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  145. // @Router /api/safe_audit/back [post]
  146. func (c *SafeAuditApi) PostBack() {
  147. // 1.规则验证
  148. safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx)
  149. if err != nil {
  150. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  151. return
  152. }
  153. // 2.获取当前审批流程id
  154. id, err := utils.GetDecryptId(safeAuditData.Id)
  155. if err != nil {
  156. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  157. return
  158. }
  159. // 3.解析登录id
  160. uid, err := utils.GetProjectAccountId(c.Ctx)
  161. if err != nil {
  162. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  163. return
  164. }
  165. // 4.获取安全巡检记录id、回滚的审批流程id
  166. safeId, err := utils.GetDecryptId(safeAuditData.SafeId)
  167. if err != nil {
  168. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  169. return
  170. }
  171. // 说明退回到了检查人
  172. if safeAuditData.AuditId == "" {
  173. err = c.SafeAuditService.BackAudit(id, safeAuditData.Opinion, uid, safeId, 0)
  174. if err != nil {
  175. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  176. return
  177. }
  178. } else {
  179. auditId, err := utils.GetDecryptId(safeAuditData.AuditId)
  180. if err != nil {
  181. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  182. return
  183. }
  184. err = c.SafeAuditService.BackAudit(id, safeAuditData.Opinion, uid, safeId, auditId)
  185. if err != nil {
  186. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  187. return
  188. }
  189. }
  190. // 6. 返回结果
  191. c.Ctx.JSON(iris.Map{
  192. "code": 0,
  193. "msg": "请求成功",
  194. })
  195. }
  196. // @Summary 审批通过
  197. // @Tags 安全巡检-审批
  198. // @Description
  199. // @Accept json
  200. // @Produce json
  201. // @Param id body string true "审批id"
  202. // @Param safe_id body string true "巡检id"
  203. // @Param audit_id body string false "整改人id"
  204. // @Param opinion body string false "审批意见"
  205. // @Param rectifiedInfo body string false "整改情况"
  206. // @Param rectifiedTime body string false "整改日期"
  207. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  208. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  209. // @Router /api/safe_audit/pass [post]
  210. func (c *SafeAuditApi) PostPass() {
  211. // 1.规则验证
  212. safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx)
  213. if err != nil {
  214. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  215. return
  216. }
  217. // 2.获取审批记录id
  218. id, err := utils.GetDecryptId(safeAuditData.Id)
  219. if err != nil {
  220. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  221. return
  222. }
  223. var auditId = 0
  224. if safeAuditData.AuditId != "" {
  225. aid, err := utils.GetDecryptId(safeAuditData.AuditId)
  226. if err != nil {
  227. c.Ctx.JSON(iris.Map{"code": -1, "msg": "解析参数,请检查参数"})
  228. return
  229. }
  230. auditId = aid
  231. }
  232. // 3.解析登录id
  233. uid, err := utils.GetProjectAccountId(c.Ctx)
  234. if err != nil {
  235. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  236. return
  237. }
  238. // 4. 执行sql
  239. err = c.SafeAuditService.PassAudit(id, uid, auditId, safeAuditData.Opinion, safeAuditData.RectifiedInfo, safeAuditData.RectifiedTime)
  240. if err != nil {
  241. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  242. return
  243. }
  244. // 6. 返回结果
  245. c.Ctx.JSON(iris.Map{
  246. "code": 0,
  247. "msg": "请求成功",
  248. })
  249. }