浏览代码

Merge remote-tracking branch 'origin/eta/1.0.2' into debug

# Conflicts:
#	go.sum
Roc 1 年之前
父节点
当前提交
c736a5d1d9

+ 30 - 29
controllers/data_manage/excel/custom_analysis_edb.go

@@ -8,7 +8,6 @@ import (
 	"eta/eta_api/models/data_manage/excel/response"
 	"eta/eta_api/services/data/excel"
 	"eta/eta_api/utils"
-	"fmt"
 	"strconv"
 	"strings"
 	"time"
@@ -47,16 +46,16 @@ func (c *CustomAnalysisController) AddEdb() {
 		br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(c.Ctx.Input.RequestBody)
 		return
 	}
-	var req request.SaveExcelInfoReq
+	var req request.AddEdb
 	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
 	if err != nil {
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	req.ExcelName = strings.Trim(req.ExcelName, " ")
-	if req.ExcelName == "" {
-		br.Msg = "请填写表格名称!"
+	req.EdbName = strings.Trim(req.EdbName, " ")
+	if req.EdbName == "" {
+		br.Msg = "请填写指标名称!"
 		br.IsSendEmail = false
 		return
 	}
@@ -67,8 +66,8 @@ func (c *CustomAnalysisController) AddEdb() {
 		return
 	}
 
-	if req.ExcelClassifyId <= 0 {
-		br.Msg = "分类参数错误!"
+	if req.ClassifyId <= 0 {
+		br.Msg = "请选择指标分类!"
 		br.IsSendEmail = false
 		return
 	}
@@ -86,16 +85,18 @@ func (c *CustomAnalysisController) AddEdb() {
 		return
 	}
 
-	err, errMsg, isSendEmail := excel.SaveCustomAnalysisTable(excelInfo, utils.TrimLRStr(req.ExcelName), req.Content, req.ExcelImage, req.ExcelClassifyId, req.OpSheetList)
-	if err != nil {
-		br.Msg = "保存失败"
-		if errMsg != `` {
-			br.Msg = errMsg
-		}
-		br.ErrMsg = "保存失败,Err:" + err.Error()
-		br.IsSendEmail = isSendEmail
-		return
-	}
+	excel.GetCustomAnalysisExcelData(excelInfo)
+
+	//err, errMsg, isSendEmail := excel.SaveCustomAnalysisTable(excelInfo, utils.TrimLRStr(req.ExcelName), req.Content, req.ExcelImage, req.ExcelClassifyId, req.OpSheetList)
+	//if err != nil {
+	//	br.Msg = "保存失败"
+	//	if errMsg != `` {
+	//		br.Msg = errMsg
+	//	}
+	//	br.ErrMsg = "保存失败,Err:" + err.Error()
+	//	br.IsSendEmail = isSendEmail
+	//	return
+	//}
 
 	// 更新excel下载地址(默认的EXCEL需要更新,自定义表格不需要更新)
 	//if req.Source == 1 {
@@ -131,15 +132,15 @@ func (c *CustomAnalysisController) AddEdb() {
 	br.IsAddLog = false //数据量太大了,不写入日志吧
 }
 
-func init() {
-	excelInfo, err := excelModel.GetExcelInfoById(160)
-	if err != nil {
-		fmt.Println("查找excel失败:", err)
-		return
-	}
-	_, err, _ = excel.GenerateExcelCustomAnalysisExcel(excelInfo)
-	if err != nil {
-		fmt.Println("生成excel失败:", err)
-		return
-	}
-}
+//func init() {
+//	excelInfo, err := excelModel.GetExcelInfoById(160)
+//	if err != nil {
+//		fmt.Println("查找excel失败:", err)
+//		return
+//	}
+//	_, err, _ = excel.GenerateExcelCustomAnalysisExcel(excelInfo)
+//	if err != nil {
+//		fmt.Println("生成excel失败:", err)
+//		return
+//	}
+//}

+ 1 - 0
go.mod

@@ -50,6 +50,7 @@ require (
 	github.com/aliyun/credentials-go v1.1.2 // indirect
 	github.com/andybalholm/cascadia v1.3.1 // indirect
 	github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20211218165449-dd623ecc2f02 // indirect
+	github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect
 	github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f // indirect
 	github.com/beorn7/perks v1.0.1 // indirect
 	github.com/bradfitz/gomemcache v0.0.0-20220106215444-fb4bf637b56d // indirect

+ 2 - 0
go.sum

@@ -351,9 +351,11 @@ github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7
 github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
 github.com/richardlehane/msoleps v1.0.3 h1:aznSZzrwYRl3rLKRT3gUk9am7T/mLNSnJINvN0AQoVM=
 github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
+github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
 github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
 github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
 github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
+github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4/go.mod h1:C1a7PQSMz9NShzorzCiG2fk9+xuCgLkPeCvMHYR2OWg=
 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=
 github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 h1:DAYUYH5869yV94zvCES9F51oYtN5oGlwjxJJz7ZCnik=
 github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg=

+ 9 - 7
models/data_manage/excel/request/excel.go

@@ -32,11 +32,13 @@ type SheetOp struct {
 }
 
 type AddEdb struct {
-	ExcelInfoId  int    `description:"表格ID"`
-	DateSequence string `description:"日期序列"`
-	DataSequence string `description:"数据序列"`
-	EdbName      string `description:"指标名称"`
-	ClassifyId   int    `description:"分类id"`
-	Frequency    string `description:"频率"`
-	Unit         string `description:"单位"`
+	ExcelInfoId     int      `description:"表格ID"`
+	DateSequenceStr string   `description:"日期序列"`
+	DateSequenceVal []string `description:"日期序列的值列表"`
+	DataSequenceStr string   `description:"数据序列"`
+	DataSequenceVal []string `description:"数据序列的值列表"`
+	EdbName         string   `description:"指标名称"`
+	ClassifyId      int      `description:"分类id"`
+	Frequency       string   `description:"频率"`
+	Unit            string   `description:"单位"`
 }

+ 70 - 0
services/data/excel/custom_analysis_edb.go

@@ -5,7 +5,10 @@ import (
 	"errors"
 	"eta/eta_api/models/data_manage/excel"
 	excelServices "eta/eta_api/services/excel"
+	"eta/eta_api/utils"
 	"fmt"
+	"github.com/araddon/dateparse"
+	"github.com/shopspring/decimal"
 )
 
 // GetCustomAnalysisExcelData 获取自定义分析的表格data数据
@@ -82,3 +85,70 @@ func GenerateExcelCustomAnalysisExcel(excelInfo *excel.ExcelInfo) (downloadFileP
 
 	return
 }
+
+// HandleEdbSequenceVal 处理日期集和数据集
+func HandleEdbSequenceVal(dateSequenceVal, dataSequenceVal []string) {
+	// 数据集
+	type dataStruct struct {
+		Value float64
+		Ok    bool
+	}
+	dataList := make([]dataStruct, 0)
+	{
+		var startData bool
+		for _, v := range dataSequenceVal {
+			// 如果没有数据集,那么就过滤
+			if v == `` {
+				// 如果开始插入数据了,那么就需要插入不存在值
+				if startData {
+					dataList = append(dataList, dataStruct{
+						Value: 0,
+						Ok:    false,
+					})
+				}
+				continue
+			}
+			startData = true
+
+			tmpValDec, tmpErr := decimal.NewFromString(v)
+			if tmpErr != nil {
+				dataList = append(dataList, dataStruct{
+					Value: 0,
+					Ok:    false,
+				})
+				continue
+			}
+			tmpVal, _ := tmpValDec.Float64()
+			dataList = append(dataList, dataStruct{
+				Value: tmpVal,
+				Ok:    true,
+			})
+		}
+	}
+
+	// 日期集
+	dateList := make([]string, 0)
+	{
+		var startData bool
+		for _, v := range dateSequenceVal {
+			// 如果没有数据集,那么就过滤
+			if v == `` {
+				// 如果开始插入数据了,那么就需要插入不存在值
+				if startData {
+					dateList = append(dateList, "")
+				}
+				continue
+			}
+			startData = true
+
+			t1, tmpErr := dateparse.ParseAny(v)
+			if tmpErr != nil {
+				dateList = append(dateList, "")
+				continue
+			}
+			dateList = append(dateList, t1.Format(utils.FormatDate))
+		}
+	}
+
+	return
+}