Răsfoiți Sursa

feat:新增复制图表

Roc 1 an în urmă
părinte
comite
fb42c24821

+ 109 - 6
controllers/data_manage/cross_variety/chart_info.go

@@ -326,7 +326,7 @@ func (c *ChartInfoController) Add() {
 	}
 
 	// 添加图表
-	chartInfo, err, errMsg, isSendEmail := cross_variety.AddChartInfo(req, utils.CHART_SOURCE_CROSS_HEDGING, sysUser)
+	chartInfo, err, errMsg, isSendEmail := cross_variety.AddChartInfo(req, sysUser)
 	if err != nil {
 		br.Msg = "保存失败"
 		if errMsg != `` {
@@ -563,16 +563,12 @@ func (c *ChartInfoController) Detail() {
 	//chartInfo.IsEnChart = data.CheckIsEnChart(chartInfo.ChartNameEn, edbList[0:1], chartInfo.Source, chartInfo.ChartType)
 	//chartInfo.UnitEn = edbInfoMappingA.UnitEn
 
-	isSaveAs := true
-	if chartInfo.Source == utils.CHART_SOURCE_ROLLING_CORRELATION {
-		isSaveAs = false
-	}
 	// 另存为
 	chartInfo.Button = data_manage.ChartViewButton{
 		IsEdit:    chartInfo.IsEdit,
 		IsEnChart: chartInfo.IsEnChart,
 		IsAdd:     chartInfo.IsAdd,
-		IsCopy:    isSaveAs,
+		IsCopy:    true,
 		IsSetName: chartInfo.IsSetName,
 	}
 
@@ -584,3 +580,110 @@ func (c *ChartInfoController) Detail() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// Copy
+// @Title 复制并新增图表接口
+// @Description 新增图表接口
+// @Param	request	body data_manage.CopyAddChartInfoReq true "type json string"
+// @Success 200 {object} data_manage.AddChartInfoResp
+// @router /chart_info/copy [post]
+func (c *ChartInfoController) Copy() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	deleteCache := true
+	cacheKey := "CACHE_CHART_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(c.Ctx.Input.RequestBody)
+		return
+	}
+	var req request.CopyAddChartInfoReq
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	// 获取原图表信息
+	oldChartInfo, err := data_manage.GetChartInfoById(req.ChartInfoId)
+	if err != nil {
+		br.Msg = "获取原图表信息失败"
+		br.ErrMsg = "获取原图表信息失败,Err:" + err.Error()
+		return
+	}
+
+	var config request.AddChartReq
+	err = json.Unmarshal([]byte(oldChartInfo.ExtraConfig), &config)
+	if err != nil {
+		br.Msg = "原图表信息配置解析异常!"
+		br.ErrMsg = "原图表信息配置解析失败,Err:" + err.Error()
+		return
+	}
+	config.ChartName = req.ChartName
+
+	// 添加图表
+	chartInfo, err, errMsg, isSendEmail := cross_variety.AddChartInfo(config, sysUser)
+	if err != nil {
+		br.Msg = "保存失败"
+		if errMsg != `` {
+			br.Msg = errMsg
+		}
+		br.ErrMsg = err.Error()
+		br.IsSendEmail = isSendEmail
+		return
+	}
+
+	if err != nil {
+		br.Msg = "保存失败"
+		if errMsg != `` {
+			br.Msg = errMsg
+		}
+		br.ErrMsg = err.Error()
+		br.IsSendEmail = isSendEmail
+		return
+	}
+
+	//新增操作日志
+	{
+		chartLog := new(data_manage.ChartInfoLog)
+		chartLog.ChartInfoId = chartInfo.ChartInfoId
+		chartLog.ChartName = req.ChartName
+		chartLog.ChartClassifyId = chartInfo.ChartClassifyId
+		chartLog.SysUserId = sysUser.AdminId
+		chartLog.SysUserRealName = sysUser.RealName
+		chartLog.UniqueCode = chartInfo.UniqueCode
+		chartLog.CreateTime = time.Now()
+		chartLog.Content = string(c.Ctx.Input.RequestBody)
+		chartLog.Status = "复制跨品种分析图表"
+		chartLog.Method = c.Ctx.Input.URI()
+		go data_manage.AddChartInfoLog(chartLog)
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "保存成功"
+	br.Data = data_manage.AddChartInfoResp{
+		ChartInfoId: chartInfo.ChartInfoId,
+		UniqueCode:  chartInfo.UniqueCode,
+		ChartType:   chartInfo.ChartType,
+	}
+	br.IsAddLog = true
+}

+ 7 - 0
models/data_manage/cross_variety/request/chart.go

@@ -48,3 +48,10 @@ type EditChartReq struct {
 	DateConfigList []ChartConfigDate `description:"日期配置列表"`
 	VarietyList    []int
 }
+
+// CopyAddChartInfoReq
+// @Description: 复制并新增图表
+type CopyAddChartInfoReq struct {
+	ChartInfoId int    `description:"待复制的图表id"`
+	ChartName   string `description:"图表名称"`
+}

+ 9 - 0
routers/commentsRouter.go

@@ -187,6 +187,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "Copy",
+            Router: `/chart_info/copy`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage/cross_variety:ChartInfoController"],
         beego.ControllerComments{
             Method: "Detail",

+ 23 - 56
services/data/cross_variety/chart.go

@@ -402,10 +402,21 @@ func GetChartData(chartInfoId int, config request.ChartConfigReq) (edbList []*da
 	return
 }
 
-// AddChartInfo 添加图表
-func AddChartInfo(req request.AddChartReq, source int, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
+// AddChartInfo
+// @Description: AddChartInfo
+// @author: Roc
+// @datetime 2023-11-24 15:58:14
+// @param req request.AddChartReq
+// @param sysUser *system.Admin
+// @return chartInfo *data_manage.ChartInfo
+// @return err error
+// @return errMsg string
+// @return isSendEmail bool
+func AddChartInfo(req request.AddChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
+	source := utils.CHART_SOURCE_CROSS_HEDGING
+
 	req.ChartName = strings.Trim(req.ChartName, " ")
 	if req.ChartName == "" {
 		errMsg = "请填写图表名称!"
@@ -574,7 +585,16 @@ func AddChartInfo(req request.AddChartReq, source int, sysUser *system.Admin) (c
 	return
 }
 
-// EditChartInfo 编辑图表
+// EditChartInfo
+// @Description: 编辑图表
+// @author: Roc
+// @datetime 2023-11-24 15:58:31
+// @param req request.EditChartReq
+// @param sysUser *system.Admin
+// @return chartItem *data_manage.ChartInfo
+// @return err error
+// @return errMsg string
+// @return isSendEmail bool
 func EditChartInfo(req request.EditChartReq, sysUser *system.Admin) (chartItem *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	isSendEmail = true
 
@@ -734,56 +754,3 @@ func EditChartInfo(req request.EditChartReq, sysUser *system.Admin) (chartItem *
 
 	return
 }
-
-// CopyChartInfo 复制图表
-//func CopyChartInfo(configId, classifyId int, chartName string, correlationChartInfoReq data_manage.CorrelationChartInfoReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
-//	configSource := 2
-//	isSendEmail = true
-//	// 获取相关性图的配置
-//	multipleGraphConfigChartMapping, err := data_manage.GetMultipleGraphConfigChartMappingByIdAndSource(configId, configSource)
-//	if err != nil {
-//		return
-//	}
-//	multipleGraphConfig, err := data_manage.GetMultipleGraphConfigById(configId)
-//	if err != nil {
-//		return
-//	}
-//	multipleGraphConfig.MultipleGraphConfigId = 0
-//	err = data_manage.AddMultipleGraphConfig(multipleGraphConfig)
-//	if err != nil {
-//		return
-//	}
-//
-//	// 添加图
-//	addChartReq := data_manage.AddChartInfoReq{
-//		ChartClassifyId:      classifyId,
-//		ChartName:            chartName,
-//		ChartType:            utils.CHART_TYPE_CURVE,
-//		Calendar:             "公历",
-//		CorrelationChartInfo: correlationChartInfoReq,
-//	}
-//	chartSource := utils.CHART_SOURCE_CORRELATION // 默认是相关性图
-//	chartInfo, err, errMsg, isSendEmail = AddChartInfo(addChartReq, chartSource, sysUser)
-//	if err != nil {
-//		return
-//	}
-//
-//	// 添加关系
-//	multipleGraphConfigChartMapping = &data_manage.MultipleGraphConfigChartMapping{
-//		//Id:                    0,
-//		MultipleGraphConfigId: multipleGraphConfig.MultipleGraphConfigId,
-//		ChartInfoId:           chartInfo.ChartInfoId,
-//		Source:                configSource,
-//		ModifyTime:            time.Now(),
-//		CreateTime:            time.Now(),
-//	}
-//	err = data_manage.AddMultipleGraphConfigChartMapping(multipleGraphConfigChartMapping)
-//	if err != nil {
-//		return
-//	}
-//
-//	//添加es数据
-//	go data.EsAddOrEditChartInfo(chartInfo.ChartInfoId)
-//
-//	return
-//}