Sfoglia il codice sorgente

Merge branch 'eta/1.1.6' into debug

Roc 1 anno fa
parent
commit
adaaebfe7a

+ 49 - 5
controllers/data_manage/excel/excel_info.go

@@ -2029,6 +2029,55 @@ func (c *ExcelInfoController) Copy() {
 	br.IsAddLog = true
 }
 
+// GetSystemDate
+// @Title 获取系统日期(包含计算日期)
+// @Description 获取系统日期(包含计算日期)
+// @Param	request	body request.MixedTableCellDataReq true "type json string"
+// @router /excel_info/get_system_date [post]
+func (c *ExcelInfoController) GetSystemDate() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	var req request.MixedTableCellDataReq
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	date, err, errMsg := excel2.HandleDate(req.DataTimeType, req.Value)
+	if err != nil {
+		br.Msg = "获取系统日期失败"
+		if errMsg != `` {
+			br.Msg = errMsg
+		}
+		br.ErrMsg = "获取系统日期失败,Err:" + err.Error()
+		return
+	}
+
+	type resp struct {
+		Date string
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取系统日期成功"
+	br.Data = resp{
+		Date: date,
+	}
+}
+
 //func init() {
 //	//list, err := data.GetFirstEdbDataList(102739, 12)
 //	list, err := data.GetFirstEdbDataList(101323, 12)
@@ -2152,8 +2201,3 @@ func decompressZip(src string) error {
 	}
 	return nil
 }
-
-func init() {
-	val := `{"Source":3,Frequency":"本周","Day":"周日"}`
-	fmt.Println(excel2.HandleDate(request.SystemDateT, val))
-}

+ 7 - 1
models/data_manage/excel/request/mixed_table.go

@@ -34,7 +34,7 @@ type MixedTableCellDataReq struct {
 	Uid          string `description:"单元格唯一标识"`
 	DataType     int    `description:"数据类型,1:日期,2:指标,3:自定义文本,4:插值"`
 	DataTime     string `description:"所属日期"`
-	DataTimeType int    `description:"日期类型:0:手动输入日期;1:导入系统日期;2:导入系统日期计算后的日期;3:导入系统日期相关的指定频率(所在周/旬/月/季/半年/年的最后/最早一天);4:导入指标日期(指标库的最新日期);"`
+	DataTimeType int    `description:"日期类型:0:手动输入日期;1:导入系统日期;;3:导入指标日期(指标库的最新日期);"`
 	EdbInfoId    int    `description:"指标id"`
 	ShowValue    string `description:"展示值"`
 	Value        string `description:"实际值"`
@@ -66,3 +66,9 @@ type SystemDateConf struct {
 	Frequency          string `description:"指定频度"`
 	Day                string `description:"指定日期"`
 }
+
+// EdbDateConf
+// @Description: 导入指标日期配置
+type EdbDateConf struct {
+	EdbInfoId int `description:"指标id"`
+}

+ 9 - 0
routers/commentsRouter.go

@@ -376,6 +376,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/excel:ExcelInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/excel:ExcelInfoController"],
+        beego.ControllerComments{
+            Method: "GetSystemDate",
+            Router: `/excel_info/get_system_date`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/excel:ExcelInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/excel:ExcelInfoController"],
         beego.ControllerComments{
             Method: "List",

+ 4 - 1
services/data/excel/excel_info.go

@@ -75,7 +75,10 @@ func GetExcelDetailInfoByExcelInfoId(excelInfoId int) (excelDetail response.Exce
 		}
 		newData, tmpErr, tmpErrMsg := GetMixedTableCellData(result.CellRelation, result.Data)
 		if tmpErr != nil {
-			errMsg = tmpErrMsg
+			errMsg = "获取失败"
+			if tmpErrMsg != `` {
+				errMsg = tmpErrMsg
+			}
 			err = errors.New("获取最新的数据失败,Err:" + tmpErr.Error())
 			return
 		}

+ 19 - 6
services/data/excel/mixed_table.go

@@ -30,6 +30,9 @@ func GetMixedTableCellData(cellRelationConf string, config [][]request.MixedTabl
 
 	// 找出所有的关联指标id
 	config, edbInfoIdList, _, err, errMsg := handleConfig(config)
+	if err != nil {
+		return
+	}
 
 	// 查询所有关联的指标信息
 	edbInfoList, err := data_manage.GetEdbInfoByIdList(edbInfoIdList)
@@ -125,6 +128,16 @@ func GetMixedTableCellData(cellRelationConf string, config [][]request.MixedTabl
 	return
 }
 
+// handleConfig
+// @Description: 处理混合表格配置
+// @author: Roc
+// @datetime2023-10-27 13:24:53
+// @param configList [][]request.MixedTableCellDataReq
+// @return newConfig [][]request.MixedTableCellDataReq
+// @return edbInfoIdList []int
+// @return dataEdbInfoIdList []int
+// @return err error
+// @return errMsg string
 func handleConfig(configList [][]request.MixedTableCellDataReq) (newConfig [][]request.MixedTableCellDataReq, edbInfoIdList []int, dataEdbInfoIdList []int, err error, errMsg string) {
 	edbInfoIdList = make([]int, 0)
 	dataEdbInfoIdList = make([]int, 0)
@@ -138,7 +151,12 @@ func handleConfig(configList [][]request.MixedTableCellDataReq) (newConfig [][]r
 				dataEdbInfoIdList = append(dataEdbInfoIdList, cell.EdbInfoId)
 			case request.DateDT: // 日期类型
 				if cell.DataTimeType == request.EdbDateDT {
-					edbInfoIdList = append(edbInfoIdList, cell.EdbInfoId)
+					var config request.EdbDateConf
+					err = json.Unmarshal([]byte(cell.Value), &config)
+					if err != nil {
+						return
+					}
+					edbInfoIdList = append(edbInfoIdList, config.EdbInfoId)
 				} else {
 					date, tmpErr, tmpErrMsg := handleDate(cell.DataTimeType, cell.Value)
 					if tmpErr != nil {
@@ -216,11 +234,6 @@ func handleSystemDateT(confStr string) (date string, err error, errMsg string) {
 	if err != nil {
 		return
 	}
-	type SystemCalculateVal struct {
-		Source    int `description:"类型,"`
-		Num       int
-		Frequency string
-	}
 	switch config.Source {
 	case request.SystemCurrDateT:
 		date = time.Now().Format(utils.FormatDate)