lanjianrong 4 anni fa
parent
commit
a5a7e1bbf2

+ 254 - 90
dao/approver_dao.go

@@ -36,7 +36,32 @@ func NewApproverDao(engine *xorm.Engine) *ApproverDao {
 func (d *ApproverDao) InsertData(cur_uid int, bid int, pid int, dataType int, dataId int, auditors []int, reAuditors []int) error {
 func (d *ApproverDao) InsertData(cur_uid int, bid int, pid int, dataType int, dataId int, auditors []int, reAuditors []int) error {
 	data := make([]models.CmApprover, 0)
 	data := make([]models.CmApprover, 0)
 	msg := make([]models.CmProjectMessage, 0)
 	msg := make([]models.CmProjectMessage, 0)
-
+	var content string
+	var title string
+	if dataType == 1 {
+		safe := &models.CmSafe{Id: dataId}
+		_, err := d.engine.Get(safe)
+		if err != nil {
+			return err
+		}
+		account := &models.CmProjectAccount{Id: safe.Uid}
+		_, err = d.engine.Get(account)
+		title = fmt.Sprintf("%s - %s", account.Name, account.Position)
+		content = fmt.Sprintf("%s-%s-已上报,审批中", safe.Code, safe.InspectionDetail)
+	} else {
+		quality := &models.CmQuality{Id: dataId}
+		_, err := d.engine.Get(quality)
+		if err != nil {
+			return err
+		}
+		account := &models.CmProjectAccount{Id: quality.Uid}
+		_, err = d.engine.Get(account)
+		if err != nil {
+			return err
+		}
+		title = fmt.Sprintf("%s - %s", account.Name, account.Position)
+		content = fmt.Sprintf("%s-%s-已上报,审批中", quality.Code, quality.InspectionDetail)
+	}
 	_, err := d.engine.Exec("delete from project_message where data_type = ? and data_id = ?", dataType, dataId)
 	_, err := d.engine.Exec("delete from project_message where data_type = ? and data_id = ?", dataType, dataId)
 	for i, item := range auditors {
 	for i, item := range auditors {
 		approverVM := models.CmApprover{}
 		approverVM := models.CmApprover{}
@@ -60,7 +85,8 @@ func (d *ApproverDao) InsertData(cur_uid int, bid int, pid int, dataType int, da
 		msgVM.ProjectId = pid
 		msgVM.ProjectId = pid
 		msgVM.DataId = dataId
 		msgVM.DataId = dataId
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = "已上报,审批中"
+		msgVM.Content = content
+		msgVM.Title = title
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 	}
 	}
@@ -90,7 +116,8 @@ func (d *ApproverDao) InsertData(cur_uid int, bid int, pid int, dataType int, da
 		msgVM.ProjectId = pid
 		msgVM.ProjectId = pid
 		msgVM.DataId = dataId
 		msgVM.DataId = dataId
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = "已上报,审批中"
+		msgVM.Content = content
+		msgVM.Title = title
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 	}
 	}
@@ -101,7 +128,8 @@ func (d *ApproverDao) InsertData(cur_uid int, bid int, pid int, dataType int, da
 	msgVM.ProjectId = pid
 	msgVM.ProjectId = pid
 	msgVM.DataId = dataId
 	msgVM.DataId = dataId
 	msgVM.DataType = 1
 	msgVM.DataType = 1
-	msgVM.Content = "已上报,审批中"
+	msgVM.Content = content
+	msgVM.Title = title
 	msgVM.CreateTime = time.Now()
 	msgVM.CreateTime = time.Now()
 	msg = append(msg, msgVM)
 	msg = append(msg, msgVM)
 	_, err = d.engine.Insert(data)
 	_, err = d.engine.Insert(data)
@@ -208,18 +236,6 @@ func (d *ApproverDao) InitStatus(auditType string, bid int, dataType int, dataId
 		session.Rollback()
 		session.Rollback()
 		return err
 		return err
 	}
 	}
-	msg := make([]models.CmProjectMessage, 0)
-	for _, item := range approvers {
-		msgVM := models.CmProjectMessage{}
-		msgVM.AccountId = item.AuditId
-		msgVM.BidsectionId = item.BidsectionId
-		msgVM.ProjectId = item.ProjectId
-		msgVM.CreateTime = time.Now()
-		msgVM.DataId = item.DataId
-		msgVM.DataType = item.DataType
-		msgVM.Content = "审批退回到上报人"
-		msg = append(msg, msgVM)
-	}
 
 
 	data := &models.CmApprover{Status: 0}
 	data := &models.CmApprover{Status: 0}
 	_, err = session.Where("bidsection_id = ? and data_type = ? and data_id = ?", bid, dataType, dataId).Cols("status").Update(data)
 	_, err = session.Where("bidsection_id = ? and data_type = ? and data_id = ?", bid, dataType, dataId).Cols("status").Update(data)
@@ -235,6 +251,24 @@ func (d *ApproverDao) InitStatus(auditType string, bid int, dataType int, dataId
 			return err
 			return err
 		}
 		}
 
 
+		account := &models.CmProjectAccount{Id: safe.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-审批退回到上报人", safe.Code, safe.InspectionDetail)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = safe.Uid
 		msgVM.AccountId = safe.Uid
@@ -243,9 +277,16 @@ func (d *ApproverDao) InitStatus(auditType string, bid int, dataType int, dataId
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = safe.Id
 		msgVM.DataId = safe.Id
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = "审批退回到上报人"
+		msgVM.Content = fmt.Sprintf("%s-%s-审批退回到上报人", safe.Code, safe.InspectionDetail)
+		msgVM.Title = title
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 
 
+		// 插入消息
+		_, err = session.Insert(msg)
+		if err != nil {
+			session.Rollback()
+			return err
+		}
 		_, err = session.Exec("update cm_safe set status = ?, times = ? where id = ?", 0, times+1, dataId)
 		_, err = session.Exec("update cm_safe set status = ?, times = ? where id = ?", 0, times+1, dataId)
 		if err != nil {
 		if err != nil {
 			session.Rollback()
 			session.Rollback()
@@ -270,6 +311,24 @@ func (d *ApproverDao) InitStatus(auditType string, bid int, dataType int, dataId
 			return err
 			return err
 		}
 		}
 
 
+		account := &models.CmProjectAccount{Id: quality.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-审批退回到上报人", quality.Code, quality.InspectionDetail)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = quality.Uid
 		msgVM.AccountId = quality.Uid
@@ -278,9 +337,16 @@ func (d *ApproverDao) InitStatus(auditType string, bid int, dataType int, dataId
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = quality.Id
 		msgVM.DataId = quality.Id
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = "审批退回到上报人"
+		msgVM.Content = fmt.Sprintf("%s-%s-审批退回到上报人", quality.Code, quality.InspectionDetail)
+		msgVM.Title = title
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 
 
+		// 插入消息
+		_, err = session.Insert(msg)
+		if err != nil {
+			session.Rollback()
+			return err
+		}
 		_, err = session.Exec("update cm_quality set status = ?, times = ? where id = ?", 0, times+1, dataId)
 		_, err = session.Exec("update cm_quality set status = ?, times = ? where id = ?", 0, times+1, dataId)
 		if err != nil {
 		if err != nil {
 			session.Rollback()
 			session.Rollback()
@@ -297,12 +363,6 @@ func (d *ApproverDao) InitStatus(auditType string, bid int, dataType int, dataId
 			_, 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.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.Insert(msg)
-	if err != nil {
-		session.Rollback()
-		return err
-	}
 
 
 	err = session.Commit()
 	err = session.Commit()
 	return err
 	return err
@@ -343,18 +403,6 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
 		session.Rollback()
 		session.Rollback()
 		return err
 		return err
 	}
 	}
-	msg := make([]models.CmProjectMessage, 0)
-	for _, item := range approvers {
-		msgVM := models.CmProjectMessage{}
-		msgVM.AccountId = item.AuditId
-		msgVM.BidsectionId = item.BidsectionId
-		msgVM.ProjectId = item.ProjectId
-		msgVM.CreateTime = time.Now()
-		msgVM.DataId = item.DataId
-		msgVM.DataType = item.DataType
-		msgVM.Content = msgContent
-		msg = append(msg, msgVM)
-	}
 
 
 	// 安全巡检
 	// 安全巡检
 	if auditType == "safe" {
 	if auditType == "safe" {
@@ -365,6 +413,24 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
 			return err
 			return err
 		}
 		}
 
 
+		account := &models.CmProjectAccount{Id: safe.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-%s", msgContent, safe.Code, safe.InspectionDetail)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = safe.Uid
 		msgVM.AccountId = safe.Uid
@@ -373,8 +439,16 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = safe.Id
 		msgVM.DataId = safe.Id
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = msgContent
+		msgVM.Content = fmt.Sprintf("%s-%s-%s", msgContent, safe.Code, safe.InspectionDetail)
+		msgVM.Title = title
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
+
+		// 插入消息
+		_, err = session.Insert(msg)
+		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}
 		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)
 		_, err = session.Insert(auditReacord)
@@ -459,6 +533,24 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
 			return err
 			return err
 		}
 		}
 
 
+		account := &models.CmProjectAccount{Id: quality.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-%s", msgContent, quality.Code, quality.InspectionDetail)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = quality.Uid
 		msgVM.AccountId = quality.Uid
@@ -467,9 +559,17 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = quality.Id
 		msgVM.DataId = quality.Id
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = msgContent
+		msgVM.Content = fmt.Sprintf("%s-%s-%s", msgContent, quality.Code, quality.InspectionDetail)
+		msgVM.Title = title
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 
 
+		// 插入消息
+		_, err = session.Insert(msg)
+		if err != nil {
+			session.Rollback()
+			return err
+		}
+
 		// 增加审批日志
 		// 增加审批日志
 		auditReacord := &models.CmQualityAudit{BidsectionId: auditor.BidsectionId, QualityId: auditor.DataId, AuditId: auditor.AuditId, Times: quality.Times, CreateTime: time.Now(), Status: 0, Progress: auditor.Progress + 1, Opinion: opinion, Rectifiedinfo: rectifiedInfo}
 		auditReacord := &models.CmQualityAudit{BidsectionId: auditor.BidsectionId, QualityId: auditor.DataId, AuditId: auditor.AuditId, Times: quality.Times, CreateTime: time.Now(), Status: 0, Progress: auditor.Progress + 1, Opinion: opinion, Rectifiedinfo: rectifiedInfo}
 		_, err = session.Insert(auditReacord)
 		_, err = session.Insert(auditReacord)
@@ -547,12 +647,6 @@ func (d *ApproverDao) PassHandler(auditType string, id int, uid int, auditId int
 		}
 		}
 	}
 	}
 
 
-	// 插入消息
-	_, err = session.Insert(msg)
-	if err != nil {
-		session.Rollback()
-		return err
-	}
 	err = session.Commit()
 	err = session.Commit()
 	return err
 	return err
 }
 }
@@ -562,6 +656,7 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 	session := d.engine.NewSession()
 	session := d.engine.NewSession()
 	defer session.Close()
 	defer session.Close()
 	err := session.Begin()
 	err := session.Begin()
+
 	auditor := &models.CmApprover{}
 	auditor := &models.CmApprover{}
 	_, err = session.ID(id).Get(auditor)
 	_, err = session.ID(id).Get(auditor)
 	data := &models.CmApprover{Status: 0}
 	data := &models.CmApprover{Status: 0}
@@ -571,6 +666,13 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 		session.Rollback()
 		session.Rollback()
 		return err
 		return err
 	}
 	}
