|
@@ -19,7 +19,7 @@ type CalculateController struct {
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
func (this *CalculateController) Add() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -245,7 +245,7 @@ func (this *CalculateController) Add() {
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
func (this *CalculateController) CalculateBatchSave() {
|
|
@@ -529,3 +529,273 @@ func (this *CalculateController) CalculateBatchSave() {
|
|
|
br.Data = resp
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func (this *CalculateController) Refresh() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ var cacheKey string
|
|
|
+ defer func() {
|
|
|
+ utils.Rc.Delete(cacheKey)
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ source := utils.DATA_SOURCE_LT
|
|
|
+ var req models.RefreshEdbInfoReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.EdbCode == "" {
|
|
|
+ br.Msg = "请输入指标编码!"
|
|
|
+ br.ErrMsg = "请输入指标编码,指标编码为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.EdbInfoId <= 0 {
|
|
|
+ br.Msg = "请输入指标ID!"
|
|
|
+ br.ErrMsg = "请输入指标ID"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfo, err := models.GetEdbInfoById(req.EdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "指标不存在!"
|
|
|
+ br.ErrMsg = "指标不存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(edbInfo.Source) + "_" + req.EdbCode
|
|
|
+ if !utils.Rc.IsExist(cacheKey) {
|
|
|
+ utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
|
|
|
+
|
|
|
+ startDate := req.StartDate
|
|
|
+ var errMsg string
|
|
|
+ endDate := time.Now().Format(utils.FormatDate)
|
|
|
+ edbInfoId := edbInfo.EdbInfoId
|
|
|
+
|
|
|
+ switch edbInfo.Source {
|
|
|
+ case utils.DATA_SOURCE_CALCULATE:
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ sTime, err := time.Parse(utils.FormatDate, edbInfo.EndDate)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ startDate = sTime.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ var edbInfoIdBytes []string
|
|
|
+ calculateMap, err := models.GetEdbInfoCalculateDetail(edbInfo.EdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ var formulaStr string
|
|
|
+ edbInfoList := make([]*models.EdbInfo, 0)
|
|
|
+
|
|
|
+ for _, v := range calculateMap {
|
|
|
+ formulaStr += v.FromTag + ","
|
|
|
+ edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
|
|
|
+ edbInfo, _ := models.GetEdbInfoById(v.FromEdbInfoId)
|
|
|
+ edbInfoList = append(edbInfoList, edbInfo)
|
|
|
+ }
|
|
|
+ err = models.RefreshAllCalculate(edbInfoList, edbInfo.EdbInfoId, source, edbInfo.EdbCode, edbInfo.CalculateFormula, startDate, endDate, edbInfoIdBytes)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshCalculate Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_LJZZY:
|
|
|
+ calculateLjzzy, err := models.GetEdbInfoCalculateLjzzyDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateLjzzyDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculateLjzzy.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ err = models.RefreshAllCalculateLjzzy(edbInfoId, source, fromEdbInfo, calculateLjzzy.EdbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateLjzzy Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_TBZ:
|
|
|
+ calculateTbz, err := models.GetEdbInfoCalculateTbzDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculateTbz.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ err = models.RefreshAllCalculateTbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateTbz Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_TCZ:
|
|
|
+ calculateTcz, err := models.GetEdbInfoCalculateTczDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateTczDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculateTcz.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ err = models.RefreshAllCalculateTcz(edbInfoId, source, fromEdbInfo, calculateTcz.EdbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshCalculateTcz Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_NSZYDPJJS:
|
|
|
+ calculateNszydpjjs, err := models.GetEdbInfoCalculateNszydpjjsDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateNszydpjjsDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculateNszydpjjs.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ err = models.RefreshAllCalculateNszydpjjs(edbInfoId, edbInfo.Source, formulaInt, fromEdbInfo, calculateNszydpjjs.EdbCode, startDate)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshCalculateNszydpjjs Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_HBZ:
|
|
|
+ calculateTbz, err := models.GetEdbInfoCalculateHbzDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateHbzDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculateTbz.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
|
|
|
+ err = models.RefreshAllCalculateHbz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateHbz Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_HCZ:
|
|
|
+ calculateTbz, err := models.GetEdbInfoCalculateHczDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateHczDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculateTbz.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ formulaInt, _ := strconv.Atoi(edbInfo.CalculateFormula)
|
|
|
+ err = models.RefreshAllCalculateHcz(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate, formulaInt)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateHcz Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_BP:
|
|
|
+ calculateTbz, err := models.GetEdbInfoCalculateBpDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculateTbz.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ err = models.RefreshAllCalculateBp(edbInfoId, source, fromEdbInfo, calculateTbz.EdbCode, startDate, endDate)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateBp Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_TIME_SHIFT:
|
|
|
+ calculate, err := models.GetEdbInfoCalculateMappingDetail(edbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoCalculateTbzDetail Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ fromEdbInfo, err := models.GetEdbInfoById(calculate.FromEdbInfoId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "GetEdbInfoById Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ startDate = edbInfo.StartDate
|
|
|
+ endDate = time.Now().Format(utils.FormatDate)
|
|
|
+ formulaInt, _ := strconv.Atoi(calculate.CalculateFormula)
|
|
|
+ err = models.RefreshAllCalculateTimeShift(edbInfoId, source, formulaInt, calculate.MoveType, fromEdbInfo, calculate.EdbCode, startDate, endDate, calculate.MoveFrequency)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateTimeShift Err:" + err.Error()
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_ZJPJ:
|
|
|
+ err = models.RefreshAllCalculateZjpj(edbInfo)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateZjpj Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ case utils.DATA_SOURCE_CALCULATE_LJZTBPJ:
|
|
|
+ err = models.RefreshAllCalculateLjztbpj(edbInfo)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "RefreshAllCalculateLjztbpj Err:" + err.Error()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ br.Msg = "来源异常,请联系相关开发!"
|
|
|
+ br.ErrMsg = "来源异常,请联系相关开发"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errMsg != `` {
|
|
|
+ br.Msg = "刷新指标失败!"
|
|
|
+ br.ErrMsg = "刷新指标失败,err:" + errMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ maxAndMinItem, err := models.GetEdbInfoMaxAndMinInfo(source, edbInfo.EdbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "刷新指标失败!"
|
|
|
+ br.ErrMsg = "获取指标最大最小值失败,err:" + errMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if maxAndMinItem != nil {
|
|
|
+ err = models.ModifyEdbInfoMaxAndMinInfo(edbInfoId, maxAndMinItem)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "刷新指标失败!"
|
|
|
+ br.ErrMsg = "修改指标最大最小值失败,err:" + errMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ } else {
|
|
|
+ br.Ret = 501
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "系统处理中,请稍后重试"
|
|
|
+ }
|
|
|
+}
|