Browse Source

Merge branch 'dm' of http://8.136.199.33:3000/eta_server/eta_api into dm

xyxie 2 months ago
parent
commit
bc4b42f65a

+ 5 - 7
controllers/data_manage/manual.go

@@ -229,7 +229,7 @@ func (this *ChartClassifyController) AddManualClassify() {
 		br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
 		return
 	}
-	if classifyItem != nil {
+	if classifyItem != nil && classifyItem.ClassifyId > 0 {
 		if classifyItem.IsShow == 1 {
 			br.Msg = "分类名称已存在,请重新输入"
 			br.IsSendEmail = false
@@ -243,7 +243,7 @@ func (this *ChartClassifyController) AddManualClassify() {
 				return
 			}
 			parentItem, _ := data_manage.GetManualClassifyById(req.ParentId)
-			if parentItem != nil && parentItem.IsShow == 0 {
+			if parentItem != nil && parentItem.ClassifyId > 0 && parentItem.IsShow == 0 {
 				err = data_manage.ModifyManualClassifyIsShow(1, parentItem.ClassifyId, req.ParentId)
 				if err != nil {
 					br.Msg = "保存失败"
@@ -321,11 +321,9 @@ func (this *ChartClassifyController) ManualClassifyEdit() {
 		return
 	}
 
-	if classifyItem != nil {
-		if item.ClassifyId != classifyItem.ClassifyId {
-			br.Msg = "名称已存在,请重新输入"
-			return
-		}
+	if classifyItem != nil && classifyItem.ClassifyId > 0 && item.ClassifyId != classifyItem.ClassifyId {
+		br.Msg = "名称已存在,请重新输入"
+		return
 	}
 
 	err = data_manage.ModifyManualClassifyName(req.ClassifyName, req.ClassifyId, req.ParentId)

+ 9 - 2
controllers/data_manage/multiple_graph_config.go

@@ -681,6 +681,9 @@ func (this *ChartInfoController) MultipleGraphConfigSaveChart() {
 		br.ErrMsg = "获取配置与图表的关联关系失败,ERR:" + err.Error()
 		return
 	}
+	if multipleGraphConfigChartMapping != nil && multipleGraphConfigChartMapping.Id <= 0 {
+		multipleGraphConfigChartMapping = nil
+	}
 
 	err = nil
 	var isAdd bool
@@ -695,7 +698,7 @@ func (this *ChartInfoController) MultipleGraphConfigSaveChart() {
 			return
 		}
 		// 说明图还在,没有被删除
-		if chartInfo != nil {
+		if chartInfo != nil && chartInfo.ChartInfoId > 0 {
 			chartInfoId = multipleGraphConfigChartMapping.ChartInfoId
 			req.ChartName = chartInfo.ChartName
 			req.ClassifyId = chartInfo.ChartClassifyId
@@ -1280,6 +1283,10 @@ func (this *ChartInfoController) MultipleGraphConfigSaveEdb() {
 		br.ErrMsg = "获取配置与图表的关联关系失败,ERR:" + err.Error()
 		return
 	}
+	if multipleGraphConfigEdbMapping != nil && multipleGraphConfigEdbMapping.Id <= 0 {
+		multipleGraphConfigEdbMapping = nil
+	}
+
 	err = nil
 	var isAdd bool
 	var edbInfoId int
@@ -1293,7 +1300,7 @@ func (this *ChartInfoController) MultipleGraphConfigSaveEdb() {
 			return
 		}
 		// 说明指标还在,没有被删除
-		if edbInfo != nil && !req.IsSaveAs {
+		if edbInfo != nil && edbInfo.EdbInfoId > 0 && !req.IsSaveAs {
 			edbInfoId = multipleGraphConfigEdbMapping.EdbInfoId
 			req.EdbName = edbInfo.EdbName
 			req.ClassifyId = edbInfo.ClassifyId

+ 4 - 3
controllers/data_manage/yongyi_data.go

@@ -980,9 +980,10 @@ func (this *EdbInfoController) ExportYongyiList() {
 
 		if len(childClassify) > 0 {
 			condition += `AND classify_id IN (` + utils.GetOrmInReplace(len(childClassify)) + `)`
-			for _, child := range childClassify {
-				pars = append(pars, child.ClassifyId)
-			}
+			//for _, child := range childClassify {
+			//	pars = append(pars, child.ClassifyId)
+			//}
+			pars = append(pars, childClassify)
 		} else {
 			condition += ` AND classify_id=?`
 			pars = append(pars, classifyId)

+ 6 - 0
controllers/speech_recognition/speech_recognition_menu.go

@@ -241,6 +241,12 @@ func (this *SpeechRecognitionMenuController) Remove() {
 		br.ErrMsg = "获取目录失败, Err: " + e.Error()
 		return
 	}
+	if menuItem != nil && menuItem.SpeechRecognitionMenuId <= 0 {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 	// 删除校验
 	checkResult, menuIds, e := services.CheckSpeechRecognitionMenuRemove(menuItem.SpeechRecognitionMenuId)

+ 2 - 0
global/initDb.go

@@ -18,8 +18,10 @@ import (
 )
 
 var (
+	//需要钩子函数执行的数据库表
 	tableMap = map[string]int{
 		"base_from_mysteel_chemical_data": 1,
+		"future_good_edb_info":            1,
 	}
 )
 

+ 2 - 2
models/data_manage/base_from_baiinfo.go

@@ -52,7 +52,7 @@ func GetBaseFromBaiinfoByBaiinfoCode(baiinfoCode string) (item *BaseFromBaiinfo,
 }
 
 type BaseFromBaiinfoIndex struct {
-	BaseFromBaiinfoIndexId int `orm:"column(base_from_baiinfo_index_id);pk"`
+	BaseFromBaiinfoIndexId int `gorm:"column:base_from_baiinfo_index_id;primaryKey"`
 	ClassifyId             int
 	Interface              string
 	IndexCode              string
@@ -248,7 +248,7 @@ func GetFirstBaseFromBaiinfoIndexByClassifyId(classifyId int) (item *BaseFromBai
 
 // Update 更新Baiinfo指标基础信息
 func (item *BaseFromBaiinfoIndex) Update(cols []string) (err error) {
-	err = global.DbMap[utils.DbNameIndex].Select(cols).Updates(item).Error
+	err = global.DbMap[utils.DbNameIndex].Select(cols).Updates(&item).Error
 	return
 }
 

+ 8 - 3
models/data_manage/base_from_yongyi.go

@@ -22,7 +22,7 @@ type BaseFromYongyiIndex struct {
 }
 
 type BaseFromYongyiIndexList struct {
-	YongyiIndexId int `orm:"column(yongyi_index_id);pk"`
+	YongyiIndexId int `gorm:"column:yongyi_index_id;primaryKey"`
 	ClassifyId    int
 	Interface     string
 	EdbInfoId     int
@@ -147,11 +147,16 @@ func GetYongyiDataDataTimeByIndexId(indexIdList []int) (items []string, err erro
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT DISTINCT data_time FROM base_from_yongyi_data WHERE yongyi_index_id IN (` + utils.GetOrmInReplace(len(indexIdList)) + `) ORDER BY data_time DESC`
 	err = o.Raw(sql, indexIdList).Find(&items).Error
+	if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
+		for i := range items {
+			items[i] = utils.GormDateStrToDateStr(items[i])
+		}
+	}
 	return
 }
 
 type BaseFromYongyiData struct {
-	YongyiDataId  int `orm:"column(yongyi_data_id);pk" gorm:"primaryKey"`
+	YongyiDataId  int `gorm:"column:yongyi_data_id;primaryKey"`
 	YongyiIndexId int
 	IndexCode     string
 	DataTime      string
@@ -177,7 +182,7 @@ func (m *BaseFromYongyiData) AfterFind(tx *gorm.DB) (err error) {
 }
 
 type BaseFromYongyiIndexSearchItem struct {
-	YongyiIndexId    int `orm:"column(yongyi_index_id);pk" gorm:"primaryKey"`
+	YongyiIndexId    int `gorm:"column:yongyi_index_id;primaryKey"`
 	ClassifyId       int
 	ParentClassifyId int
 	IndexCode        string

+ 7 - 0
models/data_manage/edb_info_relation.go

@@ -3,6 +3,7 @@ package data_manage
 import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
+	"gorm.io/gorm"
 	"time"
 
 	"github.com/rdlucklib/rdluck_tools/paging"
@@ -242,6 +243,12 @@ type BaseRelationEdbInfo struct {
 	RelationTime    string `description:"引用时间"`
 }
 
+func (e *BaseRelationEdbInfo) AfterFind(db *gorm.DB) (err error) {
+	e.RelationTime = utils.GormDateStrToDateTimeStr(e.RelationTime)
+
+	return
+}
+
 type BaseRelationEdbInfoResp struct {
 	Paging *paging.PagingItem
 	List   []*BaseRelationEdbInfo

+ 7 - 4
models/data_manage/gl_data.go

@@ -25,7 +25,6 @@ type GlFrequency struct {
 	Frequency string `description:"频度:1-日度 2-周度 3-月度 4-季度 5-年度 99-无固定频率"`
 }
 
-
 func GetGlFrequencyByClassifyId(breedShortName string) (items []*GlFrequency, err error) {
 	o := global.DbMap[utils.DbNameGL]
 	var sql string
@@ -95,7 +94,7 @@ type GlIndexList struct {
 
 type GlIndexData struct {
 	InputValue string `description:"日期" gorm:"column:DATA_VALUE"`
-	DataTime  string `description:"值" gorm:"column:DATA_DATE"`
+	DataTime   string `description:"值" gorm:"column:DATA_DATE"`
 }
 
 func (g *GlIndexData) AfterFind(tx *gorm.DB) (err error) {
@@ -189,10 +188,14 @@ func GetGlDataMaxCount(classifyName string) (count int, err error) {
 }
 
 func GetGlDataByCode(indexCode string) (items []*GlIndexData, err error) {
+	//sql := `SELECT * FROM (
+	//	SELECT * FROM mb_index_main_data WHERE INDEX_CODE=?
+	//	GROUP BY UPDATE_TIME DESC, DATA_DATE DESC
+	//) a GROUP BY a.DATA_DATE DESC`
 	sql := `SELECT * FROM (
 		SELECT * FROM mb_index_main_data WHERE INDEX_CODE=? 
-		GROUP BY UPDATE_TIME DESC, DATA_DATE DESC
-	) a GROUP BY a.DATA_DATE DESC`
+		GROUP BY UPDATE_TIME , DATA_DATE  ORDER BY UPDATE_TIME DESC, DATA_DATE DESC
+	) a GROUP BY a.DATA_DATE ORDER BY a.DATA_DATE DESC`
 	o := global.DbMap[utils.DbNameGL]
 	err = o.Raw(sql, indexCode).Find(&items).Error
 	return

+ 3 - 2
models/data_manage/smm_data.go

@@ -4,6 +4,7 @@ import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"github.com/rdlucklib/rdluck_tools/paging"
+	"github.com/shopspring/decimal"
 	"gorm.io/gorm"
 	"time"
 )
@@ -183,8 +184,8 @@ type SmmIndexList struct {
 }
 
 type SmmIndexData struct {
-	Value    string `gorm:"column:value" description:"日期"`
-	DataTime string `gorm:"column:data_time" description:"值"`
+	Value    decimal.Decimal `gorm:"column:value" description:"日期"`
+	DataTime string          `gorm:"column:data_time" description:"值"`
 }
 
 func (m *SmmIndexData) AfterFind(tx *gorm.DB) (err error) {

+ 1 - 1
models/en_permission.go

@@ -11,7 +11,7 @@ import (
 )
 
 type EnPermission struct {
-	EnPermissionId   int       `gorm:"column:id;primaryKey;autoIncrement" description:"英文品种权限ID"`
+	EnPermissionId   int       `gorm:"primaryKey;autoIncrement" description:"英文品种权限ID"`
 	EnPermissionName string    `description:"品种权限名称"`
 	CnPermissionName string    `description:"对应的中文权限名称"`
 	ParentId         int       `description:"父级ID"`

+ 13 - 0
models/material/material.go

@@ -4,6 +4,7 @@ import (
 	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"github.com/rdlucklib/rdluck_tools/paging"
+	"gorm.io/gorm"
 	"time"
 )
 
@@ -82,6 +83,18 @@ type MaterialListItems struct {
 	//ParentIds  string
 }
 
+func (obj *MaterialListItems) AfterFind(tx *gorm.DB) (err error) {
+	if utils.NeedDateOrTimeFormat(utils.DbDriverName) {
+		if obj.CreateTime != "" {
+			obj.CreateTime = utils.GormDateStrToDateTimeStr(obj.CreateTime)
+		}
+		if obj.ModifyTime != "" {
+			obj.ModifyTime = utils.GormDateStrToDateTimeStr(obj.ModifyTime)
+		}
+	}
+	return
+}
+
 func GetMaterialListPageByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*MaterialListItems, err error) {
 	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM material WHERE 1=1 `

+ 2 - 2
models/permission.go

@@ -43,7 +43,7 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 			_ = to.Commit()
 		}
 	}()
-	sql := "DELETE FROM chart_permission_search_key_word_mapping WHERE from = 'rddp' AND classify_id = ?"
+	sql := "DELETE FROM chart_permission_search_key_word_mapping AS a WHERE a.from = 'rddp' AND a.classify_id = ?"
 	sql = utils.ReplaceDriverKeywords("", sql)
 	err = to.Exec(sql, classifyId).Error
 	if err != nil {
@@ -99,7 +99,7 @@ func GetChartPermissionNameFromMappingByKeyword(source string, classifyId int) (
 // UpdateChartPermissionNameFromMappingByKeyword 根据关键词及来源更新新关键词
 func UpdateChartPermissionNameFromMappingByKeyword(newKeyword string, classifyId int, source string) (err error) {
 	o := global.DbMap[utils.DbNameReport]
-	sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE classify_id = ? AND from = ? "
+	sql := " UPDATE chart_permission_search_key_word_mapping AS a SET a.key_word = ? WHERE a.classify_id = ? AND a.from = ? "
 	sql = utils.ReplaceDriverKeywords("", sql)
 	err = o.Exec(sql, newKeyword, classifyId, source).Error
 	return

+ 2 - 2
models/speech_recognition/speech_recognition_menu.go

@@ -80,7 +80,7 @@ func (m *SpeechRecognitionMenu) Update(cols []string) (err error) {
 func (m *SpeechRecognitionMenu) Del() (err error) {
 	o := global.DbMap[utils.DbNameMaster]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, m.SpeechRecognitionMenuId).Error
+	err = o.Exec(sql, m.SpeechRecognitionMenuId).Error
 	return
 }
 
@@ -90,7 +90,7 @@ func (m *SpeechRecognitionMenu) MultiDel(menuIds []int) (err error) {
 	}
 	o := global.DbMap[utils.DbNameMaster]
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	err = o.Raw(sql, menuIds).Error
+	err = o.Exec(sql, menuIds).Error
 	return
 }
 

+ 11 - 6
services/data/data_manage_permission/data_move.go

@@ -1450,17 +1450,22 @@ func MoveCustomAnalysisExcel2DefaultClassify(excelIds []int, adminId int, realNa
 	cond := ` AND excel_classify_name = ? AND sys_user_id = ?`
 	pars := make([]interface{}, 0)
 	pars = append(pars, "未分类", adminId)
+
+	// 是否找到
+	var isFind bool
 	classify, e := excel.GetExcelClassifyByCondition(cond, pars)
-	if e != nil && !utils.IsErrNoRow(e) {
-		err = fmt.Errorf("获取默认分类失败, %v", e)
-		return
-	}
-	if classify != nil {
+	if e != nil {
+		if !utils.IsErrNoRow(e) {
+			err = fmt.Errorf("获取默认分类失败, %v", e)
+			return
+		}
+	} else {
+		isFind = true
 		moveClassifyId = classify.ExcelClassifyId
 	}
 
 	// 新增一个新的分类
-	if classify == nil {
+	if !isFind {
 		classifyNew := &excel.ExcelClassify{
 			ExcelClassifyName: "未分类",
 			Source:            utils.CUSTOM_ANALYSIS_TABLE,

+ 3 - 0
services/residual_analysis_service/residual_analysis_service.go

@@ -279,6 +279,9 @@ func fillMappingChartInfo(req residual_analysis_model.ResidualAnalysisReq, edbIn
 
 	// 映射残差 计算a,b
 	if req.ResidualType == 1 {
+		if req.RightIndexMin == req.RightIndexMax {
+			return nil, a, b, r, fmt.Errorf("右轴上下限不能相同")
+		}
 		if req.IsOrder {
 			a = (req.LeftIndexMax - req.LeftIndexMin) / (req.RightIndexMin - req.RightIndexMax)
 			b = req.LeftIndexMax - req.RightIndexMin*a

+ 14 - 0
utils/common.go

@@ -2885,6 +2885,13 @@ func IsErrNoRow(err error) bool {
 // @param originalString
 // @return formatStr
 func GormDateStrToDateStr(originalString string) (formatStr string) {
+	if originalString == `` {
+		return
+	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
+
 	formatStr = originalString
 	if !strings.Contains(originalString, "T") {
 		return
@@ -2911,6 +2918,13 @@ func GormDateStrToDateStr(originalString string) (formatStr string) {
 // @param originalString
 // @return formatStr
 func GormDateStrToDateTimeStr(originalString string) (formatStr string) {
+	if originalString == `` {
+		return
+	}
+	if strings.Contains(originalString, "0001-01-01") {
+		return
+	}
+
 	formatStr = originalString
 	if !strings.Contains(originalString, "T") {
 		return

+ 1 - 5
utils/sql.go

@@ -329,13 +329,9 @@ func ReplaceDriverKeywords(driver string, sql string) string {
 			"admin":    `"admin"`,
 			"value":    `"value"`,
 			"exchange": `"exchange"`,
-			"b.from":   `b."from"`,
 			"size":     `"size"`,
 			"a.from":   `a."from"`,
-			"from":     `"from"`,
-		},
-		MySql: {
-			"from": "`from`",
+			"b.from":   `b."from"`,
 		},
 	}
 	replacements, ok := rules[dbDriver]