Explorar el Código

Merge branch 'aj_index_add'

tuoling805 hace 1 año
padre
commit
f394e7395e

+ 55 - 2
controllers/base_from_mysteel_chemical.go

@@ -2,6 +2,7 @@ package controllers
 
 import (
 	"encoding/json"
+	"fmt"
 	"hongze/hongze_edb_lib/logic"
 	"hongze/hongze_edb_lib/models"
 	"hongze/hongze_edb_lib/services"
@@ -175,8 +176,13 @@ func (this *MySteelChemicalController) HandleMysteelIndex() {
 		return
 	}
 
-	services.HandleMysteelIndex(&req)
-
+	err = services.HandleMysteelIndex(&req)
+	if err != nil {
+		fmt.Println("HandleMysteelIndex Err:" + err.Error())
+		br.Msg = "处理失败"
+		br.ErrMsg = "处理失败,Err:" + err.Error()
+		return
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "处理成功"
@@ -563,3 +569,50 @@ func (this *MySteelChemicalController) MultiUpdateIndex() {
 	br.Success = true
 	br.Msg = "操作成功"
 }
+
+// @Title 处理钢联指标的接口
+// @Description 处理钢联指标的接口
+// @Success 200 {object} models.AddMysteelIndexResp
+// @router /add/mysteel/index [post]
+func (this *MySteelChemicalController) AddMysteelIndex() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.AddMysteelIndexResp
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	mysteelIndexObj := new(models.BaseFromMysteelChemicalIndex)
+	indexItem, err := mysteelIndexObj.GetIndexItem(req.EdbCode)
+	var isAdd bool
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			isAdd = true
+		} else {
+			br.Msg = "判断指标是否存在失败"
+			br.ErrMsg = "判断指标是否存在失败,Err:" + err.Error()
+			return
+		}
+	}
+	if indexItem == nil {
+		isAdd = true
+	}
+	if isAdd {
+		mysteelIndexObj.IndexCode = req.EdbCode
+		mysteelIndexObj.BaseFromMysteelChemicalClassifyId = req.BaseFromMysteelChemicalClassifyId
+		err = mysteelIndexObj.Add()
+		if err != nil {
+			br.Msg = "新增指标失败"
+			br.ErrMsg = "新增指标失败,Err:" + err.Error()
+			return
+		}
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "新增成功"
+}

+ 54 - 0
controllers/base_from_mysteel_chemical_classify.go

@@ -0,0 +1,54 @@
+package controllers
+
+import (
+	"encoding/json"
+	"hongze/hongze_edb_lib/models"
+	"hongze/hongze_edb_lib/utils"
+)
+
+// @Title 查询/新增分类
+// @Description 查询/新增分类接口
+// @Param	request	body models.AddMysteelClassifyReq true "type json string"
+// @Success 200 {object} models.EdbClassify
+// @router /mysteel_classify/get_or_add [post]
+func (this *EdbClassifyController) MysteelClassifyGetOrAdd() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.AddMysteelClassifyReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.ClassifyName == "" {
+		br.Msg = "请输入分类名称"
+		br.IsSendEmail = false
+		return
+	}
+	if req.ParentId < 0 {
+		br.Msg = "参数错误"
+		br.IsSendEmail = false
+		return
+	}
+
+	//添加指标
+	edbClassify, err, errMsg := models.SaveMysteelClassify(req.ClassifyName, req.ParentId, req.Level, utils.InitAdminId, utils.InitAdminName)
+	if errMsg != `` {
+		br.Msg = errMsg
+		br.ErrMsg = errMsg
+		if err != nil {
+			br.ErrMsg = errMsg + ";Err:" + err.Error()
+		} else {
+			br.IsSendEmail = false
+		}
+		return
+	}
+	br.Ret = 200
+	br.Msg = "保存成功"
+	br.Success = true
+	br.Data = edbClassify
+}

+ 27 - 21
models/base_from_mysteel_chemical.go

