Browse Source

修改指标计算

hongze 3 years ago
parent
commit
34194118a8

+ 1 - 1
models/data_manage/edb_data_calculate.go

@@ -51,7 +51,7 @@ type EdbInfoCalculateDetail struct {
 func GetEdbInfoCalculateDetail(edbInfoId int) (list []*EdbInfoCalculateDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? ORDER BY sort ASC `
 	_, err = o.Raw(sql, edbInfoId).QueryRows(&list)

+ 25 - 0
models/data_manage/edb_info.go

@@ -49,6 +49,11 @@ type EdbInfoSearchData struct {
 	Value    float64 `description:"数据"`
 }
 
+type EdbInfoSearchDataV1 struct {
+	DataTime string  `description:"数据日期"`
+	Value    string `description:"数据"`
+}
+
 func GetEdbInfoByCondition(condition string, pars []interface{}, order int) (item []*EdbInfoList, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
@@ -127,6 +132,26 @@ func GetEdbDataListAll(condition string, pars []interface{}, source, order int)
 	return
 }
 
+func GetEdbDataListAllV1(condition string, pars []interface{}, source, order int) (item []*EdbInfoSearchDataV1, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ``
+	tableName := GetEdbDataTableName(source)
+	sql = ` SELECT * FROM %s WHERE 1=1 `
+	sql = fmt.Sprintf(sql, tableName)
+
+	if condition != "" {
+		sql += condition
+	}
+	if order == 1 {
+		sql += ` ORDER BY data_time ASC `
+	} else {
+		sql += ` ORDER BY data_time DESC `
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&item)
+	return
+}
+
 func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
 	o := orm.NewOrm()
 	o.Using("data")

+ 1 - 1
models/data_manage/edb_info_calculate_bp.go

@@ -157,7 +157,7 @@ type EdbInfoCalculateBpDetail struct {
 func GetEdbInfoCalculateBpDetail(edbInfoId int) (item *EdbInfoCalculateTbzDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_bp AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).QueryRow(&item)

+ 1 - 1
models/data_manage/edb_info_calculate_hbz.go

@@ -156,7 +156,7 @@ type EdbInfoCalculateHbzDetail struct {
 func GetEdbInfoCalculateHbzDetail(edbInfoId int) (item *EdbInfoCalculateTbzDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_hbz AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).QueryRow(&item)

+ 1 - 1
models/data_manage/edb_info_calculate_hcz.go

@@ -155,7 +155,7 @@ type EdbInfoCalculateHczDetail struct {
 func GetEdbInfoCalculateHczDetail(edbInfoId int) (item *EdbInfoCalculateHczDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_hcz AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).QueryRow(&item)

+ 1 - 1
models/data_manage/edb_info_calculate_ljzzy.go

@@ -194,7 +194,7 @@ type EdbInfoCalculateLjzzyDetail struct {
 func GetEdbInfoCalculateLjzzyDetail(edbInfoId int) (item *EdbInfoCalculateLjzzyDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_ljzzy AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).QueryRow(&item)

+ 4 - 23
models/data_manage/edb_info_calculate_nszydpjjs.go

@@ -49,28 +49,22 @@ func RefreshCalculateNszydpjjs(edbInfoId, source, formulaInt int, fromEdbInfo *E
 	condition += " AND edb_info_id=? "
 	pars = append(pars, edbInfoId)
 
-	dataList, err := GetEdbDataListAll(condition, pars, source, 0)
+	dataList, err := GetEdbDataListAllV1(condition, pars, source, 0)
 	if err != nil {
 		return err
 	}
 
-	existDataMap := make(map[string]*EdbInfoSearchData)
+	existDataMap := make(map[string]*EdbInfoSearchDataV1)
 	for _, v := range dataList {
-		utils.FileLog.Info("exist:",v.DataTime,v.Value)
 		existDataMap[v.DataTime] = v
 	}
 
-	fmt.Println("existDataMap:",existDataMap)
-
 	//计算来源数据
-	//startDate := time.Now().AddDate(-2, 0, 0).Format(utils.FormatDate)
 
 	var fromCondition string
 	var fromPars []interface{}
 	fromCondition += " AND edb_info_id=? "
 	fromPars = append(fromPars, fromEdbInfo.EdbInfoId)
-	//fromCondition += " AND data_time>=? "
-	//fromPars = append(fromPars, startDate)
 
 	fromDataList, err := GetEdbDataListAll(fromCondition, fromPars, fromEdbInfo.Source, 0)
 	if err != nil {
@@ -133,23 +127,10 @@ func RefreshCalculateNszydpjjs(edbInfoId, source, formulaInt int, fromEdbInfo *E
 		valStr := utils.SubFloatToString(val, 4)
 
 		if existItem, existOk := existDataMap[av]; !existOk {
-			//count, err := GetEdbDataCalculateNszydpjjsByCodeAndDate(edbCode, av)
-			//if err != nil && err.Error() != utils.ErrNoRow() {
-			//	return err
-			//}
-			//if count <= 0 {
-			//	addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, valStr)
-			//	isAdd = true
-			//} else {
-			//	err = ModifyEdbDataCalculateNszydpjjs(int64(edbInfoId), av, valStr)
-			//	if err != nil {
-			//		return err
-			//	}
-			//}
 			addSql += GetAddSql(edbInfoIdStr, edbCode, av, timestampStr, valStr)
 			isAdd = true
 		} else {
-			if existItem.Value != val {
+			if existItem != nil && existItem.Value != valStr {
 				err = ModifyEdbDataCalculateNszydpjjs(int64(edbInfoId), av, valStr)
 				if err != nil {
 					return err
@@ -188,7 +169,7 @@ type EdbInfoCalculateNszydpjjsDetail struct {
 func GetEdbInfoCalculateNszydpjjsDetail(edbInfoId int) (item *EdbInfoCalculateNszydpjjsDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_nszydpjjs AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).QueryRow(&item)

+ 1 - 1
models/data_manage/edb_info_calculate_tbz.go

@@ -279,7 +279,7 @@ type EdbInfoCalculateTbzDetail struct {
 func GetEdbInfoCalculateTbzDetail(edbInfoId int) (item *EdbInfoCalculateTbzDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_tbz AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).QueryRow(&item)

+ 1 - 1
models/data_manage/edb_info_calculate_tcz.go

@@ -280,7 +280,7 @@ type EdbInfoCalculateTczDetail struct {
 func GetEdbInfoCalculateTczDetail(edbInfoId int) (item *EdbInfoCalculateTczDetail, err error) {
 	o := orm.NewOrm()
 	o.Using("data")
-	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_tcz AS a
+	sql := ` SELECT a.*,b.start_date,b.end_date FROM edb_info_calculate_mapping AS a
 			INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
 			WHERE a.edb_info_id=? `
 	err = o.Raw(sql, edbInfoId).QueryRow(&item)

+ 10 - 4
services/data/edb_info.go

@@ -25,6 +25,7 @@ func RefreshDataFromThs(wg *sync.WaitGroup) (err error) {
 	var pars []interface{}
 	condition += " AND source=? "
 	pars = append(pars, utils.DATA_SOURCE_THS)
+
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
 		err = errors.New("GetEdbInfoByCondition:" + err.Error())
@@ -50,18 +51,18 @@ func RefreshDataFromThs(wg *sync.WaitGroup) (err error) {
 		}
 		err = SyncEdbDataByThs(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
 		if err != nil {
-			err=errors.New("SyncEdbDataByThs Err:" + err.Error())
+			err = errors.New("SyncEdbDataByThs Err:" + err.Error())
 			return err
 		}
 		item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
 		if err != nil {
-			err=errors.New("GetEdbInfoMaxAndMinInfo Err:" + err.Error())
+			err = errors.New("GetEdbInfoMaxAndMinInfo Err:" + err.Error())
 			return err
 		}
 		if item != nil {
 			err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
 			if err != nil {
-				err=errors.New("ModifyEdbInfoMaxAndMinInfo Err:" + err.Error())
+				err = errors.New("ModifyEdbInfoMaxAndMinInfo Err:" + err.Error())
 				return err
 			}
 		}
@@ -251,7 +252,7 @@ func RefreshDataFromCalculateAll() (err error) {
 		edbInfoId := v.EdbInfoId
 		edbCode := v.EdbCode
 		source := v.Source
-		fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName)
+		fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source)
 		if source == utils.DATA_SOURCE_CALCULATE {
 			startDate := ""
 			if v.Frequency == "日度" {
@@ -401,6 +402,8 @@ func RefreshDataFromCalculateAll() (err error) {
 
 		maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
 		if err != nil {
+			fmt.Println("GetEdbInfoMaxAndMinInfo Err:" + err.Error() + ";source:" + strconv.Itoa(source) + ";edbCode:" + edbCode)
+			err = errors.New("GetEdbInfoMaxAndMinInfo Err:" + err.Error() + ";source:" + strconv.Itoa(source) + ";edbCode:" + edbCode)
 			return err
 		}
 		if maxAndMinItem != nil {
@@ -426,6 +429,7 @@ func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
 	var pars []interface{}
 	condition += " AND source=? "
 	pars = append(pars, utils.DATA_SOURCE_MANUAL)
+
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
 		return errors.New("GetEdbInfoByCondition:" + err.Error())
@@ -479,6 +483,7 @@ func RefreshDataFromLz(wg *sync.WaitGroup) (err error) {
 	var pars []interface{}
 	condition += " AND source=? "
 	pars = append(pars, utils.DATA_SOURCE_LZ)
+
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
 		return errors.New("GetEdbInfoByCondition:" + err.Error())
@@ -533,6 +538,7 @@ func RefreshDataFromYs(wg *sync.WaitGroup) (err error) {
 	var pars []interface{}
 	condition += " AND source=? "
 	pars = append(pars, utils.DATA_SOURCE_YS)
+
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
 	if err != nil {
 		return errors.New("GetEdbInfoByCondition:" + err.Error())