|
@@ -7,6 +7,7 @@
|
|
package services
|
|
package services
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "errors"
|
|
"log"
|
|
"log"
|
|
|
|
|
|
"github.com/kataras/iris/v12"
|
|
"github.com/kataras/iris/v12"
|
|
@@ -18,16 +19,26 @@ import (
|
|
type SafeAuditService interface {
|
|
type SafeAuditService interface {
|
|
ValidRule(ctx iris.Context) (viewmodels.SafeAudit, error)
|
|
ValidRule(ctx iris.Context) (viewmodels.SafeAudit, error)
|
|
AddAuditor(safeId int, bId int, auditId int, times int) error
|
|
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
|
|
}
|
|
}
|
|
|
|
|
|
type safeAuditService struct {
|
|
type safeAuditService struct {
|
|
|
|
+ validaAdd string
|
|
|
|
+ validaClose string
|
|
|
|
+ validaBack string
|
|
daoSafeAudit *dao.SafeAuditDao
|
|
daoSafeAudit *dao.SafeAuditDao
|
|
|
|
+ daoSafe *dao.SafeDao
|
|
}
|
|
}
|
|
|
|
|
|
//创建项目用户service
|
|
//创建项目用户service
|
|
func NewSafeAuditService() SafeAuditService {
|
|
func NewSafeAuditService() SafeAuditService {
|
|
return &safeAuditService{
|
|
return &safeAuditService{
|
|
|
|
+ validaBack: "/api/safe_audit/back",
|
|
|
|
+ validaAdd: "/api/safe_audit/add",
|
|
|
|
+ validaClose: "/api/safe_audit/close",
|
|
daoSafeAudit: dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
|
|
daoSafeAudit: dao.NewSafeAuditDao(datasource.InstanceDbMaster()),
|
|
|
|
+ daoSafe: dao.NewSafeDao(datasource.InstanceDbMaster()),
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -37,6 +48,61 @@ func (s *safeAuditService) AddAuditor(safeId int, bId int, auditId int, times in
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// 关闭审批流程
|
|
|
|
+func (s *safeAuditService) CloseAudit(id int, opinion string, curUid int, saveId int) error {
|
|
|
|
+ auditor, err := s.daoSafeAudit.FindById(id)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ if auditor.AuditId != curUid {
|
|
|
|
+ return errors.New("该用户没有审批权限!")
|
|
|
|
+ }
|
|
|
|
+ // 更改cm_safe_audit的记录
|
|
|
|
+ err = s.daoSafeAudit.ChangeStatusById(id, opinion, 3)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ // 更改cm_safe的记录
|
|
|
|
+ err = s.daoSafe.ChangeStatus(saveId, 3, auditor.Times)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 审批退回
|
|
|
|
+func (s *safeAuditService) BackAudit(id int, opinion string, curUid int, saveId int, auditId int, progress string) error {
|
|
|
|
+ auditor, err := s.daoSafeAudit.FindById(id)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ if auditor.AuditId != curUid {
|
|
|
|
+ return errors.New("该用户没有审批权限!")
|
|
|
|
+ }
|
|
|
|
+ // 更改cm_safe_audit的记录
|
|
|
|
+ err = s.daoSafeAudit.ChangeStatusById(id, opinion, 2)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ safeData := s.daoSafe.FindById(saveId)
|
|
|
|
+ // 拷贝审批流程
|
|
|
|
+ // 退回检查人-uncheck
|
|
|
|
+ // 整改人审批退回-checking
|
|
|
|
+ // 复查人审批退回-checkNo
|
|
|
|
+ // 审批组退回-checked
|
|
|
|
+ err = s.daoSafeAudit.CopyAuditors(saveId, safeData.Times, progress, auditId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ // 更改cm_safe的记录
|
|
|
|
+ err = s.daoSafe.ChangeStatus(saveId, 2, auditor.Times+1)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
// 规则校验
|
|
// 规则校验
|
|
func (s *safeAuditService) ValidRule(ctx iris.Context) (viewmodels.SafeAudit, error) {
|
|
func (s *safeAuditService) ValidRule(ctx iris.Context) (viewmodels.SafeAudit, error) {
|
|
safeAuditVaild := viewmodels.SafeAudit{}
|
|
safeAuditVaild := viewmodels.SafeAudit{}
|
|
@@ -46,7 +112,16 @@ func (s *safeAuditService) ValidRule(ctx iris.Context) (viewmodels.SafeAudit, er
|
|
log.Println("safe-ValidRule-ReadJson转换异常, error=", err)
|
|
log.Println("safe-ValidRule-ReadJson转换异常, error=", err)
|
|
return safeAuditVaild, err
|
|
return safeAuditVaild, err
|
|
}
|
|
}
|
|
- err = safeAuditVaild.ValidateAddAuditor()
|
|
|
|
|
|
+ if ctx.Path() == s.validaAdd {
|
|
|
|
+ err = safeAuditVaild.ValidateAddAuditor()
|
|
|
|
+ return safeAuditVaild, err
|
|
|
|
+ } else if ctx.Path() == s.validaClose {
|
|
|
|
+ err = safeAuditVaild.ValidateClose()
|
|
|
|
+ return safeAuditVaild, err
|
|
|
|
+ } else if ctx.Path() == s.validaBack {
|
|
|
|
+ err = safeAuditVaild.ValidateBack()
|
|
|
|
+ return safeAuditVaild, err
|
|
|
|
+ }
|
|
return safeAuditVaild, err
|
|
return safeAuditVaild, err
|
|
}
|
|
}
|
|
return safeAuditVaild, nil
|
|
return safeAuditVaild, nil
|