Explorar el Código

预测指标编辑基础信息

xyxie hace 6 meses
padre
commit
8e7611de97
Se han modificado 3 ficheros con 211 adiciones y 0 borrados
  1. 68 0
      controllers/data_manage/predict_edb_info.go
  2. 9 0
      routers/commentsRouter.go
  3. 134 0
      services/data/edb_info.go

+ 68 - 0
controllers/data_manage/predict_edb_info.go

@@ -2289,3 +2289,71 @@ func (this *PredictEdbInfoController) AddStaticEdb() {
 	br.Data = resp
 	br.IsAddLog = true
 }
+
+// EdbInfoBaseEdit
+// @Title 指标基础信息编辑接口
+// @Description 指标基础信息编辑接口
+// @Success 200 {object} data_manage.EditEdbInfoReq
+// @router /predict_edb_info/base/edit [post]
+func (this *PredictEdbInfoController) EdbInfoBaseEdit() {
+	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.EditEdbInfoReq
+	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, " ")
+
+	if req.EdbInfoId <= 0 {
+		br.Msg = "参数错误"
+		br.ErrMsg = "指标id小于等于0"
+		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
+	}
+
+	isSendEmail, err, errMsg := data.EditBaseEdbInfo(req, this.SysUser, this.Lang, string(this.Ctx.Input.RequestBody), this.Ctx.Input.URI())
+	if err != nil {
+		br.Msg = errMsg
+		br.ErrMsg = err.Error()
+		br.IsSendEmail = isSendEmail
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "保存成功"
+	br.IsAddLog = true
+}

+ 9 - 0
routers/commentsRouter.go

@@ -5425,6 +5425,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:PredictEdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:PredictEdbInfoController"],
+        beego.ControllerComments{
+            Method: "EdbInfoBaseEdit",
+            Router: `/predict_edb_info/base/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:PredictEdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:PredictEdbInfoController"],
         beego.ControllerComments{
             Method: "CalculateBatchSave",

+ 134 - 0
services/data/edb_info.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/data_manage/excel"
+	"eta/eta_api/models/system"
 	"eta/eta_api/services/alarm_msg"
 	"eta/eta_api/services/data/data_manage_permission"
 	"eta/eta_api/services/elastic"
@@ -2966,3 +2967,136 @@ func handleByDelEdbInfo(edbInfo *data_manage.EdbInfo) {
 		_ = models.UpdateManualIsJoinEdbStatus(edbInfo.EdbCode, 0)
 	}
 }
+
+func EditBaseEdbInfo(req data_manage.EditEdbInfoReq, sysUser *system.Admin, lang, requestBody, uri string) (isSendEmail bool, err error, errMsg string) {
+	isSendEmail = true
+	edbInfo, err := data_manage.GetEdbInfoById(req.EdbInfoId)
+	if err != nil {
+		errMsg = "修改失败"
+		err = fmt.Errorf("获取指标信息失败,Err:" + err.Error())
+		return
+	}
+
+	// 记录旧的指标基本信息
+	oldEdbName := edbInfo.EdbName
+	oldFrequency := edbInfo.Frequency
+	oldUnit := edbInfo.Unit
+
+	var haveOperaAuth bool
+	// 权限校验
+	{
+		haveOperaAuth, err = data_manage_permission.CheckEdbPermissionByEdbInfoId(edbInfo.EdbInfoId, edbInfo.ClassifyId, edbInfo.IsJoinPermission, sysUser.AdminId)
+		if err != nil {
+			errMsg = err.Error()
+			err = fmt.Errorf("校验指标权限失败,err:" + err.Error())
+			return
+		}
+	}
+
+	// 编辑权限校验
+	button := GetEdbOpButton(sysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType, haveOperaAuth)
+	if !button.OpButton {
+		errMsg = "无权限操作"
+		isSendEmail = false
+		return
+	}
+
+	//判断指标名称是否存在
+	var condition string
+	var pars []interface{}
+
+	condition += " AND edb_info_id<>? "
+	pars = append(pars, req.EdbInfoId)
+
+	//condition += " AND source=? "
+	//pars = append(pars, edbInfo.Source)
+
+	updateCols := make([]string, 0)
+	switch lang {
+	case utils.EnLangVersion:
+		condition += " AND edb_name_en = ? "
+		edbInfo.EdbNameEn = req.EdbName
+		edbInfo.Frequency = req.Frequency
+		edbInfo.UnitEn = req.Unit
+		edbInfo.ClassifyId = req.ClassifyId
+		updateCols = append(updateCols, "EdbNameEn", "Frequency", "UnitEn", "ClassifyId")
+	default:
+		condition += " AND edb_name=? "
+		edbInfo.EdbName = req.EdbName
+		edbInfo.EdbNameSource = req.EdbName
+		edbInfo.Frequency = req.Frequency
+		edbInfo.Unit = req.Unit
+		edbInfo.ClassifyId = req.ClassifyId
+		updateCols = append(updateCols, "EdbName", "EdbNameSource", "Frequency", "Unit", "ClassifyId")
+	}
+	pars = append(pars, req.EdbName)
+
+	count, err := data_manage.GetEdbInfoCountByCondition(condition, pars)
+	if err != nil {
+		errMsg = "判断指标名称是否存在失败"
+		err = fmt.Errorf("判断指标名称是否存在失败,Err:" + err.Error())
+		return
+	}
+
+	if count > 0 {
+		errMsg = "指标名称已存在,请重新填写"
+		err = fmt.Errorf("指标名称已存在,请重新填写")
+		isSendEmail = false
+		return
+	}
+
+	if len(updateCols) > 0 {
+		err = edbInfo.Update(updateCols)
+		if err != nil {
+			errMsg = "保存失败"
+			err = fmt.Errorf("修改失败,Err:" + err.Error())
+			return
+		}
+	}
+
+	// 新增保存记录日志
+	oldEdbInfo := new(data_manage.EdbInfo)
+	oldEdbInfo.EdbInfoId = edbInfo.EdbInfoId
+	oldEdbInfo.EdbName = oldEdbName
+	oldEdbInfo.Frequency = oldFrequency
+	oldEdbInfo.Unit = oldUnit
+	newEdbInfoRecord := new(data_manage.EdbInfoEditRecord)
+	newEdbInfoRecord.EdbName = req.EdbName
+	newEdbInfoRecord.Frequency = req.Frequency
+	newEdbInfoRecord.Unit = req.Unit
+	newEdbInfoRecord.OperateUserId = sysUser.AdminId
+	newEdbInfoRecord.OperateUserRealName = sysUser.RealName
+	go AddEditEdbInfoRcord(oldEdbInfo, newEdbInfoRecord)
+
+	//新增操作日志
+	{
+		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 = requestBody
+		edbLog.Status = "编辑指标"
+		edbLog.Method = uri
+		go data_manage.AddEdbInfoLog(edbLog)
+	}
+
+	//添加es
+	AddOrEditEdbInfoToEs(req.EdbInfoId)
+
+	switch lang {
+	case utils.EnLangVersion:
+		// 修改关联的预测指标基础信息
+		go ModifyPredictEdbEnBaseInfoBySourceEdb(edbInfo, req.Unit)
+	default:
+		// 修改关联的预测指标基础信息
+		go ModifyPredictEdbBaseInfoBySourceEdb(edbInfo, req.Frequency, req.Unit)
+	}
+
+	return
+}