+	// 获取改账号的信息
+	account := &models.CmProjectAccount{Id: auditor.AuditId}
+	_, err = session.Get(account)
+	if err != nil {
+		session.Rollback()
+		return err
+	}
 	// 将当前的记录改为1-待审批
 	// 将当前的记录改为1-待审批
 	data.Status = 1
 	data.Status = 1
 	_, err = session.ID(id).Cols("status").Update(data)
 	_, err = session.ID(id).Cols("status").Update(data)
@@ -591,24 +693,6 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 		session.Rollback()
 		session.Rollback()
 		return err
 		return err
 	}
 	}
-	msg := make([]models.CmProjectMessage, 0)
-	account := &models.CmProjectAccount{Id: auditor.AuditId}
-	_, err = session.Get(account)
-	if err != nil {
-		session.Rollback()
-		return err
-	}
-	for _, item := range approvers {
-		msgVM := models.CmProjectMessage{}
-		msgVM.AccountId = item.AuditId
-		msgVM.BidsectionId = item.BidsectionId
-		msgVM.ProjectId = item.ProjectId
-		msgVM.CreateTime = time.Now()
-		msgVM.DataId = item.DataId
-		msgVM.DataType = item.DataType
-		msgVM.Content = "审批退回,退回至" + account.Name
-		msg = append(msg, msgVM)
-	}
 
 
 	// 增加审批日志
 	// 增加审批日志
 	if auditType == "safe" {
 	if auditType == "safe" {
@@ -619,6 +703,25 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 			return err
 			return err
 		}
 		}
 
 
