|
@@ -5,6 +5,7 @@ import (
|
|
"eta/eta_chart_lib/models"
|
|
"eta/eta_chart_lib/models"
|
|
"eta/eta_chart_lib/models/request"
|
|
"eta/eta_chart_lib/models/request"
|
|
"eta/eta_chart_lib/models/response"
|
|
"eta/eta_chart_lib/models/response"
|
|
|
|
+ "eta/eta_chart_lib/services/data"
|
|
excel2 "eta/eta_chart_lib/services/data/excel"
|
|
excel2 "eta/eta_chart_lib/services/data/excel"
|
|
"eta/eta_chart_lib/services/excel"
|
|
"eta/eta_chart_lib/services/excel"
|
|
"eta/eta_chart_lib/utils"
|
|
"eta/eta_chart_lib/utils"
|
|
@@ -129,7 +130,7 @@ func (this *ExcelInfoController) GetTableDetail() {
|
|
br.ErrMsg = "表格json转结构体失败,Err:" + err.Error()
|
|
br.ErrMsg = "表格json转结构体失败,Err:" + err.Error()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- newResult, tmpErr, tmpErrMsg := excel2.GetMixedTableCellData(result)
|
|
|
|
|
|
+ newResult, tmpErr, tmpErrMsg := excel2.GetMixedTableCellData(result, this.Lang)
|
|
if tmpErr != nil {
|
|
if tmpErr != nil {
|
|
br.Msg = "获取失败"
|
|
br.Msg = "获取失败"
|
|
if tmpErrMsg != `` {
|
|
if tmpErrMsg != `` {
|
|
@@ -180,3 +181,119 @@ func (this *ExcelInfoController) GetTableDetail() {
|
|
br.Msg = "获取成功"
|
|
br.Msg = "获取成功"
|
|
br.Data = resp
|
|
br.Data = resp
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// Refresh
|
|
|
|
+// @Title 刷新
|
|
|
|
+// @Description 刷新接口
|
|
|
|
+// @Param UniqueCode query string true "表格id"
|
|
|
|
+// @router /refresh [get]
|
|
|
|
+func (this *ExcelInfoController) Refresh() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ if br.ErrMsg == "" {
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ }
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ uniqueCode := this.GetString("UniqueCode")
|
|
|
|
+ if uniqueCode == "" {
|
|
|
|
+ br.Msg = "参数错误"
|
|
|
|
+ br.ErrMsg = "参数错误, UniqueCode is empty"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ key := utils.HZ_CHART_LIB_EXCEL_TABLE_DETAIL_REFRESH + ":" + uniqueCode
|
|
|
|
+ ok := utils.Rc.SetNX(key, 1, time.Second*300)
|
|
|
|
+ if !ok {
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "表格刷新中"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ defer func() {
|
|
|
|
+ _ = utils.Rc.Delete(key)
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ // 获取数据详情
|
|
|
|
+ excelDetail, errMsg, err := excel2.GetExcelDetailInfoByExcelInfoId(uniqueCode, this.Lang)
|
|
|
|
+ if err != nil {
|
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "该表格已被删除,请刷新页面"
|
|
|
|
+ br.ErrMsg = "该表格已被删除,请刷新页面,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = errMsg
|
|
|
|
+ br.ErrMsg = "获取表格表信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 数据刷新(只有自定义表格有刷新)
|
|
|
|
+ if excelDetail.Source == utils.TIME_TABLE {
|
|
|
|
+ jsonByte, e := json.Marshal(excelDetail.TableData)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "自定义表格数据获取失败"
|
|
|
|
+ br.ErrMsg = "自定义表格数据获取失败,转json失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var tableData request.TableDataReq
|
|
|
|
+ if e = json.Unmarshal(jsonByte, &tableData); e != nil {
|
|
|
|
+ br.Msg = "自定义表格数据获取失败"
|
|
|
|
+ br.ErrMsg = "自定义表格数据获取失败,json转结构体失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if len(tableData.EdbInfoIdList) > 0 {
|
|
|
|
+ if e, _ = data.EdbInfoRefreshAllFromBase(tableData.EdbInfoIdList, false); e != nil {
|
|
|
|
+ br.Msg = "刷新失败"
|
|
|
|
+ br.ErrMsg = "刷新失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 数据刷新-混合表格
|
|
|
|
+ if excelDetail.Source == utils.MIXED_TABLE {
|
|
|
|
+ jsonByte, e := json.Marshal(excelDetail.TableData)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "刷新失败"
|
|
|
|
+ br.ErrMsg = "JSON格式化混合表格数据失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var tableData request.MixedTableReq
|
|
|
|
+ if e = json.Unmarshal(jsonByte, &tableData); e != nil {
|
|
|
|
+ br.Msg = "刷新失败"
|
|
|
|
+ br.ErrMsg = "解析混合表格数据失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ edbInfoIds := make([]int, 0)
|
|
|
|
+ edbInfoIdExist := make(map[int]bool)
|
|
|
|
+ if len(tableData.Data) > 0 {
|
|
|
|
+ for _, t := range tableData.Data {
|
|
|
|
+ for _, v := range t {
|
|
|
|
+ if v.EdbInfoId > 0 && !edbInfoIdExist[v.EdbInfoId] {
|
|
|
|
+ edbInfoIdExist[v.EdbInfoId] = true
|
|
|
|
+ edbInfoIds = append(edbInfoIds, v.EdbInfoId)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if len(edbInfoIds) > 0 {
|
|
|
|
+ if e, _ = data.EdbInfoRefreshAllFromBase(edbInfoIds, false); e != nil {
|
|
|
|
+ br.Msg = "刷新失败"
|
|
|
|
+ br.ErrMsg = "刷新混合表格数据失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 清除缓存
|
|
|
|
+ detailKey := utils.HZ_CHART_LIB_EXCEL_TABLE_DETAIL + ":" + excelDetail.UniqueCode
|
|
|
|
+ if utils.Re == nil {
|
|
|
|
+ _ = utils.Rc.Delete(detailKey)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "刷新成功"
|
|
|
|
+}
|