yypsybs
2023-10-13 038d0b0fb80ef6f8fad968322436b9e171419fdb
产销预算优化
已修改3个文件
104 ■■■■ 文件已修改
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_InitTestData#12.qbl 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_CapacityAndSaleBudgeCompare.qbl
@@ -36,22 +36,23 @@
    this.CapacityAndSaleBudgeCompareItemColumn( relflush );
    // ====汇总所有出现的产品====
    historyData := selectset( this, Global_MappingAnnualBudgetData, item, true );
    debuginfo( "historyData : " + [String]historyData.Size() )
    debuginfo( "historyData : " + [String]historyData.Size() );
    traverse( historyData, Elements, one ) {
      productCode := one.ProductID();
      Global_MappingOperationBOM::CreateTestData( otdTable, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
      boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
      if( boms.Size() > 0 ) {
        bom := boms.First();
        businessType := bom.BusinessType();
        placeOfProductionOfArray := bom.OrganCode();
    //  Global_MappingOperationBOM::CreateTestData( otdTable, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
    //  boms := selectset( otdTable, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
    //  if( boms.Size() > 0 ) {
    //    bom := boms.First();
    //    businessType := bom.BusinessType();
    //    placeOfProductionOfArray := bom.OrganCode();
        // 相同面板基地和事业部的放一行
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, businessType, placeOfProductionOfArray );
        row := CapacityAndSaleBudgeCompareItemRow::CreateIfNotExist( this, one.BusinessType(), one.OrgCodeFromBom() );
        // 记录每行包含哪些product
        CapacityAndSaleBudgeCompareItemRowProduct::CreateIfNotExist( row, productCode );
      } else {
        debuginfo( "no boms for product : " + productCode );
      }
    //  } else {
    //    debuginfo( "no boms for product : " + productCode );
    //  }
    }
    debuginfo( "CapacityAndSaleBudgeCompareItemRow : " + [String]selectset( this, CapacityAndSaleBudgeCompareItemRow, item, true ).Size() );
    // ====从左向右生成列头与内容====
_Main/BL/Type_GlobalDTOTable/Method_InitTestData#12.qbl
@@ -6,35 +6,35 @@
{
  TextBody:
  [*
    // yypsybs Oct-7-2023 (created)
    productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    this.Global_MappingAnnualBudgetData( relflush );
    if( this.Global_MappingAnnualBudgetData( relsize ) = 0 ) {
      debuginfo( "create Global_MappingAnnualBudgetData test data" );
      id := 1;
      for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
        for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
          productCode := productCodeList.Element( i - 1 );
          mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew,
                                                                      ID := [String]id,
                                                                      YearNo := [String]year,
                                                                      BusinessType := "事业部" + [String](productCode.Length() mod 3),
                                                                      ProductID := productCode);
          id := id + 1;
          for( month := 1; month <= 12; month := month + 1 ) {
            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlyModCapacity" + [String]month );
            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]month );
            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
            field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]month );
            field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
          }
        }
      }
      result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
      debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
    }
    //// yypsybs Oct-7-2023 (created)
    //productCodeList := selectuniquevalues( macroPlan, Product_MP, item, item.ID() );
    //debuginfo( "productCodeList : " + [String]productCodeList.Size() );
    //
    //this.Global_MappingAnnualBudgetData( relflush );
    //if( this.Global_MappingAnnualBudgetData( relsize ) = 0 ) {
    //  debuginfo( "create Global_MappingAnnualBudgetData test data" );
    //  id := 1;
    //  for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) {
    //    for( i := 1; i <= productCodeList.Size(); i := i + 1 ) {
    //      productCode := productCodeList.Element( i - 1 );
    //      mappingAnnualBudget := this.Global_MappingAnnualBudgetData( relnew,
    //                                                                  ID := [String]id,
    //                                                                  YearNo := [String]year,
    //                                                                  BusinessType := "事业部" + [String](productCode.Length() mod 3),
    //                                                                  ProductID := productCode);
    //      id := id + 1;
    //      for( month := 1; month <= 12; month := month + 1 ) {
    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlyModCapacity" + [String]month );
    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySheetCapacity" + [String]month );
    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
    //        field := Reflection::FindAttribute( "Global_MappingAnnualBudgetData", "MonthlySales" + [String]month );
    //        field.Set( mappingAnnualBudget, [String]Real::Random( 20000.0, 30000.0 ) );
    //      }
    //    }
    //  }
    //  result2 := selectset( this, Global_MappingAnnualBudgetData, item, true );
    //  debuginfo( "test MappingAnnualBudget size : " + [String]result2.Size() );
    //}
  *]
}
_Main/BL/Type_Global_MappingAnnualBudgetData/StaticMethod_SetOrgCodeFromForecast.qbl
@@ -7,18 +7,19 @@
  TextBody:
  [*
    // yypsybs Oct-7-2023 (created)
    traverse( parent, Global_MappingAnnualBudgetData, item ) {
      productCode := item.ProductID();
      Global_MappingOperationBOM::CreateTestData( parent, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
      boms := selectset( parent, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
      if( boms.Size() > 0 ) {
        bom := boms.First();
        placeOfProductionOfArray := bom.OrganCode();
        item.OrgCodeFromBom( placeOfProductionOfArray );
      } else {
        debuginfo( "no boms for product : " + productCode );
    //  productCode := item.ProductID();
    ////  Global_MappingOperationBOM::CreateTestData( parent, "事业部" + [String](productCode.Length() mod 3), "面板基地" + [String](productCode.Length() mod 4), productCode );
    //  boms := selectset( parent, Global_MappingOperationBOM, bom, bom.ProductCode() = productCode );
    //  if( boms.Size() > 0 ) {
    //    bom := boms.First();
    //    placeOfProductionOfArray := bom.OrganCode();
    //    item.OrgCodeFromBom( placeOfProductionOfArray );
    //  } else {
    //    debuginfo( "no boms for product : " + productCode );
        item.OrgCodeFromBom( item.OrganCode() );
      }
    //  }
    }
  *]
}