|
@@ -216,8 +216,44 @@ func ManualIndexSource2Edb(req ManualIndexSource2EdbReq, lang string) (edb *data
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// ImportManualData
|
|
|
+// @Description: 数据导入
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-08-01 11:27:21
|
|
|
+// @param path string
|
|
|
+// @param sysUser *system.Admin
|
|
|
+// @return successCount int
|
|
|
+// @return failCount int
|
|
|
+// @return err error
|
|
|
+// @return errMsg string
|
|
|
func ImportManualData(path string, sysUser *system.Admin) (successCount, failCount int, err error, errMsg string) {
|
|
|
- // TODO 操作记录
|
|
|
+ // 错误信息
|
|
|
+ errMsgList := make([]string, 0)
|
|
|
+ // 操作记录
|
|
|
+ recordMap := make(map[string]string)
|
|
|
+ defer func() {
|
|
|
+ recordList := make([]*models.EdbinfoOpRecord, 0)
|
|
|
+ for tradeCode, remark := range recordMap {
|
|
|
+ recordList = append(recordList, &models.EdbinfoOpRecord{
|
|
|
+ TradeCode: tradeCode,
|
|
|
+ Remark: remark,
|
|
|
+ UserId: sysUser.AdminId,
|
|
|
+ UserName: sysUser.RealName,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if len(recordList) > 0 {
|
|
|
+ go func() {
|
|
|
+ obj := models.EdbinfoOpRecord{}
|
|
|
+ _ = obj.MulCreate(recordList)
|
|
|
+ }()
|
|
|
+ }
|
|
|
+
|
|
|
+ // 错误信息记录
|
|
|
+ if len(errMsgList) > 0 {
|
|
|
+ utils.FileLog.Info("导入失败, errMsgList: %v", strings.Join(errMsgList, "\n"))
|
|
|
+ }
|
|
|
+ }()
|
|
|
errMsg = `导入失败`
|
|
|
xlFile, err := xlsx.OpenFile(path)
|
|
|
if err != nil {
|
|
@@ -266,7 +302,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
|
|
|
failDataList = append(failDataList, tmpFailDataList...)
|
|
|
}
|
|
|
|
|
|
- var indexDataListMap map[string]ImportManualIndexData
|
|
|
+ indexDataListMap := make(map[string]ImportManualIndexData)
|
|
|
for _, v := range indexDataList {
|
|
|
indexData, ok := indexDataListMap[v.IndexName]
|
|
|
if !ok {
|
|
@@ -333,6 +369,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
|
|
|
for _, v := range manualIndexList {
|
|
|
targetMap[v.SecName] = v
|
|
|
tradeCodeList = append(tradeCodeList, v.TradeCode)
|
|
|
+ recordMap[v.TradeCode] = "更新数据"
|
|
|
}
|
|
|
|
|
|
// 获取明细数据
|
|
@@ -343,10 +380,10 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
|
|
|
return
|
|
|
}
|
|
|
for _, tmpData := range dataList {
|
|
|
- //tmpDataMap,ok := edbCodeDataMap[tmpData.TradeCode]
|
|
|
- //if !ok{
|
|
|
- // tmpDataMap = make(map[string]string)
|
|
|
- //}
|
|
|
+ _, ok := edbCodeDataMap[tmpData.TradeCode]
|
|
|
+ if !ok {
|
|
|
+ edbCodeDataMap[tmpData.TradeCode] = make(map[string]string)
|
|
|
+ }
|
|
|
edbCodeDataMap[tmpData.TradeCode][tmpData.Dt] = tmpData.Close
|
|
|
}
|
|
|
}
|
|
@@ -367,7 +404,6 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
|
|
|
// continue
|
|
|
//}
|
|
|
|
|
|
- errMsgList := make([]string, 0)
|
|
|
addDataList := make([]*models.Edbdata, 0)
|
|
|
|
|
|
for _, v := range indexDataListMap {
|
|
@@ -442,7 +478,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
|
|
|
failDataList = append(failDataList, failItem)
|
|
|
continue
|
|
|
}
|
|
|
- tmpErr := AddEdbInfo(v.IndexName, v.Unit, v.Frequency, "", sysUser.Mobile, classify.ClassifyId, sysUser.AdminId)
|
|
|
+ tmpErr := AddEdbInfo(v.IndexName, v.Unit, v.Frequency, "", sysUser.Mobile, classify.ClassifyId, sysUser.AdminId, sysUser.RealName)
|
|
|
if tmpErr != nil {
|
|
|
fmt.Println("line 158")
|
|
|
|
|
@@ -462,6 +498,8 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
|
|
|
tmpTarget, tmpErr := models.GetTargetBySecName(v.IndexName)
|
|
|
target = tmpTarget
|
|
|
targetMap[v.IndexName] = target
|
|
|
+
|
|
|
+ recordMap[target.TradeCode] = "创建指标"
|
|
|
}
|
|
|
|
|
|
if target == nil {
|
|
@@ -511,6 +549,7 @@ func ImportManualData(path string, sysUser *system.Admin) (successCount, failCou
|
|
|
tmpDataMap, ok := edbCodeDataMap[target.TradeCode]
|
|
|
if !ok {
|
|
|
tmpDataMap = make(map[string]string)
|
|
|
+ edbCodeDataMap[target.TradeCode] = tmpDataMap
|
|
|
}
|
|
|
|
|
|
for createDate, closeVal := range v.DataMap {
|
|
@@ -880,7 +919,7 @@ func getDataByTemplate2(sheet *xlsx.Sheet, sysUserId int) (indexDataList []Impor
|
|
|
ClassifyName: classifyName,
|
|
|
CreateDate: currDate,
|
|
|
SecName: indexName,
|
|
|
- Close: cells[3].Value,
|
|
|
+ Close: v.Value,
|
|
|
Remark: "日期格式异常",
|
|
|
SysUserId: strconv.Itoa(sysUserId),
|
|
|
Frequency: frequency,
|