|
@@ -49,7 +49,7 @@ func ListenFolderNew() {
|
|
|
//检测指标文件
|
|
|
func WatchIndexFile(filePath string) {
|
|
|
fmt.Println("filePath:", filePath)
|
|
|
- time.Sleep(2 * time.Second)
|
|
|
+ time.Sleep(3 * time.Second)
|
|
|
//读取文件内容
|
|
|
f, err := excelize.OpenFile(filePath)
|
|
|
if err != nil {
|
|
@@ -62,171 +62,173 @@ func WatchIndexFile(filePath string) {
|
|
|
return
|
|
|
}
|
|
|
}()
|
|
|
+ var runMode string
|
|
|
+ if strings.Contains(filePath, "debug") {
|
|
|
+ runMode = "debug"
|
|
|
+ } else {
|
|
|
+ runMode = "release"
|
|
|
+ }
|
|
|
+ go func() {
|
|
|
+ sheetList := f.GetSheetList()
|
|
|
+ for _, sv := range sheetList {
|
|
|
|
|
|
- sheetList := f.GetSheetList()
|
|
|
- for _, sv := range sheetList {
|
|
|
-
|
|
|
- var indexName, indexCode, unit, source, frequency, startDate, endDate, describe string
|
|
|
- var indexId int64
|
|
|
- rows, err := f.GetRows(sv)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("f.GetRows:err:" + err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- indexObj := new(index.BaseFromMysteelChemicalIndex)
|
|
|
- dataList := make([]index.BaseFromMysteelChemicalData, 0)
|
|
|
+ var indexName, indexCode, unit, source, frequency, startDate, endDate, describe string
|
|
|
+ var indexId int64
|
|
|
+ rows, err := f.GetRows(sv)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("f.GetRows:err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- dataMap := make(map[string]string)
|
|
|
- for rk, row := range rows {
|
|
|
- if rk > 0 {
|
|
|
- if rk < 10 {
|
|
|
- for ck, colCell := range row {
|
|
|
- if ck == 1 {
|
|
|
- if rk == 1 {
|
|
|
- indexName = colCell
|
|
|
- }
|
|
|
- if rk == 2 {
|
|
|
- unit = colCell
|
|
|
- }
|
|
|
- if rk == 3 {
|
|
|
- source = colCell
|
|
|
+ indexObj := new(index.BaseFromMysteelChemicalIndex)
|
|
|
+ dataList := make([]index.BaseFromMysteelChemicalData, 0)
|
|
|
+
|
|
|
+ dataMap := make(map[string]string)
|
|
|
+ for rk, row := range rows {
|
|
|
+ if rk > 0 {
|
|
|
+ if rk < 10 {
|
|
|
+ for ck, colCell := range row {
|
|
|
+ if ck == 1 {
|
|
|
+ if rk == 1 {
|
|
|
+ indexName = colCell
|
|
|
+ }
|
|
|
+ if rk == 2 {
|
|
|
+ unit = colCell
|
|
|
+ }
|
|
|
+ if rk == 3 {
|
|
|
+ source = colCell
|
|
|
+ }
|
|
|
+ if rk == 4 {
|
|
|
+ indexCode = colCell
|
|
|
+ }
|
|
|
+ if rk == 5 {
|
|
|
+ frequency = colCell
|
|
|
+ }
|
|
|
+ if rk == 6 {
|
|
|
+ dateArr := strings.Split(colCell, "~")
|
|
|
+ if len(dateArr) >= 2 {
|
|
|
+ startDate = dateArr[0]
|
|
|
+ endDate = dateArr[1]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if rk == 7 {
|
|
|
+ describe = colCell
|
|
|
+ }
|
|
|
}
|
|
|
- if rk == 4 {
|
|
|
- indexCode = colCell
|
|
|
+ }
|
|
|
+
|
|
|
+ if rk == 9 {
|
|
|
+ //判断指标是否存在
|
|
|
+ var isAdd int
|
|
|
+ item, err := indexObj.GetIndexItem(runMode, indexCode)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == "record not found" {
|
|
|
+ isAdd = 1
|
|
|
+ } else {
|
|
|
+ isAdd = -1
|
|
|
+ fmt.Println("GetIndexItem Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
- if rk == 5 {
|
|
|
- frequency = colCell
|
|
|
+ if item != nil && item.BaseFromMysteelChemicalIndexId > 0 {
|
|
|
+ fmt.Println("item:", item)
|
|
|
+ isAdd = 2
|
|
|
+ } else {
|
|
|
+ isAdd = 1
|
|
|
}
|
|
|
- if rk == 6 {
|
|
|
- dateArr := strings.Split(colCell, "~")
|
|
|
- if len(dateArr) >= 2 {
|
|
|
- startDate = dateArr[0]
|
|
|
- endDate = dateArr[1]
|
|
|
+
|
|
|
+ fmt.Println("isAdd:", isAdd)
|
|
|
+
|
|
|
+ if isAdd == 1 {
|
|
|
+ indexObj.IndexCode = indexCode
|
|
|
+ indexObj.IndexName = indexName
|
|
|
+ indexObj.Unit = unit
|
|
|
+ indexObj.Source = source
|
|
|
+ indexObj.Describe = describe
|
|
|
+ indexObj.StartDate = startDate
|
|
|
+ indexObj.EndDate = endDate
|
|
|
+ indexObj.Frequency = frequency
|
|
|
+ err = indexObj.Add(runMode)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("add err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ indexId = indexObj.BaseFromMysteelChemicalIndexId
|
|
|
+ } else if isAdd == 2 {
|
|
|
+ indexObj.IndexCode = indexCode
|
|
|
+ indexObj.IndexName = indexName
|
|
|
+ indexObj.Unit = unit
|
|
|
+ indexObj.Source = source
|
|
|
+ indexObj.Describe = describe
|
|
|
+ indexObj.StartDate = startDate
|
|
|
+ indexObj.EndDate = endDate
|
|
|
+ indexObj.Frequency = frequency
|
|
|
+ indexObj.ModifyTime = time.Now()
|
|
|
+ indexId = item.BaseFromMysteelChemicalIndexId
|
|
|
+ //修改数据
|
|
|
+ updateColsArr := make([]string, 0)
|
|
|
+ updateColsArr = append(updateColsArr, "index_name")
|
|
|
+ updateColsArr = append(updateColsArr, "unit")
|
|
|
+ updateColsArr = append(updateColsArr, "source")
|
|
|
+ updateColsArr = append(updateColsArr, "frequency")
|
|
|
+ updateColsArr = append(updateColsArr, "start_date")
|
|
|
+ updateColsArr = append(updateColsArr, "end_date")
|
|
|
+ updateColsArr = append(updateColsArr, "describe")
|
|
|
+ updateColsArr = append(updateColsArr, "end_date")
|
|
|
+ updateColsArr = append(updateColsArr, "modify_time")
|
|
|
+ indexObj.Update(runMode, updateColsArr)
|
|
|
+
|
|
|
+ dataObj := new(index.BaseFromMysteelChemicalData)
|
|
|
+ //获取已存在的所有数据
|
|
|
+ dataList, err := dataObj.GetIndexDataList(runMode, indexCode)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("GetIndexDataList Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("dataListLen:", len(dataList))
|
|
|
+ for _, v := range dataList {
|
|
|
+ dateStr := v.DataTime.Format(utils.FormatDate)
|
|
|
+ dataMap[dateStr] = v.Value
|
|
|
}
|
|
|
- }
|
|
|
- if rk == 7 {
|
|
|
- describe = colCell
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- if rk == 9 {
|
|
|
- //判断指标是否存在
|
|
|
- var isAdd int
|
|
|
- item, err := indexObj.GetIndexItem(indexCode)
|
|
|
- if err != nil {
|
|
|
- if err.Error() == "record not found" {
|
|
|
- isAdd = 1
|
|
|
+ } else {
|
|
|
+ var date, value string
|
|
|
+ for ck, colCell := range row {
|
|
|
+ if ck == 0 {
|
|
|
+ date = colCell
|
|
|
} else {
|
|
|
- isAdd = -1
|
|
|
- fmt.Println("GetIndexItem Err:" + err.Error())
|
|
|
- return
|
|
|
+ value = colCell
|
|
|
}
|
|
|
}
|
|
|
- if item != nil && item.BaseFromMysteelChemicalIndexId > 0 {
|
|
|
- fmt.Println("item:", item)
|
|
|
- isAdd = 2
|
|
|
- } else {
|
|
|
- isAdd = 1
|
|
|
- }
|
|
|
-
|
|
|
- fmt.Println("isAdd:", isAdd)
|
|
|
-
|
|
|
- if isAdd == 1 {
|
|
|
- indexObj.IndexCode = indexCode
|
|
|
- indexObj.IndexName = indexName
|
|
|
- indexObj.Unit = unit
|
|
|
- indexObj.Source = source
|
|
|
- indexObj.Describe = describe
|
|
|
- indexObj.StartDate = startDate
|
|
|
- indexObj.EndDate = endDate
|
|
|
- indexObj.Frequency = frequency
|
|
|
- err = indexObj.Add()
|
|
|
- if err != nil {
|
|
|
- fmt.Println("add err:" + err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- indexId = indexObj.BaseFromMysteelChemicalIndexId
|
|
|
- } else if isAdd == 2 {
|
|
|
- indexObj.IndexCode = indexCode
|
|
|
- indexObj.IndexName = indexName
|
|
|
- indexObj.Unit = unit
|
|
|
- indexObj.Source = source
|
|
|
- indexObj.Describe = describe
|
|
|
- indexObj.StartDate = startDate
|
|
|
- indexObj.EndDate = endDate
|
|
|
- indexObj.Frequency = frequency
|
|
|
- indexObj.ModifyTime = time.Now()
|
|
|
- indexId = item.BaseFromMysteelChemicalIndexId
|
|
|
- //修改数据
|
|
|
- updateColsArr := make([]string, 0)
|
|
|
- updateColsArr = append(updateColsArr, "index_name")
|
|
|
- updateColsArr = append(updateColsArr, "unit")
|
|
|
- updateColsArr = append(updateColsArr, "source")
|
|
|
- updateColsArr = append(updateColsArr, "frequency")
|
|
|
- updateColsArr = append(updateColsArr, "start_date")
|
|
|
- updateColsArr = append(updateColsArr, "end_date")
|
|
|
- updateColsArr = append(updateColsArr, "describe")
|
|
|
- updateColsArr = append(updateColsArr, "end_date")
|
|
|
- updateColsArr = append(updateColsArr, "modify_time")
|
|
|
- indexObj.Update(updateColsArr)
|
|
|
-
|
|
|
- dataObj := new(index.BaseFromMysteelChemicalData)
|
|
|
- //获取已存在的所有数据
|
|
|
- dataList, err := dataObj.GetIndexDataList(indexCode)
|
|
|
+ if _, ok := dataMap[date]; !ok {
|
|
|
+ dateTime, err := time.ParseInLocation(utils.FormatDate, date, time.Local)
|
|
|
if err != nil {
|
|
|
- fmt.Println("GetIndexDataList Err:" + err.Error())
|
|
|
+ fmt.Println("time.ParseInLocation Err:" + err.Error())
|
|
|
return
|
|
|
}
|
|
|
- fmt.Println("dataListLen:", len(dataList))
|
|
|
- for _, v := range dataList {
|
|
|
- dateStr := v.DataTime.Format(utils.FormatDate)
|
|
|
- dataMap[dateStr] = v.Value
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- var date, value string
|
|
|
- for ck, colCell := range row {
|
|
|
- if ck == 0 {
|
|
|
- date = colCell
|
|
|
- } else {
|
|
|
- value = colCell
|
|
|
+ dataItem := new(index.BaseFromMysteelChemicalData)
|
|
|
+ dataItem.BaseFromMysteelChemicalIndexId = indexId
|
|
|
+ dataItem.IndexCode = indexCode
|
|
|
+ dataItem.DataTime = dateTime
|
|
|
+ dataItem.Value = value
|
|
|
+ dataItem.CreateTime = time.Now()
|
|
|
+ dataItem.ModifyTime = time.Now()
|
|
|
+ dataList = append(dataList, *dataItem)
|
|
|
}
|
|
|
}
|
|
|
- if _, ok := dataMap[date]; !ok {
|
|
|
- dateTime, err := time.ParseInLocation(utils.FormatDate, date, time.Local)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("time.ParseInLocation Err:" + err.Error())
|
|
|
- return
|
|
|
- }
|
|
|
- dataItem := new(index.BaseFromMysteelChemicalData)
|
|
|
- dataItem.BaseFromMysteelChemicalIndexId = indexId
|
|
|
- dataItem.IndexCode = indexCode
|
|
|
- dataItem.DataTime = dateTime
|
|
|
- dataItem.Value = value
|
|
|
- dataItem.CreateTime = time.Now()
|
|
|
- dataItem.ModifyTime = time.Now()
|
|
|
- dataList = append(dataList, *dataItem)
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if len(dataList) > 0 {
|
|
|
- dataObj := new(index.BaseFromMysteelChemicalData)
|
|
|
- err = dataObj.Add(dataList)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("dataObj.Add() Err:" + err.Error())
|
|
|
+ if len(dataList) > 0 {
|
|
|
+ dataObj := new(index.BaseFromMysteelChemicalData)
|
|
|
+ err = dataObj.Add(runMode, dataList)
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println("dataObj.Add() Err:" + err.Error())
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func TestWatch() {
|
|
|
- filePath := `D:\hz\mysteel_data\钢联数据_煤炭:运费价格:印尼→中国:巴拿马型(日)_2022-9-4_1662303985672.xlsx`
|
|
|
- WatchIndexFile(filePath)
|
|
|
+ }()
|
|
|
}
|
|
|
|
|
|
/*
|