|
@@ -343,37 +343,20 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
|
|
err = errors.New(errMsg)
|
|
err = errors.New(errMsg)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
-
|
|
|
|
- templateType := 1 // 模板类型
|
|
|
|
- minCellNum := 6 // 模板最小列数
|
|
|
|
- headerCell := rowList[0].Cells
|
|
|
|
-
|
|
|
|
- // 确定模板
|
|
|
|
- for _, v := range headerCell {
|
|
|
|
- if v.String() == "导入模板2/Import Template 2" {
|
|
|
|
- templateType = 2
|
|
|
|
- minCellNum = 2
|
|
|
|
- break
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 如果小于最少列数,则报错
|
|
|
|
- if len(headerCell) < minCellNum {
|
|
|
|
- errMsg = sheet.Name + "页模板异常"
|
|
|
|
- err = errors.New(errMsg)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
if resourceType == knowledge.KnowledgeResourceTypeEvent || resourceType == knowledge.KnowledgeResourceTypePolicy {
|
|
if resourceType == knowledge.KnowledgeResourceTypeEvent || resourceType == knowledge.KnowledgeResourceTypePolicy {
|
|
- tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplateEvent(sheet, sysUser.AdminId, templateType)
|
|
|
|
|
|
+ tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplateEvent(sheet, sysUser.AdminId, resourceType)
|
|
} else {
|
|
} else {
|
|
- tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplatePoint(sheet, sysUser.AdminId, templateType)
|
|
|
|
|
|
+ tmpIndexDataList, tmpFailDataList, err, errMsg = getDataByTemplatePoint(sheet, sysUser.AdminId, resourceType)
|
|
}
|
|
}
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
fmt.Println("tmpIndexDataList: ", tmpIndexDataList)
|
|
fmt.Println("tmpIndexDataList: ", tmpIndexDataList)
|
|
- fmt.Println("tmpFailDataList: ", tmpFailDataList)
|
|
|
|
|
|
+ for _, v := range tmpFailDataList {
|
|
|
|
+ fmt.Println("tmpFailDataList: ", v)
|
|
|
|
+ }
|
|
|
|
+
|
|
indexDataList = append(indexDataList, tmpIndexDataList...)
|
|
indexDataList = append(indexDataList, tmpIndexDataList...)
|
|
failDataList = append(failDataList, tmpFailDataList...)
|
|
failDataList = append(failDataList, tmpFailDataList...)
|
|
}
|
|
}
|
|
@@ -424,28 +407,31 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
|
|
for _, v := range tagList {
|
|
for _, v := range tagList {
|
|
tagNameMap[v.TagName] = v.TagId
|
|
tagNameMap[v.TagName] = v.TagId
|
|
}
|
|
}
|
|
- //// TODO 成功数量超过20个指标,那就不导入了
|
|
|
|
- /* if len(targetMap) >= 100 {
|
|
|
|
- failItem := new(knowledge.KnowledgeImportFail)
|
|
|
|
- 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)
|
|
|
|
- continue
|
|
|
|
- }*/
|
|
|
|
|
|
|
|
for _, v := range indexDataList {
|
|
for _, v := range indexDataList {
|
|
- // 判断分类是否存在
|
|
|
|
- classifyName := fmt.Sprintf("%s/%s/%s", v.ClassifyFirstName, v.ClassifySecondName, v.ClassifyThirdName)
|
|
|
|
- fmt.Println("classifyName: ", classifyName)
|
|
|
|
- classifyId, ok := classifyNameMap[classifyName]
|
|
|
|
- if !ok {
|
|
|
|
|
|
+ errTip := ""
|
|
|
|
+ classifyId := 0
|
|
|
|
+ if successCount > 100 {
|
|
|
|
+ errTip = "导入数量超过100条"
|
|
|
|
+ } else if v.Title == "" {
|
|
|
|
+ errTip = "标题未填"
|
|
|
|
+ } else if v.Content == "" {
|
|
|
|
+ errTip = "正文未填"
|
|
|
|
+ } else if v.SourceFrom == "" {
|
|
|
|
+ errTip = "来源未填"
|
|
|
|
+ } else if v.ClassifyFirstName == "" {
|
|
|
|
+ errTip = "分类未填"
|
|
|
|
+ } else {
|
|
|
|
+ // 判断分类是否存在
|
|
|
|
+ classifyName := fmt.Sprintf("%s/%s/%s", v.ClassifyFirstName, v.ClassifySecondName, v.ClassifyThirdName)
|
|
|
|
+ fmt.Println("classifyName: ", classifyName)
|
|
|
|
+ classifyIdTmp, ok := classifyNameMap[classifyName]
|
|
|
|
+ if !ok {
|
|
|
|
+ errTip = "分类不存在"
|
|
|
|
+ }
|
|
|
|
+ classifyId = classifyIdTmp
|
|
|
|
+ }
|
|
|
|
+ if errTip != "" {
|
|
failItem := &knowledge.KnowledgeImportFail{
|
|
failItem := &knowledge.KnowledgeImportFail{
|
|
Title: v.Title,
|
|
Title: v.Title,
|
|
Content: v.Content,
|
|
Content: v.Content,
|
|
@@ -458,13 +444,12 @@ func ImportResourceData(path string, resourceType int, sysUser *system.Admin) (s
|
|
EndDate: v.EndDate,
|
|
EndDate: v.EndDate,
|
|
StartTime: v.StartTime,
|
|
StartTime: v.StartTime,
|
|
EndTime: v.EndTime,
|
|
EndTime: v.EndTime,
|
|
- Remark: "指标分类不存在",
|
|
|
|
|
|
+ Remark: errTip,
|
|
SysUserId: fmt.Sprint(sysUser.AdminId),
|
|
SysUserId: fmt.Sprint(sysUser.AdminId),
|
|
CreateTime: time.Now(),
|
|
CreateTime: time.Now(),
|
|
}
|
|
}
|
|
failDataList = append(failDataList, failItem)
|
|
failDataList = append(failDataList, failItem)
|
|
continue
|
|
continue
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
tagId, _ := tagNameMap[v.Tag]
|
|
tagId, _ := tagNameMap[v.Tag]
|
|
@@ -635,59 +620,49 @@ func getDataByTemplateEvent(sheet *xlsx.Sheet, sysUserId, resourceType int) (ind
|
|
row := sheet.Row(i)
|
|
row := sheet.Row(i)
|
|
cells := row.Cells
|
|
cells := row.Cells
|
|
lenCell := len(cells)
|
|
lenCell := len(cells)
|
|
- for k, v := range cells {
|
|
|
|
- fmt.Println("数据第行", i, "第", k, "个单元格", v.Value)
|
|
|
|
- }
|
|
|
|
// 过滤空白行
|
|
// 过滤空白行
|
|
if lenCell <= 0 {
|
|
if lenCell <= 0 {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
- fmt.Println("lenCell:", lenCell)
|
|
|
|
- if lenCell < 11 {
|
|
|
|
- if cells[0].Value == `` {
|
|
|
|
- continue
|
|
|
|
|
|
+ var startDateO, endDateO, startTimeO, endTimeO string
|
|
|
|
+ var startDate, startTime, endDate, endTime string
|
|
|
|
+ var title, content, sourceFrom, classifyName1, classifyName2, classifyName3, tag string
|
|
|
|
+ for k, v := range cells {
|
|
|
|
+ fmt.Println("数据第行", i, "第", k, "个单元格", v.Value)
|
|
|
|
+ if k == 0 {
|
|
|
|
+ startDate = strings.TrimSpace(cells[0].Value) //开始时间
|
|
|
|
+ startDateO = startDate
|
|
|
|
+ } else if k == 1 {
|
|
|
|
+ startTime = strings.TrimSpace(cells[1].Value) //开始时间
|
|
|
|
+ startTimeO = startTime
|
|
|
|
+ } else if k == 2 {
|
|
|
|
+ endDate = strings.TrimSpace(cells[2].Value) //结束时间
|
|
|
|
+ endDateO = endDate
|
|
|
|
+ } else if k == 3 {
|
|
|
|
+ endTime = strings.TrimSpace(cells[3].Value) //结束时间
|
|
|
|
+ endTimeO = endTime
|
|
|
|
+ } else if k == 4 {
|
|
|
|
+ title = strings.TrimSpace(cells[4].Value) //标题
|
|
|
|
+ } else if k == 5 {
|
|
|
|
+ content = strings.TrimSpace(cells[5].Value) //正文
|
|
|
|
+ } else if k == 6 {
|
|
|
|
+ sourceFrom = strings.TrimSpace(cells[6].Value) //来源
|
|
|
|
+ } else if k == 7 {
|
|
|
|
+ classifyName1 = strings.TrimSpace(cells[7].Value) //一级分类
|
|
|
|
+ } else if k == 8 {
|
|
|
|
+ classifyName2 = strings.TrimSpace(cells[8].Value) //二级分类
|
|
|
|
+ } else if k == 9 {
|
|
|
|
+ classifyName3 = strings.TrimSpace(cells[9].Value) //三级分类
|
|
|
|
+ } else if k == 10 {
|
|
|
|
+ tag = strings.TrimSpace(cells[10].Value) //标签
|
|
}
|
|
}
|
|
- errMsg = "导入文件异常,请下载最新导入模板文件"
|
|
|
|
- err = errors.New(errMsg)
|
|
|
|
- return
|
|
|
|
}
|
|
}
|
|
- startDate := strings.TrimSpace(cells[0].Value) //开始时间
|
|
|
|
- startTime := strings.TrimSpace(cells[1].Value) //开始时间
|
|
|
|
- endDate := strings.TrimSpace(cells[2].Value) //结束时间
|
|
|
|
- endTime := strings.TrimSpace(cells[3].Value) //结束时间
|
|
|
|
- startDateO := startDate
|
|
|
|
- endDateO := endDate
|
|
|
|
- startTimeO := startTime
|
|
|
|
- endTimeO := endTime
|
|
|
|
- title := strings.TrimSpace(cells[4].Value) //标题
|
|
|
|
- content := strings.TrimSpace(cells[5].Value) //正文
|
|
|
|
- sourceFrom := strings.TrimSpace(cells[6].Value) //来源
|
|
|
|
- classifyName1 := strings.TrimSpace(cells[7].Value) //一级分类
|
|
|
|
- classifyName2 := strings.TrimSpace(cells[8].Value) //二级分类
|
|
|
|
- classifyName3 := strings.TrimSpace(cells[9].Value) //三级分类
|
|
|
|
- tag := strings.TrimSpace(cells[10].Value) //标签
|
|
|
|
-
|
|
|
|
- if title == "" || content == "" || sourceFrom == "" || classifyName1 == "" { //过滤空白行
|
|
|
|
- failDataList = append(failDataList, &knowledge.KnowledgeImportFail{
|
|
|
|
- //Id: 0,
|
|
|
|
- Title: title,
|
|
|
|
- Content: content,
|
|
|
|
- SourceFrom: sourceFrom,
|
|
|
|
- ClassifyFirst: classifyName1,
|
|
|
|
- ClassifySecond: classifyName2,
|
|
|
|
- ClassifyThird: classifyName3,
|
|
|
|
- ResourceType: resourceType,
|
|
|
|
- StartDate: startDateO,
|
|
|
|
- EndDate: endDateO,
|
|
|
|
- StartTime: startTimeO,
|
|
|
|
- EndTime: endTimeO,
|
|
|
|
- Remark: "标题或正文或来源或分类为空",
|
|
|
|
- SysUserId: strconv.Itoa(sysUserId),
|
|
|
|
- CreateTime: time.Now(),
|
|
|
|
- })
|
|
|
|
|
|
+ if title == "" && startDate == "" && startTime == "" && endTime == "" && endDate == "" && content == "" && tag == "" && sourceFrom == "" && classifyName1 == "" && classifyName2 == "" && classifyName3 == "" { //过滤空白行
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ fmt.Println("lenCell:", lenCell)
|
|
|
|
+
|
|
// 校验日期格式
|
|
// 校验日期格式
|
|
if startDate != "" {
|
|
if startDate != "" {
|
|
// 判断9:09:14日期格式是否正确
|
|
// 判断9:09:14日期格式是否正确
|
|
@@ -849,7 +824,7 @@ func getDataByTemplatePoint(sheet *xlsx.Sheet, sysUserId, resourceType int) (ind
|
|
headerRow := sheet.Row(1)
|
|
headerRow := sheet.Row(1)
|
|
cells := headerRow.Cells
|
|
cells := headerRow.Cells
|
|
fmt.Println("cells:", len(cells))
|
|
fmt.Println("cells:", len(cells))
|
|
- if len(cells) < 8 {
|
|
|
|
|
|
+ if len(cells) < 5 {
|
|
errMsg = "导入文件异常,请下载最新导入模板文件"
|
|
errMsg = "导入文件异常,请下载最新导入模板文件"
|
|
err = errors.New(errMsg)
|
|
err = errors.New(errMsg)
|
|
return
|
|
return
|
|
@@ -896,50 +871,37 @@ func getDataByTemplatePoint(sheet *xlsx.Sheet, sysUserId, resourceType int) (ind
|
|
row := sheet.Row(i)
|
|
row := sheet.Row(i)
|
|
cells := row.Cells
|
|
cells := row.Cells
|
|
lenCell := len(cells)
|
|
lenCell := len(cells)
|
|
- for k, v := range cells {
|
|
|
|
- fmt.Println("数据第行", i, "第", k, "个单元格", v.Value)
|
|
|
|
- }
|
|
|
|
// 过滤空白行
|
|
// 过滤空白行
|
|
if lenCell <= 0 {
|
|
if lenCell <= 0 {
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
- fmt.Println("lenCell:", lenCell)
|
|
|
|
- if lenCell < 8 {
|
|
|
|
- if cells[0].Value == `` {
|
|
|
|
- continue
|
|
|
|
|
|
+ var startDateO string
|
|
|
|
+ var startDate string
|
|
|
|
+ var title, content, sourceFrom, classifyName1, classifyName2, classifyName3, tag string
|
|
|
|
+ for k, v := range cells {
|
|
|
|
+ fmt.Println("数据第行", i, "第", k, "个单元格", v.Value)
|
|
|
|
+ if k == 0 {
|
|
|
|
+ startDate = strings.TrimSpace(cells[0].Value) //开始时间
|
|
|
|
+ startDateO = startDate
|
|
|
|
+ } else if k == 1 {
|
|
|
|
+ title = strings.TrimSpace(cells[1].Value) //标题
|
|
|
|
+ } else if k == 2 {
|
|
|
|
+ content = strings.TrimSpace(cells[2].Value) //正文
|
|
|
|
+ } else if k == 3 {
|
|
|
|
+ sourceFrom = strings.TrimSpace(cells[3].Value) //来源
|
|
|
|
+ } else if k == 4 {
|
|
|
|
+ classifyName1 = strings.TrimSpace(cells[4].Value) //一级分类
|
|
|
|
+ } else if k == 5 {
|
|
|
|
+ classifyName2 = strings.TrimSpace(cells[5].Value) //二级分类
|
|
|
|
+ } else if k == 6 {
|
|
|
|
+ classifyName3 = strings.TrimSpace(cells[6].Value) //三级分类
|
|
|
|
+ } else if k == 7 {
|
|
|
|
+ tag = strings.TrimSpace(cells[7].Value) //标签
|
|
}
|
|
}
|
|
- errMsg = "导入文件异常,请下载最新导入模板文件"
|
|
|
|
- err = errors.New(errMsg)
|
|
|
|
- return
|
|
|
|
}
|
|
}
|
|
- startDate := strings.TrimSpace(cells[0].Value) //开始时间
|
|
|
|
- startDateO := startDate
|
|
|
|
- title := strings.TrimSpace(cells[1].Value) //标题
|
|
|
|
- content := strings.TrimSpace(cells[2].Value) //正文
|
|
|
|
- sourceFrom := strings.TrimSpace(cells[3].Value) //来源
|
|
|
|
- classifyName1 := strings.TrimSpace(cells[4].Value) //一级分类
|
|
|
|
- classifyName2 := strings.TrimSpace(cells[5].Value) //二级分类
|
|
|
|
- classifyName3 := strings.TrimSpace(cells[6].Value) //三级分类
|
|
|
|
- tag := strings.TrimSpace(cells[7].Value) //标签
|
|
|
|
-
|
|
|
|
- if title == "" || content == "" || sourceFrom == "" || classifyName1 == "" { //过滤空白行
|
|
|
|
- failDataList = append(failDataList, &knowledge.KnowledgeImportFail{
|
|
|
|
- //Id: 0,
|
|
|
|
- Title: title,
|
|
|
|
- Content: content,
|
|
|
|
- SourceFrom: sourceFrom,
|
|
|
|
- ClassifyFirst: classifyName1,
|
|
|
|
- ClassifySecond: classifyName2,
|
|
|
|
- ClassifyThird: classifyName3,
|
|
|
|
- ResourceType: resourceType,
|
|
|
|
- StartDate: startDateO,
|
|
|
|
- Remark: "标题或正文或来源或分类为空",
|
|
|
|
- SysUserId: strconv.Itoa(sysUserId),
|
|
|
|
- CreateTime: time.Now(),
|
|
|
|
- })
|
|
|
|
|
|
+ if title == "" && startDate == "" && content == "" && tag == "" && sourceFrom == "" && classifyName1 == "" && classifyName2 == "" && classifyName3 == "" { //过滤空白行
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
-
|
|
|
|
// 校验日期格式
|
|
// 校验日期格式
|
|
if startDate != "" {
|
|
if startDate != "" {
|
|
// 判断9:09:14日期格式是否正确
|
|
// 判断9:09:14日期格式是否正确
|