123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- 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
- }
|