Pārlūkot izejas kodu

审批流调整更新报告状态

hsun 1 gadu atpakaļ
vecāks
revīzija
c47def55f9

+ 11 - 0
controllers/report_approve/report_approve_flow.go

@@ -270,6 +270,12 @@ func (this *ReportApproveFlowController) Add() {
 		br.ErrMsg = "获取审批详情失败, Err: " + e.Error()
 		br.ErrMsg = "获取审批详情失败, Err: " + e.Error()
 		return
 		return
 	}
 	}
+
+	// 更新审批对应的报告状态:未发布->待提交
+	go func() {
+		_ = services.FlowOperateResetReportState(flowItem.ReportType, flowItem.ClassifyFirstId, flowItem.ClassifySecondId, models.ReportStateUnpublished, models.ReportStateWaitSubmit)
+	}()
+
 	br.Data = detail
 	br.Data = detail
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
@@ -578,6 +584,11 @@ func (this *ReportApproveFlowController) Remove() {
 		return
 		return
 	}
 	}
 
 
+	// 更新审批对应的报告状态:待提交->未发布
+	go func() {
+		_ = services.FlowOperateResetReportState(flowItem.ReportType, flowItem.ClassifyFirstId, flowItem.ClassifySecondId, models.ReportStateWaitSubmit, models.ReportStateUnpublished)
+	}()
+
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "操作成功"
 	br.Msg = "操作成功"

+ 8 - 0
models/english_report.go

@@ -858,3 +858,11 @@ func GetEnglishReportStateCount(state int) (count int, err error) {
 	err = o.Raw(sql, state).QueryRow(&count)
 	err = o.Raw(sql, state).QueryRow(&count)
 	return
 	return
 }
 }
+
+// UpdateEnglishReportsStateByCond 批量更新报告状态
+func UpdateEnglishReportsStateByCond(classifyFirstId, classifySecondId, oldState, newState int) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `UPDATE english_report SET state = ? WHERE classify_id_first = ? AND classify_id_second = ? AND state = ?`
+	_, err = o.Raw(sql, newState, classifyFirstId, classifySecondId, oldState).Exec()
+	return
+}

+ 8 - 0
models/report.go

@@ -1107,3 +1107,11 @@ func GetReportStateCount(state int) (count int, err error) {
 	err = o.Raw(sql, state).QueryRow(&count)
 	err = o.Raw(sql, state).QueryRow(&count)
 	return
 	return
 }
 }
+
+// UpdateReportsStateByCond 批量更新报告状态
+func UpdateReportsStateByCond(classifyFirstId, classifySecondId, oldState, newState int) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `UPDATE report SET state = ? WHERE classify_id_first = ? AND classify_id_second = ? AND state = ?`
+	_, err = o.Raw(sql, newState, classifyFirstId, classifySecondId, oldState).Exec()
+	return
+}

+ 8 - 0
models/smart_report/smart_report.go

@@ -348,3 +348,11 @@ type Report2ImgQueueReq struct {
 	ReportType int    `description:"报告类型: 1-研报; 2-智能研报"`
 	ReportType int    `description:"报告类型: 1-研报; 2-智能研报"`
 	ReportCode string `description:"报告唯一编码"`
 	ReportCode string `description:"报告唯一编码"`
 }
 }
+
+// UpdateSmartReportsStateByCond 批量更新报告状态
+func UpdateSmartReportsStateByCond(classifyFirstId, classifySecondId, oldState, newState int) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `UPDATE smart_report SET state = ? WHERE classify_id_first = ? AND classify_id_second = ? AND state = ?`
+	_, err = o.Raw(sql, newState, classifyFirstId, classifySecondId, oldState).Exec()
+	return
+}

+ 41 - 1
services/report_approve.go

@@ -4,6 +4,7 @@ import (
 	"eta/eta_api/models"
 	"eta/eta_api/models"
 	"eta/eta_api/models/report_approve"
 	"eta/eta_api/models/report_approve"
 	"eta/eta_api/models/smart_report"
 	"eta/eta_api/models/smart_report"
+	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/utils"
 	"eta/eta_api/utils"
 	"fmt"
 	"fmt"
 	"sort"
 	"sort"
@@ -794,7 +795,7 @@ func AfterReportApprovePass(reportType, reportId int) (err error) {
 	}
 	}
 
 
 	// 英文研报
 	// 英文研报
-	if reportType == report_approve.FlowReportTypeChinese {
+	if reportType == report_approve.FlowReportTypeEnglish {
 		_ = UpdateEnglishReportEs(reportId, models.ReportStatePublished)
 		_ = UpdateEnglishReportEs(reportId, models.ReportStatePublished)
 		return
 		return
 	}
 	}
@@ -862,3 +863,42 @@ func CheckCloseReportApproveConf() (yes bool, err error) {
 	yes = true
 	yes = true
 	return
 	return
 }
 }
+
+// FlowOperateResetReportState 重置报告的初始状态
+func FlowOperateResetReportState(reportType, classifyFirstId, classifySecondId, oldState, State int) (err error) {
+	defer func() {
+		if err != nil {
+			tips := fmt.Sprintf("重置报告初始状态失败, ErrMsg: %s", err.Error())
+			utils.FileLog.Info(tips)
+			go alarm_msg.SendAlarmMsg(tips, 2)
+		}
+	}()
+
+	// 中文研报
+	if reportType == report_approve.FlowReportTypeChinese {
+		e := models.UpdateReportsStateByCond(classifyFirstId, classifySecondId, oldState, State)
+		if e != nil {
+			err = fmt.Errorf("UpdateReportsStateByCond err: %s", e.Error())
+		}
+		return
+	}
+
+	// 英文研报
+	if reportType == report_approve.FlowReportTypeEnglish {
+		e := models.UpdateEnglishReportsStateByCond(classifyFirstId, classifySecondId, oldState, State)
+		if e != nil {
+			err = fmt.Errorf("UpdateEnglishReportsStateByCond err: %s", e.Error())
+		}
+		return
+	}
+
+	// 智能研报
+	if reportType == report_approve.FlowReportTypeSmart {
+		e := smart_report.UpdateSmartReportsStateByCond(classifyFirstId, classifySecondId, oldState, State)
+		if e != nil {
+			err = fmt.Errorf("UpdateSmartReportsStateByCond err: %s", e.Error())
+		}
+		return
+	}
+	return
+}