¶Ô±ÈÐÂÎļþ |
| | |
| | | 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" ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ActualOut |
| | | { |
| | | #keys: '3[414996.1.72461245][414996.1.72461244][414996.1.72461246]' |
| | | Description: 'å®é
äº§åºæ°é' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Fac |
| | | { |
| | | #keys: '3[414996.1.72461215][414996.1.72461214][414996.1.72461216]' |
| | | Description: 'å·¥åç®å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute LineName |
| | | { |
| | | #keys: '3[414996.1.72461225][414996.1.72461224][414996.1.72461226]' |
| | | Description: '产线åç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductNo |
| | | { |
| | | #keys: '3[414996.1.72461258][414996.1.72461257][414996.1.72461259]' |
| | | Description: '产åID' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductionDate |
| | | { |
| | | #keys: '3[414996.1.72461195][414996.1.72461194][414996.1.72461196]' |
| | | Description: 'çäº§æ¥æ' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ShiftCode |
| | | { |
| | | #keys: '3[414996.1.72461205][414996.1.72461204][414996.1.72461206]' |
| | | Description: 'çæ¬¡å·' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ShiftName |
| | | { |
| | | #keys: '3[414996.1.72461235][414996.1.72461234][414996.1.72461236]' |
| | | Description: '产线åç§°' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 ); |
| | | } |
| | | } |
| | | *] |
| | | } |
| | |
| | | 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' ); |
| | | options := DatasetFindOptions::Construct( 'Archive' ).IncludeOffline( true ); //to load we must search offline datasets. |
| | | mdskey := DatasetController::FindUnique( options ); |
| | | |
| | | info( data.AsString() ); |
| | | } |
| | | MDSArchive::Root( mdskey ) -> ActualDailyProductionData::ParseData( data ); |
| | | *] |
| | | } |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method Comparison ( |
| | | RecycleBin recycleBin |
| | | RecycleBin recycleBin, |
| | | const Archive archive |
| | | ) as LocalTable |
| | | { |
| | | TextBody: |
| | |
| | | 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 ); |
| | | } |
| | |
| | | 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, |