safe_audit_api.go 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  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 times body string true "审批次数"
  29. // @Param audit_id body string true "审批人id"
  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/add [post]
  33. func (c *SafeAuditApi) PostAdd() {
  34. // 1.规则验证
  35. safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx)
  36. if err != nil {
  37. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  38. return
  39. }
  40. bidsectionId, err := utils.GetDecryptId(safeAuditData.BidsectionId)
  41. if err != nil {
  42. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  43. return
  44. }
  45. auditId, err := utils.GetDecryptId(safeAuditData.AuditId)
  46. if err != nil {
  47. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  48. return
  49. }
  50. safeId, err := utils.GetDecryptId(safeAuditData.SafeId)
  51. if err != nil {
  52. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  53. return
  54. }
  55. err = c.SafeAuditService.AddAuditor(safeId, bidsectionId, auditId, safeAuditData.Times)
  56. if err != nil {
  57. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  58. return
  59. }
  60. c.Ctx.JSON(iris.Map{
  61. "code": 0,
  62. "msg": "插入成功",
  63. })
  64. }
  65. // @Summary 开始审批
  66. // @Tags 安全巡检-审批
  67. // @Description 开始审批
  68. // @Accept json
  69. // @Produce json
  70. // @Security ApiKeyAuth
  71. // @Param safe_id body string true "质量巡检id"
  72. // @Param bidsection_id body string true "标段id"
  73. // @Param auditors body array true "审核组"
  74. // @Param reAuditors body array true "复查组"
  75. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  76. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  77. // @Router /api/safe_audit/start [post]
  78. func (c *SafeAuditApi) PostStart() {
  79. // 1.规则验证
  80. safeAuditData, err := c.SafeAuditService.ValidStart(c.Ctx)
  81. if err != nil {
  82. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  83. return
  84. }
  85. bidsectionId, err := utils.GetDecryptId(safeAuditData.BidsectionId)
  86. if err != nil {
  87. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  88. return
  89. }
  90. safeId, err := utils.GetDecryptId(safeAuditData.SafeId)
  91. if err != nil {
  92. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  93. return
  94. }
  95. var auditors []int
  96. for _, item := range safeAuditData.Auditors {
  97. auditId, _ := utils.GetDecryptId(item)
  98. auditors = append(auditors, auditId)
  99. }
  100. var reAuditors []int
  101. for _, item := range safeAuditData.ReAuditors {
  102. auditId, _ := utils.GetDecryptId(item)
  103. reAuditors = append(reAuditors, auditId)
  104. }
  105. uid, err := utils.GetProjectAccountId(c.Ctx)
  106. if err != nil {
  107. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  108. return
  109. }
  110. err = c.SafeAuditService.StartAudit(safeId, bidsectionId, safeAuditData.Times, auditors, reAuditors, uid)
  111. if err != nil {
  112. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  113. return
  114. }
  115. c.Ctx.JSON(iris.Map{
  116. "code": 0,
  117. "msg": "插入成功",
  118. })
  119. }
  120. // @Summary 关闭审批流程
  121. // @Tags 安全巡检-审批
  122. // @Description 直接停止审批流程
  123. // @Accept json
  124. // @Produce json
  125. // @Param id body string true "审批id"
  126. // @Param safe_id body string true "巡检id"
  127. // @Param opinion body string true "审批意见"
  128. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  129. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  130. // @Router /api/safe_audit/close [post]
  131. func (c *SafeAuditApi) PostClose() {
  132. // 1.规则验证
  133. safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx)
  134. if err != nil {
  135. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  136. return
  137. }
  138. // 2.获取审批记录id
  139. id, err := utils.GetDecryptId(safeAuditData.Id)
  140. if err != nil {
  141. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  142. return
  143. }
  144. // 3.获取安全巡检记录id
  145. safeId, err := utils.GetDecryptId(safeAuditData.SafeId)
  146. if err != nil {
  147. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  148. return
  149. }
  150. // 4.解析登录id
  151. uid, err := utils.GetProjectAccountId(c.Ctx)
  152. if err != nil {
  153. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  154. return
  155. }
  156. // 5. 执行sql
  157. err = c.SafeAuditService.CloseAudit(id, safeAuditData.Opinion, uid, safeId)
  158. if err != nil {
  159. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  160. return
  161. }
  162. // 6. 返回结果
  163. c.Ctx.JSON(iris.Map{
  164. "code": 0,
  165. "msg": "请求成功",
  166. })
  167. }
  168. // @Summary 审批退回
  169. // @Tags 安全巡检-审批
  170. // @Description
  171. // @Accept json
  172. // @Produce json
  173. // @Param id body string true "审批id"
  174. // @Param safe_id body string true "巡检id"
  175. // @Param audit_id body string true "回滚的审批人id"
  176. // @Param progress body string true "退回的类型,uncheck退回检查人,checking整改人,checkNo复查人,checked审批人"
  177. // @Param opinion body string true "审批意见"
  178. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  179. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  180. // @Router /api/safe_audit/back [post]
  181. func (c *SafeAuditApi) PostBack() {
  182. // 1.规则验证
  183. safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx)
  184. if err != nil {
  185. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  186. return
  187. }
  188. // 2.获取审批记录id
  189. id, err := utils.GetDecryptId(safeAuditData.Id)
  190. if err != nil {
  191. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  192. return
  193. }
  194. // 3.获取安全巡检记录id、回滚的审批人id
  195. safeId, err := utils.GetDecryptId(safeAuditData.SafeId)
  196. if err != nil {
  197. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  198. return
  199. }
  200. auditId, err := utils.GetDecryptId(safeAuditData.AuditId)
  201. if err != nil {
  202. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  203. return
  204. }
  205. // 4.解析登录id
  206. uid, err := utils.GetProjectAccountId(c.Ctx)
  207. if err != nil {
  208. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  209. return
  210. }
  211. // 5. 执行sql
  212. err = c.SafeAuditService.BackAudit(id, safeAuditData.Opinion, uid, safeId, auditId)
  213. if err != nil {
  214. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  215. return
  216. }
  217. // 6. 返回结果
  218. c.Ctx.JSON(iris.Map{
  219. "code": 0,
  220. "msg": "请求成功",
  221. })
  222. }
  223. // @Summary 审批通过
  224. // @Tags 安全巡检-审批
  225. // @Description
  226. // @Accept json
  227. // @Produce json
  228. // @Param id body string true "审批id"
  229. // @Param safe_id body string true "巡检id"
  230. // @Param audit_id body string false "整改人id"
  231. // @Param opinion body string false "审批意见"
  232. // @Param rectifiedInfo body string false "整改情况"
  233. // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  234. // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
  235. // @Router /api/safe_audit/pass [post]
  236. func (c *SafeAuditApi) PostPass() {
  237. // 1.规则验证
  238. safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx)
  239. if err != nil {
  240. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  241. return
  242. }
  243. // 2.获取审批记录id
  244. id, err := utils.GetDecryptId(safeAuditData.Id)
  245. if err != nil {
  246. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  247. return
  248. }
  249. var auditId = 0
  250. if safeAuditData.AuditId != "" {
  251. aid, err := utils.GetDecryptId(safeAuditData.AuditId)
  252. if err != nil {
  253. c.Ctx.JSON(iris.Map{"code": -1, "msg": "解析参数,请检查参数"})
  254. return
  255. }
  256. auditId = aid
  257. }
  258. // 3.解析登录id
  259. uid, err := utils.GetProjectAccountId(c.Ctx)
  260. if err != nil {
  261. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  262. return
  263. }
  264. // 4. 执行sql
  265. err = c.SafeAuditService.PassAudit(id, uid, auditId, safeAuditData.Opinion, safeAuditData.RectifiedInfo)
  266. if err != nil {
  267. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  268. return
  269. }
  270. // 6. 返回结果
  271. c.Ctx.JSON(iris.Map{
  272. "code": 0,
  273. "msg": "请求成功",
  274. })
  275. }