Browse Source

修涨了库存查询的错误

pull/150/head
allanwei 3 years ago
parent
commit
37ac7db15f
1 changed files with 41 additions and 33 deletions
  1. +41
    -33
      services/report/implments/CustomizedQuery.service.impl.go

+ 41
- 33
services/report/implments/CustomizedQuery.service.impl.go View File

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


Loading…
Cancel
Save