Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg
| | |
| | | |
| | | // ç©ºææ¶æ°éï¼ã350bar MQBææ¶æ»æ°é - ææ350bar MQBæ»åºå / å
è£
容é-客æ·åºææ¶æ°éã* é¿æ¥å¤ç§åºç©ºææ¶æ¯ä¾ |
| | | plannedInventory := sum( macroPlan, Product_MP.ProductInStockingPoint_MP.ProductInStockingPointInPeriod, tempPISPIP, |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().IsLeaf() and |
| | | exists( tempPISPIP.ProductInStockingPoint_MP().Product_MP(), AllParent.AsParent, tempPMP, tempPMP.ID() = "å卿º" ) and |
| | | tempPISPIP.ProductInStockingPoint_MP().StockingPointID() = "é¿æ¥å¤ç§åº" and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().Generation() = ccerr.Generation() and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().MQBMLB() = ccerr.MLB_MQB() and |
| | | tempPISPIP.Start().Date() >= ccerc.StartDate() and |
| | | tempPISPIP.End().Date() <= lastDayOfThisMonth, |
| | | tempPISPIP.PlannedInventoryLevelEnd() ); |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().IsLeaf() and |
| | | exists( tempPISPIP.ProductInStockingPoint_MP().Product_MP(), AllParent.AsParent, tempPMP, tempPMP.ID() = "å卿º" ) and |
| | | //tempPISPIP.ProductInStockingPoint_MP().StockingPointID() = "大è¿å卿ºçé¿æ¥å¤ç§åº" and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().Generation() = ccerr.Generation() and |
| | | tempPISPIP.ProductInStockingPoint_MP().Product_MP().MQBMLB() = ccerr.MLB_MQB() and |
| | | tempPISPIP.Start().Date().Year() = ccerc.StartDate().Year() and |
| | | tempPISPIP.Start().Date().Month() = ccerc.StartDate().Month(), |
| | | tempPISPIP.PlannedInventoryLevelEnd() ) / ( ccerc.StartDate().StartOfNextMonth() - ccerc.StartDate() ); |
| | | cell.PackagingCapacity( guard( lce.PackagingCapacity(), 1 ) ); |
| | | cell.PlannedInventory( plannedInventory ); |
| | | cell.NumberOfEmptyShelves( [Number] guard( ( cell.TotalQuantityOfMaterialRacks() - ( plannedInventory / lce.PackagingCapacity() ) - guard( mrcc.Quantity(), 0 ) ) * guard( mrpc.Quantity(), 1 ), 0 ) ); |
| | | if ( ccerr.Generation() = "350bar" and ccerr.MLB_MQB() = "MQB" ) { |
| | | cell.NumberOfEmptyShelves( [Number] guard( ( cell.TotalQuantityOfMaterialRacks() - ( plannedInventory / lce.PackagingCapacity() ) - guard( mrcc.Quantity(), 0 ) ) * guard( mrpc.Quantity(), 1 ), 0 ) ); |
| | | } else { |
| | | cell.NumberOfEmptyShelves( [Number] guard( cell.TotalQuantityOfMaterialRacks() - ( plannedInventory / lce.PackagingCapacity() ), 0 ) ); |
| | | } |
| | | |
| | | // å¤ç§åºå
¥åºè´¹ç¨ï¼å卿ºéé / å
è£
容é[åä¸åæ´] * ææ¶å
¥åºåä»·ï¼ |
| | | engineSales := sum( macroPlan, FSImportData, tempFSID, |
| | |
| | | |
| | | // å¤ç§åºä»å¨è´¹ç¨ï¼ã350bar MQBææ¶æ»æ°é - ææ350bar MQBæ»åºå / å
è£
容é - 客æ·åºææ¶æ°éã* é¿æ¥å¤ç§åºç©ºææ¶æ¯ä¾*ææ¶ä»å¨åä»·ãå卿ºåºååActual inventorieséåå°é¿æ¥å¤ç§åºè¯¥å卿ºçä»å¨éï¼ææ¶æ»æ°ééè¦æå¨ç»´æ¤ã |
| | | cell.UnitPriceOfEmptyShelfStorage( lcmr.StoragePrice() ); |
| | | cell.RentalWarehouseStorageFees( [Number] guard( ( cell.TotalQuantityOfMaterialRacks() - [Number]( plannedInventory / lce.PackagingCapacity() ) - guard( mrcc.Quantity(), 0 ) ) * guard( mrpc.Quantity(), 1 ) * lcmr.StoragePrice(), 0 ) ); |
| | | if ( ccerr.Generation() = "350bar" and ccerr.MLB_MQB() = "MQB" ) { |
| | | cell.RentalWarehouseStorageFees( [Number] guard( ( cell.TotalQuantityOfMaterialRacks() - ceil( plannedInventory / lce.PackagingCapacity() ) - guard( mrcc.Quantity(), 0 ) ) * guard( mrpc.Quantity(), 1 ) * lcmr.StoragePrice() * ( ccerc.StartDate().StartOfNextMonth() - ccerc.StartDate() ), 0 ) ); |
| | | } else { |
| | | cell.RentalWarehouseStorageFees( [Number] guard( ( cell.TotalQuantityOfMaterialRacks() - ceil( plannedInventory / lce.PackagingCapacity() ) ) * lcmr.StoragePrice()* ( ccerc.StartDate().StartOfNextMonth() - ccerc.StartDate() ), 0 ) ); |
| | | } |
| | | |
| | | // æ¸
æ´è´¹ç¨ï¼å卿ºå
¥åºé / å
è£
容é * ææ¶æ¸
æ´åä»·ãå卿ºå
¥åºéåå卿ºééï¼å
è£
容éåèªå卿ºææ¬è¡¨ãææ¶æ¸
æ´åä»·åææ¶ææ¬è¡¨ã |
| | | cell.CleaningCost( [Number] ( engineProductions / guard( lce.PackagingCapacity(), 1 ) * lcmr.CleanPrice() ) ); |
| | |
| | | |
| | | // DLå¤ç§åºæ¸
æ´è´¹ç¨ï¼å卿ºå
¥åºé / å
è£
容é * ææ¶æ¸
æ´åä»·ãå卿ºå
¥åºéåå卿ºééï¼å
è£
容éåèªå卿ºææ¬è¡¨ãææ¶æ¸
æ´åä»·åææ¶ææ¬è¡¨ã |
| | | cell.CleaningCost( [Number] ( guard( outboundQuantity / lce.PackagingCapacity(), 0 ) * guard( lcmrDL.CleanPrice(), 1 ) ) ); |
| | | |
| | | // é¢è®¡æ»è´¹ç¨ |
| | | cell.EstimatedTotalCost( cell.CCStorageFeesForRentedWarehouses() + cell.CCOutboundExpensesForRentedWarehouses() + cell.CCRentalWarehouseStorageFees() + cell.CCLineHaulCost() + |
| | | cell.CCShortDistanceTransportationCosts() + cell.DLStorageFeesForRentedWarehouses() + cell.DLOutboundExpensesForRentedWarehouses() + |
| | | cell.DLExternalRentalWarehouseTransportationCosts() + cell.DLRentalWarehouseStorageFees() + cell.CleaningCost() ); |
| | | |
| | | |
| | | // 大è¿å¤ç§åºææ¶è´¹ç¨ |
| | | cell.DLRentalWarehouseMaterialRackCost( cell.DLStorageFeesForRentedWarehouses() + cell.DLOutboundExpensesForRentedWarehouses() + |
| | | cell.DLExternalRentalWarehouseTransportationCosts() ); |
| | | cell.DLExternalRentalWarehouseTransportationCosts() + cell.DLRentalWarehouseStorageFees() + cell.CleaningCost() ); |
| | | |
| | | // CCå¤ç§åºDLææ¶è´¹ç¨ |
| | | cell.CCExternalRentalWarehouseDLMaterialRackCost( cell.CCStorageFeesForRentedWarehouses() + cell.CCOutboundExpensesForRentedWarehouses() + |
| | | cell.CCRentalWarehouseStorageFees() + cell.CCShortDistanceTransportationCosts() ); |
| | | cell.CCShortDistanceTransportationCosts() + cell.CCCleaningCost() ); |
| | | |
| | | // é¢è®¡æ»è´¹ç¨ |
| | | cell.EstimatedTotalCost( cell.CCStorageFeesForRentedWarehouses() + cell.CCOutboundExpensesForRentedWarehouses() + cell.CCLineHaulCost() + cell.CCCleaningCost() + |
| | | cell.CCShortDistanceTransportationCosts() + cell.DLStorageFeesForRentedWarehouses() + cell.DLOutboundExpensesForRentedWarehouses() + |
| | | cell.DLExternalRentalWarehouseTransportationCosts() + cell.DLRentalWarehouseStorageFees() + cell.CleaningCost() ); |
| | | |
| | | // ç³»æ° |
| | | cell.Coefficient( 1.05 ); |
| | |
| | | AssemblyOnlinePlanPPPSPush::GenerateData( this, macroplan, executor ); |
| | | } |
| | | if ( isinventoryplan ) { // 计ååºåæ°æ® |
| | | InterfaceDataset::PushPlanInventoryData( macroplan, this ); |
| | | InterfaceDataset::PushPlanInventoryData( macroplan, this, executor ); |
| | | } |
| | | *] |
| | | } |
| | |
| | | #parent: #root |
| | | StaticMethod PushPlanInventoryData ( |
| | | const MacroPlan macroPlan, |
| | | InterfaceDataset interfaceDataset |
| | | InterfaceDataset interfaceDataset, |
| | | String executor |
| | | ) |
| | | { |
| | | Description: 'åé计ååºåæ°æ®æ¥å£' |
| | |
| | | [* |
| | | table := selectobject( interfaceDataset, InventoryPlanArchiveVersion, version, not version.IsShow() ); |
| | | |
| | | interfaceTime := DateTime::ActualTime().Format( "Y-M2-D2 h2:m:s" ); |
| | | totalRow := 0; |
| | | interfaceTime := DateTime::ActualTime().Format( "Y-M2-D2 H2:m:s" ); |
| | | |
| | | jsonarray := JSON::Array(); |
| | | |
| | |
| | | .Add( "fac", ifexpr( r.Unit().Regex( "CC" ), "CC", "DL" ) ) |
| | | .Add( "interfaceTime", interfaceTime ).Build(); |
| | | jsonarray.Add( idsjson ); |
| | | totalRow++; |
| | | } |
| | | } |
| | | } |
| | | |
| | | requestbody := jsonarray.Build().AsString(); |
| | | info( requestbody ); |
| | | //loginfo := owner.InterfaceLoginfo( relnew, ExecuteUser := executor |
| | | // , Name := Translations::InterfaceDataset_CustomerDemandPPAIDS_Name() |
| | | // , InterfaceDateTime := DateTime::ActualTime() |
| | | // , Message := '客æ·éæ±ï¼PPA+IDSï¼' |
| | | // , RequestBody := requestbody); |
| | | ////error( '--------------------', requestbody ); |
| | | //data := InterfaceLoginfo::CallInterfaceForDataCenter( owner, loginfo ); |
| | | //info( '----------------', data.AsString() ); |
| | | |
| | | //info( requestbody ); |
| | | |
| | | loginfo := interfaceDataset.InterfaceLoginfo( relnew, |
| | | ExecuteUser := executor, |
| | | Name := "Plan inventory data", |
| | | InterfaceDateTime := DateTime::ActualTime(), |
| | | Message := "计ååºåæ°æ®", |
| | | RequestBody := requestbody, |
| | | TotalRow := totalRow ); |
| | | |
| | | InterfaceLoginfo::CallInterfaceForDataCenter_PlanInventory( interfaceDataset, loginfo ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CallInterfaceForDataCenter_PlanInventory ( |
| | | InterfaceDataset owner, |
| | | InterfaceLoginfo loginfo |
| | | ) |
| | | { |
| | | Description: 'è°ç¨æ°æ®ä¸å°æ¥å£ã计ååºåã' |
| | | TextBody: |
| | | [* |
| | | address := Translations::InterfaceDataset_DataCenter_Address(); |
| | | |
| | | httpinterface := HTTPInterface::Create( address,80 ); |
| | | |
| | | httpinterface.PostMethod( true ); |
| | | httpinterface.URL( "/api/plan-stock/saveList" ); |
| | | httpinterface.MediaType( Translations::InterfaceDataset_ContentType() ); |
| | | httpinterface.AddHeader( "clientId", Translations::InterfaceDataset_DataCenter_ClientId() ); |
| | | httpinterface.AddHeader( "clientSecret", Translations::InterfaceDataset_DataCenter_ClientSecret() ); |
| | | |
| | | try { |
| | | httpinterface.Call( loginfo.RequestBody() ); |
| | | |
| | | result := httpinterface.Result(); |
| | | |
| | | loginfo.Response( result ); |
| | | loginfo.Success( true ); |
| | | } onerror { |
| | | loginfo.ReturnMsg( e.GeneralInformation() ); |
| | | } |
| | | |
| | | // åç»å
Œ
±å¤ç |
| | | loginfo.FinishTime( DateTime::ActualTime() ); |
| | | |
| | | if ( loginfo.Success() ) { |
| | | resultJson := JSON::Parse( loginfo.Response() ); |
| | | code := resultJson.Get( "code" ).GetNumber(); |
| | | msg := resultJson.Get( "message" ).GetString(); |
| | | |
| | | loginfo.ReturnMsg( msg ); |
| | | |
| | | if ( code = 200 ) { |
| | | loginfo.ReturnSuccess( true ); |
| | | loginfo.UpdateLast(); |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | } |
| | | if( type = "attribute" ){ |
| | | // columnXML0_1 := "<column><name>Sales Segment</name><type>String</type>"; |
| | | // columnXML0_2 := "<column><name>Generation</name><type>String</type>"; |
| | | // columnXML0_3 := "<column><name>MQB/MLB</name><type>String</type>"; |
| | | // columnXML0_4 := "<column><name>åç</name><type>String</type>"; |
| | | columnXML0_2 := "<column><name>Generation</name><type>String</type>"; |
| | | columnXML0_3 := "<column><name>MQB/MLB</name><type>String</type>"; |
| | | columnXML0_4 := "<column><name>åç</name><type>String</type>"; |
| | | |
| | | columnXML1 := "<column><name>Line</name><type>String</type>"; |
| | | columnXML2 := "<column><name>Attribute</name><type>String</type>"; |
| | |
| | | cellXML := '<cell value="' + cell.LocalRow().Name() + '"/>' |
| | | columnXML1 := columnXML1 + cellXML; |
| | | |
| | | product := select( macroPlan,Product_MP,product,product.ID() = cell.LocalRow().ProductID() ); |
| | | if( not isnull( product )){ |
| | | cellXML0_2 := '<cell value="' + product.Generation() + '"/>'; |
| | | cellXML0_3 := '<cell value="' + product.MQBMLB() + '"/>'; |
| | | cellXML0_4 := '<cell value="' + product.Power() + '"/>'; |
| | | columnXML0_2 := columnXML0_2 + cellXML0_2; |
| | | columnXML0_3 := columnXML0_3 + cellXML0_3; |
| | | columnXML0_4 := columnXML0_4 + cellXML0_4; |
| | | }else{ |
| | | cellXML0_2 := '<cell value=" "/>'; |
| | | cellXML0_3 := '<cell value=" "/>'; |
| | | cellXML0_4 := '<cell value=" "/>'; |
| | | columnXML0_2 := columnXML0_2 + cellXML0_2; |
| | | columnXML0_3 := columnXML0_3 + cellXML0_3; |
| | | columnXML0_4 := columnXML0_4 + cellXML0_4; |
| | | } |
| | | |
| | | flag := false; |
| | | }else{ |
| | | cellXML := '<cell value=" "/>' |
| | | columnXML1 := columnXML1 + cellXML; |
| | | |
| | | // cellXML0_1 := '<cell value=" "/>' |
| | | // columnXML0_1 := columnXML0_1 + cellXML0_1; |
| | | |
| | | cellXML0_2 := '<cell value=" "/>'; |
| | | cellXML0_3 := '<cell value=" "/>'; |
| | | cellXML0_4 := '<cell value=" "/>'; |
| | | columnXML0_2 := columnXML0_2 + cellXML0_2; |
| | | columnXML0_3 := columnXML0_3 + cellXML0_3; |
| | | columnXML0_4 := columnXML0_4 + cellXML0_4; |
| | | } |
| | | cellXML := '<cell value="' + e + '"/>' |
| | | columnXML2 := columnXML2 + cellXML; |
| | | } |
| | | } |
| | | columnXML := columnXML1 + "</column>" + columnXML2 + "</column>"; |
| | | columnXML := columnXML1 + "</column>" + columnXML0_2 + "</column>" + columnXML0_3 + "</column>" + columnXML0_4 + "</column>" + columnXML2 + "</column>"; |
| | | } |
| | | |
| | | return columnXML; |
| | |
| | | TypeSpecialization LocalCell_OfflinePlanComparison |
| | | { |
| | | #keys: '2[412672.1.76654683][412672.1.76654682]' |
| | | Description: 'ä¸çº¿è®¡åå¯¹æ¯æ¥è¡¨' |
| | | Description: 'ä¸çº¿è®¡åå¯¹æ¯æ¥è¡¨_ç产计ååæ´' |
| | | Parent: LocalCell |
| | | StructuredName: 'LocalCell_OfflinePlanComparisons' |
| | | } |