Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod DoSync ( 
 | 
  MacroPlan macroPlan, 
 | 
  BusinessType businessType, 
 | 
  Boolean isKeyProduct, 
 | 
  Boolean createPurchaseSupplyMaterial, 
 | 
  GlobalOTDTable globalOTDTable 
 | 
) 
 | 
{ 
 | 
  Description: '单次同步' 
 | 
  TextBody: 
 | 
  [* 
 | 
    // yypsybs Aug-17-2023 (created) 
 | 
    // 币种和币种汇率 
 | 
    //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow ); 
 | 
    info( "Prepare to do sync" ) 
 | 
    info( "Get organ code list" ) 
 | 
    businessTypeName := businessType.BusinessTypeName().Tokenize( "," ); 
 | 
    organcodelist := selectvalues( businessType, OrganCode, organ, true, organ.OrganCodeName() ); 
 | 
     
 | 
    if( organcodelist.Size() = 0 ){ 
 | 
      organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() ); 
 | 
      } 
 | 
     
 | 
    info( "KeyProduct : " + [String]isKeyProduct ) 
 | 
    info( "Create purchase supply material : " + [String]createPurchaseSupplyMaterial ) 
 | 
     
 | 
    // 初始换-0 
 | 
    info( "Start Initial" ); 
 | 
    macroPlan.InitialUnitAndStockingPoint(); 
 | 
     
 | 
    // 单位-1 
 | 
    UnitOfMeasure_MP::DoSync( globalOTDTable,macroPlan ); 
 | 
     
 | 
    // 销售部门-2 
 | 
    SalesSegment_MP::DoSync( macroPlan, businessTypeName, globalOTDTable ); 
 | 
     
 | 
    // Unit-9  
 | 
    // 与Operation一同处理 
 | 
    //info( "BaseConversionFactor Finished, Start Operation Data Broker" ); 
 | 
    //macroPlan.Broker_OTD_Operation().Execute(); 
 | 
    info( "Operation Data Broker Finished, Start Unit Mapping" ); 
 | 
    macroPlan.MappingUnitData( businessTypeName ,globalOTDTable, organcodelist); 
 | 
     
 | 
    // 库存点-3 
 | 
    info( "Sales Segment Finished, Start Get StockingPoint From Api" ) 
 | 
    bodynumber := "2"; 
 | 
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber ); 
 | 
    address := "api-uat-sgc.tianma.cn"; 
 | 
    url := "/otdService/https/GetStockingPointsInfo"; 
 | 
    port := 443; 
 | 
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); 
 | 
    macroPlan.ApiStockingPointData( data ); 
 | 
     
 | 
    // 货币信息-4 
 | 
    info( "Get StockingPoint From Api Finished, Start Get CurrencyInfo From Api" ) 
 | 
    bodynumber := "1"; 
 | 
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber ); 
 | 
    address := "api-uat-sgc.tianma.cn"; 
 | 
    url := "/otdService/https/GetCurrenciesInfo"; 
 | 
    port := 443; 
 | 
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); 
 | 
    macroPlan.ApiCurenciesData( data ); 
 | 
     
 | 
    //货币汇率信息-5 
 | 
    info( "Get CurrencyInfo From Api Finished, Start Get CurrencyRates From Api" ) 
 | 
    bodynumber := "5"; 
 | 
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber ); 
 | 
    address := "api-uat-sgc.tianma.cn"; 
 | 
    url := "/otdService/https/GetCurrencyRatesInfo"; 
 | 
    port := 443; 
 | 
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); 
 | 
    macroPlan.ApiCurencyRatesData( data ); 
 | 
     
 | 
    // 产品物料-6 
 | 
    //info( "Get CurrencyRates From Api Finished, Start Product Data Broker" ) 
 | 
    //macroPlan.Broker_OTD_Product().Execute(); 
 | 
    info( "Product Data Broker Finished, Start Product Mapping" ); 
 | 
    //testproduct := construct( Strings ); 
 | 
    macroPlan.MappingProductData( businessTypeName, globalOTDTable,isKeyProduct ); 
 | 
     
 | 
    //单位转换-7 
 | 
    BaseConversionFactor::DoSync( macroPlan ,globalOTDTable); 
 | 
     
 | 
    // 工艺路线 + BOM-9 
 | 
    info( "Unit Finished, Start Operation Mapping" ); 
 | 
    macroPlan.MappingOperationData( businessTypeName ,globalOTDTable, organcodelist );   
 | 
    //info( "Operation Finished, Start BOM Data Broker" ); 
 | 
    //macroPlan.Broker_OTD_BOM().Execute(); 
 | 
    info( "BOM Data Broker Finished, Start BOM Mapping" ); 
 | 
    macroPlan.MappingOperationBOMData( businessTypeName, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist ); 
 | 
     
 | 
    //车道信息-10 
 | 
    info( "BOM Finished, Start Get Lanes From Api" ); 
 | 
    bodynumber := "3"; 
 | 
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber ); 
 | 
    address := "api-uat-sgc.tianma.cn"; 
 | 
    url := "/otdService/https/GetLanesInfo"; 
 | 
    port := 443; 
 | 
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); 
 | 
    macroPlan.ApiLanesData( data ); 
 | 
     
 | 
    //车道运输段-11 
 | 
    info( "Get Lanes From Api Finished, Start Get LaneLegs From Api" ); 
 | 
    bodynumber := "4"; 
 | 
    postrequestbody := macroPlan.ApiBuildPostRequestBody( bodynumber ); 
 | 
    address := "api-uat-sgc.tianma.cn"; 
 | 
    url := "/otdService/https/GetLaneLegsInfo"; 
 | 
    port := 443; 
 | 
    data := macroPlan.ApiResponesCheck( address, url, port, postrequestbody ); 
 | 
    macroPlan.ApiLaneLegsData( data ); 
 | 
     
 | 
    // 供应网络(车道)-12 
 | 
    //info( "Get Lanelegs From Api Finished, Start ProductInLane Data Broker" ); 
 | 
    //macroPlan.Broker_OTD_ProductInLane().Execute(); 
 | 
    info( "ProductInLane Data Broker Finished, Start ProductInLane Mapping" ); 
 | 
    macroPlan.MappingProductInLaneData(globalOTDTable); 
 | 
     
 | 
    // 在库库存数据-13 
 | 
    //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" ); 
 | 
    //macroPlan.Broker_OTD_ActualPISPIP().Execute(); 
 | 
    info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" ); 
 | 
    macroPlan.MappingActualPISPIPData( businessTypeName, globalOTDTable,isKeyProduct, organcodelist ); 
 | 
     
 | 
    // 在途库存-14 
 | 
    //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" ); 
 | 
    //macroPlan.Broker_OTD_ExternalSupply().Execute(); 
 | 
    info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" ); 
 | 
    macroPlan.MappingExternalSupplyData( businessTypeName, isKeyProduct ,globalOTDTable, organcodelist ); 
 | 
     
 | 
    // 库存成本-15 
 | 
    InventoryValueAndCost::DoSync( macroPlan,globalOTDTable ); 
 | 
     
 | 
    // todo 制造成本-16 
 | 
    info( "InventoryCost Finished, Start OperationCost Mapping" ); 
 | 
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypeName, organcodelist ); 
 | 
     
 | 
    // 订单预测-17 
 | 
    Forecast::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist ); 
 | 
     
 | 
    // 订单需求-18 
 | 
    CustomerOrder::DoSync( macroPlan, businessTypeName, globalOTDTable, organcodelist ); 
 | 
     
 | 
    //删除多余报错数据-19 
 | 
    macroPlan.DeleteSnaityCheck(); 
 | 
     
 | 
    //// todo 供应商能力 
 | 
    //info( "ProviderCapacity::DoSync" ) 
 | 
     
 | 
    //// todo 供应商回复 
 | 
    //info( "ProviderReply::DoSync" ) 
 | 
  *] 
 | 
} 
 |