Browse Source

fix: 报告审批相关

hsun 1 year ago
parent
commit
deb8644acf
2 changed files with 41 additions and 3 deletions
  1. 18 0
      controllers/report_approve/report_approve_flow.go
  2. 23 3
      services/report_approve.go

+ 18 - 0
controllers/report_approve/report_approve_flow.go

@@ -378,6 +378,24 @@ func (this *ReportApproveFlowController) Edit() {
 		}
 		}
 	}
 	}
 
 
+	// 校验审批流是否关联了进行中的审批
+	{
+		approvingOb := new(report_approve.ReportApprove)
+		approvingCond := fmt.Sprintf(` AND %s = ? AND %s = ? AND %s = ?`, report_approve.ReportApproveCols.FlowId, report_approve.ReportApproveCols.FlowVersion, report_approve.ReportApproveCols.State)
+		approvingPars := make([]interface{}, 0)
+		approvingPars = append(approvingPars, flowItem.ReportApproveFlowId, flowItem.CurrVersion, report_approve.ReportApproveStateApproving)
+		count, e := approvingOb.GetCountByCondition(approvingCond, approvingPars)
+		if e != nil {
+			br.Msg = "操作失败"
+			br.ErrMsg = "获取审批流关联进行中的审批数失败. Err: " + e.Error()
+			return
+		}
+		if count > 0 {
+			br.Msg = "当前有未走完流程的报告,请走完流程后再做变更"
+			return
+		}
+	}
+
 	// 变更了报告分类时, 判断是否允许变更
 	// 变更了报告分类时, 判断是否允许变更
 	if req.ReportType != flowItem.ReportType || req.ClassifyFirstId != flowItem.ClassifyFirstId || req.ClassifySecondId != flowItem.ClassifySecondId {
 	if req.ReportType != flowItem.ReportType || req.ClassifyFirstId != flowItem.ClassifyFirstId || req.ClassifySecondId != flowItem.ClassifySecondId {
 		checkOk, e := services.CheckReportApproveFlowChange(flowItem.ReportType, flowItem.ClassifyFirstId, flowItem.ClassifySecondId)
 		checkOk, e := services.CheckReportApproveFlowChange(flowItem.ReportType, flowItem.ClassifyFirstId, flowItem.ClassifySecondId)

+ 23 - 3
services/report_approve.go

@@ -328,6 +328,7 @@ func CancelReportApprove(reportType, reportId, approveId, sysAdminId int, sysAdm
 
 
 // updateReportApproveState 更新报告审批状态
 // updateReportApproveState 更新报告审批状态
 func updateReportApproveState(reportType, reportId, approveId, state int) (err error) {
 func updateReportApproveState(reportType, reportId, approveId, state int) (err error) {
+	updateCols := []string{"ApproveId", "State", "ModifyTime"}
 	if reportType == report_approve.FlowReportTypeChinese {
 	if reportType == report_approve.FlowReportTypeChinese {
 		reportOb := new(models.Report)
 		reportOb := new(models.Report)
 		reportItem, e := reportOb.GetItemById(reportId)
 		reportItem, e := reportOb.GetItemById(reportId)
@@ -340,7 +341,11 @@ func updateReportApproveState(reportType, reportId, approveId, state int) (err e
 			reportItem.ApproveId = approveId
 			reportItem.ApproveId = approveId
 			reportItem.State = state
 			reportItem.State = state
 			reportItem.ModifyTime = time.Now().Local()
 			reportItem.ModifyTime = time.Now().Local()
-			if e = reportItem.UpdateReport([]string{"ApproveId", "State", "ModifyTime"}); e != nil {
+			if state == models.ReportStatePass || state == models.ReportStateRefused {
+				updateCols = append(updateCols, "ApproveTime")
+				reportItem.ApproveTime = time.Now().Local()
+			}
+			if e = reportItem.UpdateReport(updateCols); e != nil {
 				err = fmt.Errorf("更新中文研报审批状态失败, Err: %s", e.Error())
 				err = fmt.Errorf("更新中文研报审批状态失败, Err: %s", e.Error())
 				return
 				return
 			}
 			}
@@ -356,7 +361,11 @@ func updateReportApproveState(reportType, reportId, approveId, state int) (err e
 			reportItem.ApproveId = approveId
 			reportItem.ApproveId = approveId
 			reportItem.State = state
 			reportItem.State = state
 			reportItem.ModifyTime = time.Now().Local()
 			reportItem.ModifyTime = time.Now().Local()
-			if e = reportItem.UpdateReport([]string{"ApproveId", "State", "ModifyTime"}); e != nil {
+			if state == models.ReportStatePass || state == models.ReportStateRefused {
+				updateCols = append(updateCols, "ApproveTime")
+				reportItem.ApproveTime = time.Now().Local()
+			}
+			if e = reportItem.UpdateReport(updateCols); e != nil {
 				err = fmt.Errorf("更新英文研报审批状态失败, Err: %s", e.Error())
 				err = fmt.Errorf("更新英文研报审批状态失败, Err: %s", e.Error())
 				return
 				return
 			}
 			}
@@ -373,7 +382,11 @@ func updateReportApproveState(reportType, reportId, approveId, state int) (err e
 			reportItem.ApproveId = approveId
 			reportItem.ApproveId = approveId
 			reportItem.State = state
 			reportItem.State = state
 			reportItem.ModifyTime = time.Now().Local()
 			reportItem.ModifyTime = time.Now().Local()
-			if e = reportItem.Update([]string{"ApproveId", "State", "ModifyTime"}); e != nil {
+			if state == models.ReportStatePass || state == models.ReportStateRefused {
+				updateCols = append(updateCols, "ApproveTime")
+				reportItem.ApproveTime = time.Now().Local()
+			}
+			if e = reportItem.Update(updateCols); e != nil {
 				err = fmt.Errorf("更新智能研报审批状态失败, Err: %s", e.Error())
 				err = fmt.Errorf("更新智能研报审批状态失败, Err: %s", e.Error())
 				return
 				return
 			}
 			}
@@ -797,6 +810,13 @@ func AfterReportApprovePass(reportType, reportId int) (err error) {
 			err = fmt.Errorf("获取智能研报信息失败, Err: %s", e.Error())
 			err = fmt.Errorf("获取智能研报信息失败, Err: %s", e.Error())
 			return
 			return
 		}
 		}
+
+		// 写入队列
+		var queue smart_report.Report2ImgQueueReq
+		queue.ReportType = 2
+		queue.ReportCode = item.ReportCode
+		_ = utils.Rc.LPush(utils.CACHE_CREATE_REPORT_IMGPDF_QUEUE, queue)
+
 		// 生成音频
 		// 生成音频
 		if item.VideoUrl == "" {
 		if item.VideoUrl == "" {
 			SmartReportBuildVideoAndUpdate(item)
 			SmartReportBuildVideoAndUpdate(item)