Browse Source

添加导出顺引页面数据功能

pull/240/head
zhangxin 2 years ago
parent
commit
f6a328febf
2 changed files with 121 additions and 0 deletions
  1. +2
    -0
      services/pln/ToyotaCalloff.service.go
  2. +119
    -0
      services/pln/implments/ToyotaCalloff.service.impl.go

+ 2
- 0
services/pln/ToyotaCalloff.service.go View File

@ -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)
}
/******************************************************************************


+ 119
- 0
services/pln/implments/ToyotaCalloff.service.impl.go View File

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

Loading…
Cancel
Save