浏览代码

Merge branch 'ETA_1.6.4' into debug

zwxi 1 年之前
父节点
当前提交
04a05ee0d7
共有 4 个文件被更改,包括 918 次插入8 次删除
  1. 718 5
      controllers/commodity_trade_base_index.go
  2. 169 0
      models/data_manage/base_from_mtjh.go
  3. 27 0
      routers/commentsRouter.go
  4. 4 3
      services/english_report.go

+ 718 - 5
controllers/commodity_trade_base_index.go

@@ -1,12 +1,12 @@
 package controllers
 
 import (
-	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
-	"github.com/tealeg/xlsx"
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/utils"
+	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"github.com/tealeg/xlsx"
 	"os"
 	"path/filepath"
 	"strconv"
@@ -1204,7 +1204,7 @@ func (this *TradeCommonController) CoalMineClassify() {
 	var child data_manage.CoalChild
 
 	list, err := data_manage.GetCoalmineClassifyList()
-	if err!= nil {
+	if err != nil {
 		br.Msg = "获取煤炭分类数据失败"
 		br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
 		return
@@ -1303,7 +1303,6 @@ func (this *TradeCommonController) CoalMineClassify() {
 			coalList = append(coalList, coal)
 		}
 
-
 		if v.Suffix == "inland_index" {
 			suffix = "inland_index"
 			groups = []*string{}
@@ -2549,3 +2548,717 @@ func (this *TradeCommonController) EicDataListV2() {
 	br.Msg = "获取成功"
 	br.Data = data
 }
+
+// CoalMineClassify
+// @title	获取煤炭江湖分类列表
+// @Description	获取煤炭江湖分类列表
+// @Success 200 {object} models.
+// @router /data/mtjh/classify [get]
+func (this *TradeCommonController) MtjhClassify() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	list, err := data_manage.GetMtjhClassifyList()
+	if err != nil {
+		br.Msg = "获取煤炭分类数据失败"
+		br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = list
+}
+
+// CoalMineData
+// @title	获取煤炭江湖详细数据列表
+// @Description	获取煤炭江湖详细数据接口
+// @Param	ClassifyId query int true	"数据id"
+// @Param	GroupName query string true	"分组名"
+// @Param	Frequency query string true	"频度"
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Success 200 {object} []data_manage.CoalmineDataResp
+// @router /data/mtjh/data [get]
+func (this *TradeCommonController) MtjhData() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	var startSize int
+
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+
+	area := this.GetString("Area")
+	if area == "" {
+		br.Msg = "请选择分类"
+		br.ErrMsg = "请选择分类"
+		return
+	}
+
+	//获取指标
+	var condition string
+	var pars []interface{}
+
+	if area != "" {
+		condition += ` AND area=? `
+		pars = append(pars, area)
+	}
+
+	mtjhList, err := data_manage.GetMtjhMapping(condition, pars)
+	if err != nil {
+		br.Msg = "获取数据失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	resultList := make([]*data_manage.BaseFromMtjhIndexList, 0)
+	for _, v := range mtjhList {
+		product := new(data_manage.BaseFromMtjhIndexList)
+		product.BaseFromMtjhMappingId = v.BaseFromMtjhMappingId
+		product.Unit = v.Unit
+		product.IndexCode = v.IndexCode
+		product.IndexName = v.IndexName
+		product.Port = v.Port
+		product.Area = v.Area
+		product.Variety = v.Variety
+		product.Frequency = v.Frequency
+
+		total, err := data_manage.GetMtjhIndexDataCount(v.IndexCode)
+		page := paging.GetPaging(currentIndex, pageSize, total)
+		dataList, err := data_manage.GetMtjhIndexData(v.IndexCode, startSize, pageSize)
+		if err != nil {
+			br.Msg = "获取数据失败"
+			br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+			return
+		}
+		if dataList == nil {
+			dataList = make([]*data_manage.BaseFromMtjhIndexItem, 0)
+		}
+		product.DataList = dataList
+		product.Paging = page
+		resultList = append(resultList, product)
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resultList
+	return
+}
+
+// CoalSearchList
+// @Title 煤炭江湖模糊搜索
+// @Description 煤炭江湖模糊搜索
+// @Param   Keyword   query   string  ture       "关键字搜索"
+// @Success 200 {object} models.BaseResponse
+// @router /data/mtjh/search [get]
+func (this *TradeCommonController) MtjhSearchList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	//关键字
+	keyword := this.GetString("Keyword")
+
+	list, err := data_manage.GetMtjhItemList(keyword)
+	if err != nil {
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		br.Msg = "获取失败"
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = list
+}
+
+// CoalSingleData
+// @Title 获取煤炭江湖单条数据
+// @Description 获取煤炭江湖单条数据
+// @Param   IndexCode   query   string  true       "指标唯一编码"
+// @Success 200 {object} []data_manage.CoalmineSingalDataResp
+// @router  /data/mtjh/single_data [get]
+//func (this *TradeCommonController) MtjhSingleData() {
+//	br := new(models.BaseResponse).Init()
+//	defer func() {
+//		this.Data["json"] = br
+//		this.ServeJSON()
+//	}()
+//	indexCode := this.GetString("IndexCode")
+//	var classifyId int
+//	var suffix string
+//	if strings.Contains(indexCode, "jsm") {
+//		classifyId = 1
+//		suffix = "jsm_index"
+//	} else if strings.Contains(indexCode, "company") {
+//		classifyId = 2
+//		suffix = "company_index"
+//	} else if strings.Contains(indexCode, "firm") {
+//		classifyId = 3
+//		suffix = "firm_index"
+//	} else if strings.Contains(indexCode, "coastal") {
+//		classifyId = 4
+//		suffix = "coastal_index"
+//	} else if strings.Contains(indexCode, "inland") {
+//		classifyId = 5
+//		suffix = "inland_index"
+//	}
+//
+//	switch classifyId {
+//	case 1:
+//		items, err := data_manage.GetBaseFromCoalmineIndexByCode(indexCode)
+//		if err != nil {
+//			br.Msg = "获取煤炭数据失败"
+//			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
+//			return
+//		}
+//		groups, err := data_manage.GetProvinceFromCoalmineIndex(suffix)
+//		if err != nil {
+//			br.Msg = "获取煤炭分类数据失败"
+//			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
+//			return
+//		}
+//		groupMap := make(map[string]int)
+//		jsmId := 100
+//		for _, group := range groups {
+//			jsmId++
+//			groupMap[*group] = jsmId
+//		}
+//		var lists []data_manage.CoalmineSingalDataResp
+//		var resp data_manage.CoalmineSingalDataResp
+//
+//		classify := items[0].IndexName
+//		for i, item := range items {
+//			if item.IndexName != classify {
+//				lists = append(lists, resp)
+//				classify = item.IndexName
+//			}
+//			resp.IndexName = item.IndexName
+//			resp.IndexCode = item.IndexCode
+//			resp.GroupId = groupMap[item.Province]
+//			resp.GroupName = item.Province
+//			resp.Unit = item.Unit
+//			resp.Frequency = item.Frequency
+//			resp.ModifyTime = item.ModifyTime
+//			resp.ClassifyId = classifyId
+//
+//			//组装dataList
+//			var dataItem data_manage.DataList
+//			dataItem.DataTime = item.DataTime
+//			dataItem.Value = item.DealValue
+//			resp.DataList = append(resp.DataList, dataItem)
+//
+//			if i == len(items)-1 {
+//				lists = append(lists, resp)
+//			}
+//		}
+//		br.Ret = 200
+//		br.Success = true
+//		br.Msg = "获取成功"
+//		br.Data = lists
+//	case 2:
+//		items, err := data_manage.GetBaseFromCoalmineCompanyIndexByCode(indexCode)
+//		if err != nil {
+//			br.Msg = "获取煤炭数据失败"
+//			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
+//			return
+//		}
+//		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
+//		if err != nil {
+//			br.Msg = "获取煤炭分类数据失败"
+//			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
+//			return
+//		}
+//		groupMap := make(map[string]int)
+//		companyId := 200
+//		for _, group := range groups {
+//			companyId++
+//			groupMap[*group] = companyId
+//		}
+//		var lists []data_manage.CoalmineSingalDataResp
+//		var resp data_manage.CoalmineSingalDataResp
+//
+//		classify := items[0].IndexName
+//		for i, item := range items {
+//			if item.IndexName != classify {
+//				lists = append(lists, resp)
+//				classify = item.IndexName
+//			}
+//			resp.IndexName = item.IndexName
+//			resp.IndexCode = item.IndexCode
+//			resp.Unit = item.Unit
+//			resp.GroupId = groupMap[item.GroupName]
+//			resp.GroupName = item.GroupName
+//			resp.Frequency = item.Frequency
+//			resp.ModifyTime = item.ModifyTime
+//			resp.ClassifyId = classifyId
+//
+//			//组装dataList
+//			var dataItem data_manage.DataList
+//			dataItem.DataTime = item.DataTime
+//			dataItem.Value = item.DealValue
+//			resp.DataList = append(resp.DataList, dataItem)
+//
+//			if i == len(items)-1 {
+//				lists = append(lists, resp)
+//			}
+//		}
+//		br.Ret = 200
+//		br.Success = true
+//		br.Msg = "获取成功"
+//		br.Data = lists
+//	case 3:
+//		items, err := data_manage.GetBaseFromCoalmineFirmIndexByCode(indexCode)
+//		if err != nil {
+//			br.Msg = "获取煤炭数据失败"
+//			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
+//			return
+//		}
+//		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
+//		if err != nil {
+//			br.Msg = "获取煤炭分类数据失败"
+//			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
+//			return
+//		}
+//		groupMap := make(map[string]int)
+//		firmId := 300
+//		for _, group := range groups {
+//			firmId++
+//			groupMap[*group] = firmId
+//		}
+//		var lists []data_manage.CoalmineSingalDataResp
+//		var resp data_manage.CoalmineSingalDataResp
+//
+//		classify := items[0].IndexName
+//		for i, item := range items {
+//			if item.IndexName != classify {
+//				lists = append(lists, resp)
+//				classify = item.IndexName
+//			}
+//			resp.IndexName = item.IndexName
+//			resp.IndexCode = item.IndexCode
+//			resp.Unit = item.Unit
+//			resp.GroupId = groupMap[item.GroupName]
+//			resp.GroupName = item.GroupName
+//			resp.Frequency = item.Frequency
+//			resp.ModifyTime = item.ModifyTime
+//			resp.ClassifyId = classifyId
+//
+//			//组装dataList
+//			var dataItem data_manage.DataList
+//			dataItem.DataTime = item.DataTime
+//			dataItem.Value = item.DealValue
+//			resp.DataList = append(resp.DataList, dataItem)
+//
+//			if i == len(items)-1 {
+//				lists = append(lists, resp)
+//			}
+//		}
+//		br.Ret = 200
+//		br.Success = true
+//		br.Msg = "获取成功"
+//		br.Data = lists
+//	case 4:
+//		items, err := data_manage.GetBaseFromCoalmineCoastalIndexByCode(indexCode)
+//		if err != nil {
+//			br.Msg = "获取煤炭数据失败"
+//			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
+//			return
+//		}
+//		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
+//		if err != nil {
+//			br.Msg = "获取煤炭分类数据失败"
+//			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
+//			return
+//		}
+//		groupMap := make(map[string]int)
+//		coastalId := 400
+//		for _, group := range groups {
+//			coastalId++
+//			groupMap[*group] = coastalId
+//		}
+//		var lists []data_manage.CoalmineSingalDataResp
+//		var resp data_manage.CoalmineSingalDataResp
+//
+//		classify := items[0].IndexName
+//		for i, item := range items {
+//			if item.IndexName != classify {
+//				lists = append(lists, resp)
+//				classify = item.IndexName
+//			}
+//			resp.IndexName = item.IndexName
+//			resp.IndexCode = item.IndexCode
+//			resp.Unit = item.Unit
+//			resp.GroupId = groupMap[item.GroupName]
+//			resp.GroupName = item.GroupName
+//			resp.Frequency = item.Frequency
+//			resp.ModifyTime = item.ModifyTime
+//			resp.ClassifyId = classifyId
+//
+//			//组装dataList
+//			var dataItem data_manage.DataList
+//			dataItem.DataTime = item.DataTime
+//			dataItem.Value = item.DealValue
+//			resp.DataList = append(resp.DataList, dataItem)
+//
+//			if i == len(items)-1 {
+//				lists = append(lists, resp)
+//			}
+//		}
+//		br.Ret = 200
+//		br.Success = true
+//		br.Msg = "获取成功"
+//		br.Data = lists
+//	case 5:
+//		items, err := data_manage.GetBaseFromCoalmineInlandIndexByCode(indexCode)
+//		if err != nil {
+//			br.Msg = "获取煤炭数据失败"
+//			br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
+//			return
+//		}
+//		groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
+//		if err != nil {
+//			br.Msg = "获取煤炭分类数据失败"
+//			br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
+//			return
+//		}
+//		groupMap := make(map[string]int)
+//		inlandId := 500
+//		for _, group := range groups {
+//			inlandId++
+//			groupMap[*group] = inlandId
+//		}
+//		var lists []data_manage.CoalmineSingalDataResp
+//		var resp data_manage.CoalmineSingalDataResp
+//
+//		classify := items[0].IndexName
+//		for i, item := range items {
+//			if item.IndexName != classify {
+//				lists = append(lists, resp)
+//				classify = item.IndexName
+//			}
+//			resp.IndexName = item.IndexName
+//			resp.IndexCode = item.IndexCode
+//			resp.Unit = item.Unit
+//			resp.GroupId = groupMap[item.GroupName]
+//			resp.GroupName = item.GroupName
+//			resp.Frequency = item.Frequency
+//			resp.ModifyTime = item.ModifyTime
+//			resp.ClassifyId = classifyId
+//
+//			//组装dataList
+//			var dataItem data_manage.DataList
+//			dataItem.DataTime = item.DataTime
+//			dataItem.Value = item.DealValue
+//			resp.DataList = append(resp.DataList, dataItem)
+//
+//			if i == len(items)-1 {
+//				lists = append(lists, resp)
+//			}
+//		}
+//		br.Ret = 200
+//		br.Success = true
+//		br.Msg = "获取成功"
+//		br.Data = lists
+//	default:
+//		br.Msg = "获取煤炭数据失败"
+//		br.ErrMsg = "获取煤炭度数据失败,Err: indexCode 错误"
+//		return
+//	}
+//}
+
+// ExportCoalList
+// @Title 导出煤炭江湖数据
+// @Description 导出煤炭江湖数据
+// @Param	ClassifyId query int true	"数据id"
+// @Param   IndexName   query   string  true       "名称关键词"
+// @Param   IndexCode   query   string  true       "指标唯一编码"
+// @Param   TypeName   query   string  true       "分类"
+// @Param   Frequency   query   string  false       "频度"
+// @Param   UnitName   query   string  false       "单位"
+// @Success 200  导出成功
+// @router /export/mtjh [get]
+/*func (this *TradeCommonController) ExportMtjhList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	classifyId, _ := this.GetInt("ClassifyId")
+	var suffix string
+	if classifyId == 1 {
+		suffix = "jsm_index"
+	} else if classifyId == 2 {
+		suffix = "company_index"
+	} else if classifyId == 3 {
+		suffix = "firm_index"
+	} else if classifyId == 4 {
+		suffix = "coastal_index"
+	} else if classifyId == 5 {
+		suffix = "inland_index"
+	}
+	breedName := this.GetString("TypeName") //分类
+
+	secNameList := make([]*models.EdbdataExportList, 0)
+
+	dir, _ := os.Executable()
+	exPath := filepath.Dir(dir)
+
+	downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
+	xlsxFile := xlsx.NewFile()
+
+	//不为空就是导出分类表
+	if breedName != "" {
+		//获取指标
+		var secNameList []*string
+		var err error
+		if classifyId == 1 {
+			secNameList, err = data_manage.GetClassifyJsmByGroupName(breedName)
+			if err != nil {
+				fmt.Println("获取数据失败,Err:" + err.Error())
+				return
+			}
+		} else {
+			secNameList, err = data_manage.GetClassifyFromCoalByGroupName(suffix, breedName)
+			if err != nil {
+				fmt.Println("获取数据失败,Err:" + err.Error())
+				return
+			}
+		}
+		if len(secNameList) <= 0 {
+			fmt.Println("secNameList长度为0")
+			return
+		}
+		sheetNew, err := xlsxFile.AddSheet(breedName)
+
+		if err != nil {
+			fmt.Println("新增Sheet失败", err.Error())
+			return
+		}
+		//sheetNew.SetColWidth()
+		//获取指标数据
+		windRow := sheetNew.AddRow()
+		secNameRow := sheetNew.AddRow()
+		indexCodeRow := sheetNew.AddRow()
+		frequencyRow := sheetNew.AddRow()
+		unitRow := sheetNew.AddRow()
+		lastModifyDateRow := sheetNew.AddRow()
+		//获取分类下指标最大数据量
+		var dataMax int
+		if classifyId == 1 {
+			dataMax, err = data_manage.GetCoalJsmMaxCount(breedName)
+			if err != nil {
+				fmt.Println("获取指标最大数据量失败", err.Error())
+				return
+			}
+		} else {
+			dataMax, err = data_manage.GetCoalCompanyMaxCount(suffix, breedName)
+			if err != nil {
+				fmt.Println("获取指标最大数据量失败", err.Error())
+				return
+			}
+		}
+
+		setRowIndex := 6
+		for k, sv := range secNameList {
+			//获取数据
+			dataList, err := data_manage.GetBaseFromCoalIndexByCode(suffix, *sv)
+			if err != nil {
+				br.Msg = "获取数据失败"
+				br.ErrMsg = "获取数据失败,Err:" + err.Error()
+				return
+			}
+			windRow.AddCell().SetValue(breedName)
+			secNameRow.AddCell().SetValue("指标名称")
+			indexCodeRow.AddCell().SetValue("指标ID")
+			frequencyRow.AddCell().SetValue("频率")
+			unitRow.AddCell().SetValue("单位")
+			lastModifyDateRow.AddCell().SetValue("更新时间")
+
+			secNameRow.AddCell().SetValue(dataList[0].IndexName)
+			indexCodeRow.AddCell().SetValue(dataList[0].IndexCode)
+			frequencyRow.AddCell().SetValue(dataList[0].Frequency)
+			unitRow.AddCell().SetValue(dataList[0].Unit)
+			lastModifyDateRow.AddCell().SetValue(dataList[0].ModifyTime)
+
+			windRow.AddCell()
+			windRow.AddCell()
+			secNameRow.AddCell()
+			indexCodeRow.AddCell()
+			frequencyRow.AddCell()
+			unitRow.AddCell()
+			lastModifyDateRow.AddCell()
+			min := k * 3
+			sheetNew.SetColWidth(min, min, 15)
+
+			if len(dataList) <= 0 {
+				for n := 0; n < dataMax; n++ {
+					rowIndex := setRowIndex + n
+					row := sheetNew.Row(rowIndex)
+					row.AddCell()
+					row.AddCell()
+					row.AddCell()
+				}
+			} else {
+				endRowIndex := 0
+				for rk, dv := range dataList {
+					rowIndex := setRowIndex + rk
+					row := sheetNew.Row(rowIndex)
+					if classifyId == 3 {
+						displayDateCell := row.AddCell()
+						displayDateCell.SetValue(dv.DataTime)
+					} else {
+						displayDate, _ := time.Parse(utils.FormatDate, dv.DataTime)
+						displayDateCell := row.AddCell()
+						style := new(xlsx.Style)
+						style.ApplyAlignment = true
+						style.Alignment.WrapText = true
+						displayDateCell.SetStyle(style)
+						displayDateCell.SetDate(displayDate)
+					}
+
+					row.AddCell().SetValue(dv.DealValue)
+					row.AddCell()
+					endRowIndex = rowIndex
+				}
+				if len(dataList) < dataMax {
+					dataLen := dataMax - len(dataList)
+					for n := 0; n < dataLen; n++ {
+						rowIndex := (endRowIndex + 1) + n
+						row := sheetNew.Row(rowIndex)
+						row.AddCell()
+						row.AddCell()
+						row.AddCell()
+					}
+				}
+			}
+		}
+	} else {
+		name := this.GetString("IndexName")
+		indexCode := this.GetString("IndexCode") //指标唯一编码
+		unit := this.GetString("UnitName")
+		modifyTime := this.GetString("ModifyTime")
+
+		sheet, err := xlsxFile.AddSheet("指标")
+		if err != nil {
+			br.Msg = "新增Sheet失败"
+			br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
+			return
+		}
+		//获取数据
+		dataList, err := data_manage.GetBaseFromCoalIndexByCode(suffix, indexCode)
+		if err != nil {
+			br.Msg = "获取数据失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+		//获取指标数据
+		windRow := sheet.AddRow()
+		windRow.AddCell().SetValue("中国煤炭网")
+		rowSecName := sheet.AddRow()
+		celSecName := rowSecName.AddCell()
+		celSecName.SetValue("指标名称")
+		cellSenName := rowSecName.AddCell()
+		cellSenName.SetValue(name)
+		indexCodeRow := sheet.AddRow()
+		indexCodeRow.AddCell().SetValue("指标ID")
+		indexCodeRow.AddCell().SetValue(indexCode)
+
+		rowFrequency := sheet.AddRow()
+		celFrequency := rowFrequency.AddCell()
+		celFrequency.SetValue("频率")
+		rowFrequency.AddCell().SetValue(dataList[0].Frequency)
+
+		rowUnit := sheet.AddRow()
+		celUnit := rowUnit.AddCell()
+		celUnit.SetValue("单位")
+		cellUnit := rowUnit.AddCell()
+		cellUnit.SetValue(unit)
+
+		rowModifyDate := sheet.AddRow()
+		rowModifyCell := rowModifyDate.AddCell()
+		rowModifyCell.SetValue("更新时间")
+		rowModifyCell = rowModifyDate.AddCell()
+		rowModifyCell.SetValue(modifyTime)
+
+		fmt.Println("len(dataList):", len(dataList))
+		dataMax, err := data_manage.GetCoalCount(suffix, breedName)
+		if err != nil {
+			fmt.Println("获取指标最大数据量失败", err.Error())
+			return
+		}
+		fmt.Println("dataMax:", dataMax)
+		if len(dataList) <= 0 {
+			for n := 0; n < dataMax; n++ {
+				rowIndex := 6 + n
+				row := sheet.Row(rowIndex)
+				row.AddCell()
+				row.AddCell()
+				row.AddCell()
+			}
+		} else {
+			endRowIndex := 0
+			for rk, dv := range dataList {
+				rowIndex := 6 + rk
+				row := sheet.Row(rowIndex)
+				displayDate, _ := time.Parse(utils.FormatDate, dv.DataTime)
+				displayDateCell := row.AddCell()
+				style := new(xlsx.Style)
+				style.ApplyAlignment = true
+				style.Alignment.WrapText = true
+				displayDateCell.SetStyle(style)
+				displayDateCell.SetDate(displayDate)
+
+				row.AddCell().SetValue(dv.DealValue)
+				row.AddCell()
+				endRowIndex = rowIndex
+			}
+			if len(dataList) < dataMax {
+				dataLen := dataMax - len(dataList)
+				for n := 0; n < dataLen; n++ {
+					rowIndex := (endRowIndex + 1) + n
+					row := sheet.Row(rowIndex)
+					row.AddCell()
+					row.AddCell()
+					row.AddCell()
+				}
+			}
+		}
+	}
+
+	err := xlsxFile.Save(downLoadnFilePath)
+	if err != nil {
+		br.Msg = "保存文件失败"
+		br.ErrMsg = "保存文件失败"
+		return
+	}
+	fileName := `中国煤炭网数据`
+	if len(secNameList) > 0 {
+		fileName = secNameList[0].ClassifyName
+	}
+	fileName += time.Now().Format("06.01.02") + `.xlsx` //文件名称
+	this.Ctx.Output.Download(downLoadnFilePath, fileName)
+	defer func() {
+		os.Remove(downLoadnFilePath)
+	}()
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "success"
+
+}
+*/

+ 169 - 0
models/data_manage/base_from_mtjh.go

@@ -0,0 +1,169 @@
+package data_manage
+
+import (
+	"eta/eta_api/utils"
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"time"
+)
+
+type BaseFromMtjhMapping struct {
+	BaseFromMtjhMappingId int       `orm:"column(base_from_mtjh_mapping_id);pk"`
+	IndexName             string    `description:"持买单量指标名称"`
+	IndexCode             string    `description:"持买单量指标编码"`
+	CreateTime            time.Time `description:"时间"`
+	Area                  string    `description:"区域"`
+	Port                  string    `description:"港口或码头"`
+	Variety               string    `description:"品种"`
+	Unit                  string    `description:"单位"`
+	Frequency             string    `description:"频率"`
+}
+
+type BaseFromMtjhIndex struct {
+	BaseFromMtjhIndexId int       `orm:"column(base_from_mtjh_index_id);pk"`
+	IndexName           string    `description:"持买单量指标名称"`
+	IndexCode           string    `description:"持买单量指标编码"`
+	DealValue           string    `description:"成交量"`
+	DataTime            string    `description:"数据日期"`
+	Area                string    `description:"区域"`
+	Port                string    `description:"港口或码头"`
+	Unit                string    `description:"单位"`
+	Frequency           string    `description:"频率"`
+	Variety             string    `description:"品种"`
+	CreateTime          time.Time `description:"插入时间"`
+	ModifyTime          time.Time `description:"修改时间"`
+}
+
+type BaseFromMtjhIndexItem struct {
+	BaseFromMtjhIndexId int       `orm:"column(base_from_mtjh_index_id);pk"`
+	IndexName           string    `description:"持买单量指标名称"`
+	IndexCode           string    `description:"持买单量指标编码"`
+	DealValue           string    `description:"成交量"`
+	DataTime            string    `description:"数据日期"`
+	Area                string    `description:"区域"`
+	Port                string    `description:"港口或码头"`
+	Unit                string    `description:"单位"`
+	Frequency           string    `description:"频率"`
+	Variety             string    `description:"品种"`
+	CreateTime          string `description:"插入时间"`
+	ModifyTime          string `description:"修改时间"`
+}
+
+// 查询指标
+func GetBaseFromMtjhMapping() (items []*BaseFromMtjhMapping, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_mtjh_mapping`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+// 查询指标
+func GetBaseFromMtjhIndex() (items []*BaseFromMtjhIndex, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_mtjh_index`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+// 添加数据
+func AddBaseFromMtjhIndex(item *BaseFromMtjhIndex) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+func AddBaseFromMtjhIndexMuti(items []*BaseFromMtjhIndex) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.InsertMulti(500, items)
+	return
+}
+
+// 添加指标
+func AddBaseFromMtjhMapping(item *BaseFromMtjhMapping) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+func AddBaseFromMtjhMappingMuti(items []*BaseFromMtjhMapping) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.InsertMulti(500, items)
+	return
+}
+
+func UpdateBaseFromMtjhIndex(item *BaseFromMtjhIndex) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE base_from_mtjh_index SET deal_value=?  WHERE index_name=?  AND  data_time = ?`
+	_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
+	return
+}
+
+func GetMtjhClassifyList() (list []*BaseFromMtjhMapping, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT * FROM base_from_mtjh_mapping group by area"
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+type BaseFromMtjhMappingItem struct {
+	BaseFromMtjhMappingId int    `orm:"column(base_from_mtjh_mapping_id);pk"`
+	IndexName             string `description:"持买单量指标名称"`
+	IndexCode             string `description:"持买单量指标编码"`
+	CreateTime            string `description:"时间"`
+	Area                  string `description:"区域"`
+	Port                  string `description:"港口或码头"`
+	Variety               string `description:"品种"`
+	Unit                  string `description:"单位"`
+	Frequency             string `description:"频率"`
+}
+
+func GetMtjhMapping(condition string, pars interface{}) (items []*BaseFromMtjhMappingItem, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM base_from_mtjh_mapping WHERE 1=1  `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY base_from_mtjh_mapping_id asc`
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+type BaseFromMtjhIndexList struct {
+	BaseFromMtjhMappingId int    `orm:"column(base_from_mtjh_mapping_id);pk"`
+	IndexName             string `description:"持买单量指标名称"`
+	IndexCode             string `description:"持买单量指标编码"`
+	DataTime              string `description:"数据日期"`
+	Area                  string `description:"区域"`
+	Port                  string `description:"港口或码头"`
+	Unit                  string `description:"单位"`
+	Frequency             string `description:"频率"`
+	CreateTime            string `description:"插入时间"`
+	ModifyTime            string `description:"修改时间"`
+	Variety               string `description:"品种"`
+	DataList              []*BaseFromMtjhIndexItem
+	Paging                *paging.PagingItem `description:"分页数据"`
+}
+
+
+func GetMtjhIndexDataCount(indexCode string) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT COUNT(1) AS count  FROM base_from_mtjh_index WHERE index_code=? `
+	err = o.Raw(sql, indexCode).QueryRow(&count)
+	return
+}
+
+
+func GetMtjhIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromMtjhIndexItem, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT *  FROM base_from_mtjh_index WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
+	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// GetMtjhItemList 模糊查询煤炭江湖数据库指标列表
+func GetMtjhItemList(keyword string) (items []*BaseFromMtjhMappingItem, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT * FROM base_from_mtjh_mapping WHERE CONCAT(index_name,index_code) LIKE ? "
+	_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+	return
+}

+ 27 - 0
routers/commentsRouter.go

@@ -8287,6 +8287,33 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "MtjhClassify",
+            Router: `/data/mtjh/classify`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "MtjhData",
+            Router: `/data/mtjh/data`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "MtjhSearchList",
+            Router: `/data/mtjh/search`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
         beego.ControllerComments{
             Method: "ShfeDataList",

+ 4 - 3
services/english_report.go

@@ -787,7 +787,8 @@ func MultiEnglishPolicyReportSync() (err error, errMsg string) {
 	//查询发布时间是当天的所有未同步的报告,并更新到英文研报
 	condition := ""
 	var pars []interface{}
-	startDate := time.Now().Format(utils.FormatDate)
+	//startDate := time.Now().Format(utils.FormatDate)
+	startDate := time.Now().AddDate(0, -1, 0).Format(utils.FormatDate)
 	condition += ` AND publish_time >= ? AND state = 1 AND (content !="" AND content is not null)`
 	pars = append(pars, startDate)
 	policyReports, err := models.GetEnglishPolicyReportByCondition(condition, pars)
@@ -799,8 +800,8 @@ func MultiEnglishPolicyReportSync() (err error, errMsg string) {
 		return
 	}
 	//新增英文研报
-	classifyNameFirst := "Macro"
-	classifySecondName := "China A-share Daily Check-in"
+	classifyNameFirst := "Equity"
+	classifySecondName := "A-share Daily"
 
 	// 根据分类名称查询分类ID
 	classifyInfo, err := models.GetEnglishClassifyByClassifyNameAndParentName(classifyNameFirst, classifySecondName)