|
@@ -4,6 +4,7 @@ import (
|
|
|
"encoding/json"
|
|
"encoding/json"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"github.com/tealeg/xlsx"
|
|
"github.com/tealeg/xlsx"
|
|
|
|
|
+ "log"
|
|
|
"os"
|
|
"os"
|
|
|
"reflect"
|
|
"reflect"
|
|
|
"strconv"
|
|
"strconv"
|
|
@@ -1073,4 +1074,115 @@ func (this *OilGoodsAptitudeController) ExportExcelAll2019() {
|
|
|
this.ServeJSON()
|
|
this.ServeJSON()
|
|
|
elapsed := time.Since(t)
|
|
elapsed := time.Since(t)
|
|
|
fmt.Println(elapsed)
|
|
fmt.Println(elapsed)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// @Title get 导入excel
|
|
|
|
|
+// @Description get SampleType by token
|
|
|
|
|
+// @Success 200 {object} sampletype.SampleType
|
|
|
|
|
+// @router /importexcel [get]
|
|
|
|
|
+func (this *OilGoodsAptitudeController) ImportExcel() {
|
|
|
|
|
+
|
|
|
|
|
+ t := time.Now()
|
|
|
|
|
+
|
|
|
|
|
+ url := this.GetString("ExcelUrl")
|
|
|
|
|
+
|
|
|
|
|
+ _dir := utils.Cfg.MustValue("file", "tmplateDir") + "xlsx"
|
|
|
|
|
+ utils.DownloadFile(url, "temp.xlsx", _dir)
|
|
|
|
|
+
|
|
|
|
|
+ session := utils.DBE.NewSession()
|
|
|
|
|
+ err := session.Begin()
|
|
|
|
|
+ filePath := utils.Cfg.MustValue("file", "tmplateDir") + "xlsx/temp.xlsx"
|
|
|
|
|
+ xlFile, err := xlsx.OpenFile(filePath)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //excelFileName := "F:/物资类项目与资质对照表-2017.xlsx"
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ fmt.Printf("open failed: %s\n", err)
|
|
|
|
|
+ }
|
|
|
|
|
+ var sheet = xlFile.Sheets[0]
|
|
|
|
|
+
|
|
|
|
|
+ svc := goodsaptitude.GetOilGoodsAptitudeService(utils.DBE)
|
|
|
|
|
+ sessionsvc := goodsaptitude.GetOilGoodsAptitudeSession(session)
|
|
|
|
|
+ Fstrs := svc.GetFCode()
|
|
|
|
|
+ Fstrs = "GoodsLevel,GoodsDesc,Standard,CompanyType," + Fstrs
|
|
|
|
|
+ columnArr := strings.Split(Fstrs, ",")
|
|
|
|
|
+
|
|
|
|
|
+ codemap := make(map[string]int)
|
|
|
|
|
+ for i := 3; i < len(sheet.Rows); i++ {
|
|
|
|
|
+ cellsArr := sheet.Rows[i].Cells
|
|
|
|
|
+
|
|
|
|
|
+ parentId := 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]]
|
|
|
|
|
+ }
|
|
|
|
|
+ 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
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if strings.TrimSpace(cellsArr[3].String()) != "" {
|
|
|
|
|
+ var valstr = ""
|
|
|
|
|
+ for k := 4; k < len(cellsArr); k++ {
|
|
|
|
|
+ valstr += "'" + cellsArr[k].String() + "',"
|
|
|
|
|
+ }
|
|
|
|
|
+ valstr = strings.Trim(valstr, ",")
|
|
|
|
|
+ valstr = strings.Replace(valstr, "是", "1", -1)
|
|
|
|
|
+ log.Println(cellsArr[3].String() + "==" + valstr)
|
|
|
|
|
+ var columnstr = ""
|
|
|
|
|
+ for l := 0; l < len(cellsArr) - 4; l++ {
|
|
|
|
|
+ columnstr += columnArr[l] + ","
|
|
|
|
|
+ }
|
|
|
|
|
+ columnstr = strings.Trim(columnstr, ",")
|
|
|
|
|
+
|
|
|
|
|
+ err = sessionsvc.InsertGoodsAptitude(strconv.Itoa(classId), columnstr, valstr)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ session.Rollback()
|
|
|
|
|
+ log.Println("Rollback2")
|
|
|
|
|
+ elapsed := time.Since(t)
|
|
|
|
|
+ fmt.Println(elapsed)
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ defer func() {
|
|
|
|
|
+ session.Close()
|
|
|
|
|
+ os.Remove(filePath)
|
|
|
|
|
+ }()
|
|
|
|
|
+ session.Commit()
|
|
|
|
|
+ elapsed := time.Since(t)
|
|
|
|
|
+ fmt.Println(elapsed)
|
|
|
}
|
|
}
|