|
@@ -112,6 +112,66 @@ func SavePredictCalculateNszydpjjs(reqEdbInfoId, classifyId int, edbName, freque
|
|
|
err = errors.New(errMsg)
|
|
|
return
|
|
|
}
|
|
|
+ oldCalculateFormula := edbInfo.CalculateFormula //原先的n值
|
|
|
+
|
|
|
+ edbInfo.EdbName = edbName
|
|
|
+ edbInfo.EdbNameSource = edbName
|
|
|
+ edbInfo.Frequency = frequency
|
|
|
+ edbInfo.Unit = unit
|
|
|
+ edbInfo.ClassifyId = classifyId
|
|
|
+ edbInfo.CalculateFormula = formula
|
|
|
+ edbInfo.ModifyTime = time.Now()
|
|
|
+ _, err = to.Update(edbInfo, "EdbName", "EdbNameSource", "Frequency", "Unit", "ClassifyId", "CalculateFormula", "ModifyTime")
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断计算指标是否被更换
|
|
|
+ var existCondition string
|
|
|
+ var existPars []interface{}
|
|
|
+ existCondition += " AND edb_info_id=? AND from_edb_info_id=? "
|
|
|
+ existPars = append(existPars, edbInfo.EdbInfoId, fromEdbInfo.EdbInfoId)
|
|
|
+
|
|
|
+ count, err := GetEdbInfoCalculateCountByCondition(existCondition, existPars)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("判断指标是否改变失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count > 0 && oldCalculateFormula == formula { // 指标未被替换,同时N值未修改,无需重新计算
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count <= 0 {
|
|
|
+ // 需要删除原先的 计算指标关联的,基础指标的关联关系
|
|
|
+ sql := ` DELETE FROM edb_info_calculate_mapping WHERE edb_info_id = ? `
|
|
|
+ _, err = to.Raw(sql, edbInfo.EdbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加新的关联关系
|
|
|
+ {
|
|
|
+ calculateMappingItem := &EdbInfoCalculateMapping{
|
|
|
+ EdbInfoCalculateMappingId: 0,
|
|
|
+ EdbInfoId: edbInfo.EdbInfoId,
|
|
|
+ Source: edbInfo.Source,
|
|
|
+ SourceName: edbInfo.SourceName,
|
|
|
+ EdbCode: edbInfo.EdbCode,
|
|
|
+ FromEdbInfoId: fromEdbInfo.EdbInfoId,
|
|
|
+ FromEdbCode: fromEdbInfo.EdbCode,
|
|
|
+ FromEdbName: fromEdbInfo.EdbName,
|
|
|
+ FromSource: fromEdbInfo.Source,
|
|
|
+ FromSourceName: fromEdbInfo.SourceName,
|
|
|
+ FromTag: "",
|
|
|
+ Sort: 1,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ }
|
|
|
+ _, err = to.Insert(calculateMappingItem)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 删除该指标所有的同比数据
|
|
|
dataTableName := GetEdbDataTableName(utils.DATA_SOURCE_PREDICT_CALCULATE_NSZYDPJJS)
|