| | |
| | | operation.ReceiverPhone = req.Phone |
| | | operation.ReceiverAddr = req.Address |
| | | operation.Source = req.Source |
| | | operation.OperationSource = constvar.OperationSource(req.OperationSource) |
| | | operation.CompanyID = int(req.ClientId) |
| | | operation.CompanyName = req.ClientName |
| | | if req.DeliverType == 1 { |
| | |
| | | "wms_operation.number,wms_operation.waybill_number, logistic_company.name, wms_operation.base_operation_type, wms_operation.status, wms_operation.created_at"). |
| | | Joins("left join wms_operation on wms_operation.id = wms_operation_details.operation_id"). |
| | | Joins("left join logistic_company on logistic_company.id = wms_operation.logistic_company_id"). |
| | | Where("wms_operation.source_number = ?", req.Number). |
| | | Where("wms_operation.sales_details_number = ?", req.Number). |
| | | Where("wms_operation.base_operation_type in ?", []constvar.BaseOperationType{ |
| | | constvar.BaseOperationTypeIncoming, constvar.BaseOperationTypeOutgoing}). |
| | | Where("wms_operation.status in ?", []constvar.OperationStatus{constvar.OperationStatus_Ready, constvar.OperationStatus_Finish}) |
| | |
| | | } |
| | | |
| | | func (s *Server) OrderProductOutput(ctx context.Context, req *OrderProductOutputRequest) (resp *OrderProductOutputResponse, err error) { |
| | | resp = new(OrderProductOutputResponse) |
| | | if req.OrderNumber == "" || len(req.Products) == 0 { |
| | | return nil, errors.New("参数缺失") |
| | | } |
| | |
| | | } else { |
| | | locationSendAmount = productAmount |
| | | } |
| | | if locationSendAmount.LessThanOrEqual(decimal.Zero) { |
| | | continue |
| | | } |
| | | productInfoList = append(productInfoList, &service.ProductInfo{ |
| | | ProductID: productNumber, |
| | | Amount: locationSendAmount, |
| | |
| | | productHasSendAmount[productNumber] = productHasSendAmount[productNumber].Add(locationSendAmount) |
| | | } |
| | | outputInfoList = append(outputInfoList, &service.OutputInfo{ |
| | | LocationID: int(locationID), |
| | | WarehouseID: int(LocationIDWarehouseIDMap[locationID]), |
| | | Products: productInfoList, |
| | | OperationID: 0, |
| | | SourceNumber: req.OrderNumber, |
| | | LocationID: int(locationID), |
| | | WarehouseID: int(LocationIDWarehouseIDMap[locationID]), |
| | | Products: productInfoList, |
| | | OperationID: 0, |
| | | SourceNumber: req.OrderNumber, |
| | | SaleDetailsNumber: req.OrderNumber, |
| | | }) |
| | | } |
| | | |
| | | err = service.AddOutputOperations(outputInfoList) |
| | | |
| | | if err != nil { |
| | | logx.Errorf("OrderProductOutput AddOutputOperations err:%v", err) |
| | | return nil, err |
| | | } |
| | | |
| | | resp.Code = 1 |
| | | resp.Msg = "success" |
| | | return nil, nil |
| | | return resp, nil |
| | | } |