Browse Source

Merge branch 'master' of http://192.168.1.41:3000/caipin/construction_management

caipin 4 năm trước cách đây
mục cha
commit
7bd98aae93

+ 15 - 0
dao/safe_audit_dao.go

@@ -151,3 +151,18 @@ func (d *SafeAuditDao) CopyAuditors(safeId int, times int, auditType string, uid
 	_, err = d.engine.Insert(&newAuditors)
 	return err
 }
+
+// 增加整改人
+func (d *SafeAuditDao) AddCheckWorker(id int, auditId int, opinion string) error {
+	auditor, err := d.FindById(id)
+	if err != nil {
+		return err
+	}
+
+	data := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, AuditOrder: auditor.AuditOrder + 1, Times: auditor.Times, AuditId: auditId, Status: 0, Progress: 1, CreateTime: time.Now(), Opinion: opinion}
+	_, err = d.engine.Insert(data)
+	if err != nil {
+		return err
+	}
+	return nil
+}

+ 43 - 9
services/safe_audit.service.go

@@ -21,12 +21,14 @@ type SafeAuditService interface {
 	AddAuditor(safeId int, bId int, auditId int, times int) error
 	CloseAudit(id int, opinion string, curUid int, saveId int) error
 	BackAudit(id int, opinion string, curUid int, saveId int, auditId int, progress string) error
+	PassAudit(id int, uid int, auditId int, opinion string) error
 }
 
 type safeAuditService struct {
-	validaAdd    string
-	validaClose  string
-	validaBack   string
+	validAdd     string
+	validPass    string
+	validClose   string
+	validBack    string
 	daoSafeAudit *dao.SafeAuditDao
 	daoSafe      *dao.SafeDao
 }
@@ -34,9 +36,10 @@ type safeAuditService struct {
 //创建项目用户service
 func NewSafeAuditService() SafeAuditService {
 	return &safeAuditService{
-		validaBack:   "/api/safe_audit/back",
-		validaAdd:    "/api/safe_audit/add",
-		validaClose:  "/api/safe_audit/close",
+		validBack:    "/api/safe_audit/back",
+		validAdd:     "/api/safe_audit/add",
+		validClose:   "/api/safe_audit/close",
+		validPass:    "/api/safe_audit/pass",
 		daoSafeAudit: dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
 		daoSafe:      dao.NewSafeDao(datasource.InstanceDbMaster()),
 	}
@@ -103,6 +106,34 @@ func (s *safeAuditService) BackAudit(id int, opinion string, curUid int, saveId
 	return nil
 }
 
+// 审批通过
+func (s *safeAuditService) PassAudit(id int, uid int, auditId int, opinion string) error {
+	auditor, err := s.daoSafeAudit.FindById(id)
+	if err != nil {
+		return err
+	}
+	if auditor.AuditId != uid {
+		return errors.New("该用户没有审批权限!")
+	}
+	if auditId != 0 {
+		// 审批人选择了整改人
+		err := s.daoSafeAudit.ChangeStatusById(auditor.Id, "", 1)
+		if err != nil {
+			return err
+		}
+		err = s.daoSafeAudit.AddCheckWorker(id, auditId, opinion)
+		if err != nil {
+			return err
+		}
+	} else {
+		err := s.daoSafeAudit.ChangeStatusById(auditor.Id, "", 1)
+		if err != nil {
+			return err
+		}
+	}
+	return nil
+}
+
 // 规则校验
 func (s *safeAuditService) ValidRule(ctx iris.Context) (viewmodels.SafeAudit, error) {
 	safeAuditVaild := viewmodels.SafeAudit{}
@@ -112,15 +143,18 @@ func (s *safeAuditService) ValidRule(ctx iris.Context) (viewmodels.SafeAudit, er
 			log.Println("safe-ValidRule-ReadJson转换异常, error=", err)
 			return safeAuditVaild, err
 		}
-		if ctx.Path() == s.validaAdd {
+		if ctx.Path() == s.validAdd {
 			err = safeAuditVaild.ValidateAddAuditor()
 			return safeAuditVaild, err
-		} else if ctx.Path() == s.validaClose {
+		} else if ctx.Path() == s.validClose {
 			err = safeAuditVaild.ValidateClose()
 			return safeAuditVaild, err
-		} else if ctx.Path() == s.validaBack {
+		} else if ctx.Path() == s.validBack {
 			err = safeAuditVaild.ValidateBack()
 			return safeAuditVaild, err
+		} else if ctx.Path() == s.validPass {
+			err = safeAuditVaild.ValidatePass()
+			return safeAuditVaild, err
 		}
 		return safeAuditVaild, err
 	}

+ 53 - 0
web/api/safe_audit_api.go

@@ -173,3 +173,56 @@ func (c *SafeAuditApi) PostBack() {
 		"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		"审批意见"
+// @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)
+	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":  "请求成功",
+	})
+}

+ 6 - 0
web/viewmodels/safe_audit.go

@@ -59,3 +59,9 @@ func (l SafeAudit) ValidateBack() error {
 		validation.Field(&l.AuditId, validation.Required.Error("回滚用户不能为空")),
 	)
 }
+func (l SafeAudit) ValidatePass() error {
+	return validation.ValidateStruct(&l,
+		validation.Field(&l.Id, validation.Required.Error("记录id不能为空")),
+		validation.Field(&l.SafeId, validation.Required.Error("巡检id不能为空")),
+	)
+}