| 
					
				 | 
			
			
				@@ -9,23 +9,21 @@ 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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 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) 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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	StartAudit(safeId int, bidsectionId int, auditors []int, reAuditors []int, uid int, pid int) error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 type safeAuditService struct { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,6 +33,7 @@ type safeAuditService struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	validBack    string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	daoSafeAudit *dao.SafeAuditDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	daoSafe      *dao.SafeDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	daoApprover  *dao.ApproverDao 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //创建项目用户service 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -46,165 +45,110 @@ func NewSafeAuditService() SafeAuditService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		validPass:    "/api/safe_audit/pass", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		daoSafeAudit: dao.NewSafeAuditDao(datasource.InstanceDbMaster()), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		daoSafe:      dao.NewSafeDao(datasource.InstanceDbMaster()), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		daoApprover:  dao.NewApproverDao(datasource.InstanceDbMaster()), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// 增加审批人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (s *safeAuditService) AddAuditor(safeId int, bId int, auditId int, times int) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	err := s.daoSafeAudit.AddAuditor(safeId, bId, auditId, times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	auditor, err := s.daoApprover.FindApproverById(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if auditor.AuditId != curUid { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return errors.New("该用户没有审批权限!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 更改cm_safe_audit的记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	err = s.daoSafeAudit.ChangeStatusById(id, opinion, 4, "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	safe := s.daoSafe.FindById(auditor.DataId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 增加审批日志记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoSafeAudit.AddAuditRecord(auditor.DataId, auditor.BidsectionId, auditor.AuditId, safe.Times, 2, auditor.Progress, "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// 更改cm_safe的记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	err = s.daoSafe.ChangeStatus(saveId, 5, auditor.Times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoSafe.ChangeStatus(saveId, 5) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 更改cm_approver的记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoApprover.ChangeStatus(id, 3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 审批退回 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (s *safeAuditService) BackAudit(id int, opinion string, curUid int, saveId int, auditId int) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	auditor, err := s.daoSafeAudit.FindById(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	auditor, err := s.daoApprover.FindApproverById(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if auditor.AuditId != curUid { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return errors.New("该用户没有审批权限!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 更改cm_safe_audit的记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	err = s.daoSafeAudit.ChangeStatusById(id, opinion, 3, "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	safe := s.daoSafe.FindById(saveId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 增加审批日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoSafeAudit.AddAuditRecord(auditor.DataId, auditor.BidsectionId, auditor.AuditId, safe.Times, 1, auditor.Progress, "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 退回到了检查人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if auditId == 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 初始化审批流程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = s.daoApprover.InitStatus(auditor.BidsectionId, auditor.DataType, auditor.DataId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 退回到审批流程中的某一个人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = s.daoApprover.BackHandlerWithId(auditId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	safeData := s.daoSafe.FindById(saveId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	err = s.daoSafeAudit.CopyAuditors(saveId, safeData.Times, auditId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 更改cm_safe的记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// if progress == "uncheck" { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 	err = s.daoSafe.ChangeStatus(saveId, 0, auditor.Times+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// } else if progress == "checked" { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 	err = s.daoSafe.ChangeStatus(saveId, 1, auditor.Times+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// } else if progress == "checking" { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 	err = s.daoSafe.ChangeStatus(saveId, 2, auditor.Times+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 	err = s.daoSafe.ChangeStatus(saveId, 3, auditor.Times+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 审批通过 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func (s *safeAuditService) PassAudit(id int, uid int, auditId int, opinion string, rectifiedInfo string) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	auditor, err := s.daoSafeAudit.FindById(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	auditor, err := s.daoApprover.FindApproverById(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 获取安全巡检记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	safe := s.daoSafe.FindById(auditor.DataId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if auditor.AuditId != uid { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return errors.New("该用户没有审批权限!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 增加审批日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoSafeAudit.AddAuditRecord(auditor.DataId, auditor.BidsectionId, auditor.AuditId, safe.Times, 0, auditor.Progress, rectifiedInfo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 改变审批流程中当前审批人以及下一个审批人的审批流程状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoApprover.ChangeStatus(id, 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoApprover.ChangeNextStatus(id, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 审批人选择了整改人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if auditId != 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// 审批人选择了整改人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// 改变当前审批记录的状态为已通过 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		err := s.daoSafeAudit.ChangeStatusById(auditor.Id, opinion, 2, rectifiedInfo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 修改cm_safe表的status状态为待整改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		err = s.daoSafe.ChangeStatus(auditor.SafeId, 2, auditor.Times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// 增加整改人的审批记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		err = s.daoSafeAudit.AddCheckWorker(id, auditId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = s.daoSafe.ChangeStatus(auditor.DataId, 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 改变审批流程中的整改人id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		err = s.daoApprover.ChangeAuditId(auditor.BidsectionId, auditor.DataType, auditor.DataId, auditor.AuditOrder+1, auditId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		// 改变当前记录的状态为已通过 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		err := s.daoSafeAudit.ChangeStatusById(auditor.Id, opinion, 2, rectifiedInfo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if auditor.Progress == 1 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 整改人审批流程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 修改cm_safe表的status状态为待复查 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			err = s.daoSafe.ChangeStatus(auditor.SafeId, 3, auditor.Times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			err = s.daoSafe.ChangeStatus(auditor.DataId, 3) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 复查流程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// 查找最后一个审批人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			lastAuditor, err := s.daoSafeAudit.GetLastAuditor(auditor.Times, auditor.SafeId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			lastAuditor, err := s.daoApprover.GetLastAuditor(auditor.BidsectionId, auditor.DataType, auditor.DataId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if lastAuditor.Id == auditor.Id { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if lastAuditor.AuditId == auditor.Id { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// 说明审批流程已经走完 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				err = s.daoSafe.ChangeStatus(auditor.SafeId, 4, auditor.Times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				err = s.daoSafe.ChangeStatus(auditor.DataId, 4) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 改变下一条记录为待审核 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	err = s.daoSafeAudit.ChangeNextRecord(auditor.Times, auditor.AuditOrder+1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-func (s *safeAuditService) StartAudit(safeId int, bidsectionId int, times int, auditors []int, reAuditors []int, uid int) error { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+func (s *safeAuditService) StartAudit(safeId int, bidsectionId int, auditors []int, reAuditors []int, uid int, pid 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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if i == 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			auditVM.Status = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			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) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	err = s.daoSafe.ChangeStatus(safeId, 1, times) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	return nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 清除可能有的旧的审批流程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err := s.daoApprover.DeleteOldAuditors(bidsectionId, 1, safeId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 增加审批日志 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoSafeAudit.AddAuditRecord(safeId, bidsectionId, uid, safe.Times, 0, 0, "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 改变安全巡检表的状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoSafe.ChangeStatus(safeId, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	// 创建审批流程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	err = s.daoApprover.InsertData(safe.Times, bidsectionId, pid, 1, safeId, auditors, reAuditors) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	return err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 规则校验 
			 |