|
@@ -1185,15 +1185,46 @@ func (this *OilGoodsAptitudeController) ExportExcelAll2019() {
|
|
|
// @router /importexcel [get]
|
|
// @router /importexcel [get]
|
|
|
func (this *OilGoodsAptitudeController) ImportExcel() {
|
|
func (this *OilGoodsAptitudeController) ImportExcel() {
|
|
|
|
|
|
|
|
- t := time.Now()
|
|
|
|
|
|
|
|
|
|
url := this.GetString("ExcelUrl")
|
|
url := this.GetString("ExcelUrl")
|
|
|
-
|
|
|
|
|
- _dir := utils.Cfg.MustValue("file", "tmplateDir") + "xlsx"
|
|
|
|
|
- utils.DownloadFile(url, "temp.xlsx", _dir)
|
|
|
|
|
|
|
+ var errorinfo ErrorInfo
|
|
|
|
|
+ if url == "" {
|
|
|
|
|
+ errorinfo.Code = -2
|
|
|
|
|
+ errorinfo.Message = "导入失败!"
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
session := utils.DBE.NewSession()
|
|
session := utils.DBE.NewSession()
|
|
|
err := session.Begin()
|
|
err := session.Begin()
|
|
|
|
|
+ sessionsvc := goodsaptitude.GetOilGoodsAptitudeSession(session)
|
|
|
|
|
+ defer func() {
|
|
|
|
|
+ session.Close()
|
|
|
|
|
+ }()
|
|
|
|
|
+
|
|
|
|
|
+ err = sessionsvc.TruncateTable(Tmp_OilGoodsAptitudeName)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ errorinfo.Code = -2
|
|
|
|
|
+ errorinfo.Message = "导入失败!"
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = sessionsvc.TruncateTable(Tmp_OilGoodsAptitudeClassName)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ errorinfo.Code = -2
|
|
|
|
|
+ errorinfo.Message = "导入失败!"
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ _dir := utils.Cfg.MustValue("file", "tmplateDir") + "xlsx"
|
|
|
|
|
+ utils.DownloadFile(url, "temp.xlsx", _dir)
|
|
|
|
|
+ t := time.Now()
|
|
|
filePath := utils.Cfg.MustValue("file", "tmplateDir") + "xlsx/temp.xlsx"
|
|
filePath := utils.Cfg.MustValue("file", "tmplateDir") + "xlsx/temp.xlsx"
|
|
|
xlFile, err := xlsx.OpenFile(filePath)
|
|
xlFile, err := xlsx.OpenFile(filePath)
|
|
|
|
|
|
|
@@ -1205,10 +1236,10 @@ func (this *OilGoodsAptitudeController) ImportExcel() {
|
|
|
var sheet = xlFile.Sheets[0]
|
|
var sheet = xlFile.Sheets[0]
|
|
|
|
|
|
|
|
svc := goodsaptitude.GetOilGoodsAptitudeService(utils.DBE)
|
|
svc := goodsaptitude.GetOilGoodsAptitudeService(utils.DBE)
|
|
|
- sessionsvc := goodsaptitude.GetOilGoodsAptitudeSession(session)
|
|
|
|
|
Fstrs := svc.GetFCode()
|
|
Fstrs := svc.GetFCode()
|
|
|
Fstrs = "GoodsLevel,GoodsDesc,Standard,CompanyType," + Fstrs
|
|
Fstrs = "GoodsLevel,GoodsDesc,Standard,CompanyType," + Fstrs
|
|
|
columnArr := strings.Split(Fstrs, ",")
|
|
columnArr := strings.Split(Fstrs, ",")
|
|
|
|
|
+ errLineNum := ""
|
|
|
|
|
|
|
|
codemap := make(map[string]int)
|
|
codemap := make(map[string]int)
|
|
|
for i := 3; i < len(sheet.Rows); i++ {
|
|
for i := 3; i < len(sheet.Rows); i++ {
|
|
@@ -1216,76 +1247,167 @@ func (this *OilGoodsAptitudeController) ImportExcel() {
|
|
|
|
|
|
|
|
parentId := 0
|
|
parentId := 0
|
|
|
classId := 0
|
|
classId := 0
|
|
|
- for j := 0;j < 4; j++ {
|
|
|
|
|
- cellstr := cellsArr[j].String()
|
|
|
|
|
- //fmt.Printf("%s\n", cellstr)
|
|
|
|
|
- if strings.TrimSpace(cellstr) == "" {
|
|
|
|
|
- break
|
|
|
|
|
- }
|
|
|
|
|
- cellArr := strings.Fields(cellstr)
|
|
|
|
|
-
|
|
|
|
|
- //id := sessionsvc.SelectGoodsAptitudeClassCode(cellArr[0])
|
|
|
|
|
-
|
|
|
|
|
- var entity goodsaptitudeclass.Tmp_OilGoodsAptitudeClass
|
|
|
|
|
- _, has := codemap[cellArr[0]]
|
|
|
|
|
- if !has {
|
|
|
|
|
- if j != 0 {
|
|
|
|
|
- upcellstr := cellsArr[j -1].String()
|
|
|
|
|
- upcellArr := strings.Fields(upcellstr)
|
|
|
|
|
- parentId = codemap[upcellArr[0]]
|
|
|
|
|
|
|
+ cellsArrLen := len(cellsArr)
|
|
|
|
|
+ cellD := strings.TrimSpace(cellsArr[3].String())
|
|
|
|
|
+ var valstr = ""
|
|
|
|
|
+ for idx, cell := range cellsArr {
|
|
|
|
|
+ if idx < 4 {
|
|
|
|
|
+ cellstr := cell.String()
|
|
|
|
|
+ //fmt.Printf("%s\n", cellstr)
|
|
|
|
|
+ if strings.TrimSpace(cellstr) == "" {
|
|
|
|
|
+ break
|
|
|
}
|
|
}
|
|
|
- entity.Code = cellArr[0]
|
|
|
|
|
- entity.Name = cellArr[1]
|
|
|
|
|
- entity.Edition = "1"
|
|
|
|
|
- entity.ParentId = parentId
|
|
|
|
|
- entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
|
|
|
|
|
- entity.CreateBy = this.User.Realname
|
|
|
|
|
- entity.CreateOn = time.Now()
|
|
|
|
|
-
|
|
|
|
|
- _, err := sessionsvc.InsertEntityBytbl(Tmp_OilGoodsAptitudeClassName, &entity)
|
|
|
|
|
- if err != nil {
|
|
|
|
|
- session.Rollback()
|
|
|
|
|
- log.Println("Rollback1")
|
|
|
|
|
- elapsed := time.Since(t)
|
|
|
|
|
- fmt.Println(elapsed)
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- classId = entity.Id
|
|
|
|
|
- if j != 3 {
|
|
|
|
|
- codemap[cellArr[0]] = entity.Id
|
|
|
|
|
|
|
+ cellArr := strings.Fields(cellstr)
|
|
|
|
|
+
|
|
|
|
|
+ //id := sessionsvc.SelectGoodsAptitudeClassCode(cellArr[0])
|
|
|
|
|
+
|
|
|
|
|
+ var entity goodsaptitudeclass.Tmp_OilGoodsAptitudeClass
|
|
|
|
|
+ _, has := codemap[cellArr[0]]
|
|
|
|
|
+ if !has {
|
|
|
|
|
+ if idx != 0 {
|
|
|
|
|
+ upcellstr := cellsArr[idx -1].String()
|
|
|
|
|
+ upcellArr := strings.Fields(upcellstr)
|
|
|
|
|
+ parentId = codemap[upcellArr[0]]
|
|
|
|
|
+ }
|
|
|
|
|
+ entity.Code = cellArr[0]
|
|
|
|
|
+ entity.Name = cellArr[1]
|
|
|
|
|
+ entity.Edition = "1"
|
|
|
|
|
+ entity.ParentId = parentId
|
|
|
|
|
+ entity.CreateUserId, _ = utils.StrTo(this.User.Id).Int()
|
|
|
|
|
+ entity.CreateBy = this.User.Realname
|
|
|
|
|
+ entity.CreateOn = time.Now()
|
|
|
|
|
+
|
|
|
|
|
+ _, err := sessionsvc.InsertEntityBytbl(Tmp_OilGoodsAptitudeClassName, &entity)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ errLineNum += strconv.Itoa(i + 1) + ","
|
|
|
|
|
+ log.Println("Rollback1")
|
|
|
|
|
+ elapsed := time.Since(t)
|
|
|
|
|
+ fmt.Println(elapsed)
|
|
|
|
|
+ break
|
|
|
|
|
+ }
|
|
|
|
|
+ classId = entity.Id
|
|
|
|
|
+ if idx != 3 {
|
|
|
|
|
+ codemap[cellArr[0]] = entity.Id
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- if strings.TrimSpace(cellsArr[3].String()) != "" {
|
|
|
|
|
- var valstr = ""
|
|
|
|
|
- for k := 4; k < len(cellsArr); k++ {
|
|
|
|
|
- valstr += "'" + cellsArr[k].String() + "',"
|
|
|
|
|
|
|
+ if idx >= 4 {
|
|
|
|
|
+ valstr += "'" + cellsArr[idx].String() + "',"
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
+ if cellD != "" {
|
|
|
valstr = strings.Trim(valstr, ",")
|
|
valstr = strings.Trim(valstr, ",")
|
|
|
valstr = strings.Replace(valstr, "是", "1", -1)
|
|
valstr = strings.Replace(valstr, "是", "1", -1)
|
|
|
log.Println(cellsArr[3].String() + "==" + valstr)
|
|
log.Println(cellsArr[3].String() + "==" + valstr)
|
|
|
var columnstr = ""
|
|
var columnstr = ""
|
|
|
- for l := 0; l < len(cellsArr) - 4; l++ {
|
|
|
|
|
|
|
+ for l := 0; l < cellsArrLen - 4; l++ {
|
|
|
columnstr += columnArr[l] + ","
|
|
columnstr += columnArr[l] + ","
|
|
|
}
|
|
}
|
|
|
columnstr = strings.Trim(columnstr, ",")
|
|
columnstr = strings.Trim(columnstr, ",")
|
|
|
|
|
|
|
|
- err = sessionsvc.InsertGoodsAptitude(strconv.Itoa(classId), columnstr, valstr)
|
|
|
|
|
|
|
+ err = sessionsvc.InsertTmpGoodsAptitude(strconv.Itoa(classId), columnstr, valstr)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- session.Rollback()
|
|
|
|
|
|
|
+ errLineNum += strconv.Itoa(i + 1) + ","
|
|
|
log.Println("Rollback2")
|
|
log.Println("Rollback2")
|
|
|
elapsed := time.Since(t)
|
|
elapsed := time.Since(t)
|
|
|
fmt.Println(elapsed)
|
|
fmt.Println(elapsed)
|
|
|
- return
|
|
|
|
|
|
|
+ break
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
- defer func() {
|
|
|
|
|
- session.Close()
|
|
|
|
|
- os.Remove(filePath)
|
|
|
|
|
- }()
|
|
|
|
|
|
|
+ os.Remove(filePath)
|
|
|
|
|
+
|
|
|
|
|
+ if errLineNum != "" {
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ errorinfo.Code = -1
|
|
|
|
|
+ errorinfo.Message = "导入失败!错误行号:" + errLineNum
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
session.Commit()
|
|
session.Commit()
|
|
|
elapsed := time.Since(t)
|
|
elapsed := time.Since(t)
|
|
|
- fmt.Println(elapsed)
|
|
|
|
|
|
|
+ log.Println(elapsed)
|
|
|
|
|
+ errorinfo.Code = 0
|
|
|
|
|
+ errorinfo.Message = "导入成功!"
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// @Title get 清空导入的信息
|
|
|
|
|
+// @Description get SampleType by token
|
|
|
|
|
+// @Success 200 {object} sampletype.SampleType
|
|
|
|
|
+// @router /truncateimport [get]
|
|
|
|
|
+func (this *OilGoodsAptitudeController) TruncateImport() {
|
|
|
|
|
+ session := utils.DBE.NewSession()
|
|
|
|
|
+ err := session.Begin()
|
|
|
|
|
+ defer session.Close()
|
|
|
|
|
+ svc := goodsaptitude.GetOilGoodsAptitudeSession(session)
|
|
|
|
|
+ err = svc.TruncateTable(Tmp_OilGoodsAptitudeName)
|
|
|
|
|
+
|
|
|
|
|
+ var errorinfo ErrorInfo
|
|
|
|
|
+ if err != nil{
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ errorinfo.Code = -1
|
|
|
|
|
+ errorinfo.Message = "删除失败!"
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = svc.TruncateTable(Tmp_OilGoodsAptitudeClassName)
|
|
|
|
|
+ if err != nil{
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ errorinfo.Code = -1
|
|
|
|
|
+ errorinfo.Message = "删除失败!"
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ session.Commit()
|
|
|
|
|
+ errorinfo.Code = 0
|
|
|
|
|
+ errorinfo.Message = "删除成功!"
|
|
|
|
|
+ this.Data["json"] = &errorinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// @Title 将导入的数据 导入到正式表
|
|
|
|
|
+// @Description get SampleType by token
|
|
|
|
|
+// @Success 200 {object} sampletype.SampleType
|
|
|
|
|
+// @router /insertgoodsaptitude [get]
|
|
|
|
|
+func (this *OilGoodsAptitudeController) InsertGoodsAptitude() {
|
|
|
|
|
+
|
|
|
|
|
+ session := utils.DBE.NewSession()
|
|
|
|
|
+ err := session.Begin()
|
|
|
|
|
+
|
|
|
|
|
+ defer session.Close()
|
|
|
|
|
+ svc := goodsaptitude.GetOilGoodsAptitudeSession(session)
|
|
|
|
|
+ err = svc.InsertGoodsAptitude(Tmp_OilGoodsAptitudeName, OilGoodsAptitudeName)
|
|
|
|
|
+
|
|
|
|
|
+ var errinfo ErrorInfo
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ errinfo.Code = -1
|
|
|
|
|
+ errinfo.Message = "跟新失败!"
|
|
|
|
|
+ this.Data["josn"] = &errinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ err = svc.InsertGoodsAptitude(Tmp_OilGoodsAptitudeClassName, OilGoodsAptitudeClassName)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ errinfo.Code = -1
|
|
|
|
|
+ errinfo.Message = "跟新失败!"
|
|
|
|
|
+ this.Data["json"] = &errinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ session.Commit()
|
|
|
|
|
+
|
|
|
|
|
+ errinfo.Code = 0
|
|
|
|
|
+ errinfo.Message = "跟新成功!"
|
|
|
|
|
+ this.Data["json"] = &errinfo
|
|
|
|
|
+ this.ServeJSON()
|
|
|
|
|
+
|
|
|
}
|
|
}
|