|
@@ -165,13 +165,13 @@ func (d *ApproverDao) InitStatus(bid int, dataType int, dataId int, auditId int,
|
|
|
session.Rollback()
|
|
|
return err
|
|
|
}
|
|
|
- _, err = session.Exec("update cm_safe set status = ? where id = ?", 0, dataId)
|
|
|
+ _, 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}
|
|
|
+ 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()
|
|
@@ -184,13 +184,100 @@ func (d *ApproverDao) InitStatus(bid int, dataType int, dataId int, auditId int,
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-// 审批流程-退回
|
|
|
-func (d *ApproverDao) BackHandlerWithId(id int, cur_audit int, times int, progress int, opinion string) error {
|
|
|
+// 审批通过
|
|
|
+func (d *ApproverDao) PassHandler(id int, uid int, auditId int, opinion string, rectifiedInfo string) error {
|
|
|
session := d.engine.NewSession()
|
|
|
defer session.Close()
|
|
|
// add Begin() before any action
|
|
|
err := session.Begin()
|
|
|
auditor, err := d.FindApproverById(id)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if auditor.AuditId != uid {
|
|
|
+ return errors.New("该用户没有审批权限!")
|
|
|
+ }
|
|
|
+ safe := &models.CmSafe{}
|
|
|
+ _, err = session.ID(auditor.DataId).Get(safe)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 增加审批日志
|
|
|
+ auditReacord := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, SafeId: auditor.DataId, AuditId: auditor.AuditId, Times: safe.Times, CreateTime: time.Now(), Status: 0, Progress: auditor.Progress + 1, Opinion: opinion, Rectifiedinfo: rectifiedInfo}
|
|
|
+ _, err = session.Insert(auditReacord)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 改变审批流程中当前审批人以及下一个审批人的审批流程状态
|
|
|
+ curData := &models.CmApprover{Status: 2}
|
|
|
+ _, err = session.ID(id).Cols("status").Update(curData)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ nextData := &models.CmApprover{Status: 1}
|
|
|
+ _, err = session.Where("bidsection_id = ? and data_type = ? and data_id = ? and audit_order = ?", auditor.BidsectionId, auditor.DataType, auditor.DataId, auditor.AuditOrder+1).Cols("status").Update(nextData)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if auditId != 0 {
|
|
|
+ // 审批人选择了整改人
|
|
|
+ // 修改cm_safe表的status状态为待整改
|
|
|
+ _, err = session.Exec("update `cm_safe` set status = ? where id = ?", 2, auditor.DataId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // 改变审批流程中的整改人id
|
|
|
+ _, err = session.Exec("update `cm_approver` set `audit_id` = ? where `bidsection_id` = ? and `data_type` = ? and `data_id` = ? and `audit_order` = ?", auditId, auditor.BidsectionId, auditor.DataType, auditor.DataId, auditor.AuditOrder+1)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if auditor.Progress == 1 {
|
|
|
+ // 整改人审批流程
|
|
|
+ // 修改cm_safe表的status状态为待复查
|
|
|
+ _, err = session.Exec("update `cm_safe` set status = ? where id = ?", 3, auditor.DataId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 复查流程
|
|
|
+ // 查找最后一个审批人
|
|
|
+ lastAuditor := &models.CmApprover{BidsectionId: auditor.BidsectionId, DataType: auditor.DataType, DataId: auditor.DataId}
|
|
|
+ _, err = session.Desc("audit_order").Limit(1).Get(lastAuditor)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ if lastAuditor.AuditId == auditor.AuditId {
|
|
|
+ // 说明审批流程已经走完
|
|
|
+ _, err = session.Exec("update `cm_safe` set status = ? where id = ?", 4, auditor.DataId)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ err = session.Commit()
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
+// 审批流程-退回
|
|
|
+func (d *ApproverDao) BackHandlerWithId(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}
|
|
|
// 将往后的所有记录的status改为0
|
|
|
_, err = session.Where("bidsection_id = ? and data_type = ? and data_id = ? and audit_order > ?", auditor.BidsectionId, auditor.DataType, auditor.DataId, auditor.AuditOrder).Cols("status").Update(data)
|
|
@@ -206,12 +293,50 @@ func (d *ApproverDao) BackHandlerWithId(id int, cur_audit int, times int, progre
|
|
|
return err
|
|
|
}
|
|
|
// 增加审批日志
|
|
|
- safeAudit := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, SafeId: auditor.DataId, Times: times, AuditId: cur_audit, Status: 1, Progress: progress, CreateTime: time.Now(), Opinion: opinion}
|
|
|
+ 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
|
|
|
}
|
|
|
+ err = session.Commit()
|
|
|
+ return err
|
|
|
+}
|
|
|
+
|
|
|
+func (d *ApproverDao) CloseHandler(id int, opinion string, curUid int, saveId int) error {
|
|
|
+ session := d.engine.NewSession()
|
|
|
+ defer session.Close()
|
|
|
+ // add Begin() before any action
|
|
|
+ err := session.Begin()
|
|
|
+ auditor, err := d.FindApproverById(id)
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ // 更改cm_approver的记录
|
|
|
+ _, err = session.Exec("update `cm_approver` set status = ? where id = ? ", 3, id)
|
|
|
+ if err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
return err
|
|
|
}
|
|
|
|