|
@@ -397,7 +397,7 @@ func updateReportApproveState(reportType, reportId, approveId, state int) (err e
|
|
|
}
|
|
|
|
|
|
// PassReportApprove 通过审批
|
|
|
-func PassReportApprove(approveItem *report_approve.ReportApprove, recordItem *report_approve.ReportApproveRecord, sysAdminId int) (err error) {
|
|
|
+func PassReportApprove(approveItem *report_approve.ReportApprove, recordItem *report_approve.ReportApproveRecord, sysAdminId int) (tips string, err error) {
|
|
|
if approveItem == nil {
|
|
|
err = fmt.Errorf("审批信息有误")
|
|
|
return
|
|
@@ -432,7 +432,7 @@ func PassReportApprove(approveItem *report_approve.ReportApprove, recordItem *re
|
|
|
nodeMap[v.ReportApproveNodeId] = v
|
|
|
}
|
|
|
|
|
|
- // 取出当前节点
|
|
|
+ // 取出审批记录的节点
|
|
|
currNodeItem := nodeMap[recordItem.NodeId]
|
|
|
if currNodeItem == nil {
|
|
|
err = fmt.Errorf("当前节点信息有误")
|
|
@@ -581,6 +581,13 @@ func PassReportApprove(approveItem *report_approve.ReportApprove, recordItem *re
|
|
|
|
|
|
// 或签
|
|
|
if currNode.ApproveType == report_approve.NodeApproveTypeAny {
|
|
|
+ // 需检查一下审批的当前节点和记录的节点是否匹配, 不匹配可能是因为另外的审批人已通过, 所以此处应给提示
|
|
|
+ // 前端也有做相应的判断,但是两个人同时进入审批详情页时就可能出现这种情况
|
|
|
+ if approveItem.CurrNodeId != recordItem.NodeId {
|
|
|
+ tips = "该节点已完成审批, 请刷新页面"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
if e = recordItem.Update(recordCols); e != nil {
|
|
|
err = fmt.Errorf("更新审批记录状态失败, Err: %s", e.Error())
|
|
|
return
|