init_mysteel_index.go 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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 InitMysteelChemicalIndex(filePath string) {
  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 + filePath
  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, terminalCode 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. case 8:
  70. terminalCode = colCell //终端号
  71. }
  72. }
  73. if classifySecond != "" &&
  74. classifyThree != "" &&
  75. indexCode != "" &&
  76. indexName != "" &&
  77. unit != "" &&
  78. frequency != "" &&
  79. terminalCode != `` {
  80. //classifyFirstMap := make(map[string]interface{})
  81. //classifyFirstMap["ClassifyName"] = classifyFirst
  82. //classifyFirstMap["ParentId"] = 0
  83. //classifyFirstMap["Level"] = 0
  84. //result, err := PostEdbLib(classifyFirstMap, method)
  85. //if err != nil {
  86. // utils.FileLog.Info("初始化分类1失败:" + err.Error())
  87. // return
  88. //}
  89. //
  90. //resp := new(models.ClassifyResp)
  91. //err = json.Unmarshal(result, &resp)
  92. //if err != nil {
  93. // utils.FileLog.Info("初始化分类1失败:" + err.Error())
  94. // return
  95. //}
  96. //
  97. //if resp.Ret != 200 {
  98. // utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg)
  99. // return
  100. //}
  101. classifySecondMap := make(map[string]interface{})
  102. classifySecondMap["ClassifyName"] = classifySecond
  103. classifySecondMap["ParentId"] = 0
  104. classifySecondMap["Level"] = 0
  105. classifySecondMap["SysUserId"] = utils.OpUserId
  106. classifySecondMap["SysUserRealName"] = utils.OpUserRealName
  107. result, err := PostEdbLib(classifySecondMap, classifyMethod)
  108. if err != nil {
  109. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  110. return
  111. }
  112. resp := new(models.MysteelClassifyResp)
  113. err = json.Unmarshal(result, &resp)
  114. if err != nil {
  115. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  116. return
  117. }
  118. if resp.Ret != 200 {
  119. utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg)
  120. return
  121. }
  122. classifyThreeMap := make(map[string]interface{})
  123. classifyThreeMap["ClassifyName"] = classifyThree
  124. classifyThreeMap["ParentId"] = resp.Data.BaseFromMysteelChemicalClassifyId
  125. classifyThreeMap["Level"] = 1
  126. classifyThreeMap["SysUserId"] = utils.OpUserId
  127. classifyThreeMap["SysUserRealName"] = utils.OpUserRealName
  128. result, err = PostEdbLib(classifyThreeMap, classifyMethod)
  129. if err != nil {
  130. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  131. return
  132. }
  133. resp = new(models.MysteelClassifyResp)
  134. err = json.Unmarshal(result, &resp)
  135. if err != nil {
  136. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  137. return
  138. }
  139. if resp.Ret != 200 {
  140. utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg)
  141. return
  142. }
  143. indexMap := make(map[string]interface{})
  144. indexMap["EdbCode"] = indexCode
  145. indexMap["TerminalCode"] = terminalCode
  146. indexMap["BaseFromMysteelChemicalClassifyId"] = resp.Data.BaseFromMysteelChemicalClassifyId
  147. indexMap["SysUserId"] = utils.OpUserId
  148. indexMap["SysUserRealName"] = utils.OpUserRealName
  149. result, err = PostEdbLib(indexMap, indexMethod)
  150. if err != nil {
  151. utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result))
  152. return
  153. }
  154. indexResp := new(models.EdbInfoResp)
  155. err = json.Unmarshal(result, &indexResp)
  156. if err != nil {
  157. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  158. return
  159. }
  160. if indexResp.Ret != 200 {
  161. if strings.Contains(indexResp.Msg, "新增指标失败") {
  162. continue
  163. } else {
  164. fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  165. utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  166. return
  167. }
  168. }
  169. fmt.Println("add index success:" + indexCode)
  170. } else {
  171. fmt.Println("data is empty")
  172. fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source)
  173. }
  174. }
  175. }
  176. }