瀏覽代碼

新增有色数据批量初始化

tuoling805 1 年之前
父節點
當前提交
2a9a79d230

+ 50 - 0
controllers/base_from_smm.go

@@ -159,3 +159,53 @@ func (this *SmmController) HandleExcelData() {
 	br.Success = true
 	br.Msg = "处理成功"
 }
+
+// AddIndexToDataSource
+// @Title 添加指标到数据源-SMM
+// @Description 添加指标到数据源-SMM
+// @Success 200 {object} models.AddSmmIndexToDataSourceResp
+// @router /add/index/to_data_source [post]
+func (this *SmmController) AddIndexToDataSource() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.AddSmmIndexToDataSourceResp
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	smmIndexObj := new(models.BaseFromSmmIndex)
+	indexItem, err := smmIndexObj.GetSmmIndexItem(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 {
+		smmIndexObj.IndexCode = req.EdbCode
+		smmIndexObj.ClassifyId = req.ClassifyId
+		smmIndexObj.CreateTime = time.Now()
+		smmIndexObj.ModifyTime = time.Now()
+		err = smmIndexObj.Add()
+		if err != nil {
+			br.Msg = "新增指标失败"
+			br.ErrMsg = "新增指标失败,Err:" + err.Error()
+			return
+		}
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "新增成功"
+}

+ 64 - 0
controllers/base_from_smm_classify.go

@@ -0,0 +1,64 @@
+package controllers
+
+import (
+	"encoding/json"
+	"eta/eta_index_lib/models"
+	"eta/eta_index_lib/utils"
+	"strconv"
+)
+
+// @Title 查询/新增分类
+// @Description 查询/新增分类接口
+// @Param	request	body models.AddSmmClassifyReq true "type json string"
+// @Success 200 {object} models.EdbClassify
+// @router /smm_classify/get_or_add [post]
+func (this *SmmController) SmmGetOrAdd() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.AddSmmClassifyReq
+	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
+	}
+
+	sysUserId := utils.InitAdminId
+	sysUserName := utils.InitAdminName
+	if req.SysUserId > 0 {
+		sysUserId = strconv.Itoa(req.SysUserId)
+	}
+	if req.SysUserRealName != `` {
+		sysUserName = req.SysUserRealName
+	}
+
+	//添加指标
+	edbClassify, err, errMsg := models.SaveSmmClassify(req.ClassifyName, req.ParentId, req.Level, sysUserId, sysUserName)
+	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
+}

+ 15 - 0
models/base_from_smm.go

@@ -191,6 +191,7 @@ func RefreshEdbDataFromSmm(edbInfoId int, edbCode, startDate string) (err error)
 
 type BaseFromSmmIndex struct {
 	BaseFromSmmIndexId int64 `orm:"column(base_from_smm_index_id);pk"`
+	ClassifyId         int
 	Interface          string
 	Name               string
 	IndexCode          string
@@ -227,6 +228,13 @@ func (d *BaseFromSmmIndex) GetSmmIndexItem(indexCode string) (item *BaseFromSmmI
 	return
 }
 
+// Add 新增
+func (m *BaseFromSmmIndex) Add() (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(m)
+	return
+}
+
 func GetBaseFromSmmDataBySmmCode(smmCode string) (list []*BaseFromSmmData, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT * FROM base_from_smm_data WHERE index_code=? `
@@ -292,3 +300,10 @@ func MultiUpdateBaseFromSmmDataValue(items []*BaseFromSmmData) (err error) {
 	}
 	return
 }
+
+type AddSmmIndexToDataSourceResp struct {
+	EdbCode         string `description:"指标编码"`
+	ClassifyId      int    `description:"指标分类"`
+	SysUserId       int    `description:"操作人id"`
+	SysUserRealName string `description:"操作人真实名称"`
+}

+ 85 - 0
models/base_from_smm_classify.go

@@ -0,0 +1,85 @@
+package models
+
+import (
+	"eta/eta_index_lib/utils"
+	"github.com/beego/beego/v2/client/orm"
+	"strconv"
+	"time"
+)
+
+type BaseFromSmmClassify struct {
+	ClassifyId      int       `orm:"column(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 AddSmmClassify(item *BaseFromSmmClassify) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+type AddSmmClassifyReq struct {
+	ClassifyName    string `description:"分类名称"`
+	ParentId        int    `description:"父级id,第一级传0"`
+	Level           int    `description:"层级,第一级传0,其余传上一级的层级"`
+	SysUserId       int    `description:"操作人id"`
+	SysUserRealName string `description:"操作人真实名称"`
+}
+
+// 判断分类名称是否存在
+func GetSmmClassify(classifyName string, parentId int) (item *BaseFromSmmClassify, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM base_from_smm_classify WHERE parent_id=? AND classify_name=? `
+	err = o.Raw(sql, parentId, classifyName).QueryRow(&item)
+	return
+}
+
+// 添加指标分类
+func SaveSmmClassify(classifyName string, parentId, level int, sysUserId, sysUserName string) (classifyInfo *BaseFromSmmClassify, err error, errMsg string) {
+	edbClassify, err := GetSmmClassify(classifyName, parentId)
+
+	var isAdd bool
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			isAdd = true
+		} else {
+			errMsg = `判断名称是否已存在失败`
+			return
+		}
+	}
+
+	if edbClassify != nil && edbClassify.ClassifyId > 0 {
+		classifyInfo = edbClassify
+		return edbClassify, nil, ""
+	} else {
+		isAdd = true
+	}
+	if isAdd {
+		sysUserIdInt, _ := strconv.Atoi(sysUserId)
+		//获取该层级下最大的排序数
+		maxSort, err := GetMysteelClassifyMaxSort(parentId)
+		classifyInfo = &BaseFromSmmClassify{
+			ClassifyName:    classifyName,
+			ParentId:        parentId,
+			CreateTime:      time.Now(),
+			ModifyTime:      time.Now(),
+			SysUserId:       sysUserIdInt,
+			SysUserRealName: sysUserName,
+			Level:           level + 1,
+			Sort:            maxSort,
+		}
+		classifyId, err := AddSmmClassify(classifyInfo)
+		if err != nil {
+			errMsg = "保存分类失败"
+		}
+		classifyInfo.ClassifyId = int(classifyId)
+	}
+	return
+}

+ 1 - 0
models/db.go

@@ -100,5 +100,6 @@ func initBaseIndex() {
 		new(BaseFromMysteelChemicalData),
 		new(BaseFromTradeShanghaiIndex),
 		new(BaseFromTradeIneIndex),
+		new(BaseFromSmmClassify),
 	)
 }

+ 18 - 0
routers/commentsRouter.go

@@ -817,6 +817,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_index_lib/controllers:SmmController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:SmmController"],
+        beego.ControllerComments{
+            Method: "AddIndexToDataSource",
+            Router: `/add/index/to_data_source`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_index_lib/controllers:SmmController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:SmmController"],
         beego.ControllerComments{
             Method: "HandleExcelData",
@@ -835,6 +844,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_index_lib/controllers:SmmController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:SmmController"],
+        beego.ControllerComments{
+            Method: "SmmGetOrAdd",
+            Router: `/smm_classify/get_or_add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_index_lib/controllers:StockPlantController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:StockPlantController"],
         beego.ControllerComments{
             Method: "Calculate",