浏览代码

Merge branch 'dm' into BI_Dashboard

zwxi 6 月之前
父节点
当前提交
b4a8d352d9

+ 0 - 161
controllers/report.go

@@ -72,167 +72,6 @@ func (this *ReportController) Delete() {
 	br.Msg = "删除成功"
 }
 
-//func (this *ReportController) Edit() {
-//	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 models.EditReq
-//	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-//	if err != nil {
-//		br.Msg = "参数解析异常!"
-//		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-//		return
-//	}
-//	if req.Content == "" {
-//		br.Msg = "报告内容不能为空"
-//		return
-//	}
-//	var contentSub string
-//	if req.Content != "" {
-//		e := utils.ContentXssCheck(req.Content)
-//		if e != nil {
-//			br.Msg = "存在非法标签"
-//			br.ErrMsg = "存在非法标签, Err: " + e.Error()
-//			return
-//		}
-//		content, e := services.FilterReportContentBr(req.Content)
-//		if e != nil {
-//			br.Msg = "内容去除前后空格失败"
-//			br.ErrMsg = "内容去除前后空格失败, Err: " + e.Error()
-//			return
-//		}
-//		req.Content = content
-//
-//		contentSub, err = services.GetReportContentSub(req.Content)
-//		if err != nil {
-//			go alarm_msg.SendAlarmMsg("解析 ContentSub 失败,Err:"+err.Error(), 3)
-//			//utils.SendEmail(utils.APPNAME+"失败提醒", "解析 ContentSub 失败,Err:"+err.Error(), utils.EmailSendToUsers)
-//		}
-//	}
-//
-//	//更新标记key
-//	markStatus, err := services.UpdateReportEditMark(int(req.ReportId), sysUser.AdminId, 1, sysUser.RealName, this.Lang)
-//	if err != nil {
-//		br.Msg = err.Error()
-//		return
-//	}
-//	if markStatus.Status == 1 {
-//		br.Msg = markStatus.Msg
-//		//br.Ret = 202 //202 服务器已接受请求,但尚未处理。
-//		return
-//	}
-//
-//	var stage int
-//	report, e := models.GetReportByReportId(int(req.ReportId))
-//	if e != nil {
-//		if utils.IsErrNoRow(e) {
-//			br.Msg = "报告已被删除, 请刷新页面"
-//			return
-//		}
-//		br.Msg = "操作失败"
-//		br.ErrMsg = "获取报告失败, Err: " + e.Error()
-//		return
-//	}
-//	if report.State == models.ReportStatePublished || report.State == models.ReportStatePass {
-//		br.Msg = "该报告已发布,不允许编辑"
-//		br.ErrMsg = "该报告已发布,不允许编辑"
-//		return
-//	}
-//	if report.ClassifyNameFirst != req.ClassifyNameFirst || report.ClassifyNameSecond != req.ClassifyNameSecond {
-//		maxStage, _ := models.GetReportStageEdit(req.ClassifyIdFirst, req.ClassifyIdSecond, int(req.ReportId))
-//		maxStage = maxStage + 1
-//		stage = maxStage
-//	} else {
-//		stage = report.Stage
-//	}
-//	//if req.State != report.State {
-//	//	recordItem := &models.ReportStateRecord{
-//	//		ReportId:   int(req.ReportId),
-//	//		ReportType: 1,
-//	//		State:      req.State,
-//	//		AdminId:    this.SysUser.AdminId,
-//	//		AdminName:  this.SysUser.AdminName,
-//	//		CreateTime: time.Now(),
-//	//	}
-//	//	go func() {
-//	//		_, _ = models.AddReportStateRecord(recordItem)
-//	//	}()
-//	//}
-//
-//	//item := new(models.Report)
-//	report.ClassifyIdFirst = req.ClassifyIdFirst
-//	report.ClassifyNameFirst = req.ClassifyNameFirst
-//	report.ClassifyIdSecond = req.ClassifyIdSecond
-//	report.ClassifyNameSecond = req.ClassifyNameSecond
-//	report.ClassifyIdThird = req.ClassifyIdThird
-//	report.ClassifyNameThird = req.ClassifyNameThird
-//	report.Title = req.Title
-//	report.Abstract = req.Abstract
-//	report.Author = req.Author
-//	report.Frequency = req.Frequency
-//	//report.State = report.State // 编辑不变更状态
-//	report.Stage = stage
-//	report.Content = html.EscapeString(req.Content)
-//	report.ContentSub = html.EscapeString(contentSub)
-//	report.CreateTime = req.CreateTime
-//	//report.CollaborateType = req.CollaborateType
-//	//report.ReportLayout = req.ReportLayout
-//	if req.IsPublicPublish <= 0 {
-//		req.IsPublicPublish = 1
-//	}
-//	report.IsPublicPublish = req.IsPublicPublish
-//	err = report.Update([]string{"ClassifyIdFirst", "ClassifyNameFirst", "ClassifyIdSecond", "ClassifyNameSecond", "ClassifyIdThird", "ClassifyNameThird", "Title", "Abstract", "Author", "Frequency", "Stage", "Content", "ContentSub", "CreateTime", "IsPublicPublish"})
-//	if err != nil {
-//		br.Msg = "保存失败"
-//		br.ErrMsg = "保存失败,Err:" + err.Error()
-//		return
-//	}
-//
-//	//处理权限
-//	//if utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox {
-//	go func() {
-//		e := models.RemoveChartPermissionChapterMapping(req.ReportId)
-//		if e != nil {
-//			alarm_msg.SendAlarmMsg("修改删除报告权限失败,Err:"+e.Error(), 3)
-//			return
-//		}
-//		permissionItems, e := models.GetPermission(req.ClassifyIdSecond)
-//		if e != nil {
-//			alarm_msg.SendAlarmMsg("获取权限失败,Err:"+e.Error(), 3)
-//			return
-//		}
-//		for _, v := range permissionItems {
-//			e = models.AddChartPermissionChapterMapping(v.ChartPermissionId, req.ReportId)
-//			if e != nil {
-//				alarm_msg.SendAlarmMsg("新增权限失败,Err:"+e.Error(), 3)
-//				return
-//			}
-//		}
-//		// 同步crm权限
-//		_ = services.EditReportPermissionSync(req.ReportId, req.ClassifyIdSecond)
-//	}()
-//	//}
-//
-//	reportCode := utils.MD5(strconv.Itoa(int(req.ReportId)))
-//	resp := new(models.EditResp)
-//	resp.ReportId = req.ReportId
-//	resp.ReportCode = reportCode
-//	br.Ret = 200
-//	br.Success = true
-//	br.Msg = "保存成功"
-//	br.Data = resp
-//}
-
 // Upload
 // @Title 图片上传
 // @Description 图片上传接口

