Roc 4 сар өмнө
parent
commit
ed5b2340fa
100 өөрчлөгдсөн 38 нэмэгдсэн , 3165 устгасан
  1. 0 26
      controllers/base_from_predict.go
  2. 3 92
      controllers/base_from_predict_calculate.go
  3. 0 37
      controllers/base_from_python.go
  4. 0 19
      controllers/base_from_stock_plant.go
  5. 0 12
      controllers/base_from_trade_analysis.go
  6. 0 6
      controllers/edb_classify.go
  7. 0 22
      controllers/edb_info.go
  8. 0 4
      controllers/edb_info_calculate_mapping.go
  9. 0 5
      controllers/edb_info_stat.go
  10. 0 12
      controllers/edb_refresh.go
  11. 0 3
      controllers/error.go
  12. 0 30
      global/dm.go
  13. 0 1
      global/global.go
  14. 0 3
      logic/base_edb_info.go
  15. 4 78
      logic/chart_correlation.go
  16. 0 2
      logic/edbinfo.go
  17. 0 129
      logic/predict_edb.go
  18. 0 9
      logic/profit_chart_info.go
  19. 0 2
      main.go
  20. 0 277
      models/base_calculate.go
  21. 0 33
      models/base_from_adjust.go
  22. 0 68
      models/base_from_calculate.go
  23. 0 1
      models/base_from_edb_mapping.go
  24. 0 23
      models/base_from_gn.go
  25. 0 35
      models/base_from_manual.go
  26. 0 35
      models/base_from_python.go
  27. 0 6
      models/base_from_stock_plant.go
  28. 0 27
      models/base_predict_from_calculate.go
  29. 0 6
      models/business_conf.go
  30. 0 3
      models/chart.go
  31. 0 1
      models/chart_edb_mapping.go
  32. 0 8
      models/common.go
  33. 0 1
      models/data_stat/edb_info_delete_log.go
  34. 0 1
      models/data_stat/edb_info_update_log.go
  35. 0 3
      models/data_stat/edb_info_update_stat.go
  36. 0 3
      models/data_stat/edb_source_stat.go
  37. 0 6
      models/dm_db.go
  38. 0 1
      models/edb_adjust_conf.go
  39. 0 5
      models/edb_classify.go
  40. 0 25
      models/edb_data_base.go
  41. 0 23
      models/edb_data_calculate_avg.go
  42. 0 26
      models/edb_data_calculate_bp.go
  43. 0 35
      models/edb_data_calculate_cjjx.go
  44. 0 40
      models/edb_data_calculate_correlation.go
  45. 0 17
      models/edb_data_calculate_hbz.go
  46. 0 22
      models/edb_data_calculate_hcz.go
  47. 0 54
      models/edb_data_calculate_jp.go
  48. 0 24
      models/edb_data_calculate_kszs.go
  49. 0 52
      models/edb_data_calculate_ljz.go
  50. 0 30
      models/edb_data_calculate_ljznczj.go
  51. 0 72
      models/edb_data_calculate_ljztbpj.go
  52. 0 22
      models/edb_data_calculate_ljzzj.go
  53. 0 19
      models/edb_data_calculate_ljzzy.go
  54. 0 32
      models/edb_data_calculate_nh.go
  55. 0 72
      models/edb_data_calculate_nhcc.go
  56. 0 21
      models/edb_data_calculate_nszydbpjjs.go
  57. 0 42
      models/edb_data_calculate_percentile.go
  58. 0 41
      models/edb_data_calculate_qjjs.go
  59. 0 22
      models/edb_data_calculate_rjz.go
  60. 0 28
      models/edb_data_calculate_standard_deviation.go
  61. 0 24
      models/edb_data_calculate_sum.go
  62. 0 23
      models/edb_data_calculate_tbz.go
  63. 0 18
      models/edb_data_calculate_tcz.go
  64. 0 19
      models/edb_data_calculate_time_shift.go
  65. 0 28
      models/edb_data_calculate_zdyfx.go
  66. 0 43
      models/edb_data_calculate_zjpj.go
  67. 0 29
      models/edb_data_calculate_zsxy.go
  68. 0 3
      models/edb_data_insert_config.go
  69. 0 1
      models/edb_data_table.go
  70. 0 2
      models/edb_data_trade_analysis.go
  71. 31 257
      models/edb_info.go
  72. 0 12
      models/edb_info_calculate_mapping.go
  73. 0 11
      models/edb_info_relation.go
  74. 0 4
      models/edb_python_code.go
  75. 0 31
      models/edb_refresh/edb_refresh_config.go
  76. 0 38
      models/edb_refresh/edb_refresh_default_config.go
  77. 0 30
      models/edb_refresh/edb_refresh_mapping.go
  78. 0 10
      models/edb_refresh/edb_refresh_source.go
  79. 0 10
      models/edb_refresh/request/edb_info_refresh.go
  80. 0 13
      models/edb_source.go
  81. 0 13
      models/edb_trade_analysis.go
  82. 0 1
      models/excel/excel_classify.go
  83. 0 4
      models/excel/excel_edb_mapping.go
  84. 0 7
      models/excel/excel_info.go
  85. 0 19
      models/factor_edb_series.go
  86. 0 3
      models/factor_edb_series_calculate_data.go
  87. 0 2
      models/factor_edb_series_calculate_data_qjjs.go
  88. 0 2
      models/factor_edb_series_calculate_func.go
  89. 0 3
      models/factor_edb_series_chart_mapping.go
  90. 0 2
      models/factor_edb_series_mapping.go
  91. 0 19
      models/handle_data.go
  92. 0 146
      models/mgo/base_from_business_data.go
  93. 0 118
      models/mgo/base_from_ths_hf_data.go
  94. 0 18
      models/mgo/common.go
  95. 0 163
      models/mgo/edb_data_business.go
  96. 0 161
      models/mgo/edb_data_ths_hf.go
  97. 0 45
      models/predict_edb.go
  98. 0 7
      models/predict_edb_conf.go
  99. 0 2
      models/predict_edb_conf_calculate_mapping.go
  100. 0 70
      models/predict_edb_data_base.go

+ 0 - 26
controllers/base_from_predict.go

@@ -12,15 +12,10 @@ import (
 	"time"
 )
 
-// PredictController 预测指标
 type PredictController struct {
 	BaseAuthController
 }
 
-// Save
-// @Title 新增/编辑预测指标运算接口
-// @Description 新增预测指标运算接口
-// @Success 200 {object} models.EdbInfoCalculateSaveReq
 // @router /save [post]
 func (this *PredictController) Save() {
 	br := new(models.BaseResponse).Init()
@@ -42,23 +37,19 @@ func (this *PredictController) Save() {
 	}
 }
 
-// addPredict 添加预测指标运算
 func addPredict(br *models.BaseResponse, req models.AddPredictEdbInfoReq, lang string) {
-	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("predict_edb_info:calculate:batch:save:", utils.DATA_SOURCE_PREDICT, ":", 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, err, errMsg := logic.AddPredictEdbInfo(req.SourceEdbInfoId, req.ClassifyId, req.EdbName, req.DataDateType, req.RuleList, req.MinValue, req.MaxValue, req.AdminId, req.AdminName, lang)
 	if err != nil {
 		br.Msg = "保存失败"
@@ -79,24 +70,20 @@ func addPredict(br *models.BaseResponse, req models.AddPredictEdbInfoReq, lang s
 	br.IsAddLog = true
 }
 
-// editPredict 编辑预测指标运算
 func editPredict(br *models.BaseResponse, req models.AddPredictEdbInfoReq, lang string) {
 	req.EdbName = strings.Trim(req.EdbName, " ")
-	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("predict_edb_info:calculate:batch:save:", utils.DATA_SOURCE_PREDICT, ":", 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, err, errMsg := logic.EditPredictEdbInfo(req.EdbInfoId, req.ClassifyId, req.EdbName, req.DataDateType, req.RuleList, req.MinValue, req.MaxValue, lang)
 	if err != nil {
 		br.Msg = "保存失败"
@@ -117,10 +104,6 @@ func editPredict(br *models.BaseResponse, req models.AddPredictEdbInfoReq, lang
 	br.IsAddLog = true
 }
 
-// Refresh
-// @Title 刷新预测指标接口(有些预测指标里面含有动态数据)
-// @Description 刷新预测指标接口(有些预测指标里面含有动态数据)
-// @Success 200 {object} models.RefreshEdbInfoReq
 // @router /refresh [post]
 func (this *PredictController) Refresh() {
 	br := new(models.BaseResponse).Init()
@@ -189,7 +172,6 @@ func (this *PredictController) Refresh() {
 		return
 	}
 
-	// 更新指标最大最小值
 	err, errMsg = models.UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo, latestDateStr, latestValue)
 	if err != nil {
 		br.Msg = errMsg
@@ -197,7 +179,6 @@ func (this *PredictController) Refresh() {
 		return
 	}
 
-	// 更新ES
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 
 	br.Ret = 200
@@ -205,11 +186,6 @@ func (this *PredictController) Refresh() {
 	br.Msg = "获取成功"
 }
 
-// CalculateByNinePreview
-// @Title 动态环差演算
-// @Description 指标运算演算
-// @Param request body models.RuleConfig true "type json string"
-// @Success Ret=200 返回指标id
 // @router /calculate_by_nine/preview [post]
 func (this *PredictController) CalculateByNinePreview() {
 	br := new(models.BaseResponse).Init()
@@ -227,7 +203,6 @@ func (this *PredictController) CalculateByNinePreview() {
 	}
 
 	var errMsg string
-	// 获取计算参数
 	formula, edbInfoList, edbInfoIdBytes, err, errMsg := services.GetCalculateByRuleByNineParams(req)
 	if err != nil {
 		br.Msg = "计算失败"
@@ -238,7 +213,6 @@ func (this *PredictController) CalculateByNinePreview() {
 		br.IsSendEmail = false
 		return
 	}
-	// 获取计算数据
 	dataList, err := services.CalculateByRuleByNine(formula, edbInfoList, edbInfoIdBytes, req.EmptyType, req.MaxEmptyType)
 	if err != nil {
 		br.Msg = "数据计算失败"

+ 3 - 92
controllers/base_from_predict_calculate.go

@@ -12,15 +12,10 @@ import (
 	"time"
 )
 
-// PredictCalculateController 预测计算指标
 type PredictCalculateController struct {
 	BaseAuthController
 }
 
-// Save
-// @Title 新增/编辑预测指标运算接口
-// @Description 新增预测指标运算接口
-// @Success 200 {object} models.EdbInfoCalculateSaveReq
 // @router /save [post]
 func (this *PredictCalculateController) Save() {
 	br := new(models.BaseResponse).Init()
@@ -42,7 +37,6 @@ func (this *PredictCalculateController) Save() {
 	}
 }
 
-// AddPredictCalculate 添加预测指标运算
 func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSaveReq, lang string) {
 
 	req.EdbName = strings.Trim(req.EdbName, " ")
@@ -76,14 +70,12 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		return
 	}
 
-	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("predict_edb_info:calculate:batch:save:", utils.DATA_SOURCE_PREDICT_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)
@@ -100,7 +92,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 	}
 	req.CalculateFormula = calculateFormula
 
-	//检验公式
 	var formulaStr string
 	var edbInfoIdBytes []string
 	for _, v := range req.EdbInfoIdArr {
@@ -126,7 +117,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		}
 	}
 
-	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
 	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, 0, req.EdbName, lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
@@ -139,7 +129,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		return
 	}
 
-	// 关联指标信息
 	edbInfoList := make([]*models.EdbInfo, 0)
 	calculateMappingList := make([]*models.EdbInfoCalculateMapping, 0)
 	edbInfoTag := make(map[string]int)
@@ -158,14 +147,11 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		}
 		edbInfoList = append(edbInfoList, fromEdbInfo)
 
-		//关联关系表
 		{
 			calculateMappingItem := &models.EdbInfoCalculateMapping{
-				CreateTime: time.Now(),
-				ModifyTime: time.Now(),
-				Sort:       k + 1,
-				//EdbCode:        edbCode,
-				//EdbInfoId:      int(edbInfoId),
+				CreateTime:     time.Now(),
+				ModifyTime:     time.Now(),
+				Sort:           k + 1,
 				FromEdbInfoId:  fromEdbInfo.EdbInfoId,
 				FromEdbCode:    fromEdbInfo.EdbCode,
 				FromEdbName:    fromEdbInfo.EdbName,
@@ -185,7 +171,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 			br.Msg = "公式错误,请重新填写"
 			return
 		}
-		//预先计算,判断公式是否正常
 		ok, _ := models.CheckFormula2(edbInfoList, formulaMap, v, edbInfoIdBytes)
 		if !ok {
 			br.Msg = "生成计算指标失败,请使用正确的计算公式"
@@ -193,8 +178,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		}
 	}
 
-	// 指标入库
-	//生成指标编码
 	edbCode, err := utils.GenerateEdbCode(1, "2")
 	if err != nil {
 		br.Msg = "指标生成失败"
@@ -235,7 +218,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 	}
 	edbInfo.EdbInfoId = int(edbInfoId)
 
-	//处理同名指标
 	{
 		edbNameList, err := models.GetEdbInfoByName(req.EdbName)
 		if err != nil {
@@ -256,7 +238,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		}
 	}
 
-	//关联关系表入库
 	{
 		if len(calculateMappingList) > 0 {
 			for k, v := range calculateMappingList {
@@ -268,7 +249,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		}
 	}
 
-	// 开始添加预测指标
 	latestDateStr, latestValue, err := models.AddPredictCalculateData(edbInfoList, edbInfoTag, edbInfo, edbCode, req.CalculateFormula, edbInfoIdBytes)
 	if err != nil {
 		br.Msg = "生成计算指标失败"
@@ -276,7 +256,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 		return
 	}
 
-	// 更新指标最大最小值
 	err, errMsg := models.UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo, latestDateStr, latestValue)
 	if err != nil {
 		br.Msg = errMsg
@@ -294,7 +273,6 @@ func addPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSav
 	br.IsAddLog = true
 }
 
-// editPredictCalculate 编辑预测指标运算
 func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSaveReq, lang string) {
 	req.EdbName = strings.Trim(req.EdbName, " ")
 	if req.EdbName == "" {
@@ -327,14 +305,11 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		return
 	}
 
-	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("predict_edb_info:calculate:batch:save:", utils.DATA_SOURCE_PREDICT_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)
@@ -351,7 +326,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 	}
 	req.CalculateFormula = calculateFormula
 
-	//检验公式
 	var formulaStr string
 	var edbInfoIdBytes []string
 	for _, v := range req.EdbInfoIdArr {
@@ -377,7 +351,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		}
 	}
 
-	// 获取计算指标信息
 	edbInfo, err := models.GetEdbInfoById(req.EdbInfoId)
 	if err != nil {
 		br.Msg = "获取指标信息失败"
@@ -385,12 +358,10 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		return
 	}
 
-	// 记录旧的指标信息
 	oldEdbName := edbInfo.EdbName
 	oldFrequency := edbInfo.Frequency
 	oldUnit := edbInfo.Unit
 
-	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
 	existEdbName, err := logic.CheckExistByEdbNameAndEdbInfoId(edbInfo.EdbInfoType, edbInfo.EdbInfoId, req.EdbName, lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
@@ -403,7 +374,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		return
 	}
 
-	// 关联指标信息
 	edbInfoList := make([]*models.EdbInfo, 0)
 	calculateMappingList := make([]*models.EdbInfoCalculateMapping, 0)
 	edbInfoTag := make(map[string]int)
@@ -422,7 +392,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		}
 		edbInfoList = append(edbInfoList, fromEdbInfo)
 
-		//关联关系表
 		{
 			calculateMappingItem := &models.EdbInfoCalculateMapping{
 				CreateTime:     time.Now(),
@@ -448,7 +417,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 			br.Msg = "公式错误,请重新填写"
 			return
 		}
-		//预先计算,判断公式是否正常
 		ok, _ := models.CheckFormula2(edbInfoList, formulaMap, v, edbInfoIdBytes)
 		if !ok {
 			br.Msg = "生成计算指标失败,请使用正确的计算公式"
@@ -456,7 +424,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		}
 	}
 
-	//处理同名指标
 	{
 		edbNameList, err := models.GetEdbInfoByName(req.EdbName)
 		if err != nil {
@@ -498,7 +465,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		return
 	}
 
-	// 开始添加预测指标
 	latestDateStr, latestValue, err := models.AddPredictCalculateData(edbInfoList, edbInfoTag, edbInfo, edbInfo.EdbCode, req.CalculateFormula, edbInfoIdBytes)
 	if err != nil {
 		br.Msg = "生成计算指标失败"
@@ -506,7 +472,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		return
 	}
 
-	// 更新指标最大最小值
 	err, errMsg := models.UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo, latestDateStr, latestValue)
 	if err != nil {
 		br.Msg = errMsg
@@ -514,7 +479,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 		return
 	}
 
-	// 记录基础信息变更日志
 	oldEdbInfo := new(models.EdbInfo)
 	oldEdbInfo.EdbInfoId = req.EdbInfoId
 	oldEdbInfo.EdbName = oldEdbName
@@ -544,11 +508,6 @@ func editPredictCalculate(br *models.BaseResponse, req models.EdbInfoCalculateSa
 	br.IsAddLog = true
 }
 
-// CalculateBatchSave
-// @Title 累计值转月-同比值-同差等计算新增
-// @Description 累计值转月-同比值-同差等计算新增接口
-// @Param	request	body models.EdbInfoCalculateBatchSaveReq true "type json string"
-// @Success Ret=200 返回指标id
 // @router /batch/save [post]
 func (this *PredictCalculateController) CalculateBatchSave() {
 	br := new(models.BaseResponse).Init()
@@ -586,7 +545,6 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 		return
 	}
 
-	// 基础指标id
 	fromEdbInfoId := req.FromEdbInfoId
 	notNeedFromEdbSourceList := []int{utils.DATA_SOURCE_PREDICT_CALCULATE_KSZS, utils.DATA_SOURCE_PREDICT_CALCULATE_NHCC} // 不需要传入来源指标id的 指标类型
 	if fromEdbInfoId <= 0 && !utils.InArrayByInt(notNeedFromEdbSourceList, req.Source) {
@@ -594,22 +552,18 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 		return
 	}
 
-	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("edb_lib:predict_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.PREDICT_EDB_INFO_TYPE, req.EdbInfoId, req.EdbName, this.Lang)
 	if err != nil {
 		br.Msg = "判断指标名称是否存在失败"
@@ -622,7 +576,6 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 		return
 	}
 
-	//生成指标编码
 	edbCode, err := utils.GenerateEdbCode(1, "2")
 	if err != nil {
 		br.Msg = "指标生成失败"
@@ -654,24 +607,13 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 			br.Msg = "N值输入错误,请重新输入"
 			return
 		}
-	/*case utils.DATA_SOURCE_PREDICT_CALCULATE_ZJPJ:
-	//直接拼接指标
-	//校验时间格式
-	_, err = time.ParseInLocation(utils.FormatDate, req.Formula, time.Local)
-	if err != nil {
-		br.Msg = "拼接日期有误,请重新输入"
-		return
-	}*/
 	case utils.DATA_SOURCE_PREDICT_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 = "选择时间有误,请重新输入"
@@ -714,7 +656,6 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 		return
 	}
 
-	// 来源预测指标信息
 	var fromEdbInfo *models.EdbInfo
 	if fromEdbInfoId > 0 {
 		fromEdbInfo, err = models.GetEdbInfoById(fromEdbInfoId)
@@ -831,9 +772,7 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 		sourName = utils.DATA_SOURCE_NAME_PREDICT_CALCULATE_KSZS
 		edbInfo, latestDateStr, latestValue, err, errMsg = models.SavePredictCalculateKszs(req.EdbInfoId, req.ClassifyId, req.EdbName, req.Frequency, req.Unit, req.Formula, req.EdbInfoIdArr, edbCode, uniqueCode, adminId, adminName, this.Lang)
 	} else {
-		// 获取通用的数据源处理服务
 		baseEdbInfoModel = models.GetBasePredictEdbInfoModel(req.Source)
-		// 没有找到的话,那么就直接返回报错吧
 		if baseEdbInfoModel == nil {
 			br.Msg = "无效计算方式"
 			br.ErrMsg = "无效计算方式,source:" + strconv.Itoa(req.Source)
@@ -873,7 +812,6 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 		br.ErrMsg = "生成" + sourName + "失败,edbInfo is nil"
 		return
 	}
-	//处理同名指标
 	{
 		edbNameList, err := models.GetEdbInfoByName(req.EdbName)
 		if err != nil {
@@ -894,7 +832,6 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 		}
 	}
 
-	// 更新指标最大最小值
 	err, errMsg = models.UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo, latestDateStr, latestValue)
 	if err != nil {
 		br.Msg = errMsg
@@ -909,7 +846,6 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 			br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
 			return
 		}
-		// 记录操作变更记录
 		newEdbInfo := new(models.EdbInfoEditRecord)
 		newEdbInfo.EdbName = req.EdbName
 		newEdbInfo.Frequency = req.Frequency
@@ -935,10 +871,6 @@ func (this *PredictCalculateController) CalculateBatchSave() {
 	br.IsAddLog = true
 }
 
-// Refresh
-// @Title 刷新计算指标接口
-// @Description 刷新计算指标接口
-// @Success 200 {object} models.RefreshEdbInfoReq
 // @router /refresh [post]
 func (this *PredictCalculateController) Refresh() {
 	br := new(models.BaseResponse).Init()
@@ -1017,12 +949,6 @@ func (this *PredictCalculateController) Refresh() {
 
 	switch source {
 	case utils.DATA_SOURCE_PREDICT_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)
@@ -1170,7 +1096,6 @@ func (this *PredictCalculateController) Refresh() {
 			errMsg = "GetEdbInfoById Err:" + err.Error()
 			break
 		}
-		//startDate = edbInfo.StartDate
 		startDate = `` //只要填写日期,就会出现问题,还是把日期给去掉吧
 		endDate = time.Now().Format(utils.FormatDate)
 		formulaInt, _ := strconv.Atoi(calculate.CalculateFormula)
@@ -1253,9 +1178,7 @@ func (this *PredictCalculateController) Refresh() {
 			break
 		}
 	default:
-		// 获取通用的数据源处理服务
 		baseEdbInfoModel = models.GetBasePredictEdbInfoModel(source)
-		// 没有找到的话,那么就直接返回报错吧
 		if baseEdbInfoModel == nil {
 			br.Msg = "来源异常,请联系相关开发!"
 			br.ErrMsg = "来源异常,请联系相关开发"
@@ -1270,7 +1193,6 @@ func (this *PredictCalculateController) Refresh() {
 		return
 	}
 
-	// 更新指标最大最小值
 	err, errMsg = models.UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo, latestDateStr, latestValue)
 	if err != nil {
 		br.Msg = errMsg
@@ -1278,7 +1200,6 @@ func (this *PredictCalculateController) Refresh() {
 		return
 	}
 
-	// 更新ES
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 
 	br.Ret = 200
@@ -1286,11 +1207,6 @@ func (this *PredictCalculateController) Refresh() {
 	br.Msg = "获取成功"
 }
 
-// CalculateComputeCorrelation
-// @Title 拟合残差计算相关性接口
-// @Description 拟合残差计算相关性接口
-// @Param	request	body models.EdbInfoCalculateBatchSaveReq true "type json string"
-// @Success Ret=200 返回指标id
 // @router /compute_correlation [post]
 func (this *PredictCalculateController) CalculateComputeCorrelation() {
 	br := new(models.BaseResponse).Init()
@@ -1312,8 +1228,6 @@ func (this *PredictCalculateController) CalculateComputeCorrelation() {
 		return
 	}
 
-	//校验时间格式
-	//数据格式:2022-11-01,2022-11-10
 	timeList := strings.Split(req.Formula, ",")
 	if len(timeList) != 2 {
 		br.Msg = "选择时间有误,请重新输入"
@@ -1338,13 +1252,11 @@ func (this *PredictCalculateController) CalculateComputeCorrelation() {
 	nhccDate.StartDate = startDate
 	nhccDate.EndDate = endDate
 
-	// 来源预测指标信息
 	fromEdbInfoId := req.EdbInfoIdArr[0].EdbInfoId
 	if fromEdbInfoId <= 0 {
 		br.Msg = "请选择指标"
 		return
 	}
-	// 来源指标(自变量指标)
 	fromEdbInfo, err := models.GetEdbInfoById(fromEdbInfoId)
 	if err != nil {
 		br.Msg = "获取指标信息失败"
@@ -1357,7 +1269,6 @@ func (this *PredictCalculateController) CalculateComputeCorrelation() {
 		return
 	}
 
-	// 因变量指标
 	secondEdbInfoReq := req.EdbInfoIdArr[1]
 	secondEdbInfo, tmpErr := models.GetEdbInfoById(secondEdbInfoReq.EdbInfoId)
 	if tmpErr != nil {

+ 0 - 37
controllers/base_from_python.go

@@ -13,15 +13,10 @@ import (
 	"time"
 )
 
-// PythonController 计算指标
 type PythonController struct {
 	BaseAuthController
 }
 
-// ExcePython
-// @Title 执行python代码接口
-// @Description 执行python代码接口
-// @Success 200 {object} models.ExecPythonEdbReq
 // @router /exec [post]
 func (this *PythonController) ExcePython() {
 	br := new(models.BaseResponse).Init()
@@ -29,7 +24,6 @@ func (this *PythonController) ExcePython() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	//source := utils.DATA_SOURCE_WIND
 	var req models.ExecPythonEdbReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
@@ -63,10 +57,6 @@ func (this *PythonController) ExcePython() {
 	br.IsAddLog = true
 }
 
-// Add
-// @Title 编辑指标接口
-// @Description 编辑指标接口
-// @Success 200 {object} models.EditEdbInfoReq
 // @router /add [post]
 func (this *PythonController) Add() {
 	br := new(models.BaseResponse).Init()
@@ -74,7 +64,6 @@ func (this *PythonController) Add() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	//source := utils.DATA_SOURCE_WIND
 	var req models.AddPythonEdbReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
@@ -82,7 +71,6 @@ func (this *PythonController) Add() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	// 移除首尾空格
 	req.EdbName = strings.TrimSpace(req.EdbName)
 	if req.EdbName == "" {
 		br.Msg = "指标名称不能为空"
@@ -109,21 +97,18 @@ func (this *PythonController) Add() {
 		return
 	}
 
-	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("edb_info:python:add:", utils.DATA_SOURCE_PYTHON, ":", 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)
 		}()
 	}
 
-	//获取指标数据
 	req.PythonCode, err = url.QueryUnescape(req.PythonCode)
 	if err != nil {
 		br.Msg = "python代码解析失败"
@@ -154,8 +139,6 @@ func (this *PythonController) Add() {
 		br.ErrMsg = "指标名称已存在,请重新填写"
 		return
 	}
-	//指标code生成
-	//生成指标编码
 	edbCode, err := utils.GenerateEdbCode(1, "")
 	if err != nil {
 		br.Msg = "指标生成失败"
@@ -191,7 +174,6 @@ func (this *PythonController) Add() {
 	}
 	edbInfo.EdbInfoId = int(edbInfoId)
 
-	//处理同名指标
 	{
 		edbNameList, err := models.GetEdbInfoByName(req.EdbName)
 		if err != nil {
@@ -212,7 +194,6 @@ func (this *PythonController) Add() {
 		}
 	}
 
-	// 存储python代码
 	edbPythonCode := &models.EdbPythonCode{
 		EdbInfoId:  int(edbInfoId),
 		EdbCode:    edbInfo.EdbCode,
@@ -227,10 +208,8 @@ func (this *PythonController) Add() {
 		return
 	}
 
-	//匹配所有的关联指标
 	edbInfoList := models.AnalysisPythonCode(req.PythonCode, req.EdbName)
 
-	//pythonCode
 	err = models.AddPythonEdb(edbInfo, edbData, edbInfoList)
 	if err != nil {
 		br.Msg = "生成python指标失败"
@@ -238,7 +217,6 @@ func (this *PythonController) Add() {
 		return
 	}
 
-	// 更新指标最大最小值
 	err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
 	if err != nil {
 		br.Msg = errMsg
@@ -256,10 +234,6 @@ func (this *PythonController) Add() {
 	br.IsAddLog = true
 }
 
-// Edit
-// @Title 编辑指标接口
-// @Description 编辑指标接口
-// @Success 200 {object} models.EditEdbInfoReq
 // @router /edit [post]
 func (this *PythonController) Edit() {
 	br := new(models.BaseResponse).Init()
@@ -267,7 +241,6 @@ func (this *PythonController) Edit() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	//source := utils.DATA_SOURCE_WIND
 	var req models.AddPythonEdbReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
@@ -276,7 +249,6 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	// 移除首尾空格
 	req.EdbName = strings.TrimSpace(req.EdbName)
 
 	if req.EdbInfoId <= 0 {
@@ -308,14 +280,12 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	//加入缓存机制,避免创建同一个名称的指标 start
 	redisKey := fmt.Sprint("edb_info:python:edit:", utils.DATA_SOURCE_PYTHON, ":", req.EdbInfoId)
 	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)
@@ -329,7 +299,6 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	//获取指标数据
 	req.PythonCode, err = url.QueryUnescape(req.PythonCode)
 	if err != nil {
 		br.Msg = "python代码解析失败"
@@ -345,7 +314,6 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	// 判断指标名称是否重复
 	{
 		var condition string
 		var pars []interface{}
@@ -379,7 +347,6 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	// 修改存储python代码
 	edbPythonCode, err := models.GetEdbPythonCodeById(edbInfo.EdbInfoId)
 	edbPythonCode.PythonCode = req.PythonCode
 	edbPythonCode.ModifyTime = time.Now()
@@ -390,7 +357,6 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	//匹配所有的关联指标
 	edbInfoList := models.AnalysisPythonCode(req.PythonCode, req.EdbName)
 	err = models.EditEdbInfoCalculateMapping(edbInfo, edbInfoList)
 	if err != nil {
@@ -398,7 +364,6 @@ func (this *PythonController) Edit() {
 		br.Msg = "修改python运算指标失败,存储python代码失败,EditEdbPythonCode Err:" + err.Error()
 		return
 	}
-	//刷新数据
 	err = models.RefreshAllPythonEdb(edbInfo, edbData)
 	if err != nil {
 		br.Msg = "刷新python指标失败"
@@ -406,7 +371,6 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	// 更新指标最大最小值
 	err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
 	if err != nil {
 		br.Msg = errMsg
@@ -414,7 +378,6 @@ func (this *PythonController) Edit() {
 		return
 	}
 
-	// 更新ES
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 
 	resp := models.AddEdbInfoResp{

+ 0 - 19
controllers/base_from_stock_plant.go

@@ -10,15 +10,10 @@ import (
 	"time"
 )
 
-// StockPlantController 存量装置
 type StockPlantController struct {
 	BaseAuthController
 }
 
-// Calculate
-// @Title 计算减产数
-// @Description 计算减产数
-// @Success 200 {object} supply_analysis.CalculateVarietyReq
 // @router /calculate [post]
 func (this *StockPlantController) Calculate() {
 	br := new(models.BaseResponse).Init()
@@ -40,13 +35,6 @@ func (this *StockPlantController) Calculate() {
 		return
 	}
 
-	//cacheKey = utils.CACHE_STOCK_PLANT_CALCULATE + strconv.Itoa(req.VarietyId)
-	//if utils.Rc.IsExist(cacheKey) {
-	//	br.Ret = 501
-	//	br.Success = true
-	//	br.Msg = "系统处理中,请稍后重试"
-	//	return
-	//}
 
 	utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 	defer func() {
@@ -64,9 +52,6 @@ func (this *StockPlantController) Calculate() {
 	br.Msg = "获取成功"
 }
 
-// @Title 刷新手工指标接口
-// @Description 刷新手工指标接口
-// @Success 200 {object} models.RefreshEdbInfoReq
 // @router /refresh [post]
 func (this *StockPlantController) Refresh() {
 	br := new(models.BaseResponse).Init()
@@ -101,12 +86,10 @@ func (this *StockPlantController) Refresh() {
 		return
 	}
 
-	// 设置缓存
 	utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
 	defer func() {
 		utils.Rc.Delete(cacheKey)
 	}()
-	// 获取指标详情
 	edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
 	if err != nil {
 		br.Msg = "指标不存在!"
@@ -121,7 +104,6 @@ func (this *StockPlantController) Refresh() {
 		br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromManual,Err:" + err.Error()
 		return
 	}
-	// 更新指标最大最小值
 	err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
 	if err != nil {
 		br.Msg = errMsg
@@ -129,7 +111,6 @@ func (this *StockPlantController) Refresh() {
 		return
 	}
 
-	// 更新ES
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 
 	br.Ret = 200

+ 0 - 12
controllers/base_from_trade_analysis.go

@@ -11,15 +11,10 @@ import (
 	"time"
 )
 
-// BaseFromTradeAnalysisController 持仓分析指标
 type BaseFromTradeAnalysisController struct {
 	BaseAuthController
 }
 
-// EdbRefresh
-// @Title 指标库刷新
-// @Description 指标库刷新
-// @Success 200 {object} models.RefreshEdbInfoReq
 // @router /edb/refresh [post]
 func (this *BaseFromTradeAnalysisController) EdbRefresh() {
 	br := new(models.BaseResponse).Init()
@@ -62,7 +57,6 @@ func (this *BaseFromTradeAnalysisController) EdbRefresh() {
 		_ = utils.Rc.Delete(cacheKey)
 	}()
 
-	// 获取指标详情
 	edbInfo, e := models.GetEdbInfoByEdbCode(source, req.EdbCode)
 	if e != nil {
 		br.Msg = "指标不存在"
@@ -71,7 +65,6 @@ func (this *BaseFromTradeAnalysisController) EdbRefresh() {
 	}
 	formula := edbInfo.CalculateFormula
 
-	// 校验计算公式
 	var extraConfig tradeAnalysisModel.WarehouseExtraConfig
 	if formula == `` {
 		br.Msg = "指标计算公式有误"
@@ -109,7 +102,6 @@ func (this *BaseFromTradeAnalysisController) EdbRefresh() {
 		return
 	}
 
-	// 获取指标数据, 该图表未用实际指标, 为了统一数据格式用ChartEdbInfoMapping
 	companyTradeData, e := tradeAnalysisService.GetOriginTradeData(extraConfig.Exchange, extraConfig.ClassifyName, extraConfig.Contracts, extraConfig.Companies, extraConfig.PredictRatio)
 	if e != nil {
 		br.Msg = "获取失败"
@@ -121,7 +113,6 @@ func (this *BaseFromTradeAnalysisController) EdbRefresh() {
 		return
 	}
 
-	// 转换持仓数据为指标数据
 	convertData, e := tradeAnalysisService.FormatCompanyTradeData2EdbData(companyTradeData[0], extraConfig.WarehouseChartType)
 	if e != nil {
 		br.Msg = "获取失败"
@@ -129,21 +120,18 @@ func (this *BaseFromTradeAnalysisController) EdbRefresh() {
 		return
 	}
 
-	// 刷新指标
 	if e = edbOb.Refresh(edbInfo, convertData); e != nil {
 		br.Msg = "刷新指标失败"
 		br.ErrMsg = fmt.Sprintf("刷新指标失败, %v", e)
 		return
 	}
 
-	// 更新指标最值
 	if e = edbOb.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo); e != nil {
 		br.Msg = "刷新指标失败"
 		br.ErrMsg = fmt.Sprintf("更新指标最值失败, %v", e)
 		return
 	}
 
-	// 更新ES
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 
 	br.Ret = 200

+ 0 - 6
controllers/edb_classify.go

@@ -6,15 +6,10 @@ import (
 	"eta_gn/eta_index_lib/utils"
 )
 
-// 指标分类
 type EdbClassifyController struct {
 	BaseAuthController
 }
 
-// @Title 查询/新增分类
-// @Description 查询/新增分类接口
-// @Param	request	body models.AddEdbClassifyReq true "type json string"
-// @Success 200 {object} models.EdbClassify
 // @router /get_or_add [post]
 func (this *EdbClassifyController) GetOrAdd() {
 	br := new(models.BaseResponse).Init()
@@ -40,7 +35,6 @@ func (this *EdbClassifyController) GetOrAdd() {
 		return
 	}
 
-	//添加指标
 	edbClassify, err, errMsg := models.SaveEdbClassify(req.ClassifyName, req.ParentId, req.Level, req.ClassifyType, utils.InitAdminId, utils.InitAdminName)
 	if errMsg != `` {
 		br.Msg = errMsg

+ 0 - 22
controllers/edb_info.go

@@ -10,15 +10,10 @@ import (
 	"time"
 )
 
-// 指标
 type EdbInfoController struct {
 	BaseAuthController
 }
 
-// @Title 获取基础指标详情
-// @Description 获取基础指标详情
-// @Param	request	body models.EdbInfoDetailReq true "type json string"
-// @Success 200 {object} models.EdbInfo
 // @router /detail [post]
 func (this *EdbInfoController) EdbIndexDetail() {
 	br := new(models.BaseResponse).Init()
@@ -56,9 +51,6 @@ func (this *EdbInfoController) EdbIndexDetail() {
 	br.Data = detail
 }
 
-// @Title 复制新增来自弘则的指标接口
-// @Description  复制新增来自弘则的指标接口
-// @Success 200 {object} models.EdbInfo
 // @router /copy/from/hz [post]
 func (this *EdbInfoController) CopyFromHz() {
 	br := new(models.BaseResponse).Init()
@@ -145,17 +137,12 @@ func (this *EdbInfoController) CopyFromHz() {
 		}
 	}
 	edbInfo, err := models.GetEdbInfoOnlyByEdbCode(req.EdbCode)
-	// 更新ES
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 	br.Ret = 200
 	br.Msg = "新增成功"
 	br.Data = edbInfo
 }
 
-// RefreshCheck @Title 指标数据更新检查
-// @Description 指标数据更新检查
-// @Param	request	body models.EdbInfoRefreshCheckReq true "type json string"
-// @Success 200 {object} models.EdbInfo
 // @router /refresh_check [post]
 func (this *EdbInfoController) RefreshCheck() {
 	br := new(models.BaseResponse).Init()
@@ -226,11 +213,6 @@ func (this *EdbInfoController) RefreshCheck() {
 	br.Data = resp
 }
 
-// ResetEdbClassify
-// @Title 重置指标分类
-// @Description 重置指标分类
-// @Param	request	body models.ResetEdbClassifyReq true "type json string"
-// @Success 200 {object} models.EdbInfo
 // @router /classify_reset [post]
 func (this *EdbInfoController) ResetEdbClassify() {
 	br := new(models.BaseResponse).Init()
@@ -269,7 +251,6 @@ func (this *EdbInfoController) ResetEdbClassify() {
 		return
 	}
 
-	// 获取指标信息
 	edbInfo, e := models.GetEdbInfoOnlyByEdbCode(req.IndexCode)
 	if e != nil {
 		if e.Error() == utils.ErrNoRow() {
@@ -282,7 +263,6 @@ func (this *EdbInfoController) ResetEdbClassify() {
 	}
 	edbInfoType := uint8(edbInfo.EdbInfoType)
 
-	// 新增分类
 	firstClassify, e, msg := models.SaveEdbClassify(req.ClassifyFirst, 0, 0, edbInfoType, utils.InitAdminId, utils.InitAdminName)
 	if msg != "" {
 		br.Msg = "新增一级分类失败"
@@ -317,7 +297,6 @@ func (this *EdbInfoController) ResetEdbClassify() {
 		return
 	}
 
-	// 更新指标分类
 	cols := []string{"ClassifyId", "ModifyTime"}
 	edbInfo.ClassifyId = thirdClassify.ClassifyId
 	edbInfo.ModifyTime = time.Now().Local()
@@ -327,7 +306,6 @@ func (this *EdbInfoController) ResetEdbClassify() {
 		return
 	}
 
-	// 更新ES
 	go logic.UpdateEs(edbInfo.EdbInfoId)
 
 	br.Data = edbInfo

+ 0 - 4
controllers/edb_info_calculate_mapping.go

@@ -7,14 +7,10 @@ import (
 	"time"
 )
 
-// 计算指标
 type EdbInfoCalculateController struct {
 	BaseAuthController
 }
 
-// @Title 复制新增来自弘则的计算指标接口
-// @Description  复制新增来自弘则的计算指标接口
-// @Success 200 {object} models.EdbInfoCalculateMapping
 // @router /copy/calculate/from/hz [post]
 func (this *EdbInfoController) CopyCalculateFromHz() {
 	br := new(models.BaseResponse).Init()

+ 0 - 5
controllers/edb_info_stat.go

@@ -9,10 +9,6 @@ type EdbInfoStatController struct {
 	BaseAuthController
 }
 
-// SetEdbSourceStat
-// @Title 指标终端更新情况定时汇总
-// @Description 指标终端情况定时汇总
-// @Success 200 {object}
 // @router /source_update [post]
 func (this *EdbInfoStatController) SetEdbSourceStat() {
 	br := new(models.BaseResponse).Init()
@@ -20,7 +16,6 @@ func (this *EdbInfoStatController) SetEdbSourceStat() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	// 钢联终端统计汇总
 	_ = services.SetEdbSourceStat(true)
 
 	br.Ret = 200

+ 0 - 12
controllers/edb_refresh.go

@@ -13,10 +13,6 @@ type EdbRefreshController struct {
 	BaseAuthController
 }
 
-// GetMysteelIndexConfigList
-// @Title 获取钢联的刷新配置
-// @Description 获取钢联的刷新配置
-// @Success 200 {object}
 // @router /config/mysteel_index/list [post]
 func (this *EdbRefreshController) GetMysteelIndexConfigList() {
 	br := new(models.BaseResponse).Init()
@@ -38,10 +34,6 @@ func (this *EdbRefreshController) GetMysteelIndexConfigList() {
 	br.Data = list
 }
 
-// GetSmmConfigList
-// @Title 获取有色的刷新配置
-// @Description 获取有色的刷新配置
-// @Success 200 {object}
 // @router /config/smm/list [post]
 func (this *EdbRefreshController) GetSmmConfigList() {
 	br := new(models.BaseResponse).Init()
@@ -63,10 +55,6 @@ func (this *EdbRefreshController) GetSmmConfigList() {
 	br.Data = list
 }
 
-// GetDefaultConfigList
-// @Title 获取默认的刷新配置
-// @Description 获取默认的刷新配置
-// @Success 200 {object}
 // @router /config/default/list [post]
 func (this *EdbRefreshController) GetDefaultConfigList() {
 	br := new(models.BaseResponse).Init()

+ 0 - 3
controllers/error.go

@@ -4,15 +4,12 @@ import (
 	"eta_gn/eta_index_lib/models"
 )
 
-// ErrorController
-// @Description: 该控制器处理页面错误请求
 type ErrorController struct {
 	BaseCommonController
 }
 
 func (c *ErrorController) Error404() {
 	c.Data["content"] = "很抱歉您访问的地址或者方法不存在"
-	//c.TplName = "error/404.html"
 
 	br := new(models.BaseResponse).Init()
 

+ 0 - 30
global/dm.go

@@ -16,12 +16,9 @@ import (
 	_ "github.com/go-sql-driver/mysql"
 )
 
-// InitDm
-// @Description: 达梦数据库初始化
 func InitDm() {
 	dmSqlMap := make(map[string]*gorm.DB)
 
-	//开启日志
 	logWriter := io.MultiWriter(utils.Binlog) //binlog日志,记录到文件中去
 	if utils.RunMode == `dev` {               // 测试环境,默认输出在控制台,不需要的话,可以注释if里面下面的这行
 		logWriter = io.MultiWriter(utils.Binlog, os.Stdout)
@@ -33,39 +30,19 @@ func InitDm() {
 		Colorful:                  false,                  //是否颜色输出
 	})
 
-	/*// 默认库
-	connectDm("dm://SYSDBA:SYSDBA001@8.136.199.33:30238?schema=\"eta_index\"", "default", newLogger, dmSqlMap, true)
-	// 手工数据库
-	connectDm("dm://SYSDBA:SYSDBA001@8.136.199.33:30238?schema=\"eta_manual_index\"", "edb", newLogger, dmSqlMap, false)
-	// eta主库
-	connectDm("dm://SYSDBA:SYSDBA001@8.136.199.33:30238?schema=\"eta_master\"", "master", newLogger, dmSqlMap, false)
-	// 钢联库
-	connectDm("dm://SYSDBA:SYSDBA001@8.136.199.33:30238?schema=\"eta_gl\"", "gl", newLogger, dmSqlMap, false)*/
-
 	connectDm(utils.MYSQL_URL, "default", newLogger, dmSqlMap, true)
 	connectDm(utils.MYSQL_URL_EDB, "edb", newLogger, dmSqlMap, false)
 	connectDm(utils.MYSQL_URL_MASTER, "master", newLogger, dmSqlMap, false)
 	connectDm(utils.MYSQL_URL_GL, "gl", newLogger, dmSqlMap, false)
 
-	//全局赋值数据库链接
 	DmSQL = dmSqlMap
 
 }
 
-// connectDm
-// @Description: 达梦数据库连接
-// @param dsn
-// @param aliasName
-// @param newLogger
-// @param dmSqlMap
-// @param isDefault
 func connectDm(dsn, aliasName string, newLogger logger.Interface, dmSqlMap map[string]*gorm.DB, isDefault bool) {
-	//fmt.Println("dsn:", dsn, "  ==  ;aliasName:", aliasName)
 	if dsn == `` {
 		return
 	}
-	//dsn := "dm://SYSDBA:SYSDBA001@8.136.199.33:30236?schema=\"eta_master\""
-	//dsn := "dm://ETA:Han6258199118%60@localhost:5236?schema=ECOLOGY_TARGET"
 	db, err := gorm.Open(dm.Open(dsn), &gorm.Config{
 		Logger: newLogger,
 		NamingStrategy: schema.NamingStrategy{
@@ -73,31 +50,24 @@ func connectDm(dsn, aliasName string, newLogger logger.Interface, dmSqlMap map[s
 		},
 	})
 	if err != nil {
-		//global.LOG.Errorf("mysql 启动异常,数据库:default;Err:", err)
 		panic(fmt.Errorf("mysql 启动异常,数据库:%s;Err:%s", aliasName, err))
 	}
 
-	//创建连接池
 	sqlDB, err := db.DB()
 	if err != nil {
-		//global.LOG.Errorf("mysql 创建连接池失败,数据库:default;Err:", err)
 		panic(fmt.Errorf("mysql 创建连接池失败,数据库:%s;Err:%s", aliasName, err))
 	}
 
 	dmSqlMap[aliasName] = db
 
-	//默认数据库连接
 	if isDefault {
 		DEFAULT_DmSQL = db
 	}
 
-	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
 	sqlDB.SetMaxIdleConns(50)
 
-	// SetMaxOpenConns 设置打开数据库连接的最大数量。
 	sqlDB.SetMaxOpenConns(100)
 
-	// SetConnMaxLifetime 设置了连接可复用的最大时间。
 	sqlDB.SetConnMaxLifetime(10 * time.Minute)
 
 }

+ 0 - 1
global/global.go

@@ -12,6 +12,5 @@ var (
 )
 
 func init() {
-	// 初始化达梦连接
 	InitDm()
 }

+ 0 - 3
logic/base_edb_info.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// RefreshBaseEdbInfo 刷新基础指标
 func RefreshBaseEdbInfo(edbInfo *models.EdbInfo, startDate string) (isHandling bool, errMsg string, err error) {
 	cacheKey := utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(edbInfo.Source) + "_" + edbInfo.EdbCode
 	if utils.Rc.IsExist(cacheKey) {
@@ -30,7 +29,6 @@ func RefreshBaseEdbInfo(edbInfo *models.EdbInfo, startDate string) (isHandling b
 		return
 	}
 
-	// 更新指标最大最小值
 	if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
 		dataUpdateTime := time.Now().Format(utils.FormatDateTime)
 		_, err, errMsg = models.UnifiedModifyEdbInfoMaxAndMinInfoDataUpdate(edbInfo, dataUpdateTime)
@@ -44,7 +42,6 @@ func RefreshBaseEdbInfo(edbInfo *models.EdbInfo, startDate string) (isHandling b
 		}
 	}
 
-	// 更新ES
 	go UpdateEs(edbInfo.EdbInfoId)
 	return
 }

+ 4 - 78
logic/chart_correlation.go

@@ -6,7 +6,6 @@ import (
 	"fmt"
 )
 
-// CalculateCorrelation 计算相关性-获取x轴和y轴
 func CalculateCorrelation(leadValue int, leadUnit, frequencyA, frequencyB string, dataListA, dataListB []*models.EdbInfoSearchData) (xEdbIdValue []int, yDataList []YData, err error) {
 	xData := make([]int, 0)
 	yData := make([]float64, 0)
@@ -22,54 +21,14 @@ func CalculateCorrelation(leadValue int, leadUnit, frequencyA, frequencyB string
 		}
 	}
 
-	// 计算窗口,不包含第一天
-	//startDateTime, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
-	//startDate = startDateTime.AddDate(0, 0, 1).Format(utils.FormatDate)
-
-	//// 2023-03-02 时间序列始终以指标B为基准, 始终是A进行平移
-	//baseEdbInfo := edbInfoMappingB
-	//changeEdbInfo := edbInfoMappingA
-	// 2023-03-17 时间序列始终以指标A为基准, 始终是B进行平移
-	//baseEdbInfo := edbInfoMappingA
-	//changeEdbInfo := edbInfoMappingB
-
-	// 获取时间基准指标在时间区间内的值
-	//aDataList := make([]*EdbDataList, 0)
-	//switch baseEdbInfo.EdbInfoCategoryType {
-	//case 0:
-	//	aDataList, err = GetEdbDataList(baseEdbInfo.Source, baseEdbInfo.SubSource, baseEdbInfo.EdbInfoId, startDate, endDate)
-	//case 1:
-	//	_, aDataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(baseEdbInfo.EdbInfoId, startDate, endDate, false)
-	//default:
-	//	err = errors.New("指标base类型异常")
-	//	return
-	//}
-	//
-	//// 获取变频指标所有日期的值, 插值法完善数据
-	//bDataList := make([]*EdbDataList, 0)
-	//switch changeEdbInfo.EdbInfoCategoryType {
-	//case 0:
-	//	bDataList, err = GetEdbDataList(changeEdbInfo.Source, changeEdbInfo.SubSource, changeEdbInfo.EdbInfoId, "", "")
-	//case 1:
-	//	_, bDataList, _, _, err, _ = data.GetPredictDataListByPredictEdbInfoId(changeEdbInfo.EdbInfoId, "", "", false)
-	//default:
-	//	err = errors.New("指标change类型异常")
-	//	return
-	//}
-	//changeDataMap := make(map[string]float64)
-	//newChangeDataList, e := HandleDataByLinearRegression(bDataList, changeDataMap)
-	//if e != nil {
-	//	err = fmt.Errorf("获取变频指标插值法Map失败, Err: %s", e.Error())
-	//	return
-	//}
-
-	// 2023-03-17 时间序列始终以指标A为基准, 始终是B进行平移
+
+
+
 	baseDataList := make([]*models.EdbInfoSearchData, 0)
 	baseDataMap := make(map[string]float64)
 	changeDataList := make([]*models.EdbInfoSearchData, 0)
 	changeDataMap := make(map[string]float64)
 
-	// 先把低频指标升频为高频
 	{
 		frequencyIntMap := map[string]int{
 			"日度": 1,
@@ -80,7 +39,6 @@ func CalculateCorrelation(leadValue int, leadUnit, frequencyA, frequencyB string
 			"年度": 6,
 		}
 
-		// 如果A指标是高频,那么就需要对B指标进行升频
 		if frequencyIntMap[frequencyA] < frequencyIntMap[frequencyB] {
 			tmpNewChangeDataList, e := models.HandleDataByLinearRegression(dataListB, changeDataMap)
 			if e != nil {
@@ -94,7 +52,6 @@ func CalculateCorrelation(leadValue int, leadUnit, frequencyA, frequencyB string
 			}
 
 		} else if frequencyIntMap[frequencyA] > frequencyIntMap[frequencyB] {
-			// 如果B指标是高频,那么就需要对A指标进行升频
 			tmpNewChangeDataList, e := models.HandleDataByLinearRegression(dataListA, baseDataMap)
 			if e != nil {
 				err = fmt.Errorf("获取变频指标插值法Map失败, Err: %s", e.Error())
@@ -119,7 +76,6 @@ func CalculateCorrelation(leadValue int, leadUnit, frequencyA, frequencyB string
 
 	}
 
-	// 计算不领先也不滞后时的相关系数
 	baseCalculateData := make([]float64, 0)
 	baseDataTimeArr := make([]string, 0)
 	for i := range baseDataList {
@@ -127,43 +83,17 @@ func CalculateCorrelation(leadValue int, leadUnit, frequencyA, frequencyB string
 		baseCalculateData = append(baseCalculateData, baseDataList[i].Value)
 	}
 
-	//zeroBaseData := make([]float64, 0)
-	//zeroCalculateData := make([]float64, 0)
-	//for i := range baseDataTimeArr {
-	//	tmpBaseVal, ok1 := baseDataMap[baseDataTimeArr[i]]
-	//	tmpCalculateVal, ok2 := changeDataMap[baseDataTimeArr[i]]
-	//	if ok1 && ok2 {
-	//		zeroBaseData = append(zeroBaseData, tmpBaseVal)
-	//		zeroCalculateData = append(zeroCalculateData, tmpCalculateVal)
-	//	}
-	//}
-	//if len(zeroBaseData) != len(zeroCalculateData) {
-	//	err = fmt.Errorf("相关系数两组序列元素数不一致, %d-%d", len(baseCalculateData), len(zeroCalculateData))
-	//	return
-	//}
-	//zeroRatio := utils.CalculateCorrelationByIntArr(zeroBaseData, zeroCalculateData)
-	//if leadValue == 0 {
-	//	yData = append(yData, zeroRatio)
-	//}
-
-	// 计算领先/滞后N期
+
 	if leadValue > 0 {
-		// 平移变频指标领先/滞后的日期(单位天)
 		moveUnitDays := utils.FrequencyDaysMap[leadUnit]
 
 		for i := range xData {
-			//if xData[i] == 0 {
-			//	yData = append(yData, zeroRatio)
-			//	continue
-			//}
 			xCalculateData := make([]float64, 0)
 			yCalculateData := make([]float64, 0)
 
-			// 平移指定天数
 			mDays := int(moveUnitDays) * xData[i]
 			_, dMap := models.MoveDataDaysToNewDataList(changeDataList, mDays)
 
-			// 取出对应的基准日期的值
 			for i2 := range baseDataTimeArr {
 				tmpDate := baseDataTimeArr[i2]
 				if yVal, ok := dMap[tmpDate]; ok {
@@ -172,13 +102,9 @@ func CalculateCorrelation(leadValue int, leadUnit, frequencyA, frequencyB string
 				}
 			}
 			if len(yCalculateData) <= 0 {
-				//err = fmt.Errorf("领先滞后相关系数两组序列元素数不一致, %d-%d", len(baseCalculateData), len(yCalculateData))
-				//return
-				// 领先滞后后,没有可以计算的数据了
 				continue
 			}
 
-			// 公式计算出领先/滞后频度对应点的相关性系数
 			ratio := utils.CalculateCorrelationByIntArr(xCalculateData, yCalculateData)
 			yData = append(yData, ratio)
 		}

+ 0 - 2
logic/edbinfo.go

@@ -7,9 +7,7 @@ import (
 	"strconv"
 )
 
-// UpdateEs 更新ES的指标数据
 func UpdateEs(edbInfoId int) {
-	//添加es
 	itemInfo, _ := models.GetEdbInfoItemByCondition("AND edb_info_id=?", []interface{}{edbInfoId})
 	elastic.EsAddOrEditEdbInfoData(utils.DATA_INDEX_NAME, strconv.Itoa(itemInfo.EdbInfoId), itemInfo)
 }

+ 0 - 129
logic/predict_edb.go

@@ -10,10 +10,8 @@ import (
 	"time"
 )
 
-// AddPredictEdbInfo 新增预测指标
 func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType string, ruleList []models.RuleConfig, minValue, maxValue float64, sysUserId int, sysUserName, lang string) (edbInfo *models.EdbInfo, err error, errMsg string) {
 	var sourceEdbInfo *models.EdbInfo
-	// 来源指标信息校验
 	{
 		sourceEdbInfo, err = models.GetEdbInfoById(sourceEdbInfoId)
 		if err != nil && err.Error() != utils.ErrNoRow() {
@@ -26,21 +24,14 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 			err = errors.New(errMsg)
 			return
 		}
-		//必须是普通的指标
 		if sourceEdbInfo.EdbInfoType != 0 {
 			errMsg = "来源指标异常,不是普通的指标"
 			err = errors.New(errMsg)
 			return
 		}
-		//if !utils.InArrayByStr([]string{"日度", "周度", "月度", "年度"}, sourceEdbInfo.Frequency) {
-		//	errMsg = "预测指标只支持选择日度、周度、月度、年度的指标"
-		//	err = errors.New(errMsg)
-		//	return
-		//}
 	}
 
 	var classifyInfo *models.EdbClassify
-	// 来源分类信息校验
 	{
 		classifyInfo, err = models.GetEdbClassifyById(classifyId)
 		if err != nil && err.Error() != utils.ErrNoRow() {
@@ -53,7 +44,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 			err = errors.New(errMsg)
 			return
 		}
-		//必须是预测指标分类
 		if classifyInfo.ClassifyType != 1 {
 			errMsg = "预测指标分类异常,不是预测指标分类"
 			err = errors.New(errMsg)
@@ -65,7 +55,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 
 	edbCode := sourceEdbInfo.EdbCode + "_" + time.Now().Format(utils.FormatShortDateTimeUnSpace)
 
-	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
 	existEdbName, err := CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, 0, edbName, lang)
 	if err != nil {
 		errMsg = "判断指标名称是否存在失败"
@@ -83,7 +72,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 		dataDateType = `自然日`
 	}
 	edbInfo = &models.EdbInfo{
-		//EdbInfoId:   0,
 		EdbInfoType:      1,
 		SourceName:       "预测指标",
 		Source:           utils.DATA_SOURCE_PREDICT,
@@ -103,7 +91,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 		MaxValue:         maxValue,
 		CalculateFormula: sourceEdbInfo.CalculateFormula,
 		EdbType:          1,
-		//Sort:             sourceEdbInfo.,
 		LatestDate:    sourceEdbInfo.LatestDate,
 		LatestValue:   sourceEdbInfo.LatestValue,
 		MoveType:      sourceEdbInfo.MoveType,
@@ -116,14 +103,10 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 		Sort:          models.GetAddEdbMaxSortByClassifyId(classifyId, utils.PREDICT_EDB_INFO_TYPE),
 	}
 
-	// 关联关系表
 	calculateMappingList := make([]*models.EdbInfoCalculateMapping, 0)
 	fromEdbMap := make(map[int]int)
 
-	// 源指标关联关系表
 	calculateMappingItem := &models.EdbInfoCalculateMapping{
-		//EdbInfoCalculateMappingId: 0,
-		//EdbInfoId:                 0,
 		Source:         edbInfo.Source,
 		SourceName:     edbInfo.SourceName,
 		EdbCode:        edbInfo.EdbCode,
@@ -132,7 +115,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 		FromEdbName:    sourceEdbInfo.EdbName,
 		FromSource:     sourceEdbInfo.Source,
 		FromSourceName: sourceEdbInfo.SourceName,
-		//FromTag:        "",
 		Sort:       1,
 		CreateTime: time.Now(),
 		ModifyTime: time.Now(),
@@ -140,21 +122,16 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 	fromEdbMap[sourceEdbInfoId] = sourceEdbInfoId
 	calculateMappingList = append(calculateMappingList, calculateMappingItem)
 
-	// 动态环差 计算列表
 	calculateRuleMap := make(map[int]models.CalculateRule, 0)
 
-	// 预测指标配置
 	predictEdbConfList := make([]*models.PredictEdbConf, 0)
 	for ruleIndex, v := range ruleList {
-		// 预测指标配置
 		ruleEndDate, tmpErr := time.ParseInLocation(utils.FormatDate, v.EndDate, time.Local)
 		if tmpErr != nil {
 			errMsg = "规则配置的截止日期异常,请重新填写"
 			err = errors.New(errMsg)
 			return
 		}
-		//1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值,9:动态环差,10:根据 给定终值后插值 规则获取预测数据,11:根据 季节性 规则获取预测数据,12:根据 移动平均同比 规则获取预测数据
-		// 环比、环差、动态环差、季节性、移动平均同比不支持年度
 		if sourceEdbInfo.Frequency == "年度" && utils.InArrayByInt([]int{5, 6, 11, 12}, v.RuleType) {
 			errMsg = "环比、环差、动态环差、季节性、移动平均同比不支持年度指标"
 			err = errors.New(errMsg)
@@ -188,7 +165,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 			formula = strings.Replace(formula, "%", "*0.01", -1)
 			v.Value = formula
 
-			//检验公式
 			var formulaStr string
 			var edbInfoIdBytes []string
 			for _, tmpEdbInfoId := range v.EdbInfoIdArr {
@@ -216,9 +192,7 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 				}
 			}
 
-			//关联的指标信息
 			edbInfoList := make([]*models.EdbInfo, 0)
-			// 动态环差规则 关系表
 			trendsMappingList := make([]*models.PredictEdbConfCalculateMapping, 0)
 
 			for k, tmpEdbInfoId := range v.EdbInfoIdArr {
@@ -237,7 +211,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 
 				edbInfoList = append(edbInfoList, fromEdbInfo)
 
-				//总的 预测指标与所有相关联指标的关系表(不仅仅该条规则)
 				{
 					if _, ok := fromEdbMap[tmpEdbInfoId.EdbInfoId]; !ok {
 						fromEdbMap[tmpEdbInfoId.EdbInfoId] = tmpEdbInfoId.EdbInfoId
@@ -252,7 +225,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 							FromEdbName:               fromEdbInfo.EdbName,
 							FromSource:                fromEdbInfo.Source,
 							FromSourceName:            fromEdbInfo.SourceName,
-							//FromTag:                   tmpEdbInfoId.FromTag,
 							Sort:       k + 1,
 							CreateTime: time.Now(),
 							ModifyTime: time.Now(),
@@ -260,9 +232,7 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 						calculateMappingList = append(calculateMappingList, calculateMappingItem)
 					}
 				}
-				// 动态环差规则 关系表
 				tmpPredictEdbConfCalculateMapping := &models.PredictEdbConfCalculateMapping{
-					//PredictEdbConfCalculateMappingId: 0,
 					EdbInfoId:      0,
 					ConfigId:       0,
 					FromEdbInfoId:  fromEdbInfo.EdbInfoId,
@@ -283,7 +253,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 					err = fmt.Errorf("公式错误,请重新填写")
 					return
 				}
-				//预先计算,判断公式是否正常
 				ok, _ := models.CheckFormula2(edbInfoList, formulaMap, f, edbInfoIdBytes)
 				if !ok {
 					errMsg = "生成计算指标失败,请使用正确的计算公式"
@@ -308,9 +277,7 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 				return
 			}
 
-			//关联的指标信息
 			edbInfoList := make([]*models.EdbInfo, 0)
-			// 动态环差规则 关系表
 			trendsMappingList := make([]*models.PredictEdbConfCalculateMapping, 0)
 
 			for k, tmpEdbInfoId := range v.EdbInfoIdArr {
@@ -329,7 +296,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 
 				edbInfoList = append(edbInfoList, fromEdbInfo)
 
-				//总的 预测指标与所有相关联指标的关系表(不仅仅该条规则)
 				{
 					if _, ok := fromEdbMap[tmpEdbInfoId.EdbInfoId]; !ok {
 						fromEdbMap[tmpEdbInfoId.EdbInfoId] = tmpEdbInfoId.EdbInfoId
@@ -344,7 +310,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 							FromEdbName:               fromEdbInfo.EdbName,
 							FromSource:                fromEdbInfo.Source,
 							FromSourceName:            fromEdbInfo.SourceName,
-							//FromTag:                   tmpEdbInfoId.FromTag,
 							Sort:       k + 1,
 							CreateTime: time.Now(),
 							ModifyTime: time.Now(),
@@ -352,9 +317,7 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 						calculateMappingList = append(calculateMappingList, tmpCalculateMappingItem)
 					}
 				}
-				// 动态环差规则 关系表
 				tmpPredictEdbConfCalculateMapping := &models.PredictEdbConfCalculateMapping{
-					//PredictEdbConfCalculateMappingId: 0,
 					EdbInfoId:      0,
 					ConfigId:       0,
 					FromEdbInfoId:  fromEdbInfo.EdbInfoId,
@@ -373,8 +336,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 			calculateRuleMap[ruleIndex] = models.CalculateRule{
 				TrendsCalculateMappingList: trendsMappingList,
 				EdbInfoList:                edbInfoList,
-				//EdbInfoIdBytes:             edbInfoIdBytes,
-				//Formula:                    formula,
 				RuleType:     v.RuleType,
 				EndDate:      v.EndDate,
 				EdbInfoIdArr: v.EdbInfoIdArr,
@@ -385,7 +346,6 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 			PredictEdbInfoId: 0,
 			SourceEdbInfoId:  sourceEdbInfoId,
 			RuleType:         v.RuleType,
-			//FixedValue:       v.Value,
 			Value:      v.Value,
 			EndDate:    ruleEndDate,
 			ModifyTime: time.Now(),
@@ -401,9 +361,7 @@ func AddPredictEdbInfo(sourceEdbInfoId, classifyId int, edbName, dataDateType st
 	return
 }
 
-// EditPredictEdbInfo 编辑预测指标
 func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string, ruleList []models.RuleConfig, minValue, maxValue float64, lang string) (edbInfo *models.EdbInfo, err error, errMsg string) {
-	// 指标信息校验
 	{
 		edbInfo, err = models.GetEdbInfoById(edbInfoId)
 		if err != nil && err.Error() != utils.ErrNoRow() {
@@ -416,7 +374,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 			err = errors.New(errMsg)
 			return
 		}
-		//必须是普通的指标
 		if edbInfo.EdbInfoType != 1 {
 			errMsg = "指标异常,不是预测指标"
 			err = errors.New(errMsg)
@@ -425,9 +382,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 	}
 
 	var predictEdbConf *models.PredictEdbConf
-	// 指标配置信息校验
 	{
-		// 查找该预测指标配置
 		predictEdbConfList, tmpErr := models.GetPredictEdbConfListById(edbInfo.EdbInfoId)
 		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
 			errMsg = "修改失败"
@@ -442,7 +397,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 		predictEdbConf = predictEdbConfList[0]
 	}
 
-	// 根据指标名称和指标ID校验库中是否还存在其他同名指标
 	existEdbName, err := CheckExistByEdbNameAndEdbInfoId(utils.PREDICT_EDB_INFO_TYPE, edbInfoId, edbName, lang)
 	if err != nil {
 		errMsg = "判断指标名称是否存在失败"
@@ -474,7 +428,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 	updateEdbInfoCol := []string{"EdbName", "EdbNameEn", "EdbNameSource", "ClassifyId", "EndDate", "MinValue", "MaxValue", "DataDateType", "ModifyTime"}
 
 	var sourceEdbInfo *models.EdbInfo
-	// 来源指标信息校验
 	{
 		sourceEdbInfo, err = models.GetEdbInfoById(predictEdbConf.SourceEdbInfoId)
 		if err != nil && err.Error() != utils.ErrNoRow() {
@@ -487,27 +440,17 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 			err = errors.New(errMsg)
 			return
 		}
-		//必须是普通的指标
 		if sourceEdbInfo.EdbInfoType != 0 {
 			errMsg = "来源指标异常,不是普通的指标"
 			err = errors.New(errMsg)
 			return
 		}
-		//if !utils.InArrayByStr([]string{"日度", "周度", "月度", "年度"}, sourceEdbInfo.Frequency) {
-		//	errMsg = "预测指标只支持选择日度、周度、月度、年度的指标"
-		//	err = errors.New(errMsg)
-		//	return
-		//}
 	}
 
-	// 预测指标配置
-	// 关联关系表
 	calculateMappingList := make([]*models.EdbInfoCalculateMapping, 0)
 	fromEdbMap := make(map[int]int)
 
-	// 源指标关联关系表
 	calculateMappingItem := &models.EdbInfoCalculateMapping{
-		//EdbInfoCalculateMappingId: 0,
 		EdbInfoId:      edbInfoId,
 		Source:         edbInfo.Source,
 		SourceName:     edbInfo.SourceName,
@@ -517,7 +460,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 		FromEdbName:    sourceEdbInfo.EdbName,
 		FromSource:     sourceEdbInfo.Source,
 		FromSourceName: sourceEdbInfo.SourceName,
-		//FromTag:        "",
 		Sort:       1,
 		CreateTime: time.Now(),
 		ModifyTime: time.Now(),
@@ -525,21 +467,16 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 	fromEdbMap[sourceEdbInfo.EdbInfoId] = sourceEdbInfo.EdbInfoId
 	calculateMappingList = append(calculateMappingList, calculateMappingItem)
 
-	// 动态环差 计算列表
 	calculateRuleMap := make(map[int]models.CalculateRule, 0)
 
-	// 预测指标配置
 	predictEdbConfList := make([]*models.PredictEdbConf, 0)
 	for ruleIndex, v := range ruleList {
-		// 预测指标配置
 		ruleEndDate, tmpErr := time.ParseInLocation(utils.FormatDate, v.EndDate, time.Local)
 		if tmpErr != nil {
 			errMsg = "规则配置的截止日期异常,请重新填写"
 			err = errors.New(errMsg)
 			return
 		}
-		//1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值,9:动态环差,10:根据 给定终值后插值 规则获取预测数据,11:根据 季节性 规则获取预测数据,12:根据 移动平均同比 规则获取预测数据
-		// 环比、环差、动态环差、季节性、移动平均同比不支持年度
 		if sourceEdbInfo.Frequency == "年度" && utils.InArrayByInt([]int{5, 6, 11, 12}, v.RuleType) {
 			errMsg = "环比、环差、动态环差、季节性、移动平均同比不支持年度指标"
 			err = errors.New(errMsg)
@@ -572,7 +509,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 			formula = strings.Replace(formula, "%", "*0.01", -1)
 			v.Value = formula
 
-			//检验公式
 			var formulaStr string
 			var edbInfoIdBytes []string
 			for _, tmpEdbInfoId := range v.EdbInfoIdArr {
@@ -601,9 +537,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 				}
 			}
 
-			//关联的指标信息
 			edbInfoList := make([]*models.EdbInfo, 0)
-			// 动态环差规则 关系表
 			trendsMappingList := make([]*models.PredictEdbConfCalculateMapping, 0)
 
 			for k, tmpEdbInfoId := range v.EdbInfoIdArr {
@@ -622,7 +556,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 
 				edbInfoList = append(edbInfoList, fromEdbInfo)
 
-				//总的 预测指标与所有相关联指标的关系表(不仅仅该条规则)
 				{
 					if _, ok := fromEdbMap[tmpEdbInfoId.EdbInfoId]; !ok {
 						fromEdbMap[tmpEdbInfoId.EdbInfoId] = tmpEdbInfoId.EdbInfoId
@@ -637,7 +570,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 							FromEdbName:               fromEdbInfo.EdbName,
 							FromSource:                fromEdbInfo.Source,
 							FromSourceName:            fromEdbInfo.SourceName,
-							//FromTag:                   tmpEdbInfoId.FromTag,
 							Sort:       k + 1,
 							CreateTime: time.Now(),
 							ModifyTime: time.Now(),
@@ -645,9 +577,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 						calculateMappingList = append(calculateMappingList, calculateMappingItem)
 					}
 				}
-				// 动态环差规则 关系表
 				tmpPredictEdbConfCalculateMapping := &models.PredictEdbConfCalculateMapping{
-					//PredictEdbConfCalculateMappingId: 0,
 					EdbInfoId:      edbInfoId,
 					ConfigId:       0,
 					FromEdbInfoId:  fromEdbInfo.EdbInfoId,
@@ -669,7 +599,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 					err = fmt.Errorf("公式错误,请重新填写")
 					return
 				}
-				//预先计算,判断公式是否正常
 				ok, _ := models.CheckFormula2(edbInfoList, formulaMap, f, edbInfoIdBytes)
 				if !ok {
 					errMsg = "生成计算指标失败,请使用正确的计算公式"
@@ -693,9 +622,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 				return
 			}
 
-			//关联的指标信息
 			edbInfoList := make([]*models.EdbInfo, 0)
-			// 动态环差规则 关系表
 			trendsMappingList := make([]*models.PredictEdbConfCalculateMapping, 0)
 
 			for k, tmpEdbInfoId := range v.EdbInfoIdArr {
@@ -714,7 +641,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 
 				edbInfoList = append(edbInfoList, fromEdbInfo)
 
-				//总的 预测指标与所有相关联指标的关系表(不仅仅该条规则)
 				{
 					if _, ok := fromEdbMap[tmpEdbInfoId.EdbInfoId]; !ok {
 						fromEdbMap[tmpEdbInfoId.EdbInfoId] = tmpEdbInfoId.EdbInfoId
@@ -729,7 +655,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 							FromEdbName:               fromEdbInfo.EdbName,
 							FromSource:                fromEdbInfo.Source,
 							FromSourceName:            fromEdbInfo.SourceName,
-							//FromTag:                   tmpEdbInfoId.FromTag,
 							Sort:       k + 1,
 							CreateTime: time.Now(),
 							ModifyTime: time.Now(),
@@ -737,9 +662,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 						calculateMappingList = append(calculateMappingList, tmpCalculateMappingItem)
 					}
 				}
-				// 动态环差规则 关系表
 				tmpPredictEdbConfCalculateMapping := &models.PredictEdbConfCalculateMapping{
-					//PredictEdbConfCalculateMappingId: 0,
 					EdbInfoId:      0,
 					ConfigId:       0,
 					FromEdbInfoId:  fromEdbInfo.EdbInfoId,
@@ -758,8 +681,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 			calculateRuleMap[ruleIndex] = models.CalculateRule{
 				TrendsCalculateMappingList: trendsMappingList,
 				EdbInfoList:                edbInfoList,
-				//EdbInfoIdBytes:             edbInfoIdBytes,
-				//Formula:                    formula,
 				RuleType:     v.RuleType,
 				EndDate:      v.EndDate,
 				EdbInfoIdArr: v.EdbInfoIdArr,
@@ -770,7 +691,6 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 			PredictEdbInfoId: edbInfoId,
 			SourceEdbInfoId:  sourceEdbInfo.EdbInfoId,
 			RuleType:         v.RuleType,
-			//FixedValue:       v.Value,
 			Value:      v.Value,
 			EndDate:    ruleEndDate,
 			ModifyTime: time.Now(),
@@ -787,9 +707,7 @@ func EditPredictEdbInfo(edbInfoId, classifyId int, edbName, dataDateType string,
 	return
 }
 
-// RefreshPredictEdbInfo 更新基础预测指标规则中的动态数据
 func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, errMsg string) {
-	// 指标信息校验
 	{
 		edbInfo, err = models.GetEdbInfoById(edbInfoId)
 		if err != nil && err.Error() != utils.ErrNoRow() {
@@ -802,24 +720,20 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 			err = nil
 			return
 		}
-		//必须是普通的指标
 		if edbInfo.EdbInfoType != 1 {
 			errMsg = "指标异常,不是预测指标"
 			return
 		}
 	}
 
-	// 配置 与 指标的 关联关系表
 	list, err := models.GetPredictEdbConfCalculateMappingListByEdbInfoId(edbInfoId)
 	if err != nil {
 		return
 	}
-	// 没有关联指标,不需要刷新
 	if len(list) <= 0 {
 		return
 	}
 
-	// 配置关联的指标信息
 	predictEdbConfCalculateMappingListMap := make(map[int][]*models.PredictEdbConfCalculateMapping)
 	configIdList := make([]int, 0)       //关联配置id
 	edbInfoIdList := make([]int, 0)      //关联指标配置id
@@ -849,22 +763,18 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 		return
 	}
 
-	// 指标信息
 	edbInfoList, err := models.GetEdbInfoByIdList(edbInfoIdList)
 	if err != nil {
 		err = errors.New("获取关联指标失败,Err:" + err.Error())
 		return
 	}
-	// 指标信息map
 	edbInfoListMap := make(map[int]*models.EdbInfo)
 	for _, v := range edbInfoList {
 		edbInfoListMap[v.EdbInfoId] = v
 	}
 
 	predictEdbConfAndDataList := make([]*models.PredictEdbConfAndData, 0)
-	// 刷新所有的规则
 	for _, v := range predictEdbConfList {
-		// 每次规则计算的时候,产生的临时数据
 		resultDataList := make([]*models.EdbInfoSearchData, 0)
 
 		switch v.RuleType {
@@ -873,16 +783,12 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 				errMsg = "请填写计算规则"
 				return
 			}
-			// todo 动态环差的空值类型处理
 			formula := v.Value
 
-			// 动态环差规则 关系表
 			trendsMappingList := predictEdbConfCalculateMappingListMap[v.ConfigId]
 
-			// 关联标签
 			edbInfoIdArr := make([]models.EdbInfoFromTag, 0)
 
-			//关联的指标信息
 			edbInfoList := make([]*models.EdbInfo, 0)
 			for _, trendsMapping := range trendsMappingList {
 				tmpEdbInfo, ok := edbInfoListMap[trendsMapping.FromEdbInfoId]
@@ -890,14 +796,12 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 					edbInfoList = append(edbInfoList, tmpEdbInfo)
 				}
 
-				// 关联标签
 				edbInfoIdArr = append(edbInfoIdArr, models.EdbInfoFromTag{
 					EdbInfoId: trendsMapping.FromEdbInfoId,
 					FromTag:   trendsMapping.FromTag,
 				})
 			}
 
-			//检验公式
 			var formulaStr string
 			var edbInfoIdBytes []string
 			for _, tmpEdbInfoId := range edbInfoIdArr {
@@ -924,7 +828,6 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 						return
 					}
 				}
-				//预先计算,判断公式是否正常
 				ok, _ := models.CheckFormula2(edbInfoList, formulaMap, fm, edbInfoIdBytes)
 				if !ok {
 					errMsg = "生成计算指标失败,请使用正确的计算公式"
@@ -959,7 +862,6 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 			}
 		}
 
-		// 规则配置(含数据)
 		tmpPredictEdbConfAndData := &models.PredictEdbConfAndData{
 			ConfigId:         0,
 			PredictEdbInfoId: 0,
@@ -979,15 +881,6 @@ func RefreshPredictEdbInfo(edbInfoId int) (edbInfo *models.EdbInfo, err error, e
 	return
 }
 
-// checkExistByEdbName
-// @Description: 根据指标名称校验该指标是否存在库中
-// @author: Roc
-// @datetime 2024-04-18 14:58:52
-// @param edbInfoType int
-// @param edbName string
-// @param lang string
-// @return has bool
-// @return err error
 func checkExistByEdbName(edbInfoType int, edbName, lang string) (has bool, err error) {
 	var condition string
 	var pars []interface{}
@@ -1017,16 +910,6 @@ func checkExistByEdbName(edbInfoType int, edbName, lang string) (has bool, err e
 	return
 }
 
-// checkExistByEdbNameAndEdbInfoId
-// @Description: 根据指标名称和指标ID校验库中是否还存在其他同名指标
-// @author: Roc
-// @datetime 2024-04-18 15:00:19
-// @param edbInfoType int
-// @param edbInfoId int
-// @param edbName string
-// @param lang string
-// @return has bool
-// @return err error
 func checkExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId int, edbName, lang string) (has bool, err error) {
 	var condition string
 	var pars []interface{}
@@ -1058,22 +941,10 @@ func checkExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId int, edbName, lang s
 	return
 }
 
-// CheckExistByEdbNameAndEdbInfoId
-// @Description: 根据指标名称和指标ID校验库中是否还存在其他同名指标
-// @author: Roc
-// @datetime 2024-04-18 15:01:44
-// @param edbInfoType int
-// @param edbInfoId int
-// @param edbName string
-// @param lang string
-// @return has bool
-// @return err error
 func CheckExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId int, edbName, lang string) (has bool, err error) {
-	// 指标没有入库的情况
 	if edbInfoId == 0 {
 		return checkExistByEdbName(edbInfoType, edbName, lang)
 	}
 
-	//指标已经入库的情况
 	return checkExistByEdbNameAndEdbInfoId(edbInfoType, edbInfoId, edbName, lang)
 }

+ 0 - 9
logic/profit_chart_info.go

@@ -5,7 +5,6 @@ import (
 	"time"
 )
 
-// ChartInfoDateReq 图表的日期数据(日期相关)
 type ChartInfoDateReq struct {
 	Type  int    `description:"配置类型"`
 	Date  string `description:"固定日期"`
@@ -14,7 +13,6 @@ type ChartInfoDateReq struct {
 	Name  string `description:"别名"`
 }
 
-// SectionScatterReq 截面散点请求
 type SectionScatterReq struct {
 	XName       string `description:"x轴名称"`
 	XNameEn     string `description:"x轴名称(英文)"`
@@ -28,11 +26,9 @@ type SectionScatterReq struct {
 	XMaxValue   string `description:"X轴的最大值"`
 	YMinValue   string `description:"Y轴的最小值"`
 	YMaxValue   string `description:"Y轴的最大值"`
-	//EdbList     []SectionScatterEdbItemReq    `description:"指标数据"`
 	SeriesList []SectionScatterSeriesItemReq `description:"系列数据"`
 }
 
-// SectionScatterSeriesItemReq 系列的请求
 type SectionScatterSeriesItemReq struct {
 	Name            string `description:"系列名"`
 	NameEn          string `description:"系列名(英文名)"`
@@ -43,7 +39,6 @@ type SectionScatterSeriesItemReq struct {
 	ShowRSquare     bool `description:"是否展示R平方"`
 }
 
-// SectionScatterEdbItemReq 截面散点请求的指标
 type SectionScatterEdbItemReq struct {
 	XEdbInfoId int    `description:"X轴的指标ID"`
 	YEdbInfoId int    `description:"Y轴的指标ID"`
@@ -58,13 +53,11 @@ type SectionScatterEdbItemReq struct {
 	IsShow     bool   `description:"是否展示"`
 }
 
-// XData 商品价格曲线的的x轴数据
 type XData struct {
 	Name   string `description:"别名"`
 	NameEn string `description:"英文别名"`
 }
 
-// YData 柱方图的y轴数据
 type YData struct {
 	Date           string          `description:"数据日期"`
 	ConfigDate     time.Time       `description:"配置的日期" json:"-"`
@@ -80,7 +73,6 @@ type YData struct {
 	M              []int           `description:"对应开始日期的间隔值" json:"-"`
 }
 
-// BarChartInfoEdbItemReq 柱方图预览请求数据(指标相关)
 type BarChartInfoEdbItemReq struct {
 	EdbInfoId int    `description:"指标ID"`
 	Name      string `description:"别名"`
@@ -88,7 +80,6 @@ type BarChartInfoEdbItemReq struct {
 	Source    int    `description:"1:ETA图库;2:商品价格"`
 }
 
-// ChartInfoReq 图表预览请求数据
 type ChartInfoReq struct {
 	FutureGoodEdbInfoIdList []models.EdbInfoFromTag `description:"指标信息"`
 	CalculateFormula        string                  `description:"计算公式"`

+ 0 - 2
main.go

@@ -18,7 +18,6 @@ func main() {
 		web.BConfig.WebConfig.DirectoryIndex = true
 		web.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
 	}
-	// 异常处理
 	web.ErrorController(&controllers.ErrorController{})
 
 	web.BConfig.RecoverFunc = Recover
@@ -51,7 +50,6 @@ func Recover(ctx *context.Context, conf *web.Config) {
 			logs.Critical(fmt.Sprintf("%s:%d", file, line))
 			stack = stack + fmt.Sprintln(fmt.Sprintf("%s:%d</br>", file, line))
 		}
-		//go utils.SendEmail(utils.APP_NAME_CN+"崩了"+time.Now().Format("2006-01-02 15:04:05"), stack, utils.EmailSendToUsers)
 		go alarm_msg.SendAlarmMsg(utils.APP_NAME_CN+"崩了"+time.Now().Format("2006-01-02 15:04:05")+"<br/>"+stack, 3)
 	}
 	return

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 277
models/base_calculate.go


+ 0 - 33
models/base_from_adjust.go

@@ -10,7 +10,6 @@ import (
 	"time"
 )
 
-// EdbDataAdjust 数据调整指标数据结构体
 type EdbDataAdjust struct {
 	EdbDataId     int `orm:"column(edb_data_id);pk"`
 	EdbInfoId     int
@@ -22,18 +21,14 @@ type EdbDataAdjust struct {
 	DataTimestamp int64
 }
 
-// AddAdjustEdbData 保存数据调整请求的数据的参数
 type AddAdjustEdbData struct {
 	Date         string  `description:"数据日期"`
 	TimestampStr string  `description:"日期时间戳"`
 	Value        float64 `description:"数据值"`
 }
 
-// SaveAdjustEdb 保存数据调整指标
 func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg string) {
 	errMsg = `添加指标失败`
-	//o := orm.NewOrm()
-	//to, err := o.Begin()
 	to := global.DEFAULT_DmSQL.Begin()
 	if err != nil {
 		return
@@ -48,8 +43,6 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 
 	var edbCode string
 	if req.EdbInfoId <= 0 {
-		//指标code生成
-		//生成指标编码
 		edbCode, err = utils.GenerateEdbCode(1, "")
 		if err != nil {
 			err = errors.New("指标编码生成失败,Err:" + err.Error())
@@ -82,14 +75,12 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 			return
 		}
 
-		// 获取来源指标
 		fromEdbInfo, tmpErr := GetEdbInfoById(req.FromEdbInfoId)
 		if tmpErr != nil {
 			err = tmpErr
 			errMsg = "获取来源指标信息失败"
 			return
 		}
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -105,13 +96,11 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 			calculateMappingItem.FromTag = ""
 			calculateMappingItem.Source = edbInfo.Source
 			calculateMappingItem.SourceName = edbInfo.SourceName
-			//_, err = to.Insert(calculateMappingItem)
 			err = to.Create(calculateMappingItem).Error
 			if err != nil {
 				return
 			}
 		}
-		//相关配置
 		{
 			var fromEdbEndDate time.Time
 			if fromEdbInfo.EndDate != `0000-00-00` {
@@ -123,7 +112,6 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 				ModifyTime:    time.Now(),
 				CreateTime:    time.Now(),
 			}
-			//_, err = to.Insert(edbAdjustConf)
 			err = to.Create(edbAdjustConf).Error
 			if err != nil {
 				return
@@ -135,23 +123,19 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 			return
 		}
 
-		// 更新指标信息
 		edbInfo.EdbName = utils.TrimStr(req.EdbName)
 		edbInfo.EdbNameSource = utils.TrimStr(req.EdbName)
 		edbInfo.Frequency = utils.TrimStr(req.Frequency)
 		edbInfo.Unit = utils.TrimStr(req.Unit)
 		edbInfo.ClassifyId = req.ClassifyId
 		edbInfo.ModifyTime = time.Now()
-		//_, err = to.Update(edbInfo, "EdbName", "EdbNameSource", "Frequency", "Unit", "ClassifyId", "ModifyTime")
 		err = to.Model(edbInfo).Updates(edbInfo).Error
 		if err != nil {
 			return
 		}
 
-		// 指标code
 		edbCode = edbInfo.EdbCode
 
-		// 清除数据
 		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_ADJUST, edbInfo.SubSource)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
 		deleteSql = fmt.Sprintf(deleteSql, dataTableName)
@@ -160,9 +144,7 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 			return
 		}
 
-		//相关配置
 		{
-			// 获取来源指标
 			calculateMapping, tmpErr := GetEdbInfoCalculateMappingDetail(edbInfo.EdbInfoId)
 			if tmpErr != nil {
 				errMsg = `关联指标获取异常`
@@ -180,7 +162,6 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 				fromEdbEndDate, _ = time.Parse(utils.FormatDate, fromEdbInfo.EndDate)
 			}
 
-			// 获取之前的配置
 			var edbAdjustConf *EdbAdjustConf
 			sql := ` SELECT * FROM edb_adjust_conf WHERE edb_info_id=? `
 			err = to.Raw(sql, edbInfo.EdbInfoId).Scan(&edbAdjustConf).Error
@@ -189,7 +170,6 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 				return
 			}
 
-			// 修改配置的最晚日期
 			edbAdjustConf.SourceEndDate = fromEdbEndDate
 			edbAdjustConf.ModifyTime = time.Now()
 			err = to.Model(edbAdjustConf).Updates(edbAdjustConf).Error
@@ -229,7 +209,6 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 	dataTableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	addSql := ` INSERT INTO ` + dataTableName + `(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	for _, item := range dataObj {
-		//值
 		val := item.Value
 		saveVal := utils.SubFloatToString(val, 20)
 		addSql += GetAddSql(fmt.Sprint(edbInfo.EdbInfoId), edbCode, item.Date, item.TimestampStr, saveVal)
@@ -246,10 +225,7 @@ func SaveAdjustEdb(req SaveAdjustEdbReq) (edbInfo *EdbInfo, err error, errMsg st
 	return
 }
 
-// RefreshAllAdjustEdb 刷新所有 数据调整指标
 func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
-	//o := orm.NewOrm()
-	//to, err := o.Begin()
 	to := global.DEFAULT_DmSQL
 	if err != nil {
 		return
@@ -263,10 +239,8 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 		}
 	}()
 
-	// 当前数据表名
 	dataTableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 
-	// 获取之前的配置
 	var edbAdjustConf *EdbAdjustConf
 	sql := ` SELECT * FROM edb_adjust_conf WHERE edb_info_id=? `
 	err = to.Raw(sql, edbInfo.EdbInfoId).Scan(&edbAdjustConf).Error
@@ -275,7 +249,6 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 		return
 	}
 
-	// 查询关联指标的数据
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId:         fromEdbInfo.EdbInfoId,
 		StartDataTime:     edbAdjustConf.SourceEndDate.Format(utils.FormatDate),
@@ -285,7 +258,6 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 		return err
 	}
 
-	// 已经入库的日期数据
 	existDataMap := make(map[string]float64)
 	{
 		existDataList, tmpErr := GetEdbDataListAllByTo(to, edbInfo.Source, edbInfo.SubSource, FindEdbDataListAllCond{
@@ -306,11 +278,9 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 	addSql := ` INSERT INTO ` + dataTableName + `(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	for _, item := range dataList {
 		currDay := item.DataTime
-		//值
 		val := item.Value
 		saveVal := utils.SubFloatToString(val, 20)
 		if existVal, ok := existDataMap[currDay]; !ok {
-			//格式化时间
 			currentDate, tmpErr := time.Parse(utils.FormatDate, item.DataTime)
 			if tmpErr != nil {
 				err = tmpErr
@@ -341,7 +311,6 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 			return
 		}
 
-		// 变更数据调整配置表的实际结束日期
 		{
 			var fromEdbEndDate time.Time
 			if fromEdbInfo.EndDate != `0000-00-00` {
@@ -356,7 +325,6 @@ func RefreshAllAdjustEdb(edbInfo *EdbInfo, fromEdbInfo *EdbInfo) (err error) {
 	return
 }
 
-// SaveAdjustEdbReq 保存数据调整请求参数(请求指标服务)
 type SaveAdjustEdbReq struct {
 	AdminId       int                    `description:"添加人id"`
 	AdminName     string                 `description:"添加人名称"`
@@ -369,7 +337,6 @@ type SaveAdjustEdbReq struct {
 	DataList      []SaveAdjustEdbDataReq `description:"指标对应的数据值"`
 }
 
-// SaveAdjustEdbDataReq 保存数据调整请求的数据的参数
 type SaveAdjustEdbDataReq struct {
 	Date  string  `description:"数据日期"`
 	Value float64 `description:"数据值"`

+ 0 - 68
models/base_from_calculate.go

@@ -16,7 +16,6 @@ import (
 	"github.com/shopspring/decimal"
 )
 
-// EdbInfoCalculateSaveReq 计算(运算)指标请求参数
 type EdbInfoCalculateSaveReq struct {
 	AdminId          int    `description:"添加人id"`
 	AdminName        string `description:"添加人名称"`
@@ -34,19 +33,16 @@ type EdbInfoCalculateSaveReq struct {
 	EdbInfoIdArr     []EdbInfoFromTag
 }
 
-// EdbInfoFromTag 计算指标的关联指标
 type EdbInfoFromTag struct {
 	EdbInfoId int    `description:"指标id"`
 	FromTag   string `description:"指标对应标签"`
 }
 
-// CalculateItems 计算(运算)指标信息
 type CalculateItems struct {
 	EdbInfoId int
 	DataMap   map[string]float64
 }
 
-// AddCalculateInfo 新增计算(运算)指标
 func AddCalculateInfo(req EdbInfoCalculateSaveReq, calculateMappingList []*EdbInfoCalculateMapping, edbInfoList []*EdbInfo, edbCode, uniqueCode string, edbInfoIdBytes []string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	if err != nil {
@@ -102,9 +98,7 @@ func AddCalculateInfo(req EdbInfoCalculateSaveReq, calculateMappingList []*EdbIn
 		return
 	}
 	edbInfoTag := make(map[string]int)
-	//关联关系表
 	{
-		//处理关联指标
 		for _, v := range calculateMappingList {
 			edbInfoTag[v.FromTag] = v.FromEdbInfoId
 			v.EdbCode = edbCode
@@ -118,12 +112,10 @@ func AddCalculateInfo(req EdbInfoCalculateSaveReq, calculateMappingList []*EdbIn
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculate(to, edbInfoList, edbInfoTag, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode, edbInfo.CalculateFormula, "", "", edbInfoIdBytes, edbInfo.EmptyType, edbInfo.MaxEmptyType, edbInfo.Extra)
 	return
 }
 
-// EditCalculateInfo 编辑计算(运算)指标
 func EditCalculateInfo(edbInfo *EdbInfo, req EdbInfoCalculateSaveReq, formulaSlice []string, edbInfoIdBytes []string, needCalculate bool) (err error, errMsg string) {
 	to := global.DEFAULT_DmSQL.Begin()
 	if err != nil {
@@ -138,7 +130,6 @@ func EditCalculateInfo(edbInfo *EdbInfo, req EdbInfoCalculateSaveReq, formulaSli
 		}
 	}()
 
-	// 修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameEn = req.EdbNameEn
 	edbInfo.EdbNameSource = req.EdbName
@@ -157,13 +148,11 @@ func EditCalculateInfo(edbInfo *EdbInfo, req EdbInfoCalculateSaveReq, formulaSli
 	}
 
 	if needCalculate {
-		// 清除计算数据
 		sql := `DELETE FROM edb_data_calculate WHERE edb_info_id=?`
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 		if err != nil {
 			return
 		}
-		// 清除关联关系表
 		sql = `DELETE FROM edb_info_calculate_mapping WHERE edb_info_id=?`
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 		if err != nil {
@@ -182,7 +171,6 @@ func EditCalculateInfo(edbInfo *EdbInfo, req EdbInfoCalculateSaveReq, formulaSli
 			}
 			edbInfoList = append(edbInfoList, fromEdbInfo)
 
-			//关联关系表
 			{
 				calculateMappingItem := &EdbInfoCalculateMapping{
 					EdbInfoCalculateMappingId: 0,
@@ -210,7 +198,6 @@ func EditCalculateInfo(edbInfo *EdbInfo, req EdbInfoCalculateSaveReq, formulaSli
 				err = fmt.Errorf("公式错误,请重新填写")
 				return
 			}
-			//预先计算,判断公式是否正常
 			ok, _ := CheckFormula2(edbInfoList, formulaMap, v, edbInfoIdBytes)
 			if !ok {
 				errMsg = "生成计算指标失败,请使用正确的计算公式"
@@ -219,7 +206,6 @@ func EditCalculateInfo(edbInfo *EdbInfo, req EdbInfoCalculateSaveReq, formulaSli
 			}
 		}
 
-		//关联关系表
 		{
 			if len(calculateMappingList) > 0 {
 				err = to.CreateInBatches(calculateMappingList, len(calculateMappingList)).Error
@@ -229,14 +215,12 @@ func EditCalculateInfo(edbInfo *EdbInfo, req EdbInfoCalculateSaveReq, formulaSli
 			}
 		}
 
-		//计算数据
 		err = refreshAllCalculate(to, edbInfoList, edbInfoTag, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode, edbInfo.CalculateFormula, "", "", edbInfoIdBytes, edbInfo.EmptyType, edbInfo.MaxEmptyType, edbInfo.Extra)
 	}
 
 	return
 }
 
-// GetCalculateEdbInfo 获取计算指标的关联指标id
 func GetCalculateEdbInfo(edbInfoId int) (from_edb_info_id string, err error) {
 	sql := ` SELECT LISTAGG(from_edb_info_id ,',') WITHIN GROUP (ORDER BY sort asc) AS from_edb_info_id 
 			FROM edb_info_calculate_mapping
@@ -247,7 +231,6 @@ func GetCalculateEdbInfo(edbInfoId int) (from_edb_info_id string, err error) {
 	return
 }
 
-// RefreshAllCalculate 刷新全部数据
 func RefreshAllCalculate(edbInfoIdArr []*EdbInfo, edbInfoTag map[string]int, edbInfoId, source, subSource int, edbCode, formulaStr, startDate, endDate string, edbInfoIdBytes []string, emptyType, maxEmptyType int, extra string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	if err != nil {
@@ -263,17 +246,14 @@ func RefreshAllCalculate(edbInfoIdArr []*EdbInfo, edbInfoTag map[string]int, edb
 	}()
 	fmt.Println(startDate, endDate)
 
-	//计算数据
 	err = refreshAllCalculate(to, edbInfoIdArr, edbInfoTag, edbInfoId, source, subSource, edbCode, formulaStr, startDate, endDate, edbInfoIdBytes, emptyType, maxEmptyType, extra)
 	return
 }
 
-// refreshAllCalculate 刷新全部数据
 func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[string]int, edbInfoId, source, subSource int, edbCode, formulaStr, startDate, endDate string, edbInfoIdBytes []string, emptyType, maxEmptyType int, extra string) (err error) {
 	realSaveDataMap := make(map[string]map[int]float64)
 	saveDataMap := make(map[string]map[int]float64)
 
-	// 最小的结束日期 , 最晚的数据开始日期
 	var minLatestDate, maxStartDate time.Time
 	dateList := make([]string, 0)        // 最终的日期数据
 	dateMap := make(map[string]struct{}) // 最终的日期数据
@@ -310,7 +290,6 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 				realSaveDataMap[dv.DataTime] = temp
 			}
 
-			// saveDataMap
 			if val, ok := saveDataMap[dv.DataTime]; ok {
 				if _, ok := val[v.EdbInfoId]; !ok {
 					val[v.EdbInfoId] = dv.Value
@@ -345,7 +324,6 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 			}
 		}
 	}
-	// 处理最大日期和最小日期
 	for _, v := range dateList {
 		tmpDate, _ := time.ParseInLocation(utils.FormatDate, v, time.Local)
 		if minLatestDate.IsZero() || tmpDate.After(minLatestDate) {
@@ -356,7 +334,6 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 		}
 	}
 
-	//数据处理,将日期内不全的数据做补全
 	HandleDateSaveDataMap(dateList, maxStartDate, minLatestDate, realSaveDataMap, saveDataMap, edbInfoIdArr, emptyType)
 
 	formulaDateSlice, formulaDateMap, err := utils.HandleFormulaJson(formulaStr, minLatestDate)
@@ -367,7 +344,6 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 	var isAdd bool
 
 	dataTableName := GetEdbDataTableName(source, subSource)
-	//获取指标所有数据
 	dataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -382,20 +358,16 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	existDataMap := make(map[string]string)
 
-	// 判断是否特殊处理max和min函数
 	maxDealFlag := false
 	if emptyType == 4 && maxEmptyType == 2 {
 		maxDealFlag = true
 	}
 	for sk, sv := range saveDataMap {
-		// 当空值处理类型选择了不计算时,只要有一个指标在某个日期没有值(即空值),则计算指标在该日期没有值
 		if emptyType == 1 {
 			if len(sv) != len(edbInfoIdArr) {
 				continue
 			}
 		}
-		//fmt.Println(sk, sv)
-		// 根据时间范围,选择对应的公式
 		formulaMap := make(map[string]string)
 		formulaStr = ""
 		for _, fv := range formulaDateSlice {
@@ -416,23 +388,19 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 		}
 		svMax := make(map[int]float64)
 		if maxDealFlag {
-			// 特殊处理max和min函数,如果原本的值为空,则选择空值参与运算
 			if svMaxData, ok := realSaveDataMap[sk]; ok {
 				svMax = svMaxData
 			}
 		}
 		formulaStr = strings.ToUpper(formulaStr)
 		formulaFormStr := ReplaceFormula(edbInfoIdArr, sv, svMax, formulaMap, formulaStr, edbInfoIdBytes, maxDealFlag)
-		//计算公式异常,那么就移除该指标
 		if formulaFormStr == `` {
 			continue
 		}
 		fmt.Println(fmt.Sprintf("%s:formulaFormStr:%s", sk, formulaFormStr))
 		calVal, err := engine.ParseAndExec(formulaFormStr)
 		if err != nil {
-			// 分母为0的报错,忽略该循环
 			if utils.IsDivideZero(err) {
-				//removeDateList = append(removeDateList, sk)
 				continue
 			}
 
@@ -441,11 +409,9 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 			return err
 		}
 		nanCheck := fmt.Sprintf("%0.f", calVal)
-		// 分母为0.0的报错
 		if nanCheck == "NaN" || nanCheck == "+Inf" || nanCheck == "-Inf" {
 			continue
 		}
-		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
 		saveValue := decimal.NewFromFloat(calVal).Round(4).String() //utils.SubFloatToString(calVal, 4)
 		if existVal, ok := dataMap[sk]; !ok {
@@ -464,7 +430,6 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 			if existStr != saveValue {
 				sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
 				sql = fmt.Sprintf(sql, dataTableName)
-				//_, err = to.Raw(sql, saveValue, edbInfoId, sk).Exec()
 				err = to.Exec(sql, saveValue, edbInfoId, sk).Error
 				if err != nil {
 					return err
@@ -489,7 +454,6 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 		}
 		removeDateStr := strings.Join(removeDateList, `","`)
 		removeDateStr = `"` + removeDateStr + `"`
-		//如果拼接指标变更了,那么需要删除所有的指标数据
 		tableName := GetEdbDataTableName(source, subSource)
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
@@ -502,10 +466,7 @@ func refreshAllCalculate(to *gorm.DB, edbInfoIdArr []*EdbInfo, edbInfoTag map[st
 	return
 }
 
-// ReplaceFormula 替换计算方式
 func ReplaceFormula(edbInfoIdArr []*EdbInfo, valArr, valArrMax map[int]float64, formulaMap map[string]string, formulaStr string, edbInfoIdBytes []string, maxDealFlag bool) string {
-	// todo 先处理max和min函数的特殊情况
-	//if strings.Contains(formulaStr, "MAX") || strings.Contains(formulaStr, "MIN") {
 	funMap := GetFormulaMap()
 	for k, v := range funMap {
 		formulaStr = strings.Replace(formulaStr, k, v, -1)
@@ -516,7 +477,6 @@ func ReplaceFormula(edbInfoIdArr []*EdbInfo, valArr, valArrMax map[int]float64,
 	replaceCount := 0
 	for dk := len(edbInfoIdArr) - 1; dk >= 0; dk-- {
 		dv := edbInfoIdArr[dk]
-		//for dk, dv := range edbInfoIdArr {
 		var isReplace bool
 		formulaStr, isReplace = GetFormulaReplace(dk, dv.EdbInfoId, formulaStr, edbInfoIdBytes, formulaMap, valArr, valArrMax, maxDealFlag)
 		if isReplace {
@@ -577,7 +537,6 @@ func GetFormulaReplace(index, edbInfoId int, formulaStr string, edbInfoIdBytes [
 	return
 }
 
-// GetFormulaMap 获取计算公式的map
 func GetFormulaMap() map[string]string {
 	funMap := make(map[string]string)
 	funMap["MAX"] = "[@@]"
@@ -594,7 +553,6 @@ func GetFormulaMap() map[string]string {
 	return funMap
 }
 
-// CalculateBatchSaveReq 添加计算指标的请求参数
 type CalculateBatchSaveReq struct {
 	EdbList          []*CalculateEdbInfoItem        //需要批量计算的指标列表
 	AdminId          int                            `description:"添加人id"`
@@ -622,7 +580,6 @@ type CalculateEdbInfoItem struct {
 	FromEdbInfoId int    `description:"计算来源指标id"`
 }
 
-// EdbInfoCalculateBatchSaveReq 添加计算指标的请求参数
 type EdbInfoCalculateBatchSaveReq struct {
 	AdminId          int                            `description:"添加人id"`
 	AdminName        string                         `description:"添加人名称"`
@@ -645,14 +602,12 @@ type EdbInfoCalculateBatchSaveReq struct {
 	Extra            string                         `description:"指标额外配置"`
 }
 
-// EdbInfoCalculateEdbInfoIdReq 新增/编辑请求 关联的指标列表
 type EdbInfoCalculateEdbInfoIdReq struct {
 	EdbInfoId int    `description:"指标id"`
 	FromTag   string `description:"指标对应标签"`
 	MoveValue int    `description:"移动的值"`
 }
 
-// EdbInfoCalculateBatchEditReq 编辑计算指标的请求参数
 type EdbInfoCalculateBatchEditReq struct {
 	EdbName          string                         `description:"指标名称"`
 	EdbNameEn        string                         `description:"英文指标名称"`
@@ -677,7 +632,6 @@ type EdbInfoCalculateBatchEditReq struct {
 	CalculateFormula string                         `description:"计算公式"`
 }
 
-// CheckFormula2 校验公式是否正常(比如说除法的分母不能为0之类的,实际上就是用预设的字段数据做一次计算)
 func CheckFormula2(edbInfoArr []*EdbInfo, formulaMap map[string]string, formulaStr string, edbInfoIdBytes []string) (ok bool, err error) {
 	valArr := make(map[int]float64)
 	for k, v := range edbInfoArr {
@@ -685,7 +639,6 @@ func CheckFormula2(edbInfoArr []*EdbInfo, formulaMap map[string]string, formulaS
 	}
 
 	formulaStr = strings.ToUpper(formulaStr)
-	// 预设里的max和min无需特殊处理
 	valArrMax := make(map[int]float64)
 	formulaFormStr := ReplaceFormula(edbInfoArr, valArr, valArrMax, formulaMap, formulaStr, edbInfoIdBytes, false)
 	if formulaFormStr == "" {
@@ -701,15 +654,12 @@ func CheckFormula2(edbInfoArr []*EdbInfo, formulaMap map[string]string, formulaS
 	return
 }
 
-// 处理整个数据
 func HandleDateSaveDataMap(dateList []string, maxStartDate, minLatestDate time.Time, realSaveDataMap, saveDataMap map[string]map[int]float64, edbInfoIdArr []*EdbInfo, emptyType int) {
 	for _, date := range dateList {
 		dateTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
-		// 如果当前日期早于数据的最大开始日期,那么不处理,进入下一个循环
 		if dateTime.Before(maxStartDate) {
 			continue
 		}
-		// todo 规则是否生效如果当前日期晚于数据的最小结束日期,那么不处理,直接返回了
 		if dateTime.After(minLatestDate) {
 			return
 		}
@@ -717,7 +667,6 @@ func HandleDateSaveDataMap(dateList []string, maxStartDate, minLatestDate time.T
 		tmpDataMap := realSaveDataMap[date]
 		for _, edbInfo := range edbInfoIdArr {
 			tmpEdbInfoId := edbInfo.EdbInfoId // 当前指标id
-			// 如果该日期不存在该指标数据,那么需要找寻前后日期的数据,进行填补
 			if _, ok := tmpDataMap[tmpEdbInfoId]; !ok {
 				switch emptyType {
 				case 0:
@@ -735,19 +684,15 @@ func HandleDateSaveDataMap(dateList []string, maxStartDate, minLatestDate time.T
 	}
 }
 
-// handleDateDataMap 前后35天 处理单个日期的数据
 func handleDateDataMap(realSaveDataMap, saveDataMap map[string]map[int]float64, date string, edbInfoId, day int) {
 	currDate, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
 
-	// 后一天
 	nextDateDayStr := currDate.AddDate(0, 0, 1).Format(utils.FormatDate)
 
-	// 前一天
 	preDateDayStr := currDate.AddDate(0, 0, -1).Format(utils.FormatDate)
 
 	for i := 1; i <= day; i++ {
 
-		// 下个日期的数据
 		{
 			if i >= 1 {
 				nextDateDayStr = currDate.AddDate(0, 0, i).Format(utils.FormatDate)
@@ -761,7 +706,6 @@ func handleDateDataMap(realSaveDataMap, saveDataMap map[string]map[int]float64,
 			}
 		}
 
-		// 上个日期的数据
 		{
 			if i >= 1 {
 				preDateDayStr = currDate.AddDate(0, 0, -i).Format(utils.FormatDate)
@@ -777,11 +721,9 @@ func handleDateDataMap(realSaveDataMap, saveDataMap map[string]map[int]float64,
 	}
 }
 
-// handleDateDataMapBefore 前值填充:空值优先以最近的前值填充,没有前值时,用后值填充
 func handleDateDataMapBefore(realSaveDataMap, saveDataMap map[string]map[int]float64, date string, edbInfoId int, startDate, endDate string) {
 	currDate, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
 
-	// 前一天
 	preDateDay := currDate
 
 	startDateT, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
@@ -805,7 +747,6 @@ func handleDateDataMapBefore(realSaveDataMap, saveDataMap map[string]map[int]flo
 		}
 	}
 	for i := 1; preDateDay.After(startDateT) || preDateDay == startDateT; i++ {
-		// 上个日期的数据
 		{
 			preDateDay = currDate.AddDate(0, 0, -i)
 			preDateDayStr := preDateDay.Format(utils.FormatDate)
@@ -820,11 +761,9 @@ func handleDateDataMapBefore(realSaveDataMap, saveDataMap map[string]map[int]flo
 	return
 }
 
-// handleDateDataMapAfter 后值填充:空值优先以最近的后值填充,没有后值时,用前值填充
 func handleDateDataMapAfter(realSaveDataMap, saveDataMap map[string]map[int]float64, date string, edbInfoId int, startDate, endDate string) {
 	currDate, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
 
-	// 后一天
 	nextDateDay := currDate
 
 	startDateT, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
@@ -849,7 +788,6 @@ func handleDateDataMapAfter(realSaveDataMap, saveDataMap map[string]map[int]floa
 	}
 
 	for i := 1; nextDateDay.Before(endDateT) || nextDateDay == endDateT; i++ {
-		// 下个日期的数据
 		{
 			nextDateDay = currDate.AddDate(0, 0, i)
 			nextDateDayStr := nextDateDay.Format(utils.FormatDate)
@@ -864,7 +802,6 @@ func handleDateDataMapAfter(realSaveDataMap, saveDataMap map[string]map[int]floa
 	return
 }
 
-// handleDateDataMapZero 等于0
 func handleDateDataMapZero(saveDataMap map[string]map[int]float64, date string, edbInfoId int) {
 	saveDataMap[date][edbInfoId] = 0
 	return
@@ -874,7 +811,6 @@ func GetMaxMinEdbInfo(formula string) string {
 	flag := 0
 	for k, v := range formula {
 		if v >= 65 && v <= 122 {
-			// 从左边找到第一个左括号的位置,往前截取三个字符,判断是不是max或者min,如果是的话,把该入参改成小写
 			for i := k; i >= 4; i-- {
 				if formula[i:i+1] == "(" && flag >= 1 {
 					t := formula[i-4 : i]
@@ -893,26 +829,22 @@ func GetMaxMinEdbInfo(formula string) string {
 	return formula
 }
 
-// PredictRuleCalculateByNineResp 获取预测指标规则9的绘图数据返回
 type PredictRuleCalculateByNineResp struct {
 	LatestDate string
 	DataList   interface{}
 }
 
-// BatchEdbInfoCalculateBatchSaveResp 批量添加 计算指标 返回数据
 type BatchEdbInfoCalculateBatchSaveResp struct {
 	Fail    []BatchEdbInfoCalculateBatchSaveFailResp    `description:"添加失败的指标"`
 	Success []BatchEdbInfoCalculateBatchSaveSuccessResp `description:"添加成功的指标"`
 }
 
-// BatchEdbInfoCalculateBatchSaveFailResp 添加失败的指标信息
 type BatchEdbInfoCalculateBatchSaveFailResp struct {
 	CalculateId string `description:"当前请求时,单个计算的唯一标识"`
 	Msg         string `description:"用户提示信息"`
 	ErrMsg      string `description:"错误信息,内部查看"`
 }
 
-// BatchEdbInfoCalculateBatchSaveSuccessResp 添加成功的指标信息
 type BatchEdbInfoCalculateBatchSaveSuccessResp struct {
 	ClassifyId  int    `description:"分类id"`
 	CalculateId string `description:"当前请求时,单个计算的唯一标识"`

+ 0 - 1
models/base_from_edb_mapping.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// BaseFromEdbMapping 同花顺高频数据
 type BaseFromEdbMapping struct {
 	Id              int       `gorm:"column:id;primaryKey" description:"同花顺高频数据ID"`
 	BaseFromIndexId int       `gorm:"column:base_from_index_id" description:"源指标ID"`

+ 0 - 23
models/base_from_gn.go

@@ -9,37 +9,24 @@ import (
 	"time"
 )
 
-// BridgeGnIndexDataParams 桥接服务-获取国能指标数据入参
 type BridgeGnIndexDataParams struct {
 	IndexCode string `json:"index_code" form:"index_code" description:"指标编码"`
 	StartDate string `json:"start_date" form:"start_date" description:"开始日期"`
 	EndDate   string `json:"end_date" form:"end_date" description:"结束日期"`
 }
 
-// BridgeGnIndexAndData 桥接服务-国能指标和数据
 type BridgeGnIndexAndData struct {
 	Val        float64 `json:"val"`
 	DataTime   string  `json:"data_time"`
 	UpdateTime string  `json:"update_time"`
 }
 
-// BridgeGnResultIndexData 桥接服务-获取国能指标数据响应体
 type BridgeGnResultIndexData struct {
 	Code int                    `json:"code" description:"状态码"`
 	Msg  string                 `json:"msg" description:"提示信息"`
 	Data []BridgeGnIndexAndData `json:"data" description:"返回数据"`
 }
 
-// RefreshEdbDataFromGn
-// @Description: 刷新国能指标数据
-// @param source
-// @param subSource
-// @param edbInfoId
-// @param tableName
-// @param edbCode
-// @param startDate
-// @param dataList
-// @return err
 func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode, startDate string, dataList []BridgeGnIndexAndData) (err error) {
 	if source <= 0 {
 		err = fmt.Errorf("指标来源有误")
@@ -54,7 +41,6 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 		return
 	}
 
-	// 真实数据的最大日期, 插入规则配置的日期
 	var realDataMaxDate, edbDataInsertConfigDate time.Time
 	var edbDataInsertConfig *EdbDataInsertConfig
 	var isFindConfigDateRealData bool //是否找到配置日期的实际数据的值
@@ -69,7 +55,6 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 		}
 	}
 
-	// 获取已有数据
 	cond := ` AND edb_info_id = ?`
 	pars := make([]interface{}, 0)
 	pars = append(pars, edbInfoId)
@@ -89,7 +74,6 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 		existMap[v.DataTime] = v
 	}
 
-	// 比对数据
 	hasNew := false
 	strEdbInfoId := strconv.Itoa(edbInfoId)
 	addExists := make(map[string]bool)
@@ -104,7 +88,6 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 		stamp := fmt.Sprint(currDataTime.UnixMilli())
 		dataTime := currDataTime.Format(utils.FormatDate)
 
-		// 如果传入的开始时间是空的, 且当前数据日期早于传入的开始日期, 那么需要判断下当前日期的数据是否存在
 		if !startDateTime.IsZero() && currDataTime.Before(startDateTime) {
 			t, e := GetEdbDataByDate(source, subSource, edbCode, dataTime)
 			if e == nil && t != nil {
@@ -112,7 +95,6 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 			}
 		}
 
-		// 下面代码主要目的是处理掉手动插入的数据判断
 		{
 			if realDataMaxDate.IsZero() || currDataTime.After(realDataMaxDate) {
 				realDataMaxDate = currDataTime
@@ -122,10 +104,8 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 			}
 		}
 
-		// 新增数据
 		exist, ok := existMap[dataTime]
 		if !ok {
-			// 不在历史数据中且与新增中的数据不重复
 			if _, o := addExists[dataTime]; !o {
 				hasNew = true
 				sqlInsert += GetAddSql(strEdbInfoId, edbCode, dataTime, stamp, val)
@@ -134,7 +114,6 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 			continue
 		}
 
-		// 更新数据
 		if exist != nil && utils.SubFloatToString(exist.Value, 30) != val {
 			if e = ModifyEdbDataById(source, subSource, exist.EdbDataId, val); e != nil {
 				err = fmt.Errorf("modify edb data err: %s", e.Error())
@@ -143,10 +122,8 @@ func RefreshEdbDataFromGn(source, subSource, edbInfoId int, tableName, edbCode,
 		}
 	}
 
-	// 处理手工数据补充的配置
 	HandleConfigInsertEdbData(realDataMaxDate, edbDataInsertConfig, edbInfoId, source, subSource, existMap, isFindConfigDateRealData)
 
-	// 执行新增
 	if !hasNew {
 		return
 	}

+ 0 - 35
models/base_from_manual.go

@@ -33,7 +33,6 @@ func GetEdbdataManualByCondition(condition string, pars []interface{}) (item []*
 	return
 }
 
-// AddEdbDataFromManual 新增弘则手工指标数据
 func AddEdbDataFromManual(edbCode string) (err error) {
 	var condition string
 	var pars []interface{}
@@ -82,7 +81,6 @@ func AddEdbDataFromManual(edbCode string) (err error) {
 	return
 }
 
-// RefreshEdbDataFromManual 刷新手工指标数据
 func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err error) {
 	source := utils.DATA_SOURCE_MANUAL
 	subSource := utils.DATA_SUB_SOURCE_EDB
@@ -91,7 +89,6 @@ func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err err
 		return
 	}
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 	var condition string
 	var pars []interface{}
 
@@ -113,7 +110,6 @@ func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err err
 		return
 	}
 
-	// 真实数据的最大日期  , 插入规则配置的日期
 	var realDataMaxDate, edbDataInsertConfigDate time.Time
 	var edbDataInsertConfig *EdbDataInsertConfig
 	var isFindConfigDateRealData bool //是否找到配置日期的实际数据的值
@@ -166,7 +162,6 @@ func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err err
 			return err
 		}
 
-		//fmt.Println("Item:", item.Dt, item.Close, item.TradeCode, item.ModifyTime)
 		if findItem, ok := existMap[v.Dt]; !ok {
 			timestamp := dataTime.UnixNano() / 1e6
 			timeStr := fmt.Sprintf("%d", timestamp)
@@ -183,7 +178,6 @@ func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err err
 		}
 		manualMap[v.Dt] = v
 
-		// 下面代码主要目的是处理掉手动插入的数据判断
 		{
 			if realDataMaxDate.IsZero() || dataTime.After(realDataMaxDate) {
 				realDataMaxDate = dataTime
@@ -195,9 +189,7 @@ func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err err
 	}
 	for _, v := range existList {
 		if _, ok := manualMap[v.DataTime]; !ok {
-			// 正常来讲,如果来源数据移除了该日期的数据,也需要删除ETA指标的值
 
-			// 但是由于引入手动插入最新值,那么需要判断该日期值,是否等于,如果等于,则不删除该日期值
 			if edbDataInsertConfigDateStr == `` || edbDataInsertConfigDateStr != v.DataTime {
 				DeleteEdbDataById(utils.DATA_SOURCE_MANUAL, subSource, v.EdbDataId)
 			}
@@ -212,23 +204,11 @@ func RefreshEdbDataFromManual(edbInfoId int, edbCode, startDate string) (err err
 		}
 	}
 
-	// 处理手工数据补充的配置
 	HandleConfigInsertEdbData(realDataMaxDate, edbDataInsertConfig, edbInfoId, source, subSource, existMap, isFindConfigDateRealData)
 
 	return
 }
 
-// HandleConfigInsertEdbData
-// @Description: 处理人工数据补充的配置(mysql)
-// @author: Roc
-// @datetime 2024-05-09 13:07:32
-// @param realDataMaxDate time.Time
-// @param edbDataInsertConfig *EdbDataInsertConfig
-// @param edbInfoId int
-// @param source int
-// @param subSource int
-// @param existMap map[string]*EdbInfoSearchData
-// @param isFindConfigDateRealData bool
 func HandleConfigInsertEdbData(realDataMaxDate time.Time, edbDataInsertConfig *EdbDataInsertConfig, edbInfoId, source, subSource int, existMap map[string]*EdbInfoSearchData, isFindConfigDateRealData bool) {
 	if edbDataInsertConfig == nil {
 		return
@@ -241,12 +221,10 @@ func HandleConfigInsertEdbData(realDataMaxDate time.Time, edbDataInsertConfig *E
 	}()
 	edbDataInsertConfigDate := edbDataInsertConfig.Date // 配置的日期
 
-	// 如果存在真实数据的最大日期  && 存在配置插入数据的最大日期  && 真实数据的最大日期 晚于/等于 配置插入数据的最大日期
 	if realDataMaxDate.After(edbDataInsertConfigDate) || realDataMaxDate.Equal(edbDataInsertConfigDate) {
 		go DeleteEdbDataInsertConfigByEdbId(edbInfoId)
 
 		edbDataInsertConfigDateStr := edbDataInsertConfigDate.Format(utils.FormatDate)
-		// 如果没有找到找到配置日期的实际数据,那么就直接删除
 		if item, ok := existMap[edbDataInsertConfigDateStr]; ok && !isFindConfigDateRealData {
 			DeleteEdbDataById(source, subSource, item.EdbDataId)
 		}
@@ -258,17 +236,6 @@ func HandleConfigInsertEdbData(realDataMaxDate time.Time, edbDataInsertConfig *E
 	return
 }
 
-// HandleConfigInsertEdbDataByMongo
-// @Description: 处理人工数据补充的配置(mongo)
-// @author: Roc
-// @datetime 2024-05-09 13:07:12
-// @param realDataMaxDate time.Time
-// @param edbDataInsertConfig *EdbDataInsertConfig
-// @param edbInfoId int
-// @param source int
-// @param subSource int
-// @param existMap map[string]*mgo.EdbDataBusiness
-// @param isFindConfigDateRealData bool
 func HandleConfigInsertEdbDataByMongo(realDataMaxDate time.Time, edbDataInsertConfig *EdbDataInsertConfig, edbInfoId, source, subSource int, existMap map[string]*mgo.EdbDataBusiness, isFindConfigDateRealData bool) {
 	if edbDataInsertConfig == nil {
 		return
@@ -282,14 +249,12 @@ func HandleConfigInsertEdbDataByMongo(realDataMaxDate time.Time, edbDataInsertCo
 
 	edbDataInsertConfigDate := edbDataInsertConfig.Date // 配置的日期
 
-	// 如果存在真实数据的最大日期  && 存在配置插入数据的最大日期  && 真实数据的最大日期 晚于/等于 配置插入数据的最大日期
 	if realDataMaxDate.After(edbDataInsertConfigDate) || realDataMaxDate.Equal(edbDataInsertConfigDate) {
 		go DeleteEdbDataInsertConfigByEdbId(edbInfoId)
 
 		mogDataObj := mgo.EdbDataBusiness{}
 		coll := mogDataObj.GetCollection()
 		edbDataInsertConfigDateStr := edbDataInsertConfigDate.Format(utils.FormatDate)
-		// 如果没有找到找到配置日期的实际数据,那么就直接删除
 		if item, ok := existMap[edbDataInsertConfigDateStr]; ok && !isFindConfigDateRealData {
 			mogDataObj.RemoveManyByColl(coll, bson.M{"_id": item.ID})
 		}

+ 0 - 35
models/base_from_python.go

@@ -22,20 +22,16 @@ type EdbDataPython struct {
 	DataTimestamp int64     `gorm:"column:data_timestamp"`         // 数据时间戳
 }
 
-// TableName
 func (m *EdbDataPython) TableName() string {
 	return "edb_data_python"
 }
 
-// EdbDataFromPython 通过python代码获取到的指标数据
 type EdbDataFromPython struct {
 	Date  map[int]string  `json:"date"`
 	Value map[int]float64 `json:"value"`
 }
 
-// AddPythonEdb 新增python运算指标
 func AddPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython, edbInfoList []*EdbInfo) (err error) {
-	//添加指标关系
 	for _, tmpEdbInfo := range edbInfoList {
 		calculateMappingItem := new(EdbInfoCalculateMapping)
 		calculateMappingItem.CreateTime = time.Now()
@@ -59,7 +55,6 @@ func AddPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython, edbInfoList []*EdbIn
 	var isAdd bool
 	addSql := ` INSERT INTO edb_data_python (edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	for k, dateTimeStr := range item.Date {
-		//格式化时间
 		currentDate, tmpErr := time.ParseInLocation(utils.FormatDate, dateTimeStr, time.Local)
 		if tmpErr != nil {
 			err = tmpErr
@@ -68,7 +63,6 @@ func AddPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython, edbInfoList []*EdbIn
 		timestamp := currentDate.UnixNano() / 1e6
 		timestampStr := fmt.Sprintf("%d", timestamp)
 
-		//值
 		val := item.Value[k]
 		saveVal := utils.SubFloatToString(val, 20)
 		addSql += GetAddSql(fmt.Sprint(edbInfo.EdbInfoId), edbInfo.EdbCode, dateTimeStr, timestampStr, saveVal)
@@ -86,7 +80,6 @@ func AddPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython, edbInfoList []*EdbIn
 	return
 }
 
-// RefreshAllPythonEdb 刷新所有 python运算指标
 func RefreshAllPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython) (err error) {
 	pythonDataMap := make(map[string]float64)
 	pythonDate := make([]string, 0)
@@ -95,46 +88,36 @@ func RefreshAllPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython) (err error) {
 		pythonDate = append(pythonDate, dateTimeStr)
 	}
 
-	//查询当前指标现有的数据
 	var condition string
 	var pars []interface{}
 	condition += " AND edb_info_id=? "
 	pars = append(pars, edbInfo.EdbInfoId)
 
-	//所有的数据
 	dataList, err := GetAllEdbDataPythonByEdbInfoId(edbInfo.EdbInfoId)
 	if err != nil {
 		return err
 	}
 
-	//待修改的指标数据map(index:日期,value:值)
 	updateEdbDataMap := make(map[string]float64)
 	removeDateList := make([]string, 0) //需要删除的日期
 	for _, v := range dataList {
 		currDataTime := v.DataTime
 		pythonData, ok := pythonDataMap[currDataTime]
 		if !ok {
-			// 如果python运算出来的数据中没有该日期,那么需要移除该日期的数据
 			removeDateList = append(removeDateList, currDataTime)
 		} else {
 			currValue, _ := decimal.NewFromFloat(pythonData).Truncate(4).Float64() //保留4位小数
-			//如果计算出来的值与库里面的值不匹配,那么就去修改该值
 			if v.Value != currValue {
-				//将计算后的数据存入待拼接指标map里面,以便后续计算
 				updateEdbDataMap[currDataTime] = currValue
 			}
 		}
-		//移除python指标数据中当天的日期
 		delete(pythonDataMap, currDataTime)
 	}
 
-	//sort.Strings(tbzEdbDataTimeList)
 
-	//新增的数据入库
 	{
 		addDataList := make([]*EdbDataPython, 0)
 		for dataTime, dataValue := range pythonDataMap {
-			//时间戳
 			currentDate, _ := time.ParseInLocation(utils.FormatDate, dataTime, time.Local)
 			timestamp := currentDate.UnixNano() / 1e6
 
@@ -149,7 +132,6 @@ func RefreshAllPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython) (err error) {
 			}
 			addDataList = append(addDataList, edbDataPython)
 		}
-		//最后如果还有需要新增的数据,那么就统一入库
 		if len(addDataList) > 0 {
 			tmpErr := global.DEFAULT_DmSQL.CreateInBatches(addDataList, 500).Error
 			if tmpErr != nil {
@@ -159,12 +141,10 @@ func RefreshAllPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython) (err error) {
 		}
 	}
 
-	//删除已经不存在的累计同比拼接指标数据(由于同比值当日的数据删除了)
 	{
 		if len(removeDateList) > 0 {
 			removeDateStr := strings.Join(removeDateList, `","`)
 			removeDateStr = `"` + removeDateStr + `"`
-			//如果拼接指标变更了,那么需要删除所有的指标数据
 			tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 			sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
@@ -176,7 +156,6 @@ func RefreshAllPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython) (err error) {
 		}
 	}
 
-	//修改现有的数据中对应的值
 	{
 		tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 		for edbDate, edbDataValue := range updateEdbDataMap {
@@ -192,14 +171,12 @@ func RefreshAllPythonEdb(edbInfo *EdbInfo, item EdbDataFromPython) (err error) {
 	return
 }
 
-// EditEdbInfoCalculateMapping 更新关联关系表
 func EditEdbInfoCalculateMapping(edbInfo *EdbInfo, edbInfoList []*EdbInfo) (err error) {
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId)
 
-	//查询出所有的关联指标
 	existList, err := GetEdbInfoCalculateListByCondition(existCondition, existPars)
 	if err != nil {
 		err = fmt.Errorf("判断指标是否改变失败,Err:" + err.Error())
@@ -210,14 +187,11 @@ func EditEdbInfoCalculateMapping(edbInfo *EdbInfo, edbInfoList []*EdbInfo) (err
 	for _, v := range existList {
 		existEdbInfoIdMap[v.FromEdbInfoId] = v.FromEdbInfoId
 	}
-	//添加指标关系
 	for _, tmpEdbInfo := range edbInfoList {
-		//如果该指标id已经处理过了,那么就不处理了
 		if _, ok := isOpEdbInfoIdMap[tmpEdbInfo.EdbInfoId]; ok {
 			continue
 		}
 		if _, ok := existEdbInfoIdMap[tmpEdbInfo.EdbInfoId]; ok {
-			//如果存在,那么就移除map里面的东西
 			delete(existEdbInfoIdMap, tmpEdbInfo.EdbInfoId)
 			isOpEdbInfoIdMap[tmpEdbInfo.EdbInfoId] = tmpEdbInfo.EdbInfoId
 		} else {
@@ -242,7 +216,6 @@ func EditEdbInfoCalculateMapping(edbInfo *EdbInfo, edbInfoList []*EdbInfo) (err
 	}
 
 	for _, v := range existEdbInfoIdMap {
-		//删除,计算指标关联的,基础指标的关联关系
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? and from_edb_info_id=?`
 		err = global.DEFAULT_DmSQL.Exec(sql, edbInfo.EdbInfoId, v).Error
 		if err != nil {
@@ -253,14 +226,12 @@ func EditEdbInfoCalculateMapping(edbInfo *EdbInfo, edbInfoList []*EdbInfo) (err
 	return
 }
 
-// GetAllEdbDataPythonByEdbInfoId 根据指标id获取全部的数据
 func GetAllEdbDataPythonByEdbInfoId(edbInfoId int) (items []*EdbDataPython, err error) {
 	sql := ` SELECT * FROM edb_data_python WHERE edb_info_id=? ORDER BY data_time DESC `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).Scan(&items).Error
 	return
 }
 
-// EdbInfoPythonSaveReq 计算(运算)指标请求参数
 type EdbInfoPythonSaveReq struct {
 	AdminId          int    `description:"添加人id"`
 	AdminName        string `description:"添加人名称"`
@@ -275,12 +246,10 @@ type EdbInfoPythonSaveReq struct {
 	}
 }
 
-// ExecPythonEdbReq 执行python代码运算指标的请求参数
 type ExecPythonEdbReq struct {
 	PythonCode string `description:"python代码"`
 }
 
-// AddPythonEdbReq 添加python代码运算指标的请求参数
 type AddPythonEdbReq struct {
 	AdminId    int    `description:"添加人id"`
 	AdminName  string `description:"添加人名称"`
@@ -292,7 +261,6 @@ type AddPythonEdbReq struct {
 	PythonCode string `description:"python代码"`
 }
 
-// AnalysisPythonCode 解析Python代码,获取关联code
 func AnalysisPythonCode(pythonCode, edbName string) (edbInfoList []*EdbInfo) {
 	tmpEdbCodeList := make([]string, 0) //临时指标code
 	edbCodeLen := 0                     //指标数
@@ -303,14 +271,12 @@ func AnalysisPythonCode(pythonCode, edbName string) (edbInfoList []*EdbInfo) {
 			edbCodeLen++
 			tmpCodeStrList := strings.Split(v, "edb_code")
 			if len(tmpCodeStrList) > 1 {
-				//根据单引号获取
 				tmpCodeStrList2 := strings.Split(tmpCodeStrList[1], "'")
 				if len(tmpCodeStrList2) > 1 {
 					if tmpCodeStrList2[1] != "" {
 						tmpEdbCodeList = append(tmpEdbCodeList, tmpCodeStrList2[1])
 					}
 				}
-				//根据双引号获取
 				tmpCodeStrList3 := strings.Split(tmpCodeStrList[1], `"`)
 				if len(tmpCodeStrList3) > 1 {
 					if tmpCodeStrList3[1] != "" {
@@ -328,7 +294,6 @@ func AnalysisPythonCode(pythonCode, edbName string) (edbInfoList []*EdbInfo) {
 		}
 	}
 	if len(edbInfoList) != edbCodeLen {
-		//code匹配失败,需要短信提醒
 		go alarm_msg.SendAlarmMsg(fmt.Sprintf("python代码关联指标匹配失败,指标名称:%s;实际关联%d个,匹配上%d个", edbName, edbCodeLen, len(edbInfoList)), 3)
 	}
 	return

+ 0 - 6
models/base_from_stock_plant.go

@@ -31,7 +31,6 @@ func GetStockPlantEdbDataByCondition(condition string, pars []interface{}) (item
 	return
 }
 
-// RefreshEdbDataFromStockPlant 刷新存量装置数据
 func RefreshEdbDataFromStockPlant(edbInfoId int, edbCode, startDate string) (err error) {
 	source := utils.DATA_SOURCE_STOCK_PLANT
 	subSource := utils.DATA_SUB_SOURCE_EDB
@@ -40,17 +39,14 @@ func RefreshEdbDataFromStockPlant(edbInfoId int, edbCode, startDate string) (err
 		return
 	}
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 	var condition string
 	var pars []interface{}
 
-	// 获取供应分析的指标信息
 	varietyEdbInfo, err := supply_analysis.GetVarietyEdbInfoByEdbInfoId(edbInfoId)
 	if err != nil {
 		return
 	}
 
-	// 获取基础库的指标数据
 	condition += " AND variety_edb_id=? "
 	pars = append(pars, varietyEdbInfo.VarietyEdbId)
 
@@ -111,14 +107,12 @@ func RefreshEdbDataFromStockPlant(edbInfoId int, edbCode, startDate string) (err
 		}
 		manualMap[v.DataTime] = v
 	}
-	// 删除不存在的日期数据
 	for _, v := range existList {
 		if _, ok := manualMap[v.DataTime]; !ok {
 			go DeleteEdbDataById(source, subSource, v.EdbDataId)
 		}
 	}
 
-	// 将数据入库
 	if isAdd {
 		addSql = strings.TrimRight(addSql, ",")
 		err = global.DEFAULT_DmSQL.Exec(addSql).Error

+ 0 - 27
models/base_predict_from_calculate.go

@@ -14,7 +14,6 @@ import (
 	"time"
 )
 
-// PredictEdbInfoCalculateSaveReq 预测计算(运算)指标请求参数
 type PredictEdbInfoCalculateSaveReq struct {
 	AdminId          int    `description:"添加人id"`
 	AdminName        string `description:"添加人名称"`
@@ -29,13 +28,11 @@ type PredictEdbInfoCalculateSaveReq struct {
 	}
 }
 
-// PredictCalculateItems 预测计算(运算)指标信息
 type PredictCalculateItems struct {
 	EdbInfoId int
 	DataMap   map[string]float64
 }
 
-// EditPredictCalculate 新增预测计算(运算)指标
 func EditPredictCalculate(edbInfo *EdbInfo, calculateMappingList []*EdbInfoCalculateMapping) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -56,7 +53,6 @@ func EditPredictCalculate(edbInfo *EdbInfo, calculateMappingList []*EdbInfoCalcu
 		}
 	}()
 
-	// 修改指标信息
 	err = edbInfo.Update(
 		[]string{"EdbName", "Frequency", "Unit", "ClassifyId", "CalculateFormula", "EmptyType", "MaxEmptyType", "Extra", "EdbNameEn", "UnitEn"},
 	)
@@ -64,7 +60,6 @@ func EditPredictCalculate(edbInfo *EdbInfo, calculateMappingList []*EdbInfoCalcu
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
@@ -72,14 +67,11 @@ func EditPredictCalculate(edbInfo *EdbInfo, calculateMappingList []*EdbInfoCalcu
 		return
 	}
 
-	// 插入新的关系表
 	if len(calculateMappingList) > 0 {
 		err = to.CreateInBatches(calculateMappingList, len(calculateMappingList)).Error
 	}
 
-	//数据表
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
-	//清空原有数据
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
@@ -104,7 +96,6 @@ func AddPredictCalculateData(edbInfoIdList []*EdbInfo, edbInfoTag map[string]int
 	return
 }
 
-// RefreshAllPredictCalculate 刷新预测计算指标的全部数据
 func RefreshAllPredictCalculate(edbInfoIdList []*EdbInfo, edbInfoTag map[string]int, edbInfoId, source, subSource int, edbCode, formulaStr, startDate string, edbInfoIdBytes []string, emptyType, maxEmptyType int, extra string) (latestDateStr string, latestValue float64, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -121,10 +112,8 @@ func RefreshAllPredictCalculate(edbInfoIdList []*EdbInfo, edbInfoTag map[string]
 	return
 }
 
-// refreshAllPredictCalculate 刷新预测计算指标的全部数据
 func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTag map[string]int, edbInfoId, source, subSource int, edbCode, formulaStr, startDate string, edbInfoIdBytes []string, emptyType, maxEmptyType int, extra string) (latestDateStr string, latestValue float64, err error) {
 	fmt.Println("startDate:", startDate)
-	// 最小的结束日期 , 最晚的数据开始日期
 	var newLatestDate, minLatestDate, maxStartDate time.Time
 	dateList := make([]string, 0) // 第一个指标的日期数据
 
@@ -144,7 +133,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 	}
 
 	for edbInfoIndex, v := range edbInfoIdList {
-		// 单独存储max、min函数里的指标的数据
 		tmpNewLatestDate, tmpErr := time.ParseInLocation(utils.FormatDate, v.LatestDate, time.Local)
 		if tmpErr != nil {
 			err = errors.New(`最近的日期格式化失败;日期:` + v.LatestDate + `;err:` + tmpErr.Error())
@@ -154,7 +142,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 			newLatestDate = tmpNewLatestDate
 		}
 
-		// 获取关联指标数据
 		dataList, tmpErr := GetPredictEdbDataListAllByStartDate(v, 1, startDate)
 		if tmpErr != nil {
 			err = tmpErr
@@ -172,7 +159,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 				realSaveDataMap[dv.DataTime] = temp
 			}
 
-			// 待处理的数据
 			if val, ok := saveDataMap[dv.DataTime]; ok {
 				if _, ok := val[v.EdbInfoId]; !ok {
 					val[v.EdbInfoId] = dv.Value
@@ -207,7 +193,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 			}
 		}
 	}
-	// 处理最大日期和最小日期
 	for _, v := range dateList {
 		tmpDate, _ := time.ParseInLocation(utils.FormatDate, v, time.Local)
 		if minLatestDate.IsZero() || tmpDate.After(minLatestDate) {
@@ -217,7 +202,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 			maxStartDate = tmpDate
 		}
 	}
-	//数据处理,将日期内不全的数据做填补
 	HandleDateSaveDataMap(dateList, maxStartDate, minLatestDate, realSaveDataMap, saveDataMap, edbInfoIdList, emptyType)
 
 	formulaDateSlice, formulaDateMap, err := utils.HandleFormulaJson(formulaStr, minLatestDate)
@@ -229,7 +213,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 
 	var sql string
 	dataTableName := GetEdbDataTableName(source, subSource)
-	//获取指标所有数据
 	dataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return
@@ -242,7 +225,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 	existDataMap := make(map[string]string)
 
 	removeDateList := make([]string, 0) //需要移除的日期
-	// 判断是否特殊处理max和min函数
 	maxDealFlag := false
 	if emptyType == 4 && maxEmptyType == 2 {
 		maxDealFlag = true
@@ -252,13 +234,11 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 		if _, ok := dateMap[sk]; !ok { //不在最终的日期序列里面不计算
 			continue
 		}
-		// 当空值处理类型选择了不计算时,只要有一个指标在某个日期没有值(即空值),则计算指标在该日期没有值
 		if emptyType == 1 {
 			if len(sv) != len(edbInfoIdList) {
 				continue
 			}
 		}
-		// 根据时间范围,选择对应的公式
 		formulaMap := make(map[string]string)
 		formulaStr = ""
 		for _, fv := range formulaDateSlice {
@@ -279,7 +259,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 		}
 		svMax := make(map[int]float64)
 		if maxDealFlag {
-			// 特殊处理max和min函数,如果原本的值为空,则选择空值参与运算
 			if svMaxData, ok := realSaveDataMap[sk]; ok {
 				svMax = svMaxData
 			}
@@ -291,7 +270,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 
 			calVal, err := engine.ParseAndExec(formulaFormStr)
 			if err != nil {
-				// 分母为0的报错,忽略该循环
 				if utils.IsDivideZero(err) {
 					removeDateList = append(removeDateList, sk)
 					continue
@@ -300,7 +278,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 				return "", 0, err
 			}
 			nanCheck := fmt.Sprintf("%0.f", calVal)
-			// 分母为0.0的报错
 			if nanCheck == "NaN" || nanCheck == "+Inf" || nanCheck == "-Inf" {
 				removeDateList = append(removeDateList, sk)
 				continue
@@ -333,7 +310,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 				}
 			}
 		} else {
-			//计算公式异常,那么就移除该指标
 			removeDateList = append(removeDateList, sk)
 			continue
 		}
@@ -351,7 +327,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 	if len(removeDateList) > 0 {
 		removeDateStr := strings.Join(removeDateList, `","`)
 		removeDateStr = `"` + removeDateStr + `"`
-		//如果拼接指标变更了,那么需要删除所有的指标数据
 		tableName := GetEdbDataTableName(source, subSource)
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
@@ -362,7 +337,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 		}
 	}
 
-	//查询预测日期
 	if !newLatestDate.IsZero() {
 		latestDateStr = newLatestDate.Format(utils.FormatDate)
 		sql = fmt.Sprintf(` SELECT * FROM %s WHERE edb_info_id = ? and data_time <= ? ORDER BY data_time desc limit 1`, dataTableName)
@@ -370,7 +344,6 @@ func refreshAllPredictCalculate(to *gorm.DB, edbInfoIdList []*EdbInfo, edbInfoTa
 		e := to.Raw(sql, edbInfoId, latestDateStr).Find(&latestDate).Error
 		if e != nil {
 			if e.Error() == utils.ErrNoRow() {
-				//首个日期的值
 				sql = fmt.Sprintf(` SELECT * FROM %s WHERE edb_info_id = ? ORDER BY data_time ASC limit 1`, dataTableName)
 				e = to.Raw(sql, edbInfoId).Find(&latestDate).Error
 				if e != nil {

+ 0 - 6
models/business_conf.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// BusinessConf 商户配置表
 type BusinessConf struct {
 	Id         int        `gorm:"column:id;primaryKey;autoIncrement"`
 	ConfKey    string     `gorm:"column:conf_key;type:varchar(128);not null;default:'';uniqueIndex:idx_conf_key"`
@@ -102,7 +101,6 @@ func (m *BusinessConf) GetPageItemsByCondition(condition string, pars []interfac
 	return
 }
 
-// BusinessConfUpdate 更新配置
 type BusinessConfUpdate struct {
 	ConfKey string
 	ConfVal string
@@ -114,10 +112,6 @@ func GetBusinessConfByKey(key string) (item *BusinessConf, err error) {
 	return
 }
 
-// InitUseMongoConf
-// @Description:
-// @author: Roc
-// @datetime 2024-07-01 13:49:09
 func InitUseMongoConf() {
 	useMongo, e := GetBusinessConfByKey("UseMongo")
 	if e != nil {

+ 0 - 3
models/chart.go

@@ -12,7 +12,6 @@ type EdbInfoReq struct {
 	EdbInfoId int `description:"图表id,新增时传0"`
 }
 
-// DeleteChartInfoDataRedis 清除图表缓存
 func DeleteChartInfoDataRedis(bodyByte []byte) (err error) {
 	var req EdbInfoReq
 	err = json.Unmarshal(bodyByte, &req)
@@ -33,7 +32,6 @@ func DeleteChartInfoDataRedis(bodyByte []byte) (err error) {
 	return
 }
 
-// GetChartInfoDataKey 获取图表缓存的key
 func GetChartInfoDataKey(chartInfoId int) string {
 	key := fmt.Sprint(utils.CACHE_CHART_INFO_DATA, chartInfoId)
 	return key
@@ -70,7 +68,6 @@ type ChartInfo struct {
 	ExtraConfig     string    `gorm:"column:extra_config" description:"图表额外配置,json数据"`
 }
 
-// GetChartInfoById 通过id获取图表信息
 func GetChartInfoById(chartInfoId int) (item *ChartInfo, err error) {
 	sql := ` SELECT * FROM chart_info WHERE chart_info_id=? `
 	err = global.DEFAULT_DmSQL.Raw(sql, chartInfoId).First(&item).Error

+ 0 - 1
models/chart_edb_mapping.go

@@ -25,7 +25,6 @@ type ChartEdbMapping struct {
 	Source            int       `gorm:"column:source" description:"1:ETA图库;2:商品价格曲线"`
 }
 
-// GetChartEdbMappingListByEdbInfoId 根据指标id获取关联图表列表
 func GetChartEdbMappingListByEdbInfoId(edbInfoId int) (list []*ChartEdbMapping, err error) {
 	sql := ` SELECT *
              FROM chart_edb_mapping AS a

+ 0 - 8
models/common.go

@@ -2,7 +2,6 @@ package models
 
 import "eta_gn/eta_index_lib/utils"
 
-// BaseEdbInfoInterface 基础指标接口
 type BaseEdbInfoInterface interface {
 	Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string)
 	Edit(params EditCalculateBatchParams) (err error, errMsg string)
@@ -12,7 +11,6 @@ type BaseEdbInfoInterface interface {
 	GetEdbType() int
 }
 
-// AddCalculateBatchParams 添加的请求参
 type AddCalculateBatchParams struct {
 	Req             *EdbInfoCalculateBatchSaveReq
 	FromEdbInfo     *EdbInfo
@@ -22,14 +20,12 @@ type AddCalculateBatchParams struct {
 	SysUserRealName string
 }
 
-// EditCalculateBatchParams 编辑的请求参
 type EditCalculateBatchParams struct {
 	Req         *EdbInfoCalculateBatchEditReq
 	EdbInfo     *EdbInfo
 	FromEdbInfo *EdbInfo
 }
 
-// RefreshParams 编辑的请求参
 type RefreshParams struct {
 	EdbInfo     *EdbInfo
 	FromEdbInfo *EdbInfo
@@ -37,7 +33,6 @@ type RefreshParams struct {
 	EndDate     string
 }
 
-// GetBaseEdbInfoModel 获取普通指标的model
 func GetBaseEdbInfoModel(source int) (baseEdbInfoModel BaseEdbInfoInterface) {
 	switch source {
 	case utils.DATA_SOURCE_CALCULATE_LJZZJ:
@@ -66,7 +61,6 @@ func GetBaseEdbInfoModel(source int) (baseEdbInfoModel BaseEdbInfoInterface) {
 	return
 }
 
-// BatchSaveCalculateBatchParams 编辑的请求参
 type BatchSaveCalculateBatchParams struct {
 	Req             EdbInfoCalculateBatchSaveReq
 	EdbInfo         *EdbInfo
@@ -78,7 +72,6 @@ type BatchSaveCalculateBatchParams struct {
 	Lang            string
 }
 
-// BasePredictEdbInfoInterface 基础指标接口
 type BasePredictEdbInfoInterface interface {
 	Add(params BatchSaveCalculateBatchParams) (edbInfo *EdbInfo, latestDateStr string, latestValue float64, err error, errMsg string)
 	Edit(params BatchSaveCalculateBatchParams) (latestDateStr string, latestValue float64, err error, errMsg string)
@@ -86,7 +79,6 @@ type BasePredictEdbInfoInterface interface {
 	GetSourceName() string
 }
 
-// GetBasePredictEdbInfoModel 获取预测指标的model
 func GetBasePredictEdbInfoModel(source int) (baseEdbInfoModel BasePredictEdbInfoInterface) {
 	switch source {
 	case utils.DATA_SOURCE_PREDICT_CALCULATE_TBZ:

+ 0 - 1
models/data_stat/edb_info_delete_log.go

@@ -4,7 +4,6 @@ import (
 	"eta_gn/eta_index_lib/global"
 )
 
-// EdbInfoDeleteLog 指标删除日志表
 type EdbInfoDeleteLog struct {
 	Id                 uint64  `gorm:"primaryKey;autoIncrement;column:id"             description:"记录ID"`
 	EdbInfoId          int     `gorm:"column:edb_info_id"                           description:"指标ID"`

+ 0 - 1
models/data_stat/edb_info_update_log.go

@@ -5,7 +5,6 @@ import (
 	"time"
 )
 
-// EdbInfoUpdateLog 指标更新/刷新日志列表
 type EdbInfoUpdateLog struct {
 	Id                     uint64    `gorm:"primaryKey;autoIncrement;column:id"                        description:"记录ID"`
 	EdbInfoId              int       `gorm:"column:edb_info_id"                                      description:"指标ID"`

+ 0 - 3
models/data_stat/edb_info_update_stat.go

@@ -6,7 +6,6 @@ import (
 	"time"
 )
 
-// EdbInfoUpdateStat 指标更新/刷新 汇总表(数据源明细表)
 type EdbInfoUpdateStat struct {
 	Id                     uint64    `gorm:"primaryKey;autoIncrement;column:id" description:"ID"`
 	EdbInfoId              int       `gorm:"column:edb_info_id" description:"指标ID"`
@@ -41,14 +40,12 @@ type EdbInfoUpdateStat struct {
 	HasRefresh             int       `gorm:"column:has_refresh" description:"今日是否发起刷新服务,1是,0否"`
 }
 
-// Add 新增
 func (r *EdbInfoUpdateStat) Add(list []*EdbInfoUpdateStat) (err error) {
 	o := orm.NewOrm()
 	_, err = o.InsertMulti(len(list), list)
 	return
 }
 
-// GetEdbUpdateStatByCondition 获取指标更新汇总记录
 func GetEdbUpdateStatByCondition(condition string, pars []interface{}) (item []*EdbInfoUpdateStat, err error) {
 	sql := ` SELECT * FROM edb_info_update_stat WHERE 1=1 `
 	if condition != "" {

+ 0 - 3
models/data_stat/edb_source_stat.go

@@ -6,7 +6,6 @@ import (
 	"time"
 )
 
-// EdbSourceStat 数据源统计表
 type EdbSourceStat struct {
 	Id                int       `gorm:"primaryKey;autoIncrement;column:id" description:"ID"`
 	SourceName        string    `gorm:"column:source_name" description:"来源名称"`
@@ -34,14 +33,12 @@ func GetEdbSourceStatByCondition(condition string, pars []interface{}) (item []*
 	return
 }
 
-// Add 新增
 func (r *EdbSourceStat) Add(list []*EdbSourceStat) (err error) {
 	o := orm.NewOrm()
 	_, err = o.InsertMulti(len(list), list)
 	return
 }
 
-// UpdateEdbSourceStatMulti 批量更新
 func UpdateEdbSourceStatMulti(list []*EdbSourceStat) (err error) {
 	o := orm.NewOrm()
 	sql := `UPDATE edb_source_stat 

+ 0 - 6
models/dm_db.go

@@ -5,16 +5,10 @@ import (
 	_ "github.com/go-sql-driver/mysql"
 )
 
-// afterInitTable
-// @Description: 初始化表结构的的后置操作
-// @author: Roc
-// @datetime 2024-07-01 13:31:09
 func init() {
 	InitEdbSource()
 
-	// 初始化是否启用mongo配置
 	InitUseMongoConf()
 
-	// 初始化Smm有色指标数据获取方式
 	InitSmmDataMethodConf()
 }

+ 0 - 1
models/edb_adjust_conf.go

@@ -4,7 +4,6 @@ import (
 	"time"
 )
 
-// EdbAdjustConf 计算指标于基础指标,关系表
 type EdbAdjustConf struct {
 	EdbInfoId     int       `gorm:"primaryKey;autoIncrement;column:edb_info_id" description:"计算指标id"`
 	SourceEndDate time.Time `gorm:"column:source_end_date" description:"来源指标的实际数据日期"`

+ 0 - 5
models/edb_classify.go

@@ -30,7 +30,6 @@ func AddEdbClassify(item *EdbClassify) (lastId int64, err error) {
 	return
 }
 
-// Update 更新分类基础信息
 func (edbClassify *EdbClassify) Update(cols []string) (err error) {
 	err = global.DEFAULT_DmSQL.Model(edbClassify).Select(cols).Updates(edbClassify).Error
 	return
@@ -49,7 +48,6 @@ type EdbClassifySimplify struct {
 	ParentId     int
 }
 
-// 判断分类名称是否存在
 func GetEdbClassifyCount(classifyName string, parentId int, classifyType uint8) (item *EdbClassify, err error) {
 
 	sql := `SELECT * FROM edb_classify WHERE parent_id=? AND classify_name=? AND classify_type = ? `
@@ -57,7 +55,6 @@ func GetEdbClassifyCount(classifyName string, parentId int, classifyType uint8)
 	return
 }
 
-// GetEdbClassifyMaxSort 获取分类下最大的排序数
 func GetEdbClassifyMaxSort(parentId int, classifyType uint8) (sort int, err error) {
 
 	sql := `SELECT COALESCE(MAX(sort),0) AS sort FROM edb_classify WHERE parent_id=? AND classify_type=? `
@@ -72,7 +69,6 @@ type AddEdbClassifyReq struct {
 	ClassifyType uint8  `description:"分类类型,0:普通指标分类,1:预测指标分类"`
 }
 
-// AddEdbClassify 添加指标分类
 func SaveEdbClassify(classifyName string, parentId, level int, classifyType uint8, sysUserId, sysUserName string) (classifyInfo *EdbClassify, err error, errMsg string) {
 	edbClassify, err := GetEdbClassifyCount(classifyName, parentId, classifyType)
 
@@ -111,7 +107,6 @@ func SaveEdbClassify(classifyName string, parentId, level int, classifyType uint
 		}
 		timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
 		classifyInfo = &EdbClassify{
-			//ClassifyId:      0,
 			ClassifyType:    classifyType,
 			ClassifyName:    classifyName,
 			ParentId:        parentId,

+ 0 - 25
models/edb_data_base.go

@@ -9,7 +9,6 @@ import (
 	"time"
 )
 
-// 指标检索数据
 type EdbDataItem struct {
 	EdbCode   string `description:"指标编码"`
 	StartDate string `description:"起始日期"`
@@ -32,7 +31,6 @@ type EdbData struct {
 	DataTimestamp int64     `gorm:"column:data_timestamp"`
 }
 
-// AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *EdbData) AfterFind(db *gorm.DB) (err error) {
 	if m.DataTime == "" {
 		return
@@ -63,7 +61,6 @@ type AddEdbInfoReq struct {
 	ExtraPars string `description:"额外参数(如同花顺日期序列)"`
 }
 
-// GetEdbInfoCountByCondition 获取指标数量
 func GetEdbInfoCountByCondition(condition string, pars []interface{}) (count int, err error) {
 	sql := ` SELECT COUNT(1) AS count FROM edb_info WHERE 1=1 `
 	if condition != "" {
@@ -73,7 +70,6 @@ func GetEdbInfoCountByCondition(condition string, pars []interface{}) (count int
 	return
 }
 
-// GetEdbDataAllByEdbCode 根据指标编码获取指标数据列表
 func GetEdbDataAllByEdbCode(edbCode string, source, subSource, limit int) (items []*EdbInfoSearchData, err error) {
 	var pars []interface{}
 	pars = append(pars, edbCode)
@@ -109,7 +105,6 @@ func GetEdbDataByCondition(source, subSource int, condition string, pars []inter
 	return
 }
 
-// GetEdbDataByDate 根据数据日期获取指标数据
 func GetEdbDataByDate(source, subSource int, edbCode, dataTime string) (item *EdbInfoSearchData, err error) {
 	tableName := GetEdbDataTableName(source, subSource)
 	sql := ` SELECT * FROM %s WHERE 1=1 AND edb_code = ? AND data_time =? ORDER BY data_time DESC `
@@ -142,7 +137,6 @@ type RefreshEdbInfoReq struct {
 	Source    int    `description:"指标来源ID"`
 }
 
-// GetAllEdbDataListByTo 获取所有的指标数据列表
 func GetAllEdbDataListByTo(to *gorm.DB, edbInfoId, source, subSource int) (existDataList []*EdbData, err error) {
 	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := `SELECT * FROM %s WHERE edb_info_id=? order by data_time asc`
@@ -152,7 +146,6 @@ func GetAllEdbDataListByTo(to *gorm.DB, edbInfoId, source, subSource int) (exist
 	return
 }
 
-// GetFinalLastByTo 获取所有的指标数据列表
 func GetFinalLastByTo(to *gorm.DB, edbInfoId, source, subSource int, latestDate string) (finalLast EdbInfoSearchData, err error) {
 	dataTableName := GetEdbDataTableName(source, subSource)
 	sql := fmt.Sprintf(` SELECT data_time , value FROM %s WHERE edb_info_id=? and data_time<=? ORDER BY data_time DESC `, dataTableName)
@@ -163,7 +156,6 @@ func GetFinalLastByTo(to *gorm.DB, edbInfoId, source, subSource int, latestDate
 	return
 }
 
-// 新版本
 type EdbDataV1 struct {
 	EdbDataId     int       `gorm:"primaryKey;autoIncrement;column:edb_data_id"`
 	EdbInfoId     int       `gorm:"column:edb_info_id"`
@@ -188,7 +180,6 @@ func DelEdbDataByMysql(to *gorm.DB, edbInfoId int, tableName string, removeDateL
 	if len(removeDateList) <= 0 {
 		return
 	}
-	// 移除不存在的日期数据
 	removeDateStr := strings.Join(removeDateList, `","`)
 	removeDateStr = `"` + removeDateStr + `"`
 	sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
@@ -196,17 +187,6 @@ func DelEdbDataByMysql(to *gorm.DB, edbInfoId int, tableName string, removeDateL
 	return
 }
 
-// GetEdbDataList
-// @Description:
-// @author: Roc
-// @datetime 2024-05-08 16:10:49
-// @param source int
-// @param subSource int
-// @param endInfoId int
-// @param startDate string
-// @param endDate string
-// @return list []*EdbDataList
-// @return err error
 func GetEdbDataList(source, subSource, endInfoId int, startDate, endDate string) (list []*EdbDataList, err error) {
 	list = make([]*EdbDataList, 0)
 	tmpDataList, err := GetEdbDataListAll(source, subSource, FindEdbDataListAllCond{
@@ -220,7 +200,6 @@ func GetEdbDataList(source, subSource, endInfoId int, startDate, endDate string)
 		return
 	}
 
-	// 数据拼接
 	for _, v := range tmpDataList {
 		list = append(list, &EdbDataList{
 			EdbDataId:     v.EdbDataId,
@@ -243,7 +222,6 @@ type AddEdbBaseInfoReq struct {
 	SysUserRealName string `description:"用户真实名称"`
 }
 
-// EditEdbBaseInfoReq 编辑基础指标请求参数
 type EditEdbBaseInfoReq struct {
 	SysUserId       int    `description:"用户id"`
 	SysUserRealName string `description:"用户真实名称"`
@@ -256,9 +234,6 @@ type EditEdbBaseInfoReq struct {
 	ClassifyId      int    `description:"分类id"`
 }
 
-// ConvertDate
-// @Description: 格式化EdbData的日期
-// @receiver e
 func (m *EdbData) ConvertDate() {
 	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
 

+ 0 - 23
models/edb_data_calculate_avg.go

@@ -16,7 +16,6 @@ import (
 type CalculateAvg struct {
 }
 
-// Add 新增
 func (obj CalculateAvg) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	edbCode := params.EdbCode
@@ -60,7 +59,6 @@ func (obj CalculateAvg) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, e
 		return
 	}
 
-	//关联关系
 	tagMap := make(map[string]int)
 	relationEdbInfoList := make([]*EdbInfo, 0)
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
@@ -96,7 +94,6 @@ func (obj CalculateAvg) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, e
 		return
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.Extra, tagMap, edbInfo.EmptyType)
 
 	return
@@ -123,7 +120,6 @@ func (obj CalculateAvg) Edit(params EditCalculateBatchParams) (err error, errMsg
 		needCalculate = true
 	}
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -140,9 +136,7 @@ func (obj CalculateAvg) Edit(params EditCalculateBatchParams) (err error, errMsg
 	if err != nil {
 		return
 	}
-	//判断是否重复指标
 	if !needCalculate {
-		//用到的指标
 		newEdbInfoIdArr := make([]string, 0)
 		for _, tmpEdbInfo := range req.EdbInfoIdArr {
 			newEdbInfoIdArr = append(newEdbInfoIdArr, strconv.Itoa(tmpEdbInfo.EdbInfoId))
@@ -164,14 +158,12 @@ func (obj CalculateAvg) Edit(params EditCalculateBatchParams) (err error, errMsg
 	if !needCalculate {
 		return
 	}
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
@@ -179,7 +171,6 @@ func (obj CalculateAvg) Edit(params EditCalculateBatchParams) (err error, errMsg
 		return
 	}
 
-	//关联关系
 	tagMap := make(map[string]int)
 	relationEdbInfoList := make([]*EdbInfo, 0)
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
@@ -215,7 +206,6 @@ func (obj CalculateAvg) Edit(params EditCalculateBatchParams) (err error, errMsg
 		return
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.Extra, tagMap, edbInfo.EmptyType)
 
 	return
@@ -244,7 +234,6 @@ func (obj CalculateAvg) Refresh(params RefreshParams) (err error, errMsg string)
 		}
 	}()
 
-	// 计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.Extra, tagMap, edbInfo.EmptyType)
 
 	return
@@ -254,7 +243,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 	realSaveDataMap := make(map[string]map[int]float64)
 	saveDataMap := make(map[string]map[int]float64)
 
-	// 最小的结束日期 , 最晚的数据开始日期
 	var minLatestDate, maxStartDate time.Time
 	dateList := make([]string, 0)        // 最终的日期数据
 	dateMap := make(map[string]struct{}) // 最终的日期数据
@@ -262,7 +250,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	tableName := GetEdbDataTableName(source, subSource)
 
-	// 获取多指标求和关联的指标id
 	dateTagConfig := ""
 	if extra != "" {
 		var dateConfig CalculateEdbExtra
@@ -293,7 +280,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 				realSaveDataMap[dv.DataTime] = temp
 			}
 
-			// saveDataMap
 			if val, ok := saveDataMap[dv.DataTime]; ok {
 				if _, ok := val[v.EdbInfoId]; !ok {
 					val[v.EdbInfoId] = dv.Value
@@ -328,7 +314,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 			}
 		}
 	}
-	// 处理最大日期和最小日期
 	for _, v := range dateList {
 		tmpDate, _ := time.ParseInLocation(utils.FormatDate, v, time.Local)
 		if minLatestDate.IsZero() || tmpDate.After(minLatestDate) {
@@ -339,7 +324,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 		}
 	}
 
-	//数据处理,将日期内不全的数据做补全
 	HandleDateSaveDataMap(dateList, maxStartDate, minLatestDate, realSaveDataMap, saveDataMap, edbInfoIdArr, emptyType)
 
 	addSql := ` INSERT INTO ` + tableName + ` (edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
@@ -347,7 +331,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	dataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -365,7 +348,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 		if _, ok := dateMap[sk]; !ok {
 			continue
 		}
-		// 当空值处理类型选择了不计算时,只要有一个指标在某个日期没有值(即空值),则计算指标在该日期没有值
 		if len(sv) != len(edbInfoIdArr) {
 			continue
 		}
@@ -374,7 +356,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 			calVal += value
 		}
 		calVal = calVal / float64(len(sv))
-		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
 		saveValue := decimal.NewFromFloat(calVal).Round(4).String()
 		if existVal, ok := dataMap[sk]; !ok {
@@ -417,7 +398,6 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 		}
 		removeDateStr := strings.Join(removeDateList, `","`)
 		removeDateStr = `"` + removeDateStr + `"`
-		//如果拼接指标变更了,那么需要删除所有的指标数据
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
 		err = to.Exec(sql, edbInfoId).Error
@@ -429,17 +409,14 @@ func (obj CalculateAvg) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj CalculateAvg) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_AVG
 }
 
-// GetSourceName 获取来源名称
 func (obj CalculateAvg) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_AVG
 }
 
-// GetEdbType 获取指标类型
 func (obj CalculateAvg) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }

+ 0 - 26
models/edb_data_calculate_bp.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateBp 升频
 func AddCalculateBp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -50,7 +49,6 @@ func AddCalculateBp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 		}
 		newEdbInfoId := edbInfo.EdbInfoId
 		edbInfo.EdbInfoId = newEdbInfoId
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -87,13 +85,11 @@ func AddCalculateBp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateBp(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", 0, edbInfo.EmptyType)
 
 	return
 }
 
-// EditCalculateBp 修改升频数据
 func EditCalculateBp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -105,7 +101,6 @@ func EditCalculateBp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 	}()
 
 	oldEmptyType := edbInfo.EmptyType
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -120,7 +115,6 @@ func EditCalculateBp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -135,20 +129,17 @@ func EditCalculateBp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	sql = ` DELETE FROM edb_data_calculate_bp WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -173,7 +164,6 @@ func EditCalculateBp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateBp(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", 0, edbInfo.EmptyType)
 
 	return
@@ -189,18 +179,14 @@ func RefreshAllCalculateBp(edbInfoId, source, subSource int, fromEdbInfo *EdbInf
 		}
 	}()
 
-	// 计算数据
 	err = refreshAllCalculateBp(to, edbInfoId, source, subSource, fromEdbInfo, edbCode, startDate, endDate, 0, emptyType)
 
 	return
 }
 
-// refreshAllCalculateBp 刷新升频数据
 func refreshAllCalculateBp(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string, order int, emptyType int) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
-	//获取来源指标的数据
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
 	}, order)
@@ -210,7 +196,6 @@ func refreshAllCalculateBp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	var dateArr []string
 	dataMap := make(map[string]*EdbInfoSearchData)
 	fromDataMap := make(map[string]float64)
-	//来源指指标数据
 	for _, v := range dataList {
 		dateArr = append(dateArr, v.DataTime)
 		dataMap[v.DataTime] = v
@@ -218,20 +203,16 @@ func refreshAllCalculateBp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	}
 	fmt.Println("source:", source)
 
-	//获取升频指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return
 	}
-	//计算指标的map
 	existDataMap := make(map[string]*EdbData, 0)
 	removeDateMap := make(map[string]struct{})
 	addSql := ` INSERT INTO edb_data_calculate_bp(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
-	//待删除的日期
 	removeDateList := make([]string, 0)
 	if len(existDataList) > 0 && len(dateArr) == 0 {
-		//如果没有来源指标数据,那么已经入库的计算指标数据需要全部删除
 		tableName := GetEdbDataTableName(source, subSource)
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ?`, tableName)
 		err = to.Exec(sql, edbInfoId).Error
@@ -245,13 +226,11 @@ func refreshAllCalculateBp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	existMap := make(map[string]string)
 
 	dataLen := len(dataList)
-	//第三步: 已经入库的数据处理
 	for _, v := range existDataList {
 		existDataMap[v.DataTime] = v
 		removeDateMap[v.DataTime] = struct{}{}
 	}
 	for i := 0; i < dataLen; i++ {
-		//当期
 		currentItem := dataList[i]
 		var prevItem *EdbInfoSearchData
 		if emptyType == 3 { //3后值填充,其余前值填充
@@ -297,7 +276,6 @@ func refreshAllCalculateBp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 					addSql += GetAddSql(edbInfoIdStr, edbCode, needDayStr, timestampStr, valStr)
 					isAdd = true
 				} else {
-					//如果对应的值不匹配
 					if tmpExistData.Value != valStr {
 						err = ModifyEdbDataById(source, subSource, tmpExistData.EdbDataId, valStr)
 						if err != nil {
@@ -321,13 +299,11 @@ func refreshAllCalculateBp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				addSql += GetAddSql(edbInfoIdStr, edbCode, currentItem.DataTime, timestampStr, currValStr)
 				isAdd = true
 			} else {
-				// 已经入库的数据值
 				tmpExistVal, tmpErr := decimal.NewFromString(tmpExistData.Value)
 				if tmpErr != nil {
 					err = tmpErr
 					return
 				}
-				// 如果已经入库的数据值 与 当前计算出来的值 不匹配,那么就去更新
 				if !tmpExistVal.Equal(currValDeci) {
 					err = ModifyEdbDataById(source, subSource, tmpExistData.EdbDataId, currValStr)
 					if err != nil {
@@ -343,9 +319,7 @@ func refreshAllCalculateBp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	for k, _ := range removeDateMap {
 		removeDateList = append(removeDateList, k)
 	}
-	// 删除不需要的指标数据
 	if len(removeDateList) > 0 {
-		//如果拼接指标变更了,那么需要删除所有的指标数据
 		tableName := GetEdbDataTableName(source, subSource)
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (`+utils.GetOrmInReplace(len(removeDateList))+`) `, tableName)
 		err = to.Exec(sql, edbInfoId, removeDateList).Error

+ 0 - 35
models/edb_data_calculate_cjjx.go

@@ -13,7 +13,6 @@ import (
 	"time"
 )
 
-// AddCalculateCjjx 超季节性
 func AddCalculateCjjx(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string, formulaInt int) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -52,7 +51,6 @@ func AddCalculateCjjx(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, e
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -89,13 +87,11 @@ func AddCalculateCjjx(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, e
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateCjjx(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", edbInfo.Calendar, formulaInt)
 
 	return
 }
 
-// EditCalculateCjjx 超季节性
 func EditCalculateCjjx(req *EdbInfoCalculateBatchEditReq, edbInfo, fromEdbInfo *EdbInfo, formulaInt int) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -113,7 +109,6 @@ func EditCalculateCjjx(req *EdbInfoCalculateBatchEditReq, edbInfo, fromEdbInfo *
 		return
 	}
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -129,7 +124,6 @@ func EditCalculateCjjx(req *EdbInfoCalculateBatchEditReq, edbInfo, fromEdbInfo *
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -144,17 +138,13 @@ func EditCalculateCjjx(req *EdbInfoCalculateBatchEditReq, edbInfo, fromEdbInfo *
 		return
 	}
 
-	// 指标被替换,或者N值未修改,那么需要重新计算数据
-	//基础指标被替换了,需要删除原先的 计算指标关联的,基础指标的关联关系
 	if count <= 0 {
-		// 需要删除原先的 计算指标关联的,基础指标的关联关系
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 		if err != nil {
 			return
 		}
 
-		// 添加新的关联关系
 		{
 			calculateMappingItem := &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
@@ -180,7 +170,6 @@ func EditCalculateCjjx(req *EdbInfoCalculateBatchEditReq, edbInfo, fromEdbInfo *
 		}
 	}
 
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? `, tableName)
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
@@ -188,13 +177,11 @@ func EditCalculateCjjx(req *EdbInfoCalculateBatchEditReq, edbInfo, fromEdbInfo *
 		return
 	}
 
-	//计算数据
 	err = refreshAllCalculateCjjx(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", edbInfo.Calendar, formulaInt)
 
 	return
 }
 
-// RefreshAllCalculateCjjx 刷新全部超季节性数据
 func RefreshAllCalculateCjjx(edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate, calendar string, formulaInt int) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -205,19 +192,16 @@ func RefreshAllCalculateCjjx(edbInfoId, source, subSource int, fromEdbInfo *EdbI
 		}
 	}()
 
-	// 重新计算
 	err = refreshAllCalculateCjjx(to, edbInfoId, source, subSource, fromEdbInfo, edbCode, startDate, endDate, calendar, formulaInt)
 
 	return
 }
 
-// refreshAllCalculateCjjx 刷新全部超季节性数据
 func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate, calendar string, formulaInt int) (err error) {
 	if err != nil {
 		return
 	}
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
@@ -232,7 +216,6 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 		dataMap[v.DataTime] = v
 	}
 
-	// 通过插值法补全所有数据(包含周末)
 	handleDataMap := make(map[string]float64)
 	_, err = HandleDataByLinearRegression(dataList, handleDataMap)
 	if err != nil {
@@ -240,7 +223,6 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 	}
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -254,14 +236,12 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 
 	addSql := ` INSERT INTO edb_data_calculate_cjjx(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
-	// 每个年份的日期数据需要平移的天数
 	moveDayMap := make(map[int]int, 0) // 每个年份的春节公历
 	var lastDataDay time.Time
 	if len(dataList) > 0 {
 		lastDataDay, _ = time.ParseInLocation(utils.FormatDate, dataList[0].DataTime, time.Local)
 	}
 	for _, av := range dateArr {
-		// 如果遇到闰二月,如2.29,去掉该天数据
 		if strings.Contains(av, "02-29") {
 			continue
 		}
@@ -270,23 +250,19 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 			err = tmpErr
 			return
 		}
-		//农历的超季节性运算,只计算11月--次年5月,分段计算,与数据区间和N数值有关
 		if calendar == "农历" && currentDate.Month() > 5 && currentDate.Month() < 11 {
 			continue
 		}
 
 		currentItem, ok := dataMap[av]
-		// 找不到数据就退出当前循环,进入下一循环
 		if !ok {
 			continue
 		}
 
 		pastValueList := make([]float64, 0) // 过去几期的数据
-		//当前日期
 		pastValueList = append(pastValueList, currentItem.Value)
 
 		for i := 1; i < formulaInt; i++ {
-			//前几年当天公历的日期
 			historyPreDate := currentDate.AddDate(-i, 0, 0)
 			moveDay := 0
 			if calendar == "农历" {
@@ -299,7 +275,6 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 					moveDay = tmpMoveDay
 				}
 
-				// 移动天数到对应农历 的 公历 日期
 				historyPreDate = historyPreDate.AddDate(0, 0, moveDay)
 			}
 
@@ -335,7 +310,6 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 		existDataMap[edbCode+av] = av
 	}
 
-	//删除已经不存在的超季节性指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -343,7 +317,6 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 		}
 		removeNum := len(removeDateList)
 		if removeNum > 0 {
-			//如果拼接指标变更了,那么需要删除所有的指标数据
 			tableName := GetEdbDataTableName(source, subSource)
 			sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (`+utils.GetOrmInReplace(removeNum)+`) `, tableName)
 			err = to.Exec(sql, edbInfoId, removeDateList).Error
@@ -365,7 +338,6 @@ func refreshAllCalculateCjjx(to *gorm.DB, edbInfoId, source, subSource int, from
 	return
 }
 
-// getMoveDay 获取两个日期的平移天数
 func getMoveDay(lastDataDay, currentDataDay time.Time) (moveDay int, err error) {
 	if lastDataDay.Month() >= 11 { //最新数据的日期如果大于等于11月份,那么用的是下一年的春节
 		lastDataDay = lastDataDay.AddDate(1, 0, 0)
@@ -380,9 +352,7 @@ func getMoveDay(lastDataDay, currentDataDay time.Time) (moveDay int, err error)
 		return
 	}
 
-	//指定年的春节农历
 	tmpYearCjnl := fmt.Sprintf("%d-01-01", currentDataDay.Year())
-	//指定年的春节公历
 	tmpYearCjgl := solarlunar.LunarToSolar(tmpYearCjnl, false)
 
 	tmpYearCjglTime, tmpErr := time.ParseInLocation(utils.FormatDate, tmpYearCjgl, time.Local)
@@ -391,16 +361,12 @@ func getMoveDay(lastDataDay, currentDataDay time.Time) (moveDay int, err error)
 		return
 	}
 
-	// 将两个日期同步到同一年,然后计算两个日期相差的天数
 	tmpCurrentYearCjglTime := currentYearCjglTime.AddDate(currentDataDay.Year()-currentYear, 0, 0)
 	moveDay = utils.GetTimeSubDay(tmpYearCjglTime, tmpCurrentYearCjglTime)
 
 	return
 }
 
-// CjjxSub 计算超季节性值
-// 计算公式=现值-过去n年(包括今年)均值,n为取数个数,需大于等于1;
-// 举例:A指标  2022-10-13值100,2021-10-13值120,2020-10-13值110,设置n=3,则“超季节性”指标计算值为100-(100+120+110)/3=-10。
 func CjjxSub(currValue float64, pastValue []float64) (value string) {
 	num := len(pastValue)
 	if num == 0 {
@@ -409,7 +375,6 @@ func CjjxSub(currValue float64, pastValue []float64) (value string) {
 	numDecimal := decimal.NewFromInt(int64(num))
 
 	af := decimal.NewFromFloat(currValue)
-	//fmt.Println(af)
 
 	bf := decimal.NewFromFloat(pastValue[0])
 

+ 0 - 40
models/edb_data_calculate_correlation.go

@@ -13,7 +13,6 @@ import (
 	"time"
 )
 
-// AddCalculateCorrelation 扩散指数
 func AddCalculateCorrelation(req *EdbInfoCalculateBatchSaveReq, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error, errMsg string) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -54,7 +53,6 @@ func AddCalculateCorrelation(req *EdbInfoCalculateBatchSaveReq, edbCode, uniqueC
 	}
 
 	var edbInfoA, edbInfoB *EdbInfo
-	//关联关系
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
 	for _, v := range req.EdbInfoIdArr {
 		tmpEdbInfo, tmpErr := GetEdbInfoById(v.EdbInfoId)
@@ -104,13 +102,11 @@ func AddCalculateCorrelation(req *EdbInfoCalculateBatchSaveReq, edbCode, uniqueC
 		return
 	}
 
-	//计算数据
 	err, errMsg = refreshAllCalculateCorrelation(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfoA, edbInfoB, edbInfo.EdbCode, edbInfo.CalculateFormula)
 
 	return
 }
 
-// EditCalculateCorrelation 修改扩散指数数据
 func EditCalculateCorrelation(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq) (err error, errMsg string) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -121,7 +117,6 @@ func EditCalculateCorrelation(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditRe
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -136,14 +131,12 @@ func EditCalculateCorrelation(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditRe
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
@@ -152,7 +145,6 @@ func EditCalculateCorrelation(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditRe
 	}
 
 	var edbInfoA, edbInfoB *EdbInfo
-	//关联关系
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
 	for _, v := range req.EdbInfoIdArr {
 		tmpEdbInfo, tmpErr := GetEdbInfoById(v.EdbInfoId)
@@ -202,7 +194,6 @@ func EditCalculateCorrelation(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditRe
 		return
 	}
 
-	//计算数据
 	err, errMsg = refreshAllCalculateCorrelation(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfoA, edbInfoB, edbInfo.EdbCode, edbInfo.CalculateFormula)
 
 	return
@@ -244,13 +235,11 @@ func RefreshAllCalculateCorrelation(edbInfo *EdbInfo) (err error, errMsg string)
 		}
 	}()
 
-	// 计算数据
 	err, errMsg = refreshAllCalculateCorrelation(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfoA, edbInfoB, edbInfo.EdbCode, edbInfo.CalculateFormula)
 
 	return
 }
 
-// CorrelationConfig 扩散指数配置
 type CorrelationConfig struct {
 	DateType  int      `description:"扩散指标日期;1:全部指标日期并集;2:部分指标日期并集"`
 	CheckList []string `description:"选中的数据,A,B,C"`
@@ -265,17 +254,14 @@ type EdbCalculateFormula struct {
 	CalculateUnit      string `description:"计算频度"`
 }
 
-// refreshAllCalculateCorrelation 刷新扩散指数数据
 func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource int, edbInfoA, edbInfoB *EdbInfo, edbCode, calculateFormula string) (err error, errMsg string) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	tableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_CORRELATION, utils.DATA_SUB_SOURCE_EDB)
 
-	//获取扩散指数指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return
 	}
-	//计算指标的map
 	existDataMap := make(map[string]*EdbData, 0)
 	removeDateMap := make(map[string]string)
 	for _, v := range existDataList {
@@ -283,7 +269,6 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 		removeDateMap[v.DataTime] = ``
 	}
 	var correlationConf EdbCalculateFormula
-	//fmt.Println("calculateFormula:", calculateFormula)
 	err = json.Unmarshal([]byte(calculateFormula), &correlationConf)
 	if err != nil {
 		return
@@ -311,9 +296,7 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 		}
 		currVal, _ := decimal.NewFromFloat(val).Round(4).Float64()
 
-		// 判断扩散指数指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {
-			// 处理扩散指数数据的值
 			existValStr := existData.Value
 			existValDeci, tmpErr := decimal.NewFromString(existValStr)
 			if tmpErr != nil {
@@ -321,7 +304,6 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 				return
 			}
 			existVal, _ := existValDeci.Round(4).Float64()
-			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
 				if err != nil {
@@ -329,7 +311,6 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 				}
 			}
 		} else {
-			// 直接入库
 			timestamp := currDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
 			addSql += GetAddSql(edbInfoIdStr, edbCode, currDateStr, timestampStr, fmt.Sprint(currVal))
@@ -339,7 +320,6 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 		delete(removeDateMap, currDateStr)
 	}
 
-	// 数据入库
 	{
 
 		if isAdd {
@@ -347,7 +327,6 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 			err = to.Exec(addSql).Error
 		}
 
-		// 移除不存在的日期数据
 		if len(removeDateMap) > 0 {
 			removeDateList := make([]string, 0) //需要移除的日期
 			for k := range removeDateMap {
@@ -367,22 +346,18 @@ func refreshAllCalculateCorrelation(to *gorm.DB, edbInfoId, source, subSource in
 	return
 }
 
-// GetRollingCorrelationChartDataByEdbInfo 滚动相关性计算
 func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *EdbInfo, leadValue int, leadUnit string, calculateValue int, calculateUnit string, startDate, endDate string) (dateData map[string]float64, err error) {
 	dateData = make(map[string]float64)
 
-	// 计算窗口,不包含第一天
 	startDateTime, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
 	startDate = startDateTime.AddDate(0, 0, 1).Format(utils.FormatDate)
 
 	baseEdbInfo := edbInfoMappingA
 	changeEdbInfo := edbInfoMappingB
 
-	// 获取时间基准指标在时间区间内的值
 	aDataList := make([]*EdbInfoSearchData, 0)
 	switch baseEdbInfo.EdbInfoType {
 	case 0:
-		//获取来源指标的数据
 		aDataList, err = GetEdbDataListAll(baseEdbInfo.Source, baseEdbInfo.SubSource, FindEdbDataListAllCond{
 			EdbInfoId: baseEdbInfo.EdbInfoId,
 		}, 1)
@@ -393,11 +368,9 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *E
 		return
 	}
 
-	// 获取变频指标所有日期的值, 插值法完善数据
 	bDataList := make([]*EdbInfoSearchData, 0)
 	switch changeEdbInfo.EdbInfoType {
 	case 0:
-		//获取来源指标的数据
 		bDataList, err = GetEdbDataListAll(changeEdbInfo.Source, changeEdbInfo.SubSource, FindEdbDataListAllCond{
 			EdbInfoId: changeEdbInfo.EdbInfoId,
 		}, 1)
@@ -408,16 +381,13 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *E
 		return
 	}
 
-	// 数据平移变频指标领先/滞后的日期(单位天)
 	frequencyDaysMap := map[string]int{
 		"天": 1, "周": 7, "月": 30, "季": 90, "年": 365,
 	}
-	// 2023-03-17 时间序列始终以指标A为基准, 始终是B进行平移
 	baseDataMap := make(map[string]float64)
 	changeDataList := make([]*EdbInfoSearchData, 0)
 	changeDataMap := make(map[string]float64)
 
-	// A指标不管三七二十一,先变个频再说
 	{
 		_, e := HandleDataByLinearRegression(aDataList, baseDataMap)
 		if e != nil {
@@ -425,7 +395,6 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *E
 			return
 		}
 	}
-	// A指标不管三七二十一,先变个频再说
 	{
 		tmpNewChangeDataList, e := HandleDataByLinearRegression(bDataList, changeDataMap)
 		if e != nil {
@@ -434,15 +403,12 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *E
 		}
 		changeDataList = tmpNewChangeDataList
 
-		// 平移下日期
 		moveUnitDays := frequencyDaysMap[leadUnit]
 		_, changeDataMap = MoveDataDaysToNewDataList(changeDataList, leadValue*moveUnitDays)
 	}
 
-	// 计算计算时,需要多少个日期内数据
 	calculateDay := frequencyDaysMap[calculateUnit] * calculateValue
 
-	// 计算 每个日期的相关性值
 	{
 		startDateTime, _ := time.ParseInLocation(utils.FormatDate, startDate, time.Local)
 		endDateTime, _ := time.ParseInLocation(utils.FormatDate, baseEdbInfo.EndDate, time.Local)
@@ -450,7 +416,6 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *E
 
 		for currDay := startDateTime; !currDay.After(endDateTime); currDay = currDay.AddDate(0, 0, 1) {
 			coordinateData := make([]utils.Coordinate, 0)
-			// 取出对应的基准日期的值
 			for i := 0; i < calculateDay; i++ {
 				iDay := currDay.AddDate(0, 0, i).Format(utils.FormatDate)
 				tmpCoordinate := utils.Coordinate{
@@ -460,7 +425,6 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *E
 				coordinateData = append(coordinateData, tmpCoordinate)
 			}
 
-			// 公式计算出领先/滞后频度对应点的相关性系数
 			var ratio float64
 			if len(coordinateData) > 0 {
 				ratio = utils.ComputeCorrelation(coordinateData)
@@ -471,7 +435,6 @@ func GetRollingCorrelationChartDataByEdbInfo(edbInfoMappingA, edbInfoMappingB *E
 	return
 }
 
-// MoveDataDaysToNewDataList 平移指标数据生成新的数据序列
 func MoveDataDaysToNewDataList(dataList []*EdbInfoSearchData, moveDay int) (newDataList []EdbInfoSearchData, dateDataMap map[string]float64) {
 	dateMap := make(map[time.Time]float64)
 	var minDate, maxDate time.Time
@@ -488,7 +451,6 @@ func MoveDataDaysToNewDataList(dataList []*EdbInfoSearchData, moveDay int) (newD
 		dateMap[currDate] = v.Value
 	}
 
-	// 处理领先、滞后数据
 	newDateMap := make(map[time.Time]float64)
 	for currDate, value := range dateMap {
 		newDate := currDate.AddDate(0, 0, moveDay)
@@ -497,14 +459,12 @@ func MoveDataDaysToNewDataList(dataList []*EdbInfoSearchData, moveDay int) (newD
 	minDate = minDate.AddDate(0, 0, moveDay)
 	maxDate = maxDate.AddDate(0, 0, moveDay)
 
-	// 获取日期相差日
 	dayNum := utils.GetTimeSubDay(minDate, maxDate)
 
 	for i := 0; i <= dayNum; i++ {
 		currDate := minDate.AddDate(0, 0, i)
 		tmpValue, ok := newDateMap[currDate]
 		if !ok {
-			//找不到数据,那么就用前面的数据吧
 			if len(newDataList)-1 < 0 {
 				tmpValue = 0
 			} else {

+ 0 - 17
models/edb_data_calculate_hbz.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateHbz 新增环比值指标
 func AddCalculateHbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string, formulaInt int) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -48,7 +47,6 @@ func AddCalculateHbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -84,13 +82,11 @@ func AddCalculateHbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateHbz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", formulaInt)
 
 	return
 }
 
-// EditCalculateHbz 环比值
 func EditCalculateHbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo, formulaInt int, oldCalculateFormula string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -101,7 +97,6 @@ func EditCalculateHbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -121,7 +116,6 @@ func EditCalculateHbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
@@ -131,14 +125,12 @@ func EditCalculateHbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	if count <= 0 {
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 		if err != nil {
 			return
 		}
-		//关联关系
 		{
 			calculateMappingItem := &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
@@ -163,20 +155,17 @@ func EditCalculateHbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 			}
 		}
 	}
-	//清空原有数据
 	sql := ` DELETE FROM edb_data_calculate_hbz WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//计算数据
 	err = refreshAllCalculateHbz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", formulaInt)
 
 	return
 }
 
-// RefreshAllCalculateHbz 刷新所有环比值数据
 func RefreshAllCalculateHbz(edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string, formulaInt int) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -187,15 +176,12 @@ func RefreshAllCalculateHbz(edbInfoId, source, subSource int, fromEdbInfo *EdbIn
 		}
 	}()
 
-	//计算数据
 	err = refreshAllCalculateHbz(to, edbInfoId, source, subSource, fromEdbInfo, edbCode, startDate, endDate, formulaInt)
 	return
 }
 
-// refreshAllCalculateHbz 刷新所有环比值数据
 func refreshAllCalculateHbz(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string, formulaInt int) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
@@ -212,7 +198,6 @@ func refreshAllCalculateHbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	fmt.Println("source:", source)
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 
 	if err != nil {
@@ -230,7 +215,6 @@ func refreshAllCalculateHbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	for i := 0; i < dataLen; i++ {
 		j := i + formulaInt
 		if j < dataLen {
-			//当期
 			currentItem := dataList[i]
 			preItem := dataList[j]
 			if currentItem != nil && preItem != nil {
@@ -273,7 +257,6 @@ func refreshAllCalculateHbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	return
 }
 
-// HbzDiv 环比值计算,current:当期,pre:上期 公式: (当期-上期)/上期
 func HbzDiv(current, pre float64) string {
 	if pre == 0 {
 		return ""

+ 0 - 22
models/edb_data_calculate_hcz.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateHcz 新增环差值指标
 func AddCalculateHcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string, formulaInt int) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -48,7 +47,6 @@ func AddCalculateHcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -84,13 +82,11 @@ func AddCalculateHcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateHcz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", formulaInt)
 
 	return
 }
 
-// EditCalculateHcz 修改环差值指标
 func EditCalculateHcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo, formulaInt int, oldCalculateFormula string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -101,7 +97,6 @@ func EditCalculateHcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -116,7 +111,6 @@ func EditCalculateHcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -131,14 +125,12 @@ func EditCalculateHcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	if count <= 0 {
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 		if err != nil {
 			return
 		}
-		//关联关系
 		{
 			calculateMappingItem := &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
@@ -163,20 +155,17 @@ func EditCalculateHcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 			}
 		}
 	}
-	//清空原有数据
 	sql := ` DELETE FROM edb_data_calculate_hcz WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//计算数据
 	err = refreshAllCalculateHcz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "", formulaInt)
 
 	return
 }
 
-// RefreshAllCalculateHcz 刷新所有环差值数据
 func RefreshAllCalculateHcz(edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string, formulaInt int) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -187,16 +176,13 @@ func RefreshAllCalculateHcz(edbInfoId, source, subSource int, fromEdbInfo *EdbIn
 		}
 	}()
 
-	//计算数据
 	err = refreshAllCalculateHcz(to, edbInfoId, source, subSource, fromEdbInfo, edbCode, startDate, endDate, formulaInt)
 	return
 }
 
-// refreshAllCalculateHcz 刷新所有环差值数据
 func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string, formulaInt int) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
-	//计算数据
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
 	}, 0)
@@ -213,7 +199,6 @@ func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	dataTableName := GetEdbDataTableName(source, subSource)
 	fmt.Println("dataTableName:", dataTableName)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -224,7 +209,6 @@ func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 		existDataMap[v.DataTime] = v.Value
 		removeDateMap[v.DataTime] = v.DataTime
 	}
-	//fmt.Println("existDataMap:", existDataMap)
 	addSql := ` INSERT INTO edb_data_calculate_hcz(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
 	existMap := make(map[string]string)
@@ -233,7 +217,6 @@ func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	for i := 0; i < dataLen; i++ {
 		j := i + formulaInt
 		if j < dataLen {
-			//当期
 			currentItem := dataList[i]
 			preItem := dataList[j]
 			if currentItem != nil && preItem != nil {
@@ -241,12 +224,10 @@ func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 				if _, ok := existMap[existKey]; !ok {
 
 					currentDate, _ := time.ParseInLocation(utils.FormatDate, currentItem.DataTime, time.Local)
-					//fmt.Println(currentDate)
 					timestamp := currentDate.UnixNano() / 1e6
 					timestampStr := fmt.Sprintf("%d", timestamp)
 					val := HczDiv(currentItem.Value, preItem.Value)
 					if val != "" {
-						// 有计算出来值,那么就从待删除指标中移除
 						delete(removeDateMap, currentItem.DataTime)
 
 						if existVal, findOk := existDataMap[currentItem.DataTime]; !findOk {
@@ -278,7 +259,6 @@ func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 		}
 	}
 
-	//fmt.Println(removeDateMap)
 	if len(removeDateMap) > 0 {
 		removeDateList := make([]string, 0) //需要移除的日期
 		for k := range removeDateMap {
@@ -286,7 +266,6 @@ func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 		}
 		removeDateStr := strings.Join(removeDateList, `","`)
 		removeDateStr = `"` + removeDateStr + `"`
-		//如果拼接指标变更了,那么需要删除所有的指标数据
 		tableName := GetEdbDataTableName(source, subSource)
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
@@ -299,7 +278,6 @@ func refreshAllCalculateHcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	return
 }
 
-// HczDiv 环差值计算,current:当期,pre:上期 公式:当期-上期
 func HczDiv(current, pre float64) string {
 	currentVal := decimal.NewFromFloat(current)
 	preVal := decimal.NewFromFloat(pre)

+ 0 - 54
models/edb_data_calculate_jp.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// CheckFrequency 判断是否可以降频
 func CheckFrequency(fromEdbFrequency, edbFrequency string) (ok bool) {
 	frequencyList := make([]string, 0)
 	switch fromEdbFrequency {
@@ -30,7 +29,6 @@ func CheckFrequency(fromEdbFrequency, edbFrequency string) (ok bool) {
 		return
 	}
 
-	// 如果存在,那么就标识不允许降频
 	if utils.InArrayByStr(frequencyList, edbFrequency) {
 		return
 	}
@@ -39,7 +37,6 @@ func CheckFrequency(fromEdbFrequency, edbFrequency string) (ok bool) {
 	return
 }
 
-// AddCalculateJp 降频
 func AddCalculateJp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -75,7 +72,6 @@ func AddCalculateJp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -112,13 +108,11 @@ func AddCalculateJp(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateJp(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, edbInfo.Frequency, edbInfo.CalculateFormula)
 
 	return
 }
 
-// EditCalculateJp 修改降频数据
 func EditCalculateJp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -129,7 +123,6 @@ func EditCalculateJp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -144,7 +137,6 @@ func EditCalculateJp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -159,21 +151,18 @@ func EditCalculateJp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -198,7 +187,6 @@ func EditCalculateJp(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateJp(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, edbInfo.Frequency, edbInfo.CalculateFormula)
 
 	return
@@ -214,18 +202,14 @@ func RefreshAllCalculateJp(edbInfoId, source, subSource int, fromEdbInfo *EdbInf
 		}
 	}()
 
-	// 计算数据
 	err = refreshAllCalculateJp(to, edbInfoId, source, subSource, fromEdbInfo, edbCode, edbFrequency, formula)
 
 	return
 }
 
-// refreshAllCalculateJp 刷新降频数据
 func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, edbFrequency, formula string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
-	//计算数据
-	//获取来源指标的数据
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
 	}, 1)
@@ -235,7 +219,6 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	var dateArr []string
 	dataMap := make(map[string]*EdbInfoSearchData)
 	fromDataMap := make(map[string]float64)
-	//来源指指标数据
 	for _, v := range dataList {
 		dateArr = append(dateArr, v.DataTime)
 		dataMap[v.DataTime] = v
@@ -243,17 +226,13 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	}
 	fmt.Println("source:", source)
 
-	// 获取已经入库的降频指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return
 	}
-	//计算指标的map
 	existDataMap := make(map[string]*EdbData)
 
-	// 已经入库的日期map
 	existDelDateMap := make(map[string]string)
-	//existDataMap := make(map[string]string, 0)
 	for _, v := range existDataList {
 		existDataMap[v.DataTime] = v
 		existDelDateMap[v.DataTime] = v.DataTime
@@ -273,32 +252,25 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	nextEndDate := utils.GetFrequencyEndDay(startDataTime, edbFrequency) // 下一个节点的日期
 	weekDayDataList := make([]float64, 0)
 	for tmpStartDataTime := startDataTime; !tmpStartDataTime.After(endDataTime); tmpStartDataTime = tmpStartDataTime.AddDate(0, 0, 1) {
-		// 将当前数据加入到 weekDayDataList
 		if tmpData, ok := dataMap[tmpStartDataTime.Format(utils.FormatDate)]; ok {
 			tmpValue := decimal.NewFromFloat(tmpData.Value)
 			tmpValueFloat, _ := tmpValue.Round(4).Float64()
 			weekDayDataList = append(weekDayDataList, tmpValueFloat)
 		}
 
-		// 日期处理过滤
 		switch edbFrequency {
 		case "周度":
 			if tmpStartDataTime.Weekday() != 5 {
-				//不是周五,代表需要进入下一个循环获取数据并计算
 				continue
 			} else {
-				//记录下一个结束节点的日期
 				nextEndDate = tmpStartDataTime.AddDate(0, 0, 7)
 			}
 		case "旬度":
 			nextDay := tmpStartDataTime.AddDate(0, 0, 1)
 			if nextDay.Day() != 1 && nextDay.Day() != 11 && nextDay.Day() != 21 {
-				//不是每月10、20、最后一天,代表需要进入下一个循环获取数据并计算
 				continue
 			} else {
-				//记录下一个结束节点的日期
 				if nextDay.Day() == 1 || nextDay.Day() == 11 {
-					//月初或者月末的时候,加10天就好了
 					nextEndDate = nextDay.AddDate(0, 0, 9)
 				} else {
 					tmpNextMonth := nextDay.AddDate(0, 1, 0)
@@ -308,27 +280,21 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		case "月度":
 			nextDay := tmpStartDataTime.AddDate(0, 0, 1)
 			if nextDay.Day() != 1 {
-				//不是每月最后一天,代表需要进入下一个循环获取数据并计算
 				continue
 			} else {
-				//记录下一个结束节点的日期
 				nextEndDate = nextDay.AddDate(0, 1, -1)
 			}
 		case "季度":
 			nextDay := tmpStartDataTime.AddDate(0, 0, 1)
 			if (nextDay.Month() == 1 || nextDay.Month() == 4 || nextDay.Month() == 7 || nextDay.Month() == 10) && nextDay.Day() == 1 {
-				//记录下一个结束节点的日期
 				nextEndDate = nextDay.AddDate(0, 3, -1)
 			} else {
-				//不是3,6,9,12 月份的最后一天,代表需要进入下一个循环获取数据并计算
 				continue
 			}
 		case "年度":
 			if tmpStartDataTime.Month() == 12 && tmpStartDataTime.Day() == 31 {
-				//记录下一个结束节点的日期
 				nextEndDate = tmpStartDataTime.AddDate(1, 0, 0)
 			} else {
-				//不是每年的12-31日,代表需要进入下一个循环获取数据并计算
 				continue
 			}
 		default:
@@ -336,18 +302,15 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 			return
 		}
 
-		// 本期的数据值
 		lenWeekDayDataList := len(weekDayDataList)
 		if lenWeekDayDataList <= 0 {
 			continue
 		}
 
-		// 当前时间段内的数据计算,得出实际值
 		var currVal float64
 		if formula == "期末值" { // 期末值,取区间最后一个日期的数据值
 			currVal = weekDayDataList[lenWeekDayDataList-1]
 		} else {
-			// 平均值 取区间平均值
 			sumValDeci := decimal.NewFromFloat(0)
 			for _, v := range weekDayDataList {
 				tmpValDeci := decimal.NewFromFloat(v)
@@ -359,9 +322,7 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 
 		tmpStartDataTimeStr := tmpStartDataTime.Format(utils.FormatDate)
 
-		// 判断降频指标是否存在数据
 		if existData, ok := existDataMap[tmpStartDataTimeStr]; ok {
-			// 处理降频数据的值
 			existValStr := existData.Value
 			existValDeci, tmpErr := decimal.NewFromString(existValStr)
 			if tmpErr != nil {
@@ -370,7 +331,6 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 			}
 
 			existVal, _ := existValDeci.Round(4).Float64()
-			// 判断降频数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
 				if err != nil {
@@ -378,32 +338,25 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				}
 			}
 
-			// 移除待删除的日期
 			delete(existDelDateMap, tmpStartDataTimeStr)
 		} else {
-			// 直接入库
 			timestamp := tmpStartDataTime.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
 			addSql += GetAddSql(edbInfoIdStr, edbCode, tmpStartDataTimeStr, timestampStr, fmt.Sprint(currVal))
 			isAdd = true
 
-			// 移除待删除的日期
 			delete(existDelDateMap, tmpStartDataTimeStr)
 		}
 
-		// 一轮结束后,数据清空
 		weekDayDataList = make([]float64, 0)
 	}
 
-	// 最后已有的日期处理完成后,需要对剩余不在时间段内的数据做处理
 	lenWeekDayDataList := len(weekDayDataList)
 	if lenWeekDayDataList > 0 {
-		// 当前时间段内的数据计算,得出实际值
 		var currVal float64
 		if formula == "期末值" {
 			currVal = weekDayDataList[lenWeekDayDataList-1]
 		} else {
-			// 平均值
 			sumValDeci := decimal.NewFromFloat(0)
 			for _, v := range weekDayDataList {
 				tmpValDeci := decimal.NewFromFloat(v)
@@ -414,9 +367,7 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		}
 		nextEndDateStr := nextEndDate.Format(utils.FormatDate)
 
-		// 判断降频指标是否存在数据
 		if existData, ok := existDataMap[nextEndDateStr]; ok {
-			// 处理降频数据的值
 			existValStr := existData.Value
 			existValDeci, tmpErr := decimal.NewFromString(existValStr)
 			if tmpErr != nil {
@@ -424,22 +375,18 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				return
 			}
 			existVal, _ := existValDeci.Round(4).Float64()
-			// 判断降频数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
 				if err != nil {
 					return err
 				}
 			}
-			// 移除待删除的日期
 			delete(existDelDateMap, nextEndDateStr)
 		} else {
-			// 直接入库
 			timestamp := nextEndDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
 			addSql += GetAddSql(edbInfoIdStr, edbCode, nextEndDate.Format(utils.FormatDate), timestampStr, fmt.Sprint(currVal))
 			isAdd = true
-			// 移除待删除的日期
 			delete(existDelDateMap, nextEndDate.Format(utils.FormatDate))
 		}
 	}
@@ -449,7 +396,6 @@ func refreshAllCalculateJp(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		err = to.Exec(addSql).Error
 	}
 
-	// 移除不存在的日期数据
 	if len(existDelDateMap) > 0 {
 		removeDateList := make([]string, 0) //需要移除的日期
 		for k := range existDelDateMap {

+ 0 - 24
models/edb_data_calculate_kszs.go

@@ -13,7 +13,6 @@ import (
 	"time"
 )
 
-// AddCalculateKszs 扩散指数
 func AddCalculateKszs(req *EdbInfoCalculateBatchSaveReq, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -53,7 +52,6 @@ func AddCalculateKszs(req *EdbInfoCalculateBatchSaveReq, edbCode, uniqueCode str
 		return
 	}
 
-	//关联关系
 	tagMap := make(map[string]int)
 	relationEdbInfoList := make([]*EdbInfo, 0)
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
@@ -89,13 +87,11 @@ func AddCalculateKszs(req *EdbInfoCalculateBatchSaveReq, edbCode, uniqueCode str
 		return
 	}
 
-	//计算数据
 	err = refreshAllCalculateKszs(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.CalculateFormula, tagMap)
 
 	return
 }
 
-// EditCalculateKszs 修改扩散指数数据
 func EditCalculateKszs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -106,7 +102,6 @@ func EditCalculateKszs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq) (err
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -121,14 +116,12 @@ func EditCalculateKszs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq) (err
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
@@ -136,7 +129,6 @@ func EditCalculateKszs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq) (err
 		return
 	}
 
-	//关联关系
 	tagMap := make(map[string]int)
 	relationEdbInfoList := make([]*EdbInfo, 0)
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
@@ -172,7 +164,6 @@ func EditCalculateKszs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq) (err
 		return
 	}
 
-	//计算数据
 	err = refreshAllCalculateKszs(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.CalculateFormula, tagMap)
 
 	return
@@ -199,24 +190,20 @@ func RefreshAllCalculateKszs(edbInfo *EdbInfo) (err error) {
 		}
 	}()
 
-	// 计算数据
 	err = refreshAllCalculateKszs(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.CalculateFormula, tagMap)
 
 	return
 }
 
-// KszsConfig 扩散指数配置
 type KszsConfig struct {
 	DateType  int      `description:"扩散指标日期;1:全部指标日期并集;2:部分指标日期并集"`
 	CheckList []string `description:"选中的数据,A,B,C"`
 }
 
-// refreshAllCalculateKszs 刷新扩散指数数据
 func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, relationEdbInfoList []*EdbInfo, edbCode, calculateFormula string, tagMap map[string]int) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	tableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_KSZS, utils.DATA_SUB_SOURCE_EDB)
 
-	// 获取扩散指标关联的指标id
 	checkEdbInfoIdMap := make(map[int]int)
 	{
 		var config KszsConfig
@@ -237,12 +224,10 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 		}
 	}
 
-	//获取扩散指数指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return
 	}
-	//计算指标的map
 	existDataMap := make(map[string]*EdbData, 0)
 	removeDateMap := make(map[string]string)
 	for _, v := range existDataList {
@@ -250,9 +235,7 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 		removeDateMap[v.DataTime] = ``
 	}
 
-	//获取来源指标的数据
 	relationEdbDataMap := make(map[int]map[string]float64)
-	// 获取选择指标的 需要数据的 开始日期和结束日期
 	var startDate, endDate time.Time
 	for _, v := range relationEdbInfoList {
 		tmpDataList, tmpErr := GetEdbDataListAllByTo(to, v.Source, v.SubSource, FindEdbDataListAllCond{
@@ -278,7 +261,6 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 					}
 				}
 			}
-			// 用上期的数据补充当期的数据处理
 			handleDataMap := make(map[string]float64)
 			err = HandleDataByPreviousData(tmpDataList, handleDataMap)
 			if err != nil {
@@ -294,7 +276,6 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 	for currDate := startDate.AddDate(0, 0, 1); !currDate.After(endDate); currDate = currDate.AddDate(0, 0, 1) {
 		currDateStr := currDate.Format(utils.FormatDate)
 
-		//环差指数列表
 		tmpValList := make([]float64, 0)
 		for _, dataMap := range relationEdbDataMap {
 			currVal, ok := dataMap[currDateStr]
@@ -329,9 +310,7 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 		}
 		currVal, _ := currValDeci.Div(decimal.NewFromInt(int64(lenTmpValList))).Round(4).Float64()
 
-		// 判断扩散指数指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {
-			// 处理扩散指数数据的值
 			existValStr := existData.Value
 			existValDeci, tmpErr := decimal.NewFromString(existValStr)
 			if tmpErr != nil {
@@ -339,7 +318,6 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 				return
 			}
 			existVal, _ := existValDeci.Round(4).Float64()
-			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
 				if err != nil {
@@ -347,7 +325,6 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 				}
 			}
 		} else {
-			// 直接入库
 			timestamp := currDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
 			addSql += GetAddSql(edbInfoIdStr, edbCode, currDateStr, timestampStr, fmt.Sprint(currVal))
@@ -362,7 +339,6 @@ func refreshAllCalculateKszs(to *gorm.DB, edbInfoId, source, subSource int, rela
 		err = to.Exec(addSql).Error
 	}
 
-	// 移除不存在的日期数据
 	if len(removeDateMap) > 0 {
 		removeDateList := make([]string, 0) //需要移除的日期
 		for k := range removeDateMap {

+ 0 - 52
models/edb_data_calculate_ljz.go

@@ -14,11 +14,9 @@ import (
 	"time"
 )
 
-// Ljz 累计值
 type Ljz struct {
 }
 
-// Add 添加
 func (obj Ljz) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	fromEdbInfo := params.FromEdbInfo
@@ -45,7 +43,6 @@ func (obj Ljz) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error,
 	}()
 
 	edbInfo = &EdbInfo{
-		//EdbInfoId:        0,
 		SourceName:       obj.GetSourceName(),
 		Source:           obj.GetSource(),
 		EdbCode:          edbCode,
@@ -86,7 +83,6 @@ func (obj Ljz) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error,
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := new(EdbInfoCalculateMapping)
 		calculateMappingItem.CreateTime = time.Now()
@@ -109,13 +105,11 @@ func (obj Ljz) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error,
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo, fromEdbInfo, edbInfo.EdbCode, "", edbInfo.Extra)
 
 	return
 }
 
-// Edit 编辑
 func (obj Ljz) Edit(params EditCalculateBatchParams) (err error, errMsg string) {
 	req := params.Req
 	edbInfo := params.EdbInfo
@@ -147,7 +141,6 @@ func (obj Ljz) Edit(params EditCalculateBatchParams) (err error, errMsg string)
 	if edbInfo.Frequency != req.Frequency || edbInfo.Extra != req.Extra {
 		isRecalculate = true
 	}
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -167,7 +160,6 @@ func (obj Ljz) Edit(params EditCalculateBatchParams) (err error, errMsg string)
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
@@ -175,7 +167,6 @@ func (obj Ljz) Edit(params EditCalculateBatchParams) (err error, errMsg string)
 	}
 	if count > 0 { // 指标未被替换,无需删除关联数据
 
-		// todo 频度被换了,需要重新计算
 		if isRecalculate {
 			err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo, fromEdbInfo, edbInfo.EdbCode, "", req.Extra)
 		}
@@ -183,21 +174,18 @@ func (obj Ljz) Edit(params EditCalculateBatchParams) (err error, errMsg string)
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Raw(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Raw(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -222,13 +210,11 @@ func (obj Ljz) Edit(params EditCalculateBatchParams) (err error, errMsg string)
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo, fromEdbInfo, edbInfo.EdbCode, "", edbInfo.Extra)
 
 	return
 }
 
-// Refresh 刷新
 func (obj Ljz) Refresh(params RefreshParams) (err error, errMsg string) {
 	calculateMapping, err := GetEdbInfoCalculateMappingDetail(params.EdbInfo.EdbInfoId)
 	if err != nil {
@@ -250,23 +236,19 @@ func (obj Ljz) Refresh(params RefreshParams) (err error, errMsg string) {
 		}
 	}()
 
-	// 计算数据
 	err = obj.refresh(to, params.EdbInfo.EdbInfoId, params.EdbInfo.Source, params.EdbInfo.SubSource, params.EdbInfo, fromEdbInfo, params.EdbInfo.EdbCode, params.StartDate, params.EdbInfo.Extra)
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj Ljz) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_LJZ
 }
 
-// GetSourceName 获取来源名称
 func (obj Ljz) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_LJZ
 }
 
-// GetEdbType 获取指标类型
 func (obj Ljz) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }
@@ -274,10 +256,8 @@ func (obj Ljz) GetEdbType() int {
 func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, fromEdbInfo *EdbInfo, edbCode, startDate string, extra string) (err error) {
 	dataTableName := GetEdbDataTableName(source, subSource)
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	var isWeekData bool // 是否周度数据,如果是周度数据的话,是需要变频的,最后结果还需要除以7
-	// 周度数据需要先变成日度的
 	if fromEdbInfo.Frequency == `周度` {
 		isWeekData = true
 	}
@@ -307,12 +287,6 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 		lastValType = lastValConfig.LastValType
 	}
 
-	//日度转周度:日期选周五,计算上周六到本周五的日度值的加总,最新日期为最新值对应的周五。
-	//日度转旬度:日期选每个旬的最后一天,计算当旬所有日度值的加总,最新日期为最新值对应当旬的最后一天。
-	//日度转月度:日期选每个月最后一天,计算当月所有日度值的加总,最新日期为最新值对应当月最后一天。
-	//日度转季度、年度:方法类似转月度。
-	//周度转月度/季度/年度:将周度值转成日度,空值用插值法插值,计算当月/当季/当年所有值的加总,然后除以7。
-	//月度转季度/年度: 当季/当年月度值相加。
 
 	dateList := make([]time.Time, 0)
 	valueMap := make(map[time.Time]float64)
@@ -343,10 +317,8 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 			lastNewDate = currTime
 		}
 
-		// 根据配置处理最新值, 1 表示均值填充
 		if lastValType == 1 {
 			lastItem := dataList[len(dataList)-1]
-			// 最后一天的累计值
 			initVal := valueMap[lastNewDate]
 			itemDate, tmpErr := time.ParseInLocation(utils.FormatDate, lastItem.DataTime, time.Local)
 			if tmpErr != nil {
@@ -354,11 +326,8 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 				return
 			}
 
-			//获取当季的总天数, 当季最后一天减去当季第一天
-			// 获取当年的总天数
 			startDateT := time.Date(itemDate.Year(), 1, 1, 0, 0, 0, 0, time.Local)
 			allDays := int(lastNewDate.Sub(startDateT).Hours() / 24)
-			//获取距离当年第一天的天数
 			days := int(itemDate.Sub(startDateT).Hours() / 24)
 
 			daysT := decimal.NewFromInt(int64(days))
@@ -405,10 +374,8 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 			lastNewDate = currTime
 		}
 
-		// 根据配置处理最新值, 1 表示均值填充
 		if lastValType == 1 {
 			lastItem := dataList[len(dataList)-1]
-			// 最后一天的累计值
 			initVal := valueMap[lastNewDate]
 			itemDate, tmpErr := time.ParseInLocation(utils.FormatDate, lastItem.DataTime, time.Local)
 			if tmpErr != nil {
@@ -416,11 +383,9 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 				return
 			}
 
-			//获取上半年或者下半年的总天数, 半年度最后一天减去半年度第一天
 			startDateT := lastNewDate.AddDate(0, -6, 0)
 			allDays := int(lastNewDate.Sub(startDateT).Hours() / 24)
 
-			//获取距离半年度第一天的天数
 			days := int(itemDate.Sub(startDateT).Hours() / 24)
 
 			daysT := decimal.NewFromInt(int64(days))
@@ -471,10 +436,8 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 			lastNewDate = currTime
 		}
 
-		// 根据配置处理最新值, 1 表示均值填充
 		if lastValType == 1 {
 			lastItem := dataList[len(dataList)-1]
-			// 最后一天的累计值
 			initVal := valueMap[lastNewDate]
 			itemDate, tmpErr := time.ParseInLocation(utils.FormatDate, lastItem.DataTime, time.Local)
 			if tmpErr != nil {
@@ -482,10 +445,8 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 				return
 			}
 
-			//获取当季的总天数, 当季最后一天减去当季第一天
 			startDateT := lastNewDate.AddDate(0, -3, 0)
 			allDays := int(lastNewDate.Sub(startDateT).Hours() / 24)
-			//获取距离当季第一天的天数
 			days := int(itemDate.Sub(startDateT).Hours() / 24)
 
 			daysT := decimal.NewFromInt(int64(days))
@@ -530,10 +491,8 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 			lastNewDate = currTime
 		}
 
-		// 根据配置处理最新值, 1 表示均值填充
 		if lastValType == 1 {
 			lastItem := dataList[len(dataList)-1]
-			// 最后一天的累计值
 			initVal := valueMap[lastNewDate]
 			itemDate, tmpErr := time.ParseInLocation(utils.FormatDate, lastItem.DataTime, time.Local)
 			if tmpErr != nil {
@@ -541,9 +500,7 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 				return
 			}
 
-			//获取当月的天数
 			monthDays := lastNewDate.Day()
-			//获取自然日的天数
 			days := itemDate.Day()
 
 			daysT := decimal.NewFromInt(int64(days))
@@ -564,7 +521,6 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 			dayInt := itemDate.Year()*100 + int(itemDate.Month())
 			var currTime time.Time
 			if itemDate.Day() <= 10 {
-				//本月上旬
 				tmpK := fmt.Sprint(dayInt, "10")
 				currTime, err = time.ParseInLocation(utils.FormatDateUnSpace, tmpK, time.Local)
 				if err != nil {
@@ -572,14 +528,12 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 				}
 
 			} else if itemDate.Day() <= 20 {
-				// 本月中旬
 				tmpK := fmt.Sprint(dayInt, "20")
 				currTime, err = time.ParseInLocation(utils.FormatDateUnSpace, tmpK, time.Local)
 				if err != nil {
 					return
 				}
 			} else {
-				// 本月下旬
 				currTime, err = time.ParseInLocation(utils.FormatYearMonthUnSpace, fmt.Sprint(dayInt), time.Local)
 				if err != nil {
 					return
@@ -609,7 +563,6 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 				return
 			}
 			var currTime time.Time
-			// 周六周日,这是下一个周五的数据
 			if itemDate.Weekday() == 0 {
 				currTime = itemDate.AddDate(0, 0, 5)
 			} else if itemDate.Weekday() == 6 {
@@ -633,7 +586,6 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 
 	}
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource)
 	if err != nil {
 		return err
@@ -664,9 +616,7 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 			saveValue = decimal.NewFromFloat(tmpVal).Round(4).String()
 		}
 
-		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 
 			if existVal != saveValue {
@@ -681,7 +631,6 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 			continue
 		}
 
-		// 库中不存在该日期的数据
 		timestamp := currTime.UnixNano() / 1e6
 		timeStr := fmt.Sprintf("%d", timestamp)
 		if _, existOk := needAddDateMap[currTime]; !existOk {
@@ -691,7 +640,6 @@ func (obj Ljz) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, f
 		needAddDateMap[currTime] = 1
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {

+ 0 - 30
models/edb_data_calculate_ljznczj.go

@@ -13,11 +13,9 @@ import (
 	"time"
 )
 
-// LjzNczj 累计值年初至今
 type LjzNczj struct {
 }
 
-// Add 添加
 func (obj LjzNczj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	fromEdbInfo := params.FromEdbInfo
@@ -44,7 +42,6 @@ func (obj LjzNczj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err er
 	}()
 
 	edbInfo = &EdbInfo{
-		//EdbInfoId:        0,
 		SourceName:       obj.GetSourceName(),
 		Source:           obj.GetSource(),
 		EdbCode:          edbCode,
@@ -84,7 +81,6 @@ func (obj LjzNczj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err er
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := new(EdbInfoCalculateMapping)
 		calculateMappingItem.CreateTime = time.Now()
@@ -107,13 +103,11 @@ func (obj LjzNczj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err er
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo, fromEdbInfo, edbInfo.EdbCode, "")
 
 	return
 }
 
-// Edit 编辑
 func (obj LjzNczj) Edit(params EditCalculateBatchParams) (err error, errMsg string) {
 	req := params.Req
 	edbInfo := params.EdbInfo
@@ -146,7 +140,6 @@ func (obj LjzNczj) Edit(params EditCalculateBatchParams) (err error, errMsg stri
 	if edbInfo.Frequency != req.Frequency {
 		isRecalculate = true
 	}
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -165,7 +158,6 @@ func (obj LjzNczj) Edit(params EditCalculateBatchParams) (err error, errMsg stri
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
@@ -173,7 +165,6 @@ func (obj LjzNczj) Edit(params EditCalculateBatchParams) (err error, errMsg stri
 	}
 	if count > 0 { // 指标未被替换,无需删除关联数据
 
-		// 频度被换了,需要重新计算
 		if isRecalculate {
 			err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo, fromEdbInfo, edbInfo.EdbCode, "")
 		}
@@ -181,21 +172,18 @@ func (obj LjzNczj) Edit(params EditCalculateBatchParams) (err error, errMsg stri
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -220,13 +208,11 @@ func (obj LjzNczj) Edit(params EditCalculateBatchParams) (err error, errMsg stri
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, edbInfo, fromEdbInfo, edbInfo.EdbCode, "")
 
 	return
 }
 
-// Refresh 刷新
 func (obj LjzNczj) Refresh(params RefreshParams) (err error, errMsg string) {
 	calculateMapping, err := GetEdbInfoCalculateMappingDetail(params.EdbInfo.EdbInfoId)
 	if err != nil {
@@ -248,23 +234,19 @@ func (obj LjzNczj) Refresh(params RefreshParams) (err error, errMsg string) {
 		}
 	}()
 
-	// 计算数据
 	err = obj.refresh(to, params.EdbInfo.EdbInfoId, params.EdbInfo.Source, params.EdbInfo.SubSource, params.EdbInfo, fromEdbInfo, params.EdbInfo.EdbCode, params.StartDate)
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj LjzNczj) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_LJZNCZJ
 }
 
-// GetSourceName 获取来源名称
 func (obj LjzNczj) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_LJZNCZJ
 }
 
-// GetEdbType 获取指标类型
 func (obj LjzNczj) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }
@@ -272,10 +254,8 @@ func (obj LjzNczj) GetEdbType() int {
 func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInfo, fromEdbInfo *EdbInfo, edbCode, startDate string) (err error) {
 	dataTableName := GetEdbDataTableName(source, subSource)
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	var isWeekData bool // 是否周度数据,如果是周度数据的话,是需要变频的,最后结果还需要除以7
-	// 周度数据需要先变成日度的
 	if fromEdbInfo.Frequency == `周度` {
 		isWeekData = true
 	}
@@ -295,10 +275,6 @@ func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInf
 		}
 	}
 
-	//日度数据年初至今:日期同原日度数据。将每年1月1日(含)到日度数据所在日期含间的日度值,进行加总。
-	//周度数据年初至今:日期同原周度数据。将周度值转成日度频率,空值用插值法插值,然后算法同日度年度至今,再除以7
-	//月度/季度数据年初至今:日期同原月度/季度数据,将每年1月1日(含)到月度数据所在日期(含)之间的月度/季度值,进行加总
-	//以此类推
 
 	dateList := make([]time.Time, 0)
 	valueMap := make(map[time.Time]float64)
@@ -314,7 +290,6 @@ func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInf
 				return
 			}
 			var currTime time.Time
-			// 周六周日,这是下一个周五的数据
 			if itemDate.Weekday() == 0 {
 				currTime = itemDate.AddDate(0, 0, 5)
 			} else if itemDate.Weekday() == 6 {
@@ -360,7 +335,6 @@ func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInf
 
 	}
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource)
 	if err != nil {
 		return err
@@ -391,9 +365,7 @@ func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInf
 			saveValue = decimal.NewFromFloat(tmpVal).Round(4).String()
 		}
 
-		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 
 			if existVal != saveValue {
@@ -408,7 +380,6 @@ func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInf
 			continue
 		}
 
-		// 库中不存在该日期的数据
 		timestamp := currTime.UnixNano() / 1e6
 		timeStr := fmt.Sprintf("%d", timestamp)
 		if _, existOk := needAddDateMap[currTime]; !existOk {
@@ -418,7 +389,6 @@ func (obj LjzNczj) refresh(to *gorm.DB, edbInfoId, source, subSource int, edbInf
 		needAddDateMap[currTime] = 1
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {

+ 0 - 72
models/edb_data_calculate_ljztbpj.go

@@ -13,7 +13,6 @@ import (
 	"time"
 )
 
-// EdbDataCalculateLjztbpj 累计值同比拼接数据结构体
 type EdbDataCalculateLjztbpj struct {
 	EdbDataId     int       `gorm:"primaryKey;autoIncrement;column:edb_data_id"`
 	EdbInfoId     int       `gorm:"column:edb_info_id" description:"指标ID"`
@@ -26,7 +25,6 @@ type EdbDataCalculateLjztbpj struct {
 	DataTimestamp int64     `gorm:"column:modify_time" description:"数据日期时间戳"`
 }
 
-// AddCalculateLjztbpj 新增累计值同比拼接数据
 func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -36,20 +34,15 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 			to.Commit()
 		}
 	}()
-	//待拼接指标map
 	pjDataMap := make(map[string]float64)
 
-	//拼接指标的日期切片数据
 	pjEdbDataTimeList := make([]string, 0)
 
-	//最近开始的时间
 	var lastDateTime time.Time
-	//获取待拼接指标
 	{
 		var condition string
 		var pars []interface{}
 
-		//获取待拼接指标最近的个12月31日有值的年份
 		condition += " AND data_time like ? AND edb_info_id=? "
 		pars = append(pars, "%12-31", firstEdbInfo.EdbInfoId)
 
@@ -60,7 +53,6 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 		}
 		lastDateTime, _ = time.ParseInLocation(utils.FormatDate, lastEdbData.DataTime, time.Local)
 
-		//获取待拼接指标的数据列表
 		firstDataList, tmpErr := GetEdbDataListAllByTo(to, firstEdbInfo.Source, firstEdbInfo.SubSource, FindEdbDataListAllCond{
 			EdbInfoId:       firstEdbInfo.EdbInfoId,
 			EndDataTime:     lastEdbData.DataTime,
@@ -111,7 +103,6 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 		if err != nil {
 			return
 		}
-		//查询
 		tmpEdbInfo, tmpErr := GetEdbInfoById(edbInfo.EdbInfoId)
 		if tmpErr != nil {
 			err = tmpErr
@@ -125,7 +116,6 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 
 		edbInfo = tmpEdbInfo
 
-		//删除指标数据
 		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_LJZTBPJ, utils.DATA_SUB_SOURCE_EDB)
 		fmt.Println("dataTableName:" + dataTableName)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
@@ -135,15 +125,12 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 			return
 		}
 
-		//删除指标关系
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id=? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	}
 
-	//关联关系
 
 	var existItemA, existItemB *EdbInfoCalculateMapping
-	//拼接指标
 	{
 		existItemA = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -170,7 +157,6 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 
 	}
 
-	//同比值指标
 	{
 		existItemB = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -197,13 +183,11 @@ func AddCalculateLjztbpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, second
 
 	}
 
-	// 添加数据
 	err = refreshAllCalculateLjztbpj(to, edbInfo, existItemA, existItemB)
 
 	return
 }
 
-// EditCalculateLjztbpj 编辑累计值同比拼接数据
 func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo, secondEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -217,12 +201,10 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 	nowEdbInfo := *edbInfo // 现在的指标信息
 
 	sql := ``
-	//修改指标信息
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
 	edbInfo.Unit = req.Unit
 	edbInfo.ClassifyId = req.ClassifyId
-	//edbInfo.CalculateFormula = req.Formula
 	edbInfo.EdbNameEn = req.EdbNameEn
 	edbInfo.UnitEn = req.UnitEn
 	edbInfo.ModifyTime = time.Now()
@@ -231,7 +213,6 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 		return
 	}
 
-	//查询出所有的关联指标
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? "
@@ -251,18 +232,13 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 		}
 	}
 
-	// 是否需要删除数据重新计算
 	isNeedCalculateData := false
 
-	// 如果截止日期变更,那么需要重新计算
 	if req.Formula != nowEdbInfo.CalculateFormula {
 		isNeedCalculateData = true
 	}
 
-	//待拼接指标数据
-	//如果拼接指标变更了,那么需要删除所有的指标进行重新拼接
 	if existItemA.FromEdbInfoId != firstEdbInfo.EdbInfoId {
-		//删除之前的A指标关联关系
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? and from_edb_info_id = ?`
 		err = to.Exec(sql, edbInfo.EdbInfoId, existItemA.FromEdbInfoId).Error
 		if err != nil {
@@ -270,7 +246,6 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 			return
 		}
 
-		//添加新的指标关系
 		{
 			existItemA = &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
@@ -299,9 +274,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 		}
 	}
 
-	//同比值指标
 	if existItemB.FromEdbInfoId != secondEdbInfo.EdbInfoId {
-		//删除之前的B指标关联关系
 		sql = ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? and from_edb_info_id = ?`
 		err = to.Exec(sql, edbInfo.EdbInfoId, existItemB.FromEdbInfoId).Error
 		if err != nil {
@@ -309,7 +282,6 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 			return
 		}
 
-		//添加新的指标关系
 		{
 			existItemB = &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
@@ -339,9 +311,7 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 		}
 	}
 
-	// 如果需要重新计算,那么先删除所有的指标数据,然后再重新计算
 	if isNeedCalculateData {
-		// 删除之前所有的指标数据
 		tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 		sql = fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? `, tableName)
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
@@ -350,12 +320,10 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 			return
 		}
 
-		//获取待拼接指标最近一年的12月份日期
 		{
 			var condition string
 			var pars []interface{}
 
-			//获取待拼接指标最近的个12月31日有值的年份
 			condition += " AND data_time like ? AND edb_info_id=? "
 			pars = append(pars, "%12-31", firstEdbInfo.EdbInfoId)
 
@@ -376,14 +344,12 @@ func EditCalculateLjztbpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbIn
 			}
 
 		}
-		// 重新计算
 		err = refreshAllCalculateLjztbpj(to, edbInfo, existItemA, existItemB)
 	}
 
 	return
 }
 
-// RefreshAllCalculateLjztbpj 刷新所有 累计值同比拼接 数据
 func RefreshAllCalculateLjztbpj(edbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -394,7 +360,6 @@ func RefreshAllCalculateLjztbpj(edbInfo *EdbInfo) (err error) {
 		}
 	}()
 
-	//查询关联指标信息
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? "
@@ -413,20 +378,16 @@ func RefreshAllCalculateLjztbpj(edbInfo *EdbInfo) (err error) {
 			existItemB = existItem
 		}
 	}
-	// 刷新数据
 	err = refreshAllCalculateLjztbpj(to, edbInfo, existItemA, existItemB)
 	return
 }
 
-// refreshAllCalculateLjztbpj 刷新所有 累计值同比拼接 数据
 func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existItemB *EdbInfoCalculateMapping) (err error) {
-	//查询当前指标现有的数据
 	var condition string
 	var pars []interface{}
 	condition += " AND edb_info_id=? "
 	pars = append(pars, edbInfo.EdbInfoId)
 
-	//根据指标id获取全部的数据
 	var dataList []*EdbDataCalculateLjztbpj
 	sql := ` SELECT * FROM edb_data_calculate_ljztbpj WHERE edb_info_id=? ORDER BY data_time DESC `
 	err = to.Raw(sql, edbInfo.EdbInfoId).Scan(&dataList).Error
@@ -434,10 +395,8 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 		return err
 	}
 
-	//待拼接指标map
 	pjDataMap := make(map[string]float64)     //需要入库的数据
 	nowEdbDataMap := make(map[string]float64) //当前指标的数据(已经在库里了,不需要重新)
-	//拼接指标的日期切片数据
 	pjEdbDataTimeList := make([]string, 0)
 
 	dataMap := make(map[string]*EdbDataCalculateLjztbpj)
@@ -447,12 +406,9 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 		nowEdbDataMap[v.DataTime] = v.Value
 	}
 
-	// 原数据开始计算日期
 	startCalculationDate, _ := time.ParseInLocation(utils.FormatDate, edbInfo.CalculateFormula, time.Local)
 
-	//待拼接指标
 	{
-		//第一个指标的数据列表
 		firstDataList, tmpErr := GetEdbDataListAllByTo(to, existItemA.FromSource, existItemA.FromSubSource, FindEdbDataListAllCond{
 			EdbInfoId:       existItemA.FromEdbInfoId,
 			EndDataTime:     startCalculationDate.Format(utils.FormatDate),
@@ -463,10 +419,8 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 		}
 
 		for _, v := range firstDataList {
-			//时间戳
 			if edbData, ok := dataMap[v.DataTime]; ok {
 				if edbData.Value != v.Value {
-					//更新指标数据
 					edbData.Value = v.Value
 					_ = to.Model(edbData).Select([]string{"Value"}).Updates(edbData).Error
 				}
@@ -475,20 +429,15 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 				pjEdbDataTimeList = append(pjEdbDataTimeList, v.DataTime)
 			}
 
-			//将新的数据存入已入库指标map里面,以便后续计算
 			nowEdbDataMap[v.DataTime] = v.Value
 		}
 	}
 
-	//同比值指标map
 	tbzEdbDataMap := make(map[string]float64)
 
-	//同比值日期切片列表
 	tbzEdbDataTimeList := make([]string, 0)
 
-	//同比值指标
 	{
-		//第二个指标的数据列表
 		secondDataList, tmpErr := GetEdbDataListAllByTo(to, existItemB.FromSource, existItemB.FromSubSource, FindEdbDataListAllCond{
 			EdbInfoId:         existItemB.FromEdbInfoId,
 			StartDataTime:     startCalculationDate.Format(utils.FormatDate),
@@ -506,25 +455,20 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 
 	sort.Strings(tbzEdbDataTimeList)
 
-	// 遍历现有的数据,判断拼接指标中是否存在该日期数据,如果拼接指标无此数据,那么需要删除该日期数据(日期的判断:需要在开始计算日期之后)
 	removeDateList := make([]string, 0)
 	for nowEdbDate := range nowEdbDataMap {
 		nowEdbDateTime, _ := time.ParseInLocation(utils.FormatDate, nowEdbDate, time.Local)
-		//校验日期 需要 大于 拼接前日期
 		if startCalculationDate.Before(nowEdbDateTime) {
 			if _, ok := tbzEdbDataMap[nowEdbDate]; !ok {
-				// 同比指标中,不存在该日期数据,那么需要移除 现有数据 中该日期的数据
 				removeDateList = append(removeDateList, nowEdbDate)
 			}
 		}
 	}
 
-	//待修改的指标数据map(index:日期,value:值)
 	updateEdbDataMap := make(map[string]float64)
 	for _, v := range tbzEdbDataTimeList {
 		tbzDataTime, _ := time.ParseInLocation(utils.FormatDate, v, time.Local)
 
-		//获取拼接指标上一年同一天的数据
 		var pjDataTime time.Time
 		if tbzDataTime.Month() == 2 {
 			pjDataTime = tbzDataTime.AddDate(0, -11, 0)
@@ -533,9 +477,7 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 			pjDataTime = tbzDataTime.AddDate(-1, 0, 0)
 		}
 
-		//校验现有数据中,是否存在该日期的数据,如果存在的话,那么就要去校验 最新计算数据 与 现有数据 是否一致
 		if nowEdbDataValue, isHas := nowEdbDataMap[v]; isHas {
-			//获取去年今日的数据,获取到后,然后是去修改该日期的数据
 			if lastYearEdbDataValue, ok := nowEdbDataMap[pjDataTime.Format(utils.FormatDate)]; ok {
 
 				if v == "2021-08-31" {
@@ -544,40 +486,30 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 				tbzDataValue := tbzEdbDataMap[v] //同比值
 				currValue := lastYearEdbDataValue * (1 + tbzDataValue/100)
 				currValue, _ = decimal.NewFromFloat(currValue).Truncate(4).Float64() //保留4位小数
-				//如果计算出来的值与库里面的值不匹配,那么就去修改该值
 				if nowEdbDataValue != currValue {
-					//将计算后的数据存入待拼接指标map里面,以便后续计算
 					updateEdbDataMap[v] = currValue
 				}
 			}
 		} else {
-			//因为 现有数据中 不存在该日期数据,那么需要做新增数据处理
 
-			//如果去年今日存在该数据,那么就去计算当前的数据
 			if pjDataValue, ok := nowEdbDataMap[pjDataTime.Format(utils.FormatDate)]; ok {
 				tbzDataValue := tbzEdbDataMap[v] //同比值
 				currValue := pjDataValue * (1 + tbzDataValue/100)
 
 				currValue, _ = decimal.NewFromFloat(currValue).Truncate(4).Float64()
-				//将计算后的数据存入已入库指标map里面,以便后续计算
 				nowEdbDataMap[v] = currValue
 
-				//将计算后的数据存入待拼接指标map里面,以便后续入库
 				pjDataMap[v] = currValue
 				pjEdbDataTimeList = append(pjEdbDataTimeList, v)
 			}
 		}
 	}
 
-	//新增的数据入库
 	{
 		addDataList := make([]*EdbDataCalculateLjztbpj, 0)
-		//日期排序下
 		sort.Strings(pjEdbDataTimeList)
-		//这么做的目的是为了让数据插入的时候,可以正序插入(业务上没啥卵用,就是为了让我看数据的时候舒服点,手动狗头-_-|)
 		for _, dataTime := range pjEdbDataTimeList {
 			if dataValue, ok := pjDataMap[dataTime]; ok {
-				//时间戳
 				currentDate, _ := time.ParseInLocation(utils.FormatDate, dataTime, time.Local)
 				timestamp := currentDate.UnixNano() / 1e6
 
@@ -595,7 +527,6 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 			}
 		}
 
-		//数据入库
 		if len(addDataList) > 0 {
 			tmpErr := to.CreateInBatches(addDataList, 500).Error
 			if tmpErr != nil {
@@ -605,12 +536,10 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 		}
 	}
 
-	//删除已经不存在的累计同比拼接指标数据(由于同比值当日的数据删除了)
 	{
 		if len(removeDateList) > 0 {
 			removeDateStr := strings.Join(removeDateList, `","`)
 			removeDateStr = `"` + removeDateStr + `"`
-			//如果拼接指标变更了,那么需要删除所有的指标数据
 			tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 			sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
@@ -622,7 +551,6 @@ func refreshAllCalculateLjztbpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, exist
 		}
 	}
 
-	//修改现有的数据中对应的值
 	{
 		tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 		for edbDate, edbDataValue := range updateEdbDataMap {

+ 0 - 22
models/edb_data_calculate_ljzzj.go

@@ -13,11 +13,9 @@ import (
 	"time"
 )
 
-// Ljzzj 累计值转季度
 type Ljzzj struct {
 }
 
-// Add 添加
 func (obj Ljzzj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	fromEdbInfo := params.FromEdbInfo
@@ -61,7 +59,6 @@ func (obj Ljzzj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err erro
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := new(EdbInfoCalculateMapping)
 		calculateMappingItem.CreateTime = time.Now()
@@ -84,13 +81,11 @@ func (obj Ljzzj) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err erro
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// Edit 编辑
 func (obj Ljzzj) Edit(params EditCalculateBatchParams) (err error, errMsg string) {
 	req := params.Req
 	edbInfo := params.EdbInfo
@@ -111,7 +106,6 @@ func (obj Ljzzj) Edit(params EditCalculateBatchParams) (err error, errMsg string
 	}()
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -130,7 +124,6 @@ func (obj Ljzzj) Edit(params EditCalculateBatchParams) (err error, errMsg string
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
@@ -140,21 +133,18 @@ func (obj Ljzzj) Edit(params EditCalculateBatchParams) (err error, errMsg string
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -179,13 +169,11 @@ func (obj Ljzzj) Edit(params EditCalculateBatchParams) (err error, errMsg string
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// Refresh 刷新
 func (obj Ljzzj) Refresh(params RefreshParams) (err error, errMsg string) {
 	calculateMapping, err := GetEdbInfoCalculateMappingDetail(params.EdbInfo.EdbInfoId)
 	if err != nil {
@@ -207,23 +195,19 @@ func (obj Ljzzj) Refresh(params RefreshParams) (err error, errMsg string) {
 		}
 	}()
 
-	// 计算数据
 	err = obj.refresh(to, params.EdbInfo.EdbInfoId, params.EdbInfo.Source, params.EdbInfo.SubSource, fromEdbInfo, params.EdbInfo.EdbCode)
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj Ljzzj) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_LJZZJ
 }
 
-// GetSourceName 获取来源名称
 func (obj Ljzzj) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_LJZZJ
 }
 
-// GetEdbType 获取指标类型
 func (obj Ljzzj) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }
@@ -232,7 +216,6 @@ func (obj Ljzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbI
 	dataTableName := GetEdbDataTableName(source, subSource)
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
-	// 获取来源指标的数据
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource,
 		FindEdbDataListAllCond{
 			EdbInfoId: fromEdbInfo.EdbInfoId,
@@ -245,7 +228,6 @@ func (obj Ljzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbI
 	dataLen := len(dataList)
 	for i := 0; i < dataLen; i++ {
 		item := dataList[i]
-		//日其中获取年
 		itemDate, err := time.ParseInLocation(utils.FormatDate, item.DataTime, time.Local)
 		if err != nil {
 			return err
@@ -265,7 +247,6 @@ func (obj Ljzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbI
 	addSql := ` INSERT INTO ` + dataTableName + `(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -309,7 +290,6 @@ func (obj Ljzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbI
 							val, _ = a.Div(b).Float64()
 						}
 						if i == 2 {
-							//第1个季度无值:第1个季度=第2个季度/2
 							{
 								date = strconv.Itoa(yk) + "-03-31"
 								a := decimal.NewFromFloat(dataTwoItem.Value)
@@ -325,7 +305,6 @@ func (obj Ljzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbI
 									return tmpErr
 								}
 							}
-							//end 第1个季度无值
 
 							date = dataCurrentItem.DataTime
 							a := decimal.NewFromFloat(dataTwoItem.Value)
@@ -369,7 +348,6 @@ func (obj Ljzzj) refresh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbI
 func (obj Ljzzj) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to *gorm.DB) (newSql string, isAdd bool, err error) {
 	newSql = addSql
 	saveValue := utils.SubFloatToString(val, 4)
-	//判断数据是否存在
 	if existVal, ok := dataMap[date]; !ok {
 		dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
 		timestamp := dataTime.UnixNano() / 1e6

+ 0 - 19
models/edb_data_calculate_ljzzy.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateLjzzy 累计值转月
 func AddCalculateLjzzy(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -49,7 +48,6 @@ func AddCalculateLjzzy(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo,
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -85,13 +83,11 @@ func AddCalculateLjzzy(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo,
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateLjzzy(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "")
 
 	return
 }
 
-// EditCalculateLjzzy 编辑累计值转月数据
 func EditCalculateLjzzy(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -102,7 +98,6 @@ func EditCalculateLjzzy(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fro
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameEn = req.EdbNameEn
 	edbInfo.UnitEn = req.UnitEn
@@ -123,7 +118,6 @@ func EditCalculateLjzzy(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fro
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
@@ -133,21 +127,18 @@ func EditCalculateLjzzy(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fro
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM edb_data_calculate_ljzzy WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -172,13 +163,11 @@ func EditCalculateLjzzy(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fro
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateLjzzy(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "")
 
 	return
 }
 
-// RefreshAllCalculateLjzzy 刷新全部累计值转月数据
 func RefreshAllCalculateLjzzy(edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -189,7 +178,6 @@ func RefreshAllCalculateLjzzy(edbInfoId, source, subSource int, fromEdbInfo *Edb
 		}
 	}()
 
-	// 计算数据
 	err = refreshAllCalculateLjzzy(to, edbInfoId, source, subSource, fromEdbInfo, edbCode, startDate, endDate)
 
 	return
@@ -197,7 +185,6 @@ func RefreshAllCalculateLjzzy(edbInfoId, source, subSource int, fromEdbInfo *Edb
 
 func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource,
 		FindEdbDataListAllCond{
@@ -213,7 +200,6 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 	dataLen := len(dataList)
 	for i := 0; i < dataLen; i++ {
 		item := dataList[i]
-		//日其中获取年
 		itemDate, err := time.ParseInLocation(utils.FormatDate, item.DataTime, time.Local)
 		if err != nil {
 			return err
@@ -234,7 +220,6 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 	var isAdd bool
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -278,7 +263,6 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 							val, _ = a.Div(b).Float64()
 						}
 						if i == 2 {
-							//1月无值:1月=2月/2
 							{
 								date = strconv.Itoa(yk) + "-01-31"
 								a := decimal.NewFromFloat(dataTwoItem.Value)
@@ -294,7 +278,6 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 									return tmpErr
 								}
 							}
-							//end 1月无值
 
 							date = dataCurrentItem.DataTime
 							a := decimal.NewFromFloat(dataTwoItem.Value)
@@ -306,7 +289,6 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 					dataPreItem := yv[i-1]
 					if dataCurrentItem != nil && dataPreItem != nil {
 						date = dataCurrentItem.DataTime
-						//val =  dataCurrentItem.Value - dataPreItem.Value
 						a := decimal.NewFromFloat(dataCurrentItem.Value)
 						b := decimal.NewFromFloat(dataPreItem.Value)
 						val, _ = a.Sub(b).Float64()
@@ -339,7 +321,6 @@ func refreshAllCalculateLjzzy(to *gorm.DB, edbInfoId, source, subSource int, fro
 func calculateLjzzy(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to *gorm.DB) (newSql string, isAdd bool, err error) {
 	newSql = addSql
 	saveValue := utils.SubFloatToString(val, 4)
-	//判断数据是否存在
 	if existVal, ok := dataMap[date]; !ok {
 		dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
 		timestamp := dataTime.UnixNano() / 1e6

+ 0 - 32
models/edb_data_calculate_nh.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateNh 年化
 func AddCalculateNh(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -48,7 +47,6 @@ func AddCalculateNh(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -85,13 +83,11 @@ func AddCalculateNh(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edb
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateNh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// EditCalculateNh 修改年化数据
 func EditCalculateNh(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -102,7 +98,6 @@ func EditCalculateNh(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -117,7 +112,6 @@ func EditCalculateNh(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -132,21 +126,18 @@ func EditCalculateNh(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -171,7 +162,6 @@ func EditCalculateNh(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEd
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateNh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode)
 
 	return
@@ -187,23 +177,19 @@ func RefreshAllCalculateNh(edbInfoId, source, subSource int, fromEdbInfo *EdbInf
 		}
 	}()
 
-	// 计算数据
 	err = refreshAllCalculateNh(to, edbInfoId, source, subSource, fromEdbInfo, edbCode)
 
 	return
 }
 
-// refreshAllCalculateNh 刷新年化数据
 func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	tableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_NH, utils.DATA_SUB_SOURCE_EDB)
 
-	//获取年化指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return
 	}
-	//计算指标的map
 	existDataMap := make(map[string]*EdbData, 0)
 	removeDateMap := make(map[string]string)
 	for _, v := range existDataList {
@@ -211,9 +197,7 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		removeDateMap[v.DataTime] = ``
 	}
 
-	//计算数据
 
-	//获取来源指标的数据
 	fromDataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
 	}, 1)
@@ -221,7 +205,6 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		return err
 	}
 
-	// 插值法数据处理
 	handleDataMap := make(map[string]float64)
 	_, err = HandleDataByLinearRegression(fromDataList, handleDataMap)
 	if err != nil {
@@ -229,7 +212,6 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 	}
 
 	lenFromDataList := len(fromDataList)
-	// 如果来源指标没有数据,那么就直接返回得了
 	if lenFromDataList <= 0 {
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? `, tableName)
 
@@ -240,7 +222,6 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		}
 		return
 	}
-	// 每年的最后一天的数据值
 	yearLastValMap := make(map[int]float64)
 	startDataTime, _ := time.ParseInLocation(utils.FormatDate, fromDataList[0].DataTime, time.Local)
 	endDataTime, _ := time.ParseInLocation(utils.FormatDate, fromDataList[lenFromDataList-1].DataTime, time.Local)
@@ -253,13 +234,11 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 
 	addSql := ` INSERT INTO ` + tableName + ` (edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
-	//来源指指标数据
 	for _, v := range fromDataList {
 		currDateStr := v.DataTime
 		currDate, _ := time.ParseInLocation(utils.FormatDate, currDateStr, time.Local)
 
 		perValMap := make(map[time.Time]float64)
-		//前3年当日的数据
 		for i := 1; i <= 3; i++ {
 			tmpDateTime := currDate.AddDate(-i, 0, 0)
 			if tmpVal, ok := handleDataMap[tmpDateTime.Format(utils.FormatDate)]; ok {
@@ -267,21 +246,17 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 			}
 		}
 		lenPerValMap := len(perValMap)
-		// 如果数据少于2年,那么就不参与计算,结束当前循环,进入下一个循环
 		if lenPerValMap < 2 {
 			continue
 		}
 
-		// N年 当前值占全年比重 的值列表
 		divValList := make([]decimal.Decimal, 0)
 		for tmpDateTime, tmpVal := range perValMap {
 			yearLastVal, ok2 := yearLastValMap[tmpDateTime.Year()]
-			// 如果当年最后一天没有数据
 			if !ok2 {
 				continue
 			}
 
-			// 当前值占全年比重
 			tmpYearLastVal := decimal.NewFromFloat(yearLastVal)
 			if tmpYearLastVal.IsZero() { //如果是0,那么就退出当前循环,进入下一个循环
 				continue
@@ -291,7 +266,6 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		}
 
 		lenDivValList := len(divValList)
-		// 如果 N年 当前值占全年比重 的值 小于 2个,那么就不参与计算,结束当前循环,进入下一个循环
 		if lenDivValList < 2 {
 			continue
 		}
@@ -301,16 +275,13 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 			divValSum = divValSum.Add(divVal)
 		}
 
-		// 当前计算出来的结果
 		tmpDivVal := divValSum.Div(decimal.NewFromInt(int64(lenDivValList)))
 		if tmpDivVal.IsZero() { //如果是0,那么就退出当前循环,进入下一个循环
 			continue
 		}
 		currVal, _ := decimal.NewFromFloat(v.Value).Div(tmpDivVal).Round(4).Float64()
 
-		// 判断年化指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {
-			// 处理年化数据的值
 			existValStr := existData.Value
 			existValDeci, tmpErr := decimal.NewFromString(existValStr)
 			if tmpErr != nil {
@@ -318,7 +289,6 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				return
 			}
 			existVal, _ := existValDeci.Round(4).Float64()
-			// 判断年化数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
 				if err != nil {
@@ -326,7 +296,6 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 				}
 			}
 		} else {
-			// 直接入库
 			timestamp := currDate.UnixNano() / 1e6
 			timestampStr := fmt.Sprintf("%d", timestamp)
 			addSql += GetAddSql(edbInfoIdStr, edbCode, currDateStr, timestampStr, fmt.Sprint(currVal))
@@ -341,7 +310,6 @@ func refreshAllCalculateNh(to *gorm.DB, edbInfoId, source, subSource int, fromEd
 		err = to.Exec(addSql).Error
 	}
 
-	// 移除不存在的日期数据
 	if len(removeDateMap) > 0 {
 		removeDateList := make([]string, 0) //需要移除的日期
 		for k := range removeDateMap {

+ 0 - 72
models/edb_data_calculate_nhcc.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// EdbDataCalculateNhcc 拟合残差数据结构体
 type EdbDataCalculateNhcc struct {
 	EdbDataId     int       `gorm:"primaryKey;autoIncrement;column:edb_data_id"`
 	EdbInfoId     int       `gorm:"column:edb_info_id" description:"指标ID"`
@@ -25,13 +24,11 @@ type EdbDataCalculateNhcc struct {
 	DataTimestamp int64     `gorm:"column:data_timestamp" description:"数据日期时间戳"`
 }
 
-// NhccDate 拟合残差的开始、结束日期
 type NhccDate struct {
 	StartDate time.Time
 	EndDate   time.Time
 }
 
-// AddCalculateNhcc 新增拟合残差数据
 func AddCalculateNhcc(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdbInfo *EdbInfo, edbCode, uniqueCode string, nhccDate NhccDate, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error, errMsg string) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -75,7 +72,6 @@ func AddCalculateNhcc(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 		if err != nil {
 			return
 		}
-		//查询
 		tmpEdbInfo, tmpErr := GetEdbInfoById(edbInfo.EdbInfoId)
 		if tmpErr != nil {
 			err = tmpErr
@@ -89,7 +85,6 @@ func AddCalculateNhcc(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 
 		edbInfo = tmpEdbInfo
 
-		//删除指标数据
 		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_NHCC, utils.DATA_SUB_SOURCE_EDB)
 		fmt.Println("dataTableName:" + dataTableName)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
@@ -99,15 +94,12 @@ func AddCalculateNhcc(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 			return
 		}
 
-		//删除指标关系
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id=? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	}
 
-	//关联关系
 
 	var existItemA, existItemB *EdbInfoCalculateMapping
-	//第一个指标
 	{
 		existItemA = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -135,7 +127,6 @@ func AddCalculateNhcc(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 
 	}
 
-	//第二个指标
 	{
 		existItemB = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -163,13 +154,11 @@ func AddCalculateNhcc(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 
 	}
 
-	//拼接数据
 	err, errMsg = refreshAllCalculateNhcc(to, edbInfo, existItemA, existItemB, nhccDate)
 
 	return
 }
 
-// EditCalculateNhcc 编辑拟合残差数据
 func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo, secondEdbInfo *EdbInfo, nhccDate NhccDate) (err error, errMsg string) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -182,7 +171,6 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 
 	nowEdbInfo := *edbInfo // 现在的指标信息
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -202,7 +190,6 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 	existCondition += " AND edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId)
 
-	//查询出所有的关联指标
 	existList, err := GetEdbInfoCalculateListByCondition(existCondition, existPars)
 	if err != nil {
 		err = fmt.Errorf("判断指标是否改变失败,Err:" + err.Error())
@@ -218,18 +205,14 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 		}
 	}
 
-	// 是否需要删除数据重新计算
 	isNeedCalculateData := false
 
-	// 如果截止日期变更,那么需要重新计算
 	if req.Formula != nowEdbInfo.CalculateFormula {
 		isNeedCalculateData = true
 	}
 	var isDeleteA, isDeleteB bool
-	// 如果指标变了,那么需要删除关系
 	{
 		if existItemA.FromEdbInfoId != firstEdbInfo.EdbInfoId {
-			//删除之前的A指标关联关系
 			sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? and from_edb_info_id = ?`
 			err = to.Exec(sql, edbInfo.EdbInfoId, existItemA.FromEdbInfoId).Error
 			if err != nil {
@@ -238,9 +221,7 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 			}
 			isDeleteA = true
 		}
-		//并重新计算
 		if existItemB.FromEdbInfoId != secondEdbInfo.EdbInfoId {
-			//删除之前的B指标关联关系
 			sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? and from_edb_info_id = ?`
 			err = to.Exec(sql, edbInfo.EdbInfoId, existItemB.FromEdbInfoId).Error
 			if err != nil {
@@ -250,11 +231,8 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 			isDeleteB = true
 		}
 	}
-	//第一个指标数据
 	{
-		// 如果指标变了,那么需要删除关系,并重新计算
 		if isDeleteA {
-			//添加新的指标关系
 			{
 				existItemA = &EdbInfoCalculateMapping{
 					EdbInfoCalculateMappingId: 0,
@@ -283,7 +261,6 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 				isNeedCalculateData = true
 			}
 		} else if existItemA.MoveValue != req.EdbInfoIdArr[0].MoveValue {
-			// 如果平移天数不一致的话,
 			existItemA.ModifyTime = time.Now()
 			existItemA.MoveValue = req.EdbInfoIdArr[0].MoveValue
 			err = to.Model(existItemA).Select([]string{"ModifyTime", "MoveValue"}).Updates(existItemA).Error
@@ -294,11 +271,8 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 		}
 	}
 
-	//第二个指标数据
 	{
-		// 如果指标变了,那么需要删除关系,并重新计算
 		if isDeleteB {
-			// 添加新的指标关联关系
 			existItemB = &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
 				EdbInfoId:                 edbInfo.EdbInfoId,
@@ -325,7 +299,6 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 
 			isNeedCalculateData = true
 		} else if existItemB.MoveValue != req.EdbInfoIdArr[1].MoveValue {
-			// 如果平移天数不一致的话,
 			existItemB.ModifyTime = time.Now()
 			existItemB.MoveValue = req.EdbInfoIdArr[1].MoveValue
 			err = to.Model(existItemB).Select([]string{"ModifyTime", "MoveValue"}).Updates(existItemB).Error
@@ -336,9 +309,7 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 		}
 	}
 
-	// 如果需要重新计算,那么先删除所有的指标数据,然后再重新计算
 	if isNeedCalculateData {
-		// 删除之前所有的指标数据
 
 		tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? `, tableName)
@@ -354,7 +325,6 @@ func EditCalculateNhcc(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 	return
 }
 
-// RefreshAllCalculateNhcc 刷新所有 拟合残差 数据
 func RefreshAllCalculateNhcc(edbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -364,7 +334,6 @@ func RefreshAllCalculateNhcc(edbInfo *EdbInfo) (err error) {
 			to.Commit()
 		}
 	}()
-	//查询关联指标信息
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? "
@@ -400,15 +369,12 @@ func RefreshAllCalculateNhcc(edbInfo *EdbInfo) (err error) {
 		StartDate: startDate,
 		EndDate:   endDate,
 	}
-	// 刷新数据
 	err, _ = refreshAllCalculateNhcc(to, edbInfo, existItemA, existItemB, nhccDate)
 
 	return
 }
 
-// refreshAllCalculateNhcc 刷新所有 拟合残差 数据
 func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existItemB *EdbInfoCalculateMapping, nhccDate NhccDate) (err error, errMsg string) {
-	//查询当前指标现有的数据
 	var condition string
 	var pars []interface{}
 	condition += " AND edb_info_id=? "
@@ -436,7 +402,6 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		return
 	}
 
-	// 计算线性方程公式
 	var a, b float64
 	{
 		coordinateData := make([]utils.Coordinate, 0)
@@ -468,12 +433,9 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		err = errors.New(errMsg)
 		return
 	}
-	//fmt.Println("a:", a, ";======b:", b)
 
-	//计算B’
 	newBDataMap := make(map[string]float64)
 	{
-		//B’=aA+b
 		aDecimal := decimal.NewFromFloat(a)
 		bDecimal := decimal.NewFromFloat(b)
 		for _, aData := range aDataList {
@@ -484,17 +446,14 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 
 	}
 
-	// Delta=B-B‘
 	for _, bData := range secondDataList {
 		currDate := bData.DataTime
-		//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该元素
 		if _, ok := removeDataTimeMap[currDate]; ok {
 			delete(removeDataTimeMap, currDate)
 		}
 
 		b2Val, ok := newBDataMap[currDate]
 		if !ok {
-			// 如果B`不存在数据,那么就退出当前循环
 			continue
 		}
 		bDecimal := decimal.NewFromFloat(bData.Value)
@@ -502,7 +461,6 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 
 		val, _ := bDecimal.Sub(b2Decimal).Round(4).Float64()
 
-		// 判断之前有没有该数据
 		existData, ok := dataMap[currDate]
 		if !ok { //不存在那么就添加吧
 			currentDate, _ := time.ParseInLocation(utils.FormatDate, currDate, time.Local)
@@ -519,7 +477,6 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 			}
 			addDataList = append(addDataList, edbDataNhcc)
 		} else {
-			// 如果有的话,还需要判断值是否一致,一致则不处理,不一致则修改
 			if existData.Value != val {
 				existData.Value = val
 				_ = to.Model(existData).Select([]string{"Value"}).Updates(existData).Error
@@ -530,7 +487,6 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 	}
 
-	//删除已经不存在的拟合残差指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -538,7 +494,6 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 		removeNum := len(removeDateList)
 		if removeNum > 0 {
-			//如果拼接指标变更了,那么需要删除所有的指标数据
 			tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 			sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (`+utils.GetOrmInReplace(removeNum)+`) `, tableName)
 			err = to.Exec(sql, edbInfo.EdbInfoId, removeDateList).Error
@@ -549,7 +504,6 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 	}
 
-	//数据入库
 	if len(addDataList) > 0 {
 		tmpAddDataList := make([]*EdbDataCalculateNhcc, 0)
 		i := 0
@@ -576,10 +530,8 @@ func refreshAllCalculateNhcc(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 	return
 }
 
-// CalculateComputeCorrelation 计算相关性结果
 func CalculateComputeCorrelation(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdbInfo *EdbInfo, nhccDate NhccDate) (a, b, r float64, err error, errMsg string) {
 	var existItemA, existItemB *EdbInfoCalculateMapping
-	//第一个指标
 	{
 		existItemA = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -597,7 +549,6 @@ func CalculateComputeCorrelation(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo
 		}
 	}
 
-	//第二个指标
 	{
 		existItemB = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -623,13 +574,11 @@ func CalculateComputeCorrelation(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo
 			to.Commit()
 		}
 	}()
-	// 获取相关数据
 	_, _, aDataMap, bDataMap, nhccDate, err, errMsg := getNhccData(to, existItemA, existItemB, nhccDate)
 	if err != nil {
 		return
 	}
 
-	// 计算相关性
 	coordinateData := make([]utils.Coordinate, 0)
 	for i := nhccDate.StartDate; i.Before(nhccDate.EndDate) || i.Equal(nhccDate.EndDate); i = i.AddDate(0, 0, 1) {
 		dateStr := i.Format(utils.FormatDate)
@@ -651,24 +600,19 @@ func CalculateComputeCorrelation(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo
 		}
 		coordinateData = append(coordinateData, tmpCoordinate)
 	}
-	// 计算线性方程公式
 	a, b = utils.GetLinearResult(coordinateData)
 
-	// 计算相关性
 	r = utils.ComputeCorrelation(coordinateData)
 
 	return
 }
 
-// getNhccData 获取拟合残差需要的数据
 func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, nhccDate NhccDate) (aDataList []EdbInfoSearchData, secondDataList []*EdbInfoSearchData, aDataMap, bDataMap map[string]float64, newNhccDate NhccDate, err error, errMsg string) {
 	newNhccDate = nhccDate
-	//第一个指标
 	aDataList = make([]EdbInfoSearchData, 0)
 	aDataMap = make(map[string]float64)
 	{
 
-		//第一个指标的数据列表
 		firstDataList, tmpErr := GetEdbDataListAllByTo(to, existItemA.FromSource, existItemA.FromSubSource, FindEdbDataListAllCond{
 			EdbInfoId: existItemA.FromEdbInfoId,
 		}, 0)
@@ -680,13 +624,11 @@ func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, n
 
 	}
 
-	//第二个指标
 	bDataList := make([]EdbInfoSearchData, 0)
 	secondDataList = make([]*EdbInfoSearchData, 0)
 	bDataMap = make(map[string]float64)
 	{
 
-		//第二个指标的数据列表
 		secondDataList, err = GetEdbDataListAllByTo(to, existItemB.FromSource, existItemB.FromSubSource, FindEdbDataListAllCond{
 			EdbInfoId: existItemB.FromEdbInfoId,
 		}, 0)
@@ -706,7 +648,6 @@ func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, n
 		err = errors.New(errMsg)
 		return
 	}
-	// 拟合残差计算的开始日期判断
 	{
 		startAData := aDataList[0]
 		tmpStartDate, tmpErr := time.ParseInLocation(utils.FormatDate, startAData.DataTime, time.Local)
@@ -714,7 +655,6 @@ func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, n
 			err = tmpErr
 			return
 		}
-		// 如果A指标的最新数据日期晚于拟合残差的结束日期,那么就用A指标的最新数据日期
 		if tmpStartDate.After(newNhccDate.StartDate) {
 			newNhccDate.StartDate = tmpStartDate
 		}
@@ -724,12 +664,10 @@ func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, n
 			err = tmpErr
 			return
 		}
-		// 如果B指标的最新数据日期晚于拟合残差的结束日期,那么就用A指标的最新数据日期
 		if tmpStartDate.After(newNhccDate.StartDate) {
 			newNhccDate.StartDate = tmpStartDate
 		}
 	}
-	// 拟合残差计算的结束日期判断
 	{
 		endAData := aDataList[len(aDataList)-1]
 		tmpEndDate, tmpErr := time.ParseInLocation(utils.FormatDate, endAData.DataTime, time.Local)
@@ -737,7 +675,6 @@ func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, n
 			err = tmpErr
 			return
 		}
-		// 如果A指标的最新数据日期早于拟合残差的结束日期,那么就用A指标的最新数据日期
 		if tmpEndDate.Before(newNhccDate.EndDate) {
 			newNhccDate.EndDate = tmpEndDate
 		}
@@ -747,7 +684,6 @@ func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, n
 			err = tmpErr
 			return
 		}
-		// 如果B指标的最新数据日期早于拟合残差的结束日期,那么就用A指标的最新数据日期
 		if tmpEndDate.Before(newNhccDate.EndDate) {
 			newNhccDate.EndDate = tmpEndDate
 		}
@@ -756,7 +692,6 @@ func getNhccData(to *gorm.DB, existItemA, existItemB *EdbInfoCalculateMapping, n
 	return
 }
 
-// handleNhccData 处理拟合残差需要的数据
 func handleNhccData(dataList []*EdbInfoSearchData, moveDay int) (newDataList []EdbInfoSearchData, dateDataMap map[string]float64) {
 	dateMap := make(map[time.Time]float64)
 	var minDate, maxDate time.Time
@@ -773,34 +708,27 @@ func handleNhccData(dataList []*EdbInfoSearchData, moveDay int) (newDataList []E
 		dateMap[currDate] = v.Value
 	}
 
-	// 处理领先、滞后数据
 	newDateMap := make(map[time.Time]float64)
 	for currDate, value := range dateMap {
 		newDate := currDate.AddDate(0, 0, moveDay)
 		newDateMap[newDate] = value
 	}
 
-	// 开始平移天数
 	minDate = minDate.AddDate(0, 0, moveDay)
 	maxDate = maxDate.AddDate(0, 0, moveDay)
 
-	// 计算最早日期与最晚日期之间的相差天数
 	dayNum := utils.GetTimeSubDay(minDate, maxDate)
 
-	// 将最早日期与最晚日期之间不存在的日期进行数据补全(按前一期数据补充)
 	for i := 0; i <= dayNum; i++ {
 		currDate := minDate.AddDate(0, 0, i)
 		tmpValue, ok := newDateMap[currDate]
 		if !ok {
-			// 万一没有数据,那么就过滤当次循环
 			if len(newDataList) <= 0 {
 				continue
 			}
-			//找不到数据,那么就用前面的数据吧
 			tmpValue = newDataList[len(newDataList)-1].Value
 		}
 		tmpData := EdbInfoSearchData{
-			//EdbDataId: 0,
 			DataTime: currDate.Format(utils.FormatDate),
 			Value:    tmpValue,
 		}

+ 0 - 21
models/edb_data_calculate_nszydbpjjs.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateNszydpjjs N数值移动平均计算
 func AddCalculateNszydpjjs(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string, formulaInt int) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -48,7 +47,6 @@ func AddCalculateNszydpjjs(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbIn
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -84,12 +82,10 @@ func AddCalculateNszydpjjs(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbIn
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateNszydpjjs(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, formulaInt, fromEdbInfo, edbInfo.EdbCode, "")
 	return
 }
 
-// EditCalculateNszydpjjs 修改N数值移动平均计算
 func EditCalculateNszydpjjs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo, formulaInt int, oldCalculateFormula string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -100,7 +96,6 @@ func EditCalculateNszydpjjs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -120,7 +115,6 @@ func EditCalculateNszydpjjs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
@@ -134,14 +128,12 @@ func EditCalculateNszydpjjs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 	}
 
 	if count <= 0 {
-		// 需要删除原先的 计算指标关联的,基础指标的关联关系
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 		if err != nil {
 			return
 		}
 
-		// 添加新的关联关系
 		{
 			calculateMappingItem := &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
@@ -166,20 +158,17 @@ func EditCalculateNszydpjjs(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 			}
 		}
 	}
-	//清空原有数据
 	sql := ` DELETE FROM edb_data_calculate_nszydpjjs WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//计算数据
 	err = refreshAllCalculateNszydpjjs(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, formulaInt, fromEdbInfo, edbInfo.EdbCode, "")
 
 	return
 }
 
-// RefreshAllCalculateNszydpjjs 刷新全部N数值移动平均计算
 func RefreshAllCalculateNszydpjjs(edbInfoId, source, subSource, formulaInt int, fromEdbInfo *EdbInfo, edbCode, startDate string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -190,17 +179,14 @@ func RefreshAllCalculateNszydpjjs(edbInfoId, source, subSource, formulaInt int,
 		}
 	}()
 
-	//计算数据
 	err = refreshAllCalculateNszydpjjs(to, edbInfoId, source, subSource, formulaInt, fromEdbInfo, edbCode, startDate)
 	return
 }
 
-// refreshAllCalculateNszydpjjs 更新全部N数值移动平均计算
 func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, formulaInt int, fromEdbInfo *EdbInfo, edbCode, startDate string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	fmt.Println(edbInfoIdStr)
 	fmt.Println("refreshAllCalculateNszydpjjs startDate:", startDate)
-	//计算数据
 	var condition string
 	var pars []interface{}
 	condition += " AND edb_info_id=? "
@@ -219,7 +205,6 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 		removeDataTimeMap[v.DataTime] = 1
 	}
 
-	// 获取来源数据
 	fromDataList, err := GetEdbDataListAll(fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
 	}, 0)
@@ -227,7 +212,6 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 		fmt.Println("from GetEdbDataListAll Err:" + err.Error())
 		return err
 	}
-	//fmt.Println("fromPars:", fromPars)
 
 	var fromDateArr []string
 	fromDataMap := make(map[string]*EdbInfoSearchData)
@@ -242,7 +226,6 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 	arrLen := len(fromDateArr)
 	existAddDataMap := make(map[string]string)
 	for ak, av := range fromDateArr {
-		//处理第一个值
 		var valArr []float64
 		if findItem, ok := fromDataMap[av]; ok {
 			valArr = append(valArr, findItem.Value)
@@ -250,7 +233,6 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 			continue
 		}
 		if ak+1 != arrLen {
-			//处理除第一个值之外的N-1个值
 			for i := 1; i < formulaInt; i++ {
 				arrIndex := ak + i
 				if arrIndex >= arrLen {
@@ -265,7 +247,6 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 			}
 		}
 		valArrLen := len(valArr)
-		//var totalVal float64
 		totalVal := decimal.NewFromFloat(0.00)
 		for _, v := range valArr {
 			newDecimal := decimal.NewFromFloat(v)
@@ -289,7 +270,6 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 			}
 			existAddDataMap[av] = av
 		} else {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, av)
 
 			existValDecimal, err := decimal.NewFromString(existVal.Value)
@@ -306,7 +286,6 @@ func refreshAllCalculateNszydpjjs(to *gorm.DB, edbInfoId, source, subSource, for
 		}
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {

+ 0 - 42
models/edb_data_calculate_percentile.go

@@ -14,11 +14,9 @@ import (
 	"time"
 )
 
-// Percentile 百分位
 type Percentile struct {
 }
 
-// Add 添加
 func (obj Percentile) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	fromEdbInfo := params.FromEdbInfo
@@ -57,7 +55,6 @@ func (obj Percentile) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := new(EdbInfoCalculateMapping)
 		calculateMappingItem.CreateTime = time.Now()
@@ -80,13 +77,11 @@ func (obj Percentile) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err
 		}
 	}
 
-	//计算数据
 	err, errMsg = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// Edit 编辑
 func (obj Percentile) Edit(params EditCalculateBatchParams) (err error, errMsg string) {
 	req := params.Req
 	edbInfo := params.EdbInfo
@@ -104,7 +99,6 @@ func (obj Percentile) Edit(params EditCalculateBatchParams) (err error, errMsg s
 
 	oldEdbInfo := *edbInfo
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -124,35 +118,30 @@ func (obj Percentile) Edit(params EditCalculateBatchParams) (err error, errMsg s
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
 		return
 	}
 	if count > 0 { // 指标未被替换,无需处理逻辑
-		// 如果相关配置更改了,那么重新计算
 		if oldEdbInfo.CalculateFormula != edbInfo.CalculateFormula {
 			err, errMsg = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 		}
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -177,13 +166,11 @@ func (obj Percentile) Edit(params EditCalculateBatchParams) (err error, errMsg s
 		}
 	}
 
-	//计算数据
 	err, errMsg = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// Refresh 刷新
 func (obj Percentile) Refresh(params RefreshParams) (err error, errMsg string) {
 	calculateMapping, err := GetEdbInfoCalculateMappingDetail(params.EdbInfo.EdbInfoId)
 	if err != nil {
@@ -205,35 +192,29 @@ func (obj Percentile) Refresh(params RefreshParams) (err error, errMsg string) {
 		}
 	}()
 
-	// 计算数据
 	err, errMsg = obj.refresh(to, params.EdbInfo, fromEdbInfo, params.EdbInfo.EdbCode)
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj Percentile) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_PERCENTILE
 }
 
-// GetSourceName 获取来源名称
 func (obj Percentile) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_PERCENTILE
 }
 
-// GetEdbType 获取指标类型
 func (obj Percentile) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }
 
-// PercentileConfig 百分位的配置
 type PercentileConfig struct {
 	CalculateValue int    `description:"时间长度期数"`
 	CalculateUnit  string `description:"时间长度频度"`
 	PercentType    int    `description:"百分位:0-数据区间(兼容历史数据); 1-数据个数;"`
 }
 
-// refresh 刷新
 func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCode string) (err error, errMsg string) {
 	edbInfoId := edbInfo.EdbInfoId
 	dataTableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
@@ -245,13 +226,11 @@ func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCod
 		return
 	}
 
-	// 获取百分位的指标数据
 	fromDataList, err, errMsg := obj.getPercentileData(fromEdbInfo, percentileConfig.CalculateValue, percentileConfig.CalculateUnit, percentileConfig.PercentType)
 	if err != nil {
 		return
 	}
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource)
 	if err != nil {
 		return
@@ -273,13 +252,10 @@ func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCod
 			err = tmpErr
 			return
 		}
-		// 当前的实际值
 		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
 
 		existVal, ok := existDataMap[currDateStr]
-		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 
 			if existVal != saveValue {
@@ -294,7 +270,6 @@ func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCod
 			continue
 		}
 
-		// 库中不存在该日期的数据
 		timestamp := currTime.UnixNano() / 1e6
 		timeStr := fmt.Sprintf("%d", timestamp)
 		if _, existOk := needAddDateMap[currTime]; !existOk {
@@ -304,7 +279,6 @@ func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCod
 		needAddDateMap[currTime] = 1
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -337,7 +311,6 @@ func (obj Percentile) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo, edbCod
 func (obj Percentile) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, dataTableName, addSql string, val float64, dataMap, existDataMap map[string]string, to *gorm.DB) (newSql string, isAdd bool, err error) {
 	newSql = addSql
 	saveValue := utils.SubFloatToString(val, 4)
-	//判断数据是否存在
 	if existVal, ok := dataMap[date]; !ok {
 		dataTime, _ := time.ParseInLocation(utils.FormatDate, date, time.Local)
 		timestamp := dataTime.UnixNano() / 1e6
@@ -357,13 +330,10 @@ func (obj Percentile) calculate(edbInfoId int, date, edbInfoIdStr, edbCode, data
 	return
 }
 
-// GetPercentileData 获取百分位图表的指标数据
 func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int, calculateUnit string, percentType int) (newDataList []EdbInfoSearchData, err error, errMsg string) {
-	// 获取时间基准指标在时间区间内的值
 	dataList := make([]*EdbInfoSearchData, 0)
 	switch fromEdbInfo.EdbInfoType {
 	case 0:
-		//获取来源指标的数据
 		dataList, err = GetEdbDataListAll(fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 			EdbInfoId: fromEdbInfo.EdbInfoId,
 		}, 1)
@@ -381,7 +351,6 @@ func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int
 		return
 	}
 	calculateDay := calculateValue * moveUnitDays
-	// 指标对应的所有数据
 
 	newDataList = make([]EdbInfoSearchData, 0)
 
@@ -391,7 +360,6 @@ func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int
 		dataMap[currDateTime] = tmpData.Value
 	}
 
-	//百分位:对所选指标滚动地取对应时间长度的数据值,取最大值Max,最小值Min,计算Max-Min,百分位=(现值-Min)/(Max-Min),Max=Min时不予计算。
 	if percentType == utils.PercentCalculateTypeRange {
 		for i, tmpData := range dataList {
 			currDateTime, _ := time.ParseInLocation(utils.FormatDate, tmpData.DataTime, time.Local)
@@ -414,7 +382,6 @@ func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int
 			}
 			tmpV := (tmpData.Value - minVal) / (maxVal - minVal) * 100
 			tmpV, _ = decimal.NewFromFloat(tmpV).Round(4).Float64()
-			//百分位=(现值-Min)/(Max-Min)
 			newDataList = append(newDataList, EdbInfoSearchData{
 				EdbDataId: i,
 				DataTime:  dataList[i].DataTime,
@@ -422,20 +389,14 @@ func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int
 			})
 		}
 	}
-	// 百分位数据个数算法
-	// 数据区间第一个和最后一个数据点的时间和数据分别为(T1,S1)(T2,S2); N=T1到T2指标数据个数, n=小于等于S2的数据个数
-	// 个数百分位=(n-1)/(N-1)
 	maxDay := len(dataList) // 往前找数据的边界
 	if percentType == utils.PercentCalculateTypeNum {
 		for i, d := range dataList {
-			// T2为当前日期
 			s2 := decimal.NewFromFloat(d.Value)
 			t2, _ := time.ParseInLocation(utils.FormatDate, d.DataTime, time.Local)
 
-			// 计算N和n
 			var bigN, tinyN int
 			for k := 0; k < maxDay; k++ {
-				// 往前找(时间长度)个有数据的, N理论上只有最前面几个日期<calculateDay, 后面的N=calculateDay
 				if bigN >= calculateDay {
 					break
 				}
@@ -449,16 +410,13 @@ func (obj Percentile) getPercentileData(fromEdbInfo *EdbInfo, calculateValue int
 				}
 			}
 
-			// N<=1时说明计算无效
 			if bigN <= 1 {
 				continue
 			}
 			numerator := decimal.NewFromInt(int64(tinyN - 1))
 			denominator := decimal.NewFromInt(int64(bigN - 1))
-			// 因为是百分位所以这里是要*100, 跟之前的算法保持同步
 			percentVal, _ := numerator.Div(denominator).Mul(decimal.NewFromFloat(100)).Round(4).Float64()
 
-			// 写进数组并判断指标最大最小值
 			newDataList = append(newDataList, EdbInfoSearchData{
 				EdbDataId: i,
 				DataTime:  dataList[i].DataTime,

+ 0 - 41
models/edb_data_calculate_qjjs.go

@@ -124,7 +124,6 @@ func (obj CalculateRangeAnalysis) Add(params AddCalculateBatchParams) (edbInfo *
 		return
 	}
 
-	//关联关系
 	fromEdbInfo, e := GetEdbInfoById(req.FromEdbInfoId)
 	if e != nil {
 		err = fmt.Errorf("获取来源指标失败,Err:%s", e.Error())
@@ -152,7 +151,6 @@ func (obj CalculateRangeAnalysis) Add(params AddCalculateBatchParams) (edbInfo *
 		return
 	}
 
-	//计算数据
 	err, errMsg = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, edbInfo.CalculateFormula)
 
 	return
@@ -170,7 +168,6 @@ func (obj CalculateRangeAnalysis) Edit(params EditCalculateBatchParams) (err err
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -185,14 +182,12 @@ func (obj CalculateRangeAnalysis) Edit(params EditCalculateBatchParams) (err err
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
@@ -227,7 +222,6 @@ func (obj CalculateRangeAnalysis) Edit(params EditCalculateBatchParams) (err err
 		return
 	}
 
-	//计算数据
 	err, errMsg = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, edbInfo.CalculateFormula)
 
 	return
@@ -260,7 +254,6 @@ func (obj CalculateRangeAnalysis) Refresh(params RefreshParams) (err error, errM
 		}
 	}()
 
-	// 计算数据
 	err, errMsg = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, edbInfo.CalculateFormula)
 
 	return
@@ -270,12 +263,10 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	tableName := GetEdbDataTableName(obj.GetSource(), utils.DATA_SUB_SOURCE_EDB)
 
-	//获取扩散指数指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return
 	}
-	//计算指标的map
 	existDataMap := make(map[string]*EdbData, 0)
 	removeDateMap := make(map[string]string)
 	for _, v := range existDataList {
@@ -283,7 +274,6 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 		removeDateMap[v.DataTime] = ``
 	}
 	var rangeAnalysisConf RangeAnalysisCalculateFormula
-	//fmt.Println("calculateFormula:", calculateFormula)
 	err = json.Unmarshal([]byte(calculateFormula), &rangeAnalysisConf)
 	if err != nil {
 		err = fmt.Errorf("解析区间计算公式失败 %s", err.Error())
@@ -301,9 +291,7 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 	for _, item := range rangeAnalysisChartData {
 		currDateStr := item.DataTime
 		currVal := item.Value
-		// 判断扩散指数指标是否存在数据
 		if existData, ok := existDataMap[currDateStr]; ok {
-			// 处理扩散指数数据的值
 			existValStr := existData.Value
 			existValDeci, tmpErr := decimal.NewFromString(existValStr)
 			if tmpErr != nil {
@@ -311,7 +299,6 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 				return
 			}
 			existVal, _ := existValDeci.Round(4).Float64()
-			// 判断扩散指数数据的值 与 当前计算出来的结果, 如果两个数据结果不相等的话,那么就修改咯
 			if existVal != currVal {
 				err = ModifyEdbDataById(source, subSource, existData.EdbDataId, fmt.Sprint(currVal))
 				if err != nil {
@@ -319,7 +306,6 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 				}
 			}
 		} else {
-			// 直接入库
 			timestamp := item.DataTimestamp
 			timestampStr := fmt.Sprintf("%d", timestamp)
 			addSql += GetAddSql(edbInfoIdStr, edbCode, currDateStr, timestampStr, fmt.Sprint(currVal))
@@ -329,7 +315,6 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 		delete(removeDateMap, currDateStr)
 	}
 
-	// 数据入库
 	{
 
 		if isAdd {
@@ -337,7 +322,6 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 			err = to.Exec(addSql).Error
 		}
 
-		// 移除不存在的日期数据
 		if len(removeDateMap) > 0 {
 			removeDateList := make([]string, 0) //需要移除的日期
 			for k := range removeDateMap {
@@ -357,12 +341,10 @@ func (obj CalculateRangeAnalysis) refresh(to *gorm.DB, edbInfoId, source, subSou
 	return
 }
 
-// GetAutoCalculateDateDataList 获取当前时间相关的区间作为计算依据
 func GetAutoCalculateDateDataList(currentDate string, dataList []*EdbInfoSearchData, req RangeAnalysisCalculateFormula) (newDataList []*EdbInfoSearchData, err error) {
 	currentDateTime, _ := time.ParseInLocation(utils.FormatDate, currentDate, time.Local)
 	switch req.DateRangeType {
 	case 0:
-		// 智能划分得到一个开始日期,和结束日期
 		var startDateTime time.Time
 		if req.AutoDateConf.IsAutoStartDate == 0 { //固定设置
 			startDate := req.AutoDateConf.StartDate
@@ -398,7 +380,6 @@ func GetAutoCalculateDateDataList(currentDate string, dataList []*EdbInfoSearchD
 			calStartTime = startDateTime
 			calEndTime = currentDateTime
 		}
-		// 根据日期,获取数据
 		for _, vv := range dataList {
 			dataTimeT, _ := time.ParseInLocation(utils.FormatDate, vv.DataTime, time.Local)
 			if dataTimeT.After(calStartTime) && dataTimeT.Before(calEndTime) ||
@@ -411,7 +392,6 @@ func GetAutoCalculateDateDataList(currentDate string, dataList []*EdbInfoSearchD
 	return
 }
 
-// HandleDataByCalculateType 根据计算公式处理数据
 func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDateDataItem, originDataList []*EdbInfoSearchData, req RangeAnalysisCalculateFormula) (newList []*EdbInfoSearchData, err error) {
 	if len(originList) == 0 {
 		return
@@ -424,7 +404,6 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 			for _, item := range originList {
 				for _, v := range item.DataList {
 					sum = 0
-					//计算的数据返回需要重新确定
 					calDataList, e := GetAutoCalculateDateDataList(v.DataTime, originDataList, req)
 					if e != nil {
 						err = fmt.Errorf("获取区间数据失败:%s", e.Error())
@@ -465,7 +444,6 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 				sum = 0
 				for _, v := range item.DataList {
 					sum = 0
-					//计算的数据返回需要重新确定
 					calDataList, e := GetAutoCalculateDateDataList(v.DataTime, originDataList, req)
 					if e != nil {
 						err = fmt.Errorf("获取区间数据失败:%s", e.Error())
@@ -504,7 +482,6 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 			for _, item := range originList {
 				for _, v := range item.DataList {
 					var baseVal float64
-					//计算的数据返回需要重新确定
 					calDataList, e := GetAutoCalculateDateDataList(v.DataTime, originDataList, req)
 					if e != nil {
 						err = fmt.Errorf("获取区间数据失败:%s", e.Error())
@@ -588,7 +565,6 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						err = fmt.Errorf("time.ParseInLocation err: %v", e)
 						return
 					}
-					// 计算两个日期相差的天数
 					diff := tmpT.Sub(baseDateT).Hours() / 24 / 365
 					val := v.Value / baseVal
 					val = math.Pow(val, 1/diff) - 1
@@ -620,7 +596,6 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 						err = fmt.Errorf("time.ParseInLocation err: %v", e)
 						return
 					}
-					// 计算两个日期相差的天数
 					diff := tmpT.Sub(baseDateT).Hours() / 24 / 365
 					val := v.Value / baseVal
 					val = math.Pow(val, 1/diff) - 1
@@ -711,18 +686,14 @@ func HandleRangeAnalysisDataByCalculateType(originList []*ChartRangeAnalysisDate
 	return
 }
 
-// GetRangeAnalysisChartDataByEdbInfo 区间计算
 func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula RangeAnalysisCalculateFormula) (newDataList []*EdbInfoSearchData, err error) {
-	// 指标的开始日期和结束日期
 	edbStartDateTime, _ := time.ParseInLocation(utils.FormatDate, fromEdbInfo.StartDate, time.Local)
 	edbEndDateTime, _ := time.ParseInLocation(utils.FormatDate, fromEdbInfo.EndDate, time.Local)
 	edbEndDate := edbEndDateTime.Format(utils.FormatDate)
 
-	// 获取时间基准指标在时间区间内的值
 	dataList := make([]*EdbInfoSearchData, 0)
 	switch fromEdbInfo.EdbInfoType {
 	case 0:
-		//获取来源指标的数据
 		dataList, err = GetEdbDataListAll(fromEdbInfo.Source, fromEdbInfo.SubSource,
 			FindEdbDataListAllCond{
 				EdbInfoId: fromEdbInfo.EdbInfoId,
@@ -742,7 +713,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 	dateList := make([]*ChartRangeAnalysisDateDataItem, 0)
 	switch calculateFormula.DateRangeType {
 	case 0:
-		// 智能划分得到一个开始日期,和结束日期
 		var startDateTime, endDateTime time.Time
 		startDateTime = edbStartDateTime
 		if calculateFormula.AutoDateConf.IsAutoStartDate == 0 { //固定设置
@@ -758,7 +728,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 				err = fmt.Errorf("智能划分截止日期处理失败:请输入截止日期")
 				return
 			}
-			// todo 如果截止日期比指标日期还要大,则用指标的最新日期
 			endDateTime, _ = time.ParseInLocation(utils.FormatDate, endDate, time.Local)
 		} else {
 			endConf := calculateFormula.AutoDateConf.EndDateConf
@@ -780,7 +749,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 			StartDate: startDateTime,
 			EndDate:   endDateTime})
 	case 1:
-		// 手工划分得到多个开始日期和结束日期(已排序)
 		for _, v := range calculateFormula.ManualDateConf {
 			startDateT, _ := time.ParseInLocation(utils.FormatDate, v.StartDate, time.Local)
 			endDateT, _ := time.ParseInLocation(utils.FormatDate, v.EndDate, time.Local)
@@ -791,7 +759,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 			dateList = append(dateList, tmp)
 		}
 	case 2:
-		// 跨年划分得到多个开始日期和结束日期
 		startYear := edbStartDateTime.Year()
 		endYear := edbEndDateTime.Year()
 		startDay := calculateFormula.YearDateConf.StartDay
@@ -812,7 +779,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 			dateList = append(dateList, tmp)
 		}
 	}
-	// 根据日期,获取数据
 	for _, v := range dateList {
 		for _, vv := range dataList {
 			dataTimeT, _ := time.ParseInLocation(utils.FormatDate, vv.DataTime, time.Local)
@@ -823,7 +789,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 			}
 		}
 	}
-	// 根据时间区间类型来获取数据的计算窗口,然后再拼接成整段数据
 	newDataList, err = HandleRangeAnalysisDataByCalculateType(dateList, dataList, calculateFormula)
 	if err != nil {
 		return
@@ -847,7 +812,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 	}
 
 	if calculateFormula.DataConvertType > 0 {
-		// 数据转换类型 0不转, 1乘 2除 3对数
 		switch calculateFormula.DataConvertType {
 		case 1:
 			for i, v := range newDataList {
@@ -878,7 +842,6 @@ func GetRangeAnalysisChartDataByEdbInfo(fromEdbInfo *EdbInfo, calculateFormula R
 }
 
 func GetEdbDateByMoveForward(startDate string, moveForward int, edbDataList []*EdbInfoSearchData) (date string) {
-	// 根据日期进行排序
 	index := 0
 	length := len(edbDataList)
 	for i := length - 1; i >= 0; i-- {
@@ -899,7 +862,6 @@ func GetEdbDateByMoveForward(startDate string, moveForward int, edbDataList []*E
 	return
 }
 
-// HandleEdbDateChange 处理日期变换
 func HandleEdbDateChange(date string, dateChange []*EdbDataDateChangeConf) (newDate string, err error) {
 	newDate = date
 	if newDate != "" {
@@ -932,17 +894,14 @@ func HandleEdbDateChange(date string, dateChange []*EdbDataDateChangeConf) (newD
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj CalculateRangeAnalysis) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_RANGEANLYSIS
 }
 
-// GetSourceName 获取来源名称
 func (obj CalculateRangeAnalysis) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_RANGEANLYSIS
 }
 
-// GetEdbType 获取指标类型
 func (obj CalculateRangeAnalysis) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }

+ 0 - 22
models/edb_data_calculate_rjz.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateRjz 日均值
 func AddCalculateRjz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -48,7 +47,6 @@ func AddCalculateRjz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -85,13 +83,11 @@ func AddCalculateRjz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateRjz(to, edbInfo.EdbInfoId, edbInfo.Source, fromEdbInfo, edbCode, "", "")
 
 	return
 }
 
-// EditCalculateRjz 日均值
 func EditCalculateRjz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -102,7 +98,6 @@ func EditCalculateRjz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -116,7 +111,6 @@ func EditCalculateRjz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -131,19 +125,16 @@ func EditCalculateRjz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-	//清空原有数据
 	sql = ` DELETE FROM edb_data_calculate_rjz WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -168,13 +159,11 @@ func EditCalculateRjz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateRjz(to, edbInfo.EdbInfoId, edbInfo.Source, fromEdbInfo, edbInfo.EdbCode, "", "")
 
 	return
 }
 
-// RefreshAllCalculateRjz 刷新所有日均值数据
 func RefreshAllCalculateRjz(edbInfoId, source int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -185,15 +174,12 @@ func RefreshAllCalculateRjz(edbInfoId, source int, fromEdbInfo *EdbInfo, edbCode
 		}
 	}()
 
-	//计算数据
 	err = refreshAllCalculateRjz(to, edbInfoId, source, fromEdbInfo, edbCode, startDate, endDate)
 	return
 }
 
-// refreshAllCalculateRjz
 func refreshAllCalculateRjz(to *gorm.DB, edbInfoId, source int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	dataList, err := GetEdbDataListAll(fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId:         fromEdbInfo.EdbInfoId,
@@ -212,7 +198,6 @@ func refreshAllCalculateRjz(to *gorm.DB, edbInfoId, source int, fromEdbInfo *Edb
 	fmt.Println("source:", source)
 	dataTableName := GetEdbDataTableName(source, utils.DATA_SUB_SOURCE_EDB)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, 0)
 	if err != nil {
 		return err
@@ -228,12 +213,10 @@ func refreshAllCalculateRjz(to *gorm.DB, edbInfoId, source int, fromEdbInfo *Edb
 	for _, av := range dateArr {
 		currentItem := dataMap[av]
 		if currentItem != nil {
-			//当前日期
 			currentDate, err := time.ParseInLocation(utils.FormatDate, av, time.Local)
 			if err != nil {
 				return err
 			}
-			//根据频度计算需要均分的天数
 			days := GetRjzFrequencyDays(currentDate, fromEdbInfo.Frequency)
 			val := rjzDiv(currentItem.Value, days)
 
@@ -276,13 +259,11 @@ func GetRjzFrequencyDays(currDate time.Time, frequency string) (days int) {
 		if currDate.Day() <= 20 { // 1旬和2旬都是10天
 			days = 10
 		} else {
-			// 下旬,多种可能,最大天数可能存在8天,9天,10天,11天,
 			currT := time.Date(currDate.Year(), currDate.Month(), 20, 0, 0, 0, 0, time.Local)
 			nextT := time.Date(currDate.Year(), currDate.Month()+1, 1, 0, 0, 0, 0, time.Local).AddDate(0, 0, -1)
 			days = utils.GetTimeSubDay(currT, nextT)
 		}
 	case "月度":
-		//统计当月的天数
 		currMonthFd := time.Date(currDate.Year(), currDate.Month(), 1, 0, 0, 0, 0, time.Local)
 		nextMonthFd := time.Date(currDate.Year(), currDate.Month()+1, 1, 0, 0, 0, 0, time.Local)
 		days = utils.GetTimeSubDay(currMonthFd, nextMonthFd)
@@ -300,11 +281,9 @@ func GetRjzFrequencyDays(currDate time.Time, frequency string) (days int) {
 		} else if currDate.Month() < 10 { // 3季度
 			days = utils.GetTimeSubDay(curr2T, curr3T)
 		} else {
-			// 4季度
 			days = utils.GetTimeSubDay(curr3T, curr4T)
 		}
 	case "年度":
-		//统计当前年份的天数,明年1月1日-今天年1月1日
 		currentYearFd := time.Date(currDate.Year(), 1, 1, 0, 0, 0, 0, time.Local)
 		nextYearFd := currentYearFd.AddDate(1, 0, 0)
 		days = utils.GetTimeSubDay(currentYearFd, nextYearFd)
@@ -316,7 +295,6 @@ func GetRjzFrequencyDays(currDate time.Time, frequency string) (days int) {
 		if currDate.Month() <= 6 { // 上半年
 			days = utils.GetTimeSubDay(curr0T, curr1T)
 		} else {
-			// 下半年
 			days = utils.GetTimeSubDay(curr1T, curr2T)
 		}
 	default:

+ 0 - 28
models/edb_data_calculate_standard_deviation.go

@@ -14,11 +14,9 @@ import (
 	"time"
 )
 
-// StandardDeviation 标准差
 type StandardDeviation struct {
 }
 
-// Add 添加
 func (obj StandardDeviation) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	fromEdbInfo := params.FromEdbInfo
@@ -57,7 +55,6 @@ func (obj StandardDeviation) Add(params AddCalculateBatchParams) (edbInfo *EdbIn
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := new(EdbInfoCalculateMapping)
 		calculateMappingItem.CreateTime = time.Now()
@@ -80,13 +77,11 @@ func (obj StandardDeviation) Add(params AddCalculateBatchParams) (edbInfo *EdbIn
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// Edit 编辑
 func (obj StandardDeviation) Edit(params EditCalculateBatchParams) (err error, errMsg string) {
 	req := params.Req
 	edbInfo := params.EdbInfo
@@ -104,7 +99,6 @@ func (obj StandardDeviation) Edit(params EditCalculateBatchParams) (err error, e
 
 	oldEdbInfo := *edbInfo
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -124,35 +118,30 @@ func (obj StandardDeviation) Edit(params EditCalculateBatchParams) (err error, e
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
 		return
 	}
 	if count > 0 { // 指标未被替换,无需处理逻辑
-		// 如果相关配置更改了,那么重新计算
 		if oldEdbInfo.CalculateFormula != edbInfo.CalculateFormula {
 			err = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 		}
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -176,13 +165,11 @@ func (obj StandardDeviation) Edit(params EditCalculateBatchParams) (err error, e
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// Refresh 刷新
 func (obj StandardDeviation) Refresh(params RefreshParams) (err error, errMsg string) {
 	calculateMapping, err := GetEdbInfoCalculateMappingDetail(params.EdbInfo.EdbInfoId)
 	if err != nil {
@@ -204,23 +191,19 @@ func (obj StandardDeviation) Refresh(params RefreshParams) (err error, errMsg st
 		}
 	}()
 
-	// 计算数据
 	err = obj.refresh(to, params.EdbInfo, fromEdbInfo, params.EdbInfo.EdbCode)
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj StandardDeviation) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_STANDARD_DEVIATION
 }
 
-// GetSourceName 获取来源名称
 func (obj StandardDeviation) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_STANDARD_DEVIATION
 }
 
-// GetEdbType 获取指标类型
 func (obj StandardDeviation) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }
@@ -235,13 +218,11 @@ func (obj StandardDeviation) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo,
 		return
 	}
 
-	// 获取标准差图表的指标数据
 	fromDataList, err := obj.getStandardDeviationData(fromEdbInfo, calculateValue)
 	if err != nil {
 		return err
 	}
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource)
 	if err != nil {
 		return err
@@ -263,13 +244,10 @@ func (obj StandardDeviation) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo,
 			err = tmpErr
 			return
 		}
-		// 当前的实际值
 		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
 
 		existVal, ok := existDataMap[currDateStr]
-		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 
 			if existVal != saveValue {
@@ -284,7 +262,6 @@ func (obj StandardDeviation) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo,
 			continue
 		}
 
-		// 库中不存在该日期的数据
 		timestamp := currTime.UnixNano() / 1e6
 		timeStr := fmt.Sprintf("%d", timestamp)
 		if _, existOk := needAddDateMap[currTime]; !existOk {
@@ -294,7 +271,6 @@ func (obj StandardDeviation) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo,
 		needAddDateMap[currTime] = 1
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -324,13 +300,10 @@ func (obj StandardDeviation) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbInfo,
 	return
 }
 
-// GetStandardDeviationData 获取标准差图表的指标数据
 func (obj StandardDeviation) getStandardDeviationData(fromEdbInfo *EdbInfo, calculateValue int) (newDataList []EdbInfoSearchData, err error) {
-	// 获取时间基准指标在时间区间内的值
 	dataList := make([]*EdbInfoSearchData, 0)
 	switch fromEdbInfo.EdbInfoType {
 	case 0:
-		//获取来源指标的数据
 		dataList, err = GetEdbDataListAll(fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 			EdbInfoId: fromEdbInfo.EdbInfoId,
 		}, 1)
@@ -341,7 +314,6 @@ func (obj StandardDeviation) getStandardDeviationData(fromEdbInfo *EdbInfo, calc
 		return
 	}
 
-	// 指标对应的所有数据
 	newDataList = make([]EdbInfoSearchData, 0)
 	lenData := len(dataList)
 	if lenData >= calculateValue {

+ 0 - 24
models/edb_data_calculate_sum.go

@@ -16,7 +16,6 @@ import (
 type CalculateSum struct {
 }
 
-// Add 新增
 func (obj CalculateSum) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	edbCode := params.EdbCode
@@ -61,7 +60,6 @@ func (obj CalculateSum) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, e
 		return
 	}
 
-	//关联关系
 	tagMap := make(map[string]int)
 	relationEdbInfoList := make([]*EdbInfo, 0)
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
@@ -99,7 +97,6 @@ func (obj CalculateSum) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, e
 		return
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.Extra, tagMap, edbInfo.EmptyType)
 
 	return
@@ -126,7 +123,6 @@ func (obj CalculateSum) Edit(params EditCalculateBatchParams) (err error, errMsg
 		needCalculate = true
 	}
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -143,10 +139,7 @@ func (obj CalculateSum) Edit(params EditCalculateBatchParams) (err error, errMsg
 	if err != nil {
 		return
 	}
-	//判断是否重复指标
-	//edbInfoMap := make(map[int]string)
 	if !needCalculate {
-		//用到的指标
 		newEdbInfoIdArr := make([]string, 0)
 		for _, tmpEdbInfo := range req.EdbInfoIdArr {
 			newEdbInfoIdArr = append(newEdbInfoIdArr, strconv.Itoa(tmpEdbInfo.EdbInfoId))
@@ -169,14 +162,12 @@ func (obj CalculateSum) Edit(params EditCalculateBatchParams) (err error, errMsg
 	if !needCalculate {
 		return
 	}
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 		return
 	}
-	//清空原有数据
 	tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
@@ -184,7 +175,6 @@ func (obj CalculateSum) Edit(params EditCalculateBatchParams) (err error, errMsg
 		return
 	}
 
-	//关联关系
 	tagMap := make(map[string]int)
 	relationEdbInfoList := make([]*EdbInfo, 0)
 	calculateMappingItemList := make([]*EdbInfoCalculateMapping, 0)
@@ -221,7 +211,6 @@ func (obj CalculateSum) Edit(params EditCalculateBatchParams) (err error, errMsg
 		return
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.Extra, tagMap, edbInfo.EmptyType)
 
 	return
@@ -249,7 +238,6 @@ func (obj CalculateSum) Refresh(params RefreshParams) (err error, errMsg string)
 		}
 	}()
 
-	// 计算数据
 	err = obj.refresh(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, relationEdbInfoList, edbInfo.EdbCode, edbInfo.Extra, tagMap, edbInfo.EmptyType)
 
 	return
@@ -259,7 +247,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 	realSaveDataMap := make(map[string]map[int]float64)
 	saveDataMap := make(map[string]map[int]float64)
 
-	// 最小的结束日期 , 最晚的数据开始日期
 	var minLatestDate, maxStartDate time.Time
 	dateList := make([]string, 0)        // 最终的日期数据
 	dateMap := make(map[string]struct{}) // 最终的日期数据
@@ -267,7 +254,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 	tableName := GetEdbDataTableName(source, subSource)
 
-	// 获取多指标求和关联的指标id
 	dateTagConfig := ""
 	if extra != "" {
 		var dateConfig CalculateEdbExtra
@@ -298,7 +284,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 				realSaveDataMap[dv.DataTime] = temp
 			}
 
-			// saveDataMap
 			if val, ok := saveDataMap[dv.DataTime]; ok {
 				if _, ok := val[v.EdbInfoId]; !ok {
 					val[v.EdbInfoId] = dv.Value
@@ -333,7 +318,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 			}
 		}
 	}
-	// 处理最大日期和最小日期
 	for _, v := range dateList {
 		tmpDate, _ := time.ParseInLocation(utils.FormatDate, v, time.Local)
 		if minLatestDate.IsZero() || tmpDate.After(minLatestDate) {
@@ -344,7 +328,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 		}
 	}
 
-	//数据处理,将日期内不全的数据做补全
 	HandleDateSaveDataMap(dateList, maxStartDate, minLatestDate, realSaveDataMap, saveDataMap, edbInfoIdArr, emptyType)
 
 	addSql := ` INSERT INTO ` + tableName + ` (edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
@@ -352,7 +335,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	dataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -370,7 +352,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 		if _, ok := dateMap[sk]; !ok {
 			continue
 		}
-		// 当空值处理类型选择了不计算时,只要有一个指标在某个日期没有值(即空值),则计算指标在该日期没有值
 		if len(sv) != len(edbInfoIdArr) {
 			continue
 		}
@@ -380,7 +361,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 			calVal += value
 		}
 
-		// 有计算出来值,那么就从待删除指标中移除
 		delete(removeDateMap, sk)
 		saveValue := decimal.NewFromFloat(calVal).Round(4).String()
 		if existVal, ok := dataMap[sk]; !ok {
@@ -423,7 +403,6 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 		}
 		removeDateStr := strings.Join(removeDateList, `","`)
 		removeDateStr = `"` + removeDateStr + `"`
-		//如果拼接指标变更了,那么需要删除所有的指标数据
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
 		err = to.Exec(sql, edbInfoId).Error
@@ -435,17 +414,14 @@ func (obj CalculateSum) refresh(to *gorm.DB, edbInfoId, source, subSource int, e
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj CalculateSum) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_SUM
 }
 
-// GetSourceName 获取来源名称
 func (obj CalculateSum) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_SUM
 }
 
-// GetEdbType 获取指标类型
 func (obj CalculateSum) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }

+ 0 - 23
models/edb_data_calculate_tbz.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateTbz 同比值
 func AddCalculateTbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -48,7 +47,6 @@ func AddCalculateTbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -85,13 +83,11 @@ func AddCalculateTbz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateTbz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbCode, "", "")
 
 	return
 }
 
-// EditCalculateTbz 同比值
 func EditCalculateTbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -102,7 +98,6 @@ func EditCalculateTbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -116,7 +111,6 @@ func EditCalculateTbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -131,19 +125,16 @@ func EditCalculateTbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-	//清空原有数据
 	sql = ` DELETE FROM edb_data_calculate_tbz WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -168,13 +159,11 @@ func EditCalculateTbz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateTbz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "")
 
 	return
 }
 
-// RefreshAllCalculateTbz 刷新所有同比值数据
 func RefreshAllCalculateTbz(edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -185,27 +174,20 @@ func RefreshAllCalculateTbz(edbInfoId, source, subSource int, fromEdbInfo *EdbIn
 		}
 	}()
 
-	//计算数据
 	err = refreshAllCalculateTbz(to, edbInfoId, source, subSource, fromEdbInfo, edbCode, startDate, endDate)
 	return
 }
 
-// refreshAllCalculateTbz
 func refreshAllCalculateTbz(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
-	// 获取来源指标数据
 	dataList, err := GetEdbDataListAll(fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: fromEdbInfo.EdbInfoId,
-		//StartDataTime:     startDate,
-		//StartDataTimeCond: ">=",
 	}, 0)
 	if err != nil {
 		return err
 	}
 
-	// 来源指标数据参与计算
 	calculateDataList, err := EdbInfoSearchDataToEdbInfoData(dataList)
 	if err != nil {
 		return err
@@ -222,7 +204,6 @@ func refreshAllCalculateTbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -233,7 +214,6 @@ func refreshAllCalculateTbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 		existDataMap[v.DataTime] = v.Value
 		removeDataTimeMap[v.DataTime] = true
 	}
-	//fmt.Println("existDataMap:", existDataMap)
 
 	addSql := ` INSERT INTO edb_data_calculate_tbz(edb_info_id,edb_code,data_time,value,create_time,modify_time,data_timestamp) values `
 	var isAdd bool
@@ -245,7 +225,6 @@ func refreshAllCalculateTbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 		timestampStr := fmt.Sprintf("%d", timestamp)
 		val := decimal.NewFromFloat(valFloat).String()
 
-		//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 		delete(removeDataTimeMap, currentDateStr)
 
 		if existVal, ok := existDataMap[currentDateStr]; !ok {
@@ -268,7 +247,6 @@ func refreshAllCalculateTbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 		}
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -276,7 +254,6 @@ func refreshAllCalculateTbz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 		}
 		removeNum := len(removeDateList)
 		if removeNum > 0 {
-			//如果拼接指标变更了,那么需要删除所有的指标数据
 			sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (`+utils.GetOrmInReplace(removeNum)+`) `, dataTableName)
 
 			err = to.Exec(sql, edbInfoId, removeDateList).Error

+ 0 - 18
models/edb_data_calculate_tcz.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateTcz 同差值
 func AddCalculateTcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -49,7 +48,6 @@ func AddCalculateTcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 			return
 		}
 
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -86,13 +84,11 @@ func AddCalculateTcz(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, ed
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateTcz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "")
 
 	return
 }
 
-// EditCalculateTcz 同差值
 func EditCalculateTcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -102,7 +98,6 @@ func EditCalculateTcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 			to.Commit()
 		}
 	}()
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -121,7 +116,6 @@ func EditCalculateTcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
@@ -131,21 +125,18 @@ func EditCalculateTcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM edb_data_calculate_tcz WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -170,13 +161,11 @@ func EditCalculateTcz(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromE
 		}
 	}
 
-	//计算数据
 	err = refreshAllCalculateTcz(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo, edbInfo.EdbCode, "", "")
 
 	return
 }
 
-// RefreshAllCalculateTcz 刷新全部同差值数据
 func RefreshAllCalculateTcz(edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -194,7 +183,6 @@ func RefreshAllCalculateTcz(edbInfoId, source, subSource int, fromEdbInfo *EdbIn
 
 func refreshAllCalculateTcz(to *gorm.DB, edbInfoId, source, subSource int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
 
 	dataList, err := GetEdbDataListAllByTo(to, fromEdbInfo.Source, fromEdbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId:         fromEdbInfo.EdbInfoId,
@@ -212,7 +200,6 @@ func refreshAllCalculateTcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	}
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -228,16 +215,13 @@ func refreshAllCalculateTcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	for _, av := range dateArr {
 		currentItem := dataMap[av]
 		if currentItem != nil {
-			//当前日期
 			currentDate, err := time.ParseInLocation(utils.FormatDate, av, time.Local)
 			if err != nil {
 				return err
 			}
-			//上一年的日期
 			preDate := currentDate.AddDate(-1, 0, 0)
 			preDateStr := preDate.Format(utils.FormatDate)
 			if findItem, ok := dataMap[preDateStr]; ok {
-				//上一年同期找到
 				timestamp := currentDate.UnixNano() / 1e6
 				timestampStr := fmt.Sprintf("%d", timestamp)
 				val := TczSub(currentItem.Value, findItem.Value)
@@ -260,7 +244,6 @@ func refreshAllCalculateTcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 						}
 					}
 				}
-				//utils.FileLog.Info("同期找到:" + av + ";" + preDateStr)
 				continue
 			} else {
 				if fromEdbInfo.Frequency == "月度" { //向上和向下,各找一个月
@@ -419,7 +402,6 @@ func refreshAllCalculateTcz(to *gorm.DB, edbInfoId, source, subSource int, fromE
 	return
 }
 
-// TczSub 计算同差值
 func TczSub(a, b float64) string {
 	af := decimal.NewFromFloat(a)
 	bf := decimal.NewFromFloat(b)

+ 0 - 19
models/edb_data_calculate_time_shift.go

@@ -12,7 +12,6 @@ import (
 	"time"
 )
 
-// AddCalculateTimeShift 时间移位
 func AddCalculateTimeShift(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -49,7 +48,6 @@ func AddCalculateTimeShift(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbIn
 			err = tmpErr
 			return
 		}
-		//关联关系
 		{
 			calculateMappingItem := new(EdbInfoCalculateMapping)
 			calculateMappingItem.CreateTime = time.Now()
@@ -88,13 +86,11 @@ func AddCalculateTimeShift(req *EdbInfoCalculateBatchSaveReq, fromEdbInfo *EdbIn
 
 	formulaInt, _ := strconv.Atoi(req.Formula)
 
-	//计算数据
 	err = refreshAllCalculateTimeShift(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, formulaInt, edbInfo.MoveType, fromEdbInfo, edbInfo.EdbCode, "", "", edbInfo.MoveFrequency)
 
 	return
 }
 
-// EditCalculateTimeShift 修改时间移位
 func EditCalculateTimeShift(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq, fromEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -106,7 +102,6 @@ func EditCalculateTimeShift(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 	}()
 	oldEdbInfo := *edbInfo //旧的指标信息
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -123,7 +118,6 @@ func EditCalculateTimeShift(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 		return
 	}
 
-	//判断计算指标是否被更换
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
@@ -136,16 +130,13 @@ func EditCalculateTimeShift(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 	}
 
 	if count <= 0 || req.MoveType != oldEdbInfo.MoveType || req.MoveFrequency != oldEdbInfo.MoveFrequency || req.Formula != oldEdbInfo.CalculateFormula {
-		//如果是依赖指标变更,那么需要删除对应的关联指标,并添加新的关系
 		if count <= 0 {
-			//删除,计算指标关联的,基础指标的关联关系
 			sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 			err = to.Exec(sql, edbInfo.EdbInfoId).Error
 			if err != nil {
 				err = errors.New("删除计算指标关联关系失败,Err:" + err.Error())
 				return
 			}
-			//关联关系
 			{
 				calculateMappingItem := &EdbInfoCalculateMapping{
 					EdbInfoCalculateMappingId: 0,
@@ -171,21 +162,18 @@ func EditCalculateTimeShift(edbInfo *EdbInfo, req *EdbInfoCalculateBatchEditReq,
 			}
 		}
 
-		//清空原有数据
 		sql := ` DELETE FROM edb_data_calculate_time_shift WHERE edb_info_id = ? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 		if err != nil {
 			return
 		}
 
-		//计算数据
 		formulaInt, _ := strconv.Atoi(req.Formula)
 		err = refreshAllCalculateTimeShift(to, edbInfo.EdbInfoId, edbInfo.Source, edbInfo.SubSource, formulaInt, edbInfo.MoveType, fromEdbInfo, edbInfo.EdbCode, "", "", edbInfo.MoveFrequency)
 	}
 	return
 }
 
-// RefreshAllCalculateTimeShift 刷新所有时间移位数据
 func RefreshAllCalculateTimeShift(edbInfoId, source, subSource, formulaInt, moveType int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate, moveFrequency string) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -196,17 +184,14 @@ func RefreshAllCalculateTimeShift(edbInfoId, source, subSource, formulaInt, move
 		}
 	}()
 
-	//计算数据
 	err = refreshAllCalculateTimeShift(to, edbInfoId, source, subSource, formulaInt, moveType, fromEdbInfo, edbCode, startDate, endDate, moveFrequency)
 
 	return
 }
 
-// refreshAllCalculateTimeShift 刷新所有时间移位数据
 func refreshAllCalculateTimeShift(to *gorm.DB, edbInfoId, source, subSource, formulaInt, moveType int, fromEdbInfo *EdbInfo, edbCode, startDate, endDate, moveFrequency string) (err error) {
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
-	//计算数据
 
 	var shiftDay int
 	switch moveFrequency {
@@ -245,7 +230,6 @@ func refreshAllCalculateTimeShift(to *gorm.DB, edbInfoId, source, subSource, for
 	fmt.Println("source:", source)
 	dataTableName := GetEdbDataTableName(source, subSource)
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, source, subSource)
 	if err != nil {
 		return err
@@ -264,7 +248,6 @@ func refreshAllCalculateTimeShift(to *gorm.DB, edbInfoId, source, subSource, for
 	existMap := make(map[string]string)
 	dataLen := len(dataList)
 	for i := 0; i < dataLen; i++ {
-		//当期
 		currentItem := dataList[i]
 		existKey := edbCode + currentItem.DataTime
 		if _, ok := existMap[existKey]; !ok {
@@ -290,7 +273,6 @@ func refreshAllCalculateTimeShift(to *gorm.DB, edbInfoId, source, subSource, for
 				}
 			}
 
-			// 指标已存在,那么就移除该日期
 			delete(removeDateMap, newDate.Format(utils.FormatDate))
 		}
 		existMap[existKey] = currentItem.DataTime
@@ -304,7 +286,6 @@ func refreshAllCalculateTimeShift(to *gorm.DB, edbInfoId, source, subSource, for
 		}
 	}
 
-	// 移除不存在的日期数据
 	if len(removeDateMap) > 0 {
 		removeDateList := make([]string, 0) //需要移除的日期
 		for k := range removeDateMap {

+ 0 - 28
models/edb_data_calculate_zdyfx.go

@@ -15,22 +15,18 @@ import (
 	"time"
 )
 
-// CustomAnalysis 自定义分析
 type CustomAnalysis struct{}
 
-// CustomAnalysisData 自定义分析的数据
 type CustomAnalysisData struct {
 	ExcelInfoId int `description:"excel的id"`
 	DateList    []string
 	DataList    []float64
 }
 
-// Add 添加
 func (obj CustomAnalysis) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	edbCode := params.EdbCode
 
-	// 自定义分析的数据集
 	jsonByte, err := json.Marshal(req.Data)
 	if err != nil {
 		return
@@ -75,7 +71,6 @@ func (obj CustomAnalysis) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo,
 		return
 	}
 
-	//关联关系
 	{
 		excelEdbMappingItem := new(excel.ExcelEdbMapping)
 		excelEdbMappingItem.CreateTime = time.Now()
@@ -89,18 +84,15 @@ func (obj CustomAnalysis) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo,
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo, customAnalysisData.DateList, customAnalysisData.DataList)
 
 	return
 }
 
-// Edit 编辑
 func (obj CustomAnalysis) Edit(params EditCalculateBatchParams) (err error, errMsg string) {
 	req := params.Req
 	edbInfo := params.EdbInfo
 
-	// 自定义分析的数据集
 	jsonByte, err := json.Marshal(req.Data)
 	if err != nil {
 		return
@@ -120,7 +112,6 @@ func (obj CustomAnalysis) Edit(params EditCalculateBatchParams) (err error, errM
 		}
 	}()
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -135,9 +126,7 @@ func (obj CustomAnalysis) Edit(params EditCalculateBatchParams) (err error, errM
 		return
 	}
 
-	// 只有excel的id有传递,同时有数据的情况下,才去做处理
 	if customAnalysisData.ExcelInfoId > 0 && len(customAnalysisData.DateList) > 0 && len(customAnalysisData.DataList) > 0 {
-		//判断计算指标是否被更换
 		excelEdbMapping, tmpErr := excel.GetExcelEdbMappingByEdbInfoId(edbInfo.EdbInfoId)
 		if tmpErr != nil {
 			err = errors.New("获取excel与指标的关系失败,Err:" + tmpErr.Error())
@@ -149,35 +138,29 @@ func (obj CustomAnalysis) Edit(params EditCalculateBatchParams) (err error, errM
 			return
 		}
 
-		//计算数据
 		err = obj.refresh(to, edbInfo, customAnalysisData.DateList, customAnalysisData.DataList)
 	}
 
 	return
 }
 
-// Refresh 刷新
 func (obj CustomAnalysis) Refresh(params RefreshParams) (err error, errMsg string) {
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj CustomAnalysis) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_ZDYFX
 }
 
-// GetSourceName 获取来源名称
 func (obj CustomAnalysis) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_ZDYFX
 }
 
-// GetEdbType 获取指标类型
 func (obj CustomAnalysis) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }
 
-// UpdateEdbDataStr 数据更新结构体
 type UpdateEdbDataStr struct {
 	Value    string `description:"数据对应的最新值"`
 	DataTime string `description:"数据对应的日期"`
@@ -193,7 +176,6 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 		return
 	}
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource)
 	if err != nil {
 		return err
@@ -221,13 +203,10 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 			err = tmpErr
 			return
 		}
-		// 当前的实际值
 		saveValue := decimal.NewFromFloat(currVal).Round(4).String()
 
 		existVal, ok := existDataMap[currDateStr]
-		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 			existValDec, _ := decimal.NewFromString(existVal)
 			existVal = existValDec.Round(4).String()
@@ -243,7 +222,6 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 			continue
 		}
 
-		// 库中不存在该日期的数据
 		timestamp := currTime.UnixNano() / 1e6
 		timeStr := fmt.Sprintf("%d", timestamp)
 		if _, existOk := needAddDateMap[currTime]; !existOk {
@@ -253,7 +231,6 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 		needAddDateMap[currTime] = 1
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -271,7 +248,6 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 		}
 	}
 
-	// 添加指标数据
 	if isAdd {
 		addSql = strings.TrimRight(addSql, ",")
 		err = to.Exec(addSql).Error
@@ -281,9 +257,7 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 		}
 	}
 
-	// 更新指标数据
 	if isUpdate {
-		// todo 测试
 		updateSql = ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
 		updateSql = fmt.Sprintf(updateSql, dataTableName)
 		for _, v := range updateEdbDataStrList {
@@ -301,7 +275,6 @@ func (obj CustomAnalysis) refresh(to *gorm.DB, edbInfo *EdbInfo, dateList []stri
 	return
 }
 
-// ResetData 数据重置
 func (obj CustomAnalysis) ResetData(edbInfo *EdbInfo, dateList []string, dataList []float64) (err error, errMsg string) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -317,7 +290,6 @@ func (obj CustomAnalysis) ResetData(edbInfo *EdbInfo, dateList []string, dataLis
 	return
 }
 
-// ResetCustomAnalysisData 数据重置的结构体
 type ResetCustomAnalysisData struct {
 	EdbInfoId int
 	DateList  []string

+ 0 - 43
models/edb_data_calculate_zjpj.go

@@ -10,7 +10,6 @@ import (
 	"time"
 )
 
-// EdbDataCalculateZjpj 直接拼接数据结构体
 type EdbDataCalculateZjpj struct {
 	EdbDataId     int       `gorm:"primaryKey;autoIncrement;column:edb_data_id"`
 	EdbInfoId     int       `gorm:"column:edb_info_id" description:"指标ID"`
@@ -23,7 +22,6 @@ type EdbDataCalculateZjpj struct {
 	DataTimestamp int64     `gorm:"column:modify_time" description:"数据日期时间戳"`
 }
 
-// AddCalculateZjpj 新增直接拼接数据
 func AddCalculateZjpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdbInfo *EdbInfo, edbCode, uniqueCode string, sysUserId int, sysUserRealName string) (edbInfo *EdbInfo, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -67,7 +65,6 @@ func AddCalculateZjpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 		if err != nil {
 			return
 		}
-		//查询
 		tmpEdbInfo, tmpErr := GetEdbInfoById(edbInfo.EdbInfoId)
 		if tmpErr != nil {
 			err = tmpErr
@@ -81,7 +78,6 @@ func AddCalculateZjpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 
 		edbInfo = tmpEdbInfo
 
-		//删除指标数据
 		dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_CALCULATE_ZJPJ, utils.DATA_SUB_SOURCE_EDB)
 		fmt.Println("dataTableName:" + dataTableName)
 		deleteSql := ` DELETE FROM %s WHERE edb_info_id=? `
@@ -91,15 +87,12 @@ func AddCalculateZjpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 			return
 		}
 
-		//删除指标关系
 		sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id=? `
 		err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	}
 
-	//关联关系
 
 	var existItemA, existItemB *EdbInfoCalculateMapping
-	//第一个指标
 	{
 		existItemA = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -125,7 +118,6 @@ func AddCalculateZjpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 		}
 	}
 
-	//第二个指标
 	{
 		existItemB = &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -151,13 +143,11 @@ func AddCalculateZjpj(req *EdbInfoCalculateBatchSaveReq, firstEdbInfo, secondEdb
 		}
 	}
 
-	//拼接数据
 	err = refreshAllCalculateZjpj(to, edbInfo, existItemA, existItemB)
 
 	return
 }
 
-// EditCalculateZjpj 编辑直接拼接数据
 func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo, secondEdbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -170,7 +160,6 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 
 	nowEdbInfo := *edbInfo // 现在的指标信息
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -190,7 +179,6 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 	existCondition += " AND edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId)
 
-	//查询出所有的关联指标
 	existList, err := GetEdbInfoCalculateListByCondition(existCondition, existPars)
 	if err != nil {
 		err = fmt.Errorf("判断指标是否改变失败,Err:" + err.Error())
@@ -206,18 +194,13 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 		}
 	}
 
-	// 是否需要删除数据重新计算
 	isNeedCalculateData := false
 
-	// 如果截止日期变更,那么需要重新计算
 	if req.Formula != nowEdbInfo.CalculateFormula {
 		isNeedCalculateData = true
 	}
-	//第一个指标数据
 	{
-		// 如果指标变了,那么需要删除关系,并重新计算
 		if existItemA.FromEdbInfoId != firstEdbInfo.EdbInfoId {
-			//删除之前的A指标关联关系
 			sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? and from_edb_info_id = ?`
 			err = to.Exec(sql, edbInfo.EdbInfoId, existItemA.FromEdbInfoId).Error
 			if err != nil {
@@ -225,7 +208,6 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 				return
 			}
 
-			//添加新的指标关系
 			{
 				existItemA = &EdbInfoCalculateMapping{
 					EdbInfoCalculateMappingId: 0,
@@ -254,11 +236,8 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 		}
 	}
 
-	//第二个指标数据
 	{
-		// 如果指标变了,那么需要删除关系,并重新计算
 		if existItemB.FromEdbInfoId != secondEdbInfo.EdbInfoId {
-			//删除之前的B指标关联关系
 			sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? and from_edb_info_id = ?`
 			err = to.Exec(sql, edbInfo.EdbInfoId, existItemB.FromEdbInfoId).Error
 			if err != nil {
@@ -266,7 +245,6 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 				return
 			}
 
-			// 添加新的指标关联关系
 			existItemB = &EdbInfoCalculateMapping{
 				EdbInfoCalculateMappingId: 0,
 				EdbInfoId:                 edbInfo.EdbInfoId,
@@ -294,9 +272,7 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 		}
 	}
 
-	// 如果需要重新计算,那么先删除所有的指标数据,然后再重新计算
 	if isNeedCalculateData {
-		// 删除之前所有的指标数据
 
 		tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 		sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? `, tableName)
@@ -312,7 +288,6 @@ func EditCalculateZjpj(req *EdbInfoCalculateBatchEditReq, edbInfo, firstEdbInfo,
 	return
 }
 
-// RefreshAllCalculateZjpj 刷新所有 直接拼接 数据
 func RefreshAllCalculateZjpj(edbInfo *EdbInfo) (err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -322,7 +297,6 @@ func RefreshAllCalculateZjpj(edbInfo *EdbInfo) (err error) {
 			to.Commit()
 		}
 	}()
-	//查询关联指标信息
 	var existCondition string
 	var existPars []interface{}
 	existCondition += " AND edb_info_id=? "
@@ -341,15 +315,12 @@ func RefreshAllCalculateZjpj(edbInfo *EdbInfo) (err error) {
 			existItemB = existItem
 		}
 	}
-	// 刷新数据
 	err = refreshAllCalculateZjpj(to, edbInfo, existItemA, existItemB)
 
 	return
 }
 
-// refreshAllCalculateZjpj 刷新所有 直接拼接 数据
 func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existItemB *EdbInfoCalculateMapping) (err error) {
-	//查询当前指标现有的数据
 	var condition string
 	var pars []interface{}
 	condition += " AND edb_info_id=? "
@@ -371,9 +342,7 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 	}
 
 	addDataList := make([]*EdbDataCalculateZjpj, 0)
-	//第一个指标
 	{
-		//第一个指标的数据列表
 		firstDataList, tmpErr := GetEdbDataListAllByTo(to, existItemA.FromSource, existItemA.FromSubSource, FindEdbDataListAllCond{
 			EdbInfoId:       existItemA.FromEdbInfoId,
 			EndDataTime:     edbInfo.CalculateFormula,
@@ -384,19 +353,15 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 
 		for _, v := range firstDataList {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该元素
 			if _, ok := removeDataTimeMap[v.DataTime]; ok {
 				delete(removeDataTimeMap, v.DataTime)
 			}
-			//时间戳
 			if edbData, ok := dataMap[v.DataTime]; ok {
 				if edbData.Value != v.Value {
-					//更新指标数据
 					edbData.Value = v.Value
 					_ = to.Model(edbData).Select([]string{"Value"}).Updates(edbData).Error
 				}
 			} else {
-				//时间戳
 				currentDate, _ := time.ParseInLocation(utils.FormatDate, v.DataTime, time.Local)
 				timestamp := currentDate.UnixNano() / 1e6
 
@@ -415,9 +380,7 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 	}
 
-	//第二个指标
 	{
-		//第二个指标的数据列表
 		secondDataList, tmpErr := GetEdbDataListAllByTo(to, existItemB.FromSource, existItemB.FromSubSource, FindEdbDataListAllCond{
 			EdbInfoId:         existItemB.FromEdbInfoId,
 			StartDataTime:     edbInfo.CalculateFormula,
@@ -428,14 +391,12 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 
 		for _, v := range secondDataList {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该元素
 			if _, ok := removeDataTimeMap[v.DataTime]; ok {
 				delete(removeDataTimeMap, v.DataTime)
 			}
 
 			if edbData, ok := dataMap[v.DataTime]; ok {
 				if edbData.Value != v.Value {
-					//更新指标数据
 					edbData.Value = v.Value
 					edbData.ModifyTime = time.Now()
 					tmpErr := to.Model(edbData).Select([]string{"Value", "ModifyTime"}).Updates(edbData).Error
@@ -444,7 +405,6 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 					}
 				}
 			} else {
-				//时间戳
 				currentDate, _ := time.ParseInLocation(utils.FormatDate, v.DataTime, time.Local)
 				timestamp := currentDate.UnixNano() / 1e6
 
@@ -463,7 +423,6 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 	}
 
-	//删除已经不存在的累计同比拼接指标数据(由于同比值当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -472,7 +431,6 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		if len(removeDateList) > 0 {
 			removeDateStr := strings.Join(removeDateList, `","`)
 			removeDateStr = `"` + removeDateStr + `"`
-			//如果拼接指标变更了,那么需要删除所有的指标数据
 			tableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 			sql := fmt.Sprintf(` DELETE FROM %s WHERE edb_info_id = ? and data_time in (%s) `, tableName, removeDateStr)
 
@@ -484,7 +442,6 @@ func refreshAllCalculateZjpj(to *gorm.DB, edbInfo *EdbInfo, existItemA, existIte
 		}
 	}
 
-	//数据入库
 	if len(addDataList) > 0 {
 		tmpAddDataList := make([]*EdbDataCalculateZjpj, 0)
 		i := 0

+ 0 - 29
models/edb_data_calculate_zsxy.go

@@ -13,10 +13,8 @@ import (
 	"time"
 )
 
-// ExponentialSmoothing 指数修匀
 type ExponentialSmoothing struct{}
 
-// Add 添加
 func (obj ExponentialSmoothing) Add(params AddCalculateBatchParams) (edbInfo *EdbInfo, err error, errMsg string) {
 	req := params.Req
 	fromEdbInfo := params.FromEdbInfo
@@ -55,7 +53,6 @@ func (obj ExponentialSmoothing) Add(params AddCalculateBatchParams) (edbInfo *Ed
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := new(EdbInfoCalculateMapping)
 		calculateMappingItem.CreateTime = time.Now()
@@ -78,12 +75,10 @@ func (obj ExponentialSmoothing) Add(params AddCalculateBatchParams) (edbInfo *Ed
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 	return
 }
 
-// Edit 编辑
 func (obj ExponentialSmoothing) Edit(params EditCalculateBatchParams) (err error, errMsg string) {
 	req := params.Req
 	edbInfo := params.EdbInfo
@@ -101,7 +96,6 @@ func (obj ExponentialSmoothing) Edit(params EditCalculateBatchParams) (err error
 
 	oldEdbInfo := *edbInfo
 
-	//修改指标信息
 	edbInfo.EdbName = req.EdbName
 	edbInfo.EdbNameSource = req.EdbName
 	edbInfo.Frequency = req.Frequency
@@ -121,35 +115,30 @@ func (obj ExponentialSmoothing) Edit(params EditCalculateBatchParams) (err error
 	existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
 	existPars = append(existPars, edbInfo.EdbInfoId, req.FromEdbInfoId)
 
-	//判断计算指标是否被更换
 	count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
 	if err != nil {
 		err = errors.New("判断指标是否改变失败,Err:" + err.Error())
 		return
 	}
 	if count > 0 { // 指标未被替换,无需处理逻辑
-		// 如果相关配置更改了,那么重新计算
 		if oldEdbInfo.CalculateFormula != edbInfo.CalculateFormula {
 			err = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 		}
 		return
 	}
 
-	//删除,计算指标关联的,基础指标的关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//清空原有数据
 	sql = ` DELETE FROM ` + tableName + ` WHERE edb_info_id = ? `
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	//关联关系
 	{
 		calculateMappingItem := &EdbInfoCalculateMapping{
 			EdbInfoCalculateMappingId: 0,
@@ -174,13 +163,11 @@ func (obj ExponentialSmoothing) Edit(params EditCalculateBatchParams) (err error
 		}
 	}
 
-	//计算数据
 	err = obj.refresh(to, edbInfo, fromEdbInfo, edbInfo.EdbCode)
 
 	return
 }
 
-// Refresh 刷新
 func (obj ExponentialSmoothing) Refresh(params RefreshParams) (err error, errMsg string) {
 	calculateMapping, err := GetEdbInfoCalculateMappingDetail(params.EdbInfo.EdbInfoId)
 	if err != nil {
@@ -202,23 +189,19 @@ func (obj ExponentialSmoothing) Refresh(params RefreshParams) (err error, errMsg
 		}
 	}()
 
-	// 计算数据
 	err = obj.refresh(to, params.EdbInfo, fromEdbInfo, params.EdbInfo.EdbCode)
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj ExponentialSmoothing) GetSource() int {
 	return utils.DATA_SOURCE_CALCULATE_ZSXY
 }
 
-// GetSourceName 获取来源名称
 func (obj ExponentialSmoothing) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_CALCULATE_ZSXY
 }
 
-// GetEdbType 获取指标类型
 func (obj ExponentialSmoothing) GetEdbType() int {
 	return utils.CALCULATE_EDB_TYPE
 }
@@ -228,13 +211,11 @@ func (obj ExponentialSmoothing) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbIn
 	dataTableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
-	// 获取标准差图表的指标数据
 	fromDataList, err := CalculateExponentialSmoothingData(fromEdbInfo, edbInfo.CalculateFormula)
 	if err != nil {
 		return err
 	}
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource)
 	if err != nil {
 		return err
@@ -256,13 +237,10 @@ func (obj ExponentialSmoothing) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbIn
 			err = tmpErr
 			return
 		}
-		// 当前的实际值
 		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
 
 		existVal, ok := existDataMap[currDateStr]
-		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 
 			if existVal != saveValue {
@@ -277,7 +255,6 @@ func (obj ExponentialSmoothing) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbIn
 			continue
 		}
 
-		// 库中不存在该日期的数据
 		timestamp := currTime.UnixNano() / 1e6
 		timeStr := fmt.Sprintf("%d", timestamp)
 		if _, existOk := needAddDateMap[currTime]; !existOk {
@@ -287,7 +264,6 @@ func (obj ExponentialSmoothing) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbIn
 		needAddDateMap[currTime] = 1
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -316,7 +292,6 @@ func (obj ExponentialSmoothing) refresh(to *gorm.DB, edbInfo, fromEdbInfo *EdbIn
 	return
 }
 
-// CalculateExponentialSmoothingData 计算指数修匀
 func CalculateExponentialSmoothingData(fromEdbInfo *EdbInfo, strAlpha string) (newDataList []EdbInfoSearchData, err error) {
 	alpha, _ := strconv.ParseFloat(strAlpha, 64)
 	if alpha <= 0 || alpha >= 1 {
@@ -324,11 +299,9 @@ func CalculateExponentialSmoothingData(fromEdbInfo *EdbInfo, strAlpha string) (n
 		return
 	}
 
-	// 获取时间基准指标在时间区间内的值
 	dataList := make([]*EdbInfoSearchData, 0)
 	switch fromEdbInfo.EdbInfoType {
 	case 0:
-		//获取来源指标的数据
 		dataList, err = GetEdbDataListAll(fromEdbInfo.Source, fromEdbInfo.SubSource,
 			FindEdbDataListAllCond{
 				EdbInfoId: fromEdbInfo.EdbInfoId,
@@ -344,7 +317,6 @@ func CalculateExponentialSmoothingData(fromEdbInfo *EdbInfo, strAlpha string) (n
 	alphaDecimal := decimal.NewFromFloat(alpha)
 	subAlpha := decimal.NewFromFloat(1).Sub(alphaDecimal)
 	for k, d := range dataList {
-		// 首期的值以原始值作为指数修匀的计算值
 		if k == 0 {
 			newDataList = append(newDataList, EdbInfoSearchData{
 				EdbDataId: k,
@@ -355,7 +327,6 @@ func CalculateExponentialSmoothingData(fromEdbInfo *EdbInfo, strAlpha string) (n
 			continue
 		}
 
-		// 上一期的值参与计算
 		preDecimal := decimal.NewFromFloat(preVal)
 		valDecimal := decimal.NewFromFloat(d.Value)
 

+ 0 - 3
models/edb_data_insert_config.go

@@ -5,7 +5,6 @@ import (
 	"time"
 )
 
-// EdbDataInsertConfig 指标数据插入配置表
 type EdbDataInsertConfig struct {
 	EdbInfoId  int       `gorm:"primaryKey;autoIncrement;column:edb_info_id" description:"指标id"`
 	Date       time.Time `description:"插入的日期"`
@@ -15,14 +14,12 @@ type EdbDataInsertConfig struct {
 	CreateTime time.Time `description:"数据插入的时间"`
 }
 
-// GetEdbDataInsertConfigByEdbId 根据指标id 获取数据插入配置详情
 func GetEdbDataInsertConfigByEdbId(edbInfoId int) (item *EdbDataInsertConfig, err error) {
 	sql := ` SELECT * FROM edb_data_insert_config WHERE edb_info_id=? `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).First(&item).Error
 	return
 }
 
-// DeleteEdbDataInsertConfigByEdbId 根据指标id 删除数据插入配置详情
 func DeleteEdbDataInsertConfigByEdbId(edbInfoId int) (err error) {
 	sql := ` DELETE FROM edb_data_insert_config WHERE edb_info_id=? `
 	err = global.DEFAULT_DmSQL.Exec(sql, edbInfoId).Error

+ 0 - 1
models/edb_data_table.go

@@ -4,7 +4,6 @@ import (
 	"eta_gn/eta_index_lib/utils"
 )
 
-// GetEdbDataTableName 指标数据->存储表
 func GetEdbDataTableName(source, subSource int) (tableName string) {
 	switch source {
 	case utils.DATA_SOURCE_THS:

+ 0 - 2
models/edb_data_trade_analysis.go

@@ -9,7 +9,6 @@ import (
 	"time"
 )
 
-// EdbDataTradeAnalysis 持仓分析指标数据
 type EdbDataTradeAnalysis struct {
 	EdbDataId     int       `gorm:"primaryKey;autoIncrement;column:edb_data_id"`
 	EdbInfoId     int       `gorm:"column:edb_info_id" description:"指标ID"`
@@ -153,7 +152,6 @@ func (m *EdbDataTradeAnalysis) GetPageItemsByCondition(condition string, pars []
 	return
 }
 
-// MultiUpdateValue 批量更新数据值
 func (m *EdbDataTradeAnalysis) MultiUpdateValue(items []*EdbDataTradeAnalysis) (err error) {
 	if len(items) == 0 {
 		return

+ 31 - 257
models/edb_info.go

@@ -75,7 +75,6 @@ func (e *EdbInfo) Add() (err error) {
 	return
 }
 
-// AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *EdbInfo) AfterFind(db *gorm.DB) (err error) {
 	if m.StartDate != "" {
 		minDateTmp, e := time.ParseInLocation(utils.FormatDateWallWithLoc, m.StartDate, time.Local)
@@ -113,9 +112,6 @@ func (m *EdbInfo) AfterFind(db *gorm.DB) (err error) {
 	return
 }
 
-// ConvertDate
-// @Description: 格式化EdbInfo的日期
-// @receiver e
 func (e *EdbInfo) ConvertDate() {
 	e.StartDate = utils.GormDateStrToDateStr(e.StartDate)
 	e.EndDate = utils.GormDateStrToDateStr(e.EndDate)
@@ -125,14 +121,12 @@ func (e *EdbInfo) ConvertDate() {
 	return
 }
 
-// AddEdbInfo 添加指标
 func AddEdbInfo(item *EdbInfo) (lastId int64, err error) {
 
 	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
-// EdbInfoList 指标数据列表
 type EdbInfoList struct {
 	FrequencyEn     string                 `gorm:"-" description:"英文频率"`
 	EdbNameAlias    string                 `gorm:"-" json:"-" description:"指标名称,别名"`
@@ -143,59 +137,39 @@ type EdbInfoList struct {
 	Button          EdbClassifyItemsButton `gorm:"-" description:"操作权限"`
 	IsEnEdb         bool                   `gorm:"-" description:"是否展示英文标识"`
 
-	EdbInfoId   int    `gorm:"primaryKey;autoIncrement;column:edb_info_id" description:"唯一标识"`
-	EdbInfoType int    `gorm:"column:edb_info_type" description:"指标类型,0:普通指标,1:预测指标"`
-	SourceName  string `gorm:"column:source_name" description:"来源名称"`
-	Source      int    `gorm:"column:source" description:"来源id"`
-	EdbCode     string `gorm:"column:edb_code" description:"指标编码"`
-	EdbName     string `gorm:"column:edb_name" description:"指标名称"`
-	EdbNameEn   string `gorm:"column:edb_name_en" description:"英文指标名称"`
-	//EdbNameSource    string    `gorm:"column:edb_name_source" description:"指标名称来源"`
-	Frequency       string `gorm:"column:frequency" description:"频率"`
-	Unit            string `gorm:"column:unit" description:"单位"`
-	UnitEn          string `gorm:"column:unit_en" description:"英文单位"`
-	StartDate       string `gorm:"column:start_date" description:"起始日期"`
-	EndDate         string `gorm:"column:end_date" description:"终止日期"`
-	ClassifyId      int    `gorm:"column:classify_id" description:"分类id"`
-	SysUserId       int    `gorm:"column:sys_user_id" description:"系统用户ID"`
-	SysUserRealName string `gorm:"column:sys_user_real_name" description:"系统用户真实姓名"`
-	UniqueCode      string `gorm:"column:unique_code" description:"指标唯一编码"`
-	CreateTime      string `gorm:"column:create_time" description:"创建时间"`
-	ModifyTime      string `gorm:"column:modify_time" description:"修改时间"`
-	//BaseModifyTime   time.Time `gorm:"column:base_modify_time" description:"基础修改时间"`
-	//MinValue         float64   `gorm:"column:min_value" description:"指标最小值"`
-	/*MaxValue         float64   `gorm:"column:max_value" description:"指标最大值"`
-	CalculateFormula string    `gorm:"column:calculate_formula" description:"计算公式"`*/
-	EdbType int `gorm:"column:edb_type" description:"指标类型:1:基础指标,2:计算指标"`
-	//IsUpdate         int       `gorm:"column:is_update" description:"当天是否已更新,1:未更新,2:已更新"`
-	//Sort             int       `gorm:"column:sort" description:"排序字段"`
-	LatestDate  string  `gorm:"column:latest_date" description:"数据最新日期(实际日期)"`
-	LatestValue float64 `gorm:"column:latest_value" description:"数据最新值(实际值)"`
-	EndValue    float64 `gorm:"column:end_value" description:"数据的最新值(预测日期的最新值)"`
-	//MoveType         int       `gorm:"column:move_type" description:"移动方式:1:领先(默认),2:滞后"`
-	//MoveFrequency    string    `gorm:"column:move_frequency" description:"移动频度"`
-	NoUpdate int8 `gorm:"column:no_update" description:"是否停止更新,0:继续更新;1:停止更新"`
-	//ServerUrl        string    `gorm:"column:server_url" description:"服务器地址"`
-	ChartImage string `gorm:"column:chart_image" description:"图表图片"`
-	//Calendar         string    `gorm:"column:calendar;default:公历" description:"公历/农历"`
-	EmptyType    int    `gorm:"column:empty_type" description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
-	MaxEmptyType int    `gorm:"column:max_empty_type" description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
-	DataDateType string `gorm:"column:data_date_type;size:255;default:交易日" description:"数据日期类型"`
-	/*ManualSave       int       `gorm:"column:manual_save" description:"是否有手动保存过上下限: 0-否; 1-是"`
-	TerminalCode     string    `gorm:"column:terminal_code" description:"终端编码,用于配置在机器上"`
-	DataUpdateTime   string    `gorm:"column:data_update_time" description:"最近一次数据发生变化的时间"`
-	ErDataUpdateDate string    `gorm:"column:er_data_update_date" description:"本次更新,数据发生变化的最早日期"`
-	SourceIndexName  string    `gorm:"column:source_index_name" description:"数据源中的指标名称"`*/
-	SubSource     int    `gorm:"column:sub_source" description:"子数据来源:0:经济数据库,1:日期序列"`
-	SubSourceName string `gorm:"column:sub_source_name" description:"子数据来源名称"`
-	IndicatorCode string `gorm:"column:indicator_code" description:"指标代码"`
-	StockCode     string `gorm:"column:stock_code" description:"证券代码"`
-	//Extra            string    `gorm:"column:extra" description:"指标的额外配置"`
+	EdbInfoId       int     `gorm:"primaryKey;autoIncrement;column:edb_info_id" description:"唯一标识"`
+	EdbInfoType     int     `gorm:"column:edb_info_type" description:"指标类型,0:普通指标,1:预测指标"`
+	SourceName      string  `gorm:"column:source_name" description:"来源名称"`
+	Source          int     `gorm:"column:source" description:"来源id"`
+	EdbCode         string  `gorm:"column:edb_code" description:"指标编码"`
+	EdbName         string  `gorm:"column:edb_name" description:"指标名称"`
+	EdbNameEn       string  `gorm:"column:edb_name_en" description:"英文指标名称"`
+	Frequency       string  `gorm:"column:frequency" description:"频率"`
+	Unit            string  `gorm:"column:unit" description:"单位"`
+	UnitEn          string  `gorm:"column:unit_en" description:"英文单位"`
+	StartDate       string  `gorm:"column:start_date" description:"起始日期"`
+	EndDate         string  `gorm:"column:end_date" description:"终止日期"`
+	ClassifyId      int     `gorm:"column:classify_id" description:"分类id"`
+	SysUserId       int     `gorm:"column:sys_user_id" description:"系统用户ID"`
+	SysUserRealName string  `gorm:"column:sys_user_real_name" description:"系统用户真实姓名"`
+	UniqueCode      string  `gorm:"column:unique_code" description:"指标唯一编码"`
+	CreateTime      string  `gorm:"column:create_time" description:"创建时间"`
+	ModifyTime      string  `gorm:"column:modify_time" description:"修改时间"`
+	EdbType         int     `gorm:"column:edb_type" description:"指标类型:1:基础指标,2:计算指标"`
+	LatestDate      string  `gorm:"column:latest_date" description:"数据最新日期(实际日期)"`
+	LatestValue     float64 `gorm:"column:latest_value" description:"数据最新值(实际值)"`
+	EndValue        float64 `gorm:"column:end_value" description:"数据的最新值(预测日期的最新值)"`
+	NoUpdate        int8    `gorm:"column:no_update" description:"是否停止更新,0:继续更新;1:停止更新"`
+	ChartImage      string  `gorm:"column:chart_image" description:"图表图片"`
+	EmptyType       int     `gorm:"column:empty_type" description:"空值处理类型(0查找前后35天,1不计算,2前值填充,3后值填充,4等于0)"`
+	MaxEmptyType    int     `gorm:"column:max_empty_type" description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
+	DataDateType    string  `gorm:"column:data_date_type;size:255;default:交易日" description:"数据日期类型"`
+	SubSource       int     `gorm:"column:sub_source" description:"子数据来源:0:经济数据库,1:日期序列"`
+	SubSourceName   string  `gorm:"column:sub_source_name" description:"子数据来源名称"`
+	IndicatorCode   string  `gorm:"column:indicator_code" description:"指标代码"`
+	StockCode       string  `gorm:"column:stock_code" description:"证券代码"`
 }
 
-// ConvertDate
-// @Description: 格式化EdbInfoList的日期
-// @receiver e
 func (e *EdbInfoList) ConvertDate() {
 	e.CreateTime = utils.GormDateStrToDateTimeStr(e.CreateTime)
 	e.ModifyTime = utils.GormDateStrToDateTimeStr(e.ModifyTime)
@@ -206,7 +180,6 @@ func (e *EdbInfoList) ConvertDate() {
 	return
 }
 
-// EdbClassifyItemsButton 操作按钮
 type EdbClassifyItemsButton struct {
 	AddButton         bool `description:"是否可添加"`
 	OpButton          bool `description:"是否可编辑"`
@@ -216,7 +189,6 @@ type EdbClassifyItemsButton struct {
 	ShowChartRelation bool `description:"是否展示关联图表"`
 }
 
-// GetEdbInfoByName 根据指标名称获取所有的指标数据列表
 func GetEdbInfoByName(edbName string) (items []*EdbInfoList, err error) {
 	sql := ` SELECT * FROM edb_info WHERE edb_name=? `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbName).Scan(&items).Error
@@ -225,14 +197,12 @@ func GetEdbInfoByName(edbName string) (items []*EdbInfoList, err error) {
 		return
 	}
 	for _, edbInfoItem := range items {
-		// 时间转格式
 		edbInfoItem.ConvertDate()
 	}
 
 	return
 }
 
-// ModifyEdbInfoNameSource 根据来源修改指标名称
 func ModifyEdbInfoNameSource(edbNameSource string, edbInfoId int) (err error) {
 
 	sql := ` UPDATE  edb_info SET edb_name_source=? WHERE edb_info_id = ? `
@@ -240,7 +210,6 @@ func ModifyEdbInfoNameSource(edbNameSource string, edbInfoId int) (err error) {
 	return
 }
 
-// GetEdbInfoById 根据指标id获取指标信息
 func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
 	sql := ` SELECT * FROM edb_info WHERE edb_info_id = ? `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).First(&item).Error
@@ -248,13 +217,11 @@ func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
 		return
 	}
 
-	// 格式化日期
 	item.ConvertDate()
 
 	return
 }
 
-// GetEdbInfoByUniqueCode 根据指标唯一编码获取指标信息
 func GetEdbInfoByUniqueCode(uniqueCode string) (item *EdbInfo, err error) {
 
 	sql := ` SELECT * FROM edb_info WHERE unique_code=? `
@@ -263,12 +230,10 @@ func GetEdbInfoByUniqueCode(uniqueCode string) (item *EdbInfo, err error) {
 		return
 	}
 
-	// 格式化日期
 	item.ConvertDate()
 	return
 }
 
-// GetEdbInfoByIdList 根据指标id列表获取指标信息
 func GetEdbInfoByIdList(edbInfoIdList []int) (items []*EdbInfo, err error) {
 	num := len(edbInfoIdList)
 	if num <= 0 {
@@ -280,15 +245,12 @@ func GetEdbInfoByIdList(edbInfoIdList []int) (items []*EdbInfo, err error) {
 	return
 }
 
-// Update 更新EdbInfo信息
 func (edbInfo *EdbInfo) Update(cols []string) (err error) {
 
 	err = global.DEFAULT_DmSQL.Model(edbInfo).Select(cols).Updates(edbInfo).Error
 	return
 }
 
-// EdbInfoSearchData
-// @Description: 指标数据
 type EdbInfoSearchData struct {
 	EdbDataId     int     `description:"数据ID"`
 	EdbInfoId     int     `description:"指标ID"`
@@ -298,9 +260,6 @@ type EdbInfoSearchData struct {
 	DataTimestamp int64   `description:"时间戳"`
 }
 
-// ConvertTimeStr
-// @Description: 转成需要输出的格式
-// @receiver m
 func (m *EdbInfoSearchData) ConvertTimeStr() {
 	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
 
@@ -315,16 +274,6 @@ type FindEdbDataListAllCond struct {
 	EndDataTimeCond   string
 }
 
-// GetEdbDataListAll
-// @Description: 获取指标数据列表 order:1升序,其余值为降序
-// @author: Roc
-// @datetime 2024-05-08 15:34:01
-// @param source int
-// @param subSource int
-// @param findEdbDataListAllCond FindEdbDataListAllCond
-// @param order int  order:1升序,其余值为降序
-// @return item []*EdbInfoSearchData
-// @return err error
 func GetEdbDataListAll(source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (item []*EdbInfoSearchData, err error) {
 	if source == utils.DATA_SOURCE_BUSINESS && utils.UseMongo {
 		return GetEdbDataListAllByMongo(source, subSource, findEdbDataListAllCond, order)
@@ -333,16 +282,6 @@ func GetEdbDataListAll(source, subSource int, findEdbDataListAllCond FindEdbData
 	return GetEdbDataListAllByMysql(source, subSource, findEdbDataListAllCond, order)
 }
 
-// GetEdbDataListAllByMysql
-// @Description: 从mysql数据库中获取指标数据列表 order:1升序,其余值为降序
-// @author: Roc
-// @datetime 2024-05-08 15:32:55
-// @param source int
-// @param subSource int
-// @param findEdbDataListAllCond FindEdbDataListAllCond
-// @param order int
-// @return items []*EdbInfoSearchData
-// @return err error
 func GetEdbDataListAllByMysql(source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (items []*EdbInfoSearchData, err error) {
 	if findEdbDataListAllCond.EdbInfoId <= 0 {
 		return
@@ -358,12 +297,10 @@ func GetEdbDataListAllByMysql(source, subSource int, findEdbDataListAllCond Find
 	condition += " AND edb_info_id=? "
 	pars = append(pars, findEdbDataListAllCond.EdbInfoId)
 
-	// 开始日期
 	if findEdbDataListAllCond.StartDataTime != "" && findEdbDataListAllCond.StartDataTimeCond != `` {
 		condition += fmt.Sprintf(" AND data_time %s ? ", findEdbDataListAllCond.StartDataTimeCond)
 		pars = append(pars, findEdbDataListAllCond.StartDataTime)
 	}
-	// 结束日期
 	if findEdbDataListAllCond.EndDataTime != "" && findEdbDataListAllCond.EndDataTimeCond != `` {
 		condition += fmt.Sprintf(" AND data_time %s ? ", findEdbDataListAllCond.EndDataTimeCond)
 		pars = append(pars, findEdbDataListAllCond.EndDataTime)
@@ -377,12 +314,10 @@ func GetEdbDataListAllByMysql(source, subSource int, findEdbDataListAllCond Find
 	} else {
 		sql += ` ORDER BY data_time DESC `
 	}
-	// todo
 	err = global.DEFAULT_DmSQL.Raw(sql, pars...).Scan(&items).Error
 	if err != nil {
 		return
 	}
-	// 统一处理日期
 	for _, v := range items {
 		v.ConvertTimeStr()
 	}
@@ -390,17 +325,6 @@ func GetEdbDataListAllByMysql(source, subSource int, findEdbDataListAllCond Find
 	return
 }
 
-// GetEdbDataListAllByTo
-// @Description: 根据事务链接获取指标数据列表 order:1升序,其余值为降序
-// @author: Roc
-// @datetime 2024-05-08 15:34:06
-// @param to *gorm.DB
-// @param source int
-// @param subSource int
-// @param findEdbDataListAllCond FindEdbDataListAllCond
-// @param order int
-// @return item []*EdbInfoSearchData
-// @return err error
 func GetEdbDataListAllByTo(to *gorm.DB, source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (item []*EdbInfoSearchData, err error) {
 	if source == utils.DATA_SOURCE_BUSINESS && utils.UseMongo {
 		return GetEdbDataListAllByMongo(source, subSource, findEdbDataListAllCond, order)
@@ -409,17 +333,6 @@ func GetEdbDataListAllByTo(to *gorm.DB, source, subSource int, findEdbDataListAl
 	return GetEdbDataListAllByMysqlTo(to, source, subSource, findEdbDataListAllCond, order)
 }
 
-// GetEdbDataListAllByMysqlTo
-// @Description: 根据事务链接获取指标数据列表 order:1升序,其余值为降序(Mysql)
-// @author: Roc
-// @datetime 2024-05-08 15:34:13
-// @param to *gorm.DB
-// @param source int
-// @param subSource int
-// @param findEdbDataListAllCond FindEdbDataListAllCond
-// @param order int
-// @return items []*EdbInfoSearchData
-// @return err error
 func GetEdbDataListAllByMysqlTo(to *gorm.DB, source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (items []*EdbInfoSearchData, err error) {
 	if findEdbDataListAllCond.EdbInfoId <= 0 {
 		return
@@ -434,12 +347,10 @@ func GetEdbDataListAllByMysqlTo(to *gorm.DB, source, subSource int, findEdbDataL
 	condition += " AND edb_info_id=? "
 	pars = append(pars, findEdbDataListAllCond.EdbInfoId)
 
-	// 开始日期
 	if findEdbDataListAllCond.StartDataTime != "" && findEdbDataListAllCond.StartDataTimeCond != `` {
 		condition += fmt.Sprintf(" AND data_time %s ? ", findEdbDataListAllCond.StartDataTimeCond)
 		pars = append(pars, findEdbDataListAllCond.StartDataTime)
 	}
-	// 结束日期
 	if findEdbDataListAllCond.EndDataTime != "" && findEdbDataListAllCond.EndDataTimeCond != `` {
 		condition += fmt.Sprintf(" AND data_time %s ? ", findEdbDataListAllCond.EndDataTimeCond)
 		pars = append(pars, findEdbDataListAllCond.EndDataTime)
@@ -457,7 +368,6 @@ func GetEdbDataListAllByMysqlTo(to *gorm.DB, source, subSource int, findEdbDataL
 	if err != nil {
 		return
 	}
-	// 统一处理日期
 	for _, v := range items {
 		v.ConvertTimeStr()
 	}
@@ -465,23 +375,12 @@ func GetEdbDataListAllByMysqlTo(to *gorm.DB, source, subSource int, findEdbDataL
 	return
 }
 
-// GetEdbDataListAllByMongo
-// @Description: 根据事务链接获取指标数据列表 order:1升序,其余值为降序(Mongo)
-// @author: Roc
-// @datetime 2024-05-08 15:34:24
-// @param source int
-// @param subSource int
-// @param findEdbDataListAllCond FindEdbDataListAllCond
-// @param order int
-// @return dataList []*EdbInfoSearchData
-// @return err error
 func GetEdbDataListAllByMongo(source, subSource int, findEdbDataListAllCond FindEdbDataListAllCond, order int) (dataList []*EdbInfoSearchData, err error) {
 	dataList = make([]*EdbInfoSearchData, 0)
 	if findEdbDataListAllCond.EdbInfoId <= 0 {
 		return
 	}
 	mogDataObj := mgo.EdbDataBusiness{}
-	// 构建查询条件
 	queryConditions := bson.M{
 		"edb_info_id": findEdbDataListAllCond.EdbInfoId,
 	}
@@ -499,7 +398,6 @@ func GetEdbDataListAllByMongo(source, subSource int, findEdbDataListAllCond Find
 	} else {
 		sortList = append(sortList, "-data_time")
 	}
-	// 获取列表数据
 	tmpDataList, tmpErr := mogDataObj.GetAllDataList(queryConditions, sortList)
 	if tmpErr != nil {
 		err = tmpErr
@@ -518,7 +416,6 @@ func GetEdbDataListAllByMongo(source, subSource int, findEdbDataListAllCond Find
 	return
 }
 
-// EdbInfoMaxAndMinInfo 指标最新数据记录结构体
 type EdbInfoMaxAndMinInfo struct {
 	MinDate     string  `description:"最小日期" bson:"min_date"`
 	MaxDate     string  `description:"最大日期" bson:"max_date"`
@@ -529,7 +426,6 @@ type EdbInfoMaxAndMinInfo struct {
 	EndValue    float64 `description:"最新值" bson:"end_value"`
 }
 
-// AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *EdbInfoMaxAndMinInfo) AfterFind(db *gorm.DB) (err error) {
 	if m.MinDate != "" {
 		minDateTmp, e := time.ParseInLocation(utils.FormatDateWallWithLoc, m.MinDate, time.Local)
@@ -550,7 +446,6 @@ func (m *EdbInfoMaxAndMinInfo) AfterFind(db *gorm.DB) (err error) {
 	return
 }
 
-// EdbInfoMaxAndMinInfoTmp 指标最新数据记录结构体
 type EdbInfoMaxAndMinInfoTmp struct {
 	MinDate     time.Time `description:"最小日期" bson:"min_date"`
 	MaxDate     time.Time `description:"最大日期" bson:"max_date"`
@@ -561,7 +456,6 @@ type EdbInfoMaxAndMinInfoTmp struct {
 	EndValue    float64   `description:"最新值" bson:"end_value"`
 }
 
-// GetEdbInfoMaxAndMinInfo 获取指标的最新数据记录信息
 func GetEdbInfoMaxAndMinInfo(source, subSource int, edbCode string) (item *EdbInfoMaxAndMinInfo, err error) {
 	sql := ``
 	tableName := GetEdbDataTableName(source, subSource)
@@ -572,7 +466,6 @@ func GetEdbInfoMaxAndMinInfo(source, subSource int, edbCode string) (item *EdbIn
 	var latest_value float64
 	sql = ` SELECT value AS latest_value FROM %s WHERE edb_code=? ORDER BY data_time DESC LIMIT 1 `
 	sql = fmt.Sprintf(sql, tableName)
-	// todo 测试查询单个字段
 	err = global.DEFAULT_DmSQL.Raw(sql, edbCode).Scan(&latest_value).Error
 	item.LatestValue = latest_value
 	return
@@ -582,7 +475,6 @@ type EdbIndoDataUpdateTime struct {
 	MinDate string `description:"本次更新,数据发生变化的最早日期"`
 }
 
-// AfterFind 在该模型上设置钩子函数,把日期转成正确的string,所以查询函数只能用Find函数,First或者Scan是不会触发该函数的来获取数据
 func (m *EdbIndoDataUpdateTime) AfterFind(db *gorm.DB) (err error) {
 	if m.MinDate == "" {
 		return
@@ -595,7 +487,6 @@ func (m *EdbIndoDataUpdateTime) AfterFind(db *gorm.DB) (err error) {
 	return
 }
 
-// GetEdbDataUpdateTimeByModify 获取指标的刷新时间获取最早的一条记录
 func GetEdbDataUpdateTimeByModify(source, subSource int, edbCode string, dataUpdateTime string) (item *EdbIndoDataUpdateTime, err error) {
 	sql := ``
 	tableName := GetEdbDataTableName(source, subSource)
@@ -606,7 +497,6 @@ func GetEdbDataUpdateTimeByModify(source, subSource int, edbCode string, dataUpd
 	return
 }
 
-// ModifyEdbInfoMaxAndMinInfo 修改指标的最新数据信息
 func ModifyEdbInfoMaxAndMinInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
 	sql := ` UPDATE edb_info SET start_date=?,end_date=?,min_value=?,max_value=?,is_update=2,latest_date=?,latest_value=?, end_value = ?,modify_time=NOW() WHERE edb_info_id=? `
 	err = global.DEFAULT_DmSQL.Exec(sql, item.MinDate, item.MaxDate, item.MinValue, item.MaxValue, item.MaxDate, item.LatestValue, item.LatestValue, edbInfoId).Error
@@ -614,7 +504,6 @@ func ModifyEdbInfoMaxAndMinInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err
 	return
 }
 
-// ModifyEdbTimeAndLastInfo 修改指标的最新数据信息(除上下限)
 func ModifyEdbTimeAndLastInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
 	sql := `UPDATE edb_info SET start_date = ?, end_date = ?, is_update = 2,latest_date = ?, latest_value = ?, end_value = ?, modify_time = NOW() WHERE edb_info_id = ?`
 	err = global.DEFAULT_DmSQL.Exec(sql, item.MinDate, item.MaxDate, item.MaxDate, item.LatestValue, item.LatestValue, edbInfoId).Error
@@ -622,7 +511,6 @@ func ModifyEdbTimeAndLastInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err er
 	return
 }
 
-// ModifyEdbDataUpdateTime 修改指标刷新,本次数据刷新的最早日期
 func ModifyEdbDataUpdateTime(edbInfoId int, dataUpdateTime, erDataUpdateDate string) (err error) {
 	sql := `UPDATE edb_info SET data_update_time = ?, er_data_update_date = ?, modify_time = NOW() WHERE edb_info_id = ?`
 	err = global.DEFAULT_DmSQL.Exec(sql, dataUpdateTime, erDataUpdateDate, edbInfoId).Error
@@ -630,15 +518,6 @@ func ModifyEdbDataUpdateTime(edbInfoId int, dataUpdateTime, erDataUpdateDate str
 	return
 }
 
-// GetLteZeroEdbDataCount
-// @Description: 获取小于等于0的数据数量
-// @author: Roc
-// @datetime 2024-05-31 10:44:39
-// @param source int
-// @param subSource int
-// @param edbInfoId int
-// @return count int
-// @return err error
 func GetLteZeroEdbDataCount(source, subSource, edbInfoId int) (count int, err error) {
 	if source == utils.DATA_SOURCE_BUSINESS && utils.UseMongo {
 		return GetLteZeroEdbDataCountByMongo(source, subSource, edbInfoId)
@@ -647,23 +526,12 @@ func GetLteZeroEdbDataCount(source, subSource, edbInfoId int) (count int, err er
 	return GetLteZeroEdbDataCountByMysql(source, subSource, edbInfoId)
 }
 
-// GetLteZeroEdbDataCountByMongo
-// @Description: 获取小于等于0的数据数量(从mongo)
-// @author: Roc
-// @datetime 2024-05-31 10:41:04
-// @param source int
-// @param subSource int
-// @param edbInfoId int
-// @return count int
-// @return err error
 func GetLteZeroEdbDataCountByMongo(source, subSource, edbInfoId int) (count int, err error) {
 	mogDataObj := mgo.EdbDataBusiness{}
-	// 构建查询条件
 	whereQuery := bson.M{
 		"edb_info_id": edbInfoId,
 		"value":       bson.M{"$lte": 0},
 	}
-	// 获数量数据
 	tmpCount, err := mogDataObj.GetCountDataList(whereQuery)
 	if err != nil {
 		return
@@ -674,15 +542,6 @@ func GetLteZeroEdbDataCountByMongo(source, subSource, edbInfoId int) (count int,
 	return
 }
 
-// GetLteZeroEdbDataCountByMysql
-// @Description: 获取小于等于0的数据数量(从mysql)
-// @author: Roc
-// @datetime 2024-05-31 10:29:19
-// @param source int
-// @param subSource int
-// @param edbInfoId int
-// @return count int
-// @return err error
 func GetLteZeroEdbDataCountByMysql(source, subSource, edbInfoId int) (count int, err error) {
 	sql := ``
 	tableName := GetEdbDataTableName(source, subSource)
@@ -692,7 +551,6 @@ func GetLteZeroEdbDataCountByMysql(source, subSource, edbInfoId int) (count int,
 	return
 }
 
-// GetLastEdbData 获取最近的一条指标数据
 func GetLastEdbData(condition string, pars []interface{}, source, subSource int) (item *EdbInfoSearchData, err error) {
 	sql := ``
 	tableName := GetEdbDataTableName(source, subSource)
@@ -707,7 +565,6 @@ func GetLastEdbData(condition string, pars []interface{}, source, subSource int)
 	return
 }
 
-// GetEdbInfoByEdbCode 根据指标code获取指标信息
 func GetEdbInfoByEdbCode(source int, edbCode string) (item *EdbInfo, err error) {
 	sql := ` SELECT * FROM edb_info WHERE source=? AND edb_code=? `
 	err = global.DEFAULT_DmSQL.Raw(sql, source, edbCode).First(&item).Error
@@ -715,14 +572,12 @@ func GetEdbInfoByEdbCode(source int, edbCode string) (item *EdbInfo, err error)
 	if errors.Is(err, orm.ErrNoRows) {
 		err = nil
 	} else {
-		// 格式化日期
 		item.ConvertDate()
 	}
 
 	return
 }
 
-// GetEdbInfoOnlyByEdbCode 仅根据指标code获取指标信息
 func GetEdbInfoOnlyByEdbCode(edbCode string) (item *EdbInfo, err error) {
 	sql := ` SELECT * FROM edb_info WHERE edb_code=? `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbCode).First(&item).Error
@@ -730,13 +585,11 @@ func GetEdbInfoOnlyByEdbCode(edbCode string) (item *EdbInfo, err error) {
 		return
 	}
 
-	// 格式化日期
 	item.ConvertDate()
 
 	return
 }
 
-// GetEdbInfoCalculateListByCondition 获取指标关系列表
 func GetEdbInfoCalculateListByCondition(condition string, pars []interface{}) (items []*EdbInfoCalculateMapping, err error) {
 	sql := ` SELECT * FROM edb_info_calculate_mapping WHERE 1=1 `
 	if condition != "" {
@@ -747,7 +600,6 @@ func GetEdbInfoCalculateListByCondition(condition string, pars []interface{}) (i
 	return
 }
 
-// GetEdbInfoCalculateCountByCondition 获取关联指标数量
 func GetEdbInfoCalculateCountByCondition(condition string, pars []interface{}) (count int, err error) {
 	sql := ` SELECT COUNT(1) AS count FROM edb_info_calculate_mapping WHERE 1=1 `
 	if condition != "" {
@@ -758,14 +610,12 @@ func GetEdbInfoCalculateCountByCondition(condition string, pars []interface{}) (
 	return
 }
 
-// 优化版本-处理数据精度问题
 type EdbInfoSearchDataV1 struct {
 	EdbDataId int    `description:"数据ID"`
 	DataTime  string `description:"数据日期"`
 	Value     string `description:"数据"`
 }
 
-// GetEdbDataListAllV1ByTo 通过事务链接获取数据列表
 func GetEdbDataListAllV1ByTo(to *gorm.DB, condition string, pars []interface{}, source, subSource, order int) (items []*EdbInfoSearchDataV1, err error) {
 	sql := ``
 	tableName := GetEdbDataTableName(source, subSource)
@@ -785,7 +635,6 @@ func GetEdbDataListAllV1ByTo(to *gorm.DB, condition string, pars []interface{},
 		return
 	}
 
-	// 日期格式化
 	for _, item := range items {
 		item.ConvertDate()
 	}
@@ -793,9 +642,7 @@ func GetEdbDataListAllV1ByTo(to *gorm.DB, condition string, pars []interface{},
 	return
 }
 
-// UnifiedModifyEdbInfoMaxAndMinInfo 统一修改指标的最大最小值
 func UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo *EdbInfo) (err error, errMsg string) {
-	// 修改最大最小值
 	maxAndMinItem, err := GetEdbInfoMaxAndMinInfo(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode)
 	if err != nil {
 		if err.Error() == utils.ErrNoRow() {
@@ -808,7 +655,6 @@ func UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo *EdbInfo) (err error, errMsg stri
 		return
 	}
 	if maxAndMinItem != nil {
-		// ETA1.0.3改-如果指标有手动保存过, 那么就不更新指标的最大最小值
 		if edbInfo.ManualSave == 1 {
 			err = ModifyEdbTimeAndLastInfo(edbInfo.EdbInfoId, maxAndMinItem)
 			if err != nil {
@@ -826,19 +672,16 @@ func UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo *EdbInfo) (err error, errMsg stri
 		}
 	}
 
-	// 刷新关联的预测指标
 	go RefreshPredictStandardBaseByGeneralEdbInfoId(edbInfo.EdbInfoId)
 
 	return
 }
 
-// UnifiedModifyEdbInfoMaxAndMinInfoDataUpdate 统一修改指标的最大最小值以及数据更新时间点
 func UnifiedModifyEdbInfoMaxAndMinInfoDataUpdate(edbInfo *EdbInfo, dataUpdateTime string) (erDataUpdateDate string, err error, errMsg string) {
 	err, errMsg = UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
 	if err != nil {
 		return
 	}
-	// 获取本次刷新,指标数据更新的最早日期
 	erDataUpdateTime, tErr := GetEdbDataUpdateTimeByModify(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode, dataUpdateTime)
 	if tErr != nil {
 		if tErr.Error() != utils.ErrNoRow() { //本次刷新指标数据无变化
@@ -859,9 +702,7 @@ func UnifiedModifyEdbInfoMaxAndMinInfoDataUpdate(edbInfo *EdbInfo, dataUpdateTim
 	return
 }
 
-// UnifiedModifyPredictEdbInfoMaxAndMinInfo 统一修改预测运算指标的最大最小值
 func UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo *EdbInfo, latestDateStr string, latestValue float64) (err error, errMsg string) {
-	// 修改最大最小值
 	maxAndMinItem, err := GetEdbInfoMaxAndMinInfo(edbInfo.Source, edbInfo.SubSource, edbInfo.EdbCode)
 	if err != nil {
 		if err.Error() == utils.ErrNoRow() {
@@ -874,7 +715,6 @@ func UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo *EdbInfo, latestDateStr st
 		return
 	}
 
-	// 最晚的日期的值
 	maxAndMinItem.EndValue = maxAndMinItem.LatestValue
 
 	if maxAndMinItem != nil {
@@ -892,7 +732,6 @@ func UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo *EdbInfo, latestDateStr st
 	return
 }
 
-// GetChartPredictEdbInfoDataListByConfList 获取图表的预测指标的未来数据
 func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbConfAndData, filtrateStartDateStr, latestDateStr, endDateStr, frequency, dataDateType string, realPredictEdbInfoData []*EdbInfoSearchData) (predictEdbInfoData []*EdbInfoSearchData, minValue, maxValue float64, err error) {
 	endDate, err := time.ParseInLocation(utils.FormatDate, endDateStr, time.Local)
 	if err != nil {
@@ -904,31 +743,25 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 		return
 	}
 
-	// 开始预测数据的时间
 	startDate := latestDate
 
-	// 如果有筛选时间的话
 	if filtrateStartDateStr != `` {
 		filtrateStartDate, tmpErr := time.ParseInLocation(utils.FormatDate, filtrateStartDateStr, time.Local)
 		if tmpErr != nil {
 			err = tmpErr
 			return
 		}
-		//如果筛选时间晚于实际数据时间,那么就以筛选时间作为获取预测数据的时间
 		if filtrateStartDate.After(latestDate) {
 			startDate = filtrateStartDate.AddDate(0, 0, -1)
 		}
 	}
 
-	// 对应日期的值
 	existMap := make(map[string]float64)
 	for _, v := range realPredictEdbInfoData {
-		//dateArr = append(dateArr, v.DataTime)
 		existMap[v.DataTime] = v.Value
 	}
 
 	predictEdbInfoData = make([]*EdbInfoSearchData, 0)
-	//预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值
 
 	for _, predictEdbConf := range predictEdbConfList {
 		endDate = predictEdbConf.EndDate
@@ -1033,7 +866,6 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 					if tmpErr != nil {
 						continue
 					}
-					// 只处理时间段内的数据
 					if currentDate.Before(startDate) || currentDate.After(endDate) {
 						continue
 					}
@@ -1062,7 +894,6 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 				calendar = "农历"
 			}
 			yearList := make([]int, 0)
-			//选择方式,1:连续N年;2:指定年份
 			if seasonConf.YearType == 1 {
 				if seasonConf.NValue < 1 {
 					err = errors.New("连续N年不允许小于1")
@@ -1107,7 +938,6 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 				return
 			}
 
-			// 规则计算的拟合残差值map
 			newNhccDataMap := make(map[string]float64)
 			if predictEdbConf.PredictEdbInfoId > 0 { //已经生成的动态数据
 				tmpPredictEdbRuleDataList, tmpErr := GetPredictEdbRuleDataItemList(predictEdbConf.PredictEdbInfoId, predictEdbConf.ConfigId, startDate.Format(utils.FormatDate), endDate.Format(utils.FormatDate))
@@ -1140,7 +970,6 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 			}
 		}
 
-		// 下一个规则的开始日期
 		{
 			lenPredictEdbInfoData := len(predictEdbInfoData)
 			if lenPredictEdbInfoData > 0 {
@@ -1162,7 +991,6 @@ func GetChartPredictEdbInfoDataListByConfList(predictEdbConfList []*PredictEdbCo
 	return
 }
 
-// GetPredictEdbDayList 获取预测指标日期列表
 func getPredictEdbDayList(startDate, endDate time.Time, frequency, dataDateType string) (dayList []time.Time) {
 	if dataDateType == `` {
 		dataDateType = `交易日`
@@ -1170,7 +998,6 @@ func getPredictEdbDayList(startDate, endDate time.Time, frequency, dataDateType
 	switch frequency {
 	case "日度":
 		for currDate := startDate.AddDate(0, 0, 1); currDate.Before(endDate) || currDate.Equal(endDate); currDate = currDate.AddDate(0, 0, 1) {
-			// 如果日期类型是交易日的时候,那么需要将周六、日排除
 			if dataDateType == `交易日` && (currDate.Weekday() == time.Sunday || currDate.Weekday() == time.Saturday) {
 				continue
 			}
@@ -1183,7 +1010,6 @@ func getPredictEdbDayList(startDate, endDate time.Time, frequency, dataDateType
 	case "旬度":
 		for currDate := startDate.AddDate(0, 0, 1); currDate.Before(endDate) || currDate.Equal(endDate); {
 			nextDate := currDate.AddDate(0, 0, 1)
-			//每个月的10号、20号、最后一天,那么就写入
 			if nextDate.Day() == 11 || nextDate.Day() == 21 || nextDate.Day() == 1 {
 				dayList = append(dayList, currDate)
 			}
@@ -1199,10 +1025,8 @@ func getPredictEdbDayList(startDate, endDate time.Time, frequency, dataDateType
 		}
 	case "季度":
 		for currDate := startDate; currDate.Before(endDate) || currDate.Equal(endDate); {
-			// 每月的最后一天
 			currDate = time.Date(currDate.Year(), currDate.Month(), 1, 0, 0, 0, 0, time.Now().Location()).AddDate(0, 1, -1)
 			if !currDate.After(endDate) && !currDate.Equal(startDate) {
-				// 季度日期就写入,否则不写入
 				if currDate.Month() == 3 || currDate.Month() == 6 || currDate.Month() == 9 || currDate.Month() == 12 {
 					dayList = append(dayList, currDate)
 				}
@@ -1211,10 +1035,8 @@ func getPredictEdbDayList(startDate, endDate time.Time, frequency, dataDateType
 		}
 	case "半年度":
 		for currDate := startDate; currDate.Before(endDate) || currDate.Equal(endDate); {
-			// 每月的最后一天
 			currDate = time.Date(currDate.Year(), currDate.Month(), 1, 0, 0, 0, 0, time.Now().Location()).AddDate(0, 1, -1)
 			if !currDate.After(endDate) && !currDate.Equal(startDate) {
-				// 半年度日期就写入,否则不写入
 				if currDate.Month() == 6 || currDate.Month() == 12 {
 					dayList = append(dayList, currDate)
 				}
@@ -1232,9 +1054,7 @@ func getPredictEdbDayList(startDate, endDate time.Time, frequency, dataDateType
 	return
 }
 
-// GetPredictDataListByPredictEdbInfo 根据预测指标信息获取预测指标的数据,order:1升序,其余值为降序
 func GetPredictDataListByPredictEdbInfo(edbInfo *EdbInfo, order int, startDate string) (dataList []*EdbInfoSearchData, sourceEdbInfoItem *EdbInfo, err error, errMsg string) {
-	// 查找该预测指标配置
 	predictEdbConfList, err := GetPredictEdbConfAndDataListById(edbInfo.EdbInfoId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		errMsg = "获取预测指标配置信息失败"
@@ -1247,7 +1067,6 @@ func GetPredictDataListByPredictEdbInfo(edbInfo *EdbInfo, order int, startDate s
 	}
 	predictEdbConf := predictEdbConfList[0]
 
-	// 来源指标
 	sourceEdbInfoItem, err = GetEdbInfoById(predictEdbConf.SourceEdbInfoId)
 	if err != nil {
 		if err.Error() == utils.ErrNoRow() {
@@ -1262,10 +1081,8 @@ func GetPredictDataListByPredictEdbInfo(edbInfo *EdbInfo, order int, startDate s
 	return
 }
 
-// GetPredictDataListByPredictEdbConfList 根据预测指标信息获取预测指标的数据,order:1升序,其余值为降序
 func GetPredictDataListByPredictEdbConfList(edbInfo, sourceEdbInfoItem *EdbInfo, predictEdbConfList []*PredictEdbConfAndData, order int, startDate string) (dataList []*EdbInfoSearchData, err error, errMsg string) {
 	allDataList := make([]*EdbInfoSearchData, 0)
-	//获取指标数据(实际已生成)
 	tmpDataList, err := GetEdbDataListAll(sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource, FindEdbDataListAllCond{
 		EdbInfoId:         sourceEdbInfoItem.EdbInfoId,
 		StartDataTime:     startDate,
@@ -1275,11 +1092,8 @@ func GetPredictDataListByPredictEdbConfList(edbInfo, sourceEdbInfoItem *EdbInfo,
 		return
 	}
 
-	// 默认认为上一个查询是把所有的数据查出来了
 	allDataList = tmpDataList
 
-	// 如果条件中有选择了日期,那么上次查询实际并不是把所有的数据查出来了
-	// 那么需要把日期给过滤掉,然后筛选所有的数据,用于未来指标的生成
 	if startDate != `` {
 		allDataList, err = GetEdbDataListAll(sourceEdbInfoItem.Source, sourceEdbInfoItem.SubSource, FindEdbDataListAllCond{
 			EdbInfoId: sourceEdbInfoItem.EdbInfoId,
@@ -1289,13 +1103,11 @@ func GetPredictDataListByPredictEdbConfList(edbInfo, sourceEdbInfoItem *EdbInfo,
 		}
 	}
 
-	// 获取预测指标未来的数据
 	predictDataList := make([]*EdbInfoSearchData, 0)
 
 	endDateStr := edbInfo.EndDate //预测指标的结束日期
 
 	var predictMinValue, predictMaxValue float64
-	// 如果有配置的预测规则,那么就进行预测
 	if len(predictEdbConfList) > 0 {
 		predictDataList, predictMinValue, predictMaxValue, err = GetChartPredictEdbInfoDataListByConfList(predictEdbConfList, startDate, sourceEdbInfoItem.LatestDate, endDateStr, edbInfo.Frequency, edbInfo.DataDateType, allDataList)
 		if err != nil {
@@ -1303,11 +1115,9 @@ func GetPredictDataListByPredictEdbConfList(edbInfo, sourceEdbInfoItem *EdbInfo,
 		}
 	}
 
-	//order:1升序,其余值为降序
 	if order == 1 {
 		dataList = append(tmpDataList, predictDataList...)
 	} else {
-		// 先倒序预测数据
 		lenPredictDataList := len(predictDataList)
 		if lenPredictDataList > 0 {
 			for k := range predictDataList {
@@ -1315,19 +1125,16 @@ func GetPredictDataListByPredictEdbConfList(edbInfo, sourceEdbInfoItem *EdbInfo,
 			}
 		}
 
-		// 接着倒序实际指标
 		lenDataList := len(tmpDataList)
 		for k := range tmpDataList {
 			dataList = append(dataList, tmpDataList[lenDataList-k-1])
 		}
 	}
 	if len(predictDataList) > 0 {
-		// 如果最小值 大于 预测值,那么将预测值作为最小值数据返回
 		if edbInfo.MinValue > predictMinValue {
 			edbInfo.MinValue = predictMinValue
 		}
 
-		// 如果最大值 小于 预测值,那么将预测值作为最大值数据返回
 		if edbInfo.MaxValue < predictMaxValue {
 			edbInfo.MaxValue = predictMaxValue
 		}
@@ -1335,7 +1142,6 @@ func GetPredictDataListByPredictEdbConfList(edbInfo, sourceEdbInfoItem *EdbInfo,
 	return
 }
 
-// GetPredictEdbDataListAll 获取该预测指标所有的数据 ,order:1升序,其余值为降序
 func GetPredictEdbDataListAll(edbInfo *EdbInfo, order int) (items []*EdbInfoSearchData, err error) {
 	items, err = GetEdbDataListAll(edbInfo.Source, edbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId: edbInfo.EdbInfoId,
@@ -1344,7 +1150,6 @@ func GetPredictEdbDataListAll(edbInfo *EdbInfo, order int) (items []*EdbInfoSear
 	return
 }
 
-// GetPredictEdbDataListAllByStartDate 根据开始日期获取该预测指标所有的数据 ,order:1升序,其余值为降序
 func GetPredictEdbDataListAllByStartDate(edbInfo *EdbInfo, order int, startDate string) (items []*EdbInfoSearchData, err error) {
 	items, err = GetEdbDataListAll(edbInfo.Source, edbInfo.SubSource, FindEdbDataListAllCond{
 		EdbInfoId:         edbInfo.EdbInfoId,
@@ -1355,7 +1160,6 @@ func GetPredictEdbDataListAllByStartDate(edbInfo *EdbInfo, order int, startDate
 	return
 }
 
-// ModifyPredictEdbInfoMaxAndMinInfo 修改预测指标的最新数据信息
 func ModifyPredictEdbInfoMaxAndMinInfo(edbInfoId int, item *EdbInfoMaxAndMinInfo) (err error) {
 
 	sql := ` UPDATE edb_info SET start_date=?,end_date=?,min_value=?,max_value=?,is_update=2,latest_date=?,latest_value=?,end_value=?,modify_time=NOW() WHERE edb_info_id=? `
@@ -1378,13 +1182,11 @@ func GetEdbInfoItemByCondition(condition string, pars []interface{}) (item *EdbI
 	return
 }
 
-// EdbInfoDetailReq 指标详情请求
 type EdbInfoDetailReq struct {
 	UniqueCode string `description:"指标唯一编码"`
 	EdbCode    string `description:"指标编码"`
 }
 
-// EdbInfoDetailResp 指标详情返回
 type EdbInfoDetailResp struct {
 	SourceName    string `description:"来源名称"`
 	EdbCode       string `description:"指标编码"`
@@ -1421,26 +1223,22 @@ type AddEdbInfoParams struct {
 
 func ModifyEdbInfoBaseTimeById(edbInfoId int, cTime time.Time) (err error) {
 
-	// 更新修改时间
 	sql := ` UPDATE edb_info SET base_modify_time = ? WHERE edb_info_id = ? `
 	err = global.DEFAULT_DmSQL.Exec(sql, cTime, edbInfoId).Error
 	return
 }
 
-// EdbInfoRefreshCheckReq 指标数据更新情况查询
 type EdbInfoRefreshCheckReq struct {
 	Source         int    `description:"来源id"`
 	LatestDate     string `description:"数据最新日期"`
 	FrequencyBatch string `description:"更新频度"`
 }
 
-// EdbInfoRefreshCheckResp 指标数据更新情况查询
 type EdbInfoRefreshCheckResp struct {
 	UpdateNum   int `description:"已更新指标数"`
 	UnUpdateNum int `description:"未更新指标数"`
 }
 
-// ResetEdbClassifyReq 指标重新分类请求体
 type ResetEdbClassifyReq struct {
 	IndexCode      string `description:"指标编码"`
 	ClassifyFirst  string `description:"一级分类名称"`
@@ -1448,7 +1246,6 @@ type ResetEdbClassifyReq struct {
 	ClassifyThird  string `description:"三级分类名称"`
 }
 
-// GetEdbInfoMaxSortByClassifyId 获取分类下指标的最大的排序数
 func GetEdbInfoMaxSortByClassifyId(classifyId int) (sort int, err error) {
 
 	sql := `SELECT COALESCE(MAX(sort), 0) as sort FROM edb_info WHERE classify_id=? `
@@ -1457,7 +1254,6 @@ func GetEdbInfoMaxSortByClassifyId(classifyId int) (sort int, err error) {
 }
 
 func GetEdbAndClassifyMaxSort(parentId int, classifyType uint8) (maxSort int, err error) {
-	//获取该层级下最大的排序数
 	classifyMaxSort, err := GetEdbClassifyMaxSort(parentId, classifyType)
 	if err != nil {
 		return
@@ -1473,12 +1269,10 @@ func GetEdbAndClassifyMaxSort(parentId int, classifyType uint8) (maxSort int, er
 	return
 }
 
-// CalculateEdbExtra 指标运算额外配置
 type CalculateEdbExtra struct {
 	DateTag string `description:"时间序列的生成方式,all 表示所选指标的时间序列并集"`
 }
 
-// CalculateLjzEdbExtra 累计值额外配置
 type CalculateLjzEdbExtra struct {
 	LastValType int `description:"最新值处理:0默认、均值填充"`
 }
@@ -1494,14 +1288,6 @@ type EdbInfoEditRecord struct {
 	OperateUserRealName string `description:"操作人姓名"`
 }
 
-// GetEdbInfoByEdbCodeList
-// @Description: 根据来源和指标编码列表获取指标信息列表
-// @author: Roc
-// @datetime 2024-05-31 16:31:52
-// @param source int
-// @param edbCodeList []string
-// @return items []*EdbInfo
-// @return err error
 func GetEdbInfoByEdbCodeList(source int, edbCodeList []string) (items []*EdbInfo, err error) {
 	num := len(edbCodeList)
 	if num <= 0 {
@@ -1514,13 +1300,6 @@ func GetEdbInfoByEdbCodeList(source int, edbCodeList []string) (items []*EdbInfo
 	return
 }
 
-// GetAddEdbMaxSortByClassifyId
-// @Description: 获取添加指标时,该分类下最大的排序(忽略错误信息)
-// @author: Roc
-// @datetime 2024-07-05 09:39:46
-// @param classifyId int
-// @param classifyType uint8
-// @return sort int
 func GetAddEdbMaxSortByClassifyId(classifyId int, classifyType uint8) (sort int) {
 	sort, _ = GetEdbAndClassifyMaxSort(classifyId, classifyType)
 	sort = sort + 1
@@ -1528,12 +1307,10 @@ func GetAddEdbMaxSortByClassifyId(classifyId int, classifyType uint8) (sort int)
 	return
 }
 
-// EdbInfoExtra 指标额外数据-extra字段
 type EdbInfoExtra struct {
 	ApiExtraPars string `description:"API-额外参数(如同花顺日期序列)"`
 }
 
-// GetEdbInfoNoUpdateTotalByIdList 根据指标id列表获取指标信息
 func GetEdbInfoNoUpdateTotalByIdList(edbInfoIdList []int) (total int, err error) {
 	num := len(edbInfoIdList)
 	if num <= 0 {
@@ -1576,9 +1353,6 @@ func (m SortEdbDataList) Swap(i, j int) {
 	m[i], m[j] = m[j], m[i]
 }
 
-// ConvertDate
-// @Description: 格式化EdbData的日期
-// @receiver e
 func (m *EdbInfoSearchDataV1) ConvertDate() {
 	m.DataTime = utils.GormDateStrToDateStr(m.DataTime)
 

+ 0 - 12
models/edb_info_calculate_mapping.go

@@ -6,7 +6,6 @@ import (
 	"time"
 )
 
-// EdbInfoCalculateMapping 计算指标于基础指标,关系表
 type EdbInfoCalculateMapping struct {
 	EdbInfoCalculateMappingId int       `gorm:"primaryKey;autoIncrement;column:edb_info_calculate_mapping_id"`
 	EdbInfoId                 int       `gorm:"column:edb_info_id" description:"计算指标id"`
@@ -26,8 +25,6 @@ type EdbInfoCalculateMapping struct {
 	FromSubSource             int       `gorm:"column:from_sub_source" description:"渠道子数据库来源"`
 }
 
-// EdbInfoCalculateMappingInfo
-// @Description: 计算指标与基础指标关系表
 type EdbInfoCalculateMappingInfo struct {
 	EdbInfoCalculateMappingId int       `gorm:"primaryKey;autoIncrement;column:edb_info_calculate_mapping_id"`
 	EdbInfoId                 int       `gorm:"column:edb_info_id" description:"计算指标id"`
@@ -51,19 +48,16 @@ type EdbInfoCalculateMappingInfo struct {
 	NoUpdate                  int8      `description:"是否停止更新,0:继续更新;1:停止更新"`
 }
 
-// AddEdbInfoCalculateMappingMulti 批量添加指标关系表
 func AddEdbInfoCalculateMappingMulti(items []*EdbInfoCalculateMapping) (err error) {
 	err = global.DEFAULT_DmSQL.CreateInBatches(items, 500).Error
 	return
 }
 
-// AddEdbInfoCalculateMappingMulti 批量添加指标关系表
 func (e *EdbInfoCalculateMapping) Add() (err error) {
 	err = global.DEFAULT_DmSQL.Create(e).Error
 	return
 }
 
-// EdbInfoCalculateMappingView
 type EdbInfoCalculateMappingView struct {
 	EdbInfoCalculateMappingId int       `gorm:"primaryKey;autoIncrement;column:edb_info_calculate_mapping_id"`
 	EdbInfoId                 int       `gorm:"column:edb_info_id" description:"计算指标id"`
@@ -86,7 +80,6 @@ type EdbInfoCalculateMappingView struct {
 	MoveFrequency             string    `description:"移动频度"`
 }
 
-// GetEdbInfoCalculateMappingDetail 获取单条关联指标
 func GetEdbInfoCalculateMappingDetail(edbInfoId int) (item *EdbInfoCalculateMappingView, err error) {
 	sql := ` SELECT a.*,b.start_date,b.end_date,b.calculate_formula,b.move_type,b.move_frequency FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
@@ -95,7 +88,6 @@ func GetEdbInfoCalculateMappingDetail(edbInfoId int) (item *EdbInfoCalculateMapp
 	return
 }
 
-// EdbInfoCalculateDetail
 type EdbInfoCalculateDetail struct {
 	EdbInfoCalculateId int       `gorm:"primaryKey;autoIncrement;column:edb_info_calculate_mapping_id"`
 	EdbInfoId          int       `gorm:"column:edb_info_id" description:"计算指标id"`
@@ -114,7 +106,6 @@ type EdbInfoCalculateDetail struct {
 	EdbType            int       `description:"指标类型:1:基础指标,2:计算指标"`
 }
 
-// GetEdbInfoCalculateDetailList 获取关联指标列表
 func GetEdbInfoCalculateDetailList(edbInfoId int) (list []*EdbInfoCalculateDetail, err error) {
 	sql := ` SELECT a.*,b.start_date,b.end_date,b.edb_type FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
@@ -125,7 +116,6 @@ func GetEdbInfoCalculateDetailList(edbInfoId int) (list []*EdbInfoCalculateDetai
 	return
 }
 
-// GetEdbInfoByEdbCode 根据指标code获取指标信息
 func GetEdbInfoCalculateByEdbCode(edbCode, fromEdbCode string) (item *EdbInfoCalculateMapping, err error) {
 	sql := ` SELECT * FROM edb_info_calculate_mapping WHERE edb_code=? AND from_edb_code=? `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbCode, fromEdbCode).First(&item).Error
@@ -133,7 +123,6 @@ func GetEdbInfoCalculateByEdbCode(edbCode, fromEdbCode string) (item *EdbInfoCal
 	return
 }
 
-// GetEdbInfoCalculateMappingListByEdbInfoIds 根据生成的指标id获取来源的指标id列表
 func GetEdbInfoCalculateMappingListByEdbInfoIds(edbInfoIds []int) (items []*EdbInfoCalculateMappingInfo, err error) {
 	sql := ` SELECT a.*,b.edb_type as from_edb_type,b.edb_info_type as from_edb_info_type, b.unique_code AS from_unique_code, b.classify_id AS from_classify_id,b.no_update FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
@@ -143,7 +132,6 @@ func GetEdbInfoCalculateMappingListByEdbInfoIds(edbInfoIds []int) (items []*EdbI
 	return
 }
 
-// GetEdbInfoCalculateMappingListByEdbInfoId 根据生成的指标id获取来源的指标id列表
 func GetEdbInfoCalculateMappingListByEdbInfoId(edbInfoId int) (items []*EdbInfoCalculateMappingInfo, err error) {
 	sql := ` SELECT a.*,b.edb_type as from_edb_type,b.edb_info_type as from_edb_info_type, b.unique_code AS from_unique_code, b.classify_id AS from_classify_id,b.no_update FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id

+ 0 - 11
models/edb_info_relation.go

@@ -29,35 +29,30 @@ func (e *EdbInfoRelation) TableName() string {
 	return "edb_info_relation"
 }
 
-// GetEdbInfoRelationByChildEdbInfoId 查询引用的指标ID
 func GetEdbInfoRelationByChildEdbInfoId(edbInfoId int) (item *EdbInfoRelation, err error) {
 	msql := ` SELECT * FROM edb_info_relation WHERE child_edb_info_id = ? or edb_info_id=?`
 	err = global.DEFAULT_DmSQL.Raw(msql, edbInfoId, edbInfoId).First(&item).Error
 	return
 }
 
-// GetEdbInfoRelationListByChildEdbInfoId 根据间接引用中的的计算指标ID查询引用列表
 func GetEdbInfoRelationListByChildEdbInfoId(edbInfoId int) (items []*EdbInfoRelation, err error) {
 	msql := ` SELECT * FROM edb_info_relation WHERE relation_type=1 AND child_edb_info_id=?`
 	err = global.DEFAULT_DmSQL.Raw(msql, edbInfoId).Scan(&items).Error
 	return
 }
 
-// GetEdbInfoRelationListByParentRelationId 根据间接引用中的的父级ID查询
 func GetEdbInfoRelationEdbIdsByParentRelationId(relationId, edbInfoId int) (items []int, err error) {
 	msql := ` SELECT edb_info_id FROM edb_info_relation WHERE parent_relation_id=? AND child_edb_info_id=?`
 	err = global.DEFAULT_DmSQL.Raw(msql, relationId, edbInfoId).Scan(&items).Error
 	return
 }
 
-// GetEdbInfoRelationByRelationIds 查询引用的指标ID
 func GetEdbInfoRelationByRelationIds(ids []int) (items []*EdbInfoRelation, err error) {
 	msql := ` SELECT * FROM edb_info_relation WHERE edb_info_relation_id in (` + utils.GetOrmInReplace(len(ids)) + `) `
 	err = global.DEFAULT_DmSQL.Raw(msql, ids).Scan(&items).Error
 	return
 }
 
-// UpdateSecondRelationEdbInfoId 更新指标替换后的间接引用记录
 func UpdateSecondRelationEdbInfoId(edbRelationIds []int, relationList []*EdbInfoRelation, refreshEdbInfoIds []int, indexCodeList []string) (err error) {
 	o := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -67,14 +62,12 @@ func UpdateSecondRelationEdbInfoId(edbRelationIds []int, relationList []*EdbInfo
 		}
 		_ = o.Commit()
 	}()
-	// 删除相关的间接引用
 	sql := ` DELETE FROM edb_info_relation WHERE relation_type=1 and parent_relation_id in (` + utils.GetOrmInReplace(len(edbRelationIds)) + `)`
 	err = o.Exec(sql, edbRelationIds).Error
 	if err != nil {
 		return
 	}
 
-	// 新增间接引用
 	relationCodesMap := make(map[string]struct{}, 0)
 	if len(relationList) > 0 {
 		for _, relation := range relationList {
@@ -89,7 +82,6 @@ func UpdateSecondRelationEdbInfoId(edbRelationIds []int, relationList []*EdbInfo
 	}
 
 	if len(refreshEdbInfoIds) > 0 {
-		// todo 更新指标的刷新状态
 		sql = ` UPDATE edb_info SET no_update = 0 WHERE  edb_info_id IN (` + utils.GetOrmInReplace(len(refreshEdbInfoIds)) + `) AND no_update = 1`
 		err = o.Exec(sql, refreshEdbInfoIds).Error
 		if err != nil {
@@ -97,9 +89,7 @@ func UpdateSecondRelationEdbInfoId(edbRelationIds []int, relationList []*EdbInfo
 		}
 	}
 
-	//更新数据源钢联化工指标
 	if len(indexCodeList) > 0 {
-		// 更改数据源的更新状态
 		sql = ` UPDATE base_from_mysteel_chemical_index SET is_stop = 0 WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodeList)) + `) and is_stop=1`
 		err = o.Exec(sql, indexCodeList).Error
 		if err != nil {
@@ -107,7 +97,6 @@ func UpdateSecondRelationEdbInfoId(edbRelationIds []int, relationList []*EdbInfo
 		}
 	}
 	if len(relationList) > 0 {
-		// 更新间接引用指标的关联ID
 		relationCodes := make([]string, 0)
 		for relationCode := range relationCodesMap {
 			relationCodes = append(relationCodes, relationCode)

+ 0 - 4
models/edb_python_code.go

@@ -5,7 +5,6 @@ import (
 	"time"
 )
 
-// EdbPythonCode python指标运算代码
 type EdbPythonCode struct {
 	EdbPythonCodeId int       `gorm:"primaryKey;autoIncrement;column:edb_python_code_id"`
 	EdbInfoId       int       `gorm:"column:edb_info_id" description:"指标id"`
@@ -15,19 +14,16 @@ type EdbPythonCode struct {
 	CreateTime      time.Time `gorm:"column:create_time"`
 }
 
-// Update 更新EdbPythonCode信息
 func (edbPythonCode *EdbPythonCode) Update(cols []string) (err error) {
 	err = global.DEFAULT_DmSQL.Model(edbPythonCode).Select(cols).Updates(edbPythonCode).Error
 	return
 }
 
-// AddEdbPythonCode python指标运算代码
 func AddEdbPythonCode(item *EdbPythonCode) (lastId int64, err error) {
 	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
-// GetEdbPythonCodeById 根据指标id获取python代码
 func GetEdbPythonCodeById(edbInfoId int) (item *EdbPythonCode, err error) {
 	sql := ` SELECT * FROM edb_python_code WHERE edb_info_id=? `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).First(&item).Error

+ 0 - 31
models/edb_refresh/edb_refresh_config.go

@@ -6,8 +6,6 @@ import (
 	"time"
 )
 
-// EdbRefreshConfig
-// @Description: 指标的刷新时间配置表
 type EdbRefreshConfig struct {
 	EdbRefreshConfigId  int       `gorm:"primaryKey;autoIncrement;column:edb_refresh_config_id"`
 	RefreshFrequency    string    `gorm:"column:refresh_frequency" description:"刷新频率"`
@@ -19,13 +17,6 @@ type EdbRefreshConfig struct {
 	CreateTime          time.Time `gorm:"column:create_time" description:"添加时间"`
 }
 
-// Add
-// @Description: 添加
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @param cols []string
-// @return err error
 func (m *EdbRefreshConfig) Add() (err error) {
 	if m.EdbRefreshConfigId > 0 {
 		err = errors.New("该配置已存在")
@@ -36,39 +27,17 @@ func (m *EdbRefreshConfig) Add() (err error) {
 	return
 }
 
-// Update
-// @Description: 更新
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @param cols []string
-// @return err error
 func (m *EdbRefreshConfig) Update(cols []string) (err error) {
 
 	err = global.DEFAULT_DmSQL.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
-// Delete
-// @Description: 删除
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @return err error
 func (m *EdbRefreshConfig) Delete() (err error) {
-	//todo 删除前判断
 	err = global.DEFAULT_DmSQL.Delete(m).Error
 	return
 }
 
-// GetEdbRefreshConfigListByCondition
-// @Description: 根据条条件获取刷新配置列表
-// @author: Roc
-// @datetime 2024-01-09 13:28:49
-// @param condition string
-// @param pars []interface{}
-// @return list []*EdbRefreshDefaultConfig
-// @return err error
 func GetEdbRefreshConfigListByCondition(condition string, pars []interface{}) (list []*EdbRefreshConfig, err error) {
 
 	sql := `SELECT * FROM edb_refresh_config

+ 0 - 38
models/edb_refresh/edb_refresh_default_config.go

@@ -7,8 +7,6 @@ import (
 	"time"
 )
 
-// EdbRefreshDefaultConfig
-// @Description: 指标的默认刷新时间配置表
 type EdbRefreshDefaultConfig struct {
 	Id                  int       `gorm:"primaryKey;autoIncrement;column:id" description:"唯一ID"`
 	Source              int       `gorm:"column:source" description:"来源"`
@@ -23,13 +21,6 @@ type EdbRefreshDefaultConfig struct {
 	CreateTime          time.Time `gorm:"column:create_time" description:"添加时间"`
 }
 
-// Add
-// @Description: 添加
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @param cols []string
-// @return err error
 func (m *EdbRefreshDefaultConfig) Add() (err error) {
 	if m.Id > 0 {
 		err = errors.New("该配置已存在")
@@ -41,38 +32,17 @@ func (m *EdbRefreshDefaultConfig) Add() (err error) {
 	return
 }
 
-// Update
-// @Description: 更新
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @param cols []string
-// @return err error
 func (m *EdbRefreshDefaultConfig) Update(cols []string) (err error) {
 
 	err = global.DEFAULT_DmSQL.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
-// Delete
-// @Description: 删除
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @return err error
 func (m *EdbRefreshDefaultConfig) Delete() (err error) {
 	err = global.DEFAULT_DmSQL.Delete(m).Error
 	return
 }
 
-// GetListByCondition
-// @Description: 根据条条件获取默认配置列表
-// @author: Roc
-// @datetime 2024-01-09 13:28:49
-// @param condition string
-// @param pars []interface{}
-// @return list []*EdbRefreshDefaultConfig
-// @return err error
 func GetListByCondition(condition string, pars []interface{}) (list []*EdbRefreshDefaultConfig, err error) {
 
 	sql := `SELECT * FROM edb_refresh_default_config
@@ -87,14 +57,6 @@ func GetListByCondition(condition string, pars []interface{}) (list []*EdbRefres
 	return
 }
 
-// GetDefaultRefreshEdbInfoListBySourceAndSubSource
-// @Description: 根据来源获取默认刷新的指标列表
-// @author: Roc
-// @datetime 2024-01-09 16:22:49
-// @param source int
-// @param subSource int
-// @return list []*data_manage.EdbInfo
-// @return err error
 func GetDefaultRefreshEdbInfoListBySourceAndSubSource(source, subSource int, frequencyList []string) (list []*EdbInfoListAndRefreshConfig, err error) {
 	num := len(frequencyList)
 	if num <= 0 {

+ 0 - 30
models/edb_refresh/edb_refresh_mapping.go

@@ -7,8 +7,6 @@ import (
 	"time"
 )
 
-// EdbRefreshMapping
-// @Description: 指标刷新时间配置关系表
 type EdbRefreshMapping struct {
 	EdbRefreshMappingId int       `gorm:"primaryKey;autoIncrement;column:edb_refresh_mapping_id" description:"映射ID"`
 	Source              int       `gorm:"column:source" description:"来源"`
@@ -21,13 +19,6 @@ type EdbRefreshMapping struct {
 	CreateTime          time.Time `gorm:"column:create_time" description:"添加时间"`
 }
 
-// Add
-// @Description: 添加
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @param cols []string
-// @return err error
 func (m *EdbRefreshMapping) Add() (err error) {
 	if m.EdbRefreshMappingId > 0 {
 		err = errors.New("该配置已存在")
@@ -38,24 +29,11 @@ func (m *EdbRefreshMapping) Add() (err error) {
 	return
 }
 
-// Update
-// @Description: 更新
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @param cols []string
-// @return err error
 func (m *EdbRefreshMapping) Update(cols []string) (err error) {
 	err = global.DEFAULT_DmSQL.Model(m).Select(cols).Updates(m).Error
 	return
 }
 
-// Delete
-// @Description: 删除
-// @author: Roc
-// @receiver m
-// @datetime 2023-12-14 16:11:10
-// @return err error
 func (m *EdbRefreshMapping) Delete() (err error) {
 	err = global.DEFAULT_DmSQL.Delete(m).Error
 	return
@@ -82,14 +60,6 @@ type EdbInfoListAndRefreshConfig struct {
 	DataRefreshNum     int       `gorm:"column:data_refresh_num" description:"刷新的期数"`
 }
 
-// GetConfigRefreshEdbInfoListBySourceAndSubSource
-// @Description:  根据来源和配置id列表获取指标列表
-// @author: Roc
-// @datetime 2024-01-09 17:28:06
-// @param sourceList []int
-// @param configIdList []int
-// @return list []*data_manage.EdbInfoList
-// @return err error
 func GetConfigRefreshEdbInfoListBySourceAndSubSource(sourceList, configIdList []int) (list []*EdbInfoListAndRefreshConfig, err error) {
 	num := len(configIdList)
 	if num <= 0 {

+ 0 - 10
models/edb_refresh/edb_refresh_source.go

@@ -5,8 +5,6 @@ import (
 	"time"
 )
 
-// EdbRefreshSource
-// @Description: 刷新的数据源表
 type EdbRefreshSource struct {
 	Id            int       `gorm:"primaryKey;autoIncrement;column:id" description:"ID"`
 	Source        int       `gorm:"column:source" description:"来源"`
@@ -18,8 +16,6 @@ type EdbRefreshSource struct {
 	CreateTime    time.Time `gorm:"column:create_time" description:"创建时间"`
 }
 
-// EdbRefreshSourceList
-// @Description: 获取刷新的数据源列表
 type EdbRefreshSourceList struct {
 	Source        int                    `description:"来源"`
 	SourceName    string                 `description:"来源名称"`
@@ -29,12 +25,6 @@ type EdbRefreshSourceList struct {
 	HasChild      int                    `description:"是否有子来源,0:否,1:是"`
 }
 
-// GetAllList
-// @Description: 获取刷新数据源列表
-// @author: Roc
-// @datetime 2024-01-03 15:03:24
-// @return items []*EdbRefreshSource
-// @return err error
 func (m EdbRefreshSource) GetAllList() (items []*EdbRefreshSource, err error) {
 
 	sql := ` SELECT *  FROM edb_refresh_source ORDER BY id ASC `

+ 0 - 10
models/edb_refresh/request/edb_info_refresh.go

@@ -1,7 +1,5 @@
 package request
 
-// SaveEdbRefreshDefaultConfigReq
-// @Description: 设置默认刷新时间配置
 type SaveEdbRefreshDefaultConfigReq struct {
 	Source    int                `description:"来源"`
 	SubSource int                `description:"子来源"`
@@ -9,8 +7,6 @@ type SaveEdbRefreshDefaultConfigReq struct {
 	List      []RefreshConfigReq `description:"刷新配置项"`
 }
 
-// RefreshConfigReq
-// @Description: 刷新时间配置项
 type RefreshConfigReq struct {
 	RefreshFrequency    string `description:"刷新频率"`
 	RefreshFrequencyDay int    `description:"具体刷新的日期"`
@@ -19,8 +15,6 @@ type RefreshConfigReq struct {
 	RefreshDataNum      int    `description:"刷新单元格数"`
 }
 
-// SaveEdbRefreshConfigReq
-// @Description: 设置指标的刷新时间配置
 type SaveEdbRefreshConfigReq struct {
 	Source          int                `description:"来源"`
 	SubSource       int                `description:"子来源"`
@@ -35,8 +29,6 @@ type SaveEdbRefreshConfigReq struct {
 	List            []RefreshConfigReq `description:"刷新配置项"`
 }
 
-// SaveEdbRefreshStatusReq
-// @Description: 设置指标的刷新状态
 type SaveEdbRefreshStatusReq struct {
 	Source          int    `description:"来源"`
 	SubSource       int    `description:"子来源"`
@@ -51,8 +43,6 @@ type SaveEdbRefreshStatusReq struct {
 	ModifyStatus    string `description:"需要更改的状态,枚举值:启用、暂停"`
 }
 
-// GetEdbRefreshConfigReq
-// @Description: 获取默认配置的请求参数
 type GetEdbRefreshConfigReq struct {
 	Source    int `description:"指标来源ID"`
 	SubSource int `description:"子来源"`

+ 0 - 13
models/edb_source.go

@@ -25,12 +25,10 @@ type EdbSource struct {
 	EdbCodeRequired  int    `gorm:"column:edb_code_required;not null;default:0" description:"指标编码是否必填: 0-否; 1-是"`
 }
 
-// TableName 获取表名
 func (e *EdbSource) TableName() string {
 	return "edb_source"
 }
 
-// GetEdbSourceItemsByCondition 获取指标来源列表
 func GetEdbSourceItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EdbSource, err error) {
 
 	fields := strings.Join(fieldArr, ",")
@@ -46,7 +44,6 @@ func GetEdbSourceItemsByCondition(condition string, pars []interface{}, fieldArr
 	return
 }
 
-// InitEdbSource 初始化时加载指标来源对应信息, 避免循环中查库, 注意edb_source表修改table_name的话需要重启服务
 func InitEdbSource() {
 	EdbSourceIdMap = make(map[int]*EdbSource)
 	EdbSourceExtendIdMap = make(map[string]int)
@@ -69,11 +66,6 @@ func InitEdbSource() {
 	}
 }
 
-// GetEdbSourceItemsSourceId
-// @Description: 根据来源id获取指标来源
-// @param sourceId
-// @return item
-// @return err
 func GetEdbSourceItemsSourceId(sourceId int) (item *EdbSource, err error) {
 	sql := `SELECT * FROM edb_source WHERE 1=1 AND edb_source_id = ? `
 	err = global.DEFAULT_DmSQL.Raw(sql, sourceId).First(&item).Error
@@ -81,10 +73,6 @@ func GetEdbSourceItemsSourceId(sourceId int) (item *EdbSource, err error) {
 	return
 }
 
-// GetEdbSourceBySourceId
-// @Description: 根据来源id获取指标来源
-// @param sourceId
-// @return sourceItem
 func GetEdbSourceBySourceId(sourceId int) (sourceItem *EdbSource) {
 	sourceItem, ok := EdbSourceIdMap[sourceId]
 	if !ok {
@@ -94,7 +82,6 @@ func GetEdbSourceBySourceId(sourceId int) (sourceItem *EdbSource) {
 		}
 		if item.EdbSourceId > 0 {
 			sourceItem = item
-			// 写入到内存中
 			EdbSourceIdMap[sourceId] = sourceItem
 		}
 	}

+ 0 - 13
models/edb_trade_analysis.go

@@ -7,20 +7,16 @@ import (
 	"time"
 )
 
-// EdbTradeAnalysis 持仓分析指标
 type EdbTradeAnalysis struct{}
 
-// GetSource 获取来源编码id
 func (obj EdbTradeAnalysis) GetSource() int {
 	return utils.DATA_SOURCE_TRADE_ANALYSIS
 }
 
-// GetSourceName 获取来源名称
 func (obj EdbTradeAnalysis) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_TRADE_ANALYSIS
 }
 
-// GetEdbType 获取指标类型
 func (obj EdbTradeAnalysis) GetEdbType() int {
 	return utils.DEFAULT_EDB_TYPE
 }
@@ -31,7 +27,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		return
 	}
 
-	// 真实数据的最大日期, 插入规则配置的日期
 	var realDataMaxDate, edbDataInsertConfigDate time.Time
 	var edbDataInsertConfig *EdbDataInsertConfig
 	var isFindConfigDateRealData bool
@@ -47,7 +42,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		}
 	}
 
-	// 获取已有数据
 	dataOb := new(EdbDataTradeAnalysis)
 	dataExists := make(map[string]*EdbDataTradeAnalysis)
 	searchExistMap := make(map[string]*EdbInfoSearchData)
@@ -73,7 +67,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		}
 	}
 
-	// 比对数据
 	insertExist := make(map[string]bool)
 	insertData := make([]*EdbDataTradeAnalysis, 0)
 	updateData := make([]*EdbDataTradeAnalysis, 0)
@@ -85,7 +78,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		}
 		strDate := v.DataTime
 
-		// 手动插入数据的判断
 		if realDataMaxDate.IsZero() || dataDate.After(realDataMaxDate) {
 			realDataMaxDate = dataDate
 		}
@@ -93,7 +85,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 			isFindConfigDateRealData = true
 		}
 
-		// 入库值
 		saveVal := decimal.NewFromFloat(v.Value).Round(4).String()
 		d, e := decimal.NewFromString(saveVal)
 		if e != nil {
@@ -102,7 +93,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		}
 		saveFloat, _ := d.Float64()
 
-		// 更新
 		exists := dataExists[strDate]
 		if exists != nil {
 			existVal := decimal.NewFromFloat(exists.Value).Round(4).String()
@@ -113,7 +103,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 			continue
 		}
 
-		// 新增
 		if insertExist[strDate] {
 			continue
 		}
@@ -131,7 +120,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		})
 	}
 
-	// 批量新增/更新
 	if len(insertData) > 0 {
 		if e := dataOb.CreateMulti(insertData); e != nil {
 			err = fmt.Errorf("批量新增指标数据失败, %v", e)
@@ -145,7 +133,6 @@ func (obj EdbTradeAnalysis) Refresh(edbInfo *EdbInfo, convertData []*EdbDataList
 		}
 	}
 
-	// 处理手工数据补充的配置
 	HandleConfigInsertEdbData(realDataMaxDate, edbDataInsertConfig, edbInfo.EdbInfoId, obj.GetSource(), 0, searchExistMap, isFindConfigDateRealData)
 
 	return

+ 0 - 1
models/excel/excel_classify.go

@@ -4,7 +4,6 @@ import (
 	"time"
 )
 
-// ExcelClassify excel表格分类
 type ExcelClassify struct {
 	ExcelClassifyId   int       `gorm:"primaryKey;autoIncrement;column:excel_classify_id" description:"表格分类ID"`
 	Source            int       `gorm:"column:source" description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`

+ 0 - 4
models/excel/excel_edb_mapping.go

@@ -5,7 +5,6 @@ import (
 	"time"
 )
 
-// ExcelEdbMapping excel与指标的关系表
 type ExcelEdbMapping struct {
 	ExcelEdbMappingId int       `gorm:"primaryKey;autoIncrement;column:excel_edb_mapping_id"`
 	ExcelInfoId       int       `gorm:"column:excel_info_id" description:"excel的id"`
@@ -15,7 +14,6 @@ type ExcelEdbMapping struct {
 	ModifyTime        time.Time `gorm:"column:modify_time" description:"修改时间"`
 }
 
-// Add 添加excel与指标的关系
 func (e *ExcelEdbMapping) Add() (err error) {
 
 	err = global.DEFAULT_DmSQL.Create(e).Error
@@ -34,13 +32,11 @@ type ExcelEdbMappingItem struct {
 	DataSequenceStr  string `description:"数据序列公式"`
 }
 
-// CalculateFormula 计算公式
 type CalculateFormula struct {
 	DateSequenceStr string `json:"DateSequenceStr"`
 	DataSequenceStr string `json:"DataSequenceStr"`
 }
 
-// GetExcelEdbMappingByEdbInfoId 根据指标id获取配置关系
 func GetExcelEdbMappingByEdbInfoId(edbInfoId int) (item *ExcelEdbMapping, err error) {
 
 	sql := ` SELECT *  FROM excel_edb_mapping WHERE 1=1 AND edb_info_id = ? `

+ 0 - 7
models/excel/excel_info.go

@@ -4,7 +4,6 @@ import (
 	"time"
 )
 
-// ExcelInfo excel表格详情表
 type ExcelInfo struct {
 	ExcelInfoId     int       `gorm:"primaryKey;autoIncrement;column:excel_info_id"`
 	Source          int       `gorm:"column:source" description:"表格来源,1:excel插件的表格,2:自定义表格,3:混合表格,4:自定义分析,默认:1"`
@@ -23,7 +22,6 @@ type ExcelInfo struct {
 	CreateTime      time.Time `gorm:"column:create_time" description:"创建日期"`
 }
 
-// TableDataReq 自定义表格请求参数
 type TableDataReq struct {
 	EdbInfoIdList []int             `description:"指标id列表,从左至右,从上到下的顺序"`
 	Sort          int               `description:"日期排序,1:倒序,2:正序"`
@@ -31,7 +29,6 @@ type TableDataReq struct {
 	TextRowData   [][]ManualDataReq `description:"文本列表"`
 }
 
-// EdbInfoData 自定义表格的数据
 type EdbInfoData struct {
 	EdbInfoId    int             `description:"指标ID"`
 	Tag          string          `description:"标签"`
@@ -42,7 +39,6 @@ type EdbInfoData struct {
 	Data         []ManualDataReq `description:"单元格数据列表"`
 }
 
-// ManualDataReq 自定义表格的单元格数据
 type ManualDataReq struct {
 	DataType            int               `description:"数据类型,1:普通的,2:插值法,3:手动输入,4:公式计算,5:预测值"`
 	DataTime            string            `description:"所属日期"`
@@ -52,19 +48,16 @@ type ManualDataReq struct {
 	RelationEdbInfoList []RelationEdbInfo `description:"关联指标(计算公式中关联的指标,用于计算的时候去匹配)"`
 }
 
-// RelationEdbInfo 自定义表格中单元格的关联指标
 type RelationEdbInfo struct {
 	Tag string `description:"指标标签"`
 	Row string `description:"第几行"`
 }
 
-// MixedTableReq 混合表格保存请求参数
 type MixedTableReq struct {
 	CellRelation string                    `description:"单元格关系"`
 	Data         [][]MixedTableCellDataReq `description:"混合表格单元格参数"`
 }
 
-// MixedTableCellDataReq 混合表格单元格参数
 type MixedTableCellDataReq struct {
 	Uid          string `description:"单元格唯一标识"`
 	DataType     int    `description:"数据类型,1:日期,2:指标,3:自定义文本,4:插值"`

+ 0 - 19
models/factor_edb_series.go

@@ -15,7 +15,6 @@ const (
 	FactorEdbSeriesCalculated    = 2
 )
 
-// FactorEdbSeries 因子指标系列表
 type FactorEdbSeries struct {
 	FactorEdbSeriesId int       `gorm:"primaryKey;autoIncrement;column:factor_edb_series_id"`
 	SeriesName        string    `gorm:"column:series_name" description:"系列名称"`
@@ -146,7 +145,6 @@ func (m *FactorEdbSeries) GetPageItemsByCondition(condition string, pars []inter
 	return
 }
 
-// FactorEdbSeriesItem 多因子系列信息
 type FactorEdbSeriesItem struct {
 	SeriesId      int                            `description:"多因子系列ID"`
 	SeriesName    string                         `description:"系列名称"`
@@ -170,7 +168,6 @@ func (m *FactorEdbSeries) Format2Item() (item *FactorEdbSeriesItem) {
 	return
 }
 
-// FactorEdbSeriesCalculatePars 计算参数
 type FactorEdbSeriesCalculatePars struct {
 	Formula       interface{} `description:"N值/移动天数/指数修匀alpha值/计算公式等"`
 	Calendar      string      `description:"公历/农历"`
@@ -182,7 +179,6 @@ type FactorEdbSeriesCalculatePars struct {
 	Sort          int         `description:"计算顺序"`
 }
 
-// CreateSeriesAndMapping 新增系列和指标关联
 func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings []*FactorEdbSeriesMapping) (seriesId int, err error) {
 	if item == nil {
 		err = fmt.Errorf("series is nil")
@@ -204,7 +200,6 @@ func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings
 		return
 	}
 	seriesId = item.FactorEdbSeriesId
-	//item.FactorEdbSeriesId = seriesId
 
 	if len(mappings) > 0 {
 		for _, v := range mappings {
@@ -220,7 +215,6 @@ func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings
 	return
 }
 
-// EditSeriesAndMapping 编辑系列和指标关联
 func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings []*FactorEdbSeriesMapping, updateCols []string) (err error) {
 	if item == nil {
 		err = fmt.Errorf("series is nil")
@@ -242,7 +236,6 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
 		return
 	}
 
-	// 清除原指标关联
 	mappingOb := new(FactorEdbSeriesMapping)
 	cond := fmt.Sprintf("%s = ?", mappingOb.Cols().FactorEdbSeriesId)
 	pars := make([]interface{}, 0)
@@ -268,14 +261,12 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
 	return
 }
 
-// FactorEdbSeriesStepCalculateResp 批量计算响应
 type FactorEdbSeriesStepCalculateResp struct {
 	SeriesId int                                  `description:"多因子指标系列ID"`
 	Fail     []FactorEdbSeriesStepCalculateResult `description:"计算失败的指标"`
 	Success  []FactorEdbSeriesStepCalculateResult `description:"计算成功的指标"`
 }
 
-// FactorEdbSeriesStepCalculateResult 批量计算结果
 type FactorEdbSeriesStepCalculateResult struct {
 	EdbInfoId int    `description:"指标ID"`
 	EdbCode   string `description:"指标编码"`
@@ -283,19 +274,16 @@ type FactorEdbSeriesStepCalculateResult struct {
 	ErrMsg    string `description:"错误信息"`
 }
 
-// FactorEdbSeriesDetail 因子指标系列-详情
 type FactorEdbSeriesDetail struct {
 	*FactorEdbSeriesItem
 	EdbMappings []*FactorEdbSeriesMappingItem
 }
 
-// FactorEdbSeriesCorrelationMatrixResp 因子指标系列-相关性矩阵响应
 type FactorEdbSeriesCorrelationMatrixResp struct {
 	Fail    []FactorEdbSeriesCorrelationMatrixItem `description:"计算失败的指标"`
 	Success []FactorEdbSeriesCorrelationMatrixItem `description:"计算成功的指标"`
 }
 
-// FactorEdbSeriesCorrelationMatrixItem 因子指标系列-相关性矩阵信息
 type FactorEdbSeriesCorrelationMatrixItem struct {
 	SeriesId   int                                      `description:"因子指标系列ID"`
 	EdbInfoId  int                                      `description:"指标ID"`
@@ -308,13 +296,11 @@ type FactorEdbSeriesCorrelationMatrixItem struct {
 	SourceName string                                   `description:"指标来源名称"`
 }
 
-// FactorEdbSeriesCorrelationMatrixValues 因子指标系列-相关性矩阵XY值
 type FactorEdbSeriesCorrelationMatrixValues struct {
 	XData int     `description:"X轴数据"`
 	YData float64 `description:"Y轴数据"`
 }
 
-// FactorEdbSeriesCorrelationMatrixOrder 排序规则[0 1 2 3 -1 -2 -3]
 type FactorEdbSeriesCorrelationMatrixOrder []FactorEdbSeriesCorrelationMatrixValues
 
 func (a FactorEdbSeriesCorrelationMatrixOrder) Len() int {
@@ -326,28 +312,23 @@ func (a FactorEdbSeriesCorrelationMatrixOrder) Swap(i, j int) {
 }
 
 func (a FactorEdbSeriesCorrelationMatrixOrder) Less(i, j int) bool {
-	// 非负数优先
 	if a[i].XData >= 0 && a[j].XData < 0 {
 		return true
 	}
 	if a[i].XData < 0 && a[j].XData >= 0 {
 		return false
 	}
-	// 非负数升序排序
 	if a[i].XData >= 0 {
 		return a[i].XData < a[j].XData
 	}
-	// 负数按绝对值的降序排序(即数值的升序)
 	return a[i].XData > a[j].XData
 }
 
-// FactorEdbRecalculateReq 因子指标重新计算
 type FactorEdbRecalculateReq struct {
 	EdbInfoId int    `description:"指标ID"`
 	EdbCode   string `description:"指标编码"`
 }
 
-// FactorEdbChartRecalculateReq 因子指标关联的图表数据重计算
 type FactorEdbChartRecalculateReq struct {
 	ChartInfoId int `description:"图表ID"`
 }

+ 0 - 3
models/factor_edb_series_calculate_data.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// FactorEdbSeriesCalculateData 因子指标系列-指标计算数据表
 type FactorEdbSeriesCalculateData struct {
 	FactorEdbSeriesCalculateDataId int       `gorm:"primaryKey;autoIncrement;column:factor_edb_series_calculate_data_id" description:"因子指标系列计算数据ID"`
 	FactorEdbSeriesId              int       `gorm:"column:factor_edb_series_id" description:"因子指标系列ID"`
@@ -159,7 +158,6 @@ func (m *FactorEdbSeriesCalculateData) GetPageItemsByCondition(condition string,
 	return
 }
 
-// FactorEdbSeriesCalculateDataItem 因子指标系列-计算数据信息
 type FactorEdbSeriesCalculateDataItem struct {
 	DataId            int     `description:"数据ID"`
 	FactorEdbSeriesId int     `description:"因子指标系列ID"`
@@ -179,7 +177,6 @@ func (m *FactorEdbSeriesCalculateData) Format2Item() (item *FactorEdbSeriesCalcu
 	return
 }
 
-// TransEdbSeriesCalculateData2EdbDataList 转换数据格式
 func TransEdbSeriesCalculateData2EdbDataList(items []*FactorEdbSeriesCalculateData) (list []*EdbInfoSearchData) {
 	list = make([]*EdbInfoSearchData, 0)
 	for _, v := range items {

+ 0 - 2
models/factor_edb_series_calculate_data_qjjs.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// FactorEdbSeriesCalculateDataQjjs 因子指标系列-区间计算数据表
 type FactorEdbSeriesCalculateDataQjjs struct {
 	FactorEdbSeriesCalculateDataId int       `gorm:"primaryKey;autoIncrement;column:factor_edb_series_calculate_data_id_qjjs" description:"因子指标系列区间计算数据ID"`
 	FactorEdbSeriesId              int       `gorm:"column:factor_edb_series_id_qjjs" description:"因子指标系列ID"`
@@ -157,7 +156,6 @@ func (m *FactorEdbSeriesCalculateDataQjjs) GetPageItemsByCondition(condition str
 	return
 }
 
-// FactorEdbSeriesCalculateDataQjjsItem 因子指标系列-计算数据信息
 type FactorEdbSeriesCalculateDataQjjsItem struct {
 	DataId            int     `description:"数据ID"`
 	FactorEdbSeriesId int     `description:"因子指标系列ID"`

+ 0 - 2
models/factor_edb_series_calculate_func.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// FactorEdbSeriesCalculateFunc 多因子系列-计算方式表
 type FactorEdbSeriesCalculateFunc struct {
 	FactorEdbSeriesCalculateFuncId int       `gorm:"primaryKey;autoIncrement;column:factor_edb_series_calculate_func_id" description:"多因子系列计算方式ID"`
 	CalculateName                  string    `gorm:"column:calculate_name" description:"计算方式名称"`
@@ -137,7 +136,6 @@ func (m *FactorEdbSeriesCalculateFunc) GetPageItemsByCondition(condition string,
 	return
 }
 
-// FactorEdbSeriesCalculateFuncItem 多因子系列-计算方式
 type FactorEdbSeriesCalculateFuncItem struct {
 	CalculateName string `description:"计算方式名称"`
 	Source        int    `description:"计算方式来源"`

+ 0 - 3
models/factor_edb_series_chart_mapping.go

@@ -13,7 +13,6 @@ const (
 	FactorEdbSeriesChartCalculateTypeRange       = 2 // 	区间计算
 )
 
-// FactorEdbSeriesChartMapping 因子指标系列-图表关联
 type FactorEdbSeriesChartMapping struct {
 	FactorEdbSeriesChartMappingId int       `gorm:"primaryKey;autoIncrement;column:factor_edb_series_chart_mapping_id" description:"因子指标系列图表映射ID"`
 	ChartInfoId                   int       `gorm:"column:chart_info_id" description:"图表ID"`
@@ -155,7 +154,6 @@ func (m *FactorEdbSeriesChartMapping) GetPageItemsByCondition(condition string,
 	return
 }
 
-// GetDistinctSeriesIdByChartId 获取图表关联的系列ID
 func (m *FactorEdbSeriesChartMapping) GetDistinctSeriesIdByChartId(chartId int) (seriesIds []int, err error) {
 
 	sql := fmt.Sprintf(`SELECT DISTINCT %s FROM %s WHERE %s = ?`, m.Cols().FactorEdbSeriesId, m.TableName(), m.Cols().ChartInfoId)
@@ -163,7 +161,6 @@ func (m *FactorEdbSeriesChartMapping) GetDistinctSeriesIdByChartId(chartId int)
 	return
 }
 
-// FactorEdbSeriesChartCalculateCorrelationReq 图表相关性计算参数
 type FactorEdbSeriesChartCalculateCorrelationReq struct {
 	BaseEdbInfoId  int    `description:"标的指标ID"`
 	LeadValue      int    `description:"领先期数"`

+ 0 - 2
models/factor_edb_series_mapping.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// FactorEdbSeriesMapping 因子指标系列-指标关联表
 type FactorEdbSeriesMapping struct {
 	FactorEdbSeriesMappingId int       `gorm:"primaryKey;autoIncrement;column:factor_edb_series_mapping_id" description:"因子指标系列映射ID"`
 	FactorEdbSeriesId        int       `gorm:"column:factor_edb_series_id" description:"因子指标系列ID"`
@@ -145,7 +144,6 @@ func (m *FactorEdbSeriesMapping) GetPageItemsByCondition(condition string, pars
 	return
 }
 
-// FactorEdbSeriesMappingItem 因子指标系列-指标关联信息
 type FactorEdbSeriesMappingItem struct {
 	SeriesId  int    `description:"因子指标系列ID"`
 	EdbInfoId int    `description:"指标ID"`

+ 0 - 19
models/handle_data.go

@@ -8,7 +8,6 @@ import (
 	"time"
 )
 
-// HandleDataByLinearRegression 插值法补充数据(线性方程式)
 func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDataMap map[string]float64) (newList []*EdbInfoSearchData, err error) {
 	if len(edbInfoDataList) < 2 {
 		return
@@ -18,7 +17,6 @@ func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDa
 	for _, v := range edbInfoDataList {
 		handleDataMap[v.DataTime] = v.Value
 
-		// 第一个数据就给过滤了,给后面的试用
 		if startEdbInfoData == nil {
 			startEdbInfoData = v
 			newList = append(newList, &EdbInfoSearchData{
@@ -29,13 +27,11 @@ func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDa
 			continue
 		}
 
-		// 获取两条数据之间相差的天数
 		startDataTime, _ := time.ParseInLocation(utils.FormatDate, startEdbInfoData.DataTime, time.Local)
 		currDataTime, _ := time.ParseInLocation(utils.FormatDate, v.DataTime, time.Local)
 		betweenHour := int(currDataTime.Sub(startDataTime).Hours())
 		betweenDay := betweenHour / 24
 
-		// 如果相差一天,那么过滤
 		if betweenDay <= 1 {
 			startEdbInfoData = v
 			newList = append(newList, &EdbInfoSearchData{
@@ -46,7 +42,6 @@ func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDa
 			continue
 		}
 
-		// 生成线性方程式
 		var a, b float64
 		{
 			coordinateData := make([]utils.Coordinate, 0)
@@ -68,7 +63,6 @@ func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDa
 			}
 		}
 
-		// 生成对应的值
 		{
 			for i := 1; i < betweenDay; i++ {
 				tmpDataTime := startDataTime.AddDate(0, 0, i)
@@ -85,7 +79,6 @@ func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDa
 			}
 		}
 
-		// 最后将自己赋值
 		newList = append(newList, &EdbInfoSearchData{
 			EdbDataId: v.EdbDataId,
 			DataTime:  v.DataTime,
@@ -98,7 +91,6 @@ func HandleDataByLinearRegression(edbInfoDataList []*EdbInfoSearchData, handleDa
 	return
 }
 
-// HandleDataByPreviousData 当前日期无值时,用上一个日期的数据补充当前日期的数据
 func HandleDataByPreviousData(edbInfoDataList []*EdbInfoSearchData, handleDataMap map[string]float64) (err error) {
 	if len(edbInfoDataList) < 2 {
 		return
@@ -108,25 +100,21 @@ func HandleDataByPreviousData(edbInfoDataList []*EdbInfoSearchData, handleDataMa
 	for _, v := range edbInfoDataList {
 		handleDataMap[v.DataTime] = v.Value
 
-		// 第一个数据就给过滤了,给后面的试用
 		if startEdbInfoData == nil {
 			startEdbInfoData = v
 			continue
 		}
 
-		// 获取两条数据之间相差的天数
 		startDataTime, _ := time.ParseInLocation(utils.FormatDate, startEdbInfoData.DataTime, time.Local)
 		currDataTime, _ := time.ParseInLocation(utils.FormatDate, v.DataTime, time.Local)
 		betweenHour := int(currDataTime.Sub(startDataTime).Hours())
 		betweenDay := betweenHour / 24
 
-		// 如果相差一天,那么过滤
 		if betweenDay <= 1 {
 			startEdbInfoData = v
 			continue
 		}
 
-		// 生成对应的值
 		{
 			for i := 1; i < betweenDay; i++ {
 				tmpDataTime := startDataTime.AddDate(0, 0, i)
@@ -140,7 +128,6 @@ func HandleDataByPreviousData(edbInfoDataList []*EdbInfoSearchData, handleDataMa
 	return
 }
 
-// HandleDataByLinearRegressionByTime 插值法补充数据(线性方程式) 时间为日期格式,而不是字符串
 func HandleDataByLinearRegressionByTime(edbInfoDataList []*EdbInfoData, handleDataMap map[time.Time]float64) (newList []*EdbInfoData, err error) {
 	if len(edbInfoDataList) < 2 {
 		return
@@ -150,7 +137,6 @@ func HandleDataByLinearRegressionByTime(edbInfoDataList []*EdbInfoData, handleDa
 	for _, v := range edbInfoDataList {
 		handleDataMap[v.DataTime] = v.Value
 
-		// 第一个数据就给过滤了,给后面的试用
 		if startEdbInfoData == nil {
 			startEdbInfoData = v
 			newList = append(newList, &EdbInfoData{
@@ -161,13 +147,11 @@ func HandleDataByLinearRegressionByTime(edbInfoDataList []*EdbInfoData, handleDa
 			continue
 		}
 
-		// 获取两条数据之间相差的天数
 		startDataTime := startEdbInfoData.DataTime
 		currDataTime := v.DataTime
 		betweenHour := int(currDataTime.Sub(startDataTime).Hours())
 		betweenDay := betweenHour / 24
 
-		// 如果相差一天,那么过滤
 		if betweenDay <= 1 {
 			startEdbInfoData = v
 			newList = append(newList, &EdbInfoData{
@@ -178,7 +162,6 @@ func HandleDataByLinearRegressionByTime(edbInfoDataList []*EdbInfoData, handleDa
 			continue
 		}
 
-		// 生成线性方程式
 		var a, b float64
 		{
 			coordinateData := make([]utils.Coordinate, 0)
@@ -200,7 +183,6 @@ func HandleDataByLinearRegressionByTime(edbInfoDataList []*EdbInfoData, handleDa
 			}
 		}
 
-		// 生成对应的值
 		{
 			for i := 1; i < betweenDay; i++ {
 				tmpDataTime := startDataTime.AddDate(0, 0, i)
@@ -217,7 +199,6 @@ func HandleDataByLinearRegressionByTime(edbInfoDataList []*EdbInfoData, handleDa
 			}
 		}
 
-		// 最后将自己赋值
 		newList = append(newList, &EdbInfoData{
 			EdbDataId: v.EdbDataId,
 			DataTime:  v.DataTime,

+ 0 - 146
models/mgo/base_from_business_data.go

@@ -11,11 +11,8 @@ import (
 	"time"
 )
 
-// BaseFromBusinessData
-// @Description: 自有数据集合
 type BaseFromBusinessData struct {
 	ID primitive.ObjectID `json:"_id" bson:"_id,omitempty"` // 文档id
-	//ID string `json:"_id" bson:"_id" ` // 文档id
 	BaseFromBusinessIndexId int64     `json:"base_from_business_index_id" bson:"base_from_business_index_id"` // 指标id
 	IndexCode               string    `json:"index_code" bson:"index_code"`                                   // 指标编码
 	DataTime                time.Time `json:"data_time" bson:"data_time"`                                     // 数据日期
@@ -24,46 +21,19 @@ type BaseFromBusinessData struct {
 	ModifyTime              time.Time `json:"modify_time" bson:"modify_time"`                                 // 修改时间
 }
 
-// CollectionName
-// @Description:  获取集合名称
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:36
-// @return string
 func (m *BaseFromBusinessData) CollectionName() string {
 	return "base_from_business_data"
 }
 
-// DataBaseName
-// @Description: 获取数据库名称
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:33
-// @return string
 func (m *BaseFromBusinessData) DataBaseName() string {
 	return utils.MgoDataDbName
 }
 
-// GetCollection
-// @Description: 获取mongodb集合的句柄
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:33
-// @return string
 func (m *BaseFromBusinessData) GetCollection() *qmgo.Collection {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	return db.Collection(m.CollectionName())
 }
 
-// GetAllDataList
-// @Description: 根据条件获取所有数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:42:19
-// @param sort []string
-// @param whereParams interface{}
-// @return result []BaseFromBusinessData
-// @return err error
 func (m *BaseFromBusinessData) GetAllDataList(whereParams interface{}, sort []string) (result []*BaseFromBusinessData, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -90,15 +60,6 @@ func (m *BaseFromBusinessData) GetAllDataList(whereParams interface{}, sort []st
 	return
 }
 
-// GetLimitDataList
-// @Description: 根据条件获取指定数量数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-06 17:08:32
-// @param whereParams interface{}
-// @param size int64
-// @return result []*BaseFromBusinessData
-// @return err error
 func (m *BaseFromBusinessData) GetLimitDataList(whereParams interface{}, size int64, sort []string) (result []*BaseFromBusinessData, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -125,17 +86,6 @@ func (m *BaseFromBusinessData) GetLimitDataList(whereParams interface{}, size in
 	return
 }
 
-// GetPageDataList
-// @Description: 根据条件获取分页数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:21:07
-// @param whereParams interface{}
-// @param startSize int64
-// @param size int64
-// @param sort []string
-// @return result []*BaseFromBusinessData
-// @return err error
 func (m *BaseFromBusinessData) GetPageDataList(whereParams interface{}, startSize, size int64, sort []string) (result []*BaseFromBusinessData, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -162,14 +112,6 @@ func (m *BaseFromBusinessData) GetPageDataList(whereParams interface{}, startSiz
 	return
 }
 
-// GetCountDataList
-// @Description:  根据条件获取数据列表总数
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:29:00
-// @param whereParams interface{}
-// @return count int64
-// @return err error
 func (m *BaseFromBusinessData) GetCountDataList(whereParams interface{}) (count int64, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -187,13 +129,6 @@ func (m *BaseFromBusinessData) GetCountDataList(whereParams interface{}) (count
 	return
 }
 
-// InsertDataByColl
-// @Description: 写入单条数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param addData interface{}
-// @return err error
 func (m *BaseFromBusinessData) InsertDataByColl(coll *qmgo.Collection, addData interface{}) (err error) {
 	ctx := context.TODO()
 	_, err = coll.InsertOne(ctx, addData)
@@ -205,14 +140,6 @@ func (m *BaseFromBusinessData) InsertDataByColl(coll *qmgo.Collection, addData i
 	return
 }
 
-// BatchInsertData
-// @Description: 批量写入数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *BaseFromBusinessData) BatchInsertData(bulk int, dataList []interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -220,15 +147,6 @@ func (m *BaseFromBusinessData) BatchInsertData(bulk int, dataList []interface{})
 	return m.BatchInsertDataByColl(coll, bulk, dataList)
 }
 
-// BatchInsertDataByColl
-// @Description: 批量写入数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param coll *qmgo.Collection
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *BaseFromBusinessData) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, dataList []interface{}) (err error) {
 	ctx := context.TODO()
 	dataNum := len(dataList)
@@ -236,7 +154,6 @@ func (m *BaseFromBusinessData) BatchInsertDataByColl(coll *qmgo.Collection, bulk
 		return
 	}
 
-	// 不设置每次保存切片数量大小,或者实际数据量小于设置的切片数量大小,那么就直接保存吧
 	if bulk <= 0 || dataNum <= bulk {
 		_, err = coll.InsertMany(ctx, dataList)
 		if err != nil {
@@ -246,7 +163,6 @@ func (m *BaseFromBusinessData) BatchInsertDataByColl(coll *qmgo.Collection, bulk
 		return
 	}
 
-	// 分批保存
 	i := 0
 	tmpAddDataList := make([]interface{}, 0)
 	for _, v := range dataList {
@@ -274,14 +190,6 @@ func (m *BaseFromBusinessData) BatchInsertDataByColl(coll *qmgo.Collection, bulk
 	return
 }
 
-// UpdateDataByColl
-// @Description: 单条数据修改
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *BaseFromBusinessData) UpdateDataByColl(coll *qmgo.Collection, whereParams, updateParams interface{}) (err error) {
 	ctx := context.TODO()
 	err = coll.UpdateOne(ctx, whereParams, updateParams)
@@ -292,14 +200,6 @@ func (m *BaseFromBusinessData) UpdateDataByColl(coll *qmgo.Collection, wherePara
 	return
 }
 
-// UpdateData
-// @Description: 单条数据修改
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *BaseFromBusinessData) UpdateData(whereParams, updateParams interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -312,26 +212,15 @@ func (m *BaseFromBusinessData) UpdateData(whereParams, updateParams interface{})
 	return
 }
 
-// HandleData
-// @Description: 事务处理数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 10:40:20
-// @param addDataList []BaseAddFromBusinessData
-// @param updateDataList []BaseFromBusinessData
-// @return result interface{}
-// @return err error
 func (m *BaseFromBusinessData) HandleData(addDataList, updateDataList []BaseFromBusinessData) (result interface{}, err error) {
 
 	ctx := context.TODO()
 
 	callback := func(sessCtx context.Context) (interface{}, error) {
-		// 重要:确保事务中的每一个操作,都使用传入的sessCtx参数
 
 		db := utils.MgoDataCli.Database(m.DataBaseName())
 		coll := db.Collection(m.CollectionName())
 
-		// 插入数据
 		if len(addDataList) > 0 {
 			_, err = coll.InsertMany(sessCtx, addDataList)
 			if err != nil {
@@ -339,7 +228,6 @@ func (m *BaseFromBusinessData) HandleData(addDataList, updateDataList []BaseFrom
 			}
 		}
 
-		// 修改
 
 		if len(updateDataList) > 0 {
 			for _, v := range updateDataList {
@@ -358,14 +246,6 @@ func (m *BaseFromBusinessData) HandleData(addDataList, updateDataList []BaseFrom
 	return
 }
 
-// GetEdbInfoMaxAndMinInfo
-// @Description: 获取当前指标的最大最小值
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:15:39
-// @param whereParams interface{}
-// @return result EdbInfoMaxAndMinInfo
-// @return err error
 func (m *BaseFromBusinessData) GetEdbInfoMaxAndMinInfo(whereParams interface{}) (result EdbInfoMaxAndMinInfo, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -389,15 +269,6 @@ func (m *BaseFromBusinessData) GetEdbInfoMaxAndMinInfo(whereParams interface{})
 	return
 }
 
-// GetLatestValue
-// @Description: 获取当前指标的最新数据记录
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:16:15
-// @param whereParams interface{}
-// @param selectParam interface{}
-// @return latestValue LatestValue
-// @return err error
 func (m *BaseFromBusinessData) GetLatestValue(whereParams, selectParam interface{}) (latestValue LatestValue, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -411,20 +282,11 @@ func (m *BaseFromBusinessData) GetLatestValue(whereParams, selectParam interface
 		return
 	}
 
-	//var result interface{}
-	//err = coll.Find(ctx, whereParams).Select(selectParam).One(&result)
 	err = coll.Find(ctx, whereParams).Select(selectParam).One(&latestValue)
 
 	return
 }
 
-// RemoveMany
-// @Description: 根据条件删除多条数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 13:17:02
-// @param whereParams interface{}
-// @return err error
 func (m *BaseFromBusinessData) RemoveMany(whereParams interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -432,14 +294,6 @@ func (m *BaseFromBusinessData) RemoveMany(whereParams interface{}) (err error) {
 	return m.RemoveManyByColl(coll, whereParams)
 }
 
-// RemoveManyByColl
-// @Description: 根据条件删除多条数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 13:18:42
-// @param coll *qmgo.Collection
-// @param whereParams interface{}
-// @return err error
 func (m *BaseFromBusinessData) RemoveManyByColl(coll *qmgo.Collection, whereParams interface{}) (err error) {
 	ctx := context.TODO()
 	_, err = coll.RemoveAll(ctx, whereParams)

+ 0 - 118
models/mgo/base_from_ths_hf_data.go

@@ -11,8 +11,6 @@ import (
 	"time"
 )
 
-// BaseFromThsHfData
-// @Description: 同花顺高频集合
 type BaseFromThsHfData struct {
 	ID                   primitive.ObjectID `json:"_id" bson:"_id,omitempty"`                                   // 文档id
 	BaseFromThsHfDataId  int64              `json:"base_from_ths_hf_data_id" bson:"base_from_ths_hf_data_id"`   // 指标数据ID
@@ -26,34 +24,19 @@ type BaseFromThsHfData struct {
 	DataTimestamp        int64              `json:"data_timestamp" bson:"data_timestamp"`                       // 数据日期时间戳
 }
 
-// CollectionName
-// @Description:  获取集合名称
 func (m *BaseFromThsHfData) CollectionName() string {
 	return "base_from_ths_hf_data"
 }
 
-// DataBaseName
-// @Description: 获取数据库名称
 func (m *BaseFromThsHfData) DataBaseName() string {
 	return utils.MgoDataDbName
 }
 
-// GetCollection
-// @Description: 获取mongodb集合的句柄
 func (m *BaseFromThsHfData) GetCollection() *qmgo.Collection {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	return db.Collection(m.CollectionName())
 }
 
-// GetAllDataList
-// @Description: 根据条件获取所有数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:42:19
-// @param sort []string
-// @param whereParams interface{}
-// @return result []BaseFromThsHfData
-// @return err error
 func (m *BaseFromThsHfData) GetAllDataList(whereParams interface{}, sort []string) (result []*BaseFromThsHfData, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -79,15 +62,6 @@ func (m *BaseFromThsHfData) GetAllDataList(whereParams interface{}, sort []strin
 	return
 }
 
-// GetLimitDataList
-// @Description: 根据条件获取指定数量数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-06 17:08:32
-// @param whereParams interface{}
-// @param size int64
-// @return result []*BaseFromThsHfData
-// @return err error
 func (m *BaseFromThsHfData) GetLimitDataList(whereParams interface{}, size int64, sort []string) (result []*BaseFromThsHfData, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -114,17 +88,6 @@ func (m *BaseFromThsHfData) GetLimitDataList(whereParams interface{}, size int64
 	return
 }
 
-// GetPageDataList
-// @Description: 根据条件获取分页数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:21:07
-// @param whereParams interface{}
-// @param startSize int64
-// @param size int64
-// @param sort []string
-// @return result []*BaseFromThsHfData
-// @return err error
 func (m *BaseFromThsHfData) GetPageDataList(whereParams interface{}, startSize, size int64, sort []string) (result []*BaseFromThsHfData, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -151,14 +114,6 @@ func (m *BaseFromThsHfData) GetPageDataList(whereParams interface{}, startSize,
 	return
 }
 
-// GetCountDataList
-// @Description:  根据条件获取数据列表总数
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:29:00
-// @param whereParams interface{}
-// @return count int64
-// @return err error
 func (m *BaseFromThsHfData) GetCountDataList(whereParams interface{}) (count int64, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -176,13 +131,6 @@ func (m *BaseFromThsHfData) GetCountDataList(whereParams interface{}) (count int
 	return
 }
 
-// InsertDataByColl
-// @Description: 写入单条数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param addData interface{}
-// @return err error
 func (m *BaseFromThsHfData) InsertDataByColl(coll *qmgo.Collection, addData interface{}) (err error) {
 	ctx := context.TODO()
 	_, err = coll.InsertOne(ctx, addData)
@@ -194,14 +142,6 @@ func (m *BaseFromThsHfData) InsertDataByColl(coll *qmgo.Collection, addData inte
 	return
 }
 
-// BatchInsertData
-// @Description: 批量写入数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *BaseFromThsHfData) BatchInsertData(bulk int, dataList []interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -209,15 +149,6 @@ func (m *BaseFromThsHfData) BatchInsertData(bulk int, dataList []interface{}) (e
 	return m.BatchInsertDataByColl(coll, bulk, dataList)
 }
 
-// BatchInsertDataByColl
-// @Description: 批量写入数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param coll *qmgo.Collection
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *BaseFromThsHfData) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, dataList []interface{}) (err error) {
 	ctx := context.TODO()
 	dataNum := len(dataList)
@@ -225,7 +156,6 @@ func (m *BaseFromThsHfData) BatchInsertDataByColl(coll *qmgo.Collection, bulk in
 		return
 	}
 
-	// 不设置每次保存切片数量大小,或者实际数据量小于设置的切片数量大小,那么就直接保存吧
 	if bulk <= 0 || dataNum <= bulk {
 		_, err = coll.InsertMany(ctx, dataList)
 		if err != nil {
@@ -235,7 +165,6 @@ func (m *BaseFromThsHfData) BatchInsertDataByColl(coll *qmgo.Collection, bulk in
 		return
 	}
 
-	// 分批保存
 	i := 0
 	tmpAddDataList := make([]interface{}, 0)
 	for _, v := range dataList {
@@ -263,14 +192,6 @@ func (m *BaseFromThsHfData) BatchInsertDataByColl(coll *qmgo.Collection, bulk in
 	return
 }
 
-// UpdateDataByColl
-// @Description: 单条数据修改
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *BaseFromThsHfData) UpdateDataByColl(coll *qmgo.Collection, whereParams, updateParams interface{}) (err error) {
 	ctx := context.TODO()
 	err = coll.UpdateOne(ctx, whereParams, updateParams)
@@ -281,14 +202,6 @@ func (m *BaseFromThsHfData) UpdateDataByColl(coll *qmgo.Collection, whereParams,
 	return
 }
 
-// UpdateData
-// @Description: 单条数据修改
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *BaseFromThsHfData) UpdateData(whereParams, updateParams interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -301,26 +214,15 @@ func (m *BaseFromThsHfData) UpdateData(whereParams, updateParams interface{}) (e
 	return
 }
 
-// HandleData
-// @Description: 事务处理数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 10:40:20
-// @param addDataList []BaseAddFromBusinessData
-// @param updateDataList []BaseFromThsHfData
-// @return result interface{}
-// @return err error
 func (m *BaseFromThsHfData) HandleData(addDataList, updateDataList []BaseFromThsHfData) (result interface{}, err error) {
 
 	ctx := context.TODO()
 
 	callback := func(sessCtx context.Context) (interface{}, error) {
-		// 重要:确保事务中的每一个操作,都使用传入的sessCtx参数
 
 		db := utils.MgoDataCli.Database(m.DataBaseName())
 		coll := db.Collection(m.CollectionName())
 
-		// 插入数据
 		if len(addDataList) > 0 {
 			_, err = coll.InsertMany(sessCtx, addDataList)
 			if err != nil {
@@ -328,7 +230,6 @@ func (m *BaseFromThsHfData) HandleData(addDataList, updateDataList []BaseFromThs
 			}
 		}
 
-		// 修改
 
 		if len(updateDataList) > 0 {
 			for _, v := range updateDataList {
@@ -347,14 +248,6 @@ func (m *BaseFromThsHfData) HandleData(addDataList, updateDataList []BaseFromThs
 	return
 }
 
-// GetEdbInfoMaxAndMinInfo
-// @Description: 获取当前指标的最大最小值
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:15:39
-// @param whereParams interface{}
-// @return result EdbInfoMaxAndMinInfo
-// @return err error
 func (m *BaseFromThsHfData) GetEdbInfoMaxAndMinInfo(whereParams interface{}) (result EdbInfoMaxAndMinInfo, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -377,15 +270,6 @@ func (m *BaseFromThsHfData) GetEdbInfoMaxAndMinInfo(whereParams interface{}) (re
 	return
 }
 
-// GetLatestValue
-// @Description: 获取当前指标的最新数据记录
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:16:15
-// @param whereParams interface{}
-// @param selectParam interface{}
-// @return latestValue LatestValue
-// @return err error
 func (m *BaseFromThsHfData) GetLatestValue(whereParams, selectParam interface{}) (latestValue LatestValue, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -399,8 +283,6 @@ func (m *BaseFromThsHfData) GetLatestValue(whereParams, selectParam interface{})
 		return
 	}
 
-	//var result interface{}
-	//err = coll.Find(ctx, whereParams).Select(selectParam).One(&result)
 	err = coll.Find(ctx, whereParams).Select(selectParam).One(&latestValue)
 	return
 }

+ 0 - 18
models/mgo/common.go

@@ -6,25 +6,15 @@ import (
 	"time"
 )
 
-// BuildDateCondition
-// @Description:  构建日期查询条件
-// @author: Roc
-// @datetime 2024-06-03 09:41:19
-// @param start string
-// @param end string
-// @return condition bson.M
-// @return err error
 func BuildDateCondition(start, end string) (condition bson.M, err error) {
 	var startDateTime, endDateTime time.Time
 	if start != "" {
-		// 使用开始日期条件
 		startDateTime, err = time.ParseInLocation(utils.FormatDate, start, time.Local)
 		if err != nil {
 			return
 		}
 	}
 	if end != "" {
-		// 使用结束日期条件
 		endDateTime, err = time.ParseInLocation(utils.FormatDate, end, time.Local)
 		if err != nil {
 			return
@@ -35,14 +25,6 @@ func BuildDateCondition(start, end string) (condition bson.M, err error) {
 
 }
 
-// BuildDateTimeCondition
-// @Description: 构建日期查询条件
-// @author: Roc
-// @datetime 2024-06-03 09:47:32
-// @param startDateTime time.Time
-// @param endDateTime time.Time
-// @return condition bson.M
-// @return err error
 func BuildDateTimeCondition(startDateTime, endDateTime time.Time) (condition bson.M, err error) {
 	if !startDateTime.IsZero() && !endDateTime.IsZero() {
 		condition = bson.M{utils.DateConvMysqlConvMongo(">="): startDateTime, utils.DateConvMysqlConvMongo("<="): endDateTime}

+ 0 - 163
models/mgo/edb_data_business.go

@@ -11,8 +11,6 @@ import (
 	"time"
 )
 
-// EdbDataBusiness
-// @Description: 自有数据集合(指标库)
 type EdbDataBusiness struct {
 	ID            primitive.ObjectID `json:"_id" bson:"_id,omitempty" `            // 文档id
 	EdbInfoId     int                `json:"edb_info_id" bson:"edb_info_id"`       // 指标编码
@@ -24,45 +22,19 @@ type EdbDataBusiness struct {
 	DataTimestamp int64              `json:"data_timestamp" bson:"data_timestamp"` // 数据日期时间戳
 }
 
-// CollectionName
-// @Description:  获取集合名称
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:36
-// @return string
 func (m *EdbDataBusiness) CollectionName() string {
 	return "edb_data_business"
 }
 
-// DataBaseName
-// @Description: 获取数据库名称
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:33
-// @return string
 func (m *EdbDataBusiness) DataBaseName() string {
 	return utils.MgoDataDbName
 }
 
-// GetCollection
-// @Description: 获取mongodb集合的句柄
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:33
-// @return string
 func (m *EdbDataBusiness) GetCollection() *qmgo.Collection {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	return db.Collection(m.CollectionName())
 }
 
-// GetItem
-// @Description: 根据条件获取单条数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-09 10:00:49
-// @param whereParams interface{}
-// @return item *EdbDataBusiness
-// @return err error
 func (m *EdbDataBusiness) GetItem(whereParams interface{}) (item *EdbDataBusiness, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -74,15 +46,6 @@ func (m *EdbDataBusiness) GetItem(whereParams interface{}) (item *EdbDataBusines
 	return m.GetItemByColl(coll, whereParams)
 }
 
-// GetItemByColl
-// @Description: 根据条件获取单条数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-09 13:22:06
-// @param coll *qmgo.Collection
-// @param whereParams interface{}
-// @return item *EdbDataBusiness
-// @return err error
 func (m *EdbDataBusiness) GetItemByColl(coll *qmgo.Collection, whereParams interface{}) (item *EdbDataBusiness, err error) {
 	ctx := context.TODO()
 	if err != nil {
@@ -101,15 +64,6 @@ func (m *EdbDataBusiness) GetItemByColl(coll *qmgo.Collection, whereParams inter
 	return
 }
 
-// GetAllDataList
-// @Description: 根据条件获取所有数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:42:19
-// @param whereParams interface{}
-// @param sort []string
-// @return result []EdbDataBusiness
-// @return err error
 func (m *EdbDataBusiness) GetAllDataList(whereParams interface{}, sort []string) (result []*EdbDataBusiness, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -136,16 +90,6 @@ func (m *EdbDataBusiness) GetAllDataList(whereParams interface{}, sort []string)
 	return
 }
 
-// GetLimitDataList
-// @Description: 根据条件获取指定数量数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-06 17:08:32
-// @param whereParams interface{}
-// @param size int64
-// @param sort []string
-// @return result []*BaseFromBusinessData
-// @return err error
 func (m *EdbDataBusiness) GetLimitDataList(whereParams interface{}, size int64, sort []string) (result []*EdbDataBusiness, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -172,17 +116,6 @@ func (m *EdbDataBusiness) GetLimitDataList(whereParams interface{}, size int64,
 	return
 }
 
-// GetPageDataList
-// @Description: 根据条件获取分页数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:21:07
-// @param whereParams interface{}
-// @param startSize int64
-// @param size int64
-// @param sort []string
-// @return result []*EdbDataBusiness
-// @return err error
 func (m *EdbDataBusiness) GetPageDataList(whereParams interface{}, startSize, size int64, sort []string) (result []*EdbDataBusiness, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -209,14 +142,6 @@ func (m *EdbDataBusiness) GetPageDataList(whereParams interface{}, startSize, si
 	return
 }
 
-// GetCountDataList
-// @Description:  根据条件获取数据列表总数
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:29:00
-// @param whereParams interface{}
-// @return count int64
-// @return err error
 func (m *EdbDataBusiness) GetCountDataList(whereParams interface{}) (count int64, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -234,13 +159,6 @@ func (m *EdbDataBusiness) GetCountDataList(whereParams interface{}) (count int64
 	return
 }
 
-// InsertDataByColl
-// @Description: 写入单条数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param addData interface{}
-// @return err error
 func (m *EdbDataBusiness) InsertDataByColl(coll *qmgo.Collection, addData interface{}) (err error) {
 	ctx := context.TODO()
 	_, err = coll.InsertOne(ctx, addData)
@@ -252,14 +170,6 @@ func (m *EdbDataBusiness) InsertDataByColl(coll *qmgo.Collection, addData interf
 	return
 }
 
-// BatchInsertData
-// @Description: 批量写入数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *EdbDataBusiness) BatchInsertData(bulk int, dataList []interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -267,15 +177,6 @@ func (m *EdbDataBusiness) BatchInsertData(bulk int, dataList []interface{}) (err
 	return m.BatchInsertDataByColl(coll, bulk, dataList)
 }
 
-// BatchInsertDataByColl
-// @Description: 批量写入数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param coll *qmgo.Collection
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *EdbDataBusiness) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, dataList []interface{}) (err error) {
 	ctx := context.TODO()
 	dataNum := len(dataList)
@@ -283,7 +184,6 @@ func (m *EdbDataBusiness) BatchInsertDataByColl(coll *qmgo.Collection, bulk int,
 		return
 	}
 
-	// 不设置每次保存切片数量大小,或者实际数据量小于设置的切片数量大小,那么就直接保存吧
 	if bulk <= 0 || dataNum <= bulk {
 		_, err = coll.InsertMany(ctx, dataList)
 		if err != nil {
@@ -293,7 +193,6 @@ func (m *EdbDataBusiness) BatchInsertDataByColl(coll *qmgo.Collection, bulk int,
 		return
 	}
 
-	// 分批保存
 	i := 0
 	tmpAddDataList := make([]interface{}, 0)
 	for _, v := range dataList {
@@ -321,14 +220,6 @@ func (m *EdbDataBusiness) BatchInsertDataByColl(coll *qmgo.Collection, bulk int,
 	return
 }
 
-// UpdateData
-// @Description: 单条数据修改
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *EdbDataBusiness) UpdateData(whereParams, updateParams interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -336,14 +227,6 @@ func (m *EdbDataBusiness) UpdateData(whereParams, updateParams interface{}) (err
 	return m.UpdateDataByColl(coll, whereParams, updateParams)
 }
 
-// UpdateDataByColl
-// @Description: 单条数据修改(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *EdbDataBusiness) UpdateDataByColl(coll *qmgo.Collection, whereParams, updateParams interface{}) (err error) {
 	ctx := context.TODO()
 	err = coll.UpdateOne(ctx, whereParams, updateParams)
@@ -355,13 +238,6 @@ func (m *EdbDataBusiness) UpdateDataByColl(coll *qmgo.Collection, whereParams, u
 	return
 }
 
-// RemoveMany
-// @Description: 根据条件删除多条数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 13:17:02
-// @param whereParams interface{}
-// @return err error
 func (m *EdbDataBusiness) RemoveMany(whereParams interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -369,14 +245,6 @@ func (m *EdbDataBusiness) RemoveMany(whereParams interface{}) (err error) {
 	return m.RemoveManyByColl(coll, whereParams)
 }
 
-// RemoveManyByColl
-// @Description: 根据条件删除多条数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 13:18:42
-// @param coll *qmgo.Collection
-// @param whereParams interface{}
-// @return err error
 func (m *EdbDataBusiness) RemoveManyByColl(coll *qmgo.Collection, whereParams interface{}) (err error) {
 	ctx := context.TODO()
 	_, err = coll.RemoveAll(ctx, whereParams)
@@ -388,26 +256,15 @@ func (m *EdbDataBusiness) RemoveManyByColl(coll *qmgo.Collection, whereParams in
 	return
 }
 
-// HandleData
-// @Description: 事务处理数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 10:39:01
-// @param addDataList []AddEdbDataBusiness
-// @param updateDataList []EdbDataBusiness
-// @return result interface{}
-// @return err error
 func (m *EdbDataBusiness) HandleData(addDataList, updateDataList []EdbDataBusiness) (result interface{}, err error) {
 
 	ctx := context.TODO()
 
 	callback := func(sessCtx context.Context) (interface{}, error) {
-		// 重要:确保事务中的每一个操作,都使用传入的sessCtx参数
 
 		db := utils.MgoDataCli.Database(m.DataBaseName())
 		coll := db.Collection(m.CollectionName())
 
-		// 插入数据
 		if len(addDataList) > 0 {
 			_, err = coll.InsertMany(sessCtx, addDataList)
 			if err != nil {
@@ -415,7 +272,6 @@ func (m *EdbDataBusiness) HandleData(addDataList, updateDataList []EdbDataBusine
 			}
 		}
 
-		// 修改
 
 		if len(updateDataList) > 0 {
 			for _, v := range updateDataList {
@@ -434,7 +290,6 @@ func (m *EdbDataBusiness) HandleData(addDataList, updateDataList []EdbDataBusine
 	return
 }
 
-// EdbInfoMaxAndMinInfo 指标最新数据记录结构体
 type EdbInfoMaxAndMinInfo struct {
 	MinDate     time.Time `description:"最小日期" bson:"min_date"`
 	MaxDate     time.Time `description:"最大日期" bson:"max_date"`
@@ -445,14 +300,6 @@ type EdbInfoMaxAndMinInfo struct {
 	EndValue    float64   `description:"最新值" bson:"end_value"`
 }
 
-// GetEdbInfoMaxAndMinInfo
-// @Description: 获取当前指标的最大最小值
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:15:39
-// @param whereParams interface{}
-// @return result EdbInfoMaxAndMinInfo
-// @return err error
 func (m *EdbDataBusiness) GetEdbInfoMaxAndMinInfo(whereParams interface{}) (result EdbInfoMaxAndMinInfo, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -476,20 +323,10 @@ func (m *EdbDataBusiness) GetEdbInfoMaxAndMinInfo(whereParams interface{}) (resu
 	return
 }
 
-// LatestValue 指标最新数据记录结构体
 type LatestValue struct {
 	Value float64 `description:"值" bson:"value"`
 }
 
-// GetLatestValue
-// @Description: 获取当前指标的最新数据记录
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:16:15
-// @param whereParams interface{}
-// @param selectParam interface{}
-// @return latestValue LatestValue
-// @return err error
 func (m *EdbDataBusiness) GetLatestValue(whereParams, selectParam interface{}) (latestValue LatestValue, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")

+ 0 - 161
models/mgo/edb_data_ths_hf.go

@@ -11,8 +11,6 @@ import (
 	"time"
 )
 
-// EdbDataThsHf
-// @Description: 同花顺高频集合(指标库)
 type EdbDataThsHf struct {
 	ID            primitive.ObjectID `json:"_id" bson:"_id,omitempty" `            // 文档id
 	EdbInfoId     int                `json:"edb_info_id" bson:"edb_info_id"`       // 指标ID
@@ -24,45 +22,19 @@ type EdbDataThsHf struct {
 	DataTimestamp int64              `json:"data_timestamp" bson:"data_timestamp"` // 数据日期时间戳
 }
 
-// CollectionName
-// @Description:  获取集合名称
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:36
-// @return string
 func (m *EdbDataThsHf) CollectionName() string {
 	return "edb_data_ths_hf"
 }
 
-// DataBaseName
-// @Description: 获取数据库名称
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:33
-// @return string
 func (m *EdbDataThsHf) DataBaseName() string {
 	return utils.MgoDataDbName
 }
 
-// GetCollection
-// @Description: 获取mongodb集合的句柄
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:41:33
-// @return string
 func (m *EdbDataThsHf) GetCollection() *qmgo.Collection {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	return db.Collection(m.CollectionName())
 }
 
-// GetItem
-// @Description: 根据条件获取单条数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-09 10:00:49
-// @param whereParams interface{}
-// @return item *EdbDataThsHf
-// @return err error
 func (m *EdbDataThsHf) GetItem(whereParams interface{}) (item *EdbDataThsHf, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -74,15 +46,6 @@ func (m *EdbDataThsHf) GetItem(whereParams interface{}) (item *EdbDataThsHf, err
 	return m.GetItemByColl(coll, whereParams)
 }
 
-// GetItemByColl
-// @Description: 根据条件获取单条数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-09 13:22:06
-// @param coll *qmgo.Collection
-// @param whereParams interface{}
-// @return item *EdbDataThsHf
-// @return err error
 func (m *EdbDataThsHf) GetItemByColl(coll *qmgo.Collection, whereParams interface{}) (item *EdbDataThsHf, err error) {
 	ctx := context.TODO()
 	if err != nil {
@@ -101,15 +64,6 @@ func (m *EdbDataThsHf) GetItemByColl(coll *qmgo.Collection, whereParams interfac
 	return
 }
 
-// GetAllDataList
-// @Description: 根据条件获取所有数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 13:42:19
-// @param whereParams interface{}
-// @param sort []string
-// @return result []EdbDataThsHf
-// @return err error
 func (m *EdbDataThsHf) GetAllDataList(whereParams interface{}, sort []string) (result []*EdbDataThsHf, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -136,16 +90,6 @@ func (m *EdbDataThsHf) GetAllDataList(whereParams interface{}, sort []string) (r
 	return
 }
 
-// GetLimitDataList
-// @Description: 根据条件获取指定数量数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-06 17:08:32
-// @param whereParams interface{}
-// @param size int64
-// @param sort []string
-// @return result []*BaseFromBusinessData
-// @return err error
 func (m *EdbDataThsHf) GetLimitDataList(whereParams interface{}, size int64, sort []string) (result []*EdbDataThsHf, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -172,17 +116,6 @@ func (m *EdbDataThsHf) GetLimitDataList(whereParams interface{}, size int64, sor
 	return
 }
 
-// GetPageDataList
-// @Description: 根据条件获取分页数据列表
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:21:07
-// @param whereParams interface{}
-// @param startSize int64
-// @param size int64
-// @param sort []string
-// @return result []*EdbDataThsHf
-// @return err error
 func (m *EdbDataThsHf) GetPageDataList(whereParams interface{}, startSize, size int64, sort []string) (result []*EdbDataThsHf, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -209,14 +142,6 @@ func (m *EdbDataThsHf) GetPageDataList(whereParams interface{}, startSize, size
 	return
 }
 
-// GetCountDataList
-// @Description:  根据条件获取数据列表总数
-// @author: Roc
-// @receiver m
-// @datetime 2024-05-07 10:29:00
-// @param whereParams interface{}
-// @return count int64
-// @return err error
 func (m *EdbDataThsHf) GetCountDataList(whereParams interface{}) (count int64, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -234,13 +159,6 @@ func (m *EdbDataThsHf) GetCountDataList(whereParams interface{}) (count int64, e
 	return
 }
 
-// InsertDataByColl
-// @Description: 写入单条数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param addData interface{}
-// @return err error
 func (m *EdbDataThsHf) InsertDataByColl(coll *qmgo.Collection, addData interface{}) (err error) {
 	ctx := context.TODO()
 	_, err = coll.InsertOne(ctx, addData)
@@ -252,14 +170,6 @@ func (m *EdbDataThsHf) InsertDataByColl(coll *qmgo.Collection, addData interface
 	return
 }
 
-// BatchInsertData
-// @Description: 批量写入数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *EdbDataThsHf) BatchInsertData(bulk int, dataList []interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -267,15 +177,6 @@ func (m *EdbDataThsHf) BatchInsertData(bulk int, dataList []interface{}) (err er
 	return m.BatchInsertDataByColl(coll, bulk, dataList)
 }
 
-// BatchInsertDataByColl
-// @Description: 批量写入数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 14:22:18
-// @param coll *qmgo.Collection
-// @param bulk int 每次请求保存的数据量
-// @param dataList []interface{}
-// @return err error
 func (m *EdbDataThsHf) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, dataList []interface{}) (err error) {
 	ctx := context.TODO()
 	dataNum := len(dataList)
@@ -283,7 +184,6 @@ func (m *EdbDataThsHf) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, da
 		return
 	}
 
-	// 不设置每次保存切片数量大小,或者实际数据量小于设置的切片数量大小,那么就直接保存吧
 	if bulk <= 0 || dataNum <= bulk {
 		_, err = coll.InsertMany(ctx, dataList)
 		if err != nil {
@@ -293,7 +193,6 @@ func (m *EdbDataThsHf) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, da
 		return
 	}
 
-	// 分批保存
 	i := 0
 	tmpAddDataList := make([]interface{}, 0)
 	for _, v := range dataList {
@@ -321,14 +220,6 @@ func (m *EdbDataThsHf) BatchInsertDataByColl(coll *qmgo.Collection, bulk int, da
 	return
 }
 
-// UpdateData
-// @Description: 单条数据修改
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *EdbDataThsHf) UpdateData(whereParams, updateParams interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -336,14 +227,6 @@ func (m *EdbDataThsHf) UpdateData(whereParams, updateParams interface{}) (err er
 	return m.UpdateDataByColl(coll, whereParams, updateParams)
 }
 
-// UpdateDataByColl
-// @Description: 单条数据修改(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-26 15:01:51
-// @param whereParams interface{}
-// @param updateParams interface{}
-// @return err error
 func (m *EdbDataThsHf) UpdateDataByColl(coll *qmgo.Collection, whereParams, updateParams interface{}) (err error) {
 	ctx := context.TODO()
 	err = coll.UpdateOne(ctx, whereParams, updateParams)
@@ -355,13 +238,6 @@ func (m *EdbDataThsHf) UpdateDataByColl(coll *qmgo.Collection, whereParams, upda
 	return
 }
 
-// RemoveMany
-// @Description: 根据条件删除多条数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 13:17:02
-// @param whereParams interface{}
-// @return err error
 func (m *EdbDataThsHf) RemoveMany(whereParams interface{}) (err error) {
 	db := utils.MgoDataCli.Database(m.DataBaseName())
 	coll := db.Collection(m.CollectionName())
@@ -369,14 +245,6 @@ func (m *EdbDataThsHf) RemoveMany(whereParams interface{}) (err error) {
 	return m.RemoveManyByColl(coll, whereParams)
 }
 
-// RemoveManyByColl
-// @Description: 根据条件删除多条数据(外部传入集合)
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 13:18:42
-// @param coll *qmgo.Collection
-// @param whereParams interface{}
-// @return err error
 func (m *EdbDataThsHf) RemoveManyByColl(coll *qmgo.Collection, whereParams interface{}) (err error) {
 	ctx := context.TODO()
 	_, err = coll.RemoveAll(ctx, whereParams)
@@ -388,26 +256,15 @@ func (m *EdbDataThsHf) RemoveManyByColl(coll *qmgo.Collection, whereParams inter
 	return
 }
 
-// HandleData
-// @Description: 事务处理数据
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 10:39:01
-// @param addDataList []AddEdbDataThsHf
-// @param updateDataList []EdbDataThsHf
-// @return result interface{}
-// @return err error
 func (m *EdbDataThsHf) HandleData(addDataList, updateDataList []EdbDataThsHf) (result interface{}, err error) {
 
 	ctx := context.TODO()
 
 	callback := func(sessCtx context.Context) (interface{}, error) {
-		// 重要:确保事务中的每一个操作,都使用传入的sessCtx参数
 
 		db := utils.MgoDataCli.Database(m.DataBaseName())
 		coll := db.Collection(m.CollectionName())
 
-		// 插入数据
 		if len(addDataList) > 0 {
 			_, err = coll.InsertMany(sessCtx, addDataList)
 			if err != nil {
@@ -415,7 +272,6 @@ func (m *EdbDataThsHf) HandleData(addDataList, updateDataList []EdbDataThsHf) (r
 			}
 		}
 
-		// 修改
 
 		if len(updateDataList) > 0 {
 			for _, v := range updateDataList {
@@ -434,14 +290,6 @@ func (m *EdbDataThsHf) HandleData(addDataList, updateDataList []EdbDataThsHf) (r
 	return
 }
 
-// GetEdbInfoMaxAndMinInfo
-// @Description: 获取当前指标的最大最小值
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:15:39
-// @param whereParams interface{}
-// @return result EdbInfoMaxAndMinInfo
-// @return err error
 func (m *EdbDataThsHf) GetEdbInfoMaxAndMinInfo(whereParams interface{}) (result EdbInfoMaxAndMinInfo, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")
@@ -465,15 +313,6 @@ func (m *EdbDataThsHf) GetEdbInfoMaxAndMinInfo(whereParams interface{}) (result
 	return
 }
 
-// GetLatestValue
-// @Description: 获取当前指标的最新数据记录
-// @author: Roc
-// @receiver m
-// @datetime 2024-04-30 17:16:15
-// @param whereParams interface{}
-// @param selectParam interface{}
-// @return latestValue LatestValue
-// @return err error
 func (m *EdbDataThsHf) GetLatestValue(whereParams, selectParam interface{}) (latestValue LatestValue, err error) {
 	if utils.MgoDataCli == nil {
 		err = errors.New("mongodb连接失败")

+ 0 - 45
models/predict_edb.go

@@ -13,7 +13,6 @@ import (
 	"time"
 )
 
-// CalculateRule 预测指标 规则 计算
 type CalculateRule struct {
 	EdbInfoId                  int `description:"指标id"`
 	ConfigId                   int `description:"配置id"`
@@ -28,7 +27,6 @@ type CalculateRule struct {
 	MaxEmptyType               int              `description:"MAX、MIN公式空值处理类型(1、等于0;2、跳过空值)"`
 }
 
-// RefreshCalculateByRuleBy9 刷新计算
 func RefreshCalculateByRuleBy9(rule CalculateRule) (resultDataList []*EdbInfoSearchData, err error) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -44,17 +42,14 @@ func RefreshCalculateByRuleBy9(rule CalculateRule) (resultDataList []*EdbInfoSea
 	return
 }
 
-// CalculateByRuleBy9 动态环差规则计算入库
 func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbInfoSearchData, err error) {
 	realSaveDataMap := make(map[string]map[int]float64)
 	saveDataMap := make(map[string]map[int]float64)
 
-	// 最小的结束日期 , 最晚的数据开始日期
 	var minLatestDate, maxStartDate time.Time
 	dateList := make([]string, 0) // 第一个指标的日期数据
 
 	formulaStr := strings.ToUpper(rule.Formula)
-	// 获取关联指标数据
 	for edbInfoIndex, v := range rule.EdbInfoList {
 		dataList, tmpErr := GetPredictEdbDataListAll(v, 1)
 		if tmpErr != nil {
@@ -63,7 +58,6 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 		}
 
 		for _, dv := range dataList {
-			// 现有实际数据
 			if val, ok := realSaveDataMap[dv.DataTime]; ok {
 				if _, ok := val[v.EdbInfoId]; !ok {
 					val[v.EdbInfoId] = dv.Value
@@ -74,7 +68,6 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 				realSaveDataMap[dv.DataTime] = temp
 			}
 
-			// 待处理的数据
 			if val, ok := saveDataMap[dv.DataTime]; ok {
 				if _, ok := val[v.EdbInfoId]; !ok {
 					val[v.EdbInfoId] = dv.Value
@@ -85,7 +78,6 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 				saveDataMap[dv.DataTime] = temp
 			}
 
-			// 以第一个指标的日期作为基准日期
 			if edbInfoIndex == 0 {
 				dateList = append(dateList, dv.DataTime)
 				tmpDate, _ := time.ParseInLocation(utils.FormatDate, dv.DataTime, time.Local)
@@ -99,18 +91,14 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 		}
 	}
 
-	// todo 数据处理,将日期内不全的数据做填补
 	HandleDateSaveDataMap(dateList, maxStartDate, minLatestDate, realSaveDataMap, saveDataMap, rule.EdbInfoList, rule.EmptyType)
 
-	// 添加数据
 	addDataList := make([]*PredictEdbRuleData, 0)
 
-	// 计算规则
 	formulaDateSlice, formulaDateMap, err := utils.HandleFormulaJson(formulaStr, minLatestDate)
 	if err != nil {
 		return
 	}
-	//获取指标所有数据
 	dataList := make([]*PredictEdbRuleData, 0)
 	sql := `SELECT * FROM predict_edb_rule_data WHERE config_id = ?`
 	err = to.Raw(sql, rule.ConfigId).Scan(&dataList).Error
@@ -125,20 +113,16 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 	}
 	existDataMap := make(map[string]string)
 
-	// 判断是否特殊处理max和min函数
 	maxDealFlag := false
 	if rule.EmptyType == 4 && rule.MaxEmptyType == 2 {
 		maxDealFlag = true
 	}
 	for sk, sv := range saveDataMap {
-		// 当空值处理类型选择了不计算时,只要有一个指标在某个日期没有值(即空值),则计算指标在该日期没有值
 		if rule.EmptyType == 1 {
 			if len(sv) != len(rule.EdbInfoList) {
 				continue
 			}
 		}
-		//fmt.Println(sk, sv)
-		// 根据时间范围,选择对应的公式
 		formulaMap := make(map[string]string)
 		formulaStr = ""
 		for _, fv := range formulaDateSlice {
@@ -159,22 +143,18 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 		}
 		svMax := make(map[int]float64)
 		if maxDealFlag {
-			// 特殊处理max和min函数,如果原本的值为空,则选择空值参与运算
 			if svMaxData, ok := realSaveDataMap[sk]; ok {
 				svMax = svMaxData
 			}
 		}
 		formulaStr = strings.ToUpper(formulaStr)
-		//fmt.Println(sk, sv)
 		formulaFormStr := ReplaceFormula(rule.EdbInfoList, sv, svMax, formulaMap, formulaStr, rule.EdbInfoIdBytes, maxDealFlag)
-		//计算公式异常,那么就移除该指标
 		if formulaFormStr == "" {
 			continue
 		}
 
 		calVal, err := engine.ParseAndExec(formulaFormStr)
 		if err != nil {
-			// 分母为0的报错,忽略该循环
 			if utils.IsDivideZero(err) {
 				continue
 			}
@@ -188,7 +168,6 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 			continue
 		}
 
-		// 移除不存在的日期
 		delete(removeDateMap, sk)
 
 		saveValue := decimal.NewFromFloat(calVal).Round(4).String() //utils.SubFloatToString(calVal, 4)
@@ -199,7 +178,6 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 
 			if _, existOk := existDataMap[sk]; !existOk {
 				tmpPredictEdbRuleData := &PredictEdbRuleData{
-					//PredictEdbRuleDataId: 0,
 					EdbInfoId:     rule.EdbInfoId,
 					ConfigId:      rule.ConfigId,
 					DataTime:      sk,
@@ -228,15 +206,12 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 			}
 		}
 
-		// 计算出来的结果集
 		resultDataList = append(resultDataList, &EdbInfoSearchData{
-			//EdbDataId: 0,
 			DataTime: sk,
 			Value:    calVal,
 		})
 	}
 
-	// 添加计算出来的值入库
 	lenAddDataList := len(addDataList)
 	if lenAddDataList > 0 {
 		err = to.CreateInBatches(addDataList, 500).Error
@@ -245,14 +220,12 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 		}
 	}
 
-	//删除多余的值
 	lenRemoveDateList := len(removeDateMap)
 	if lenRemoveDateList > 0 {
 		removeDateList := make([]string, 0) //需要移除的日期
 		for date, _ := range removeDateMap {
 			removeDateList = append(removeDateList, date)
 		}
-		//如果拼接指标变更了,那么需要删除所有的指标数据
 		sql := ` DELETE FROM predict_edb_rule_data WHERE config_id = ? and data_time in (` + utils.GetOrmInReplace(lenRemoveDateList) + `) `
 
 		err = to.Exec(sql, rule.ConfigId, removeDateList).Error
@@ -265,7 +238,6 @@ func CalculateByRuleBy9(to *gorm.DB, rule CalculateRule) (resultDataList []*EdbI
 	return
 }
 
-// RefreshCalculateByRuleByLineNh 刷新动态结果计算(线性拟合)
 func RefreshCalculateByRuleByLineNh(predictEdbInfo EdbInfo, predictEdbConfAndDataList []*PredictEdbConfAndData, rule PredictEdbConf) (err error, errMsg string) {
 	to := global.DEFAULT_DmSQL.Begin()
 	defer func() {
@@ -279,12 +251,10 @@ func RefreshCalculateByRuleByLineNh(predictEdbInfo EdbInfo, predictEdbConfAndDat
 	return
 }
 
-// CalculateByRuleByRuleLineNh 一元线性拟合规则计算入库
 func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdbConfAndDataList []*PredictEdbConfAndData, rule PredictEdbConf) (err error, errMsg string) {
 	var secondDataList []*EdbInfoSearchData
 	predictEdbInfoId := predictEdbInfo.EdbInfoId // 预测指标id
 
-	// 规则
 	var ruleConf RuleLineNhConf
 	tmpErr := json.Unmarshal([]byte(rule.Value), &ruleConf)
 	if tmpErr != nil {
@@ -293,9 +263,7 @@ func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdb
 		return
 	}
 
-	// 获取自身指标的数据
 	{
-		// 来源指标
 		var sourceEdbInfoItem *EdbInfo
 		sql := ` SELECT * FROM edb_info WHERE edb_info_id=? `
 		err = to.Raw(sql, rule.SourceEdbInfoId).First(&sourceEdbInfoItem).Error
@@ -320,19 +288,15 @@ func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdb
 		return
 	}
 
-	//将最后计算出来的结果数据处理(新增入库、编辑日期的值、删除日期)
 	{
-		// 获取需要预测的日期
 		startDateStr := secondDataList[lenSecondData-1].DataTime
 		startDate, _ := time.ParseInLocation(utils.FormatDate, startDateStr, time.Local)
-		//endDate, _ := time.ParseInLocation(utils.FormatDate, ruleConf.EndDate, time.Local)
 		endDate := rule.EndDate
 		dayList := getPredictEdbDayList(startDate, endDate, predictEdbInfo.Frequency, predictEdbInfo.DataDateType)
 		if len(dayList) <= 0 { // 如果未来没有日期的话,那么就退出当前循环,进入下一个循环
 			return
 		}
 
-		//获取该配置的所有数据
 		dataList := make([]*PredictEdbRuleData, 0)
 		sql := `SELECT * FROM predict_edb_rule_data WHERE config_id = ?`
 		err = to.Raw(sql, rule.ConfigId).Scan(&dataList).Error
@@ -344,18 +308,13 @@ func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdb
 			dataMap[v.DataTime] = v
 		}
 
-		//需要移除的日期
 		removeDateList := make([]string, 0)
-		// 已经操作过的日期
 		existDataMap := make(map[string]string)
-		// 添加数据
 		addDataList := make([]*PredictEdbRuleData, 0)
 
 		for _, currentDate := range dayList {
-			// 动态拟合残差值数据
 			currentDateStr := currentDate.Format(utils.FormatDate)
 			val, ok := newNhccDataMap[currentDateStr]
-			// 找不到数据,那么就移除该日期的数据
 			if !ok {
 				removeDateList = append(removeDateList, currentDateStr)
 				continue
@@ -368,7 +327,6 @@ func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdb
 
 				if _, existOk := existDataMap[currentDateStr]; !existOk {
 					tmpPredictEdbRuleData := &PredictEdbRuleData{
-						//PredictEdbRuleDataId: 0,
 						EdbInfoId:     predictEdbInfoId,
 						ConfigId:      rule.ConfigId,
 						DataTime:      currentDateStr,
@@ -398,7 +356,6 @@ func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdb
 			}
 		}
 
-		// 添加计算出来的值入库
 		lenAddDataList := len(addDataList)
 		if lenAddDataList > 0 {
 			err = to.CreateInBatches(addDataList, 500).Error
@@ -407,10 +364,8 @@ func CalculateByRuleByRuleLineNh(to *gorm.DB, predictEdbInfo EdbInfo, predictEdb
 			}
 		}
 
-		//删除多余的值
 		lenRemoveDateList := len(removeDateList)
 		if lenRemoveDateList > 0 {
-			//如果拼接指标变更了,那么需要删除所有的指标数据
 			sql := ` DELETE FROM predict_edb_rule_data WHERE config_id = ? and data_time in (` + utils.GetOrmInReplace(lenRemoveDateList) + `) `
 
 			err = to.Exec(sql, rule.ConfigId, removeDateList).Error

+ 0 - 7
models/predict_edb_conf.go

@@ -6,7 +6,6 @@ import (
 	"time"
 )
 
-// AddPredictEdbInfoReq 添加预测指标请求
 type AddPredictEdbInfoReq struct {
 	EdbInfoId       int          `description:"指标ID"`
 	ClassifyId      int          `description:"分类id"`
@@ -20,7 +19,6 @@ type AddPredictEdbInfoReq struct {
 	DataDateType    string       `description:"日期类型,枚举值:交易日、自然日"`
 }
 
-// RuleConfig 预测规则配置
 type RuleConfig struct {
 	RuleType     int              `description:"预测规则,1:最新,2:固定值,3:同比,4:同差,5:环比,6:环差,7:N期移动均值,8:N期段线性外推值,9:动态环差"`
 	Value        string           `description:"值/计算公式"`
@@ -30,7 +28,6 @@ type RuleConfig struct {
 	EdbInfoIdArr []EdbInfoFromTag `description:"指标信息"`
 }
 
-// EditPredictEdbInfoReq 编辑预测指标请求
 type EditPredictEdbInfoReq struct {
 	EdbInfoId  int          `description:"指标ID"`
 	ClassifyId int          `description:"分类id"`
@@ -52,7 +49,6 @@ type PredictEdbConf struct {
 	CreateTime       time.Time `description:"添加时间"`
 }
 
-// PredictEdbConfAndData 预测规则和其对应的动态数据
 type PredictEdbConfAndData struct {
 	ConfigId         int                  `gorm:"primaryKey;autoIncrement;column:config_id" description:"规则id"`
 	PredictEdbInfoId int                  `orm:"column(predict_edb_info_id)" description:"预测指标id"`
@@ -68,7 +64,6 @@ type PredictEdbConfAndData struct {
 	DataList         []*EdbInfoSearchData `description:"动态数据" gorm:"-"`
 }
 
-// GetPredictEdbConfListById 根据预测指标id获取预测指标配置信息列表
 func GetPredictEdbConfListById(edbInfoId int) (items []*PredictEdbConf, err error) {
 	sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? ORDER BY config_id ASC`
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).Scan(&items).Error
@@ -76,7 +71,6 @@ func GetPredictEdbConfListById(edbInfoId int) (items []*PredictEdbConf, err erro
 	return
 }
 
-// GetPredictEdbConfAndDataListById 根据预测指标id获取预测指标配置信息列表
 func GetPredictEdbConfAndDataListById(edbInfoId int) (items []*PredictEdbConfAndData, err error) {
 	sql := ` SELECT * FROM predict_edb_conf WHERE predict_edb_info_id=? ORDER BY config_id ASC`
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).Scan(&items).Error
@@ -84,7 +78,6 @@ func GetPredictEdbConfAndDataListById(edbInfoId int) (items []*PredictEdbConfAnd
 	return
 }
 
-// GetPredictEdbConfListByConfigIdList 根据预测指标id列表获取预测指标配置信息列表
 func GetPredictEdbConfListByConfigIdList(configIdList []int) (items []*PredictEdbConf, err error) {
 	num := len(configIdList)
 	if num <= 0 {

+ 0 - 2
models/predict_edb_conf_calculate_mapping.go

@@ -5,7 +5,6 @@ import (
 	"time"
 )
 
-// PredictEdbConfCalculateMapping 预测基础指标规则 与 计算预测指标关联关系表
 type PredictEdbConfCalculateMapping struct {
 	PredictEdbConfCalculateMappingId int       `gorm:"primaryKey;autoIncrement;column:predict_edb_conf_calculate_mapping_id"`
 	EdbInfoId                        int       `description:"指标id"`
@@ -21,7 +20,6 @@ type PredictEdbConfCalculateMapping struct {
 	ModifyTime                       time.Time `description:"修改时间"`
 }
 
-// GetPredictEdbConfCalculateMappingListByEdbInfoId 根据预测指标id获取所有关联指标
 func GetPredictEdbConfCalculateMappingListByEdbInfoId(edbInfoId int) (list []*PredictEdbConfCalculateMapping, err error) {
 	sql := ` SELECT * from predict_edb_conf_calculate_mapping WHERE edb_info_id=? ORDER BY predict_edb_conf_calculate_mapping_id ASC `
 	err = global.DEFAULT_DmSQL.Raw(sql, edbInfoId).Find(&list).Error

+ 0 - 70
models/predict_edb_data_base.go

@@ -15,12 +15,9 @@ import (
 	"time"
 )
 
-// PredictStandardBase 基础预测指标
 type PredictStandardBase struct {
 }
 
-// AddPredictEdb 添加预测指标
-// edbInfo, calculateMappingList, predictEdbConfList,calculateRule9List,trendsMappingList
 func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMapping, predictEdbConfList []*PredictEdbConf, calculateRuleMap map[int]CalculateRule) (err error, errMsg string) {
 	var latestDateStr string
 	var latestValue float64
@@ -30,17 +27,14 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 			to.Rollback()
 		} else {
 			to.Commit()
-			// 更新指标最大最小值
 			go UnifiedModifyPredictEdbInfoMaxAndMinInfo(item, latestDateStr, latestValue)
 		}
 	}()
-	// 新增预测指标
 	err = to.Create(item).Error
 	if err != nil {
 		return
 	}
 
-	// 新增预测指标的关联关系
 	lenCalculateMapping := len(calculateMappingList)
 	if lenCalculateMapping > 0 {
 		for _, calculateMappingItem := range calculateMappingList {
@@ -55,7 +49,6 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 
 	predictEdbConfAndDataList := make([]*PredictEdbConfAndData, 0)
 
-	// 新增预测指标配置
 	for k, v := range predictEdbConfList {
 		v.PredictEdbInfoId = item.EdbInfoId
 		tmpErr := to.Create(v).Error
@@ -63,9 +56,7 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 			err = tmpErr
 			return
 		}
-		//v.ConfigId = int(configId)
 
-		// 每次规则计算的时候,产生的临时数据
 		resultDataList := make([]*EdbInfoSearchData, 0)
 		switch v.RuleType {
 		case 9: //动态环差规则
@@ -73,13 +64,11 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 			calculateRule.ConfigId = v.ConfigId
 			calculateRule.EdbInfoId = v.PredictEdbInfoId
 
-			// 指标与规则的动态数据生成入库
 			resultDataList, err = CalculateByRuleBy9(to, calculateRule)
 			if err != nil {
 				return
 			}
 
-			// 规则与指标的关系入库
 			lenTrendsCalculateMapping := len(calculateRule.TrendsCalculateMappingList)
 			if lenTrendsCalculateMapping > 0 {
 				for _, vv := range calculateRule.TrendsCalculateMappingList {
@@ -96,13 +85,11 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 			calculateRule.ConfigId = v.ConfigId
 			calculateRule.EdbInfoId = v.PredictEdbInfoId
 
-			// 指标与规则的动态数据(拟合数据)生成入库
 			err, errMsg = CalculateByRuleByRuleLineNh(to, *item, predictEdbConfAndDataList, *v)
 			if err != nil {
 				return
 			}
 
-			// 规则与指标的关系入库
 			lenTrendsCalculateMapping := len(calculateRule.TrendsCalculateMappingList)
 			if lenTrendsCalculateMapping > 0 {
 				for _, vv := range calculateRule.TrendsCalculateMappingList {
@@ -117,7 +104,6 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 
 		}
 
-		// 规则配置(含数据)
 		tmpPredictEdbConfAndData := &PredictEdbConfAndData{
 			ConfigId:         0,
 			PredictEdbInfoId: 0,
@@ -133,14 +119,12 @@ func AddPredictEdb(item *EdbInfo, calculateMappingList []*EdbInfoCalculateMappin
 		predictEdbConfAndDataList = append(predictEdbConfAndDataList, tmpPredictEdbConfAndData)
 	}
 
-	// 重新预测数据
 	obj := new(PredictStandardBase)
 	latestDateStr, latestValue, err, errMsg = obj.refresh(to, item, predictEdbConfAndDataList, item.EdbCode, "")
 
 	return
 }
 
-// EditPredictEdb 修改预测指标
 func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappingList []*EdbInfoCalculateMapping, predictEdbConfList []*PredictEdbConf, calculateRuleMap map[int]CalculateRule) (err error, errMsg string) {
 	var latestDateStr string
 	var latestValue float64
@@ -151,45 +135,38 @@ func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappin
 			to.Rollback()
 		} else {
 			to.Commit()
-			// 更新指标最大最小值
 			go UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo, latestDateStr, latestValue)
 		}
 	}()
-	// 修改预测指标
 	err = to.Model(edbInfo).Select(updateEdbInfoCol).Updates(edbInfo).Error
 	if err != nil {
 		return
 	}
 
-	// 先删除原有的预测指标 与 其他指标的 关联关系
 	sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ?`
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	// 先删除原有的配置
 	sql = ` DELETE FROM predict_edb_conf WHERE predict_edb_info_id = ?`
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	// 删除基础预测指标 规则配置 与 其他指标的 关联关系
 	sql = ` DELETE FROM predict_edb_conf_calculate_mapping WHERE edb_info_id = ?`
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	// 删除基础预测指标 规则配置 生成的动态数据值
 	sql = ` DELETE FROM predict_edb_rule_data WHERE edb_info_id = ?`
 	err = to.Exec(sql, edbInfo.EdbInfoId).Error
 	if err != nil {
 		return
 	}
 
-	// 新增预测指标的关联关系
 	lenCalculateMapping := len(calculateMappingList)
 	if lenCalculateMapping > 0 {
 		for _, calculateMappingItem := range calculateMappingList {
@@ -205,14 +182,12 @@ func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappin
 	calculateRuleIndex := 0 // 预测计算规则下标
 	predictEdbConfAndDataList := make([]*PredictEdbConfAndData, 0)
 
-	// 新增预测指标配置
 	for confIndex, v := range predictEdbConfList {
 		tmpErr := to.Create(v).Error
 		if tmpErr != nil {
 			err = tmpErr
 			return
 		}
-		// 每次规则计算的时候,产生的临时数据
 		resultDataList := make([]*EdbInfoSearchData, 0)
 
 		switch v.RuleType {
@@ -221,13 +196,11 @@ func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappin
 			calculateRule.ConfigId = v.ConfigId
 			calculateRule.EdbInfoId = v.PredictEdbInfoId
 
-			// 指标与规则的动态数据生成入库
 			resultDataList, err = CalculateByRuleBy9(to, calculateRule)
 			if err != nil {
 				return
 			}
 
-			// 规则与指标的关系入库
 			lenTrendsCalculateMapping := len(calculateRule.TrendsCalculateMappingList)
 			if lenTrendsCalculateMapping > 0 {
 				for _, vv := range calculateRule.TrendsCalculateMappingList {
@@ -244,13 +217,11 @@ func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappin
 			calculateRule.ConfigId = v.ConfigId
 			calculateRule.EdbInfoId = v.PredictEdbInfoId
 
-			// 指标与规则的动态数据(拟合数据)生成入库
 			err, errMsg = CalculateByRuleByRuleLineNh(to, *edbInfo, predictEdbConfAndDataList, *v)
 			if err != nil {
 				return
 			}
 
-			// 规则与指标的关系入库
 			lenTrendsCalculateMapping := len(calculateRule.TrendsCalculateMappingList)
 			if lenTrendsCalculateMapping > 0 {
 				for _, vv := range calculateRule.TrendsCalculateMappingList {
@@ -267,7 +238,6 @@ func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappin
 
 		calculateRuleIndex++
 
-		// 规则配置(含数据)
 		tmpPredictEdbConfAndData := &PredictEdbConfAndData{
 			ConfigId:         0,
 			PredictEdbInfoId: 0,
@@ -283,26 +253,22 @@ func EditPredictEdb(edbInfo *EdbInfo, updateEdbInfoCol []string, calculateMappin
 		predictEdbConfAndDataList = append(predictEdbConfAndDataList, tmpPredictEdbConfAndData)
 	}
 
-	// 重新预测数据
 	obj := new(PredictStandardBase)
 	latestDateStr, latestValue, err, errMsg = obj.refresh(to, edbInfo, predictEdbConfAndDataList, edbInfo.EdbCode, "")
 
 	return
 }
 
-// Add 添加
 func (obj PredictStandardBase) Add(params BatchSaveCalculateBatchParams) (edbInfo *EdbInfo, latestDateStr string, latestValue float64, err error, errMsg string) {
 	err = errors.New("暂不支持该方法")
 	return
 }
 
-// Edit 编辑
 func (obj PredictStandardBase) Edit(params BatchSaveCalculateBatchParams) (latestDateStr string, latestValue float64, err error, errMsg string) {
 	err = errors.New("暂不支持该方法")
 	return
 }
 
-// Refresh 刷新
 func (obj PredictStandardBase) Refresh(params RefreshParams) (latestDateStr string, latestValue float64, err error, errMsg string) {
 	edbInfo := params.EdbInfo
 	if edbInfo == nil {
@@ -311,7 +277,6 @@ func (obj PredictStandardBase) Refresh(params RefreshParams) (latestDateStr stri
 		return
 	}
 
-	// 查找该预测指标配置
 	predictEdbConfList, err := GetPredictEdbConfAndDataListById(edbInfo.EdbInfoId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		errMsg = "获取预测指标配置信息失败"
@@ -341,7 +306,6 @@ func (obj PredictStandardBase) Refresh(params RefreshParams) (latestDateStr stri
 
 		edbInfoSearchDataList := make([]*EdbInfoSearchData, 0)
 		for _, tmpData := range tmpDataList {
-			// 计算出来的结果集
 			tmpValueDec, tmpErr := decimal.NewFromString(tmpData.Value)
 			if tmpErr != nil {
 				err = tmpErr
@@ -349,7 +313,6 @@ func (obj PredictStandardBase) Refresh(params RefreshParams) (latestDateStr stri
 			}
 			tmpVal, _ := tmpValueDec.Float64()
 			edbInfoSearchDataList = append(edbInfoSearchDataList, &EdbInfoSearchData{
-				//EdbDataId: 0,
 				DataTime: tmpData.DataTime,
 				Value:    tmpVal,
 			})
@@ -357,18 +320,15 @@ func (obj PredictStandardBase) Refresh(params RefreshParams) (latestDateStr stri
 		predictEdbConfList[k].DataList = edbInfoSearchDataList
 	}
 
-	// 重新预测数据
 	latestDateStr, latestValue, err, errMsg = obj.refresh(to, edbInfo, predictEdbConfList, edbInfo.EdbCode, "")
 
 	return
 }
 
-// GetSource 获取来源编码id
 func (obj PredictStandardBase) GetSource() int {
 	return utils.DATA_SOURCE_PREDICT
 }
 
-// GetSourceName 获取来源名称
 func (obj PredictStandardBase) GetSourceName() string {
 	return utils.DATA_SOURCE_NAME_PREDICT
 }
@@ -381,14 +341,12 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 	dataTableName := GetEdbDataTableName(edbInfo.Source, edbInfo.SubSource)
 	edbInfoIdStr := strconv.Itoa(edbInfoId)
 
-	// 获取标准差图表的指标数据
 	fromDataList, fromEdbInfo, err, errMsg := obj.GetCalculateDataList(edbInfo, predictEdbConfAndDataList, 1, startDate)
 	if err != nil {
 		return
 	}
 	latestDateStr = fromEdbInfo.LatestDate
 
-	//获取指标所有数据
 	existDataList, err := GetAllEdbDataListByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource)
 	if err != nil {
 		return
@@ -410,16 +368,12 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 			err = tmpErr
 			return
 		}
-		// 当前的实际值
 		saveValue := decimal.NewFromFloat(tmpData.Value).Round(4).String()
 
 		existVal, ok := existDataMap[currDateStr]
-		// 如果库中已经存在该数据的话,那么就进行值的变更操作
 		if ok {
-			//校验待删除日期数据里面是否存在该元素,如果存在的话,那么移除该日期
 			delete(removeDataTimeMap, currDateStr)
 
-			// 格式化库中的指标数据,并保留4位小数
 			existValDec, tmpErr := decimal.NewFromString(existVal)
 			if tmpErr != nil {
 				err = tmpErr
@@ -439,7 +393,6 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 			continue
 		}
 
-		// 库中不存在该日期的数据
 		timestamp := currTime.UnixNano() / 1e6
 		timeStr := fmt.Sprintf("%d", timestamp)
 		if _, existOk := needAddDateMap[currTime]; !existOk {
@@ -449,7 +402,6 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 		needAddDateMap[currTime] = 1
 	}
 
-	//删除已经不存在的指标数据(由于该指标当日的数据删除了)
 	{
 		removeDateList := make([]string, 0)
 		for dateTime := range removeDataTimeMap {
@@ -476,7 +428,6 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 		}
 	}
 
-	//确定实际数据的最终值
 	{
 		finalLast, tmpErr := GetFinalLastByTo(to, edbInfoId, edbInfo.Source, edbInfo.SubSource, fromEdbInfo.LatestDate)
 		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
@@ -491,19 +442,6 @@ func (obj PredictStandardBase) refresh(to *gorm.DB, edbInfo *EdbInfo, predictEdb
 	return
 }
 
-// GetCalculateDataList
-// @Description: 获取计算后的数据
-// @author: Roc
-// @receiver obj
-// @datetime 2024-04-24 10:42:51
-// @param edbInfo *EdbInfo
-// @param predictEdbConfList []*PredictEdbConfAndData
-// @param order int order:1升序,其余值为降序
-// @param startDate string
-// @return dataList []*EdbInfoSearchData
-// @return sourceEdbInfoItem *EdbInfo
-// @return err error
-// @return errMsg string
 func (obj PredictStandardBase) GetCalculateDataList(edbInfo *EdbInfo, predictEdbConfList []*PredictEdbConfAndData, order int, startDate string) (dataList []*EdbInfoSearchData, sourceEdbInfoItem *EdbInfo, err error, errMsg string) {
 	if len(predictEdbConfList) == 0 {
 		errMsg = "获取预测指标配置信息失败"
@@ -512,7 +450,6 @@ func (obj PredictStandardBase) GetCalculateDataList(edbInfo *EdbInfo, predictEdb
 	}
 	predictEdbConf := predictEdbConfList[0]
 
-	// 来源指标
 	sourceEdbInfoItem, err = GetEdbInfoById(predictEdbConf.SourceEdbInfoId)
 	if err != nil {
 		if err.Error() == utils.ErrNoRow() {
@@ -527,12 +464,6 @@ func (obj PredictStandardBase) GetCalculateDataList(edbInfo *EdbInfo, predictEdb
 	return
 }
 
-// RefreshPredictStandardBaseByGeneralEdbInfoId
-// @Description:  根据普通指标id刷新预测标准基础数据
-// @author: Roc
-// @datetime 2024-04-24 13:40:59
-// @param sourceEdbInfoId int
-// @return err error
 func RefreshPredictStandardBaseByGeneralEdbInfoId(sourceEdbInfoId int) {
 	errList := make([]string, 0)
 	defer func() {
@@ -569,7 +500,6 @@ func RefreshPredictStandardBaseByGeneralEdbInfoId(sourceEdbInfoId int) {
 				continue
 			}
 
-			// 更新指标最大最小值
 			tmpErr, errMsg = UnifiedModifyPredictEdbInfoMaxAndMinInfo(edbInfo, latestDateStr, latestValue)
 			if tmpErr != nil {
 				errList = append(errList, fmt.Sprintf("更新指标最大最小值失败,预测指标配置ID:%d;err:%s;errMsg:%s", v.PredictEdbInfoId, tmpErr.Error(), errMsg))

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно