Browse Source

Merge pull request '实现了导出派生库存查询结果' (#155) from feature_CustomizedQuery into develop

Reviewed-on: http://101.201.121.115:3000/leo/LAPP_Acura_MES_Backend/pulls/155
pull/157/head
zhangxin 3 years ago
parent
commit
c2d7991d2b
1 changed files with 78 additions and 4 deletions
  1. +78
    -4
      services/report/implments/CustomizedQuery.service.impl.go

+ 78
- 4
services/report/implments/CustomizedQuery.service.impl.go View File

@ -8,8 +8,10 @@ import (
omMeta "LAPP_ACURA_MOM_BACKEND/meta/om"
jitModel "LAPP_ACURA_MOM_BACKEND/models/jit"
omModel "LAPP_ACURA_MOM_BACKEND/models/om"
"LAPP_ACURA_MOM_BACKEND/utils"
"errors"
"fmt"
"github.com/360EntSecGroup-Skylar/excelize/v2"
"github.com/go-xorm/xorm"
"sort"
"strings"
@ -472,12 +474,84 @@ func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryExportExcel(u
return
}
data := make([]interface{}, len(result))
for i, item := range result {
data[i] = item
return WriteExcelFile(result, "派生库存", "派生库存查询")
}
func WriteExcelFile(result []ProductFamilyInventoryQuery_ProductFamilyStatistics, sheetName string, prefixFilename string) (filepath string, err error) {
file := excelize.NewFile()
if sheetName != "Sheet1" {
file.NewSheet(sheetName)
file.DeleteSheet("Sheet1")
}
streamWriter, err := file.NewStreamWriter(sheetName)
if err != nil {
return
}
rowIndex := 1
if err = WriteExcelRow(streamWriter, &rowIndex, "派生号", "库存数量"); err != nil {
return
}
for _, productFamily := range result {
if err = WriteExcelRow(streamWriter, &rowIndex, productFamily.ProductFamilyId, productFamily.ProductFamilyId); err != nil {
return
}
if len(productFamily.PackOrders) > 0 {
if err = WriteExcelRow(streamWriter, &rowIndex, "", "库存数量", "包装单号", "包装状态", "包装时间", "发运单号", "发运时间", "发运模式"); err != nil {
return
}
for _, packOrder := range productFamily.PackOrders {
if err = WriteExcelRow(streamWriter, &rowIndex, "", packOrder.InventoryQuantity, packOrder.PackOrderId, packOrder.PackStatus, packOrder.PackTime, packOrder.ShipOrderId, packOrder.ShipTime, packOrder.ShipType); err != nil {
return
}
if len(packOrder.Seats) > 0 {
if err = WriteExcelRow(streamWriter, &rowIndex, "", "", "座椅条码"); err != nil {
return
}
for _, seat := range packOrder.Seats {
if err = WriteExcelRow(streamWriter, &rowIndex, "", "", seat.SerialOrderId); err != nil {
return
}
}
}
}
}
}
if err = streamWriter.Flush(); err != nil {
return
}
return SaveExcelFile(file, prefixFilename)
}
func WriteExcelRow(streamWriter *excelize.StreamWriter, rowIndex *int, rowValues ...interface{}) (err error) {
cell, _ := excelize.CoordinatesToCellName(1, *rowIndex)
if err = streamWriter.SetRow(cell, rowValues); err != nil {
return
}
*rowIndex++
return
}
return grmi.SaveExcelFile(data, []string{}, "派生库存", "派生库存查询")
func SaveExcelFile(file *excelize.File, prefixFilename string) (filepath string, err error) {
filename := utils.MakeOrderSn(prefixFilename) + ".xlsx"
dirname, err := utils.GetCurrentPath("web/public/uploadxlsx")
if err != nil {
return "", err
}
filepath = dirname + "/" + filename
err = file.SaveAs(filepath)
if err != nil {
return "", err
}
pathLi := strings.Split(filepath, "web\\")
if len(pathLi) != 2 {
return "", errors.New("导出失败,请重试")
}
return pathLi[1], nil
}
/******************************************************************************


Loading…
Cancel
Save