|
@@ -151,7 +151,7 @@ func (d *ApproverDao) GetLastAuditor(bid int, dataType int, dataId int) (*models
|
|
|
}
|
|
|
|
|
|
// 初始化审批流程状态
|
|
|
-func (d *ApproverDao) InitStatus(bid int, dataType int, dataId int, auditId int, times int, progress int, opinion string) error {
|
|
|
+func (d *ApproverDao) InitStatus(auditType string, bid int, dataType int, dataId int, auditId int, times int, progress int, opinion string) error {
|
|
|
session := d.engine.NewSession()
|
|
|
defer session.Close()
|
|
|
err := session.Begin()
|
|
@@ -165,23 +165,42 @@ func (d *ApproverDao) InitStatus(bid int, dataType int, dataId int, auditId int,
|
|
|
session.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
- _, err = session.Exec("update cm_safe set status = ?, times = ? where id = ?", 0, times+1, dataId)
|
|
|
- if err != nil {
|
|
|
- session.Rollback()
|
|
|
- return err
|
|
|
- }
|
|
|
- // 增加审批日志
|
|
|
- safeAudit := &models.CmSafeAudit{BidsectionId: bid, SafeId: dataId, Times: times, AuditId: auditId, Status: 1, Progress: 0, CreateTime: time.Now(), Opinion: opinion}
|
|
|
- _, err = session.Insert(safeAudit)
|
|
|
- if err != nil {
|
|
|
- session.Rollback()
|
|
|
- return err
|
|
|
+ if auditType == "safe" {
|
|
|
+ _, err = session.Exec("update cm_safe set status = ?, times = ? where id = ?", 0, times+1, dataId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 增加审批日志
|
|
|
+ safeAudit := &models.CmSafeAudit{BidsectionId: bid, SafeId: dataId, Times: times, AuditId: auditId, Status: 1, Progress: progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
+ _, err = session.Insert(safeAudit)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 说明本身除于整改人流程,退回原报,要将整改总数-1,未整改总数+1
|
|
|
+ if progress-1 != 0 {
|
|
|
+ _, err = session.Exec("update cm_tree set safe_rectification = safe_rectification + 1, safe_rectification_in = if(safe_rectification_in >= 1, safe_rectification_in - 1, 0) where bidsection_id = ?", bid)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ _, err = session.Exec("update cm_quality set status = ?, times = ? where id = ?", 0, times+1, dataId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 增加审批日志
|
|
|
+ qualityAudit := &models.CmQualityAudit{BidsectionId: bid, QualityId: dataId, Times: times, AuditId: auditId, Status: 1, Progress: progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
+ _, err = session.Insert(qualityAudit)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if progress-1 != 0 {
|
|
|
+ _, err = session.Exec("update cm_tree set quality_rectification = quality_rectification + 1, quality_rectification_in = if(quality_rectification_in >= 1, quality_rectification_in - 1, 0) where bidsection_id = ?", bid)
|
|
|
+ }
|
|
|
}
|
|
|
err = session.Commit()
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- return nil
|
|
|
+ return err
|
|
|
}
|
|
|
|
|
|
// 审批通过
|
|
@@ -272,7 +291,7 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
|
|
|
return err
|
|
|
}
|
|
|
// 将cm_tree的safe_rectification_finish待整改+1
|
|
|
- _, err := session.Exec("update cm_tree set safe_rectification_finish = safe_rectification_finish + 1, safe_rectification_finish = if(safe_rectification_finish >= 1, safe_rectification_finish - 1, 0)where bidsection_id = ?", auditor.BidsectionId)
|
|
|
+ _, err := session.Exec("update cm_tree set safe_rectification_finish = safe_rectification_finish + 1, safe_rectification_in = if(safe_rectification_in >= 1, safe_rectification_in - 1, 0)where bidsection_id = ?", auditor.BidsectionId)
|
|
|
if err != nil {
|
|
|
session.Rollback()
|
|
|
return err
|
|
@@ -355,7 +374,7 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
|
|
|
return err
|
|
|
}
|
|
|
// 将cm_tree的quality_rectification_finish待整改+1
|
|
|
- _, err := session.Exec("update cm_tree set quality_rectification_finish = quality_rectification_finish + 1, quality_rectification_finish = if(quality_rectification_finish >= 1, quality_rectification_finish - 1, 0) where bidsection_id = ?", auditor.BidsectionId)
|
|
|
+ _, err := session.Exec("update cm_tree set quality_rectification_finish = quality_rectification_finish + 1, quality_rectification_in = if(quality_rectification_in >= 1, quality_rectification_in - 1, 0) where bidsection_id = ?", auditor.BidsectionId)
|
|
|
if err != nil {
|
|
|
session.Rollback()
|
|
|
return err
|
|
@@ -370,12 +389,10 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
|
|
|
}
|
|
|
|
|
|
// 审批流程-退回
|
|
|
-func (d *ApproverDao) BackHandlerWithId(id int, uid int, times int, progress int, opinion string) error {
|
|
|
+func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times int, progress int, opinion string) error {
|
|
|
session := d.engine.NewSession()
|
|
|
defer session.Close()
|
|
|
- // add Begin() before any action
|
|
|
err := session.Begin()
|
|
|
- // auditor, err := d.FindApproverById(id)
|
|
|
auditor := &models.CmApprover{}
|
|
|
_, err = session.ID(id).Get(auditor)
|
|
|
data := &models.CmApprover{Status: 0}
|
|
@@ -393,17 +410,46 @@ func (d *ApproverDao) BackHandlerWithId(id int, uid int, times int, progress int
|
|
|
return err
|
|
|
}
|
|
|
// 增加审批日志
|
|
|
- safeAudit := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, SafeId: auditor.DataId, Times: times, AuditId: uid, Status: 1, Progress: progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
- _, err = session.Insert(safeAudit)
|
|
|
+ if auditType == "safe" {
|
|
|
+ safeAudit := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, SafeId: auditor.DataId, Times: times, AuditId: uid, Status: 1, Progress: progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
+ _, err = session.Insert(safeAudit)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ qualityAudit := &models.CmQualityAudit{BidsectionId: auditor.BidsectionId, QualityId: auditor.DataId, Times: times, AuditId: uid, Status: 1, Progress: progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
+ _, err = session.Insert(qualityAudit)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ curAuditor := &models.CmApprover{}
|
|
|
+ _, err = session.ID(uid).Get(curAuditor)
|
|
|
if err != nil {
|
|
|
session.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
+ // 当前审批人是整改或者复查流程的并且退回的是审批流程的
|
|
|
+ if curAuditor.Progress >= 1 && auditor.Progress == 0 {
|
|
|
+ var sql string
|
|
|
+ if auditType == "safe" {
|
|
|
+ sql = "update cm_tree set safe_rectification = safe_rectification_in + 1 and safe_rectification_in = if(safe_rectification_in >= 1, safe_rectification_in - 1, 0) where bidseciont_id = ?"
|
|
|
+ } else {
|
|
|
+ sql = "update cm_tree set quality_rectification = quality_rectification_in + 1 and quality_rectification_in = if(quality_rectification_in >= 1, quality_rectification_in - 1, 0) where bidseciont_id = ?"
|
|
|
+ }
|
|
|
+ _, err = session.Exec(sql, auditor.BidsectionId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
err = session.Commit()
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
-func (d *ApproverDao) CloseHandler(id int, opinion string, curUid int, saveId int) error {
|
|
|
+func (d *ApproverDao) CloseHandler(auditType string, id int, opinion string, curUid int, saveId int) error {
|
|
|
session := d.engine.NewSession()
|
|
|
defer session.Close()
|
|
|
// add Begin() before any action
|
|
@@ -412,24 +458,46 @@ func (d *ApproverDao) CloseHandler(id int, opinion string, curUid int, saveId in
|
|
|
if auditor.AuditId != curUid {
|
|
|
return errors.New("该用户没有审批权限!")
|
|
|
}
|
|
|
- safe := &models.CmSafe{}
|
|
|
- _, err = session.ID(saveId).Get(safe)
|
|
|
- if err != nil {
|
|
|
- session.Rollback()
|
|
|
- return err
|
|
|
- }
|
|
|
- // 增加审批日志
|
|
|
- safeAudit := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, SafeId: auditor.DataId, Times: safe.Times, AuditId: auditor.AuditId, Status: 2, Progress: auditor.Progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
- _, err = session.Insert(safeAudit)
|
|
|
- if err != nil {
|
|
|
- session.Rollback()
|
|
|
- return err
|
|
|
- }
|
|
|
- // 更改cm_safe的记录
|
|
|
- _, err = session.Exec("update `cm_safe` set status = ? where id = ? ", 5, saveId)
|
|
|
- if err != nil {
|
|
|
- session.Rollback()
|
|
|
- return err
|
|
|
+ if auditType == "safe" {
|
|
|
+ safe := &models.CmSafe{}
|
|
|
+ _, err = session.ID(saveId).Get(safe)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 增加审批日志
|
|
|
+ safeAudit := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, SafeId: auditor.DataId, Times: safe.Times, AuditId: auditor.AuditId, Status: 2, Progress: auditor.Progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
+ _, err = session.Insert(safeAudit)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 更改cm_safe的记录
|
|
|
+ _, err = session.Exec("update `cm_safe` set status = ? where id = ? ", 5, saveId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ quality := &models.CmQuality{}
|
|
|
+ _, err = session.ID(saveId).Get(quality)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 增加审批日志
|
|
|
+ qualityAudit := &models.CmQualityAudit{BidsectionId: auditor.BidsectionId, QualityId: auditor.DataId, Times: quality.Times, AuditId: auditor.AuditId, Status: 2, Progress: auditor.Progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
+ _, err = session.Insert(qualityAudit)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 更改cm_quality的记录
|
|
|
+ _, err = session.Exec("update `cm_quality` set status = ? where id = ? ", 5, saveId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
}
|
|
|
// 更改cm_approver的记录
|
|
|
_, err = session.Exec("update `cm_approver` set status = ? where id = ? ", 3, id)
|