|
@@ -3363,6 +3363,514 @@ func (this *TargetController) ImportTargetFailListDownload() {
|
|
|
this.Ctx.Output.Download(savePath, "失败列表.xlsx")
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -3387,27 +3895,6 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
var req data_manage.ExcelStyleReq
|
|
|
err = json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
@@ -3416,23 +3903,14 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- targetMap := make(map[string]*models.Edbinfo)
|
|
|
- var cellDataList []map[string]interface{}
|
|
|
var dataList [][]map[string]interface{}
|
|
|
-
|
|
|
- for _, item := range req.CellData {
|
|
|
- v := item.(map[string]interface{})
|
|
|
- cellDataList = append(cellDataList, v)
|
|
|
- }
|
|
|
-
|
|
|
- valueIndex := 0
|
|
|
|
|
|
var secNameList []string
|
|
|
var frequencyList []string
|
|
|
var unitList []string
|
|
|
|
|
|
var dateList []string
|
|
|
- dateValueMap := make(map[string]map[int]string)
|
|
|
+ secNameToDateMap := make(map[string]map[string]string)
|
|
|
|
|
|
for i := range req.Data {
|
|
|
|
|
@@ -3441,434 +3919,185 @@ func (this *TargetController) ExcelDataAdd() {
|
|
|
if req.Data[i] == nil || req.Data[i][0] == nil {
|
|
|
continue
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
dateMap := req.Data[i][0].(map[string]interface{})
|
|
|
_, ok := dateMap["m"]
|
|
|
+ date := dateMap["m"].(string)
|
|
|
if ok {
|
|
|
- dateList = append(dateList, dateMap["m"].(string))
|
|
|
-
|
|
|
+ dateList = append(dateList, date)
|
|
|
} else {
|
|
|
continue
|
|
|
}
|
|
|
- }
|
|
|
- for j, dataArr := range req.Data[i] {
|
|
|
-
|
|
|
- if dataArr == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- dataMap := dataArr.(map[string]interface{})
|
|
|
- if dataList == nil {
|
|
|
- dataList = make([][]map[string]interface{}, len(req.Data))
|
|
|
- }
|
|
|
- if dataList[i] == nil {
|
|
|
- dataList[i] = make([]map[string]interface{}, len(req.Data[i]))
|
|
|
- }
|
|
|
- dataList[i][j] = dataMap
|
|
|
-
|
|
|
- v, _ := dataMap["m"]
|
|
|
-
|
|
|
- if v == "指标名称" {
|
|
|
- for nameIndex := 1; nameIndex < len(req.Data[i]); nameIndex++ {
|
|
|
- if req.Data[i][nameIndex] == nil {
|
|
|
- break
|
|
|
- }
|
|
|
- secNameMap := req.Data[i][nameIndex].(map[string]interface{})
|
|
|
- secName, _ := secNameMap["m"]
|
|
|
- if secName == nil {
|
|
|
- continue
|
|
|
+
|
|
|
+ for j := 1; j < len(req.Data[i]); j++ {
|
|
|
+ closeVal := req.Data[i][j].(map[string]interface{})
|
|
|
+ if item, ok := secNameToDateMap[secNameList[j-1]]; ok {
|
|
|
+ item[date] = closeVal["m"].(string)
|
|
|
+ } else {
|
|
|
+
|
|
|
+ secNameToDateMap[secNameList[j-1]] = map[string]string{
|
|
|
+ date: closeVal["m"].(string),
|
|
|
}
|
|
|
- secNameList = append(secNameList, secNameMap["m"].(string))
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- if v == "频度" {
|
|
|
- for nameIndex := 1; nameIndex < len(req.Data[i]); nameIndex++ {
|
|
|
- if req.Data[i][nameIndex] == nil {
|
|
|
- break
|
|
|
- }
|
|
|
- frequencyMap := req.Data[i][nameIndex].(map[string]interface{})
|
|
|
- frequency, _ := frequencyMap["m"]
|
|
|
- if frequency == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- frequencyList = append(frequencyList, frequencyMap["m"].(string))
|
|
|
-
|
|
|
+
|
|
|
+ } else {
|
|
|
+ for j, dataArr := range req.Data[i] {
|
|
|
+
|
|
|
+ if dataArr == nil {
|
|
|
+ continue
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- if v == "单位" {
|
|
|
- for nameIndex := 1; nameIndex < len(req.Data[i]); nameIndex++ {
|
|
|
- if req.Data[i][nameIndex] == nil {
|
|
|
- break
|
|
|
- }
|
|
|
- unitMap := req.Data[i][nameIndex].(map[string]interface{})
|
|
|
- unit, _ := unitMap["m"]
|
|
|
- if unit == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- unitList = append(unitList, unitMap["m"].(string))
|
|
|
-
|
|
|
+ dataMap := dataArr.(map[string]interface{})
|
|
|
+ if dataList == nil {
|
|
|
+ dataList = make([][]map[string]interface{}, len(req.Data))
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- valueListMap := make(map[int]string)
|
|
|
- if i > 4 {
|
|
|
- for index := 1; index < len(req.Data[i]); index++ {
|
|
|
- if req.Data[i][index] == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- valueMap := req.Data[i][index].(map[string]interface{})
|
|
|
- value, _ := valueMap["m"]
|
|
|
- if value == nil {
|
|
|
- continue
|
|
|
- }
|
|
|
- valueListMap[index] = valueMap["m"].(string)
|
|
|
-
|
|
|
-
|
|
|
- if ct, ok := valueMap["ct"].(map[string]interface{}); ok {
|
|
|
- fa, _ := ct["fa"]
|
|
|
- if fa == "#,##0.000" {
|
|
|
- value = valueMap["v"]
|
|
|
- floatValue := valueMap["v"].(float64)
|
|
|
- valueListMap[index] = strconv.FormatFloat(floatValue, 'f', -1, 64)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ if dataList[i] == nil {
|
|
|
+ dataList[i] = make([]map[string]interface{}, len(req.Data[i]))
|
|
|
}
|
|
|
- dateMap := req.Data[i][0].(map[string]interface{})
|
|
|
- date := dateMap["m"].(string)
|
|
|
- dateValueMap[date] = valueListMap
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- valueIndex++
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- edbCodeDataMap := make(map[string]map[string]string)
|
|
|
-
|
|
|
-
|
|
|
- {
|
|
|
- for i := 0; i < len(secNameList); i++ {
|
|
|
-
|
|
|
- secName := secNameList[i]
|
|
|
- frequency := frequencyList[i]
|
|
|
-
|
|
|
-
|
|
|
- if len(unitList) < len(secNameList) {
|
|
|
- br.Msg = "单位填写异常!"
|
|
|
- br.ErrMsg = "单位填写异常!"
|
|
|
- return
|
|
|
- }
|
|
|
- unit := unitList[i]
|
|
|
-
|
|
|
- for j, s := range dateList {
|
|
|
- var closeVal string
|
|
|
-
|
|
|
- valueMap, ok := dateValueMap[s]
|
|
|
-
|
|
|
- if ok {
|
|
|
- createDate := dateList[j]
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- closeVal, ok = valueMap[i+1]
|
|
|
- target, ok2 := targetMap[secName]
|
|
|
- if !ok2 {
|
|
|
- tmpTarget, err := models.GetTargetBySecName(secName)
|
|
|
- if err != nil {
|
|
|
-
|
|
|
- if err.Error() == utils.ErrNoRow() {
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- tmpErr := data.AddEdbInfo(secName, unit, frequency, "", sysUser.Mobile, req.ClassifyId, sysUser.AdminId)
|
|
|
- if tmpErr != nil {
|
|
|
-
|
|
|
- utils.FileLogData.Error("AddEdbInfo err :%s", tmpErr.Error())
|
|
|
- continue
|
|
|
- }
|
|
|
- tmpTarget, tmpErr := models.GetTargetBySecName(secName)
|
|
|
- target = tmpTarget
|
|
|
- targetMap[secName] = target
|
|
|
- } else {
|
|
|
- fmt.Println("导入数据 获取指标:Err:" + err.Error())
|
|
|
- }
|
|
|
- } else {
|
|
|
- target = tmpTarget
|
|
|
- targetMap[secName] = target
|
|
|
+ dataList[i][j] = dataMap
|
|
|
+
|
|
|
+ v, _ := dataMap["m"]
|
|
|
+
|
|
|
+ if v == "指标名称" {
|
|
|
+ for nameIndex := 1; nameIndex < len(req.Data[i]); nameIndex++ {
|
|
|
+ if req.Data[i][nameIndex] == nil {
|
|
|
+ break
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- if targetMap[secName].Sort != i {
|
|
|
- edbinfo := models.Edbinfo{TradeCode: target.TradeCode, Sort: i}
|
|
|
- er := edbinfo.Update([]string{"sort"})
|
|
|
- if er != nil {
|
|
|
- fmt.Println("sort update err:", er.Error())
|
|
|
+ secNameMap := req.Data[i][nameIndex].(map[string]interface{})
|
|
|
+ secName, _ := secNameMap["m"]
|
|
|
+ if secName == nil {
|
|
|
+ continue
|
|
|
}
|
|
|
+ secNameList = append(secNameList, secNameMap["m"].(string))
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- tmpDataMap, ok2 := edbCodeDataMap[target.TradeCode]
|
|
|
- if !ok2 {
|
|
|
- tmpDataMap = make(map[string]string)
|
|
|
- targetDataList, tmpErr := models.GetTargetsDataList(target.TradeCode)
|
|
|
- if tmpErr != nil {
|
|
|
- err = tmpErr
|
|
|
+ }
|
|
|
+
|
|
|
+ if v == "频度" {
|
|
|
+ for nameIndex := 1; nameIndex < len(req.Data[i]); nameIndex++ {
|
|
|
+ if req.Data[i][nameIndex] == nil {
|
|
|
+ break
|
|
|
}
|
|
|
- for _, tmpData := range targetDataList {
|
|
|
- tmpDataMap[tmpData.Dt] = tmpData.Close
|
|
|
+ frequencyMap := req.Data[i][nameIndex].(map[string]interface{})
|
|
|
+ frequency, _ := frequencyMap["m"]
|
|
|
+ if frequency == nil {
|
|
|
+ continue
|
|
|
}
|
|
|
- edbCodeDataMap[target.TradeCode] = tmpDataMap
|
|
|
+ frequencyList = append(frequencyList, frequencyMap["m"].(string))
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- tmpVal, ok3 := tmpDataMap[createDate]
|
|
|
-
|
|
|
- if ok3 {
|
|
|
- if closeVal != "" {
|
|
|
-
|
|
|
- tmpValDecimal, tmpErr := decimal.NewFromString(tmpVal)
|
|
|
- if tmpErr != nil {
|
|
|
- fmt.Println("tmpVal Parse err:", tmpErr.Error())
|
|
|
- err = tmpErr
|
|
|
- continue
|
|
|
- }
|
|
|
-
|
|
|
- closeValDecimal, tmpErr := decimal.NewFromString(closeVal)
|
|
|
- if tmpErr != nil {
|
|
|
- fmt.Println("closeVal Parse err:", tmpErr.Error())
|
|
|
- err = tmpErr
|
|
|
- continue
|
|
|
- }
|
|
|
- if !tmpValDecimal.Equal(closeValDecimal) {
|
|
|
- fmt.Println("更新数值")
|
|
|
- err = models.ModifyTargetsDataByImport(target.TradeCode, createDate, closeVal)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("ModifyTargetsDataByImport err:", err.Error())
|
|
|
- errs = append(errs, err.Error())
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- fmt.Println("删除数值")
|
|
|
- err = models.DeleteTargetsDataByImport(target.TradeCode, createDate)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("DeleteTargetsDataByImport err:", err.Error())
|
|
|
- errs = append(errs, err.Error())
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if frequency != target.Frequency || unit != target.Unit || req.ClassifyId != target.ClassifyId {
|
|
|
- fmt.Println("更新指标频度或单位")
|
|
|
- err = models.ModifyEdbinfo(target.TradeCode, unit, frequency, req.ClassifyId)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("EditEdbinfo err:", err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ if v == "单位" {
|
|
|
+ for nameIndex := 1; nameIndex < len(req.Data[i]); nameIndex++ {
|
|
|
+ if req.Data[i][nameIndex] == nil {
|
|
|
+ break
|
|
|
}
|
|
|
- } else {
|
|
|
- if target.TradeCode != "" && createDate != "" && closeVal != "" {
|
|
|
- fmt.Println("新增")
|
|
|
- models.AddTargetsDataByImport(target.TradeCode, createDate, closeVal)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("AddTargetsDataByImport err:", err.Error())
|
|
|
- errs = append(errs, err.Error())
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- tmpDataMap[createDate] = closeVal
|
|
|
- edbCodeDataMap[target.TradeCode] = tmpDataMap
|
|
|
+ unitMap := req.Data[i][nameIndex].(map[string]interface{})
|
|
|
+ unit, _ := unitMap["m"]
|
|
|
+ if unit == nil {
|
|
|
+ continue
|
|
|
}
|
|
|
+ unitList = append(unitList, unitMap["m"].(string))
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- list, err := models.GetTargetItemList(req.ClassifyId, 1, req.Frequency, "", "", []string{})
|
|
|
+
|
|
|
+ edbCodeDataMap := make(map[string]*models.EdbInfoItem)
|
|
|
+
|
|
|
+ if len(frequencyList) == 0 {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "保存成功"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ list, err := models.GetTargetItemListSort(req.ClassifyId, 1, frequencyList[0], "", "", []string{strconv.Itoa(req.ClassifyId)})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取指标失败"
|
|
|
+ br.ErrMsg = "获取有效指标失败,系统错误,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, item := range list {
|
|
|
+ edbCodeDataMap[item.SecName] = item
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ addEdbInfoList := make([]*models.Edbinfo, 0)
|
|
|
+ sortEdbInfoList := make([]*models.Edbinfo, 0)
|
|
|
+ for i, v := range secNameList {
|
|
|
+ if item, ok := edbCodeDataMap[v]; !ok {
|
|
|
+ t := new(models.Edbinfo)
|
|
|
+ t.SecName = v
|
|
|
+ t.Unit = unitList[i]
|
|
|
+ t.Frequency = frequencyList[i]
|
|
|
+ t.Mobile = sysUser.Mobile
|
|
|
+ t.ClassifyId = req.ClassifyId
|
|
|
+ t.UserId = sysUser.AdminId
|
|
|
+ t.Sort = len(list) + i
|
|
|
+ addEdbInfoList = append(addEdbInfoList, t)
|
|
|
+ edbCodeDataMap[t.SecName] = &models.EdbInfoItem{
|
|
|
+ TradeCode: t.TradeCode,
|
|
|
+ SecName: t.SecName,
|
|
|
+ Unit: t.Unit,
|
|
|
+ Frequency: t.Frequency,
|
|
|
+ UserId: t.UserId,
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if item.Sort != i {
|
|
|
+ t := new(models.Edbinfo)
|
|
|
+ t.TradeCode = item.TradeCode
|
|
|
+ t.Sort = i
|
|
|
+ sortEdbInfoList = append(sortEdbInfoList, t)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range sortEdbInfoList {
|
|
|
+ err = v.Update([]string{"sort"})
|
|
|
if err != nil {
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- br.Msg = "获取失败"
|
|
|
+ br.Msg = "excel保存失败"
|
|
|
+ br.ErrMsg = "excel更新顺序失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- fmt.Println(list)
|
|
|
+ }
|
|
|
+
|
|
|
+ msg, err := data.MultiAddEdbInfo(addEdbInfoList, sysUser.Mobile)
|
|
|
+ if err != nil {
|
|
|
+ if msg != "" {
|
|
|
+ br.Msg = msg
|
|
|
+ } else {
|
|
|
+ br.Msg = "指标保存失败"
|
|
|
+ }
|
|
|
+ br.ErrMsg = "新增指标失败,系统错误,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ addEdbDataList := make([]*models.Edbdata, 0)
|
|
|
+ for _, v := range secNameList {
|
|
|
+
|
|
|
+ for date, closeVal := range secNameToDateMap[v] {
|
|
|
+ t := new(models.Edbdata)
|
|
|
+
|
|
|
+ t.TradeCode = edbCodeDataMap[v].TradeCode
|
|
|
+ t.Dt = date
|
|
|
+ t.Close = closeVal
|
|
|
+ t.ModifyTime = time.Now()
|
|
|
+ addEdbDataList = append(addEdbDataList, t)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ err = models.MultiAddEdbdata(addEdbDataList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "excel保存失败"
|
|
|
+ br.ErrMsg = "新增指标数据失败,系统错误,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
-
|
|
|
-
|
|
|
+ br.Msg = "保存成功"
|
|
|
}
|
|
|
|
|
|
|