@@ -200,27 +200,28 @@ func RefreshEdbDataFromMysteelChemical(edbInfoId int, edbCode, startDate string)
 
 // 钢联化工指标数据
 type BaseFromMysteelChemicalIndex struct {
-	BaseFromMysteelChemicalIndexId int64     `orm:"column(base_from_mysteel_chemical_index_id);pk"`
-	IndexCode                      string    `description:"指标编码"`
-	IndexName                      string    `description:"指标名称"`
-	Unit                           string    `description:"单位"`
-	Source                         string    `description:"数据来源"`
-	Frequency                      string    `description:"频度"`
-	StartDate                      time.Time `description:"开始日期"`
-	EndDate                        time.Time `description:"结束日期"`
-	Describe                       string    `description:"指标描述"`
-	UpdateWeek                     string    `description:"更新周期"`
-	UpdateTime                     string    `description:"更新时间,多个时间点用英文,隔开"`
-	UpdateTime2                    string    `description:"更新时间2"`
-	SysUserId                      int       `description:"创建人id"`
-	SysUserRealName                string    `description:"创建人姓名"`
-	FilePath                       string    `description:"文件存储路径"`
-	MergeFilePath                  string    `description:"更新文件"`
-	FileIndex                      int       `description:"文件索引"`
-	MergeUpdateWeek                string    `description:"合并文件的更新周"`
-	UpdateDate                     string    `description:"更新日期"`
-	CreateTime                     time.Time `description:"创建时间"`
-	ModifyTime                     time.Time `description:"修改时间"`
+	BaseFromMysteelChemicalIndexId    int64     `orm:"column(base_from_mysteel_chemical_index_id);pk"`
+	BaseFromMysteelChemicalClassifyId int       `description:"分类id"`
+	IndexCode                         string    `description:"指标编码"`
+	IndexName                         string    `description:"指标名称"`
+	Unit                              string    `description:"单位"`
+	Source                            string    `description:"数据来源"`
+	Frequency                         string    `description:"频度"`
+	StartDate                         time.Time `description:"开始日期"`
+	EndDate                           time.Time `description:"结束日期"`
+	Describe                          string    `description:"指标描述"`
+	UpdateWeek                        string    `description:"更新周期"`
+	UpdateTime                        string    `description:"更新时间,多个时间点用英文,隔开"`
+	UpdateTime2                       string    `description:"更新时间2"`
+	SysUserId                         int       `description:"创建人id"`
+	SysUserRealName                   string    `description:"创建人姓名"`
+	FilePath                          string    `description:"文件存储路径"`
+	MergeFilePath                     string    `description:"更新文件"`
+	FileIndex                         int       `description:"文件索引"`
+	MergeUpdateWeek                   string    `description:"合并文件的更新周"`
+	UpdateDate                        string    `description:"更新日期"`
+	CreateTime                        time.Time `description:"创建时间"`
+	ModifyTime                        time.Time `description:"修改时间"`
 }
 
 // GetIndexRefreshAllByMergeFile 根据合并文件去分组查询需要刷新的文件
@@ -438,3 +439,8 @@ func (r *BaseFromMysteelChemicalData) Add(list []BaseFromMysteelChemicalData) (e
 	_, err = o.InsertMulti(len(list), list)
 	return
 }
+
+type AddMysteelIndexResp struct {
+	EdbCode                           string `description:"指标编码"`
+	BaseFromMysteelChemicalClassifyId int    `description:"指标分类"`
+}

+ 91 - 0
models/base_from_mysteel_chemical_classify.go

