Browse Source

Merge branch 'feature/report_approve_0712' into debug

hsun 7 months ago
parent
commit
2c65c8cfd7

+ 65 - 0
controllers/report_approve/report_approve.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_api/controllers"
 	"eta/eta_api/models"
 	"eta/eta_api/models/report_approve"
+	"eta/eta_api/models/smart_report"
 	"eta/eta_api/services"
 	"eta/eta_api/utils"
 	"fmt"
@@ -317,6 +318,66 @@ func (this *ReportApproveController) List() {
 		ormList = list
 	}
 
+	// 审批通过的报告显示下载按钮(临时版本)
+	reportImg := make(map[string]string)
+	reportPdf := make(map[string]string)
+	{
+		var reportIds, enReportIds, smartReportIds []int
+		for _, v := range ormList {
+			if v.State != report_approve.ReportApproveStatePass {
+				continue
+			}
+			if v.ReportType == report_approve.FlowReportTypeChinese {
+				reportIds = append(reportIds, v.ReportId)
+			}
+			if v.ReportType == report_approve.FlowReportTypeEnglish {
+				enReportIds = append(enReportIds, v.ReportId)
+			}
+			if v.ReportType == report_approve.FlowReportTypeSmart {
+				smartReportIds = append(smartReportIds, v.ReportId)
+			}
+		}
+		if len(reportIds) > 0 {
+			reports, e := models.GetReportFieldsByIds(reportIds, []string{"id", "detail_img_url", "detail_pdf_url"})
+			if e != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = fmt.Sprintf("GetReportFieldsByIds, %v", e)
+				return
+			}
+			for _, r := range reports {
+				k := fmt.Sprintf("%d-%d", report_approve.FlowReportTypeChinese, r.Id)
+				reportImg[k] = r.DetailImgUrl
+				reportPdf[k] = r.DetailPdfUrl
+			}
+		}
+		if len(enReportIds) > 0 {
+			enReports, e := models.GetEnglishReportFieldsByIds(enReportIds, []string{"id", "detail_img_url", "detail_pdf_url"})
+			if e != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = fmt.Sprintf("GetEnglishReportFieldsByIds, %v", e)
+				return
+			}
+			for _, r := range enReports {
+				k := fmt.Sprintf("%d-%d", report_approve.FlowReportTypeEnglish, r.Id)
+				reportImg[k] = r.DetailImgUrl
+				reportPdf[k] = r.DetailPdfUrl
+			}
+		}
+		if len(smartReportIds) > 0 {
+			smartReports, e := smart_report.GetSmartReportFieldsByIds(smartReportIds, []string{"smart_report_id", "detail_img_url", "detail_pdf_url"})
+			if e != nil {
+				br.Msg = "获取失败"
+				br.ErrMsg = fmt.Sprintf("GetSmartReportFieldsByIds, %v", e)
+				return
+			}
+			for _, r := range smartReports {
+				k := fmt.Sprintf("%d-%d", report_approve.FlowReportTypeSmart, r.SmartReportId)
+				reportImg[k] = r.DetailImgUrl
+				reportPdf[k] = r.DetailPdfUrl
+			}
+		}
+	}
+
 	// 格式化列表
 	for _, v := range ormList {
 		t := report_approve.FormatReportApproveOrm2Item(v)
@@ -334,6 +395,10 @@ func (this *ReportApproveController) List() {
 			t.ReportClassify = reportClassify
 		}
 
+		k := fmt.Sprintf("%d-%d", t.ReportType, t.ReportId)
+		t.DetailImgUrl = reportImg[k]
+		t.DetailPdfUrl = reportPdf[k]
+
 		respList = append(respList, t)
 	}
 

+ 14 - 0
models/english_report.go

@@ -1000,3 +1000,17 @@ func UpdatePdfUrlEnglishReportById(reportId int) (err error) {
 	_, err = o.Raw(sql, reportId).Exec()
 	return
 }
+
+func GetEnglishReportFieldsByIds(ids []int, fields []string) (items []*EnglishReport, err error) {
+	if len(ids) == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("rddp")
+	field := " * "
+	if len(fields) > 0 {
+		field = fmt.Sprintf(" %s ", strings.Join(fields, ","))
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM english_report WHERE id IN (%s)`, field, utils.GetOrmInReplace(len(ids)))
+	_, err = o.Raw(sql, ids).QueryRows(&items)
+	return
+}

+ 13 - 0
models/report.go

@@ -1470,6 +1470,19 @@ func GetReportLayoutByReportId(reportId int) (item ReportLayout, err error) {
 
 	sql := `SELECT id, report_layout  FROM report  WHERE id = ? `
 	err = o.Raw(sql, reportId).QueryRow(&item)
+	return
+}
 
+func GetReportFieldsByIds(ids []int, fields []string) (items []*Report, err error) {
+	if len(ids) == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("rddp")
+	field := " * "
+	if len(fields) > 0 {
+		field = fmt.Sprintf(" %s ", strings.Join(fields, ","))
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM report WHERE id IN (%s)`, field, utils.GetOrmInReplace(len(ids)))
+	_, err = o.Raw(sql, ids).QueryRows(&items)
 	return
 }

+ 2 - 0
models/report_approve/report_approve.go

@@ -199,6 +199,8 @@ type ReportApproveItem struct {
 	HandleTime            string `description:"处理时间"`
 	CreateTime            string `description:"创建时间"`
 	ModifyTime            string `description:"修改时间"`
+	DetailImgUrl          string `description:"报告详情长图地址"`
+	DetailPdfUrl          string `description:"报告详情PDF地址"`
 }
 
 // FormatReportApproveOrm2Item 格式化报告审批

+ 15 - 2
models/smart_report/smart_report.go

@@ -419,11 +419,24 @@ func UpdateSmartReportsStateBySecondIds(oldState, newState int, secondIds []int)
 	return
 }
 
-
 // UpdatePdfUrlSmartReportById 清空pdf相关字段
 func UpdatePdfUrlSmartReportById(reportId int) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE smart_report SET detail_img_url = '',detail_pdf_url='',modify_time=NOW() WHERE smart_report_id = ? `
 	_, err = o.Raw(sql, reportId).Exec()
 	return
-}
+}
+
+func GetSmartReportFieldsByIds(ids []int, fields []string) (items []*SmartReport, err error) {
+	if len(ids) == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("rddp")
+	field := " * "
+	if len(fields) > 0 {
+		field = fmt.Sprintf(" %s ", strings.Join(fields, ","))
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM smart_report WHERE smart_report_id IN (%s)`, field, utils.GetOrmInReplace(len(ids)))
+	_, err = o.Raw(sql, ids).QueryRows(&items)
+	return
+}