|
@@ -18,7 +18,7 @@ import (
|
|
|
)
|
|
|
|
|
|
// AddBalanceExcelChart 添加平衡表图表
|
|
|
-func AddBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanceTableChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
+func AddBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanceTableChartReq, sysUser *system.Admin, dataListMap map[int][]*data_manage.EdbDataList) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
|
|
|
/*// 操作权限校验, 增加协作人判断
|
|
|
{
|
|
@@ -61,7 +61,7 @@ func AddBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanc
|
|
|
return
|
|
|
}
|
|
|
chartEdbList := make([]*excelModel.AddChartEdbAndDataItem, 0)
|
|
|
- for _, chartEdb := range req.ChartEdbInfoList {
|
|
|
+ for k, chartEdb := range req.ChartEdbInfoList {
|
|
|
excelEdb := new(excelModel.ExcelChartEdb)
|
|
|
excelEdb.EdbName = chartEdb.EdbName
|
|
|
randStr := utils.GetRandDigit(4)
|
|
@@ -82,23 +82,28 @@ func AddBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanc
|
|
|
excelEdb.CreateTime = time.Now()
|
|
|
excelEdb.ModifyTime = time.Now()
|
|
|
excelEdb.ChartWidth = 1
|
|
|
- var dateList []string
|
|
|
- var dataList []float64
|
|
|
+ var dataList []*excelModel.ExcelChartData
|
|
|
if excelInfo.BalanceType == 1 {
|
|
|
- // 如果是静态表,则直接使用前端传输的数据落到数据库里
|
|
|
- /*dateList, dataList, err, errMsg = utils.HandleEdbSequenceVal(chartEdb.DateSequenceVal, chartEdb.DataSequenceVal)
|
|
|
- if err != nil {
|
|
|
- errMsg = "时间序列或数据序列异常!"
|
|
|
- err = fmt.Errorf("时间序列或数据序列异常!%s", err.Error())
|
|
|
+ tmpList, ok := dataListMap[k]
|
|
|
+ if !ok {
|
|
|
+ errMsg = "查询图表数据失败!"
|
|
|
+ err = fmt.Errorf("查询图表数据失败!%s", err.Error())
|
|
|
return
|
|
|
- }*/
|
|
|
+ }
|
|
|
+ for _, l := range tmpList {
|
|
|
+ tmp := &excelModel.ExcelChartData{
|
|
|
+ DataTime: l.DataTime,
|
|
|
+ Value: l.Value,
|
|
|
+ DataTimestamp: l.DataTimestamp,
|
|
|
+ }
|
|
|
+ dataList = append(dataList, tmp)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 处理日期列表和值列表
|
|
|
addItem := &excelModel.AddChartEdbAndDataItem{
|
|
|
ChartEdb: excelEdb,
|
|
|
- DateList: dateList,
|
|
|
- ValList: dataList,
|
|
|
+ DataList: dataList,
|
|
|
}
|
|
|
chartEdbList = append(chartEdbList, addItem)
|
|
|
}
|
|
@@ -267,7 +272,7 @@ func addBalanceExcelChart(req request.AddBalanceTableChartReq, sysUserId int, sy
|
|
|
}
|
|
|
|
|
|
// EditBalanceExcelChart 添加平衡表图表
|
|
|
-func EditBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanceTableChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
+func EditBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanceTableChartReq, sysUser *system.Admin, dataListMap map[int][]*data_manage.EdbDataList) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
if len(req.ChartEdbInfoList) == 0 {
|
|
|
errMsg = "图表数据不能为空!"
|
|
|
err = fmt.Errorf("图表数据不能为空!%s", err.Error())
|
|
@@ -322,7 +327,7 @@ func EditBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalan
|
|
|
|
|
|
// 查询edbIds
|
|
|
chartEdbList := make([]*excelModel.AddChartEdbAndDataItem, 0)
|
|
|
- for _, chartEdb := range req.ChartEdbInfoList {
|
|
|
+ for k, chartEdb := range req.ChartEdbInfoList {
|
|
|
if _, ok := deleteMap[chartEdb.ExcelChartEdbId]; ok {
|
|
|
delete(deleteMap, chartEdb.ExcelChartEdbId)
|
|
|
}
|
|
@@ -363,23 +368,29 @@ func EditBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalan
|
|
|
excelEdb.LeadValue = chartEdb.LeadValue
|
|
|
excelEdb.LeadUnit = chartEdb.LeadUnit
|
|
|
excelEdb.ModifyTime = time.Now()
|
|
|
- var dateList []string
|
|
|
- var dataList []float64
|
|
|
+ var dataList []*excelModel.ExcelChartData
|
|
|
if excelInfo.BalanceType == 1 {
|
|
|
// 如果是静态表,则直接使用前端传输的数据落到数据库里
|
|
|
- /*dateList, dataList, err, errMsg = utils.HandleEdbSequenceVal(chartEdb.DateSequenceVal, chartEdb.DataSequenceVal)
|
|
|
- if err != nil {
|
|
|
- errMsg = "时间序列或数据序列异常!"
|
|
|
- err = fmt.Errorf("时间序列或数据序列异常!%s", err.Error())
|
|
|
+ tmpList, ok := dataListMap[k]
|
|
|
+ if !ok {
|
|
|
+ errMsg = "查询图表数据失败!"
|
|
|
+ err = fmt.Errorf("查询图表数据失败!%s", err.Error())
|
|
|
return
|
|
|
- }*/
|
|
|
+ }
|
|
|
+ for _, l := range tmpList {
|
|
|
+ tmp := &excelModel.ExcelChartData{
|
|
|
+ DataTime: l.DataTime,
|
|
|
+ Value: l.Value,
|
|
|
+ DataTimestamp: l.DataTimestamp,
|
|
|
+ }
|
|
|
+ dataList = append(dataList, tmp)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 处理日期列表和值列表
|
|
|
addItem := &excelModel.AddChartEdbAndDataItem{
|
|
|
ChartEdb: excelEdb,
|
|
|
- DateList: dateList,
|
|
|
- ValList: dataList,
|
|
|
+ DataList: dataList,
|
|
|
}
|
|
|
chartEdbList = append(chartEdbList, addItem)
|
|
|
}
|
|
@@ -421,8 +432,6 @@ func editBalanceExcelChart(req request.AddBalanceTableChartReq) (chartInfo *data
|
|
|
err = errors.New("获取图表信息失败,Err:" + err.Error())
|
|
|
return
|
|
|
}
|
|
|
- // todo 查找默认主题设置
|
|
|
- // todo 查找默认主题设置
|
|
|
// 查找主题类型id
|
|
|
chartThemeType, err := chart_theme.GetChartThemeTypeByChartType(chartType)
|
|
|
if err != nil {
|
|
@@ -1257,7 +1266,7 @@ func getBalanceDataListStartDateAndValue(dataList []*data_manage.EdbDataList) (s
|
|
|
}
|
|
|
|
|
|
// AddBalanceStaticExcel 另存为和存为静态表以及子表的复制都调用该接口
|
|
|
-func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName string, sysUser *system.Admin, parentId, relExcelInfoId, balanceType int, childExcelList []*excelModel.ExcelInfo, pingNameFlag bool) (excelInfo *excelModel.ExcelInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
+func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName string, sysUser *system.Admin, parentId, relExcelInfoId, balanceType int, childExcelList []*excelModel.ExcelInfo, pingNameFlag bool, excelDataMap map[int]map[int][]*data_manage.EdbDataList) (excelInfo *excelModel.ExcelInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
isSendEmail = true
|
|
|
|
|
|
versionName = utils.TrimLRStr(versionName)
|
|
@@ -1342,7 +1351,7 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
}
|
|
|
if parentId == 0 && len(childExcelList) > 0 {
|
|
|
for _, childExcelInfo := range childExcelList {
|
|
|
- _, err, errMsg, isSendEmail = AddBalanceStaticExcel(childExcelInfo, versionName, sysUser, excelInfo.ExcelInfoId, relExcelInfoId, balanceType, []*excelModel.ExcelInfo{}, false)
|
|
|
+ _, err, errMsg, isSendEmail = AddBalanceStaticExcel(childExcelInfo, versionName, sysUser, excelInfo.ExcelInfoId, relExcelInfoId, balanceType, []*excelModel.ExcelInfo{}, false, excelDataMap)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -1379,7 +1388,12 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
err = fmt.Errorf("未找到图表关联的指标信息")
|
|
|
return
|
|
|
}
|
|
|
- err, errMsg, isSendEmail = CopyBalanceExcelChart(chartInfo, mappingList, versionName, sysUser, pingNameFlag)
|
|
|
+ chartEdbDataMap, ok := excelDataMap[chartInfo.ChartInfoId]
|
|
|
+ if !ok && oldExcelInfo.BalanceType == 1 { //
|
|
|
+ err = fmt.Errorf("未找到图表关联的指标信息")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ err, errMsg, isSendEmail = CopyBalanceExcelChart(chartInfo, mappingList, versionName, sysUser, pingNameFlag, chartEdbDataMap)
|
|
|
if err != nil {
|
|
|
err = fmt.Errorf("复制图表失败 Err:%s", err.Error())
|
|
|
return
|
|
@@ -1391,7 +1405,7 @@ func AddBalanceStaticExcel(oldExcelInfo *excelModel.ExcelInfo, versionName strin
|
|
|
}
|
|
|
|
|
|
// CopyBalanceExcelChart 复制平衡表图表
|
|
|
-func CopyBalanceExcelChart(oldChartInfo *data_manage.ChartInfoView, oldChartEdbList []*excelModel.ExcelChartEdb, versionName string, sysUser *system.Admin, pingNameFlag bool) (err error, errMsg string, isSendEmail bool) {
|
|
|
+func CopyBalanceExcelChart(oldChartInfo *data_manage.ChartInfoView, oldChartEdbList []*excelModel.ExcelChartEdb, versionName string, sysUser *system.Admin, pingNameFlag bool, dataListMap map[int][]*data_manage.EdbDataList) (err error, errMsg string, isSendEmail bool) {
|
|
|
chartEdbList := make([]*excelModel.AddChartEdbAndDataItem, 0)
|
|
|
if pingNameFlag && versionName != "" {
|
|
|
oldChartInfo.ChartName += "(" + versionName + ")"
|
|
@@ -1419,15 +1433,23 @@ func CopyBalanceExcelChart(oldChartInfo *data_manage.ChartInfoView, oldChartEdbL
|
|
|
excelEdb.LeadUnit = chartEdb.LeadUnit
|
|
|
excelEdb.CreateTime = time.Now()
|
|
|
excelEdb.ModifyTime = time.Now()
|
|
|
- var dateList []string
|
|
|
- var dataList []float64
|
|
|
- // todo 是否需要存储静态表的数据
|
|
|
+ var dataList []*excelModel.ExcelChartData
|
|
|
+ tmpList, ok := dataListMap[chartEdb.ExcelChartEdbId]
|
|
|
+ if ok {
|
|
|
+ for _, l := range tmpList {
|
|
|
+ tmp := &excelModel.ExcelChartData{
|
|
|
+ DataTime: l.DataTime,
|
|
|
+ Value: l.Value,
|
|
|
+ DataTimestamp: l.DataTimestamp,
|
|
|
+ }
|
|
|
+ dataList = append(dataList, tmp)
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
// 处理日期列表和值列表
|
|
|
addItem := &excelModel.AddChartEdbAndDataItem{
|
|
|
ChartEdb: excelEdb,
|
|
|
- DateList: dateList,
|
|
|
- ValList: dataList,
|
|
|
+ DataList: dataList,
|
|
|
}
|
|
|
chartEdbList = append(chartEdbList, addItem)
|
|
|
}
|
|
@@ -1571,7 +1593,6 @@ func CopyBalanceExcel(oldExcelInfo *excelModel.ExcelInfo, excelClassifyId int, e
|
|
|
oldExcelInfo.ExcelName = excelName
|
|
|
|
|
|
// 先复制动态表,再复制动态子表,复制静态表,再复制静态子表
|
|
|
- //查询动态表所有的子表,并复制为静态表
|
|
|
condition := " AND parent_id = ? AND balance_type = 0 "
|
|
|
var pars []interface{}
|
|
|
pars = append(pars, oldExcelInfo.ExcelInfoId)
|
|
@@ -1581,7 +1602,9 @@ func CopyBalanceExcel(oldExcelInfo *excelModel.ExcelInfo, excelClassifyId int, e
|
|
|
err = fmt.Errorf("获取子表失败 %s", err.Error())
|
|
|
return
|
|
|
}
|
|
|
- excelInfo, err, errMsg, isSendEmail = AddBalanceStaticExcel(oldExcelInfo, "", sysUser, 0, 0, 0, childExcelList, false)
|
|
|
+ // 查询出每个子表的内容,并将内容转为静态版本
|
|
|
+ excelDataMap := make(map[int]map[int][]*data_manage.EdbDataList)
|
|
|
+ excelInfo, err, errMsg, isSendEmail = AddBalanceStaticExcel(oldExcelInfo, "", sysUser, 0, 0, 0, childExcelList, false, excelDataMap)
|
|
|
if err != nil {
|
|
|
errMsg = "复制动态表失败"
|
|
|
err = fmt.Errorf("复制动态表失败 %s", err.Error())
|
|
@@ -1608,7 +1631,31 @@ func CopyBalanceExcel(oldExcelInfo *excelModel.ExcelInfo, excelClassifyId int, e
|
|
|
err = fmt.Errorf("获取子表失败 %s", err.Error())
|
|
|
return
|
|
|
}
|
|
|
- _, err, errMsg, isSendEmail = AddBalanceStaticExcel(staticExcelInfo, staticExcelInfo.VersionName, sysUser, 0, excelInfo.ExcelInfoId, 1, childList, false)
|
|
|
+ excelDataMap = make(map[int]map[int][]*data_manage.EdbDataList)
|
|
|
+ for _, childExcelInfo := range childList {
|
|
|
+ //得到表格数据并落库
|
|
|
+ tmpDataList, e := excelModel.GetExcelChartDataByExcelInfoId(childExcelInfo.ExcelInfoId)
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf(" 获取图表,指标信息失败 Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(tmpDataList) > 0 {
|
|
|
+ for _, v := range tmpDataList {
|
|
|
+ child, ok := excelDataMap[v.ChartInfoId]
|
|
|
+ if !ok {
|
|
|
+ child = make(map[int][]*data_manage.EdbDataList)
|
|
|
+ }
|
|
|
+ tmp := &data_manage.EdbDataList{
|
|
|
+ DataTime: v.DataTime,
|
|
|
+ DataTimestamp: v.DataTimestamp,
|
|
|
+ Value: v.Value,
|
|
|
+ }
|
|
|
+ child[v.ExcelChartEdbId] = append(child[v.ExcelChartEdbId], tmp)
|
|
|
+ excelDataMap[v.ChartInfoId] = child
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _, err, errMsg, isSendEmail = AddBalanceStaticExcel(staticExcelInfo, staticExcelInfo.VersionName, sysUser, 0, excelInfo.ExcelInfoId, 1, childList, false, excelDataMap)
|
|
|
if err != nil {
|
|
|
errMsg = "复制动态表失败"
|
|
|
err = fmt.Errorf("复制动态表失败 %s", err.Error())
|