+		account := &models.CmProjectAccount{Id: safe.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-审批退回,退回至%s", safe.Code, safe.InspectionDetail, account.Name)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = safe.Uid
 		msgVM.AccountId = safe.Uid
@@ -627,9 +730,16 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = safe.Id
 		msgVM.DataId = safe.Id
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = "审批退回,退回至" + account.Name
+		msgVM.Content = fmt.Sprintf("%s-%s-审批退回,退回至%s", safe.Code, safe.InspectionDetail, account.Name)
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 
 
+		// 插入消息
+		_, err = session.Insert(msg)
+		if err != nil {
+			session.Rollback()
+			return err
+		}
+
 		safeAudit := &models.CmSafeAudit{BidsectionId: auditor.BidsectionId, SafeId: auditor.DataId, Times: times, AuditId: uid, 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)
 		_, err = session.Insert(safeAudit)
 		if err != nil {
 		if err != nil {
@@ -643,6 +753,25 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 			session.Rollback()
 			session.Rollback()
 			return err
 			return err
 		}
 		}
+
+		account := &models.CmProjectAccount{Id: quality.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-审批退回,退回至%s", quality.Code, quality.InspectionDetail, account.Name)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = quality.Uid
 		msgVM.AccountId = quality.Uid
@@ -651,9 +780,16 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = quality.Id
 		msgVM.DataId = quality.Id
 		msgVM.DataType = 2
 		msgVM.DataType = 2
-		msgVM.Content = "审批退回,退回至" + account.Name
+		msgVM.Content = fmt.Sprintf("%s-%s-审批退回,退回至%s", quality.Code, quality.InspectionDetail, account.Name)
+		msgVM.Title = title
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 
 
+		// 插入消息
+		_, err = session.Insert(msg)
+		if err != nil {
+			session.Rollback()
+			return err
+		}
 		qualityAudit := &models.CmQualityAudit{BidsectionId: auditor.BidsectionId, QualityId: auditor.DataId, Times: times, AuditId: uid, Status: 1, Progress: progress, CreateTime: time.Now(), Opinion: opinion}
 		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)
 		_, err = session.Insert(qualityAudit)
 		if err != nil {
 		if err != nil {
@@ -681,12 +817,7 @@ func (d *ApproverDao) BackHandlerWithId(auditType string, id int, uid int, times
 			return err
 			return err
 		}
 		}
 	}
 	}