+ 6 - 5
controllers/report_chapter_type.go

@@ -168,7 +168,8 @@ func (this *ReportChapterTypeController) Add() {
 		return
 	}
 
-	cond = ` and product_id=1`
+	// 国能补充需求调整
+	/*cond = ` and product_id=1`
 	pars = make([]interface{}, 0)
 	permissionList, e := services.GetChartPermissionList(cond, pars)
 	if e != nil {
@@ -179,15 +180,15 @@ func (this *ReportChapterTypeController) Add() {
 	permissionIdName := make(map[int]string)
 	for i := range permissionList {
 		permissionIdName[permissionList[i].ChartPermissionId] = permissionList[i].PermissionName
-	}
+	}*/
 
 	newPermissions := make([]*models.ReportChapterTypePermission, 0) // 报告章节权限表(新)
-	for i := range req.ChartPermissionIdList {
+	for range req.ChartPermissionIdList {
 		newPermissions = append(newPermissions, &models.ReportChapterTypePermission{
 			ReportChapterTypeId:   item.ReportChapterTypeId,
 			ReportChapterTypeName: item.ReportChapterTypeName,
-			ChartPermissionId:     req.ChartPermissionIdList[i],
-			PermissionName:        permissionIdName[req.ChartPermissionIdList[i]],
+			ChartPermissionId:     0,
+			PermissionName:        "",
 			ResearchType:          item.ResearchType,
 			CreatedTime:           nowTime,
 		})

+ 1 - 1
models/data_manage/chart_classify.go

@@ -286,7 +286,7 @@ func (chartClassify *ChartClassify) Update(cols []string) (err error) {
 // GetChartClassifyMaxSort 获取图表分类下最大的排序数
 func GetChartClassifyMaxSort(parentId, source int) (sort int, err error) {
 	o := global.DmSQL["data"]
-	sql := `SELECT Max(sort) AS sort FROM chart_classify WHERE parent_id=? AND source = ? `
+	sql := `SELECT COALESCE(MAX(sort),0) AS sort FROM chart_classify WHERE parent_id=? AND source = ? `
 	err = o.Raw(sql, parentId, source).Scan(&sort).Error
 
 	return

+ 123 - 56
models/data_manage/chart_info.go

@@ -6,11 +6,13 @@ import (
 	"eta_gn/eta_api/models/mgo"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
-	"go.mongodb.org/mongo-driver/bson"
 	"strconv"
 	"strings"
 	"time"
+
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"go.mongodb.org/mongo-driver/bson"
+	"gorm.io/gorm"
 )
 
 type ChartInfo struct {
@@ -477,6 +479,15 @@ func GetEdbDataList(source, subSource, edbInfoId int, startDate, endDate string)
 
 }
 
+func (e *EdbDataList) AfterFind(db *gorm.DB) (err error) {
+	tmp, err := time.Parse(utils.FormatDateWallWithLoc, e.DataTime)
+	if err != nil {
+		return
+	}
+	e.DataTime = tmp.Format(utils.FormatDate)
+	return
+}
+
 // getEdbDataListByMysql
 // @Description: 通过mysql查询指标数据
 // @author: Roc
@@ -511,7 +522,7 @@ func getEdbDataListByMysql(source, subSource, edbInfoId int, startDate, endDate
 	sql = fmt.Sprintf(sql, tableName)
 	o := global.DmSQL["data"]
 
-	err = o.Raw(sql, utils.ForwardPars(pars, edbInfoId)...).Scan(&list).Error
+	err = o.Raw(sql, utils.ForwardPars(pars, edbInfoId)...).Find(&list).Error
 	//err = o.Raw(sql, pars...).Scan(&list).Error
 	return
 }
@@ -703,60 +714,116 @@ func getEdbDataListMinAndMaxByMongo(source, subSource, edbInfoId int, startDate,
 	return
 }
 
+// type ChartEdbInfoMapping struct {
+// 	EdbInfoId           int     `description:"指标id"`
+// 	SourceName          string  `description:"来源名称"`
+// 	Source              int     `description:"来源id"`
+// 	SubSource           int     `description:"来源id"`
+// 	EdbCode             string  `description:"指标编码"`
+// 	EdbName             string  `description:"指标名称"`
+// 	EdbAliasName        string  `description:"指标名称(别名)"`
+// 	EdbNameEn           string  `description:"英文指标名称"`
+// 	EdbAliasNameEn      string  `description:"英文指标名称(别名)"`
+// 	EdbType             int     `description:"指标类型:1:基础指标,2:计算指标"`
+// 	Frequency           string  `description:"频率"`
+// 	FrequencyEn         string  `description:"英文频率"`
+// 	Unit                string  `description:"单位"`
+// 	UnitEn              string  `description:"英文单位"`
+// 	StartDate           string  `description:"起始日期"`
+// 	EndDate             string  `description:"终止日期"`
+// 	ModifyTime          string  `description:"指标最后更新时间"`
+// 	ChartEdbMappingId   int     `description:"图表指标id"`
+// 	ChartInfoId         int     `description:"图表id"`
+// 	MaxData             float64 `description:"上限"`
+// 	MinData             float64 `description:"下限"`
+// 	IsOrder             bool    `description:"true:正序,false:逆序"`
+// 	IsAxis              int     `description:"1:左轴,0:右轴"`
+// 	EdbInfoType         int     `description:"1:标准指标,0:领先指标"`
+// 	EdbInfoCategoryType int     `description:"0:普通指标,1:预测指标"`
+// 	LeadValue           int     `description:"领先值"`
+// 	LeadUnit            string  `description:"领先单位"`
+// 	LeadUnitEn          string  `description:"领先英文单位"`
+// 	ChartStyle          string  `description:"图表类型"`
+// 	ChartColor          string  `description:"颜色"`
+// 	PredictChartColor   string  `description:"预测数据的颜色"`
+// 	ChartWidth          float64 `description:"线条大小"`
+// 	ChartType           int     `description:"生成样式:1:曲线图,2:季节性图,3:面积图,4:柱状图,5:散点图,6:组合图,7:柱方图,8:商品价格曲线图,9:相关性图"`
+// 	LatestDate          string  `description:"数据最新日期"`
+// 	LatestValue         float64 `description:"数据最新值"`
+// 	MoveLatestDate      string  `description:"移动后的数据最新日期"`
+// 	UniqueCode          string  `description:"指标唯一编码"`
+// 	MinValue            float64 `json:"-" description:"最小值"`
+// 	MaxValue            float64 `json:"-" description:"最大值"`
+// 	DataList            interface{}
+// 	IsNullData          bool    `json:"-" description:"是否空数据"`
+// 	MappingSource       int     `description:"1:ETA图库;2:商品价格曲线"`
+// 	RegionType          string  `description:"交易所来源,海外还是国内" json:"-"`
+// 	ClassifyId          int     `description:"分类id"`
+// 	SubSourceName       string  `description:"子数据来源名称"`
+// 	IndicatorCode       string  `description:"指标代码"`
+// 	IsConvert           int     `description:"是否数据转换 0不转 1转"`
+// 	ConvertType         int     `description:"数据转换类型 1乘 2除 3对数"`
+// 	ConvertValue        float64 `description:"数据转换值"`
+// 	ConvertUnit         string  `description:"数据转换单位"`
+// 	ConvertEnUnit       string  `description:"数据转换单位"`
+// 	IsJoinPermission    int     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
+// 	HaveOperaAuth       bool    `description:"是否有数据权限,默认:false"`
+// }
+
 type ChartEdbInfoMapping struct {
-	EdbInfoId           int     `description:"指标id"`
-	SourceName          string  `description:"来源名称"`
-	Source              int     `description:"来源id"`
-	SubSource           int     `description:"来源id"`
-	EdbCode             string  `description:"指标编码"`
-	EdbName             string  `description:"指标名称"`
-	EdbAliasName        string  `description:"指标名称(别名)"`
-	EdbNameEn           string  `description:"英文指标名称"`
-	EdbAliasNameEn      string  `description:"英文指标名称(别名)"`
-	EdbType             int     `description:"指标类型:1:基础指标,2:计算指标"`
-	Frequency           string  `description:"频率"`
-	FrequencyEn         string  `description:"英文频率"`
-	Unit                string  `description:"单位"`
-	UnitEn              string  `description:"英文单位"`
-	StartDate           string  `description:"起始日期"`
-	EndDate             string  `description:"终止日期"`
-	ModifyTime          string  `description:"指标最后更新时间"`
-	ChartEdbMappingId   int     `description:"图表指标id"`
-	ChartInfoId         int     `description:"图表id"`
-	MaxData             float64 `description:"上限"`
-	MinData             float64 `description:"下限"`
-	IsOrder             bool    `description:"true:正序,false:逆序"`
-	IsAxis              int     `description:"1:左轴,0:右轴"`
-	EdbInfoType         int     `description:"1:标准指标,0:领先指标"`
-	EdbInfoCategoryType int     `description:"0:普通指标,1:预测指标"`
-	LeadValue           int     `description:"领先值"`
-	LeadUnit            string  `description:"领先单位"`
-	LeadUnitEn          string  `description:"领先英文单位"`
-	ChartStyle          string  `description:"图表类型"`
-	ChartColor          string  `description:"颜色"`
-	PredictChartColor   string  `description:"预测数据的颜色"`
-	ChartWidth          float64 `description:"线条大小"`
-	ChartType           int     `description:"生成样式:1:曲线图,2:季节性图,3:面积图,4:柱状图,5:散点图,6:组合图,7:柱方图,8:商品价格曲线图,9:相关性图"`
-	LatestDate          string  `description:"数据最新日期"`
-	LatestValue         float64 `description:"数据最新值"`
-	MoveLatestDate      string  `description:"移动后的数据最新日期"`
-	UniqueCode          string  `description:"指标唯一编码"`
-	MinValue            float64 `json:"-" description:"最小值"`
-	MaxValue            float64 `json:"-" description:"最大值"`
-	DataList            interface{}
-	IsNullData          bool    `json:"-" description:"是否空数据"`
-	MappingSource       int     `description:"1:ETA图库;2:商品价格曲线"`
-	RegionType          string  `description:"交易所来源,海外还是国内" json:"-"`
-	ClassifyId          int     `description:"分类id"`
-	SubSourceName       string  `description:"子数据来源名称"`
-	IndicatorCode       string  `description:"指标代码"`
-	IsConvert           int     `description:"是否数据转换 0不转 1转"`
-	ConvertType         int     `description:"数据转换类型 1乘 2除 3对数"`
-	ConvertValue        float64 `description:"数据转换值"`
-	ConvertUnit         string  `description:"数据转换单位"`
-	ConvertEnUnit       string  `description:"数据转换单位"`
-	IsJoinPermission    int     `description:"是否加入权限管控,0:不加入;1:加入;默认:0"`
-	HaveOperaAuth       bool    `description:"是否有数据权限,默认:false"`
+	EdbInfoId           int         `description:"指标id" gorm:"column:edb_info_id"`
+	SourceName          string      `description:"来源名称" gorm:"column:source_name"`
+	Source              int         `description:"来源id" gorm:"column:source"`
+	SubSource           int         `description:"来源id" gorm:"column:sub_source"`
+	EdbCode             string      `description:"指标编码" gorm:"column:edb_code"`
+	EdbName             string      `description:"指标名称" gorm:"column:edb_name"`
+	EdbAliasName        string      `description:"指标名称(别名)" gorm:"column:edb_alias_name"`
+	EdbNameEn           string      `description:"英文指标名称" gorm:"column:edb_name_en"`
+	EdbAliasNameEn      string      `description:"英文指标名称(别名)" gorm:"column:edb_alias_name_en"`
+	EdbType             int         `description:"指标类型:1:基础指标,2:计算指标" gorm:"column:edb_type"`
+	Frequency           string      `description:"频率" gorm:"column:frequency"`
+	FrequencyEn         string      `description:"英文频率" gorm:"column:frequency_en"`
+	Unit                string      `description:"单位" gorm:"column:unit"`
+	UnitEn              string      `description:"英文单位" gorm:"column:unit_en"`
+	StartDate           string      `description:"起始日期" gorm:"column:start_date"`
+	EndDate             string      `description:"终止日期" gorm:"column:end_date"`
+	ModifyTime          string      `description:"指标最后更新时间" gorm:"column:modify_time"`
+	ChartEdbMappingId   int         `description:"图表指标id" gorm:"column:chart_edb_mapping_id"`
+	ChartInfoId         int         `description:"图表id" gorm:"column:chart_info_id"`
+	MaxData             float64     `description:"上限" gorm:"column:max_data"`
+	MinData             float64     `description:"下限" gorm:"column:min_data"`
+	IsOrder             bool        `description:"true:正序,false:逆序" gorm:"column:is_order"`
+	IsAxis              int         `description:"1:左轴,0:右轴" gorm:"column:is_axis"`
+	EdbInfoType         int         `description:"1:标准指标,0:领先指标" gorm:"column:edb_info_type"`
+	EdbInfoCategoryType int         `description:"0:普通指标,1:预测指标" gorm:"column:edb_info_category_type"`
+	LeadValue           int         `description:"领先值" gorm:"column:lead_value"`
+	LeadUnit            string      `description:"领先单位" gorm:"column:lead_unit"`
+	LeadUnitEn          string      `description:"领先英文单位" gorm:"column:lead_unit_en"`
+	ChartStyle          string      `description:"图表类型" gorm:"column:chart_style"`
+	ChartColor          string      `description:"颜色" gorm:"column:chart_color"`
+	PredictChartColor   string      `description:"预测数据的颜色" gorm:"column:predict_chart_color"`
+	ChartWidth          float64     `description:"线条大小" gorm:"column:chart_width"`
+	ChartType           int         `description:"生成样式:1:曲线图,2:季节性图,3:面积图,4:柱状图,5:散点图,6:组合图,7:柱方图,8:商品价格曲线图,9:相关性图" gorm:"column:chart_type"`
+	LatestDate          string      `description:"数据最新日期" gorm:"column:latest_date"`
+	LatestValue         float64     `description:"数据最新值" gorm:"column:latest_value"`
+	MoveLatestDate      string      `description:"移动后的数据最新日期" gorm:"column:move_latest_date"`
+	UniqueCode          string      `description:"指标唯一编码" gorm:"column:unique_code"`
+	MinValue            float64     `json:"-" description:"最小值" gorm:"column:min_value"`
+	MaxValue            float64     `json:"-" description:"最大值" gorm:"column:max_value"`
+	DataList            interface{} `gorm:"-"`
+	IsNullData          bool        `json:"-" description:"是否空数据" gorm:"column:is_null_data"`
+	MappingSource       int         `description:"1:ETA图库;2:商品价格曲线" gorm:"column:mapping_source"`
+	RegionType          string      `description:"交易所来源,海外还是国内" json:"-" gorm:"column:region_type"`
+	ClassifyId          int         `description:"分类id" gorm:"column:classify_id"`
+	SubSourceName       string      `description:"子数据来源名称" gorm:"column:sub_source_name"`
+	IndicatorCode       string      `description:"指标代码" gorm:"column:indicator_code"`
+	IsConvert           int         `description:"是否数据转换 0不转 1转" gorm:"column:is_convert"`
+	ConvertType         int         `description:"数据转换类型 1乘 2除 3对数" gorm:"column:convert_type"`
+	ConvertValue        float64     `description:"数据转换值" gorm:"column:convert_value"`
+	ConvertUnit         string      `description:"数据转换单位" gorm:"column:convert_unit"`
+	ConvertEnUnit       string      `description:"数据转换单位" gorm:"column:convert_en_unit"`
+	IsJoinPermission    int         `description:"是否加入权限管控,0:不加入;1:加入;默认:0" gorm:"column:is_join_permission"`
+	HaveOperaAuth       bool        `description:"是否有数据权限,默认:false" gorm:"column:have_opera_auth"`
 }
 
 type QuarterData struct {

+ 1 - 1
models/data_manage/excel/excel_info.go

@@ -880,7 +880,7 @@ func GetExcelMaxSortByClassifyId(classifyId int, source int) (sort int, err erro
 	//sql := ` SELECT Max(sort) AS sort FROM excel_info WHERE excel_classify_id=? AND source = ? AND is_delete=0 order by sort desc,excel_info_id desc limit 1`
 	//err = o.Raw(sql, classifyId, source).QueryRow(&sort)
 
-	sql := ` SELECT Max(sort) AS sort FROM excel_info WHERE excel_classify_id=? AND source = ? AND is_delete=0 order by sort desc,excel_info_id desc limit 1`
+	sql := ` SELECT COALESCE(MAX(sort),0) AS sort FROM excel_info WHERE excel_classify_id=? AND source = ? AND is_delete=0 order by sort desc,excel_info_id desc limit 1`
 	err = global.DmSQL["data"].Raw(sql, classifyId, source).Scan(&sort).Error
 	return
 }

+ 1 - 1
models/data_manage/excel/excel_sheet.go

@@ -68,7 +68,7 @@ type SheetItem struct {
 	CalcChain    string          `description:"计算公式"`
 	ModifyTime   time.Time       `description:"最近修改日期" json:"-"`
 	CreateTime   time.Time       `description:"创建日期"`
-	Data         *ExcelSheetData `description:"excel的数据"`
+	Data         *ExcelSheetData `gorm:"-" description:"excel的数据"`
 }
 
 // GetAllSheetItemList 根据excel_id获取所有的sheet详情

+ 1 - 1
models/data_manage/factor_edb_series_calculate_data_qjjs.go

@@ -205,7 +205,7 @@ func (m *FactorEdbSeriesCalculateDataQjjs) GetEdbDataList(seriesId int, edbInfoI
 
 	sql += ` ORDER BY data_time ASC `
 	sql = fmt.Sprintf(sql, m.TableName())
-	err = global.DmSQL["data"].Raw(sql, pars...).Scan(&list).Error
+	err = global.DmSQL["data"].Raw(sql, pars...).Find(&list).Error
 
 	return
 }

+ 6 - 3
models/data_manage/supply_analysis/variety.go

@@ -126,7 +126,7 @@ type VarietyItem struct {
 	PermissionUserId          string        `description:"有操作权限的用户id"`
 	ModifyTime                string        `description:"修改时间"`
 	CreateTime                string        `description:"创建时间"`
-	Button                    VarietyButton `description:"操作按钮权限"`
+	Button                    VarietyButton `gorm:"-" description:"操作按钮权限"`
 }
 
 type VarietyButton struct {
@@ -137,13 +137,16 @@ type VarietyButton struct {
 
 // GetListBySuperAdminPage 不区分是否有分析权限的获取分页数据
 func (item Variety) GetListBySuperAdminPage(condition string, pars []interface{}, startSize, pageSize int) (total int, items []*VarietyItem, err error) {
-	baseSql := ` FROM ( SELECT a.*, GROUP_CONCAT(DISTINCT b.sys_user_id ORDER BY b.sys_user_id ASC SEPARATOR ',') AS permission_user_id FROM variety a 
+	baseSql := ` FROM ( SELECT a.variety_id,a.variety_name,a.last_update_sys_user_id,
+a.last_update_sys_user_real_name,a.production_day,a.sys_user_id,a.sys_user_real_name,a.modify_time,a.create_time,LISTAGG(b.sys_user_id, ',') WITHIN GROUP (ORDER BY b.sys_user_id ASC) AS permission_user_id 
+				FROM variety a 
 				LEFT JOIN variety_admin_permission b on a.variety_id=b.variety_id 
 				LEFT JOIN variety_edb_info c on a.variety_id=c.variety_id WHERE 1=1 `
 	if condition != "" {
 		baseSql += condition
 	}
-	baseSql += ` GROUP BY a.variety_id ) d `
+	baseSql += ` GROUP BY a.variety_id,a.variety_name,a.last_update_sys_user_id,
+a.last_update_sys_user_real_name,a.production_day,a.sys_user_id,a.sys_user_real_name,a.modify_time,a.create_time ) d `
 	// 数据总数
 	totalSql := `SELECT COUNT(1) total ` + baseSql
 

+ 6 - 6
models/permission.go

@@ -18,7 +18,7 @@ type ChartPermissionSearchKeyWordMapping struct {
 
 func GetPermission(classifyId int) (items []*ChartPermissionSearchKeyWordMapping, err error) {
 	//o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.classify_id = ? `
+	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.source_from='rddp' AND a.classify_id = ? `
 	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
 	err = global.DmSQL["rddp"].Raw(sql, classifyId).Find(&items).Error
 	return
@@ -26,7 +26,7 @@ func GetPermission(classifyId int) (items []*ChartPermissionSearchKeyWordMapping
 
 func GetAllPermissionMapping() (items []*ChartPermissionSearchKeyWordMapping, err error) {
 	//o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp'`
+	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.source_from='rddp'`
 	//_, err = o.Raw(sql).QueryRows(&items)
 	err = global.DmSQL["rddp"].Raw(sql).Find(&items).Error
 	return
@@ -44,7 +44,7 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 			_ = to.Commit()
 		}
 	}()
-	sql := "DELETE FROM chart_permission_search_key_word_mapping WHERE `from` = 'rddp' AND classify_id = ?"
+	sql := "DELETE FROM chart_permission_search_key_word_mapping WHERE source_from= 'rddp' AND classify_id = ?"
 	//_, err = to.Raw(sql, classifyId).Exec()
 	err = to.Exec(sql, classifyId).Error
 	if err != nil {
@@ -94,7 +94,7 @@ type ChartPermissionMappingIdName struct {
 
 func GetChartPermissionNameFromMappingByKeyword(source string, classifyId int) (list []*ChartPermissionMappingIdName, err error) {
 	//o := orm.NewOrmUsingDB("rddp")
-	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.classify_id = ? "
+	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.source_from = ? AND a.classify_id = ? "
 	//_, err = o.Raw(sql, source, classifyId).QueryRows(&list)
 	err = global.DmSQL["rddp"].Raw(sql, source, classifyId).Find(&list).Error
 	return
@@ -103,7 +103,7 @@ func GetChartPermissionNameFromMappingByKeyword(source string, classifyId int) (
 // UpdateChartPermissionNameFromMappingByKeyword 根据关键词及来源更新新关键词
 func UpdateChartPermissionNameFromMappingByKeyword(newKeyword string, classifyId int, source string) (err error) {
 	//o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE classify_id = ? AND `from` = ? "
+	sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE classify_id = ? AND source_from = ? "
 	//_, err = o.Raw(sql, newKeyword, classifyId, source).Exec()
 	err = global.DmSQL["rddp"].Exec(sql, newKeyword, classifyId, source).Error
 	return
@@ -129,7 +129,7 @@ type ChartPermissionSearchKeyWordMappingAndPermissionName struct {
 func GetPermissionByClassifyId(classifyId int) (items []*ChartPermissionSearchKeyWordMappingAndPermissionName, err error) {
 	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT a.chart_permission_name,a.permission_name,b.chart_permission_id,b.key_word,b.classify_id FROM chart_permission AS a 
- join chart_permission_search_key_word_mapping AS b ON a.chart_permission_id=b.chart_permission_id WHERE b.from='rddp' AND b.classify_id = ? `
+ join chart_permission_search_key_word_mapping AS b ON a.chart_permission_id=b.chart_permission_id WHERE b.source_from='rddp' AND b.classify_id = ? `
 	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
 	err = global.DmSQL["rddp"].Raw(sql, classifyId).Find(&items).Error
 	return

+ 3 - 1
models/report_approve/report_approve.go

@@ -378,7 +378,7 @@ func GetApplyReportApproveCount(cond string, pars []interface{}) (count int, err
 	base := fmt.Sprintf(`SELECT a.* FROM report_approve AS a WHERE 1 = 1 %s`, cond)
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM (%s) t`, base)
 	//err = o.Raw(sql, pars).QueryRow(&count)
-	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
+	err = global.DmSQL["rddp"].Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
@@ -391,6 +391,8 @@ func GetApplyReportApprovePageList(cond string, pars []interface{}, orderRule st
 	}
 	sql := fmt.Sprintf(`SELECT a.* FROM report_approve AS a WHERE 1 = 1 %s %s LIMIT ?,?`, cond, order)
 	//_, err = o.Raw(sql, pars...).QueryRows(&items)
+	pars = append(pars, startSize)
+	pars = append(pars, pageSize)
 	err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 2 - 0
models/report_approve/report_approve_flow.go

@@ -171,6 +171,8 @@ func (m *ReportApproveFlow) GetPageItemsByCondition(condition string, pars []int
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
 	//_, err = o.Raw(sql, pars...).QueryRows(&items)
+	pars = append(pars, startSize)
+	pars = append(pars, pageSize)
 	err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 3 - 2
models/report_v2.go

@@ -384,12 +384,13 @@ func GetReportListCountByAuthorized(condition string, pars []interface{}) (count
 func GetReportListByAuthorized(condition string, pars []interface{}, startSize, pageSize int) (items []*ReportList, err error) {
 	//o := orm.NewOrmUsingDB("rddp")
 
-	sql := `SELECT id,classify_id_first,classify_name_first,classify_id_second,classify_name_second,classify_id_third,classify_name_third,title,stage,create_time,author,report_layout,collaborate_type,is_public_publish,abstract,has_chapter,publish_time FROM report as a WHERE 1=1  `
+	sql := `SELECT id,classify_id_first,classify_name_first,classify_id_second,classify_name_second,classify_id_third,classify_name_third,title,stage,create_time,author,report_layout,collaborate_type,is_public_publish,abstract,has_chapter,publish_time,report_create_time FROM report as a WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
 	// 排序:1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过
-	sql += ` GROUP BY a.id ORDER BY  report_create_time DESC LIMIT ?,?`
+	sql += ` GROUP BY id,classify_id_first,classify_name_first,classify_id_second,classify_name_second,classify_id_third,classify_name_third,title,stage,create_time,author,report_layout,collaborate_type,is_public_publish,abstract,has_chapter,publish_time,report_create_time
+            ORDER BY  report_create_time DESC LIMIT ?,?`
 	//_, err = o.Raw(sql, pars...).QueryRows(&items)
 	pars = append(pars, startSize)
 	pars = append(pars, pageSize)

+ 1 - 1
models/search_key_word.go

@@ -28,7 +28,7 @@ func AddTrendTagKeyWord(trend string) (err error) {
 // GetKeyWordListByFrom 根据来源获取搜索关键词列表
 func GetKeyWordListByFrom(from string) (list []*SearchKeyWord, err error) {
 	//o := orm.NewOrm()
-	sql := " SELECT * FROM search_key_word WHERE `from` = ? ORDER BY created_time ASC "
+	sql := ` SELECT * FROM search_key_word WHERE "from" = ? ORDER BY created_time ASC `
 	//_, err = o.Raw(sql, from).QueryRows(&list)
 	err = global.DEFAULT_DmSQL.Raw(sql, from).Find(&list).Error
 	return

+ 1 - 1
models/wechat_send_msg.go

@@ -31,7 +31,7 @@ func GetOpenIdArrByClassifyId(classifyId int) (items []string, err error) {
 			INNER JOIN chart_permission AS f ON e.chart_permission_id=f.chart_permission_id
 			INNER JOIN chart_permission_search_key_word_mapping AS g ON f.chart_permission_id=g.chart_permission_id
 			WHERE ur.open_id != "" AND ur.subscribe=1 AND ur.create_platform=1 AND  d.status IN('正式','试用','永续') AND  e.status IN('正式','试用','永续') 
-			AND g.from='rddp'
+			AND g.source_from='rddp'
 			AND g.classify_id=?
 			ORDER BY FIELD(c.company_id, 16) DESC, ur.user_record_id ASC  `
 	//o := orm.NewOrmUsingDB("weekly")

+ 22 - 95
services/classify.go

@@ -203,7 +203,7 @@ func AddReportClassify(classifyName string, parentId int, chartPermissionIdList
 		}
 		return
 	}
-	if item != nil {
+	if item != nil && item.Id > 0 {
 		errMsg = "分类名称:" + classifyName + "已存在"
 		isSendEmail = false
 		err = errors.New(errMsg)
@@ -269,85 +269,12 @@ func AddReportClassify(classifyName string, parentId int, chartPermissionIdList
 	classify.ReportDetailShowType = 1 //默认列表格式
 	classify.IsShow = 1
 	classify.Level = level
-	/*classify.Abstract = req.Abstract
-	classify.Descript = req.Descript
-	classify.Abstract = req.Abstract
-	classify.Descript = req.Descript
-	classify.ReportAuthor = req.ReportAuthor
-	classify.AuthorDescript = req.AuthorDescript
-	classify.ColumnImgUrl = req.ColumnImgUrl
-	classify.ReportImgUrl = req.ReportImgUrl
-	classify.HeadImgUrl = req.HeadImgUrl
-	classify.AvatarImgUrl = req.AvatarImgUrl
-	classify.HomeImgUrl = req.HomeImgUrl
-	classify.ClassifyLabel = req.ClassifyLabel
-	classify.ShowType = req.ShowType
-	classify.HasTeleconference = req.HasTeleconference
-	classify.VipTitle = req.VipTitle
-
-	classify.IsShow = req.IsShow
-	classify.YbFiccSort = req.YbFiccSort
-	classify.YbFiccIcon = req.YbFiccIcon
-	classify.YbFiccPcIcon = req.YbFiccPcIcon
-	classify.YbIconUrl = req.YbIconUrl
-	classify.YbBgUrl = req.YbBgUrl
-	classify.YbListImg = req.YbListImg
-	classify.YbShareBgImg = req.YbShareBgImg
-	classify.YbRightBanner = req.YbRightBanner
-	classify.RelateTel = req.RelateTel
-	classify.RelateVideo = req.RelateVideo
-	if req.ParentId > 0 {
-		parentClassify := new(models.Classify)
-		if parentClassify, err = models.GetClassifyById(req.ParentId); err != nil {
-			br.Msg = "获取父级分类信息失败"
-			br.ErrMsg = "获取父级分类信息失败, Err:" + err.Error()
-			return
-		}
-		updateParent := false
-		updateCols := make([]string, 0)
-		updateCols = append(updateCols, "HasTeleconference")
-		if req.HasTeleconference == 1 {
-			// 二级分类包含电话会,则一级分类也默认包含电话会
-			if parentClassify.HasTeleconference == 0 {
-				parentClassify.HasTeleconference = 1
-				updateParent = true
-			}
-		} else {
-			// 二级分类均无电话会,则一级分类也无电话会
-			if parentClassify.HasTeleconference == 1 {
-				child, err := models.GetClassifyChild(parentClassify.Id, "")
-				if err != nil {
-					br.Msg = "获取子分类失败"
-					br.ErrMsg = "获取子分类失败,Err:" + err.Error()
-					return
-				}
-				// 存在同一级分类下的二级分类有电话会则不变动
-				hasTel := false
-				for i := 0; i < len(child); i++ {
-					if child[i].HasTeleconference == 1 {
-						hasTel = true
-						break
-					}
-				}
-				if !hasTel {
-					parentClassify.HasTeleconference = 0
-					updateParent = true
-				}
-			}
-		}
-		if updateParent {
-			if err = parentClassify.UpdateClassify(updateCols); err != nil {
-				br.Msg = "更新父级分类失败"
-				br.ErrMsg = "更新父级分类失败, Err:" + err.Error()
-				return
-			}
-		}
-	}*/
+
 	err = models.AddClassify(classify)
 	if err != nil {
 		return
 	}
-
+	/* 国能补充需求调整
 	//获取报告分类权限列表
 	err = models.EditChartPermissionSearchKeyWordMappingMulti(classifyName, chartPermissionIdList, classify.Id)
 	if err != nil {
@@ -358,7 +285,7 @@ func AddReportClassify(classifyName string, parentId int, chartPermissionIdList
 	// 修改CRM权限
 	go func() {
 		_ = EditClassifyChartPermissionSync(classifyName, classify.Id)
-	}()
+	}()*/
 
 	// 如果父级分类不为空的话,那么就标记有子级分类,同时
 	if parentClassifyItem != nil {
@@ -704,7 +631,7 @@ func EditReportClassify(classifyId int, classifyName string, chartPermissionIdLi
 		}
 		return
 	}
-	originName := item.ClassifyName
+	//originName := item.ClassifyName
 
 	// 重名校验
 	existName, e := models.GetClassifyByName(classifyName, item.ParentId)
@@ -730,23 +657,23 @@ func EditReportClassify(classifyId int, classifyName string, chartPermissionIdLi
 	if err != nil {
 		return
 	}
-
-	err = models.EditChartPermissionSearchKeyWordMappingMulti(item.ClassifyName, chartPermissionIdList, item.Id)
-	if err != nil {
-		errMsg = "修改分类权限失败"
-		return
-	}
-
-	// 修改CRM权限
-	go func() {
-		_ = EditClassifyChartPermissionSync(item.ClassifyName, item.Id)
-	}()
-
-	// TODO 修改分类的关联品种时,历史报告中关联的品种怎么处理?
-	// 更新报告分类名称/父级分类后
-	go func() {
-		_ = AfterUpdateClassifyNameOrParent(item.Id, item.ParentId, item.ParentId, originName, item.ClassifyName, item.Level)
-	}()
+	/* 	国能补充需求调整
+	   	err = models.EditChartPermissionSearchKeyWordMappingMulti(item.ClassifyName, chartPermissionIdList, item.Id)
+	   	if err != nil {
+	   		errMsg = "修改分类权限失败"
+	   		return
+	   	}
+
+	   	// 修改CRM权限
+	   	go func() {
+	   		_ = EditClassifyChartPermissionSync(item.ClassifyName, item.Id)
+	   	}()
+
+	   	// TODO 修改分类的关联品种时,历史报告中关联的品种怎么处理?
+	   	// 更新报告分类名称/父级分类后
+	   	go func() {
+	   		_ = AfterUpdateClassifyNameOrParent(item.Id, item.ParentId, item.ParentId, originName, item.ClassifyName, item.Level)
+	   	}()*/
 
 	return
 }

+ 20 - 18
services/report_v2.go

@@ -798,26 +798,28 @@ func EditChapterBaseInfoAndPermission(reportInfo *models.Report, reportChapterIn
 			delChapterPermissionMap[v.ChartPermissionId] = v
 		}
 
-		for _, permissionId := range permissionIdList {
-			_, ok := currChapterPermissionMap[permissionId]
-			// 如果存在,那么从 “需要删除的报告章节品种权限配置” 的map中移除
-			if ok {
-				delete(delChapterPermissionMap, permissionId)
-				continue
+		// 国能补充需求调整
+		/*
+			for _, permissionId := range permissionIdList {
+				_, ok := currChapterPermissionMap[permissionId]
+				// 如果存在,那么从 “需要删除的报告章节品种权限配置” 的map中移除
+				if ok {
+					delete(delChapterPermissionMap, permissionId)
+					continue
+				}
+				// 如果不存在,那么就新增品种权限配置
+				addChapterPermissionList = append(addChapterPermissionList, &report.ReportChapterPermissionMapping{
+					//ReportChapterPermissionMappingId:         0,
+					ReportChapterId:   reportChapterInfo.ReportChapterId,
+					ChartPermissionId: permissionId,
+					CreateTime:        time.Now(),
+				})
 			}
-			// 如果不存在,那么就新增品种权限配置
-			addChapterPermissionList = append(addChapterPermissionList, &report.ReportChapterPermissionMapping{
-				//ReportChapterPermissionMappingId:         0,
-				ReportChapterId:   reportChapterInfo.ReportChapterId,
-				ChartPermissionId: permissionId,
-				CreateTime:        time.Now(),
-			})
-		}
 
-		// 查出需要移除的品种权限配置
-		for _, v := range delChapterPermissionMap {
-			delChapterPermissionMappingIdList = append(delChapterPermissionMappingIdList, v.ReportChapterPermissionMappingId)
-		}
+			// 查出需要移除的品种权限配置
+			for _, v := range delChapterPermissionMap {
+				delChapterPermissionMappingIdList = append(delChapterPermissionMappingIdList, v.ReportChapterPermissionMappingId)
+			}*/
 	}
 
 	err = models.EditChapterBaseInfoAndPermission(reportInfo, reportChapterInfo, updateCols, addChapterAdminList, addChapterPermissionList, delReportChapterGrantIdList, delChapterPermissionMappingIdList)

+ 16 - 15
utils/constants.go

@@ -6,21 +6,22 @@ import (
 
 // 常量定义
 const (
-	FormatTime                 = "15:04:05"                //时间格式
-	FormatTimeHm               = "15:04"                   //时间格式
-	FormatDate                 = "2006-01-02"              //日期格式
-	FormatDateUnSpace          = "20060102"                //日期格式
-	FormatDateTime             = "2006-01-02 15:04:05"     //完整时间格式
-	HlbFormatDateTime          = "2006-01-02_15:04:05.999" //完整时间格式
-	FormatDateTimeUnSpace      = "20060102150405"          //完整时间格式
-	FormatShortDateTimeUnSpace = "060102150405"            //省去开头两位年份的时间格式
-	EmptyDateTimeStr           = "0000-00-00 00:00:00"     //DateTime零值字符串
-	EmptyDateStr               = "0000-00-00"              //Date零值字符串
-	FormatMonthDayUnSpace      = "0102"                    //日期格式
-	FormatMonthDay             = "01-02"                   //日期格式
-	FormatYearMonthDate        = "2006-01"                 //日期格式
-	FormatYearDate             = "2006"                    //日期格式
-	PageSize15                 = 15                        //列表页每页数据量
+	FormatTime                 = "15:04:05"                  //时间格式
+	FormatTimeHm               = "15:04"                     //时间格式
+	FormatDate                 = "2006-01-02"                //日期格式
+	FormatDateWallWithLoc      = "2006-01-02T15:04:05-07:00" //日期格式
+	FormatDateUnSpace          = "20060102"                  //日期格式
+	FormatDateTime             = "2006-01-02 15:04:05"       //完整时间格式
+	HlbFormatDateTime          = "2006-01-02_15:04:05.999"   //完整时间格式
+	FormatDateTimeUnSpace      = "20060102150405"            //完整时间格式
+	FormatShortDateTimeUnSpace = "060102150405"              //省去开头两位年份的时间格式
+	EmptyDateTimeStr           = "0000-00-00 00:00:00"       //DateTime零值字符串
+	EmptyDateStr               = "0000-00-00"                //Date零值字符串
+	FormatMonthDayUnSpace      = "0102"                      //日期格式
+	FormatMonthDay             = "01-02"                     //日期格式
+	FormatYearMonthDate        = "2006-01"                   //日期格式
+	FormatYearDate             = "2006"                      //日期格式
+	PageSize15                 = 15                          //列表页每页数据量
 	PageSize5                  = 5
 	PageSize10                 = 10
 	PageSize20                 = 20