From f6a328febfb8972d9368a46456207d4262d7c7b9 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Mon, 4 Jul 2022 11:09:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=BC=E5=87=BA=E9=A1=BA?= =?UTF-8?q?=E5=BC=95=E9=A1=B5=E9=9D=A2=E6=95=B0=E6=8D=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/pln/ToyotaCalloff.service.go | 2 + .../implments/ToyotaCalloff.service.impl.go | 119 ++++++++++++++++++ 2 files changed, 121 insertions(+) diff --git a/services/pln/ToyotaCalloff.service.go b/services/pln/ToyotaCalloff.service.go index bd1f399..31e4c7b 100644 --- a/services/pln/ToyotaCalloff.service.go +++ b/services/pln/ToyotaCalloff.service.go @@ -234,6 +234,8 @@ type ToyotaCalloffService interface { * ******************************************************************************/ AnalysisAgain(user *global.User, demandId string) error + // ExportPageData 导出页面数据 + ExportPageData(user *global.User, urlParameters map[string]string) (filepath string, err error) } /****************************************************************************** diff --git a/services/pln/implments/ToyotaCalloff.service.impl.go b/services/pln/implments/ToyotaCalloff.service.impl.go index 1e80ab1..6e16b65 100644 --- a/services/pln/implments/ToyotaCalloff.service.impl.go +++ b/services/pln/implments/ToyotaCalloff.service.impl.go @@ -11,6 +11,7 @@ import ( "LAPP_ACURA_MOM_BACKEND/global" "LAPP_ACURA_MOM_BACKEND/grmi" "LAPP_ACURA_MOM_BACKEND/infra/logger" + baseMeta "LAPP_ACURA_MOM_BACKEND/meta/base" meMeta "LAPP_ACURA_MOM_BACKEND/meta/me" meta "LAPP_ACURA_MOM_BACKEND/meta/pln" baseModel "LAPP_ACURA_MOM_BACKEND/models/base" @@ -22,6 +23,7 @@ import ( "io/ioutil" "os" "path" + "reflect" "regexp" "strconv" "strings" @@ -1114,3 +1116,120 @@ func (impl *ToyotaCalloffServiceImplement) AnalysisAgain(user *global.User, dema _ = session.Commit() return nil } + + +// ExportPageData 导出页面数据 +func (impl *ToyotaCalloffServiceImplement) ExportPageData(user *global.User, urlParameters map[string]string) (filepath string, err error) { + + grmi.Log(user, "/services/pln/implments/ToyotaCalloff.service.impl.go", "ExportPageData", "导出页面数据") + + condition := DefaultConditionOfToyotaCalloffAndPaging + engine := db.Eloquent.Master() + session := engine.NewSession() + defer session.Close() + tolnameDao := baseDal.NewTabColNameDAO(session, user.UserId) + _, exist := urlParameters["Parsed"] + if !exist { + urlParameters["Parsed"] = "-1" + } + + predicates, err := condition.BuildPredicates(urlParameters) + if err != nil { + return + } + start, exist := urlParameters["start"] + if exist { + start += " 00:00:00" + _, err = time.ParseInLocation(grmi.DateTimeOutFormat, start, utils.TimezoneLocation) + if err != nil { + err = grmi.NewBusinessError("开始日期格式错误") + return + } + p := grmi.Predicate{ + ColumnName: meta.ToyotaCalloff_OrderTime.ColumnName, + PredicateType: func(predicate grmi.Predicate) (string, error) { + return fmt.Sprintf(" and %s >= ?", predicate.ColumnName), nil + }, + Values: []interface{}{start}, + } + predicates = append(predicates, p) + } + end, exist := urlParameters["end"] + if exist { + end += " 23:59:59" + _, err = time.ParseInLocation(grmi.DateTimeOutFormat, start, utils.TimezoneLocation) + if err != nil { + err = grmi.NewBusinessError("结束日期格式错误") + return + } + p := grmi.Predicate{ + ColumnName: meta.ToyotaCalloff_OrderTime.ColumnName, + PredicateType: func(predicate grmi.Predicate) (string, error) { + return fmt.Sprintf(" and %s <= ?", predicate.ColumnName), nil + }, + Values: []interface{}{end}, + } + predicates = append(predicates, p) + } + dao := dal.NewToyotaCalloffDAO(session, user.PlantNr, user.UserId) + condition.Fill(urlParameters) + result, err := dao.SelectAndPaging(condition.Paging, predicates, condition.OrderByFields) + if err != nil { + return "", err + } + data := result.Records.([]model.ToyotaCalloff) + tabNameLi, err := tolnameDao.OriginSelect([]grmi.Predicate{ + baseMeta.TabColName_TabName.NewPredicate(grmi.Equal, "ToyotaCalloff"), + }, nil) + if err != nil { + return "", grmi.NewBusinessError("查询翻译数据失败, 错误:" + err.Error()) + } + tabNameMap := make(map[string]string) + for _, item := range tabNameLi { + tabNameMap[item.ColName] = item.TextLabel + } + stdefDao := baseDal.NewStdefDAO(session, user.UserId) + stdefLi, err := stdefDao.Select([]grmi.Predicate{ + baseMeta.Stdef_StatId.NewPredicate(grmi.Equal, "PLN_ToyotaCalloff-Parsed"), + }, nil) + if err != nil { + return "", grmi.NewBusinessError("查询翻译数据失败, 错误:" + err.Error()) + } + stdefMap := make(map[string]string) + for _, item := range stdefLi { + stdefMap[item.StdefTyp] = item.Bez + } + li := make([]interface{}, 0, len(data)) + for _, item := range data { + parsed, exist := stdefMap[strconv.Itoa(item.Parsed)] + if !exist { + parsed = strconv.Itoa(item.Parsed) + } + exportItem := model.ToyotaCalloffExcel{ + PlantNr: item.PlantNr, + DemandId: item.DemandId, + SupplierCode: item.SupplierCode, + ProjectId: item.ProjectId, + ProductFamilyId: item.ProductFamilyId, + TotalQty: item.TotalQty, + CheckSequence: item.CheckSequence, + Parsed: parsed, + OrderTime: item.OrderTime.Restore().Format(grmi.DateTimeOutFormat), + OrderShift: item.OrderShift, + } + li = append(li, exportItem) + } + head := make([]string, 0) + var exportItem model.ToyotaCalloffExcel + typeOf := reflect.TypeOf(exportItem) + for i := 0; i < typeOf.NumField(); i++ { + name, exist := tabNameMap[typeOf.Field(i).Name] + if !exist { + head = append(head, typeOf.Field(i).Name) + } else { + head = append(head, name,) + } + } + filepath, err = grmi.SaveExcelFile(li, head, "Sheet1", "顺引") + return +} \ No newline at end of file