/* * @description: 安全巡检审批相关 * @Author: LanJianRong * @Date: 2020-12-18 * @FilePath: \construction_management\web\api\safe_rpc_api.go */ package api import ( "fmt" "github.com/kataras/iris/v12" "go.mod/services" "go.mod/web/utils" ) type SafeAuditApi struct { //框架-web应用上下文环境 Ctx iris.Context // 需要用的service SafeAuditService services.SafeAuditService } // @Summary 开始审批 // @Tags 安全巡检-审批 // @Description 开始审批 // @Accept json // @Produce json // @Security ApiKeyAuth // @Param safe_id body string true "质量巡检id" // @Param bidsection_id body string true "标段id" // @Param auditors body array true "审核组" // @Param reAuditors body array true "复查组" // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Router /api/safe_audit/start [post] func (c *SafeAuditApi) PostStart() { // 1.规则验证 safeAuditData, err := c.SafeAuditService.ValidStart(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 2.获取bid bidsectionId, err := utils.GetDecryptId(safeAuditData.BidsectionId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } // 3.获取safeId safeId, err := utils.GetDecryptId(safeAuditData.SafeId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } // 4.解析审批组id、复查组id var auditors []int for _, item := range safeAuditData.Auditors { auditId, _ := utils.GetDecryptId(item) auditors = append(auditors, auditId) } var reAuditors []int for _, item := range safeAuditData.ReAuditors { auditId, _ := utils.GetDecryptId(item) reAuditors = append(reAuditors, auditId) } // 5.获取当前用户id uid, err := utils.GetProjectAccountId(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 6.获取当前项目id pid, err := utils.GetProjectId(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 7.执行sql err = c.SafeAuditService.StartAudit(safeId, bidsectionId, auditors, reAuditors, uid, pid, safeAuditData.Inspection, safeAuditData.InspectionDetail, safeAuditData.Demand, safeAuditData.CreateTime) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } c.Ctx.JSON(iris.Map{ "code": 0, "msg": "插入成功", }) } // @Summary 关闭审批流程 // @Tags 安全巡检-审批 // @Description 直接停止审批流程 // @Accept json // @Produce json // @Param id body string true "审批流程id" // @Param safe_id body string true "巡检id" // @Param opinion body string true "审批意见" // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Router /api/safe_audit/close [post] func (c *SafeAuditApi) PostClose() { // 1.规则验证 safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 2.获取审批记录id id, err := utils.GetDecryptId(safeAuditData.Id) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } // 3.获取安全巡检记录id safeId, err := utils.GetDecryptId(safeAuditData.SafeId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } // 4.解析登录id uid, err := utils.GetProjectAccountId(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 5. 执行sql err = c.SafeAuditService.CloseAudit(id, safeAuditData.Opinion, uid, safeId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 6. 返回结果 c.Ctx.JSON(iris.Map{ "code": 0, "msg": "请求成功", }) } // @Summary 审批退回 // @Tags 安全巡检-审批 // @Description // @Accept json // @Produce json // @Param id body string true "审批id" // @Param safe_id body string true "巡检id" // @Param audit_id body string false "回滚的审批流程id, 不传则退回到上报人" // @Param opinion body string true "审批意见" // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Router /api/safe_audit/back [post] func (c *SafeAuditApi) PostBack() { // 1.规则验证 safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 2.获取当前审批流程id id, err := utils.GetDecryptId(safeAuditData.Id) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } // 3.解析登录id uid, err := utils.GetProjectAccountId(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 4.获取安全巡检记录id、回滚的审批流程id safeId, err := utils.GetDecryptId(safeAuditData.SafeId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } // 说明退回到了检查人 if safeAuditData.AuditId == "" { err = c.SafeAuditService.BackAudit(id, safeAuditData.Opinion, uid, safeId, 0) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } } else { auditId, err := utils.GetDecryptId(safeAuditData.AuditId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } err = c.SafeAuditService.BackAudit(id, safeAuditData.Opinion, uid, safeId, auditId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } } // 6. 返回结果 c.Ctx.JSON(iris.Map{ "code": 0, "msg": "请求成功", }) } // @Summary 审批通过 // @Tags 安全巡检-审批 // @Description // @Accept json // @Produce json // @Param id body string true "审批id" // @Param safe_id body string true "巡检id" // @Param audit_id body string false "整改人id" // @Param opinion body string false "审批意见" // @Param rectifiedInfo body string false "整改情况" // @Param rectifiedTime body string false "整改日期" // @Success 200 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Failure 400 {string} string "{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}" // @Router /api/safe_audit/pass [post] func (c *SafeAuditApi) PostPass() { // 1.规则验证 safeAuditData, err := c.SafeAuditService.ValidRule(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 2.获取审批记录id id, err := utils.GetDecryptId(safeAuditData.Id) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "ReadJSON转换异常,请检查参数"}) return } var auditId = 0 if safeAuditData.AuditId != "" { aid, err := utils.GetDecryptId(safeAuditData.AuditId) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": "解析参数,请检查参数"}) return } auditId = aid } // 3.解析登录id uid, err := utils.GetProjectAccountId(c.Ctx) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 4. 执行sql err = c.SafeAuditService.PassAudit(id, uid, auditId, safeAuditData.Opinion, safeAuditData.RectifiedInfo, safeAuditData.RectifiedTime) if err != nil { c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)}) return } // 6. 返回结果 c.Ctx.JSON(iris.Map{ "code": 0, "msg": "请求成功", }) }