|
|
@ -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 |
|
|
|
} |