Browse Source

gorm: 报告审批

hsun 2 months ago
parent
commit
5e999cd6fc

+ 36 - 35
controllers/report_approve/report_approve.go

@@ -483,15 +483,15 @@ func (this *ReportApproveController) Detail() {
 
 	approveOb := new(report_approve.ReportApprove)
 	approveItem, e := approveOb.GetItemById(approveId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "审批已被删除, 请刷新页面"
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取审批失败, Err: " + e.Error()
 		return
 	}
+	if approveItem != nil && approveItem.ReportApproveId <= 0 {
+		br.Msg = "审批已被删除, 请刷新页面"
+		return
+	}
 
 	// 审批信息
 	detail := new(report_approve.ReportApproveDetail)
@@ -717,15 +717,15 @@ func (this *ReportApproveController) Approve() {
 
 	approveOb := new(report_approve.ReportApprove)
 	approveItem, e := approveOb.GetItemById(req.ReportApproveId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "审批不存在, 请刷新页面"
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "操作失败"
 		br.ErrMsg = "获取审批信息失败, Err: " + e.Error()
 		return
 	}
+	if approveItem != nil && approveItem.ReportApproveId <= 0 {
+		br.Msg = "审批不存在, 请刷新页面"
+		return
+	}
 	if approveItem.State != report_approve.ReportApproveStateApproving {
 		br.Msg = "审批状态有误, 请刷新页面"
 		br.ErrMsg = fmt.Sprintf("审批状态有误, State: %d", approveItem.State)
@@ -738,15 +738,15 @@ func (this *ReportApproveController) Approve() {
 	recordPars := make([]interface{}, 0)
 	recordPars = append(recordPars, approveItem.ReportApproveId, sysUser.AdminId, report_approve.ReportApproveStateApproving)
 	recordItem, e := recordOb.GetItemByCondition(recordCond, recordPars, "")
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "无权审批"
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "操作失败"
 		br.ErrMsg = "获取审批记录失败, Err: " + e.Error()
 		return
 	}
+	if recordItem != nil && recordItem.ReportApproveRecordId <= 0 {
+		br.Msg = "审批记录有误"
+		return
+	}
 
 	// 通过审批
 	tips, e := services.PassReportApprove(approveItem, recordItem, sysUser.AdminId, req.ReportUrl)
@@ -801,15 +801,15 @@ func (this *ReportApproveController) Refuse() {
 
 	approveOb := new(report_approve.ReportApprove)
 	approveItem, e := approveOb.GetItemById(req.ReportApproveId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "审批不存在, 请刷新页面"
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "操作失败"
 		br.ErrMsg = "获取审批信息失败, Err: " + e.Error()
 		return
 	}
+	if approveItem != nil && approveItem.ReportApproveId <= 0 {
+		br.Msg = "审批不存在, 请刷新页面"
+		return
+	}
 	if approveItem.State != report_approve.ReportApproveStateApproving {
 		br.Msg = "审批状态有误, 请刷新页面"
 		br.ErrMsg = fmt.Sprintf("审批状态有误, State: %d", approveItem.State)
@@ -822,15 +822,15 @@ func (this *ReportApproveController) Refuse() {
 	recordPars := make([]interface{}, 0)
 	recordPars = append(recordPars, approveItem.ReportApproveId, sysUser.AdminId, report_approve.ReportApproveStateApproving)
 	recordItem, e := recordOb.GetItemByCondition(recordCond, recordPars, "")
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "无权审批"
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "操作失败"
 		br.ErrMsg = "获取审批记录失败, Err: " + e.Error()
 		return
 	}
+	if recordItem != nil && recordItem.ReportApproveRecordId <= 0 {
+		br.Msg = "审批记录有误"
+		return
+	}
 
 	// 驳回审批
 	if e = services.RefuseReportApprove(approveItem, recordItem, req.ApproveRemark, sysUser.AdminId); e != nil {
@@ -880,15 +880,15 @@ func (this *ReportApproveController) Cancel() {
 
 	approveOb := new(report_approve.ReportApprove)
 	approveItem, e := approveOb.GetItemById(req.ReportApproveId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "审批已被删除, 请刷新页面"
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "操作失败"
 		br.ErrMsg = "获取审批失败, Err: " + e.Error()
 		return
 	}
+	if approveItem != nil && approveItem.ReportApproveId <= 0 {
+		br.Msg = "审批已被删除, 请刷新页面"
+		return
+	}
 	if approveItem.ApplyUserId != sysUser.AdminId {
 		br.Msg = "非申请人不可撤销"
 		return
@@ -1027,15 +1027,16 @@ func (this *ReportApproveController) MessageRead() {
 
 	messageOb := new(report_approve.ReportApproveMessage)
 	messageItem, e := messageOb.GetItemById(req.MessageId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			br.Msg = "消息不存在, 请刷新页面"
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取审批消息失败, Err: " + e.Error()
 		return
 	}
+	if messageItem != nil && messageItem.Id <= 0 {
+		br.Msg = "消息不存在, 请刷新页面"
+		return
+	}
+
 	messageItem.IsRead = 1
 	messageItem.ModifyTime = time.Now().Local()
 	cols := []string{"IsRead", "ModifyTime"}

+ 1 - 1
models/report_approve/report_approve_record.go

@@ -236,7 +236,7 @@ func (m *ReportApproveRecord) UpdateNodeState(reportApproveId, nodeId, nodeState
 
 	// 更新条件
 	whereParas := []interface{}{reportApproveId, nodeId}
-	pars = append(pars, whereParas)
+	pars = append(pars, whereParas...)
 
 	o := global.DbMap[utils.DbNameReport]
 	sql := fmt.Sprintf(`UPDATE %s SET node_state=?,node_approve_user_id=?,node_approve_user_name=?,node_approve_time=? WHERE report_approve_id = ? AND node_id = ?`, m.TableName())

+ 30 - 8
services/report_approve.go

@@ -89,6 +89,9 @@ func CheckReportOpenApprove(reportType, firstId, secondId, thirdId int) (opening
 		err = fmt.Errorf("ApproveFlow GetItemByCondition err: %s", e.Error())
 		return
 	}
+	if flowItem != nil && flowItem.ReportApproveFlowId <= 0 {
+		flowItem = nil
+	}
 
 	// 开启审批/有审批流
 	if openApprove && (flowItem != nil || confMap[models.BusinessConfReportApproveType] == models.BusinessConfReportApproveTypeOther) {
@@ -119,6 +122,9 @@ func CheckReportCurrState(reportType, firstId, secondId, thirdId, operate int) (
 		err = fmt.Errorf("ApproveFlow GetItemByCondition err: %s", e.Error())
 		return
 	}
+	if flowItem != nil && flowItem.ReportApproveFlowId <= 0 {
+		flowItem = nil
+	}
 
 	// 开启审批/有审批流
 	if openApprove && (flowItem != nil || confMap[models.BusinessConfReportApproveType] == models.BusinessConfReportApproveTypeOther) {
@@ -181,6 +187,9 @@ func SubmitReportApprove(reportType, reportId int, reportTitle string, firstId,
 		err = fmt.Errorf("ApproveFlow GetItemByCondition err: %s", e.Error())
 		return
 	}
+	if flowItem != nil && flowItem.ReportApproveFlowId <= 0 {
+		flowItem = nil
+	}
 
 	// 查询审批节点
 	nodeOb := new(report_approve.ReportApproveNode)
@@ -270,13 +279,14 @@ func CancelReportApprove(reportType, reportId, approveId, sysAdminId int, sysAdm
 	// 修改审批信息状态
 	approveOb := new(report_approve.ReportApprove)
 	approveItem, e := approveOb.GetItemById(approveId)
-	if e != nil {
-		if utils.IsErrNoRow(e) {
-			return
-		}
+	if e != nil && !utils.IsErrNoRow(e) {
 		err = fmt.Errorf("approve GetItemById err: %s", e.Error())
 		return
 	}
+	if approveItem != nil && approveItem.ReportApproveId <= 0 {
+		err = fmt.Errorf("审批不存在")
+		return
+	}
 	if approveItem.State == report_approve.ReportApproveStateCancel {
 		return
 	}
@@ -339,7 +349,7 @@ func updateReportApproveState(reportType, reportId, approveId, state int) (err e
 			err = fmt.Errorf("获取中文研报失败, Err: %s", e.Error())
 			return
 		}
-		if reportItem != nil {
+		if reportItem != nil && reportItem.Id > 0 {
 			reportItem.ApproveId = approveId
 			reportItem.State = state
 			reportItem.ModifyTime = time.Now().Local()
@@ -363,7 +373,7 @@ func updateReportApproveState(reportType, reportId, approveId, state int) (err e
 			err = fmt.Errorf("获取英文研报失败, Err: %s", e.Error())
 			return
 		}
-		if reportItem != nil {
+		if reportItem != nil && reportItem.Id > 0 {
 			reportItem.ApproveId = approveId
 			reportItem.State = state
 			reportItem.ModifyTime = time.Now().Local()
@@ -388,7 +398,7 @@ func updateReportApproveState(reportType, reportId, approveId, state int) (err e
 			err = fmt.Errorf("获取智能研报失败, Err: %s", e.Error())
 			return
 		}
-		if reportItem != nil {
+		if reportItem != nil && reportItem.SmartReportId > 0 {
 			reportItem.ApproveId = approveId
 			reportItem.State = state
 			reportItem.ModifyTime = time.Now().Local()
@@ -423,10 +433,15 @@ func PassReportApprove(approveItem *report_approve.ReportApprove, recordItem *re
 	// 查询审批流和审批流节点
 	flowOb := new(report_approve.ReportApproveFlow)
 	flowItem, e := flowOb.GetItemById(approveItem.FlowId)
-	if e != nil {
+	if e != nil && !utils.IsErrNoRow(e) {
 		err = fmt.Errorf("获取审批流失败, Err: %s", e.Error())
 		return
 	}
+	if flowItem != nil && flowItem.ReportApproveFlowId <= 0 {
+		err = fmt.Errorf("审批流不存在")
+		return
+	}
+
 	nodeOb := new(report_approve.ReportApproveNode)
 	nodeCond := fmt.Sprintf(` AND %s = ? AND %s = ?`, report_approve.ReportApproveNodeCols.ReportApproveFlowId, report_approve.ReportApproveNodeCols.CurrVersion)
 	nodePars := make([]interface{}, 0)
@@ -836,6 +851,10 @@ func AfterReportApprovePass(reportType, reportId int) (err error) {
 			err = fmt.Errorf("获取研报信息失败, Err: %s", e.Error())
 			return
 		}
+		if reportInfo != nil && reportInfo.Id <= 0 {
+			return
+		}
+
 		// 重新生成音频,里面还涉及到章节类型的报告
 		go UpdateReportVideo(reportInfo)
 
@@ -868,6 +887,9 @@ func AfterReportApprovePass(reportType, reportId int) (err error) {
 			err = fmt.Errorf("获取智能研报信息失败, Err: %s", e.Error())
 			return
 		}
+		if item != nil && item.SmartReportId <= 0 {
+			return
+		}
 
 		// 写入队列
 		//var queue smart_report.Report2ImgQueueReq