|
@@ -18,10 +18,6 @@ type CalculateController struct {
|
|
|
BaseAuthController
|
|
|
}
|
|
|
|
|
|
-// Add
|
|
|
-// @Title 新增计算指标接口
|
|
|
-// @Description 新增计算指标接口
|
|
|
-// @Success 200 {object} models.EdbInfoCalculateSaveReq
|
|
|
// @router /add [post]
|
|
|
func (this *CalculateController) Add() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -69,21 +65,18 @@ func (this *CalculateController) Add() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //加入缓存机制,避免创建同一个名称的指标 start
|
|
|
redisKey := fmt.Sprint("edb_lib:edb_info:calculate:add:", utils.DATA_SOURCE_CALCULATE, ":", req.EdbName)
|
|
|
isExist := utils.Rc.IsExist(redisKey)
|
|
|
if isExist {
|
|
|
br.Msg = "指标正在处理,请勿重复提交"
|
|
|
return
|
|
|
} else {
|
|
|
- //设置3分钟缓存
|
|
|
utils.Rc.SetNX(redisKey, 1, time.Second*300)
|
|
|
defer func() {
|
|
|
_ = utils.Rc.Delete(redisKey)
|
|
|
}()
|
|
|
}
|
|
|
|
|
|
- // 新增
|
|
|
edbInfo, uniqueCode, err, errMsg := services.EdbCalculateAdd(req, this.Lang)
|
|
|
if err != nil {
|
|
|
br.Msg = err.Error()
|
|
@@ -91,7 +84,6 @@ func (this *CalculateController) Add() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //处理同名指标
|
|
|
{
|
|
|
edbNameList, e := models.GetEdbInfoByName(req.EdbName)
|
|
|
if e != nil {
|
|
@@ -112,13 +104,11 @@ func (this *CalculateController) Add() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 更新指标最大最小值
|
|
|
err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 判断是否需要禁用
|
|
|
go services.DisableEdbInfoNoUpdate(edbInfo)
|
|
|
resp := models.AddEdbInfoResp{
|
|
|
EdbInfoId: edbInfo.EdbInfoId,
|
|
@@ -131,10 +121,6 @@ func (this *CalculateController) Add() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// Edit
|
|
|
-// @Title 编辑计算指标接口
|
|
|
-// @Description 编辑计算指标接口
|
|
|
-// @Success 200 {object} models.EdbInfoCalculateSaveReq
|
|
|
// @router /edit [post]
|
|
|
func (this *CalculateController) Edit() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -188,9 +174,6 @@ func (this *CalculateController) Edit() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //todo 校验空值类型,max、min空值类型
|
|
|
- //todo req.EdbInfoIdArr根据tag排序,排成A,B,AB,这种格式
|
|
|
-
|
|
|
calculateFormula := req.CalculateFormula
|
|
|
calculateFormula = strings.Replace(calculateFormula, "(", "(", -1)
|
|
|
calculateFormula = strings.Replace(calculateFormula, ")", ")", -1)
|
|
@@ -198,15 +181,9 @@ func (this *CalculateController) Edit() {
|
|
|
calculateFormula = strings.Replace(calculateFormula, "。", ".", -1)
|
|
|
calculateFormula = strings.Replace(calculateFormula, "%", "*0.01", -1)
|
|
|
req.CalculateFormula = calculateFormula
|
|
|
- fmt.Println("calculateFormula:" + calculateFormula)
|
|
|
-
|
|
|
- //判断是否重复指标
|
|
|
edbInfoMap := make(map[int]string)
|
|
|
- //移除研究员选择指标中的未使用的指标
|
|
|
{
|
|
|
- //转大写的计算公式
|
|
|
upperCalculateFormulaStr := strings.ToUpper(req.CalculateFormula)
|
|
|
- //用到的指标
|
|
|
newEdbInfoIdArr := make([]models.EdbInfoFromTag, 0)
|
|
|
for _, tmpEdbInfo := range req.EdbInfoIdArr {
|
|
|
_, ok := edbInfoMap[tmpEdbInfo.EdbInfoId]
|
|
@@ -224,7 +201,6 @@ func (this *CalculateController) Edit() {
|
|
|
req.EdbInfoIdArr = newEdbInfoIdArr
|
|
|
}
|
|
|
|
|
|
- // 根据指标名称和指标ID校验库中是否还存在其他同名指标
|
|
|
existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
|
|
|
if err != nil {
|
|
|
br.Msg = "判断指标名称是否存在失败"
|
|
@@ -238,7 +214,6 @@ func (this *CalculateController) Edit() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //判断公式,指标是否有改动
|
|
|
edbInfoDetail, err := models.GetEdbInfoById(req.EdbInfoId)
|
|
|
if err != nil {
|
|
|
br.Msg = "修改失败"
|
|
@@ -250,7 +225,6 @@ func (this *CalculateController) Edit() {
|
|
|
br.Msg = "指标信息不存在,EdbInfoId:" + strconv.Itoa(req.EdbInfoId)
|
|
|
return
|
|
|
}
|
|
|
- // 记录指标原始的基本信息
|
|
|
oldEdbName := edbInfoDetail.EdbName
|
|
|
oldFrequency := edbInfoDetail.Frequency
|
|
|
oldUnit := edbInfoDetail.Unit
|
|
@@ -261,7 +235,6 @@ func (this *CalculateController) Edit() {
|
|
|
needCalculate = true
|
|
|
}
|
|
|
|
|
|
- //检验公式
|
|
|
var formulaStr string
|
|
|
var edbInfoIdBytes []string
|
|
|
var edbInfoIdArr []string
|
|
@@ -308,7 +281,6 @@ func (this *CalculateController) Edit() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 额外赋值
|
|
|
switch this.Lang {
|
|
|
case utils.EnLangVersion:
|
|
|
req.EdbNameEn = req.EdbName
|
|
@@ -321,7 +293,6 @@ func (this *CalculateController) Edit() {
|
|
|
req.UnitEn = edbInfoDetail.UnitEn
|
|
|
}
|
|
|
|
|
|
- //重新计算
|
|
|
err, errMsg := models.EditCalculateInfo(edbInfoDetail, req, formulaSlice, edbInfoIdBytes, needCalculate)
|
|
|
if err != nil {
|
|
|
br.Msg = "生成计算指标失败"
|
|
@@ -332,14 +303,12 @@ func (this *CalculateController) Edit() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 更新指标最大最小值
|
|
|
err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfoDetail)
|
|
|
if err != nil {
|
|
|
br.Msg = errMsg
|
|
|
br.ErrMsg = err.Error()
|
|
|
return
|
|
|
}
|
|
|
- // 记录基础信息变更日志
|
|
|
oldEdbInfo := new(models.EdbInfo)
|
|
|
oldEdbInfo.EdbInfoId = edbInfoDetail.EdbInfoId
|
|
|
oldEdbInfo.EdbName = oldEdbName
|
|
@@ -362,7 +331,6 @@ func (this *CalculateController) Edit() {
|
|
|
EdbInfoId: edbInfoDetail.EdbInfoId,
|
|
|
UniqueCode: edbInfoDetail.UniqueCode,
|
|
|
}
|
|
|
- // 重置计算指标中的引用关系
|
|
|
go services.ResetEdbRelation(edbInfoDetail.EdbInfoId)
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -371,11 +339,6 @@ func (this *CalculateController) Edit() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// BatchSave
|
|
|
-// @Title 累计值转月-同比值-同差等计算新增
|
|
|
-// @Description 累计值转月-同比值-同差等计算新增接口
|
|
|
-// @Param request body models.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /batch/save [post]
|
|
|
func (this *CalculateController) BatchSave() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -416,7 +379,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 基础指标id
|
|
|
fromEdbInfoId := req.FromEdbInfoId
|
|
|
|
|
|
var formulaInt int
|
|
@@ -433,23 +395,18 @@ func (this *CalculateController) BatchSave() {
|
|
|
return
|
|
|
}
|
|
|
case utils.DATA_SOURCE_CALCULATE_ZJPJ:
|
|
|
- //直接拼接指标
|
|
|
- //校验时间格式
|
|
|
_, err = time.ParseInLocation(utils.FormatDate, req.Formula, time.Local)
|
|
|
if err != nil {
|
|
|
br.Msg = "拼接日期有误,请重新输入"
|
|
|
return
|
|
|
}
|
|
|
case utils.DATA_SOURCE_CALCULATE_NHCC: //拟合残差指标
|
|
|
- //指标校验
|
|
|
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 = "选择时间有误,请重新输入"
|
|
@@ -497,22 +454,18 @@ func (this *CalculateController) BatchSave() {
|
|
|
br.Msg = "请选择指标"
|
|
|
return
|
|
|
}
|
|
|
- //加入缓存机制,避免创建同一个名称的指标 start
|
|
|
redisKey := fmt.Sprint("edb_lib:edb_info:calculate:batch:save:", req.Source, ":", req.EdbName)
|
|
|
isExist := utils.Rc.IsExist(redisKey)
|
|
|
if isExist {
|
|
|
br.Msg = "指标正在处理,请勿重复提交"
|
|
|
return
|
|
|
} else {
|
|
|
- //设置3分钟缓存
|
|
|
utils.Rc.SetNX(redisKey, 1, time.Second*300)
|
|
|
defer func() {
|
|
|
_ = utils.Rc.Delete(redisKey)
|
|
|
}()
|
|
|
}
|
|
|
- //加入缓存机制,避免创建同一个名称的指标 end
|
|
|
|
|
|
- // 根据指标名称和指标ID校验库中是否还存在其他同名指标
|
|
|
existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
|
|
|
if err != nil {
|
|
|
br.Msg = "判断指标名称是否存在失败"
|
|
@@ -527,7 +480,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 来源指标
|
|
|
var fromEdbInfo *models.EdbInfo
|
|
|
if fromEdbInfoId > 0 {
|
|
|
fromEdbInfo, err = models.GetEdbInfoById(fromEdbInfoId)
|
|
@@ -538,7 +490,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //生成指标编码
|
|
|
edbCode, err := utils.GenerateEdbCode(1, "")
|
|
|
if err != nil {
|
|
|
br.Msg = "指标生成失败"
|
|
@@ -714,7 +665,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
sourName = utils.DATA_SOURCE_NAME_CALCULATE_NH
|
|
|
edbInfo, err = models.AddCalculateNh(&req, fromEdbInfo, edbCode, uniqueCode, sysUserId, sysUserName)
|
|
|
case utils.DATA_SOURCE_CALCULATE_KSZS:
|
|
|
- //关联的指标信息
|
|
|
if len(req.EdbInfoIdArr) < 2 {
|
|
|
br.Msg = "指标数量不能小于2个,请重新选择"
|
|
|
br.ErrMsg = "指标数量不能小于2个,请重新选择"
|
|
@@ -724,7 +674,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
sourName = utils.DATA_SOURCE_NAME_CALCULATE_KSZS
|
|
|
edbInfo, err = models.AddCalculateKszs(&req, edbCode, uniqueCode, sysUserId, sysUserName)
|
|
|
case utils.DATA_SOURCE_CALCULATE_CORRELATION:
|
|
|
- //关联的指标信息
|
|
|
if len(req.EdbInfoIdArr) < 2 {
|
|
|
br.Msg = "指标数量不能小于2个,请重新选择"
|
|
|
br.ErrMsg = "指标数量不能小于2个,请重新选择"
|
|
@@ -749,9 +698,7 @@ func (this *CalculateController) BatchSave() {
|
|
|
sourName = "日均值"
|
|
|
edbInfo, err = models.AddCalculateRjz(&req, fromEdbInfo, edbCode, uniqueCode, sysUserId, sysUserName)
|
|
|
default:
|
|
|
- // 获取通用的数据源处理服务
|
|
|
baseEdbInfoModel = models.GetBaseEdbInfoModel(req.Source)
|
|
|
- // 没有找到的话,那么就直接返回报错吧
|
|
|
if baseEdbInfoModel == nil {
|
|
|
br.Msg = "无效计算方式"
|
|
|
br.ErrMsg = "无效计算方式,source:" + strconv.Itoa(req.Source)
|
|
@@ -777,10 +724,8 @@ func (this *CalculateController) BatchSave() {
|
|
|
}
|
|
|
edbInfoId = edbInfo.EdbInfoId
|
|
|
|
|
|
- // 更新ES
|
|
|
go logic.UpdateEs(edbInfoId)
|
|
|
|
|
|
- //处理同名指标
|
|
|
{
|
|
|
edbNameList, err := models.GetEdbInfoByName(req.EdbName)
|
|
|
if err != nil {
|
|
@@ -801,7 +746,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 更新指标最大最小值
|
|
|
err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
if err != nil {
|
|
|
br.Msg = errMsg
|
|
@@ -821,7 +765,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
br.ErrMsg = "保存失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- // 判断是否需要禁用
|
|
|
go services.DisableEdbInfoNoUpdate(edbInfo)
|
|
|
resp := models.AddEdbInfoResp{
|
|
|
EdbInfoId: edbInfo.EdbInfoId,
|
|
@@ -834,11 +777,6 @@ func (this *CalculateController) BatchSave() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// BatchEdit
|
|
|
-// @Title 累计值转月-同比值-同差等计算新增
|
|
|
-// @Description 累计值转月-同比值-同差等计算新增接口
|
|
|
-// @Param request body models.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /batch/edit [post]
|
|
|
func (this *CalculateController) BatchEdit() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -880,7 +818,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 根据指标名称和指标ID校验库中是否还存在其他同名指标
|
|
|
existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
|
|
|
if err != nil {
|
|
|
br.Msg = "判断指标名称是否存在失败"
|
|
@@ -906,12 +843,10 @@ func (this *CalculateController) BatchEdit() {
|
|
|
br.ErrMsg = "获取指标信息失败:Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- // 记录原始指标信息
|
|
|
oldEdbName := edbInfo.EdbName
|
|
|
oldFrequency := edbInfo.Frequency
|
|
|
oldUnit := edbInfo.Unit
|
|
|
|
|
|
- // 基础指标id
|
|
|
fromEdbInfoId := req.FromEdbInfoId
|
|
|
|
|
|
if req.Source <= 0 {
|
|
@@ -920,7 +855,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
|
|
|
var formulaInt int
|
|
|
var nhccDate models.NhccDate // 拟合残差的日期
|
|
|
- // 初期的参数校验
|
|
|
switch req.Source {
|
|
|
case utils.DATA_SOURCE_CALCULATE_NSZYDPJJS, utils.DATA_SOURCE_CALCULATE_HBZ, utils.DATA_SOURCE_CALCULATE_HCZ, utils.DATA_SOURCE_CALCULATE_TIME_SHIFT, utils.DATA_SOURCE_CALCULATE_CJJX:
|
|
|
if req.Formula == "" {
|
|
@@ -933,24 +867,18 @@ func (this *CalculateController) BatchEdit() {
|
|
|
return
|
|
|
}
|
|
|
case utils.DATA_SOURCE_CALCULATE_ZJPJ:
|
|
|
- //直接拼接指标
|
|
|
-
|
|
|
- //校验时间格式
|
|
|
_, err = time.ParseInLocation(utils.FormatDate, req.Formula, time.Local)
|
|
|
if err != nil {
|
|
|
br.Msg = "拼接日期有误,请重新输入"
|
|
|
return
|
|
|
}
|
|
|
case utils.DATA_SOURCE_CALCULATE_NHCC: //拟合残差指标
|
|
|
- //指标校验
|
|
|
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 = "选择时间有误,请重新输入"
|
|
@@ -995,7 +923,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
|
|
|
var fromEdbInfo *models.EdbInfo
|
|
|
if fromEdbInfoId > 0 {
|
|
|
- // 获取基础指标信息
|
|
|
fromEdbInfo, err = models.GetEdbInfoById(fromEdbInfoId)
|
|
|
if err != nil {
|
|
|
if err.Error() == utils.ErrNoRow() {
|
|
@@ -1009,9 +936,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //dataUpdateTime := time.Now().Format(utils.FormatDateTime)
|
|
|
-
|
|
|
- // 额外赋值
|
|
|
switch this.Lang {
|
|
|
case utils.EnLangVersion:
|
|
|
req.EdbNameEn = req.EdbName
|
|
@@ -1166,7 +1090,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
sourName = utils.DATA_SOURCE_NAME_CALCULATE_NH
|
|
|
err = models.EditCalculateNh(edbInfo, &req, fromEdbInfo)
|
|
|
case utils.DATA_SOURCE_CALCULATE_KSZS:
|
|
|
- //关联的指标信息
|
|
|
if len(req.EdbInfoIdArr) < 2 {
|
|
|
br.Msg = "指标数量不能小于2个,请重新选择"
|
|
|
br.ErrMsg = "指标数量不能小于2个,请重新选择"
|
|
@@ -1176,7 +1099,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
sourName = utils.DATA_SOURCE_NAME_CALCULATE_KSZS
|
|
|
err = models.EditCalculateKszs(edbInfo, &req)
|
|
|
case utils.DATA_SOURCE_CALCULATE_CORRELATION:
|
|
|
- //关联的指标信息
|
|
|
if len(req.EdbInfoIdArr) < 2 {
|
|
|
br.Msg = "指标数量不能小于2个,请重新选择"
|
|
|
br.ErrMsg = "指标数量不能小于2个,请重新选择"
|
|
@@ -1201,9 +1123,7 @@ func (this *CalculateController) BatchEdit() {
|
|
|
sourName = "日均值"
|
|
|
err = models.EditCalculateRjz(edbInfo, &req, fromEdbInfo)
|
|
|
default:
|
|
|
- // 获取通用的数据源处理服务
|
|
|
baseEdbInfoModel = models.GetBaseEdbInfoModel(req.Source)
|
|
|
- // 没有找到的话,那么就直接返回报错吧
|
|
|
if baseEdbInfoModel == nil {
|
|
|
br.Msg = "无效计算方式"
|
|
|
br.ErrMsg = "无效计算方式,source:" + strconv.Itoa(req.Source)
|
|
@@ -1227,7 +1147,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
}
|
|
|
edbInfoId = edbInfo.EdbInfoId
|
|
|
|
|
|
- //处理同名指标
|
|
|
{
|
|
|
edbNameList, err := models.GetEdbInfoByName(req.EdbName)
|
|
|
if err != nil {
|
|
@@ -1247,16 +1166,12 @@ func (this *CalculateController) BatchEdit() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- // 更新指标最大最小值
|
|
|
- //err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfoTmp(edbInfo, dataUpdateTime)
|
|
|
err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
if err != nil {
|
|
|
br.Msg = errMsg
|
|
|
br.ErrMsg = err.Error()
|
|
|
return
|
|
|
}
|
|
|
- // 记录指标的操作记录
|
|
|
oldEdbInfo := new(models.EdbInfo)
|
|
|
oldEdbInfo.EdbInfoId = edbInfo.EdbInfoId
|
|
|
oldEdbInfo.EdbName = oldEdbName
|
|
@@ -1273,11 +1188,7 @@ func (this *CalculateController) BatchEdit() {
|
|
|
br.Msg = "保存失败"
|
|
|
br.ErrMsg = "记录指标操作记录失败,Err:" + err.Error()
|
|
|
}
|
|
|
-
|
|
|
- // 重置计算指标中的引用关系
|
|
|
go services.ResetEdbRelation(edbInfoId)
|
|
|
-
|
|
|
- // 更新ES
|
|
|
go logic.UpdateEs(edbInfo.EdbInfoId)
|
|
|
|
|
|
resp := models.AddEdbInfoResp{
|
|
@@ -1291,10 +1202,6 @@ func (this *CalculateController) BatchEdit() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// Refresh
|
|
|
-// @Title 刷新计算指标接口
|
|
|
-// @Description 刷新计算指标接口
|
|
|
-// @Success 200 {object} models.RefreshEdbInfoReq
|
|
|
// @router /refresh [post]
|
|
|
func (this *CalculateController) Refresh() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -1336,7 +1243,6 @@ func (this *CalculateController) Refresh() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 刷新指标
|
|
|
utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
|
|
|
defer func() {
|
|
|
_ = utils.Rc.Delete(cacheKey)
|
|
@@ -1358,12 +1264,6 @@ func (this *CalculateController) Refresh() {
|
|
|
|
|
|
switch source {
|
|
|
case utils.DATA_SOURCE_CALCULATE:
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
- //sTime, err := time.ParseInLocation(utils.FormatDate, edbInfo.EndDate,time.Local)
|
|
|
- //if err != nil {
|
|
|
- // return
|
|
|
- //}
|
|
|
- //startDate = sTime.Format(utils.FormatDate)
|
|
|
startDate = ""
|
|
|
var edbInfoIdBytes []string
|
|
|
calculateMap, err := models.GetEdbInfoCalculateDetailList(edbInfo.EdbInfoId)
|
|
@@ -1397,8 +1297,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
- //endDate = time.Now().Format(utils.FormatDate)
|
|
|
endDate = `` //只要填写日期,就会出现问题,还是把日期给去掉吧
|
|
|
startDate = `` //只要填写日期,就会出现问题,还是把日期给去掉吧
|
|
|
err = models.RefreshAllCalculateLjzzy(edbInfoId, source, subSource, fromEdbInfo, calculateLjzzy.EdbCode, startDate, endDate)
|
|
@@ -1417,7 +1315,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
err = models.RefreshAllCalculateTbz(edbInfoId, source, subSource, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1435,7 +1332,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
err = models.RefreshAllCalculateTcz(edbInfoId, source, subSource, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1454,7 +1350,6 @@ func (this *CalculateController) Refresh() {
|
|
|
break
|
|
|
}
|
|
|
formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
startDate = `` //只要填写日期,就会出现问题,还是把日期给去掉吧
|
|
|
err = models.RefreshAllCalculateNszydpjjs(edbInfoId, edbInfo.Source, edbInfo.SubSource, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode, startDate)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1510,7 +1405,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
err = models.RefreshAllCalculateBp(edbInfoId, source, subSource, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, edbInfo.EmptyType)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1528,7 +1422,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
startDate = `` //只要填写日期,就会出现问题,还是把日期给去掉吧
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
formulaInt, _ := strconv.Atoi(calculate.CalculateFormula)
|
|
@@ -1622,7 +1515,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
err = models.RefreshAllCalculateJp(edbInfoId, source, subSource, fromEdbInfo, edbInfo.EdbCode, edbInfo.Frequency, edbInfo.CalculateFormula)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1641,7 +1533,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
err = models.RefreshAllCalculateNh(edbInfoId, source, subSource, fromEdbInfo, edbInfo.EdbCode)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1649,7 +1540,6 @@ func (this *CalculateController) Refresh() {
|
|
|
break
|
|
|
}
|
|
|
case utils.DATA_SOURCE_CALCULATE_KSZS: //刷新扩散指数
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
err = models.RefreshAllCalculateKszs(edbInfo)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1657,7 +1547,6 @@ func (this *CalculateController) Refresh() {
|
|
|
break
|
|
|
}
|
|
|
case utils.DATA_SOURCE_STOCK_PLANT: //存量装置
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
req.StartDate = `` // 开始日期也给过滤吧,万一研究员补充了之前的数据呢,还是过滤掉吧
|
|
|
err = models.RefreshEdbDataFromStockPlant(req.EdbInfoId, req.EdbCode, req.StartDate)
|
|
@@ -1678,7 +1567,6 @@ func (this *CalculateController) Refresh() {
|
|
|
errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
break
|
|
|
}
|
|
|
- //startDate = edbInfo.StartDate
|
|
|
endDate = time.Now().Format(utils.FormatDate)
|
|
|
err = models.RefreshAllCalculateRjz(edbInfoId, source, fromEdbInfo, calculateRjz.EdbCode, startDate, endDate)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -1686,9 +1574,7 @@ func (this *CalculateController) Refresh() {
|
|
|
break
|
|
|
}
|
|
|
default:
|
|
|
- // 获取通用的数据源处理服务
|
|
|
baseEdbInfoModel = models.GetBaseEdbInfoModel(source)
|
|
|
- // 没有找到的话,那么就直接返回报错吧
|
|
|
if baseEdbInfoModel == nil {
|
|
|
br.Msg = "来源异常,请联系相关开发!"
|
|
|
br.ErrMsg = "来源异常,请联系相关开发"
|
|
@@ -1703,7 +1589,6 @@ func (this *CalculateController) Refresh() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 更新指标最大最小值
|
|
|
err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
if err != nil {
|
|
|
br.Msg = errMsg
|
|
@@ -1711,7 +1596,6 @@ func (this *CalculateController) Refresh() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 更新ES
|
|
|
go logic.UpdateEs(edbInfoId)
|
|
|
|
|
|
br.Ret = 200
|
|
@@ -1719,10 +1603,6 @@ func (this *CalculateController) Refresh() {
|
|
|
br.Msg = "获取成功"
|
|
|
}
|
|
|
|
|
|
-// SaveAdjust
|
|
|
-// @Title 保存数据调整指标接口
|
|
|
-// @Description 保存数据调整指标接口
|
|
|
-// @Success 200 {object} models.SaveAdjustEdbReq
|
|
|
// @router /adjust/save [post]
|
|
|
func (this *CalculateController) SaveAdjust() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -1763,21 +1643,18 @@ func (this *CalculateController) SaveAdjust() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //加入缓存机制,避免创建同一个名称的指标 start
|
|
|
redisKey := fmt.Sprint("edb_info:adjust:add:", utils.DATA_SOURCE_CALCULATE_ADJUST, ":", req.EdbName)
|
|
|
isExist := utils.Rc.IsExist(redisKey)
|
|
|
if isExist {
|
|
|
br.Msg = "指标正在处理,请勿重复提交"
|
|
|
return
|
|
|
} else {
|
|
|
- //设置3分钟缓存
|
|
|
utils.Rc.SetNX(redisKey, 1, time.Second*300)
|
|
|
defer func() {
|
|
|
_ = utils.Rc.Delete(redisKey)
|
|
|
}()
|
|
|
}
|
|
|
|
|
|
- //获取指标数据
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
|
condition += " AND edb_name=? "
|
|
@@ -1807,7 +1684,6 @@ func (this *CalculateController) SaveAdjust() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //处理同名指标
|
|
|
{
|
|
|
edbNameList, err := models.GetEdbInfoByName(req.EdbName)
|
|
|
if err != nil {
|
|
@@ -1828,7 +1704,6 @@ func (this *CalculateController) SaveAdjust() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 更新指标最大最小值
|
|
|
err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
if err != nil {
|
|
|
br.Msg = errMsg
|
|
@@ -1840,9 +1715,7 @@ func (this *CalculateController) SaveAdjust() {
|
|
|
UniqueCode: edbInfo.UniqueCode,
|
|
|
}
|
|
|
|
|
|
- // 判断是否需要禁用
|
|
|
go services.DisableEdbInfoNoUpdate(edbInfo)
|
|
|
- // 重置计算指标中的引用关系
|
|
|
go services.ResetEdbRelation(edbInfo.EdbInfoId)
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -1851,11 +1724,6 @@ func (this *CalculateController) SaveAdjust() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// CalculateComputeCorrelation
|
|
|
-// @Title 拟合残差计算相关性
|
|
|
-// @Description 拟合残差计算相关性接口
|
|
|
-// @Param request body models.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /compute_correlation [post]
|
|
|
func (this *CalculateController) CalculateComputeCorrelation() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -1877,8 +1745,6 @@ func (this *CalculateController) CalculateComputeCorrelation() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //校验时间格式
|
|
|
- //数据格式:2022-11-01,2022-11-10
|
|
|
timeList := strings.Split(req.Formula, ",")
|
|
|
if len(timeList) != 2 {
|
|
|
br.Msg = "选择时间有误,请重新输入"
|
|
@@ -1902,13 +1768,11 @@ func (this *CalculateController) CalculateComputeCorrelation() {
|
|
|
nhccDate.StartDate = startDate
|
|
|
nhccDate.EndDate = endDate
|
|
|
|
|
|
- // 基础指标id
|
|
|
fromEdbInfoId := req.EdbInfoIdArr[0].EdbInfoId
|
|
|
if fromEdbInfoId <= 0 {
|
|
|
br.Msg = "请选择指标"
|
|
|
return
|
|
|
}
|
|
|
- // 来源指标(自变量指标)
|
|
|
fromEdbInfo, err := models.GetEdbInfoById(fromEdbInfoId)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取指标信息失败"
|
|
@@ -1916,7 +1780,6 @@ func (this *CalculateController) CalculateComputeCorrelation() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 因变量指标
|
|
|
secondEdbInfoReq := req.EdbInfoIdArr[1]
|
|
|
secondEdbInfo, tmpErr := models.GetEdbInfoById(secondEdbInfoReq.EdbInfoId)
|
|
|
if tmpErr != nil {
|
|
@@ -1953,11 +1816,6 @@ func (this *CalculateController) CalculateComputeCorrelation() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// ResetCustomAnalysisData
|
|
|
-// @Title 自定义表格数据重置
|
|
|
-// @Description 自定义表格数据重置
|
|
|
-// @Param request body models.ResetCustomAnalysisData true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /custom_analysis/reset [post]
|
|
|
func (this *CalculateController) ResetCustomAnalysisData() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -2021,7 +1879,6 @@ func (this *CalculateController) ResetCustomAnalysisData() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 更新指标最大最小值
|
|
|
err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
if err != nil {
|
|
|
br.Msg = errMsg
|
|
@@ -2040,11 +1897,6 @@ func (this *CalculateController) ResetCustomAnalysisData() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// Calculate
|
|
|
-// @Title 基础数据计算
|
|
|
-// @Description 拟合残差计算相关性接口
|
|
|
-// @Param request body models.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /base [post]
|
|
|
func (this *CalculateController) Calculate() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -2082,7 +1934,6 @@ func (this *CalculateController) Calculate() {
|
|
|
Source: req.Source,
|
|
|
}
|
|
|
|
|
|
- //1:累计值转月;2:累计值转季;3:同比值;4:同差值;5:N数值移动平均数计算;6:环比值;7:环差值;8:升频;9:降频;10:时间移位;11:超季节性;12:年化;13:累计值;14:累计值年初至今;15:指数修匀;16:日均值
|
|
|
switch baseCalculate.Source {
|
|
|
case 1:
|
|
|
dateDataMap, err, errMsg = baseCalculate.Ljzzy()
|
|
@@ -2142,11 +1993,6 @@ func (this *CalculateController) Calculate() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// BatchSaveMulti
|
|
|
-// @Title 批量计算 累计值转月-同比值-同差等计算新增
|
|
|
-// @Description 批量计算 累计值转月-同比值-同差等计算新增接口
|
|
|
-// @Param request body models.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /batch/save/multi [post]
|
|
|
func (this *CalculateController) BatchSaveMulti() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -2178,11 +2024,9 @@ func (this *CalculateController) BatchSaveMulti() {
|
|
|
}
|
|
|
}()
|
|
|
var wg sync.WaitGroup
|
|
|
- // 校验参数
|
|
|
for _, item := range req.EdbList {
|
|
|
|
|
|
calculateId := item.CalculateId
|
|
|
- //加入缓存机制,避免创建同一个名称的指标 start
|
|
|
redisKey := fmt.Sprint("edb_info:calculate:batch:save:", req.AdminId, ":", req.Source, ":", calculateId)
|
|
|
isExist := utils.Rc.IsExist(redisKey)
|
|
|
if isExist {
|
|
@@ -2192,7 +2036,6 @@ func (this *CalculateController) BatchSaveMulti() {
|
|
|
})
|
|
|
continue
|
|
|
} else {
|
|
|
- //设置3分钟缓存
|
|
|
utils.Rc.SetNX(redisKey, 1, time.Second*300)
|
|
|
redisKeyList = append(redisKeyList, redisKey)
|
|
|
}
|
|
@@ -2223,9 +2066,7 @@ func (this *CalculateController) BatchSaveMulti() {
|
|
|
errMsg := ""
|
|
|
go func() {
|
|
|
defer func() {
|
|
|
- // todo 批量报错处理
|
|
|
if err != nil {
|
|
|
- // 整理报错的指标
|
|
|
utils.FileLog.Info(fmt.Sprintf("批量指标计算,保存失败 Err:%v, ErrMsg:%s", err, errMsg))
|
|
|
resp.Fail = append(resp.Fail, models.BatchEdbInfoCalculateBatchSaveFailResp{
|
|
|
CalculateId: calculateId,
|
|
@@ -2233,8 +2074,6 @@ func (this *CalculateController) BatchSaveMulti() {
|
|
|
ErrMsg: errMsg,
|
|
|
})
|
|
|
} else {
|
|
|
- // 整理成功的指标
|
|
|
- //todo 整理执行成功指标信息
|
|
|
resp.Success = append(resp.Success, models.BatchEdbInfoCalculateBatchSaveSuccessResp{
|
|
|
ClassifyId: reqItem.ClassifyId,
|
|
|
CalculateId: calculateId,
|
|
@@ -2250,8 +2089,6 @@ func (this *CalculateController) BatchSaveMulti() {
|
|
|
}()
|
|
|
}
|
|
|
wg.Wait()
|
|
|
-
|
|
|
- // 更新ES
|
|
|
if resp.Success != nil && len(resp.Success) > 0 {
|
|
|
for _, item := range resp.Success {
|
|
|
go logic.UpdateEs(item.EdbInfoId)
|
|
@@ -2265,11 +2102,6 @@ func (this *CalculateController) BatchSaveMulti() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// BatchEditMulti
|
|
|
-// @Title 批量计算 累计值转月-同比值-同差等计算编辑
|
|
|
-// @Description 批量计算 累计值转月-同比值-同差等计算编辑接口
|
|
|
-// @Param request body models.EdbInfoCalculateBatchSaveReq true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /batch/edit/multi [post]
|
|
|
func (this *CalculateController) BatchEditMulti() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -2301,7 +2133,6 @@ func (this *CalculateController) BatchEditMulti() {
|
|
|
}
|
|
|
}()
|
|
|
var wg sync.WaitGroup
|
|
|
- // 校验参数
|
|
|
for _, item := range req.EdbList {
|
|
|
calculateId := item.CalculateId
|
|
|
if item.EdbInfoId <= 0 {
|
|
@@ -2311,7 +2142,6 @@ func (this *CalculateController) BatchEditMulti() {
|
|
|
})
|
|
|
continue
|
|
|
}
|
|
|
- //加入缓存机制,避免创建同一个名称的指标 start
|
|
|
redisKey := fmt.Sprint("edb_info:calculate:batch:edit:", req.AdminId, ":", req.Source, ":", item.EdbInfoId)
|
|
|
isExist := utils.Rc.IsExist(redisKey)
|
|
|
if isExist {
|
|
@@ -2321,7 +2151,6 @@ func (this *CalculateController) BatchEditMulti() {
|
|
|
})
|
|
|
continue
|
|
|
} else {
|
|
|
- //设置3分钟缓存
|
|
|
utils.Rc.SetNX(redisKey, 1, time.Second*300)
|
|
|
redisKeyList = append(redisKeyList, redisKey)
|
|
|
}
|
|
@@ -2352,9 +2181,7 @@ func (this *CalculateController) BatchEditMulti() {
|
|
|
uniqueCode := ""
|
|
|
go func() {
|
|
|
defer func() {
|
|
|
- // todo 批量报错处理
|
|
|
if err != nil {
|
|
|
- // 整理报错的指标
|
|
|
utils.FileLog.Info(fmt.Sprintf("批量指标计算,保存失败 Err:%v, ErrMsg:%s", err, errMsg))
|
|
|
resp.Fail = append(resp.Fail, models.BatchEdbInfoCalculateBatchSaveFailResp{
|
|
|
CalculateId: calculateId,
|
|
@@ -2362,8 +2189,6 @@ func (this *CalculateController) BatchEditMulti() {
|
|
|
ErrMsg: errMsg,
|
|
|
})
|
|
|
} else {
|
|
|
- // 整理成功的指标
|
|
|
- //todo 整理执行成功指标信息
|
|
|
resp.Success = append(resp.Success, models.BatchEdbInfoCalculateBatchSaveSuccessResp{
|
|
|
ClassifyId: reqItem.ClassifyId,
|
|
|
CalculateId: calculateId,
|
|
@@ -2384,7 +2209,6 @@ func (this *CalculateController) BatchEditMulti() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 更新ES
|
|
|
if resp.Success != nil && len(resp.Success) > 0 {
|
|
|
for _, item := range resp.Success {
|
|
|
go logic.UpdateEs(item.EdbInfoId)
|
|
@@ -2398,11 +2222,6 @@ func (this *CalculateController) BatchEditMulti() {
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
|
|
|
-// StepCalculate
|
|
|
-// @Title 多步骤计算
|
|
|
-// @Description 多步骤计算
|
|
|
-// @Param request body models.StepCalculateBySearchData true "type json string"
|
|
|
-// @Success Ret=200 返回指标id
|
|
|
// @router /base/step_calculate [post]
|
|
|
func (this *CalculateController) StepCalculate() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -2419,81 +2238,6 @@ func (this *CalculateController) StepCalculate() {
|
|
|
br.ErrMsg = fmt.Sprintf("参数解析失败, Err: %v", e)
|
|
|
return
|
|
|
}
|
|
|
- //sort.Slice(req.Calculates, func(i, j int) bool {
|
|
|
- // return req.Calculates[i].Sort < req.Calculates[j].Sort
|
|
|
- //})
|
|
|
- //
|
|
|
- //var errMsg string
|
|
|
- //originData, e := models.EdbInfoSearchDataToData(req.DataList)
|
|
|
- //if e != nil {
|
|
|
- // br.Msg = "基础数据异常"
|
|
|
- // br.ErrMsg = fmt.Sprintf("计算失败, 基础数据异常, Err: %v", e)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //
|
|
|
- //calculateData := originData
|
|
|
- //dateDataMap := make(map[time.Time]float64)
|
|
|
- //for _, v := range req.Calculates {
|
|
|
- // baseCalculate := models.BaseCalculate{
|
|
|
- // DataList: calculateData,
|
|
|
- // Frequency: v.Frequency,
|
|
|
- // Formula: v.Formula,
|
|
|
- // Calendar: v.Calendar,
|
|
|
- // MoveType: v.MoveType,
|
|
|
- // MoveFrequency: v.MoveFrequency,
|
|
|
- // FromFrequency: v.FromFrequency,
|
|
|
- // Source: v.Source,
|
|
|
- // }
|
|
|
- //
|
|
|
- // // 计算方式
|
|
|
- // switch baseCalculate.Source {
|
|
|
- // case utils.EdbBaseCalculateLjzzy:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Ljzzy()
|
|
|
- // case utils.EdbBaseCalculateLjzzj:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Ljzzj()
|
|
|
- // case utils.EdbBaseCalculateTbz:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Tbz()
|
|
|
- // case utils.EdbBaseCalculateTcz:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Tcz()
|
|
|
- // case utils.EdbBaseCalculateNszydpjjs:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Nszydpjjs()
|
|
|
- // case utils.EdbBaseCalculateHbz:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Hbz()
|
|
|
- // case utils.EdbBaseCalculateHcz:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Hcz()
|
|
|
- // case utils.EdbBaseCalculateUpFrequency:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.UpFrequency()
|
|
|
- // case utils.EdbBaseCalculateDownFrequency:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.DownFrequency()
|
|
|
- // case utils.EdbBaseCalculateTimeShift:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.TimeShift()
|
|
|
- // case utils.EdbBaseCalculateCjjx:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Cjjx()
|
|
|
- // case utils.EdbBaseCalculateAnnualized:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Annualized()
|
|
|
- // case utils.EdbBaseCalculateLjz:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Ljz()
|
|
|
- // case utils.EdbBaseCalculateLjzNczj:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.LjzNczj()
|
|
|
- // case utils.EdbBaseCalculateExponentialSmoothing:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.ExponentialSmoothing()
|
|
|
- // case utils.EdbBaseCalculateRjz:
|
|
|
- // dateDataMap, e, errMsg = baseCalculate.Rjz()
|
|
|
- // default:
|
|
|
- // errMsg = "计算方式无效"
|
|
|
- // e = fmt.Errorf("%s:%d", errMsg, baseCalculate.Source)
|
|
|
- // }
|
|
|
- // if e != nil {
|
|
|
- // br.Msg = "计算失败"
|
|
|
- // if errMsg != "" {
|
|
|
- // br.Msg = errMsg
|
|
|
- // }
|
|
|
- // br.ErrMsg = e.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- //
|
|
|
- // calculateData = models.TransDateData2EdbData(dateDataMap)
|
|
|
- //}
|
|
|
resultData, dates, errMsg, e := services.StepCalculate(req.DataList, req.Calculates)
|
|
|
if e != nil {
|
|
|
br.Msg = "计算失败"
|