init_base_index.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. fmt.Println("dataPath:" + dataPath)
  27. f, err := excelize.OpenFile(dataPath)
  28. if err != nil {
  29. fmt.Println(err)
  30. return
  31. }
  32. defer func() {
  33. // Close the spreadsheet.
  34. if err := f.Close(); err != nil {
  35. fmt.Println(err)
  36. }
  37. }()
  38. rows, err := f.GetRows("Sheet1")
  39. if err != nil {
  40. fmt.Println(err)
  41. return
  42. }
  43. fmt.Println("rows len:", len(rows))
  44. for rk, row := range rows {
  45. if rk > 0 {
  46. var classifyFirst, classifySecond, classifyThree, indexCode, indexName, unit, frequency, source string
  47. for ck, colCell := range row {
  48. switch ck {
  49. case 0:
  50. classifyFirst = colCell
  51. case 1:
  52. classifySecond = colCell
  53. case 2:
  54. classifySecond = colCell
  55. case 3:
  56. indexCode = colCell
  57. case 4:
  58. indexName = colCell
  59. case 5:
  60. frequency = colCell
  61. case 6:
  62. unit = colCell
  63. case 7:
  64. source = colCell
  65. }
  66. if classifyFirst != "" &&
  67. classifySecond != "" &&
  68. classifyThree != "" &&
  69. indexCode != "" &&
  70. indexName != "" &&
  71. unit != "" &&
  72. frequency != "" &&
  73. source != "" {
  74. method := "classify/get_or_add"
  75. classifyFirstMap := make(map[string]interface{})
  76. classifyFirstMap["ClassifyName"] = classifyFirst
  77. classifyFirstMap["ParentId"] = 0
  78. classifyFirstMap["Level"] = 0
  79. classifyFirstMap["ClassifyType"] = 0
  80. resp, err := PostEdbLib(classifyFirstMap, method)
  81. if err != nil {
  82. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  83. return
  84. }
  85. if resp.Ret != 200 {
  86. utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg)
  87. return
  88. }
  89. classifySecondMap := make(map[string]interface{})
  90. classifySecondMap["ClassifyName"] = classifySecond
  91. classifySecondMap["ParentId"] = 0
  92. classifySecondMap["Level"] = 0
  93. classifySecondMap["ClassifyType"] = 0
  94. resp, err = PostEdbLib(classifySecondMap, method)
  95. if err != nil {
  96. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  97. return
  98. }
  99. if resp.Ret != 200 {
  100. utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg)
  101. return
  102. }
  103. classifyThreeMap := make(map[string]interface{})
  104. classifyThreeMap["ClassifyName"] = classifyThree
  105. classifyThreeMap["ParentId"] = 0
  106. classifyThreeMap["Level"] = 0
  107. classifyThreeMap["ClassifyType"] = 0
  108. resp, err = PostEdbLib(classifyThreeMap, method)
  109. if err != nil {
  110. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  111. return
  112. }
  113. if resp.Ret != 200 {
  114. utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg)
  115. return
  116. }
  117. classify := resp.Data.(*models.EdbClassify)
  118. var classifyId int
  119. if classify != nil {
  120. classifyId = classify.ClassifyId
  121. }
  122. method = "edb_info/add"
  123. indexMap := make(map[string]interface{})
  124. indexMap["Source"] = IndexSourceMap[source]
  125. indexMap["EdbCode"] = indexCode
  126. indexMap["EdbName"] = indexName
  127. indexMap["Frequency"] = frequency
  128. indexMap["Unit"] = unit
  129. indexMap["ClassifyId"] = classifyId
  130. resp, err = PostEdbLib(indexMap, method)
  131. if err != nil {
  132. utils.FileLog.Info("初始化指标失败:" + err.Error())
  133. return
  134. }
  135. if resp.Ret != 200 {
  136. utils.FileLog.Info("初始化指标失败:" + resp.Msg + ";" + resp.ErrMsg)
  137. return
  138. }
  139. fmt.Println("add index success:" + indexCode)
  140. } else {
  141. fmt.Println("data is empty")
  142. fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, unit, frequency, source)
  143. }
  144. }
  145. }
  146. }
  147. }
  148. /*
  149. // PostEdbLib 调用指标接口
  150. func PostEdbLib(param map[string]interface{}, method string) (resp *models.BaseResponse, err error) {
  151. postUrl := utils.EDB_LIB_URL + method
  152. postData, err := json.Marshal(param)
  153. if err != nil {
  154. return
  155. }
  156. result, err := HttpPost(postUrl, string(postData), "application/json")
  157. if err != nil {
  158. return
  159. }
  160. err = json.Unmarshal(result, &resp)
  161. if err != nil {
  162. return
  163. }
  164. return resp, nil
  165. }
  166. */