xiaoding721
2024-09-06 403bf10999b5a0b5955a94ae2e9174cdad8ae406
每日实际生产接口
已添加10个文件
已修改2个文件
已删除8个文件
242 ■■■■■ 文件已修改
_Main/BL/Dataset_InterfaceDataset/Daemon_ActualDailyProductionInterface.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_ActualDailyProductionData_Archive_Archive_ActualDailyProductionData.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_ActualDailyProductionData_MacroPlan_MacroPlan_ActualDailyProduction.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ActualOut.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_Date.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_Fac.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_LineName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_Product.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductLine.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductNo.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionVolume.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_Shift.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftCode.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftProductionVolume.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftSequence.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/StaticMethod_ParseData.qbl 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanTable/Method_Comparison.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Dataset_InterfaceDataset/Daemon_ActualDailyProductionInterface.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Daemon ActualDailyProductionInterface
{
  Frequency: P1DT0H0M0S
  Priority: 'Default'
  StartDate: 2020-01-01
  StartTimeOfDay: P0DT6H0M0S
  Text:
  [*
    options := DatasetFindOptions::Construct( 'InterfaceDataset' ).IncludeOffline( true ); //to load we must search offline datasets.
    mdskey := DatasetController::FindUnique( options );
    MDSInterfaceDataset::Root( mdskey ) -> ActualDailyProductionData::Synchronize( "Administrator" );
  *]
}
_Main/BL/Relations/Relation_ActualDailyProductionData_Archive_Archive_ActualDailyProductionData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation ActualDailyProductionData_Archive_Archive_ActualDailyProductionData
{
  #keys: '1[414996.1.72461289]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Archive
  {
    #keys: '3[414996.1.72461291][414996.1.72461290][414996.1.72461292]'
    Cardinality: '0to1'
    ObjectDefinition: ActualDailyProductionData
    OwningSide: 'Reference'
  }
  RelationSide.RightSide ActualDailyProductionData
  {
    #keys: '3[414996.1.72461294][414996.1.72461293][414996.1.72461295]'
    Cardinality: '1toN'
    ObjectDefinition: Archive
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_ActualDailyProductionData_MacroPlan_MacroPlan_ActualDailyProduction.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/Attribute_ActualOut.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ActualOut
{
  #keys: '3[414996.1.72461245][414996.1.72461244][414996.1.72461246]'
  Description: '实际产出数量'
  ValueType: Real
}
_Main/BL/Type_ActualDailyProductionReport/Attribute_Date.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/Attribute_Fac.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Fac
{
  #keys: '3[414996.1.72461215][414996.1.72461214][414996.1.72461216]'
  Description: '工厂简写'
  ValueType: String
}
_Main/BL/Type_ActualDailyProductionReport/Attribute_LineName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute LineName
{
  #keys: '3[414996.1.72461225][414996.1.72461224][414996.1.72461226]'
  Description: '产线名称'
  ValueType: String
}
_Main/BL/Type_ActualDailyProductionReport/Attribute_Product.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductLine.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductNo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductNo
{
  #keys: '3[414996.1.72461258][414996.1.72461257][414996.1.72461259]'
  Description: '产品ID'
  ValueType: String
}
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductionDate
{
  #keys: '3[414996.1.72461195][414996.1.72461194][414996.1.72461196]'
  Description: '生产日期'
  ValueType: Date
}
_Main/BL/Type_ActualDailyProductionReport/Attribute_ProductionVolume.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/Attribute_Shift.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftCode.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftCode
{
  #keys: '3[414996.1.72461205][414996.1.72461204][414996.1.72461206]'
  Description: '班次号'
  ValueType: String
}
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftName
{
  #keys: '3[414996.1.72461235][414996.1.72461234][414996.1.72461236]'
  Description: '产线名称'
  ValueType: String
}
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftProductionVolume.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/Attribute_ShiftSequence.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_ActualDailyProductionReport/StaticMethod_ParseData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ParseData (
  Archive owner,
  JSON data
)
{
  TextBody:
  [*
    // Akari Sep-6-2024 (created)
    if( not isnull( data ) ){
      cnv2 := StringToDate::StandardConverter();
      cnv2.SetCustomConversion();
      cnv2.CustomFormatString( 'yyyy-MM-dd' );
      for( i := 0; i < data.Size(); i++ ){
        object := data.Get( i );
        productDate := object.Get( "productiondate" ).GetString();
        shiftCode := object.Get( "shift_code" ).GetString();
        fac := object.Get( "fac" ).GetString();
        lineName := object.Get( "line_name" ).GetString();
        shiftName := object.Get( "shift_name" ).GetString();
        actualOut := [Real]object.Get( "actual_out" ).GetString();
        productNo := object.Get( "product_no" ).GetString();
        owner.ActualDailyProductionData( relnew,
                                         ProductionDate := cnv2.Convert( productDate ),
                                         ShiftCode := shiftCode,
                                         Fac := fac,
                                         LineName := lineName,
                                         ShiftName := shiftName,
                                         ActualOut := actualOut,
                                         ProductNo := productNo );
      }
    }
  *]
}
_Main/BL/Type_ActualDailyProductionReport/StaticMethod_Synchronize.qbl
@@ -1,31 +1,25 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Synchronize (
  MacroPlan owner,
  InterfaceDataset interfaceDataset
  InterfaceDataset interfaceDataset,
  String executor
)
{
  TextBody:
  [*
    // rislai Jul-23-2024 (created)
    date    := Date::ActualDate() - 1;
    loginfo := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := QuintiqUser::CurrentUser().ShortName()
    loginfo := interfaceDataset.InterfaceLoginfo( relnew, ExecuteUser := executor
                                       , Name := Translations::InterfaceDataset_ActualDailyProductionData_Name()
                                       , InterfaceDateTime := DateTime::ActualTime()
                                       , Message := '生产实际数据'
                                       , RequestBody := ActualDailyProductionData::GetRequestBody( date ) );
    
    data := InterfaceLoginfo::CallInterface( interfaceDataset,loginfo );
    if( not isnull( data ) ){
      cnv1 := StringToDateTime::StandardConverter();
      cnv1.SetCustomConversion();
      cnv1.CustomFormatString( 'yyyy-MM-dd HH:mm:ss' );
      cnv2 := StringToDate::StandardConverter();
      cnv2.SetCustomConversion();
      cnv2.CustomFormatString( 'yyyy-MM-dd' );
      info( data.AsString() );
    }
    options := DatasetFindOptions::Construct( 'Archive' ).IncludeOffline( true ); //to load we must search offline datasets.
    mdskey := DatasetController::FindUnique( options );
    MDSArchive::Root( mdskey ) -> ActualDailyProductionData::ParseData( data );
  *]
}
_Main/BL/Type_OfflinePlanTable/Method_Comparison.qbl
@@ -1,7 +1,8 @@
Quintiq file version 2.0
#parent: #root
Method Comparison (
  RecycleBin recycleBin
  RecycleBin recycleBin,
  const Archive archive
) as LocalTable
{
  TextBody:
@@ -10,11 +11,11 @@
    macroPlan := this.MacroPlan();
    table := recycleBin.LocalTable( relnew,Name := "产量对比报表");
    
    actualDailyProductionDatas := selectset( macroPlan,ActualDailyProductionData,data,true );
    actualDailyProductionDatas := selectset( archive,ActualDailyProductionData,data,true );
    actualDailyProductionDataIndexTree := NamedValueTree::Create();
    for( i := 0; i< actualDailyProductionDatas.Size(); i++ ){
      actualDailyProductionData := actualDailyProductionDatas.Element( i );
      actualDailyProductionDataKey := actualDailyProductionData.Product() + actualDailyProductionData.Date().AsQUILL();
      actualDailyProductionDataKey := actualDailyProductionData.ProductNo() + actualDailyProductionData.ProductionDate().AsQUILL();
      actualDailyProductionDataHandle := actualDailyProductionDataIndexTree.GetHandle( actualDailyProductionDataKey );
      actualDailyProductionDataIndexTree.Root().AddChild( actualDailyProductionDataHandle,i ); 
    }
@@ -43,7 +44,7 @@
          actualDailyProductionVolume := 0.0;
          if( not isnull( actualDailyProductionDataIndex )){
            actualDailyProductionData := actualDailyProductionDatas.Element( actualDailyProductionDataIndex.GetValueAsNumber() );
            actualDailyProductionVolume := actualDailyProductionData.ProductionVolume();
            actualDailyProductionVolume := actualDailyProductionData.ActualOut();
          }
          localColumn := localColumns.Element( localColumnIndex.GetValueAsNumber() );
          localRow.LocalCell( relnew,LocalCell_ProductionComparison ,LocalColumn := localColumn,