-	// 插入消息
-	_, err = session.Insert(msg)
-	if err != nil {
-		session.Rollback()
-		return err
-	}
+
 	err = session.Commit()
 	err = session.Commit()
 	return err
 	return err
 }
 }
@@ -713,18 +844,6 @@ func (d *ApproverDao) CloseHandler(auditType string, id int, opinion string, cur
 		session.Rollback()
 		session.Rollback()
 		return err
 		return err
 	}
 	}
-	msg := make([]models.CmProjectMessage, 0)
-	for _, item := range approvers {
-		msgVM := models.CmProjectMessage{}
-		msgVM.AccountId = item.AuditId
-		msgVM.BidsectionId = item.BidsectionId
-		msgVM.ProjectId = item.ProjectId
-		msgVM.CreateTime = time.Now()
-		msgVM.DataId = item.DataId
-		msgVM.DataType = item.DataType
-		msgVM.Content = "已关闭,停止审批流程"
-		msg = append(msg, msgVM)
-	}
 
 
 	if auditType == "safe" {
 	if auditType == "safe" {
 		safe := &models.CmSafe{}
 		safe := &models.CmSafe{}
@@ -734,6 +853,24 @@ func (d *ApproverDao) CloseHandler(auditType string, id int, opinion string, cur
 			return err
 			return err
 		}
 		}
 
 
+		account := &models.CmProjectAccount{Id: safe.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-已关闭,停止审批流程", safe.Code, safe.InspectionDetail)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = safe.Uid
 		msgVM.AccountId = safe.Uid
@@ -742,9 +879,17 @@ func (d *ApproverDao) CloseHandler(auditType string, id int, opinion string, cur
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = safe.Id
 		msgVM.DataId = safe.Id
 		msgVM.DataType = 1
 		msgVM.DataType = 1
-		msgVM.Content = "已关闭,停止审批流程"
+		msgVM.Content = fmt.Sprintf("%s-%s-已关闭,停止审批流程", safe.Code, safe.InspectionDetail)
+		msgVM.Title = title
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 
 
+		// 插入消息
+		_, err = session.Insert(msg)
+		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}
 		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)
 		_, err = session.Insert(safeAudit)
@@ -766,6 +911,24 @@ func (d *ApproverDao) CloseHandler(auditType string, id int, opinion string, cur
 			return err
 			return err
 		}
 		}
 
 
