init_base_index.go 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package services
  2. import (
  3. "fmt"
  4. "github.com/xuri/excelize/v2"
  5. "hongze/hz_eta_data/models"
  6. "hongze/hz_eta_data/utils"
  7. "os"
  8. "path/filepath"
  9. )
  10. // 初始化基础指标数据
  11. func InitBaseIndexData() {
  12. var err error
  13. defer func() {
  14. if err != nil {
  15. fmt.Println("InitBaseIndexData Err:" + err.Error())
  16. }
  17. }()
  18. //读取excel
  19. path, err := filepath.Abs(os.Args[0])
  20. if err != nil {
  21. fmt.Println(err)
  22. }
  23. dir := filepath.Dir(path)
  24. fmt.Println("dir:" + dir)
  25. dataPath := dir + "/docs/逸诺初始化数据示例.xlsx"
  26. f, err := excelize.OpenFile(dataPath)
  27. if err != nil {
  28. fmt.Println(err)
  29. return
  30. }
  31. defer func() {
  32. // Close the spreadsheet.
  33. if err := f.Close(); err != nil {
  34. fmt.Println(err)
  35. }
  36. }()
  37. rows, err := f.GetRows("Sheet1")
  38. if err != nil {
  39. fmt.Println(err)
  40. return
  41. }
  42. for rk, row := range rows {
  43. if rk > 0 {
  44. var classifyFirst, classifySecond, classifyThree, indexCode, indexName, unit, frequency, source string
  45. for ck, colCell := range row {
  46. switch ck {
  47. case 0:
  48. classifyFirst = colCell
  49. case 1:
  50. classifySecond = colCell
  51. case 2:
  52. classifySecond = colCell
  53. case 3:
  54. indexCode = colCell
  55. case 4:
  56. indexName = colCell
  57. case 5:
  58. frequency = colCell
  59. case 6:
  60. unit = colCell
  61. case 7:
  62. source = colCell
  63. }
  64. if classifyFirst != "" &&
  65. classifySecond != "" &&
  66. classifyThree != "" &&
  67. indexCode != "" &&
  68. indexName != "" &&
  69. unit != "" &&
  70. frequency != "" &&
  71. source != "" {
  72. method := "classify/get_or_add"
  73. classifyFirstMap := make(map[string]interface{})
  74. classifyFirstMap["ClassifyName"] = classifyFirst
  75. classifyFirstMap["ParentId"] = 0
  76. classifyFirstMap["Level"] = 0
  77. classifyFirstMap["ClassifyType"] = 0
  78. resp, err := PostEdbLib(classifyFirstMap, method)
  79. if err != nil {
  80. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  81. return
  82. }
  83. if resp.Ret != 200 {
  84. utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg)
  85. return
  86. }
  87. classifySecondMap := make(map[string]interface{})
  88. classifySecondMap["ClassifyName"] = classifySecond
  89. classifySecondMap["ParentId"] = 0
  90. classifySecondMap["Level"] = 0
  91. classifySecondMap["ClassifyType"] = 0
  92. resp, err = PostEdbLib(classifySecondMap, method)
  93. if err != nil {
  94. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  95. return
  96. }
  97. if resp.Ret != 200 {
  98. utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg)
  99. return
  100. }
  101. classifyThreeMap := make(map[string]interface{})
  102. classifyThreeMap["ClassifyName"] = classifyThree
  103. classifyThreeMap["ParentId"] = 0
  104. classifyThreeMap["Level"] = 0
  105. classifyThreeMap["ClassifyType"] = 0
  106. resp, err = PostEdbLib(classifyThreeMap, method)
  107. if err != nil {
  108. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  109. return
  110. }
  111. if resp.Ret != 200 {
  112. utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg)
  113. return
  114. }
  115. classify := resp.Data.(*models.EdbClassify)
  116. var classifyId int
  117. if classify != nil {
  118. classifyId = classify.ClassifyId
  119. }
  120. method = "edb_info/add"
  121. indexMap := make(map[string]interface{})
  122. indexMap["Source"] = IndexSourceMap[source]
  123. indexMap["EdbCode"] = indexCode
  124. indexMap["EdbName"] = indexName
  125. indexMap["Frequency"] = frequency
  126. indexMap["Unit"] = unit
  127. indexMap["ClassifyId"] = classifyId
  128. resp, err = PostEdbLib(indexMap, method)
  129. if err != nil {
  130. utils.FileLog.Info("初始化指标失败:" + err.Error())
  131. return
  132. }
  133. if resp.Ret != 200 {
  134. utils.FileLog.Info("初始化指标失败:" + resp.Msg + ";" + resp.ErrMsg)
  135. return
  136. }
  137. fmt.Println("add index success:" + indexCode)
  138. }
  139. }
  140. }
  141. }
  142. }
  143. /*
  144. // PostEdbLib 调用指标接口
  145. func PostEdbLib(param map[string]interface{}, method string) (resp *models.BaseResponse, err error) {
  146. postUrl := utils.EDB_LIB_URL + method
  147. postData, err := json.Marshal(param)
  148. if err != nil {
  149. return
  150. }
  151. result, err := HttpPost(postUrl, string(postData), "application/json")
  152. if err != nil {
  153. return
  154. }
  155. err = json.Unmarshal(result, &resp)
  156. if err != nil {
  157. return
  158. }
  159. return resp, nil
  160. }
  161. */