init_mysteel_index.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package services
  2. import (
  3. "encoding/json"
  4. "eta/eta_data_init/models"
  5. "eta/eta_data_init/utils"
  6. "fmt"
  7. "github.com/xuri/excelize/v2"
  8. "os"
  9. "path/filepath"
  10. "strings"
  11. )
  12. // InitMysteelIndex 初始化钢联指标
  13. func InitMysteelIndex() {
  14. var err error
  15. defer func() {
  16. if err != nil {
  17. fmt.Println("InitBaseIndexData Err:" + err.Error())
  18. }
  19. }()
  20. //读取excel
  21. path, err := filepath.Abs(os.Args[0])
  22. if err != nil {
  23. fmt.Println(err)
  24. }
  25. dir := filepath.Dir(path)
  26. fmt.Println("dir:" + dir)
  27. dataPath := dir + "/docs/逸诺新增钢联数据列表.xlsx"
  28. fmt.Println("dataPath:" + dataPath)
  29. f, err := excelize.OpenFile(dataPath)
  30. if err != nil {
  31. fmt.Println(err)
  32. return
  33. }
  34. defer func() {
  35. // Close the spreadsheet.
  36. if err := f.Close(); err != nil {
  37. fmt.Println(err)
  38. }
  39. }()
  40. rows, err := f.GetRows("Sheet1")
  41. if err != nil {
  42. fmt.Println(err)
  43. return
  44. }
  45. classifyMethod := "mysteel_chemical/mysteel_classify/get_or_add"
  46. indexMethod := "mysteel_chemical/add/mysteel/index"
  47. fmt.Println("rows len:", len(rows))
  48. for rk, row := range rows {
  49. if rk > 0 {
  50. var classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source string
  51. for ck, colCell := range row {
  52. switch ck {
  53. case 0:
  54. classifyFirst = colCell
  55. case 1:
  56. classifySecond = colCell
  57. case 2:
  58. classifyThree = colCell
  59. case 3:
  60. indexCode = colCell
  61. case 4:
  62. indexName = colCell
  63. case 5:
  64. frequency = colCell
  65. case 6:
  66. unit = colCell
  67. case 7:
  68. source = colCell
  69. }
  70. }
  71. if classifySecond != "" &&
  72. classifyThree != "" &&
  73. indexCode != "" &&
  74. indexName != "" &&
  75. unit != "" &&
  76. frequency != "" {
  77. //classifyFirstMap := make(map[string]interface{})
  78. //classifyFirstMap["ClassifyName"] = classifyFirst
  79. //classifyFirstMap["ParentId"] = 0
  80. //classifyFirstMap["Level"] = 0
  81. //result, err := PostEdbLib(classifyFirstMap, method)
  82. //if err != nil {
  83. // utils.FileLog.Info("初始化分类1失败:" + err.Error())
  84. // return
  85. //}
  86. //
  87. //resp := new(models.ClassifyResp)
  88. //err = json.Unmarshal(result, &resp)
  89. //if err != nil {
  90. // utils.FileLog.Info("初始化分类1失败:" + err.Error())
  91. // return
  92. //}
  93. //
  94. //if resp.Ret != 200 {
  95. // utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg)
  96. // return
  97. //}
  98. classifySecondMap := make(map[string]interface{})
  99. classifySecondMap["ClassifyName"] = classifySecond
  100. classifySecondMap["ParentId"] = 0
  101. classifySecondMap["Level"] = 0
  102. classifySecondMap["SysUserId"] = utils.OpUserId
  103. classifySecondMap["SysUserRealName"] = utils.OpUserRealName
  104. result, err := PostEdbLib(classifySecondMap, classifyMethod)
  105. if err != nil {
  106. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  107. return
  108. }
  109. resp := new(models.MysteelClassifyResp)
  110. err = json.Unmarshal(result, &resp)
  111. if err != nil {
  112. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  113. return
  114. }
  115. if resp.Ret != 200 {
  116. utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg)
  117. return
  118. }
  119. classifyThreeMap := make(map[string]interface{})
  120. classifyThreeMap["ClassifyName"] = classifyThree
  121. classifyThreeMap["ParentId"] = resp.Data.BaseFromMysteelChemicalClassifyId
  122. classifyThreeMap["Level"] = 1
  123. classifyThreeMap["SysUserId"] = utils.OpUserId
  124. classifyThreeMap["SysUserRealName"] = utils.OpUserRealName
  125. result, err = PostEdbLib(classifyThreeMap, classifyMethod)
  126. if err != nil {
  127. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  128. return
  129. }
  130. resp = new(models.MysteelClassifyResp)
  131. err = json.Unmarshal(result, &resp)
  132. if err != nil {
  133. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  134. return
  135. }
  136. if resp.Ret != 200 {
  137. utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg)
  138. return
  139. }
  140. indexMap := make(map[string]interface{})
  141. indexMap["EdbCode"] = indexCode
  142. indexMap["BaseFromMysteelChemicalClassifyId"] = resp.Data.BaseFromMysteelChemicalClassifyId
  143. indexMap["SysUserId"] = utils.OpUserId
  144. indexMap["SysUserRealName"] = utils.OpUserRealName
  145. result, err = PostEdbLib(indexMap, indexMethod)
  146. if err != nil {
  147. utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result))
  148. return
  149. }
  150. indexResp := new(models.EdbInfoResp)
  151. err = json.Unmarshal(result, &indexResp)
  152. if err != nil {
  153. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  154. return
  155. }
  156. if indexResp.Ret != 200 {
  157. if strings.Contains(indexResp.Msg, "新增指标失败") {
  158. continue
  159. } else {
  160. fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  161. utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  162. return
  163. }
  164. }
  165. fmt.Println("add index success:" + indexCode)
  166. } else {
  167. fmt.Println("data is empty")
  168. fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source)
  169. }
  170. }
  171. }
  172. }