+		account := &models.CmProjectAccount{Id: quality.Uid}
+		_, err = d.engine.Get(account)
+		title := fmt.Sprintf("%s - %s", account.Name, account.Position)
+
+		msg := make([]models.CmProjectMessage, 0)
+		for _, item := range approvers {
+			msgVM := models.CmProjectMessage{}
+			msgVM.AccountId = item.AuditId
+			msgVM.BidsectionId = item.BidsectionId
+			msgVM.ProjectId = item.ProjectId
+			msgVM.CreateTime = time.Now()
+			msgVM.DataId = item.DataId
+			msgVM.DataType = item.DataType
+			msgVM.Content = fmt.Sprintf("%s-%s-已关闭,停止审批流程", quality.Code, quality.InspectionDetail)
+			msgVM.Title = title
+			msg = append(msg, msgVM)
+		}
+
 		// 添加巡检拥有者的推送
 		// 添加巡检拥有者的推送
 		msgVM := models.CmProjectMessage{}
 		msgVM := models.CmProjectMessage{}
 		msgVM.AccountId = quality.Uid
 		msgVM.AccountId = quality.Uid
@@ -774,9 +937,16 @@ func (d *ApproverDao) CloseHandler(auditType string, id int, opinion string, cur
 		msgVM.CreateTime = time.Now()
 		msgVM.CreateTime = time.Now()
 		msgVM.DataId = quality.Id
 		msgVM.DataId = quality.Id
 		msgVM.DataType = 2
 		msgVM.DataType = 2
-		msgVM.Content = "已关闭,停止审批流程"
+		msgVM.Content = fmt.Sprintf("%s-%s-已关闭,停止审批流程", quality.Code, quality.InspectionDetail)
+		msgVM.Title = title
 		msg = append(msg, msgVM)
 		msg = append(msg, msgVM)
 
 
+		// 插入消息
+		_, err = session.Insert(msg)
+		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}
 		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)
 		_, err = session.Insert(qualityAudit)
@@ -798,12 +968,6 @@ func (d *ApproverDao) CloseHandler(auditType string, id int, opinion string, cur
 		return err
 		return err
 	}
 	}
 
 
-	// 插入消息
-	_, err = session.Insert(msg)
-	if err != nil {
-		session.Rollback()
-		return err
-	}
 	err = session.Commit()
 	err = session.Commit()
 	return err
 	return err
 }
 }

