|
@@ -1,1909 +0,0 @@
|
|
|
-package data_manage
|
|
|
-
|
|
|
-import (
|
|
|
- "encoding/json"
|
|
|
- "eta_gn/eta_api/models"
|
|
|
- "eta_gn/eta_api/models/data_manage"
|
|
|
- "eta_gn/eta_api/models/data_manage/request"
|
|
|
- "eta_gn/eta_api/models/data_manage/response"
|
|
|
- "eta_gn/eta_api/services/alarm_msg"
|
|
|
- "eta_gn/eta_api/services/data"
|
|
|
- "eta_gn/eta_api/services/data_stat"
|
|
|
- "eta_gn/eta_api/utils"
|
|
|
- "fmt"
|
|
|
- "os"
|
|
|
- "path/filepath"
|
|
|
- "sort"
|
|
|
- "strconv"
|
|
|
- "strings"
|
|
|
- "time"
|
|
|
-
|
|
|
- "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
- "github.com/tealeg/xlsx"
|
|
|
-)
|
|
|
-
|
|
|
-// MysteelChemicalClassify
|
|
|
-// @Title 钢联化工数据分类
|
|
|
-// @Description 钢联化工分类接口
|
|
|
-// @Success 200 {object} data_manage.BaseFromMysteelChemicalClassifyItems
|
|
|
-// @router /mysteel_chemical/classify [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalClassify() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- rootList, err := data_manage.GetBaseFromMysteelChemicalClassifyByParentId(0)
|
|
|
- if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- classifyAll, err := data_manage.GetAllBaseFromMysteelChemicalClassify()
|
|
|
- if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- rootChildMap := make(map[int][]*data_manage.BaseFromMysteelChemicalClassifyItems)
|
|
|
- for _, v := range classifyAll {
|
|
|
- v.UniqueCode = fmt.Sprint(v.BaseFromMysteelChemicalClassifyId)
|
|
|
-
|
|
|
- button := data.GetMysteelChemicalOpButton(sysUser, v.SysUserId)
|
|
|
- button.AddButton = false //不管有没有权限,二级分类都是没有添加按钮的
|
|
|
- v.Button = button
|
|
|
-
|
|
|
- rootChildMap[v.ParentId] = append(rootChildMap[v.ParentId], v)
|
|
|
- }
|
|
|
-
|
|
|
- nodeAll := make([]*data_manage.BaseFromMysteelChemicalClassifyItems, 0)
|
|
|
- for k, v := range rootList {
|
|
|
- button := data.GetMysteelChemicalOpButton(sysUser, v.SysUserId)
|
|
|
- rootList[k].Button = button
|
|
|
- rootList[k].UniqueCode = fmt.Sprint(v.BaseFromMysteelChemicalClassifyId)
|
|
|
-
|
|
|
- if existItems, ok := rootChildMap[v.BaseFromMysteelChemicalClassifyId]; ok {
|
|
|
- v.Children = existItems
|
|
|
- } else {
|
|
|
- items := make([]*data_manage.BaseFromMysteelChemicalClassifyItems, 0)
|
|
|
- v.Children = items
|
|
|
- }
|
|
|
- nodeAll = append(nodeAll, v)
|
|
|
- }
|
|
|
-
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = nodeAll
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalIndexList
|
|
|
-// @Title 钢联化工数据指标列表
|
|
|
-// @Description 钢联化工数据指标列表接口
|
|
|
-// @Success 200 {object} data_manage.BaseFromMysteelChemicalIndexResp
|
|
|
-// @router /mysteel_chemical/index/list [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalIndexList() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- classifyId, _ := this.GetInt("BaseFromMysteelChemicalClassifyId")
|
|
|
- if classifyId <= 0 {
|
|
|
- br.Msg = "请选择正确的分类"
|
|
|
- return
|
|
|
- }
|
|
|
- allBaseFromMysteelChemicalIndex, err := data_manage.GetMysteelChemicalIndexByClassifyId(classifyId)
|
|
|
- if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- nodeAll := make([]*data_manage.BaseFromMysteelChemicalClassifyItems, 0)
|
|
|
- for _, v := range allBaseFromMysteelChemicalIndex {
|
|
|
- v.UniqueCode = fmt.Sprint(v.BaseFromMysteelChemicalClassifyId, "_", v.BaseFromMysteelChemicalIndexId)
|
|
|
- button := data.GetMysteelChemicalOpButton(sysUser, v.SysUserId)
|
|
|
- button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
|
|
|
- v.Button = button
|
|
|
- nodeAll = append(nodeAll, v)
|
|
|
- }
|
|
|
- ret := &data_manage.BaseFromMysteelChemicalIndexResp{
|
|
|
- List: nodeAll,
|
|
|
- }
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = ret
|
|
|
-}
|
|
|
-
|
|
|
-// AddMysteelChemicalClassify
|
|
|
-// @Title 新增分类
|
|
|
-// @Description 新增分类接口
|
|
|
-// @Param request body data_manage.AddBaseFromMysteelChemicalClassifyReq true "type json string"
|
|
|
-// @Success 200 Ret=200 保存成功
|
|
|
-// @router /mysteel_chemical/classify/add [post]
|
|
|
-func (this *EdbClassifyController) AddMysteelChemicalClassify() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- var req request.AddBaseFromMysteelChemicalClassifyReq
|
|
|
- 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
|
|
|
- }
|
|
|
- req.ClassifyName = utils.TrimStr(req.ClassifyName)
|
|
|
- req.ClassifyName = strings.Replace(req.ClassifyName, "/t", "", -1)
|
|
|
-
|
|
|
- //添加指标
|
|
|
- mysteelChemicalClassifyInfo, err, errMsg := data.AddMysteelChemicalClassify(req.ClassifyName, req.ParentId, req.Level, this.SysUser.AdminId, this.SysUser.RealName, this.Lang)
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg
|
|
|
- if err != nil {
|
|
|
- br.ErrMsg = errMsg + ";Err:" + err.Error()
|
|
|
- } else {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 如果是添加一级分类,那么默认加上 价格、供应、需求、库存 四个二级分类
|
|
|
- if mysteelChemicalClassifyInfo.ParentId == 0 {
|
|
|
- secondClassifyList := []string{"价格", "供应", "需求", "库存"}
|
|
|
- for _, v := range secondClassifyList {
|
|
|
- _, _, tmpErrMsg := data.AddMysteelChemicalClassify(v, mysteelChemicalClassifyInfo.BaseFromMysteelChemicalClassifyId, mysteelChemicalClassifyInfo.Level, this.SysUser.AdminId, this.SysUser.RealName, this.Lang)
|
|
|
- if tmpErrMsg != `` {
|
|
|
- go alarm_msg.SendAlarmMsg("钢联化工-添加一级分类时,默认添加二级分类失败,一级分类名称:"+req.ClassifyName+",二级分类名称:"+v+", Err:"+tmpErrMsg, 3)
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- resp := response.AddMysteelChemicalClassifyResp{
|
|
|
- BaseFromMysteelChemicalClassifyId: mysteelChemicalClassifyInfo.BaseFromMysteelChemicalClassifyId,
|
|
|
- UniqueCode: fmt.Sprint(mysteelChemicalClassifyInfo.BaseFromMysteelChemicalClassifyId),
|
|
|
- }
|
|
|
- br.Data = resp
|
|
|
- br.Ret = 200
|
|
|
- br.Msg = "保存成功"
|
|
|
- br.Success = true
|
|
|
- br.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-// EditMysteelChemicalClassify
|
|
|
-// @Title 修改分类
|
|
|
-// @Description 修改分类接口
|
|
|
-// @Param request body data_manage.EditBaseFromMysteelChemicalClassifyReq true "type json string"
|
|
|
-// @Success 200 Ret=200 修改成功
|
|
|
-// @router /mysteel_chemical/classify/edit [post]
|
|
|
-func (this *EdbClassifyController) EditMysteelChemicalClassify() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- var req request.EditBaseFromMysteelChemicalClassifyReq
|
|
|
- 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.BaseFromMysteelChemicalClassifyId <= 0 {
|
|
|
- br.Msg = "参数错误"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- err, errMsg := data.EditMysteelChemicalClassify(req.BaseFromMysteelChemicalClassifyId, req.ClassifyName, this.Lang, this.SysUser)
|
|
|
- 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.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-// MoveMysteelChemicalClassify
|
|
|
-// @Title 分类移动接口
|
|
|
-// @Description 分类移动接口
|
|
|
-// @Success 200 {object} data_manage.MoveBaseFromMysteelChemicalClassifyReq
|
|
|
-// @router /mysteel_chemical/classify/move [post]
|
|
|
-func (this *EdbClassifyController) MoveMysteelChemicalClassify() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
-
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- var req request.MoveBaseFromMysteelChemicalClassifyReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.BaseFromMysteelChemicalClassifyId <= 0 {
|
|
|
- br.Msg = "参数错误"
|
|
|
- br.ErrMsg = "分类id小于等于0"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- err, errMsg := data.MoveMysteelChemicalClassify(req.BaseFromMysteelChemicalClassifyId, req.ParentBaseFromMysteelChemicalClassifyId, req.PrevBaseFromMysteelChemicalClassifyId, req.NextBaseFromMysteelChemicalClassifyId, this.SysUser)
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg
|
|
|
- if err != nil {
|
|
|
- br.ErrMsg = err.Error()
|
|
|
- } else {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.IsAddLog = true
|
|
|
- br.Msg = "移动成功"
|
|
|
-}
|
|
|
-
|
|
|
-// DeleteMysteelChemicalClassify
|
|
|
-// @Title 删除分类
|
|
|
-// @Description 删除分类接口
|
|
|
-// @Param request body data_manage.DelBaseFromMysteelChemicalClassifyReq true "type json string"
|
|
|
-// @Success 200 Ret=200 删除成功
|
|
|
-// @router /mysteel_chemical/classify/del [post]
|
|
|
-func (this *EdbClassifyController) DeleteMysteelChemicalClassify() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- var req request.DelBaseFromMysteelChemicalClassifyReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.BaseFromMysteelChemicalClassifyId < 0 {
|
|
|
- br.Msg = "参数错误"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- err, errMsg := data.DelMysteelChemicalClassify(req.BaseFromMysteelChemicalClassifyId, this.SysUser)
|
|
|
- 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.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalSearch
|
|
|
-// @Title 钢联化工指标查询
|
|
|
-// @Description 钢联化工指标查询
|
|
|
-// @Param BaseFromMysteelChemicalClassifyId query int true "分类id"
|
|
|
-// @Param Keyword query string true "名称关键词"
|
|
|
-// @Success 200 {object} data_manage.LzFrequency
|
|
|
-// @router /mysteel_chemical/search [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalSearch() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- classifyId, _ := this.GetInt("BaseFromMysteelChemicalClassifyId")
|
|
|
-
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
- if classifyId > 0 {
|
|
|
- condition += " AND base_from_mysteel_chemical_classify_id=? "
|
|
|
- pars = append(pars, classifyId)
|
|
|
- }
|
|
|
- keyword := this.GetString("Keyword")
|
|
|
- if keyword != `` {
|
|
|
- condition += " AND (index_name like ? OR index_code like ?) "
|
|
|
- pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
- }
|
|
|
-
|
|
|
- list, err := data_manage.GetMysteelChemicalIndex(condition, pars)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- classifyIds := make([]int, 0)
|
|
|
- for _, v := range list {
|
|
|
- v.UniqueCode = fmt.Sprint(v.BaseFromMysteelChemicalClassifyId, "_", v.Id)
|
|
|
- if v.BaseFromMysteelChemicalClassifyId > 0 {
|
|
|
- classifyIds = append(classifyIds, v.BaseFromMysteelChemicalClassifyId)
|
|
|
- }
|
|
|
- }
|
|
|
- if len(classifyIds) > 0 {
|
|
|
- // 查询父级分类信息
|
|
|
- classifyList, e := data_manage.GetBaseFromMysteelChemicalClassifyByIds(classifyIds)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "获取目录信息失败"
|
|
|
- br.ErrMsg = "获取失获取目录信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- classifyListMap := make(map[int]int, 0)
|
|
|
- for _, v := range classifyList {
|
|
|
- classifyListMap[v.BaseFromMysteelChemicalClassifyId] = v.ParentId
|
|
|
- }
|
|
|
- for _, v := range list {
|
|
|
- v.UniqueCode = fmt.Sprint(v.BaseFromMysteelChemicalClassifyId, "_", v.Id)
|
|
|
- if p, ok := classifyListMap[v.BaseFromMysteelChemicalClassifyId]; ok {
|
|
|
- v.ParentClassifyId = p
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = list
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalFrequency
|
|
|
-// @Title 钢联化工数据频度
|
|
|
-// @Description 钢联化工数据频度接口
|
|
|
-// @Param BaseFromMysteelChemicalClassifyId query int true "分类id"
|
|
|
-// @Param BaseFromMysteelChemicalIndexId query int true "钢联化工指标id"
|
|
|
-// @Param Keyword query string true "名称关键词"
|
|
|
-// @Success 200 {object} data_manage.LzFrequency
|
|
|
-// @router /mysteel_chemical/frequency [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalFrequency() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
-
|
|
|
- var classifyId int
|
|
|
- var frequency string
|
|
|
- // 指定指标
|
|
|
- indexId, _ := this.GetInt("BaseFromMysteelChemicalIndexId")
|
|
|
- if indexId > 0 {
|
|
|
- condition += " AND base_from_mysteel_chemical_index_id = ? "
|
|
|
- pars = append(pars, indexId)
|
|
|
- } else {
|
|
|
- classifyId, _ = this.GetInt("BaseFromMysteelChemicalClassifyId")
|
|
|
- if classifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- br.ErrMsg = "请选择分类"
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if classifyId > 0 {
|
|
|
- condition += " AND base_from_mysteel_chemical_classify_id=? "
|
|
|
- pars = append(pars, classifyId)
|
|
|
- }
|
|
|
- if frequency != `` {
|
|
|
- condition += " AND frequency=? "
|
|
|
- pars = append(pars, frequency)
|
|
|
- }
|
|
|
-
|
|
|
- // 关键词搜索
|
|
|
- keyword := this.GetString("Keyword")
|
|
|
- if keyword != `` {
|
|
|
- condition += " AND (index_name like ? OR index_code like ?) "
|
|
|
- pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
- }
|
|
|
-
|
|
|
- edbFrequencyList := make([]string, 0)
|
|
|
- frequencyList, err := data_manage.GetMysteelChemicalFrequency(condition, pars)
|
|
|
- for _, unit := range frequencyList {
|
|
|
- edbFrequencyList = append(edbFrequencyList, unit.Frequency)
|
|
|
- }
|
|
|
- edbFrequencyList = sortEdbFrequency(edbFrequencyList)
|
|
|
-
|
|
|
- for i, v := range edbFrequencyList {
|
|
|
- frequencyList[i].Frequency = v
|
|
|
- }
|
|
|
-
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取频度失败"
|
|
|
- br.ErrMsg = "获取频度失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = frequencyList
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalData
|
|
|
-// @Title 获取钢联化工数据
|
|
|
-// @Description 获取钢联化工数据
|
|
|
-// @Param BaseFromMysteelChemicalClassifyId query int true "分类id"
|
|
|
-// @Param BaseFromMysteelChemicalIndexId query int true "钢联化工指标id"
|
|
|
-// @Param Frequency query string true "频度名称"
|
|
|
-// @Param Keyword query string true "名称关键词"
|
|
|
-// @Param PageSize query int true "每页数据条数"
|
|
|
-// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
-// @Success 200 {object} data_manage.LzFrequency
|
|
|
-// @router /mysteel_chemical/data [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalData() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- pageSize, _ := this.GetInt("PageSize")
|
|
|
- currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
- var startSize int
|
|
|
-
|
|
|
- if pageSize <= 0 {
|
|
|
- pageSize = utils.PageSize20
|
|
|
- }
|
|
|
- if currentIndex <= 0 {
|
|
|
- currentIndex = 1
|
|
|
- }
|
|
|
- startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
-
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
-
|
|
|
- var classifyId int
|
|
|
- var frequency string
|
|
|
- // 指定指标
|
|
|
- indexId, _ := this.GetInt("BaseFromMysteelChemicalIndexId")
|
|
|
- if indexId > 0 {
|
|
|
- condition += " AND base_from_mysteel_chemical_index_id = ? "
|
|
|
- pars = append(pars, indexId)
|
|
|
- } else {
|
|
|
- classifyId, _ = this.GetInt("BaseFromMysteelChemicalClassifyId")
|
|
|
- if classifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- br.ErrMsg = "请选择分类"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
- frequency = this.GetString("Frequency")
|
|
|
- if frequency == "" {
|
|
|
- br.Msg = "请选择频度"
|
|
|
- br.ErrMsg = "请选择频度"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if classifyId > 0 {
|
|
|
- condition += " AND base_from_mysteel_chemical_classify_id=? "
|
|
|
- pars = append(pars, classifyId)
|
|
|
- }
|
|
|
- if frequency != `` {
|
|
|
- condition += " AND frequency=? "
|
|
|
- pars = append(pars, frequency)
|
|
|
- }
|
|
|
-
|
|
|
- // 关键词搜索
|
|
|
- keyword := this.GetString("Keyword")
|
|
|
- if keyword != `` {
|
|
|
- condition += " AND (index_name like ? OR index_code like ?) "
|
|
|
- pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
- }
|
|
|
-
|
|
|
- //获取指标
|
|
|
- list, err := data_manage.GetMysteelChemicalIndex(condition, pars)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- for k, v := range list {
|
|
|
- total, err := data_manage.GetMysteelChemicalIndexDataCount(v.IndexCode)
|
|
|
- page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
-
|
|
|
- dataList, err := data_manage.GetMysteelChemicalIndexData(v.IndexCode, startSize, pageSize)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if dataList == nil {
|
|
|
- dataList = make([]*data_manage.MysteelChemicalData, 0)
|
|
|
- }
|
|
|
- edbInfo, err := data_manage.GetEdbInfoByEdbCode(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, v.IndexCode)
|
|
|
- if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取指标库统计数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if edbInfo == nil {
|
|
|
- list[k].EdbInfoId = 0
|
|
|
- } else {
|
|
|
- list[k].EdbInfoId = edbInfo.EdbInfoId
|
|
|
- }
|
|
|
- list[k].DataList = dataList
|
|
|
- list[k].Paging = page
|
|
|
- }
|
|
|
-
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = list
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalExport
|
|
|
-// @Title 导出钢联化工数据
|
|
|
-// @Description 导出钢联化工数据
|
|
|
-// @Param BaseFromMysteelChemicalClassifyId query int true "分类"
|
|
|
-// @Param BaseFromMysteelChemicalIndexId query string true "钢联化工指标id"
|
|
|
-// @Param Keyword query string true "名称关键词"
|
|
|
-// @Success 200 导出成功
|
|
|
-// @router /mysteel_chemical/export/dataList [get]
|
|
|
-func (this *EdbClassifyController) MysteelChemicalExport() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请重新登录"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- classifyId, _ := this.GetInt("BaseFromMysteelChemicalClassifyId") //分类
|
|
|
- frequency := this.GetString("Frequency")
|
|
|
-
|
|
|
- dir, _ := os.Executable()
|
|
|
- exPath := filepath.Dir(dir)
|
|
|
-
|
|
|
- downLoadnFilePath := exPath + "/" + time.Now().Format(utils.FormatDateTimeUnSpace) + ".xlsx"
|
|
|
- xlsxFile := xlsx.NewFile()
|
|
|
-
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
- indexId, _ := this.GetInt("BaseFromMysteelChemicalIndexId")
|
|
|
- if indexId > 0 {
|
|
|
- condition += " AND base_from_mysteel_chemical_index_id = ? "
|
|
|
- pars = append(pars, indexId)
|
|
|
- }
|
|
|
- if classifyId > 0 {
|
|
|
- condition += " AND base_from_mysteel_chemical_classify_id=? "
|
|
|
- pars = append(pars, classifyId)
|
|
|
- }
|
|
|
- if frequency != `` {
|
|
|
- condition += " AND frequency=? "
|
|
|
- pars = append(pars, frequency)
|
|
|
- }
|
|
|
- // 关键词搜索
|
|
|
- keyword := this.GetString("Keyword")
|
|
|
- if keyword != `` {
|
|
|
- condition += " AND (index_name like ? OR index_code like ?) "
|
|
|
- pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
- }
|
|
|
-
|
|
|
- var frequencies []string
|
|
|
- frequencyList, err := data_manage.GetMysteelChemicalFrequency(condition, pars)
|
|
|
- for _, v := range frequencyList {
|
|
|
- frequencies = append(frequencies, v.Frequency)
|
|
|
- }
|
|
|
-
|
|
|
- fileName := `钢联化工数据`
|
|
|
- if frequencies == nil {
|
|
|
- sheet, err := xlsxFile.AddSheet("无数据")
|
|
|
- if err != nil {
|
|
|
- br.Msg = "新增Sheet失败"
|
|
|
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- rowSecName := sheet.AddRow()
|
|
|
- celSecName := rowSecName.AddCell()
|
|
|
- celSecName.SetValue("")
|
|
|
- }
|
|
|
- for _, frequency := range frequencies {
|
|
|
- //获取指标
|
|
|
- var tmpCondition string
|
|
|
- var tmpPars []interface{}
|
|
|
- if indexId > 0 {
|
|
|
- tmpCondition += " AND base_from_mysteel_chemical_index_id = ? "
|
|
|
- tmpPars = append(pars, indexId)
|
|
|
- }
|
|
|
- if classifyId > 0 {
|
|
|
- tmpCondition += " AND base_from_mysteel_chemical_classify_id=? "
|
|
|
- tmpPars = append(pars, classifyId)
|
|
|
- }
|
|
|
- if frequency != `` {
|
|
|
- tmpCondition += " AND frequency=? "
|
|
|
- tmpPars = append(pars, frequency)
|
|
|
- }
|
|
|
- // 关键词搜索
|
|
|
- keyword := this.GetString("Keyword")
|
|
|
- if keyword != `` {
|
|
|
- tmpCondition += " AND (index_name like ? OR index_code like ?) "
|
|
|
- pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
- }
|
|
|
- //获取指标
|
|
|
- secNameList, err := data_manage.GetMysteelChemicalIndex(tmpCondition, tmpPars)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("获取数据失败,Err:" + err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- if len(secNameList) <= 0 {
|
|
|
- fmt.Println("secNameList长度为0")
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- sheetNew, err := xlsxFile.AddSheet(frequency)
|
|
|
-
|
|
|
- if err != nil {
|
|
|
- fmt.Println("新增Sheet失败", err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- //sheetNew.SetColWidth()
|
|
|
- //获取指标数据
|
|
|
- windRow := sheetNew.AddRow()
|
|
|
- secNameRow := sheetNew.AddRow()
|
|
|
- indexCodeRow := sheetNew.AddRow()
|
|
|
- frequencyRow := sheetNew.AddRow()
|
|
|
- unitRow := sheetNew.AddRow()
|
|
|
- lastModifyDateRow := sheetNew.AddRow()
|
|
|
- //获取分类下指标最大数据量
|
|
|
- dataMax, err := data_manage.GetBaseFromMysteelChemicalDataMaxCount(classifyId)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("获取指标最大数据量失败", err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- fmt.Println("dataMax:", dataMax)
|
|
|
- setRowIndex := 6
|
|
|
- for k, sv := range secNameList {
|
|
|
- //获取数据
|
|
|
- dataList, err := data_manage.GetMysteelChemicalIndexDataByCode(sv.IndexCode)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(dataList) > 0 {
|
|
|
- windRow.AddCell().SetValue("钢联")
|
|
|
- secNameRow.AddCell().SetValue("指标名称")
|
|
|
- indexCodeRow.AddCell().SetValue("指标ID")
|
|
|
- frequencyRow.AddCell().SetValue("频率")
|
|
|
- unitRow.AddCell().SetValue("单位")
|
|
|
- lastModifyDateRow.AddCell().SetValue("更新时间")
|
|
|
-
|
|
|
- secNameRow.AddCell().SetValue(sv.IndexName)
|
|
|
- indexCodeRow.AddCell().SetValue(sv.IndexCode)
|
|
|
- frequencyRow.AddCell().SetValue(sv.FrequencyName)
|
|
|
-
|
|
|
- unitRow.AddCell().SetValue(sv.UnitName)
|
|
|
- lastModifyDateRow.AddCell().SetValue(sv.UpdateTime)
|
|
|
-
|
|
|
- windRow.AddCell()
|
|
|
- windRow.AddCell()
|
|
|
- secNameRow.AddCell()
|
|
|
- indexCodeRow.AddCell()
|
|
|
- frequencyRow.AddCell()
|
|
|
- unitRow.AddCell()
|
|
|
- lastModifyDateRow.AddCell()
|
|
|
- min := k * 3
|
|
|
- sheetNew.SetColWidth(min, min, 15)
|
|
|
-
|
|
|
- if len(dataList) <= 0 {
|
|
|
- for n := 0; n < dataMax; n++ {
|
|
|
- rowIndex := setRowIndex + n
|
|
|
- row := sheetNew.Row(rowIndex)
|
|
|
- row.AddCell()
|
|
|
- row.AddCell()
|
|
|
- row.AddCell()
|
|
|
- }
|
|
|
- } else {
|
|
|
- endRowIndex := 0
|
|
|
- for rk, dv := range dataList {
|
|
|
- rowIndex := setRowIndex + rk
|
|
|
- row := sheetNew.Row(rowIndex)
|
|
|
- displayDate, _ := time.Parse(utils.FormatDate, dv.DataTime)
|
|
|
- displayDateCell := row.AddCell()
|
|
|
- style := new(xlsx.Style)
|
|
|
- style.ApplyAlignment = true
|
|
|
- style.Alignment.WrapText = true
|
|
|
- displayDateCell.SetStyle(style)
|
|
|
- displayDateCell.SetDate(displayDate)
|
|
|
-
|
|
|
- row.AddCell().SetValue(dv.InputValue)
|
|
|
- row.AddCell()
|
|
|
- endRowIndex = rowIndex
|
|
|
- }
|
|
|
- if len(dataList) < dataMax {
|
|
|
- dataLen := dataMax - len(dataList)
|
|
|
- for n := 0; n < dataLen; n++ {
|
|
|
- rowIndex := (endRowIndex + 1) + n
|
|
|
- row := sheetNew.Row(rowIndex)
|
|
|
- row.AddCell()
|
|
|
- row.AddCell()
|
|
|
- row.AddCell()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- err = xlsxFile.Save(downLoadnFilePath)
|
|
|
- if err != nil {
|
|
|
- //有指标无数据时先导出一遍空表
|
|
|
- sheet, err := xlsxFile.AddSheet("无数据")
|
|
|
- if err != nil {
|
|
|
- br.Msg = "新增Sheet失败"
|
|
|
- br.ErrMsg = "新增Sheet失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- rowSecName := sheet.AddRow()
|
|
|
- celSecName := rowSecName.AddCell()
|
|
|
- celSecName.SetValue("")
|
|
|
- err = xlsxFile.Save(downLoadnFilePath)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "保存文件失败"
|
|
|
- br.ErrMsg = "保存文件失败"
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- fileName += time.Now().Format("06.01.02") + `.xlsx` //文件名称
|
|
|
- this.Ctx.Output.Download(downLoadnFilePath, fileName)
|
|
|
- defer func() {
|
|
|
- os.Remove(downLoadnFilePath)
|
|
|
- }()
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "success"
|
|
|
-}
|
|
|
-
|
|
|
-// AddMysteelChemical
|
|
|
-// @Title 新增钢联化工指标
|
|
|
-// @Description 新增钢联化工指标接口
|
|
|
-// @Param request body data_manage.AddEdbClassifyReq true "type json string"
|
|
|
-// @Success 200 Ret=200 保存成功
|
|
|
-// @router /mysteel_chemical/add [post]
|
|
|
-func (this *EdbClassifyController) AddMysteelChemical() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- var req request.AddBaseFromMysteelChemicalReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- resp := new(response.AddMysteelChemicalIndexInfoResp)
|
|
|
- conf, err := models.GetBusinessConf()
|
|
|
- if err != nil {
|
|
|
- br.Msg = "添加指标失败"
|
|
|
- br.ErrMsg = "获取业务配置失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- // 判断钢联化工的数据刷新方式
|
|
|
- if conf["MySteelDataMethod"] == "api" {
|
|
|
- if len(req.List) > 150 {
|
|
|
- br.Msg = "添加指标失败,指标数量不能超过150条"
|
|
|
- return
|
|
|
- }
|
|
|
- ok, errMsg, err := data.HealthCheckMysteelChemicalApi()
|
|
|
- if err != nil {
|
|
|
- br.Msg = "添加指标失败"
|
|
|
- br.ErrMsg = "钢联化工数据接口异常,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if !ok {
|
|
|
- br.Msg = errMsg
|
|
|
- return
|
|
|
- }
|
|
|
- addMySteelList := make([]*data_manage.BaseFromMysteelChemicalIndex, 0)
|
|
|
- for _, v := range req.List {
|
|
|
- if v.IndexCode == "" {
|
|
|
- br.Msg = "请输入指标ID"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
- if v.BaseFromMysteelChemicalClassifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- var updateTime1, updateTime2 string
|
|
|
- if v.UpdateTime != `` {
|
|
|
- updateTimeList := strings.Split(v.UpdateTime, ",")
|
|
|
- updateTime1 = updateTimeList[0]
|
|
|
- if len(updateTimeList) > 1 {
|
|
|
- updateTime2 = updateTimeList[1]
|
|
|
- }
|
|
|
- }
|
|
|
- v.IndexCode = utils.TrimStr(v.IndexCode)
|
|
|
- v.IndexCode = strings.Replace(v.IndexCode, "\t", "", -1)
|
|
|
-
|
|
|
- addMySteelList = append(addMySteelList, &data_manage.BaseFromMysteelChemicalIndex{
|
|
|
- BaseFromMysteelChemicalClassifyId: v.BaseFromMysteelChemicalClassifyId,
|
|
|
- IndexCode: strings.ToUpper(v.IndexCode),
|
|
|
- IndexName: "",
|
|
|
- Unit: "",
|
|
|
- Frequency: "",
|
|
|
- StartDate: "",
|
|
|
- EndDate: "",
|
|
|
- Describe: "",
|
|
|
- Source: "api",
|
|
|
- TerminalCode: "",
|
|
|
- UpdateWeek: v.UpdateWeek,
|
|
|
- UpdateTime: updateTime1,
|
|
|
- UpdateTime2: updateTime2,
|
|
|
- SysUserId: this.SysUser.AdminId,
|
|
|
- SysUserRealName: this.SysUser.RealName,
|
|
|
- ModifyTime: time.Now(),
|
|
|
- CreateTime: time.Now(),
|
|
|
- })
|
|
|
- }
|
|
|
- mySteelChemicalIndexInfos, err, errMsg := data.BatchAddMysteelChemicalIndex(addMySteelList, this.Lang)
|
|
|
- if err != nil {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg + ";Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if len(mySteelChemicalIndexInfos) > 0 {
|
|
|
- resp.BaseFromMysteelChemicalIndexId = mySteelChemicalIndexInfos[0].BaseFromMysteelChemicalIndexId
|
|
|
- resp.IndexCode = mySteelChemicalIndexInfos[0].IndexCode
|
|
|
- resp.UniqueCode = fmt.Sprint(mySteelChemicalIndexInfos[0].BaseFromMysteelChemicalClassifyId, "_", mySteelChemicalIndexInfos[0].BaseFromMysteelChemicalIndexId)
|
|
|
- }
|
|
|
- for _, v := range mySteelChemicalIndexInfos {
|
|
|
- err = utils.Rc.LPush(utils.CACHE_MYSTEEL_CHEMICAL_ADD_DATA, v.IndexCode)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "添加指标失败" + v.IndexCode
|
|
|
- br.ErrMsg = "添加指标缓存失败" + v.IndexCode + ";Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- for i, v := range req.List {
|
|
|
- if v.IndexCode == "" {
|
|
|
- br.Msg = "请输入指标ID"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
- if v.BaseFromMysteelChemicalClassifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- v.IndexCode = utils.TrimStr(v.IndexCode)
|
|
|
- v.IndexCode = strings.Replace(v.IndexCode, "\t", "", -1)
|
|
|
-
|
|
|
- //添加指标
|
|
|
- mysteelChemicalIndexInfo, err, errMsg := data.AddMysteelChemicalIndex(v.BaseFromMysteelChemicalClassifyId, strings.ToUpper(v.IndexCode), v.UpdateWeek, v.UpdateTime, this.SysUser.AdminId, this.SysUser.RealName, this.Lang)
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg
|
|
|
- if err != nil {
|
|
|
- br.ErrMsg = errMsg + ";Err:" + err.Error()
|
|
|
- } else {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
- if i == 0 {
|
|
|
- resp.BaseFromMysteelChemicalIndexId = mysteelChemicalIndexInfo.BaseFromMysteelChemicalIndexId
|
|
|
- resp.IndexCode = mysteelChemicalIndexInfo.IndexCode
|
|
|
- resp.UniqueCode = fmt.Sprint(mysteelChemicalIndexInfo.BaseFromMysteelChemicalClassifyId, "_", mysteelChemicalIndexInfo.BaseFromMysteelChemicalIndexId)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- br.Data = resp
|
|
|
- br.Ret = 200
|
|
|
- br.Msg = "保存成功"
|
|
|
- br.Success = true
|
|
|
- br.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-func sortEdbFrequency(frequencyList []string) (newFrequencyList []string) {
|
|
|
- var frequencyMap1 = map[string]int{
|
|
|
- "日度": 1,
|
|
|
- "周度": 2,
|
|
|
- "旬度": 3,
|
|
|
- "月度": 4,
|
|
|
- "季度": 5,
|
|
|
- "半年度": 6,
|
|
|
- "年度": 7,
|
|
|
- }
|
|
|
-
|
|
|
- var frequencyMap2 = map[int]string{
|
|
|
- 1: "日度",
|
|
|
- 2: "周度",
|
|
|
- 3: "旬度",
|
|
|
- 4: "月度",
|
|
|
- 5: "季度",
|
|
|
- 6: "半年度",
|
|
|
- 7: "年度",
|
|
|
- }
|
|
|
-
|
|
|
- idList := make([]int, 0)
|
|
|
- for _, frequency := range frequencyList {
|
|
|
- idList = append(idList, frequencyMap1[frequency])
|
|
|
- }
|
|
|
- sort.Ints(idList)
|
|
|
-
|
|
|
- for _, id := range idList {
|
|
|
- newFrequencyList = append(newFrequencyList, frequencyMap2[id])
|
|
|
- }
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
-// EditMysteelChemical
|
|
|
-// @Title 编辑钢联化工指标
|
|
|
-// @Description 新增钢联化工指标接口
|
|
|
-// @Param request body data_manage.AddEdbClassifyReq true "type json string"
|
|
|
-// @Success 200 Ret=200 保存成功
|
|
|
-// @router /mysteel_chemical/edit [post]
|
|
|
-func (this *EdbClassifyController) EditMysteelChemical() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- var req request.AddBaseFromMysteelChemicalReqItem
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if req.BaseFromMysteelChemicalIndexId <= 0 {
|
|
|
- br.Msg = "请选择指标"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
- if req.BaseFromMysteelChemicalClassifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //编辑指标
|
|
|
- mysteelChemicalIndexInfo, err, errMsg := data.EditMysteelChemicalIndex(req.BaseFromMysteelChemicalIndexId, req.BaseFromMysteelChemicalClassifyId, req.UpdateWeek, req.UpdateTime, this.SysUser)
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg
|
|
|
- if err != nil {
|
|
|
- br.ErrMsg = errMsg + ";Err:" + err.Error()
|
|
|
- } else {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- resp := response.AddMysteelChemicalIndexInfoResp{
|
|
|
- BaseFromMysteelChemicalIndexId: mysteelChemicalIndexInfo.BaseFromMysteelChemicalIndexId,
|
|
|
- IndexCode: mysteelChemicalIndexInfo.IndexCode,
|
|
|
- UniqueCode: fmt.Sprint(mysteelChemicalIndexInfo.BaseFromMysteelChemicalClassifyId, "_", mysteelChemicalIndexInfo.BaseFromMysteelChemicalIndexId),
|
|
|
- }
|
|
|
- br.Data = resp
|
|
|
- br.Ret = 200
|
|
|
- br.Msg = "保存成功"
|
|
|
- br.Success = true
|
|
|
- br.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-// DeleteMysteelChemical
|
|
|
-// @Title 删除指标
|
|
|
-// @Description 删除指标接口
|
|
|
-// @Param request body data_manage.DelBaseFromMysteelChemicalReq true "type json string"
|
|
|
-// @Success 200 Ret=200 删除成功
|
|
|
-// @router /mysteel_chemical/del [post]
|
|
|
-func (this *EdbClassifyController) DeleteMysteelChemical() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- var req request.DelBaseFromMysteelChemicalReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.BaseFromMysteelChemicalIndexId < 0 {
|
|
|
- br.Msg = "参数错误"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- err, errMsg := data.DelMysteelChemical(req.BaseFromMysteelChemicalIndexId, this.SysUser)
|
|
|
- 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.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-// MoveMysteelChemical
|
|
|
-// @Title 指标移动接口
|
|
|
-// @Description 分类移动接口
|
|
|
-// @Success 200 {object} data_manage.MoveBaseFromMysteelChemicalReq
|
|
|
-// @router /mysteel_chemical/move [post]
|
|
|
-func (this *EdbClassifyController) MoveMysteelChemical() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
-
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- var req request.MoveBaseFromMysteelChemicalReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.BaseFromMysteelChemicalIndexId <= 0 {
|
|
|
- br.Msg = "参数错误"
|
|
|
- br.ErrMsg = "指标id小于等于0"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.BaseFromMysteelChemicalClassifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- br.ErrMsg = "请选择分类"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- err, errMsg := data.MoveMysteelChemical(req.BaseFromMysteelChemicalIndexId, req.BaseFromMysteelChemicalClassifyId, req.PrevBaseFromMysteelChemicalIndexId, req.NextBaseFromMysteelChemicalIndexId, this.SysUser)
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg
|
|
|
- if err != nil {
|
|
|
- br.ErrMsg = err.Error()
|
|
|
- } else {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.IsAddLog = true
|
|
|
- br.Msg = "移动成功"
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalDetail
|
|
|
-// @Title 钢联化工指标详情
|
|
|
-// @Description 钢联化工指标详情接口
|
|
|
-// @Param BaseFromMysteelChemicalIndexId query string true "钢联化工指标id"
|
|
|
-// @Success 200 {object} data_manage.BaseFromMysteelChemicalClassifyItems
|
|
|
-// @router /mysteel_chemical/detail [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalDetail() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- indexId, _ := this.GetInt("BaseFromMysteelChemicalIndexId")
|
|
|
- if indexId <= 0 {
|
|
|
- br.Msg = "请选择指标"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- item, err := data_manage.GetBaseFromMysteelChemicalIndexByIndexId(indexId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- }
|
|
|
-
|
|
|
- if item.UpdateTime2 != `` {
|
|
|
- item.UpdateTime = item.UpdateTime + "," + item.UpdateTime2
|
|
|
- }
|
|
|
-
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = item
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalDetail
|
|
|
-// @Title 钢联化工指标详情
|
|
|
-// @Description 钢联化工指标详情接口
|
|
|
-// @Param BaseFromMysteelChemicalIndexId query string true "钢联化工指标id"
|
|
|
-// @Success 200 {object} data_manage.BaseFromMysteelChemicalClassifyItems
|
|
|
-// @router /mysteel_chemical/refresh [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalRefresh() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 每次刷新都需要两分钟的等待时间
|
|
|
- setNxKey := utils.CACHE_KEY_MYSTEEL_REFRESH
|
|
|
- if !utils.Rc.SetNX(setNxKey, 1, 2*60*time.Second) {
|
|
|
- br.Msg = "系统正在处理数据生成,请2分钟之后刷新"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- indexId, _ := this.GetInt("BaseFromMysteelChemicalIndexId")
|
|
|
- if indexId <= 0 {
|
|
|
- br.Msg = "请选择指标"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- item, err := data_manage.GetBaseFromMysteelChemicalIndexByIndexId(indexId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- }
|
|
|
-
|
|
|
- if item.MergeFilePath == "" {
|
|
|
- br.Msg = "系统正在处理数据生成,请5分钟之后刷新"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- go data.CurlRefreshMysteelChemicalData(item.MergeFilePath)
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "刷新成功"
|
|
|
- br.Data = item
|
|
|
-}
|
|
|
-
|
|
|
-// NameCheck
|
|
|
-// @Title 重名校验
|
|
|
-// @Description 批量新增
|
|
|
-// @Param request body data_manage.AddEdbInfoReq true "type json string"
|
|
|
-// @Success 200 string "操作成功"
|
|
|
-// @router /mysteel_chemical/name_check [post]
|
|
|
-func (c *EdbInfoController) NameCheck() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- if br.ErrMsg == "" {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- c.Data["json"] = br
|
|
|
- c.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := c.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- var req []*data_manage.NameCheckEdbInfoReq
|
|
|
- if e := json.Unmarshal(c.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(req) == 0 {
|
|
|
- br.Msg = "请选择指标"
|
|
|
- return
|
|
|
- }
|
|
|
- codeMax := 30
|
|
|
- codeLen := len(req)
|
|
|
- if codeLen > codeMax {
|
|
|
- br.Msg = fmt.Sprintf("最多只能选择%d个指标", codeMax)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- type NameCheckResult struct {
|
|
|
- EdbCode string
|
|
|
- EdbName string
|
|
|
- Exist bool
|
|
|
- }
|
|
|
- indexNames := make([]string, 0)
|
|
|
- resp := make([]*NameCheckResult, 0)
|
|
|
- for _, v := range req {
|
|
|
- v.EdbCode = strings.TrimSpace(v.EdbCode)
|
|
|
- if v.EdbCode == "" {
|
|
|
- br.Msg = "指标ID不可为空"
|
|
|
- return
|
|
|
- }
|
|
|
- v.EdbName = strings.TrimSpace(v.EdbName)
|
|
|
- if v.EdbName == "" {
|
|
|
- br.Msg = "请输入指标名称"
|
|
|
- return
|
|
|
- }
|
|
|
- indexNames = append(indexNames, v.EdbName)
|
|
|
- resp = append(resp, &NameCheckResult{
|
|
|
- EdbCode: v.EdbCode,
|
|
|
- EdbName: v.EdbName,
|
|
|
- })
|
|
|
- dataItems, err := data_manage.GetEdbDataAllByEdbCode(v.EdbCode, utils.DATA_SOURCE_MYSTEEL_CHEMICAL, 0, utils.EDB_DATA_LIMIT)
|
|
|
- if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(dataItems) <= 0 {
|
|
|
- respItem, err := data.AddEdbData(utils.DATA_SOURCE_MYSTEEL_CHEMICAL, v.EdbCode, v.Frequency)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if respItem.Ret != 200 {
|
|
|
- br.Msg = "未搜索到该指标"
|
|
|
- br.ErrMsg = respItem.ErrMsg + ";EdbCode:" + v.EdbCode
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 重名校验
|
|
|
- edbList, e := data_manage.GetEdbInfoByNameArr(indexNames, utils.EDB_INFO_TYPE)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "操作失败"
|
|
|
- br.ErrMsg = "获取重名指标失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- nameExists := make(map[string]bool)
|
|
|
- for _, v := range edbList {
|
|
|
- nameExists[v.EdbName] = true
|
|
|
- }
|
|
|
- if len(nameExists) > 0 {
|
|
|
- for _, v := range resp {
|
|
|
- v.Exist = nameExists[v.EdbName]
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- br.Data = resp
|
|
|
- br.Msg = "校验成功"
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
-}
|
|
|
-
|
|
|
-// BatchAdd
|
|
|
-// @Title 批量新增
|
|
|
-// @Description 批量新增
|
|
|
-// @Param request body data_manage.AddEdbInfoReq true "type json string"
|
|
|
-// @Success 200 string "操作成功"
|
|
|
-// @router /mysteel_chemical/batch_add [post]
|
|
|
-func (this *EdbInfoController) BatchAdd() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- if br.ErrMsg == "" {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- deleteCache := true
|
|
|
- cacheKey := "CACHE_EDB_INFO_BATCH_ADD_MYSTEEL_CHEMICAL_" + strconv.Itoa(sysUser.AdminId)
|
|
|
- defer func() {
|
|
|
- if deleteCache {
|
|
|
- _ = utils.Rc.Delete(cacheKey)
|
|
|
- }
|
|
|
- }()
|
|
|
- if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
|
|
|
- deleteCache = false
|
|
|
- br.Msg = "系统处理中,请稍后重试!"
|
|
|
- br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
|
|
|
- return
|
|
|
- }
|
|
|
- var req []*data_manage.AddEdbInfoReq
|
|
|
- if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if len(req) == 0 {
|
|
|
- br.Msg = "请选择指标"
|
|
|
- return
|
|
|
- }
|
|
|
- if len(req) > 30 {
|
|
|
- br.Msg = "批量添加指标数量不得超过30个"
|
|
|
- return
|
|
|
- }
|
|
|
- for _, v := range req {
|
|
|
- v.EdbCode = strings.TrimSpace(v.EdbCode)
|
|
|
- if v.EdbCode == "" {
|
|
|
- br.Msg = "指标ID不可为空"
|
|
|
- return
|
|
|
- }
|
|
|
- v.EdbName = strings.TrimSpace(v.EdbName)
|
|
|
- if v.EdbName == "" {
|
|
|
- br.Msg = "请输入指标名称"
|
|
|
- return
|
|
|
- }
|
|
|
- v.Frequency = strings.TrimSpace(v.Frequency)
|
|
|
- if v.Frequency == "" {
|
|
|
- br.Msg = "请选择频度"
|
|
|
- return
|
|
|
- }
|
|
|
- v.Unit = strings.TrimSpace(v.Unit)
|
|
|
- if v.Unit == "" {
|
|
|
- br.Msg = "请输入单位"
|
|
|
- return
|
|
|
- }
|
|
|
- if v.ClassifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 限定同一时间最多批量新增30个指标
|
|
|
- for _, v := range req {
|
|
|
- var r data.MysteelChemicalIndexSource2EdbReq
|
|
|
- r.EdbCode = v.EdbCode
|
|
|
- r.EdbName = v.EdbName
|
|
|
- r.Frequency = v.Frequency
|
|
|
- r.Unit = v.Unit
|
|
|
- r.ClassifyId = v.ClassifyId
|
|
|
- r.AdminId = sysUser.AdminId
|
|
|
- r.AdminRealName = sysUser.RealName
|
|
|
-
|
|
|
- edbInfo, e, errMsg, skip := data.MysteelChemicalIndexSource2Edb(r, this.Lang)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "操作失败"
|
|
|
- if errMsg != "" {
|
|
|
- br.Msg = errMsg
|
|
|
- }
|
|
|
- br.ErrMsg = e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if skip {
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- // 新增操作日志
|
|
|
- {
|
|
|
- edbLog := new(data_manage.EdbInfoLog)
|
|
|
- edbLog.EdbInfoId = edbInfo.EdbInfoId
|
|
|
- edbLog.SourceName = edbInfo.SourceName
|
|
|
- edbLog.Source = edbInfo.Source
|
|
|
- edbLog.EdbCode = edbInfo.EdbCode
|
|
|
- edbLog.EdbName = edbInfo.EdbName
|
|
|
- edbLog.ClassifyId = edbInfo.ClassifyId
|
|
|
- edbLog.SysUserId = sysUser.AdminId
|
|
|
- edbLog.SysUserRealName = sysUser.RealName
|
|
|
- edbLog.CreateTime = time.Now()
|
|
|
- edbLog.Content = string(this.Ctx.Input.RequestBody)
|
|
|
- edbLog.Status = "新增指标"
|
|
|
- edbLog.Method = this.Ctx.Input.URI()
|
|
|
- go data_manage.AddEdbInfoLog(edbLog)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- br.Msg = "操作成功"
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-// EdbInfoAdd
|
|
|
-// @Title 新增指标接口
|
|
|
-// @Description 新增指标接口
|
|
|
-// @Param request body data_manage.AddEdbInfoReq true "type json string"
|
|
|
-// @Success Ret=200 保存成功
|
|
|
-// @router /mysteel_chemical/edb_info/add [post]
|
|
|
-func (this *EdbInfoController) Add() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
-
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- deleteCache := true
|
|
|
- cacheKey := "CACHE_EDB_INFO_ADD_" + strconv.Itoa(sysUser.AdminId)
|
|
|
- defer func() {
|
|
|
- if deleteCache {
|
|
|
- utils.Rc.Delete(cacheKey)
|
|
|
- }
|
|
|
- }()
|
|
|
- if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
|
|
|
- deleteCache = false
|
|
|
- br.Msg = "系统处理中,请稍后重试!"
|
|
|
- br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
|
|
|
- return
|
|
|
- }
|
|
|
- var req data_manage.AddEdbInfoReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- req.EdbName = strings.Trim(req.EdbName, " ")
|
|
|
- req.EdbCode = strings.Trim(req.EdbCode, " ")
|
|
|
-
|
|
|
- if req.EdbCode == "" {
|
|
|
- br.Msg = "指标ID不能为空"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.EdbName == "" {
|
|
|
- br.Msg = "指标名称不能为空"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.Frequency == "" {
|
|
|
- br.Msg = "频率不能为空"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.Unit == "" {
|
|
|
- br.Msg = "单位不能为空"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.ClassifyId <= 0 {
|
|
|
- br.Msg = "请选择分类"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- tmpInfo, err := data_manage.GetBaseFromMysteelChemicalIndexByCode(req.EdbCode)
|
|
|
- if err != nil {
|
|
|
- if !utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- var source int
|
|
|
- if tmpInfo != nil {
|
|
|
- source = utils.DATA_SOURCE_MYSTEEL_CHEMICAL
|
|
|
- } else {
|
|
|
- br.Msg = "指标不存在"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 指标入库
|
|
|
- edbInfo, err, errMsg, isSendEmail := data.EdbInfoAdd(source, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, req.StartDate, req.EndDate, sysUser.AdminId, sysUser.RealName, this.Lang)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "保存失败"
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- }
|
|
|
- br.ErrMsg = err.Error()
|
|
|
- br.IsSendEmail = isSendEmail
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- //新增操作日志
|
|
|
- {
|
|
|
- // 添加钢联指标更新日志
|
|
|
- if edbInfo.Source == utils.DATA_SOURCE_MYSTEEL_CHEMICAL {
|
|
|
- go data_stat.AddEdbInfoUpdateLog(edbInfo.EdbInfoId, 1, "", sysUser, 2)
|
|
|
- }
|
|
|
-
|
|
|
- edbLog := new(data_manage.EdbInfoLog)
|
|
|
- edbLog.EdbInfoId = edbInfo.EdbInfoId
|
|
|
- edbLog.SourceName = edbInfo.SourceName
|
|
|
- edbLog.Source = edbInfo.Source
|
|
|
- edbLog.EdbCode = edbInfo.EdbCode
|
|
|
- edbLog.EdbName = edbInfo.EdbName
|
|
|
- edbLog.ClassifyId = edbInfo.ClassifyId
|
|
|
- edbLog.SysUserId = sysUser.AdminId
|
|
|
- edbLog.SysUserRealName = sysUser.RealName
|
|
|
- edbLog.CreateTime = time.Now()
|
|
|
- edbLog.Content = string(this.Ctx.Input.RequestBody)
|
|
|
- edbLog.Status = "新增指标"
|
|
|
- edbLog.Method = this.Ctx.Input.URI()
|
|
|
- go data_manage.AddEdbInfoLog(edbLog)
|
|
|
- }
|
|
|
-
|
|
|
- // 更新es
|
|
|
- go data.AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
|
|
|
-
|
|
|
- resp := new(data_manage.AddEdbInfoResp)
|
|
|
- resp.EdbInfoId = edbInfo.EdbInfoId
|
|
|
- resp.UniqueCode = edbInfo.UniqueCode
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "保存成功"
|
|
|
- br.Data = resp
|
|
|
- br.IsAddLog = true
|
|
|
-}
|
|
|
-
|
|
|
-// AddCheck
|
|
|
-// @Title 新增指标检测接口
|
|
|
-// @Description 新增指标检测接口
|
|
|
-// @Param EdbCode query string true "指标编码/指标代码"
|
|
|
-// @Success Ret=200 保存成功
|
|
|
-// @router /mysteel_chemical/edb_info/add_check [get]
|
|
|
-// func (this *EdbInfoController) AddCheck() {
|
|
|
-// br := new(models.BaseResponse).Init()
|
|
|
-// defer func() {
|
|
|
-// this.Data["json"] = br
|
|
|
-// this.ServeJSON()
|
|
|
-// }()
|
|
|
-
|
|
|
-// sysUser := this.SysUser
|
|
|
-// if sysUser == nil {
|
|
|
-// br.Msg = "请登录"
|
|
|
-// br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
-// br.Ret = 408
|
|
|
-// return
|
|
|
-// }
|
|
|
-// var req []*data_manage.AddCheckEdbInfoReq
|
|
|
-// if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
|
|
|
-// br.Msg = "参数解析异常!"
|
|
|
-// br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
-// return
|
|
|
-// }
|
|
|
-
|
|
|
-// source := utils.DATA_SOURCE_MYSTEEL_CHEMICAL
|
|
|
-// indexNameMap := make(map[string]string)
|
|
|
-// indexNames := make([]string, 0)
|
|
|
-// for _, v := range req {
|
|
|
-// v.EdbCode = strings.Trim(v.EdbCode, "\t")
|
|
|
-// v.EdbCode = strings.Trim(v.EdbCode, " ")
|
|
|
-// v.EdbCode = strings.Replace(v.EdbCode, "\t", "", -1)
|
|
|
-// if v.EdbCode == "" {
|
|
|
-// br.Msg = "请输入指标ID"
|
|
|
-// return
|
|
|
-// }
|
|
|
-// v.EdbName = strings.Trim(v.EdbName, "\t")
|
|
|
-// v.EdbName = strings.Trim(v.EdbName, " ")
|
|
|
-// v.EdbName = strings.Replace(v.EdbName, "\t", "", -1)
|
|
|
-// if v.EdbName == "" {
|
|
|
-// br.Msg = "请输入指标名称"
|
|
|
-// return
|
|
|
-// }
|
|
|
-// indexNames = append(indexNames, v.EdbName)
|
|
|
-
|
|
|
-// item, err := data_manage.GetEdbInfoByEdbCode(source, edbCode)
|
|
|
-// if err != nil && !utils.IsErrNoRow(err) {
|
|
|
-// br.Msg = "获取失败"
|
|
|
-// br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
-// return
|
|
|
-// }
|
|
|
-
|
|
|
-// resp := new(data_manage.EdbInfoMySteelChemicalCheckResp)
|
|
|
-// if item != nil && item.EdbInfoId > 0 {
|
|
|
-// resp.Status = 1
|
|
|
-// // 查询该指标是否有权限
|
|
|
-// obj := data_manage.EdbInfoNoPermissionAdmin{}
|
|
|
-// conf, err := obj.GetByEdbInfoIdAndAdminId(this.SysUser.AdminId, item.EdbInfoId)
|
|
|
-// if err != nil && !utils.IsErrNoRow(err) {
|
|
|
-// br.Msg = "获取失败"
|
|
|
-// br.ErrMsg = "获取当前账号的不可见指标配置失败,err:" + err.Error()
|
|
|
-// return
|
|
|
-// }
|
|
|
-// if conf != nil {
|
|
|
-// resp.Status = 3
|
|
|
-// }
|
|
|
-// } else {
|
|
|
-// resp.Status = 2
|
|
|
-// dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, source, 0, utils.EDB_DATA_LIMIT)
|
|
|
-// if err != nil && !utils.IsErrNoRow(err) {
|
|
|
-// br.Msg = "获取失败"
|
|
|
-// br.ErrMsg = "获取钢联已存在信息失败,Err:" + err.Error()
|
|
|
-// return
|
|
|
-// }
|
|
|
-
|
|
|
-// if len(dataItems) <= 0 {
|
|
|
-// respItem, err := data.AddEdbData(source, edbCode, frequency)
|
|
|
-// if err != nil {
|
|
|
-// br.Msg = "获取失败"
|
|
|
-// br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
-// return
|
|
|
-// }
|
|
|
-// if respItem.Ret != 200 {
|
|
|
-// br.Msg = "未搜索到该指标"
|
|
|
-// br.ErrMsg = respItem.ErrMsg + ";EdbCode:" + edbCode
|
|
|
-// return
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// br.Ret = 200
|
|
|
-// br.Success = true
|
|
|
-// br.Msg = "保存成功"
|
|
|
-// br.Data = resp
|
|
|
-// br.IsAddLog = true
|
|
|
-// }
|
|
|
-
|
|
|
-// AddCheck
|
|
|
-// @Title 新增校验
|
|
|
-// @Description 新增校验
|
|
|
-// @Param request body request.BusinessDataBatchAddCheckReq true "type json string"
|
|
|
-// @Success 200 string "操作成功"
|
|
|
-// @router /mysteel_chemical/edb_info/add_check [post]
|
|
|
-func (c *EdbInfoController) AddCheck() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- if br.ErrMsg == "" {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- c.Data["json"] = br
|
|
|
- c.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := c.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- var req *data_manage.MysteelChemicalDataBatchAddCheckReq
|
|
|
- if e := json.Unmarshal(c.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- codeMax := 30
|
|
|
- codeLen := len(req.IndexCodes)
|
|
|
-
|
|
|
- // 获取指标库已有指标
|
|
|
- existsEdb, e := data_manage.GetEdbCodesBySource(utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取自有数据已添加的指标失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- existMap := make(map[string]*data_manage.EdbInfo)
|
|
|
- for _, v := range existsEdb {
|
|
|
- existMap[v.EdbCode] = v
|
|
|
- }
|
|
|
-
|
|
|
- obj := data_manage.BaseFromMysteelChemicalIndex{}
|
|
|
- if codeLen == 0 {
|
|
|
- br.Msg = "请选择指标"
|
|
|
- return
|
|
|
- }
|
|
|
- if codeLen > codeMax {
|
|
|
- br.Msg = fmt.Sprintf("最多只能选择%d个指标", codeMax)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 查询选中的指标
|
|
|
- cond := fmt.Sprintf(` AND %s IN (%s)`, data_manage.BaseFromMysteelChemicalIndexCols.IndexCode, utils.GetOrmInReplace(codeLen))
|
|
|
- pars := make([]interface{}, 0)
|
|
|
- pars = append(pars, req.IndexCodes)
|
|
|
- list, e := obj.GeItemsByCondition(cond, pars, 0)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取自有数据原始指标列表失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if len(list) > codeMax {
|
|
|
- br.Msg = fmt.Sprintf("最多只能选择%d个指标", codeMax)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- resp := make([]*data_manage.BaseFromMysteelChemicalIndexItem, 0)
|
|
|
- for _, v := range list {
|
|
|
- if v.EdbInfoId > 0 {
|
|
|
- v.EdbExist = 1
|
|
|
- }
|
|
|
- resp = append(resp, v)
|
|
|
- }
|
|
|
-
|
|
|
- br.Data = resp
|
|
|
- br.Msg = "校验成功"
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
-}
|
|
|
-
|
|
|
-// MysteelChemicalSearch
|
|
|
-// @Title 钢联化工指标查询
|
|
|
-// @Description 钢联化工指标查询
|
|
|
-// @Param BaseFromMysteelChemicalClassifyIds query string true "分类id"
|
|
|
-// @Param Keyword query string true "名称关键词"
|
|
|
-// @Success 200 {object} data_manage.LzFrequency
|
|
|
-// @router /mysteel_chemical/batch_search [get]
|
|
|
-func (this *EdbInfoController) MysteelChemicalBatchSearch() {
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- this.Data["json"] = br
|
|
|
- this.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := this.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- classifyIdStr := this.GetString("BaseFromMysteelChemicalClassifyIds")
|
|
|
-
|
|
|
- var condition string
|
|
|
- var pars []interface{}
|
|
|
- classifyIds := strings.Split(classifyIdStr, ",")
|
|
|
- if len(classifyIds) > 0 && classifyIds[0] != `` {
|
|
|
- condition += " AND base_from_mysteel_chemical_classify_id IN (" + utils.GetOrmInReplace(len(classifyIds)) + " ) "
|
|
|
- pars = append(pars, classifyIds)
|
|
|
- }
|
|
|
- keyword := this.GetString("Keyword")
|
|
|
- if keyword != `` {
|
|
|
- condition += " AND (index_name like ? OR index_code like ?) "
|
|
|
- pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
- }
|
|
|
-
|
|
|
- if classifyIdStr == `` && keyword == `` {
|
|
|
- var list = make([]*data_manage.MysteelChemicalList, 0)
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = list
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- list, err := data_manage.GetMysteelChemicalIndex(condition, pars)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- classifyIdInts := make([]int, 0)
|
|
|
- for _, v := range list {
|
|
|
- v.UniqueCode = fmt.Sprint(v.BaseFromMysteelChemicalClassifyId, "_", v.Id)
|
|
|
- if v.BaseFromMysteelChemicalClassifyId > 0 {
|
|
|
- classifyIdInts = append(classifyIdInts, v.BaseFromMysteelChemicalClassifyId)
|
|
|
- }
|
|
|
- }
|
|
|
- if len(classifyIdInts) > 0 {
|
|
|
- // 查询父级分类信息
|
|
|
- classifyList, e := data_manage.GetBaseFromMysteelChemicalClassifyByIds(classifyIdInts)
|
|
|
- if e != nil {
|
|
|
- br.Msg = "获取目录信息失败"
|
|
|
- br.ErrMsg = "获取失获取目录信息失败,Err:" + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- classifyListMap := make(map[int]int, 0)
|
|
|
- for _, v := range classifyList {
|
|
|
- classifyListMap[v.BaseFromMysteelChemicalClassifyId] = v.ParentId
|
|
|
- }
|
|
|
- for _, v := range list {
|
|
|
- v.UniqueCode = fmt.Sprint(v.BaseFromMysteelChemicalClassifyId, "_", v.Id)
|
|
|
- if p, ok := classifyListMap[v.BaseFromMysteelChemicalClassifyId]; ok {
|
|
|
- v.ParentClassifyId = p
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = list
|
|
|
-}
|