|
@@ -9,19 +9,23 @@ package services
|
|
|
import (
|
|
|
"errors"
|
|
|
"log"
|
|
|
+ "time"
|
|
|
|
|
|
"github.com/kataras/iris/v12"
|
|
|
"go.mod/dao"
|
|
|
"go.mod/datasource"
|
|
|
+ "go.mod/models"
|
|
|
"go.mod/web/viewmodels"
|
|
|
)
|
|
|
|
|
|
type SafeAuditService interface {
|
|
|
ValidRule(ctx iris.Context) (viewmodels.SafeAudit, error)
|
|
|
+ ValidStart(ctx iris.Context) (viewmodels.AuditStart, 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
|
|
|
- PassAudit(id int, uid int, auditId int, opinion string) error
|
|
|
+ PassAudit(id int, uid int, auditId int, opinion string, rectifiedInfo string) error
|
|
|
+ StartAudit(safeId int, bidsectionId int, times int, auditors []int, reAuditors []int, uid int) error
|
|
|
}
|
|
|
|
|
|
type safeAuditService struct {
|
|
@@ -61,7 +65,7 @@ func (s *safeAuditService) CloseAudit(id int, opinion string, curUid int, saveId
|
|
|
return errors.New("该用户没有审批权限!")
|
|
|
}
|
|
|
// 更改cm_safe_audit的记录
|
|
|
- err = s.daoSafeAudit.ChangeStatusById(id, opinion, 3)
|
|
|
+ err = s.daoSafeAudit.ChangeStatusById(id, opinion, 3, "")
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -83,7 +87,7 @@ func (s *safeAuditService) BackAudit(id int, opinion string, curUid int, saveId
|
|
|
return errors.New("该用户没有审批权限!")
|
|
|
}
|
|
|
// 更改cm_safe_audit的记录
|
|
|
- err = s.daoSafeAudit.ChangeStatusById(id, opinion, 2)
|
|
|
+ err = s.daoSafeAudit.ChangeStatusById(id, opinion, 2, "")
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -107,7 +111,7 @@ func (s *safeAuditService) BackAudit(id int, opinion string, curUid int, saveId
|
|
|
}
|
|
|
|
|
|
// 审批通过
|
|
|
-func (s *safeAuditService) PassAudit(id int, uid int, auditId int, opinion string) error {
|
|
|
+func (s *safeAuditService) PassAudit(id int, uid int, auditId int, opinion string, rectifiedInfo string) error {
|
|
|
auditor, err := s.daoSafeAudit.FindById(id)
|
|
|
if err != nil {
|
|
|
return err
|
|
@@ -117,7 +121,7 @@ func (s *safeAuditService) PassAudit(id int, uid int, auditId int, opinion strin
|
|
|
}
|
|
|
if auditId != 0 {
|
|
|
// 审批人选择了整改人
|
|
|
- err := s.daoSafeAudit.ChangeStatusById(auditor.Id, "", 1)
|
|
|
+ err := s.daoSafeAudit.ChangeStatusById(auditor.Id, "", 1, rectifiedInfo)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -126,7 +130,7 @@ func (s *safeAuditService) PassAudit(id int, uid int, auditId int, opinion strin
|
|
|
return err
|
|
|
}
|
|
|
} else {
|
|
|
- err := s.daoSafeAudit.ChangeStatusById(auditor.Id, "", 1)
|
|
|
+ err := s.daoSafeAudit.ChangeStatusById(auditor.Id, "", 1, rectifiedInfo)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
@@ -134,6 +138,40 @@ func (s *safeAuditService) PassAudit(id int, uid int, auditId int, opinion strin
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
+func (s *safeAuditService) StartAudit(safeId int, bidsectionId int, times int, auditors []int, reAuditors []int, uid int) error {
|
|
|
+ safe := s.daoSafe.FindById(safeId)
|
|
|
+ if safe.Uid != uid {
|
|
|
+ return errors.New("该用户没有操作权限!")
|
|
|
+ }
|
|
|
+ data := make([]models.CmSafeAudit, 0)
|
|
|
+ for i, item := range auditors {
|
|
|
+ auditVM := models.CmSafeAudit{}
|
|
|
+ auditVM.AuditId = item
|
|
|
+ auditVM.BidsectionId = bidsectionId
|
|
|
+ auditVM.SafeId = safeId
|
|
|
+ auditVM.AuditOrder = i + 1
|
|
|
+ auditVM.CreateTime = time.Now()
|
|
|
+ auditVM.Progress = 0
|
|
|
+ auditVM.Status = 0
|
|
|
+ auditVM.Times = times
|
|
|
+ data = append(data, auditVM)
|
|
|
+ }
|
|
|
+ for i, item := range reAuditors {
|
|
|
+ auditVM := models.CmSafeAudit{}
|
|
|
+ auditVM.AuditId = item
|
|
|
+ auditVM.BidsectionId = bidsectionId
|
|
|
+ auditVM.SafeId = safeId
|
|
|
+ auditVM.AuditOrder = i + 2 + len(auditors)
|
|
|
+ auditVM.CreateTime = time.Now()
|
|
|
+ auditVM.Progress = 2
|
|
|
+ auditVM.Status = 0
|
|
|
+ auditVM.Times = times
|
|
|
+ data = append(data, auditVM)
|
|
|
+ }
|
|
|
+ err := s.daoSafeAudit.InsertData(data)
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
// 规则校验
|
|
|
func (s *safeAuditService) ValidRule(ctx iris.Context) (viewmodels.SafeAudit, error) {
|
|
|
safeAuditVaild := viewmodels.SafeAudit{}
|
|
@@ -160,3 +198,15 @@ func (s *safeAuditService) ValidRule(ctx iris.Context) (viewmodels.SafeAudit, er
|
|
|
}
|
|
|
return safeAuditVaild, nil
|
|
|
}
|
|
|
+
|
|
|
+// 校验审批开始
|
|
|
+func (s *safeAuditService) ValidStart(ctx iris.Context) (viewmodels.AuditStart, error) {
|
|
|
+ startAuditValid := viewmodels.AuditStart{}
|
|
|
+ err := ctx.ReadJSON(&startAuditValid)
|
|
|
+ if err != nil {
|
|
|
+ log.Println("safe-ValidRule-ReadJson转换异常, error=", err)
|
|
|
+ return startAuditValid, err
|
|
|
+ }
|
|
|
+ err = startAuditValid.ValidateStart()
|
|
|
+ return startAuditValid, err
|
|
|
+}
|