|
@@ -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
|
|
|
+}
|