|
@@ -3909,7 +3909,6 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
var frequencyList []string
|
|
|
var unitList []string
|
|
|
|
|
|
- var dateList []string
|
|
|
secNameToDateMap := make(map[string]map[string]string)
|
|
|
//取到所有数据
|
|
|
for i := range req.Data {
|
|
@@ -3922,9 +3921,7 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
dateMap := req.Data[i][0].(map[string]interface{})
|
|
|
_, ok := dateMap["m"]
|
|
|
date := dateMap["m"].(string)
|
|
|
- if ok {
|
|
|
- dateList = append(dateList, date)
|
|
|
- } else {
|
|
|
+ if !ok {
|
|
|
continue
|
|
|
}
|
|
|
// 存储数据
|
|
@@ -4004,7 +4001,7 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
}
|
|
|
|
|
|
// 所有的指标数据map
|
|
|
- edbCodeDataMap := make(map[string]*models.EdbInfoItem)
|
|
|
+ edbCodeInfoMap := make(map[string]*models.EdbInfoItem)
|
|
|
|
|
|
if len(frequencyList) == 0 {
|
|
|
br.Ret = 200
|
|
@@ -4012,8 +4009,16 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
br.Msg = "保存成功"
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ //获取账户所拥有权限的分类id集合
|
|
|
+ classifyIdStrList, err := data.GetEdbClassifyListByAdminId(int64(sysUser.AdminId))
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取分类数据失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
// 获取当前类所有的有效指标
|
|
|
- list, err := models.GetTargetItemListSort(req.ClassifyId, 1, frequencyList[0], "", "", []string{strconv.Itoa(req.ClassifyId)})
|
|
|
+ list, err := models.GetTargetItemListSort(req.ClassifyId, 1, req.Frequence, "", "", classifyIdStrList)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取指标失败"
|
|
|
br.ErrMsg = "获取有效指标失败,系统错误,Err:" + err.Error()
|
|
@@ -4021,14 +4026,43 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
}
|
|
|
|
|
|
for _, item := range list {
|
|
|
- edbCodeDataMap[item.SecName] = item
|
|
|
+ edbCodeInfoMap[item.SecName] = item
|
|
|
+ }
|
|
|
+ if req.ClassifyId != req.OldClassifyId || req.Frequence != req.OldFrequence {
|
|
|
+ // 获取历史类所有的有效指标
|
|
|
+ oldList, err := models.GetTargetItemListSort(req.OldClassifyId, 1, req.OldFrequence, "", "", classifyIdStrList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取指标失败"
|
|
|
+ br.ErrMsg = "获取有效指标失败,系统错误,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, item := range oldList {
|
|
|
+ edbCodeInfoMap[item.SecName] = item
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.TradeCode == "" {
|
|
|
+ // TradeCode == "" 表示当前数据不是经过搜索的数据,可以进行删除指标操作
|
|
|
+ deleteTraceCodeList := make([]string, 0)
|
|
|
+ for k, v := range edbCodeInfoMap {
|
|
|
+ if _, ok := secNameToDateMap[k]; !ok {
|
|
|
+ deleteTraceCodeList = append(deleteTraceCodeList, v.TradeCode)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 删除指标
|
|
|
+ err = models.DeleteEdbinfoByTraceCodeList(deleteTraceCodeList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "excel保存失败"
|
|
|
+ br.ErrMsg = "指标及指标数据删除失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 获得需要新增的指标
|
|
|
addEdbInfoList := make([]*models.Edbinfo, 0)
|
|
|
sortEdbInfoList := make([]*models.Edbinfo, 0)
|
|
|
for i, v := range secNameList {
|
|
|
- if item, ok := edbCodeDataMap[v]; !ok {
|
|
|
+ if item, ok := edbCodeInfoMap[v]; !ok {
|
|
|
t := new(models.Edbinfo)
|
|
|
t.SecName = v
|
|
|
t.Unit = unitList[i]
|
|
@@ -4038,7 +4072,7 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
t.UserId = sysUser.AdminId
|
|
|
t.Sort = len(list) + i
|
|
|
addEdbInfoList = append(addEdbInfoList, t)
|
|
|
- edbCodeDataMap[t.SecName] = &models.EdbInfoItem{
|
|
|
+ edbCodeInfoMap[t.SecName] = &models.EdbInfoItem{
|
|
|
TradeCode: t.TradeCode,
|
|
|
SecName: t.SecName,
|
|
|
Unit: t.Unit,
|
|
@@ -4048,9 +4082,18 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
} else {
|
|
|
t := new(models.Edbinfo)
|
|
|
t.TradeCode = item.TradeCode
|
|
|
- t.Frequency = frequencyList[i]
|
|
|
+ if req.Frequence != req.OldFrequence || req.ClassifyId != req.OldClassifyId {
|
|
|
+ t.Sort = len(list) + i
|
|
|
+ } else {
|
|
|
+ if req.TradeCode != "" {
|
|
|
+ // 如果是搜索的指标,那就保存原来的排序
|
|
|
+ t.Sort = item.Sort
|
|
|
+ } else {
|
|
|
+ t.Sort = i
|
|
|
+ }
|
|
|
+ }
|
|
|
+ t.Frequency = req.Frequence
|
|
|
t.ClassifyId = req.ClassifyId
|
|
|
- t.Sort = i
|
|
|
sortEdbInfoList = append(sortEdbInfoList, t)
|
|
|
}
|
|
|
}
|
|
@@ -4081,7 +4124,7 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
for date, closeVal := range secNameToDateMap[v] {
|
|
|
t := new(models.Edbdata)
|
|
|
// 理论上这里面不应该出现空值
|
|
|
- t.TradeCode = edbCodeDataMap[v].TradeCode
|
|
|
+ t.TradeCode = edbCodeInfoMap[v].TradeCode
|
|
|
t.Dt = date
|
|
|
t.Close = closeVal
|
|
|
t.ModifyTime = time.Now()
|