quality_audit_api.go 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. /*
  2. * @description: 质量巡检审批相关
  3. * @Author: LanJianRong
  4. * @Date: 2020-12-18
  5. * @FilePath: \construction_management\web\api\quality_audit_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 QualityAuditApi struct {
  15. //框架-web应用上下文环境
  16. Ctx iris.Context
  17. // 需要用的service
  18. QualityAuditService services.QualityAuditService
  19. }
  20. // @Summary 开始审批
  21. // @Tags 质量巡检-审批
  22. // @Description 开始审批
  23. // @Accept json
  24. // @Produce json
  25. // @Security ApiKeyAuth
  26. // @Param quality_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/quality_audit/start [post]
  33. func (c *QualityAuditApi) PostStart() {
  34. // 1.规则验证
  35. qualityAuditData, err := c.QualityAuditService.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(qualityAuditData.BidsectionId)
  42. if err != nil {
  43. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  44. return
  45. }
  46. // 3.获取qualityId
  47. qualityId, err := utils.GetDecryptId(qualityAuditData.QualityId)
  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 qualityAuditData.Auditors {
  55. auditId, _ := utils.GetDecryptId(item)
  56. auditors = append(auditors, auditId)
  57. }
  58. var reAuditors []int
  59. for _, item := range qualityAuditData.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.QualityAuditService.StartAudit(qualityId, bidsectionId, auditors, reAuditors, uid, pid, qualityAuditData.Inspection, qualityAuditData.InspectionDetail, qualityAuditData.Demand, qualityAuditData.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 quality_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/quality_audit/close [post]
  97. func (c *QualityAuditApi) PostClose() {
  98. // 1.规则验证
  99. qualityAuditData, err := c.QualityAuditService.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(qualityAuditData.Id)
  106. if err != nil {
  107. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  108. return
  109. }
  110. // 3.获取质量巡检记录id
  111. qualityId, err := utils.GetDecryptId(qualityAuditData.QualityId)
  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.QualityAuditService.CloseAudit(id, qualityAuditData.Opinion, uid, qualityId)
  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 quality_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/quality_audit/back [post]
  146. func (c *QualityAuditApi) PostBack() {
  147. // 1.规则验证
  148. qualityAuditData, err := c.QualityAuditService.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(qualityAuditData.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. qualityId, err := utils.GetDecryptId(qualityAuditData.QualityId)
  167. if err != nil {
  168. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  169. return
  170. }
  171. // 说明退回到了检查人
  172. if qualityAuditData.AuditId == "" {
  173. err = c.QualityAuditService.BackAudit(id, qualityAuditData.Opinion, uid, qualityId, 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(qualityAuditData.AuditId)
  180. if err != nil {
  181. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  182. return
  183. }
  184. err = c.QualityAuditService.BackAudit(id, qualityAuditData.Opinion, uid, qualityId, 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 quality_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/quality_audit/pass [post]
  210. func (c *QualityAuditApi) PostPass() {
  211. // 1.规则验证
  212. qualityAuditData, err := c.QualityAuditService.ValidRule(c.Ctx)
  213. fmt.Println("---------------------------------------------------------")
  214. fmt.Println(qualityAuditData.RectifiedTime)
  215. fmt.Println("---------------------------------------------------------")
  216. if err != nil {
  217. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  218. return
  219. }
  220. // 2.获取审批记录id
  221. id, err := utils.GetDecryptId(qualityAuditData.Id)
  222. if err != nil {
  223. c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"})
  224. return
  225. }
  226. var auditId = 0
  227. if qualityAuditData.AuditId != "" {
  228. aid, err := utils.GetDecryptId(qualityAuditData.AuditId)
  229. if err != nil {
  230. c.Ctx.JSON(iris.Map{"code": -1, "msg": "解析参数,请检查参数"})
  231. return
  232. }
  233. auditId = aid
  234. }
  235. // 3.解析登录id
  236. uid, err := utils.GetProjectAccountId(c.Ctx)
  237. if err != nil {
  238. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  239. return
  240. }
  241. // 4. 执行sql
  242. err = c.QualityAuditService.PassAudit(id, uid, auditId, qualityAuditData.Opinion, qualityAuditData.RectifiedInfo, qualityAuditData.RectifiedTime)
  243. if err != nil {
  244. c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
  245. return
  246. }
  247. // 6. 返回结果
  248. c.Ctx.JSON(iris.Map{
  249. "code": 0,
  250. "msg": "请求成功",
  251. })
  252. }