|
@@ -1732,3 +1732,111 @@ func (this *ChartInfoController) CalculateMapping() {
|
|
|
br.Msg = "保存成功"
|
|
|
br.Data = item
|
|
|
}
|
|
|
+
|
|
|
+// CalculateComputeCorrelation
|
|
|
+// @Title 拟合残差计算相关性
|
|
|
+// @Description 拟合残差计算相关性接口
|
|
|
+// @Param request body data_manage.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
+// @Success Ret=200 返回指标id
|
|
|
+// @router /edb_info/calculate/compute_correlation [post]
|
|
|
+func (this *ChartInfoController) CalculateComputeCorrelation() {
|
|
|
+ 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 len(req.EdbInfoIdArr) != 2 {
|
|
|
+ br.Msg = "选择的指标异常,请重新选择"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fromEdbInfoId := req.EdbInfoIdArr[0].EdbInfoId
|
|
|
+
|
|
|
+ //校验时间格式
|
|
|
+ //数据格式:2022-11-01,2022-11-10
|
|
|
+ timeList := strings.Split(req.Formula, ",")
|
|
|
+ if len(timeList) != 2 {
|
|
|
+ br.Msg = "选择时间有误,请重新输入"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ startDate, err := time.ParseInLocation(utils.FormatDate, timeList[0], time.Local)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "开始日期有误,请重新输入"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ endDate, err := time.ParseInLocation(utils.FormatDate, timeList[1], time.Local)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "结束日期有误,请重新输入"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if utils.GetTimeSubDay(startDate, endDate) < 2 {
|
|
|
+ br.Msg = "日期间隔不得少于两天"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if fromEdbInfoId <= 0 {
|
|
|
+ br.Msg = "请选择指标"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ req2 := &data_manage.EdbInfoCalculateBatchSaveReqByEdbLib{
|
|
|
+ AdminId: sysUser.AdminId,
|
|
|
+ AdminName: sysUser.RealName,
|
|
|
+ EdbInfoId: req.EdbInfoId,
|
|
|
+ EdbName: req.EdbName,
|
|
|
+ Frequency: req.Frequency,
|
|
|
+ Unit: req.Unit,
|
|
|
+ ClassifyId: req.ClassifyId,
|
|
|
+ Formula: req.Formula, //N数值移动平均计算、环比值、环差值
|
|
|
+ FromEdbInfoId: req.FromEdbInfoId,
|
|
|
+ CalculateFormula: req.CalculateFormula,
|
|
|
+ Source: req.Source,
|
|
|
+ MoveType: req.MoveType,
|
|
|
+ MoveFrequency: req.MoveFrequency,
|
|
|
+
|
|
|
+ //CalculateFormula: edbInfo.CalculateFormula,
|
|
|
+ EdbInfoIdArr: req.EdbInfoIdArr,
|
|
|
+ Calendar: req.Calendar,
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用指标库去更新
|
|
|
+ reqJson, err := json.Marshal(req2)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ respItem, err := data.CalculateComputeCorrelation(string(reqJson))
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "新增失败"
|
|
|
+ br.ErrMsg = "新增失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if respItem.Ret == 200 {
|
|
|
+ br.Data = respItem.Data
|
|
|
+ } else {
|
|
|
+ br.Data = ``
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "计算成功"
|
|
|
+ br.IsAddLog = true
|
|
|
+}
|