|
@@ -219,7 +219,15 @@ func ImportManualData(path string, sysUser *system.Admin) (err error, errMsg str
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ //导入成功数量
|
|
|
+ successCount := 0
|
|
|
+ //导入失败数据
|
|
|
+ failDataList := make([]*models.EdbdataImportFail, 0)
|
|
|
+ var indexDataList []ImportManualIndexData
|
|
|
+
|
|
|
for _, sheet := range xlFile.Sheets {
|
|
|
+ var tmpIndexDataList []ImportManualIndexData
|
|
|
+ var tmpFailDataList []*models.EdbdataImportFail
|
|
|
rowList := sheet.Rows
|
|
|
if len(rowList) <= 0 {
|
|
|
errMsg = sheet.Name + "页异常"
|
|
@@ -237,32 +245,27 @@ func ImportManualData(path string, sysUser *system.Admin) (err error, errMsg str
|
|
|
switch templateName {
|
|
|
case "导入模板2/Import Template 2":
|
|
|
// 模板2需要走对应的取数逻辑
|
|
|
- fmt.Println(getDataByTemplate2(sheet))
|
|
|
+ tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplate2(sheet)
|
|
|
default:
|
|
|
// 模板1需要走对应的取数逻辑
|
|
|
- fmt.Println(getDataByTemplate1(sheet))
|
|
|
-
|
|
|
+ tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplate1(sheet)
|
|
|
}
|
|
|
- fmt.Println(sheet)
|
|
|
+ indexDataList = append(indexDataList, tmpIndexDataList...)
|
|
|
+ failDataList = append(failDataList, tmpFailDataList...)
|
|
|
+ }
|
|
|
+
|
|
|
+ //超管账号可以查看分类下的所有频度数据
|
|
|
+ userId := sysUser.AdminId
|
|
|
+ if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
|
|
|
+ userId = 0
|
|
|
+ }
|
|
|
+ //获取账户所拥有权限的分类id集合
|
|
|
+ classifyNameStrList, edbDataClassifyMap, err := GetEdbClassifyNameListByAdminId(int64(userId))
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "获取分类数据失败"
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
- ////超管账号可以查看分类下的所有频度数据
|
|
|
- //userId := sysUser.AdminId
|
|
|
- //if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
|
|
|
- // userId = 0
|
|
|
- //}
|
|
|
- ////获取账户所拥有权限的分类id集合
|
|
|
- //classifyNameStrList, edbDataClassifyMap, err := GetEdbClassifyNameListByAdminId(int64(userId))
|
|
|
- //if err != nil {
|
|
|
- // errMsg = "获取分类数据失败"
|
|
|
- // return
|
|
|
- //}
|
|
|
- //
|
|
|
- ////导入成功数量
|
|
|
- //successCount := 0
|
|
|
- ////导入失败数据
|
|
|
- //failDataList := make([]*models.EdbdataImportFail, 0)
|
|
|
- //
|
|
|
////指标map
|
|
|
//targetMap := make(map[string]*models.Edbinfo)
|
|
|
//defer func() {
|
|
@@ -648,10 +651,11 @@ type ImportManualIndexData struct {
|
|
|
// @return indexDataList []ImportManualIndexData
|
|
|
// @return err error
|
|
|
// @return errMsg string
|
|
|
-func getDataByTemplate1(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexData, err error, errMsg string) {
|
|
|
+func getDataByTemplate1(sheet *xlsx.Sheet, sysUserId int) (indexDataList []ImportManualIndexData, failDataList []*models.EdbdataImportFail, err error, errMsg string) {
|
|
|
fmt.Println("sheet name: ", sheet.Name)
|
|
|
indexDataList = make([]ImportManualIndexData, 0)
|
|
|
indexDataListMap := make(map[string]ImportManualIndexData, 0)
|
|
|
+ failDataList = make([]*models.EdbdataImportFail, 0)
|
|
|
|
|
|
//遍历行读取
|
|
|
maxRow := sheet.MaxRow
|
|
@@ -729,35 +733,35 @@ func getDataByTemplate1(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexDat
|
|
|
continue
|
|
|
}
|
|
|
|
|
|
- createDate, tmpErr := getExcelDate(createDate)
|
|
|
+ currDate, tmpErr := getExcelDate(createDate)
|
|
|
if tmpErr != nil {
|
|
|
- // TODO 错误数据记录
|
|
|
- //failItem := new(models.EdbdataImportFail)
|
|
|
- //failItem.SysUserId = strconv.Itoa(sysUser.AdminId)
|
|
|
- //failItem.ClassifyName = classifyName
|
|
|
- //failItem.CreateDate = createDate
|
|
|
- //failItem.SecName = secName
|
|
|
- //failItem.Close = closeVal
|
|
|
- //failItem.Remark = "日期格式异常"
|
|
|
- //failItem.Frequency = frequency
|
|
|
- //failItem.Unit = unit
|
|
|
- //failDataList = append(failDataList, failItem)
|
|
|
- //go utils.SendEmail(utils.APPNAME+"失败提醒", "导入数据 获取分类:Err:"+err.Error(), utils.EmailSendToUsers)
|
|
|
+ failDataList = append(failDataList, &models.EdbdataImportFail{
|
|
|
+ //Id: 0,
|
|
|
+ ClassifyName: classifyName,
|
|
|
+ CreateDate: createDate,
|
|
|
+ SecName: indexName,
|
|
|
+ Close: closeVal,
|
|
|
+ Remark: "日期格式异常",
|
|
|
+ SysUserId: strconv.Itoa(sysUserId),
|
|
|
+ Frequency: frequency,
|
|
|
+ Unit: unit,
|
|
|
+ })
|
|
|
+ continue
|
|
|
}
|
|
|
|
|
|
closeValFloat, tmpErr := cells[3].Float() //值
|
|
|
if tmpErr != nil {
|
|
|
- // TODO 错误数据记录
|
|
|
- //failItem := new(models.EdbdataImportFail)
|
|
|
- //failItem.SysUserId = strconv.Itoa(sysUser.AdminId)
|
|
|
- //failItem.ClassifyName = classifyName
|
|
|
- //failItem.CreateDate = createDate
|
|
|
- //failItem.SecName = secName
|
|
|
- //failItem.Close = cells[3].Value
|
|
|
- //failItem.Remark = "值类型异常"
|
|
|
- //failItem.Frequency = frequency
|
|
|
- //failItem.Unit = unit
|
|
|
- //failDatas = append(failDatas, failItem)
|
|
|
+ failDataList = append(failDataList, &models.EdbdataImportFail{
|
|
|
+ //Id: 0,
|
|
|
+ ClassifyName: classifyName,
|
|
|
+ CreateDate: currDate,
|
|
|
+ SecName: indexName,
|
|
|
+ Close: cells[3].Value,
|
|
|
+ Remark: "值类型异常",
|
|
|
+ SysUserId: strconv.Itoa(sysUserId),
|
|
|
+ Frequency: frequency,
|
|
|
+ Unit: unit,
|
|
|
+ })
|
|
|
continue
|
|
|
}
|
|
|
newDecimal := decimal.NewFromFloat(closeValFloat)
|
|
@@ -778,7 +782,7 @@ func getDataByTemplate1(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexDat
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- indexDataListMap[indexName].DataMap[createDate] = closeVal
|
|
|
+ indexDataListMap[indexName].DataMap[currDate] = closeVal
|
|
|
}
|
|
|
|
|
|
for _, v := range indexDataListMap {
|
|
@@ -796,9 +800,10 @@ func getDataByTemplate1(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexDat
|
|
|
// @return indexDataList []ImportManualIndexData
|
|
|
// @return err error
|
|
|
// @return errMsg string
|
|
|
-func getDataByTemplate2(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexData, err error, errMsg string) {
|
|
|
+func getDataByTemplate2(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexData, failDataList []*models.EdbdataImportFail, err error, errMsg string) {
|
|
|
fmt.Println("sheet name: ", sheet.Name)
|
|
|
indexDataList = make([]ImportManualIndexData, 0)
|
|
|
+ failDataList = make([]*models.EdbdataImportFail, 0)
|
|
|
|
|
|
//遍历行读取
|
|
|
maxRow := sheet.MaxRow
|
|
@@ -873,7 +878,7 @@ func getDataByTemplate2(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexDat
|
|
|
// 数据处理
|
|
|
for k, v := range cells {
|
|
|
if k == 0 {
|
|
|
- createDate, tmpErr := getExcelDate(v.Value)
|
|
|
+ tmpCurrDate, tmpErr := getExcelDate(v.Value)
|
|
|
if tmpErr != nil {
|
|
|
// TODO 错误数据记录
|
|
|
//failItem := new(models.EdbdataImportFail)
|
|
@@ -890,7 +895,7 @@ func getDataByTemplate2(sheet *xlsx.Sheet) (indexDataList []ImportManualIndexDat
|
|
|
dateErr = true
|
|
|
}
|
|
|
|
|
|
- currDate = createDate
|
|
|
+ currDate = tmpCurrDate
|
|
|
continue
|
|
|
}
|
|
|
|