+ 12 - 1
dao/permission_account_dao.go

@@ -71,9 +71,20 @@ func (d *PermissionAccountDao) Update(data *models.CmPermissionAccount, columns
 }
 }
 
 
 // 获得当前账号下的标段权限
 // 获得当前账号下的标段权限
-func (d *PermissionAccountDao) GetPermissionWithAccountId(accountId int, bidsectionId int) (viewmodels.PermissionView, error) {
+func (d *PermissionAccountDao) GetPermissionWithAccountId(accountId int, bidsectionId int, isAdmin bool) (viewmodels.PermissionView, error) {
 	data := viewmodels.PermissionView{}
 	data := viewmodels.PermissionView{}
 	permission := viewmodels.Permission{}
 	permission := viewmodels.Permission{}
+	if isAdmin == true {
+		permission.ContractAccess = 1
+		permission.ContractAdd = 1
+		permission.ContractDelete = 1
+		permission.QualityAccess = 1
+		permission.QualityAdd = 1
+		permission.QualityDelete = 1
+		permission.SafeAccess = 1
+		permission.SafeAdd = 1
+		permission.SafeDelete = 1
+	}
 	has, err := d.engine.
 	has, err := d.engine.
 		Sql("select * from cm_permission_account where bidsection_id= ? and account_id = ?", accountId, bidsectionId).
 		Sql("select * from cm_permission_account where bidsection_id= ? and account_id = ?", accountId, bidsectionId).
 		Get(&data)
 		Get(&data)

+ 11 - 3
services/bid_account_service.go

@@ -23,7 +23,7 @@ type BidAccountService interface {
 	ValidRuleDelete(ctx iris.Context) (viewmodels.BidAccount, error)
 	ValidRuleDelete(ctx iris.Context) (viewmodels.BidAccount, error)
 	Create(viewBidAccount viewmodels.BidAccount, projectId int, accountId int) error
 	Create(viewBidAccount viewmodels.BidAccount, projectId int, accountId int) error
 	Delete(viewBidAccount viewmodels.BidAccount, projectId int) error
 	Delete(viewBidAccount viewmodels.BidAccount, projectId int) error
-	GetPermission(accountId int, bidsectionId int) (viewmodels.PermissionView, error)
+	GetPermission(accountId int, bidsectionId int, projectId int) (viewmodels.PermissionView, error)
 }
 }
 
 
 //返回service操作类
 //返回service操作类
@@ -83,8 +83,16 @@ func (s *bidAccountService) ValidRuleDelete(ctx iris.Context) (viewmodels.BidAcc
 }
 }
 
 
 // 获取当前标段的权限
 // 获取当前标段的权限
-func (s *bidAccountService) GetPermission(accountId int, bidsectionId int) (viewmodels.PermissionView, error) {
-	data, err := s.permissionDao.GetPermissionWithAccountId(accountId, bidsectionId)
+func (s *bidAccountService) GetPermission(accountId int, bidsectionId int, projectId int) (viewmodels.PermissionView, error) {
+	account := s.projectAccountDao.Get(accountId, projectId)
+	var isAdmin bool
+	if account.IsAdmin == 1 {
+		isAdmin = true
+	} else {
+		isAdmin = false
+
+	}
+	data, err := s.permissionDao.GetPermissionWithAccountId(accountId, bidsectionId, isAdmin)
 	return data, err
 	return data, err
 }
 }
 
 

+ 8 - 1
web/api/project_setting_auth_api.go

@@ -228,7 +228,14 @@ func (c *ProjectSettingApi) GetPermission() {
 		return
 		return
 	}
 	}
 
 
-	data, err := c.ServiceBidAccount.GetPermission(accountId, bidsectionId)
+	// 获得项目ID
+	pid, err := utils.GetProjectId(c.Ctx)
+	if err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
+		return
+	}
+
+	data, err := c.ServiceBidAccount.GetPermission(accountId, bidsectionId, pid)
 	if err != nil {
 	if err != nil {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 		return
 		return