lazhen
2024-07-22 3e3615ba9b1e68b1046e270f6add5487ad178ab7
_Main/BL/Type_ShippingActualData/StaticMethod_Synchronize.qbl
@@ -1,65 +1,73 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Synchronize (
  InterfaceDataset owner
  InterfaceDataset owner,
  String executor
)
{
  TextBody:
  [*
    //// 甄兰鸽 Jul-17-2024 (created)
    column := owner.ShippingActualColumn( relnew, StartDate := Date::ActualDate(), Index := owner.ShippingActualColumn( relsize ) );
    date    := Date::ActualDate();
    loginfo := owner.InterfaceLoginfo( relnew, ExecuteUser := executor
                                       , Name := Translations::InterfaceDataset_ShippingActualData_Name()
                                       , InterfaceDateTime := DateTime::ActualTime()
                                       , Message := '发运实际数据'
                                       , RequestBody := ShippingActualData::GetRequestBody( date ) );
    // vwedadmin Jul-18-2024 (created)
    address := "ds-yunrong-gw.dmp.vwfawedl.mobi";
    //address := "ds-yunrong-gw.dmp.vwfawedl.mobi";
    //
    //           /// http://ds-yunrong-gw.dmp.vwfawedl.mobi/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8
    //httpinterface := HTTPInterface::Create( address,80);
    //                httpinterface.URL("/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8");
    //httpinterface.MediaType("application/json");
    ////httpinterface.SSL(true);
    ////httpinterface.SSLKeystore("MyKeystore");
    //httpinterface.PostMethod(true);
    ////str :='{
    ////    "inParam":
    ////        {
    ////            "dday" : "2024-07-11"
    ////        }
    ////}'
    //httpinterface.AddHeader("Authorization","MTlLeG94UEYyNWN5OTZLOFRMXzUyNzA4ODkwNzg1NTA2OTIxNV9wcml2YXRlS2V5XzE3MjEzMDM4Nzc0NTE=")
    //httpinterface.Call( ShippingActualData::GetRequestBody( column.StartDate() ) ); //Sends request with the header Authorization: 538baa9045a84c0e889f 可以传递动态token 的吧
    //result := httpinterface.Result();
    
               /// http://ds-yunrong-gw.dmp.vwfawedl.mobi/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8
    httpinterface := HTTPInterface::Create( address,80);
                    httpinterface.URL("/data-service/api/service/post-data/V1.101/f4f94c47c1a2440898b5e1e2c0c5cbc8");
    httpinterface.MediaType("application/json");
    //httpinterface.SSL(true);
    //httpinterface.SSLKeystore("MyKeystore");
    httpinterface.PostMethod(true);
    //str :='{
    //    "inParam":
    //        {
    //            "dday" : "2024-07-11"
    //        }
    //}'
    httpinterface.AddHeader("Authorization","MTlLeG94UEYyNWN5OTZLOFRMXzUyNzA4ODkwNzg1NTA2OTIxNV9wcml2YXRlS2V5XzE3MjEzMDM4Nzc0NTE=")
    httpinterface.Call( ShippingActualData::GetRequestBody( column.StartDate() ) ); //Sends request with the header Authorization: 538baa9045a84c0e889f 可以传递动态token 的吧
    result := httpinterface.Result();
    cnv1 := StringToDateTime::StandardConverter();
    cnv1.SetCustomConversion();
    cnv1.CustomFormatString( 'yyyy-MM-dd HH:mm:ss' );
    cnv2 := StringToDate::StandardConverter();
    cnv2.SetCustomConversion();
    cnv2.CustomFormatString( 'yyyy-MM-dd' );
    data := InterfaceDataset::GetResponseJsonData( result );
    sadatalist := construct( ShippingActualDatas );
    for( seq := 0;seq < data.Size();seq++){
      item := data.Get(seq);
      sadata := ShippingActualData::GenerateData( owner, cnv1, cnv2, item );
      sadatalist.Add( sadata );
    }
    beforerowsize := owner.ShippingActualRow( relsize );
    traverse( sadatalist, Elements, e ){
      row := selectobject( owner, ShippingActualRow, row, row.Name() = e.FourCode() );
      if( isnull( row ) ){
        owner.ShippingActualRow( relnew, Name := e.FourCode() );
      }
    data := InterfaceLoginfo::CallInterface( owner, loginfo );
    if( not isnull( data ) ){
      cnv1 := StringToDateTime::StandardConverter();
      cnv1.SetCustomConversion();
      cnv1.CustomFormatString( 'yyyy-MM-dd HH:mm:ss' );
      
      cell := row.ShippingActualCell( relnew, Quantity := e.Quantity() );
      column.ShippingActualCell( relinsert, cell );
    }
    if( beforerowsize <> owner.ShippingActualRow( relsize ) ){
      rows := selectsortedset( owner, ShippingActualRow, row, row.Name() );
      nr    := 0;
      traverse( rows, Elements, e ){
        e.RowNr( nr );
        nr := nr + 1;
      cnv2 := StringToDate::StandardConverter();
      cnv2.SetCustomConversion();
      cnv2.CustomFormatString( 'yyyy-MM-dd' );
      column  := owner.ShippingActualColumn( relnew, StartDate := date, Index := owner.ShippingActualColumn( relsize ) );
      sadatalist := construct( ShippingActualDatas );
      for( seq := 0;seq < data.Size();seq++){
        item := data.Get(seq);
        sadata := ShippingActualData::GenerateData( loginfo, cnv1, cnv2, item );
        sadatalist.Add( sadata );
      }
      beforerowsize := owner.ShippingActualRow( relsize );
      traverse( sadatalist, Elements, e ){
        row := selectobject( owner, ShippingActualRow, row, row.Name() = e.FourCode() );
        if( isnull( row ) ){
          owner.ShippingActualRow( relnew, Name := e.FourCode() );
        }
        cell := row.ShippingActualCell( relnew, Quantity := e.Quantity() );
        column.ShippingActualCell( relinsert, cell );
      }
      if( beforerowsize <> owner.ShippingActualRow( relsize ) ){
        rows := selectsortedset( owner, ShippingActualRow, row, row.Name() );
        nr    := 0;
        traverse( rows, Elements, e ){
          e.RowNr( nr );
          nr := nr + 1;
        }
      }
    }
  *]