@@ -0,0 +1,91 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_edb_lib/utils"
+	"strconv"
+	"time"
+)
+
+type BaseFromMysteelChemicalClassify struct {
+	BaseFromMysteelChemicalClassifyId int       `orm:"column(base_from_mysteel_chemical_classify_id);pk"`
+	ClassifyName                      string    `description:"分类名称"`
+	ParentId                          int       `description:"父级id"`
+	SysUserId                         int       `description:"创建人id"`
+	SysUserRealName                   string    `description:"创建人姓名"`
+	Level                             int       `description:"层级"`
+	Sort                              int       `description:"排序字段,越小越靠前,默认值:10"`
+	ModifyTime                        time.Time `description:"修改时间"`
+	CreateTime                        time.Time `description:"创建时间"`
+}
+
+// 判断分类名称是否存在
+func GetMysteelClassify(classifyName string, parentId int) (item *BaseFromMysteelChemicalClassify, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_mysteel_chemical_classify WHERE parent_id=? AND classify_name=? `
+	err = o.Raw(sql, parentId, classifyName).QueryRow(&item)
+	return
+}
+
+// GetEdbClassifyMaxSort 获取分类下最大的排序数
+func GetMysteelClassifyMaxSort(parentId int) (sort int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT Max(sort) AS sort FROM base_from_mysteel_chemical_classify WHERE parent_id=? `
+	err = o.Raw(sql, parentId).QueryRow(&sort)
+	return
+}
+
+func AddMysteelClassify(item *BaseFromMysteelChemicalClassify) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+type AddMysteelClassifyReq struct {
+	ClassifyName string `description:"分类名称"`
+	ParentId     int    `description:"父级id,第一级传0"`
+	Level        int    `description:"层级,第一级传0,其余传上一级的层级"`
+}
+
+// AddEdbClassify 添加指标分类
+func SaveMysteelClassify(classifyName string, parentId, level int, sysUserId, sysUserName string) (classifyInfo *BaseFromMysteelChemicalClassify, err error, errMsg string) {
+	edbClassify, err := GetMysteelClassify(classifyName, parentId)
+
+	var isAdd bool
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			isAdd = true
+		} else {
+			errMsg = `判断名称是否已存在失败`
+			return
+		}
+	}
+
+	if edbClassify != nil && edbClassify.BaseFromMysteelChemicalClassifyId > 0 {
+		classifyInfo = edbClassify
+		return edbClassify, nil, ""
+	} else {
+		isAdd = true
+	}
+	if isAdd {
+		sysUserIdInt, _ := strconv.Atoi(sysUserId)
+		//获取该层级下最大的排序数
+		maxSort, err := GetMysteelClassifyMaxSort(parentId)
+		classifyInfo = &BaseFromMysteelChemicalClassify{
+			ClassifyName:    classifyName,
+			ParentId:        parentId,
+			CreateTime:      time.Now(),
+			ModifyTime:      time.Now(),
+			SysUserId:       sysUserIdInt,
+			SysUserRealName: sysUserName,
+			Level:           level + 1,
+			Sort:            maxSort,
+		}
+		classifyId, err := AddMysteelClassify(classifyInfo)
+		if err != nil {
+			errMsg = "保存分类失败"
+		}
+		classifyInfo.BaseFromMysteelChemicalClassifyId = int(classifyId)
+	}
+	return
+}

+ 1 - 0
models/db.go

@@ -53,6 +53,7 @@ func init() {
 		new(EdbDataPredictCalculateZjpj),
 		new(EdbDataInsertConfig),
 		new(EdbAdjustConf), // 数据调整的配置
+		new(BaseFromMysteelChemicalClassify),
 	)
 
 	// 注册期货数据 数据表

+ 8 - 5
services/base_from_mysteel_chemical.go

@@ -8,18 +8,20 @@ import (
 	"time"
 )
 
-func HandleMysteelIndex(req *models.HandleMysteelIndexResp) {
+func HandleMysteelIndex(req *models.HandleMysteelIndexResp) (err error) {
 	for _, v := range req.List {
 		if v.IndexName == "" || v.IndexCode == "" {
 			continue
 		}
-		handleIndex(v)
+		err = handleIndex(v)
+		if err != nil {
+			return
+		}
 	}
+	return
 }
 
-func handleIndex(indexItem *models.HandleMysteelIndex) {
-	var err error
-
+func handleIndex(indexItem *models.HandleMysteelIndex) (err error) {
 	//return
 	indexObj := new(models.BaseFromMysteelChemicalIndex)
 	var indexId int64
@@ -152,4 +154,5 @@ func handleIndex(indexItem *models.HandleMysteelIndex) {
 			fmt.Println("dataObj.Add() Err:" + err.Error())
 		}
 	}
+	return
 }