SJA工艺
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

77 lines
1.9 KiB

package controllers
import (
"LAPP_SJA_ME/utils"
"LAPP_SJA_ME/web/middleware/jwts"
"LAPP_SJA_ME/web/models"
"LAPP_SJA_ME/web/supports"
"github.com/kataras/iris"
"log"
"time"
)
// TOD引擎
func UploadLab(ctx iris.Context) {
user, ok := jwts.ParseToken(ctx)
utils.TrimStruct(user, *user)
if !ok {
supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
return
}
var (
lab *models.LAB
err error
)
//日志
logs := new(models.LeitServerLog)
logs.File = "/controllers/PlnForecastLanding_controller.go"
logs.Level = "info"
logs.Function = "UpfilePlnForecastLanding"
logs.Message = "上传预测报表文件"
logs.Operator = user.Userid
logs.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
logs.InsertRecord()
//获取通过iris.WithPostMaxMemory获取的最大上传值大小。
maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
err = ctx.Request().ParseMultipartForm(maxSize)
if err != nil {
ctx.StatusCode(iris.StatusInternalServerError)
ctx.WriteString(err.Error())
return
}
form := ctx.Request().MultipartForm
files := form.File["upload[]"]
savePath := ""
filename := ""
for _, file := range files {
filename = file.Filename
savePath = "web/public/uploadxlsx/" + filename
// 上传文件至指定目录
err := utils.SaveUploadedFile(file, savePath)
if err != nil {
return
}
}
savePath,_ = utils.GetCurrentPath(savePath)
// 初始化
lab = &models.LAB{}
if err = models.ParseLabEdi(savePath, lab); err != nil {
log.Printf("Failed to parse due to: %v", err)
supports.Error(ctx, iris.StatusBadRequest, "数据解析失败", nil)
return
}
tab := new(models.PlnForecastLanding)
tab.Finr = user.Pid
tab.Adddate = utils.TimeFormat(time.Now(),"yyyyMMdd")
err = tab.SaveParseResult(filename, lab)
if err != nil {
supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil)
return
}
supports.Ok(ctx, supports.OptionSuccess, "")
return
}