zwxi 1 rok temu
rodzic
commit
4f861b06ba

+ 243 - 255
controllers/commodity_trade_base_index.go

@@ -2719,7 +2719,7 @@ func (this *TradeCommonController) MtjhSingleData() {
 		br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
 		return
 	}
-	items, err := data_manage.GetBaseFromMtjhIndexByCode(indexCode, startSize, pageSize)
+	items, err := data_manage.GetMtjhIndexData(indexCode, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取煤炭数据失败"
 		br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
@@ -2788,257 +2788,245 @@ func (this *TradeCommonController) MtjhFrequency() {
 // @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()
-//	}()
-//	area, _ := this.GetInt("Area")
-//
-//	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 {
-//		indexCode := this.GetString("IndexCode") //指标唯一编码
-//
-//		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"
-//
-//}
+func (this *TradeCommonController) ExportMtjhList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	area := this.GetString("Area")
+
+	secNameList := make([]*models.EdbdataExportList, 0)
+
+	dir, _ := os.Executable()
+	exPath := filepath.Dir(dir)
+
+	downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
+	xlsxFile := xlsx.NewFile()
+
+	//不为空就是导出分类表
+	if area != "" {
+		//获取指标
+		var secNameList []*string
+		var err error
+
+		secNameList, err = data_manage.GetClassifyMtjhByArea(area)
+		if err != nil {
+			fmt.Println("获取数据失败,Err:" + err.Error())
+			return
+		}
+
+		if len(secNameList) <= 0 {
+			fmt.Println("secNameList长度为0")
+			return
+		}
+		sheetNew, err := xlsxFile.AddSheet(area)
+
+		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
+
+		dataMax, err = data_manage.GetCoalMtjhMaxCount(area)
+		if err != nil {
+			fmt.Println("获取指标最大数据量失败", err.Error())
+			return
+		}
+
+		setRowIndex := 6
+		for k, sv := range secNameList {
+			//获取数据
+			dataList, err := data_manage.GetBaseFromMtjhIndexByCode(*sv)
+			if err != nil {
+				br.Msg = "获取数据失败"
+				br.ErrMsg = "获取数据失败,Err:" + err.Error()
+				return
+			}
+			windRow.AddCell().SetValue(area)
+			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)
+
+					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 {
+		indexCode := this.GetString("IndexCode") //指标唯一编码
+
+		sheet, err := xlsxFile.AddSheet("指标")
+		if err != nil {
+			br.Msg = "新增Sheet失败"
+			br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
+			return
+		}
+		//获取数据
+		dataList, err := data_manage.GetBaseFromMtjhIndexByCode(indexCode)
+		if err != nil {
+			br.Msg = "获取数据失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+
+		mapping, err := data_manage.GetMtjhMappingItemByCode(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(mapping.IndexName)
+		indexCodeRow := sheet.AddRow()
+		indexCodeRow.AddCell().SetValue("指标ID")
+		indexCodeRow.AddCell().SetValue(indexCode)
+
+		rowFrequency := sheet.AddRow()
+		celFrequency := rowFrequency.AddCell()
+		celFrequency.SetValue("频率")
+		rowFrequency.AddCell().SetValue(mapping.Frequency)
+
+		rowUnit := sheet.AddRow()
+		celUnit := rowUnit.AddCell()
+		celUnit.SetValue("单位")
+		cellUnit := rowUnit.AddCell()
+		cellUnit.SetValue(mapping.Unit)
+
+		rowModifyDate := sheet.AddRow()
+		rowModifyCell := rowModifyDate.AddCell()
+		rowModifyCell.SetValue("更新时间")
+		rowModifyCell = rowModifyDate.AddCell()
+		rowModifyCell.SetValue(dataList[len(dataList) - 1].ModifyTime)
+
+		fmt.Println("len(dataList):", len(dataList))
+		dataMax, err := data_manage.GetMtjhCount(indexCode)
+		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"
+
+}

+ 40 - 3
models/data_manage/base_from_mtjh.go

@@ -167,10 +167,10 @@ func GetMtjhItemList(keyword string) (items []*BaseFromMtjhMappingItem, err erro
 }
 
 // 查询数据
-func GetBaseFromMtjhIndexByCode(indexCode string, startSize, pageSize int) (items []*BaseFromMtjhIndexItem, err error) {
+func GetBaseFromMtjhIndexByCode(indexCode string) (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)
+	sql := `SELECT * FROM base_from_mtjh_index WHERE index_code=? ORDER BY data_time DESC `
+	_, err = o.Raw(sql, indexCode).QueryRows(&items)
 	return
 }
 
@@ -188,4 +188,41 @@ func GetMtjhFrequencyByArea(area string) (items []*string, err error) {
 	sql := "SELECT frequency FROM base_from_mtjh_index WHERE area=?  group by area "
 	_,err = o.Raw(sql, area).QueryRows(&items)
 	return
+}
+
+func GetClassifyMtjhByArea(area string) (items []*string, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT DISTINCT index_code FROM base_from_mtjh_index WHERE area=? `
+	_, err = o.Raw(sql, area).QueryRows(&items)
+	return
+}
+
+func GetCoalMtjhMaxCount(area string) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT
+	MAX( t.num ) AS count 
+FROM
+	(
+	SELECT
+		COUNT( 1 ) AS num 
+	FROM
+		base_from_mtjh_index 
+	WHERE
+		area =? 
+GROUP BY
+	index_name ) AS t `
+	err = o.Raw(sql, area).QueryRow(&count)
+	return
+}
+
+func GetMtjhCount(indexCode string) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := `SELECT
+		COUNT( 1 ) AS num 
+	FROM
+		base_from_mtjh_index
+	WHERE
+		index_code =? `
+	err = o.Raw(sql, indexCode).QueryRow(&count)
+	return
 }

+ 9 - 0
routers/commentsRouter.go

@@ -8134,6 +8134,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:TradeCommonController"],
+        beego.ControllerComments{
+            Method: "ExportMtjhList",
+            Router: `/export/mtjh`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers:UserLoginController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:UserLoginController"],
         beego.ControllerComments{
             Method: "AreaCodeList",