|
|
@ -209,7 +209,7 @@ func (impl *CustomizedQueryServiceImplement) querySerialOrdersWithMapping(user * |
|
|
|
{ |
|
|
|
query := session.Table(jitMeta.PackTemplateItemLst.TableName) |
|
|
|
query = query.Select(fmt.Sprintf("%s.*", jitMeta.PackTemplateItemLst.TableName)) |
|
|
|
query = query.Join("INNER", jitMeta.PackTemplate.TableName, fmt.Sprintf("%s = %s and %s = %s", jitMeta.PackTemplateItemLst_PlantNr.ColumnName, jitMeta.PackTemplateItemLst_PlantNr.ColumnName, jitMeta.PackTemplateItemLst_PackTemplateId.ColumnName, jitMeta.PackTemplateItemLst_PackTemplateId.ColumnName)) |
|
|
|
query = query.Join("INNER", jitMeta.PackTemplate.TableName, fmt.Sprintf("%s = %s and %s = %s", jitMeta.PackTemplateItemLst_PlantNr.ColumnName, jitMeta.PackTemplate_PlantNr.ColumnName, jitMeta.PackTemplateItemLst_PackTemplateId.ColumnName, jitMeta.PackTemplate_PackTemplateId.ColumnName)) |
|
|
|
query = query.Where(fmt.Sprintf("%s = ?", jitMeta.PackTemplate_PlantNr.ColumnName), user.PlantNr) |
|
|
|
query = query.Where(fmt.Sprintf("%s = 1", jitMeta.PackTemplate_EnabledToggle.ColumnName)) |
|
|
|
if projectId != "" { |
|
|
@ -228,8 +228,7 @@ func (impl *CustomizedQueryServiceImplement) querySerialOrdersWithMapping(user * |
|
|
|
if !ok { |
|
|
|
group = make([]*jitModel.PackTemplateItemLst, 0, 10) |
|
|
|
} |
|
|
|
group = append(group, &templateItems[i]) |
|
|
|
templateItemGroups[templateItem.PackTemplateId] = group |
|
|
|
templateItemGroups[templateItem.PackTemplateId] = append(group, &templateItems[i]) |
|
|
|
} |
|
|
|
// 计算系统中现有派生
|
|
|
|
productFamilyKeyMapping = make(map[string][]string) |
|
|
@ -302,7 +301,6 @@ func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryQuery(user *g |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
productFamilyStatisticses := make([]ProductFamilyInventoryQuery_ProductFamilyStatistics, 0, 10) |
|
|
|
productFamilyStatisticsMapping := make(map[string]*ProductFamilyInventoryQuery_ProductFamilyStatistics) |
|
|
|
|
|
|
|
for _, packTemplateIdGroup := range productFamilyKeyMapping { |
|
|
@ -314,8 +312,7 @@ func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryQuery(user *g |
|
|
|
ProductFamilyId: packTemplateId, |
|
|
|
PackOrders: make([]ProductFamilyInventoryQuery_PackOrderSummary, 0, 10), |
|
|
|
} |
|
|
|
productFamilyStatisticses = append(productFamilyStatisticses, productFamilyStatistics) |
|
|
|
productFamilyStatisticsMapping[packTemplateId] = &productFamilyStatisticses[len(productFamilyStatisticses)-1] |
|
|
|
productFamilyStatisticsMapping[packTemplateId] = &productFamilyStatistics |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -332,11 +329,6 @@ func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryQuery(user *g |
|
|
|
continue |
|
|
|
} |
|
|
|
delete(serialOrderGroups, packOrder.PackOrder.PackOrderId) |
|
|
|
// 没找到派生
|
|
|
|
productFamilyStatistics, ok := productFamilyStatisticsMapping[packOrder.ProductFamilyKey] |
|
|
|
if !ok { |
|
|
|
continue |
|
|
|
} |
|
|
|
seats := make([]ProductFamilyInventoryQuery_SeatSummary, 0, 10) |
|
|
|
for _, serialOrder := range serialOrderGroup { |
|
|
|
if serialOrderId == "" || serialOrderId == serialOrder.SerialOrder.SerialOrderId { |
|
|
@ -353,8 +345,12 @@ func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryQuery(user *g |
|
|
|
if packOrder.IsInventory() { |
|
|
|
inventoryQuantity = float64(len(seats)) |
|
|
|
} |
|
|
|
productFamilyStatisticsMapping[packOrder.ProductFamilyKey].InventoryQuantity += inventoryQuantity |
|
|
|
productFamilyStatisticsMapping[packOrder.ProductFamilyKey].PackOrders = append(productFamilyStatistics.PackOrders, ProductFamilyInventoryQuery_PackOrderSummary{ |
|
|
|
// 没找到派生
|
|
|
|
packTemplateIds, ok := productFamilyKeyMapping[packOrder.ProductFamilyKey] |
|
|
|
if !ok { |
|
|
|
continue |
|
|
|
} |
|
|
|
packOrderSummary := ProductFamilyInventoryQuery_PackOrderSummary{ |
|
|
|
PackOrderId: packOrder.PackOrder.PackOrderId, |
|
|
|
InventoryQuantity: inventoryQuantity, |
|
|
|
PackStatus: packOrder.PackStatus(), |
|
|
@ -363,21 +359,27 @@ func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryQuery(user *g |
|
|
|
ShipTime: shipOrder.ShipTime(), |
|
|
|
ShipType: shipOrder.ShipType, |
|
|
|
Seats: seats, |
|
|
|
}) |
|
|
|
} |
|
|
|
for _, packTemplateId := range packTemplateIds { |
|
|
|
// 没找到模板
|
|
|
|
productFamilyStatistics, ok := productFamilyStatisticsMapping[packTemplateId] |
|
|
|
if !ok { |
|
|
|
continue |
|
|
|
} |
|
|
|
productFamilyStatisticsMapping[packTemplateId].InventoryQuantity += inventoryQuantity |
|
|
|
productFamilyStatisticsMapping[packTemplateId].PackOrders = append(productFamilyStatistics.PackOrders, packOrderSummary) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
packOrderGroup, ok := packOrderGroups[""] // 未关联发运单的包装单
|
|
|
|
if ok { |
|
|
|
for _, packOrder := range packOrderGroup { |
|
|
|
// 没找到座椅
|
|
|
|
serialOrderGroup, ok := serialOrderGroups[packOrder.PackOrder.PackOrderId] |
|
|
|
if !ok { |
|
|
|
continue |
|
|
|
} |
|
|
|
delete(serialOrderGroups, packOrder.PackOrder.PackOrderId) |
|
|
|
productFamilyStatistics, ok := productFamilyStatisticsMapping[packOrder.ProductFamilyKey] |
|
|
|
if !ok { |
|
|
|
continue |
|
|
|
} |
|
|
|
seats := make([]ProductFamilyInventoryQuery_SeatSummary, 0, 10) |
|
|
|
for _, serialOrder := range serialOrderGroup { |
|
|
|
if serialOrderId == "" || serialOrderId == serialOrder.SerialOrder.SerialOrderId { |
|
|
@ -394,30 +396,36 @@ func (impl *CustomizedQueryServiceImplement) ProductFamilyInventoryQuery(user *g |
|
|
|
if packOrder.IsInventory() { |
|
|
|
inventoryQuantity = float64(len(seats)) |
|
|
|
} |
|
|
|
productFamilyStatisticsMapping[packOrder.ProductFamilyKey].InventoryQuantity += inventoryQuantity |
|
|
|
productFamilyStatisticsMapping[packOrder.ProductFamilyKey].PackOrders = append(productFamilyStatistics.PackOrders, ProductFamilyInventoryQuery_PackOrderSummary{ |
|
|
|
// 没找到派生
|
|
|
|
packTemplateIds, ok := productFamilyKeyMapping[packOrder.ProductFamilyKey] |
|
|
|
if !ok { |
|
|
|
continue |
|
|
|
} |
|
|
|
packOrderSummary := ProductFamilyInventoryQuery_PackOrderSummary{ |
|
|
|
PackOrderId: packOrder.PackOrder.PackOrderId, |
|
|
|
InventoryQuantity: inventoryQuantity, |
|
|
|
PackStatus: packOrder.PackStatus(), |
|
|
|
PackTime: packOrder.PackTime(), |
|
|
|
ShipOrderId: "", |
|
|
|
ShipTime: nil, |
|
|
|
ShipType: "", |
|
|
|
Seats: seats, |
|
|
|
}) |
|
|
|
} |
|
|
|
for _, packTemplateId := range packTemplateIds { |
|
|
|
// 没找到模板
|
|
|
|
productFamilyStatistics, ok := productFamilyStatisticsMapping[packTemplateId] |
|
|
|
if !ok { |
|
|
|
continue |
|
|
|
} |
|
|
|
productFamilyStatisticsMapping[packTemplateId].InventoryQuantity += inventoryQuantity |
|
|
|
productFamilyStatisticsMapping[packTemplateId].PackOrders = append(productFamilyStatistics.PackOrders, packOrderSummary) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 如果按座椅查询,则需要过滤到没有座椅的空的派生
|
|
|
|
if serialOrderId != "" { |
|
|
|
result = make([]ProductFamilyInventoryQuery_ProductFamilyStatistics, 0, 1) |
|
|
|
for _, productFamilyStatistics := range productFamilyStatisticses { |
|
|
|
if len(productFamilyStatistics.PackOrders) > 0 { |
|
|
|
result = append(result, productFamilyStatistics) |
|
|
|
} |
|
|
|
result = make([]ProductFamilyInventoryQuery_ProductFamilyStatistics, 0, 1) |
|
|
|
for _, productFamilyStatistics := range productFamilyStatisticsMapping { |
|
|
|
// 如果按座椅查询,则需要过滤到没有座椅的空的派生
|
|
|
|
if serialOrderId == "" || len(productFamilyStatistics.PackOrders) > 0 { |
|
|
|
result = append(result, *productFamilyStatistics) |
|
|
|
} |
|
|
|
} else { |
|
|
|
result = productFamilyStatisticses |
|
|
|
} |
|
|
|
|
|
|
|
return |
|
|
|