|
@@ -0,0 +1,173 @@
|
|
|
|
+package data_manage
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "encoding/json"
|
|
|
|
+ "eta/eta_mobile/models"
|
|
|
|
+ "eta/eta_mobile/models/data_manage"
|
|
|
|
+ "eta/eta_mobile/services/data"
|
|
|
|
+ "eta/eta_mobile/utils"
|
|
|
|
+ "fmt"
|
|
|
|
+ "strconv"
|
|
|
|
+ "time"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+// @Title 累计值转月-同比值-同差等重新计算
|
|
|
|
+// @Description 累计值转月-同比值-同差等重新计算接口
|
|
|
|
+// @Param request body data_manage.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
|
+// @Success Ret=200 返回指标id
|
|
|
|
+// @router /edb_info/calculate/batch/reset [post]
|
|
|
|
+func (this *ChartInfoController) CalculateBatchReset() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ var req data_manage.EdbInfoCalculateBatchSaveReq
|
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if req.EdbInfoId <= 0 {
|
|
|
|
+ br.Msg = "参数错误"
|
|
|
|
+ br.ErrMsg = "参数错误:EdbInfoId:" + strconv.Itoa(req.EdbInfoId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ edbInfo, err := data_manage.GetEdbInfoById(req.EdbInfoId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "指标已被删除,请刷新页面"
|
|
|
|
+ br.ErrMsg = "指标已删除,请刷新页面:Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "重新计算失败"
|
|
|
|
+ br.ErrMsg = "获取指标信息失败:Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ uniqueCode := edbInfo.UniqueCode
|
|
|
|
+ sourName := edbInfo.SourceName
|
|
|
|
+ edbInfoId := edbInfo.EdbInfoId
|
|
|
|
+ //if source == utils.DATA_SOURCE_CALCULATE {
|
|
|
|
+ // //检验公式
|
|
|
|
+ // var formulaStr string
|
|
|
|
+ // var edbInfoIdBytes []string
|
|
|
|
+ // for _, v := range fromEdbInfoList {
|
|
|
|
+ // formulaStr += v.FromTag + ","
|
|
|
|
+ // edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
|
|
|
|
+ // }
|
|
|
|
+ // formulaStr = strings.Trim(formulaStr, ",")
|
|
|
|
+ // formulaMap := data.CheckFormula(req.CalculateFormula)
|
|
|
|
+ // for _, v := range formulaMap {
|
|
|
|
+ // if !strings.Contains(formulaStr, v) {
|
|
|
|
+ // br.Msg = "公式错误,请重新填写"
|
|
|
|
+ // return
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ //
|
|
|
|
+ // edbInfoList := make([]*data_manage.EdbInfo, 0)
|
|
|
|
+ //
|
|
|
|
+ // for _, v := range fromEdbInfoList {
|
|
|
|
+ // edbInfo, err := data_manage.GetEdbInfoById(v.FromEdbInfoId)
|
|
|
|
+ // if err != nil {
|
|
|
|
+ // if err.Error() == utils.ErrNoRow() {
|
|
|
|
+ // br.Msg = "重新计算失败"
|
|
|
|
+ // br.Msg = "指标 " + strconv.Itoa(v.FromEdbInfoId) + " 不存在"
|
|
|
|
+ // return
|
|
|
|
+ // }
|
|
|
|
+ // br.Msg = "重新计算失败"
|
|
|
|
+ // br.Msg = "获取指标失败:Err:" + err.Error()
|
|
|
|
+ // return
|
|
|
|
+ // }
|
|
|
|
+ // edbInfoList = append(edbInfoList, edbInfo)
|
|
|
|
+ // }
|
|
|
|
+ // //清除历史数据
|
|
|
|
+ // err = data_manage.DeleteCalculateData(edbInfoId)
|
|
|
|
+ // if err != nil {
|
|
|
|
+ // br.Msg = "重新计算失败"
|
|
|
|
+ // br.Msg = "获取指标失败:Err:" + err.Error()
|
|
|
|
+ // return
|
|
|
|
+ // }
|
|
|
|
+ // err = data.Calculate(edbInfoList, int(edbInfoId), edbCode, edbInfo.CalculateFormula, edbInfoIdBytes)
|
|
|
|
+ // if err != nil {
|
|
|
|
+ // br.Msg = "重新计算失败"
|
|
|
|
+ // br.Msg = "生成计算指标失败,Calculate Err:" + err.Error()
|
|
|
|
+ // return
|
|
|
|
+ // }
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_LJZZY {
|
|
|
|
+ // _, err = data_manage.AddCalculateLjzzy(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_TBZ {
|
|
|
|
+ // sourName = "同比值"
|
|
|
|
+ // edbInfoId, err = data_manage.AddCalculateTbz(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_TCZ {
|
|
|
|
+ // sourName = "同差值"
|
|
|
|
+ // edbInfoId, err = data_manage.AddCalculateTcz(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_NSZYDPJJS {
|
|
|
|
+ // sourName = "N数值移动平均计算"
|
|
|
|
+ // formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
|
|
|
|
+ // edbInfoId, err = data_manage.AddCalculateNszydpjjs(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName, formulaInt)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_HBZ {
|
|
|
|
+ // sourName = "环比值"
|
|
|
|
+ // formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
|
|
|
|
+ // edbInfoId, err = data_manage.AddCalculateHbz(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName, formulaInt)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_HCZ {
|
|
|
|
+ // sourName = "环差值"
|
|
|
|
+ // formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
|
|
|
|
+ // edbInfoId, err = data_manage.AddCalculateHcz(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName, formulaInt)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_BP {
|
|
|
|
+ // sourName = "变频"
|
|
|
|
+ // edbInfoId, err = data_manage.AddCalculateBp(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_TIME_SHIFT {
|
|
|
|
+ // sourName = "时间移位"
|
|
|
|
+ // if req.MoveFrequency == "" {
|
|
|
|
+ // req.MoveFrequency = edbInfo.MoveFrequency
|
|
|
|
+ // }
|
|
|
|
+ // if req.Formula == "" {
|
|
|
|
+ // req.Formula = edbInfo.CalculateFormula
|
|
|
|
+ // }
|
|
|
|
+ // edbInfoId, err = data_manage.AddCalculateTimeShift(&req, fromEdbInfo, edbCode, uniqueCode, sysUser.AdminId, sysUser.RealName)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_ZJPJ {
|
|
|
|
+ // sourName = "直接拼接"
|
|
|
|
+ // err = data_manage.RefreshAllCalculateZjpj(edbInfo)
|
|
|
|
+ //} else if source == utils.DATA_SOURCE_CALCULATE_LJZTBPJ {
|
|
|
|
+ // sourName = "累计值同比拼接"
|
|
|
|
+ // err = data_manage.RefreshAllCalculateLjztbpj(edbInfo)
|
|
|
|
+ //} else {
|
|
|
|
+ // br.Msg = "无效计算方式"
|
|
|
|
+ // br.ErrMsg = "无效计算方式,source:" + strconv.Itoa(source)
|
|
|
|
+ // return
|
|
|
|
+ //}
|
|
|
|
+
|
|
|
|
+ // 重新计算
|
|
|
|
+ err, isAsync := data.EdbInfoRefreshAllFromBaseV2(edbInfoId, true)
|
|
|
|
+ if err != nil {
|
|
|
|
+ fmt.Println(edbInfoId, "RefreshEdbCalculateData err", time.Now())
|
|
|
|
+ br.Msg = "重新计算失败"
|
|
|
|
+ br.ErrMsg = "生成" + sourName + "失败,RefreshEdbCalculateData Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ resp := new(data_manage.AddEdbInfoResp)
|
|
|
|
+ resp.EdbInfoId = edbInfoId
|
|
|
|
+ resp.UniqueCode = uniqueCode
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "重新计算成功"
|
|
|
|
+ if isAsync {
|
|
|
|
+ br.Msg = "该指标关联指标较多,请10分钟后刷新页面查看最新数据"
|
|
|
|
+ }
|
|
|
|
+ br.Data = resp
|
|
|
|
+ br.IsAddLog = true
|
|
|
|
+}
|