lihongji
2024-11-28 e8e4aac007c3d1356813e4568a148cf46bbff458
Merge remote-tracking branch 'origin/dev' into dev
已添加35个文件
已修改22个文件
已删除2个文件
1126 ■■■■■ 文件已修改
_Main/BL/EDI/Broker_MP_ExportSingleShiftConfigBroker.qbl 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_SingleShiftConfig_Unit_Unit_SingleShiftConfig.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanMS64/StaticMethod_GenerateData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanMS64/StaticMethod_Publish.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_Publish.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetRow.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForSAPGet.qbl 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceLoginfo/StaticMethod_SyncMiddle.qbl 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShippingActualData/Method_SyncTable.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/Attribute_ShiftName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/Attribute_SingleShiftName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/Attribute_StandardYield.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/Attribute_UnitID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/Function_CalcUnitID.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/StaticMethod_Export.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/StaticMethod_Import.qbl 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/TypeIndex_SingleShiftConfigTypeIndex.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_SingleShiftConfig/_ROOT_Type_SingleShiftConfig.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPublish.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuInterface.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPublishPDM.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonActualDailyProdu#791.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPublish_ButtonDispatchShiftSchedulingInf.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuActualDailyProduction_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuPublishPDM_MenuMaintenanceSingleShiftConfig.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuPublishPDM_MenuPublishShiftSchedulingInform.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditForecast/Component_PanelCurve.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditForecast/Component_PanelOrigin.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditForecast/Response_MacroPlanner_pnlActions_bSplitUsingCurve_OnClick.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Component_pnlContent.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Method_Edit.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Method_OnOK.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Response_pnlActions_btnOk_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/_ROOT_Component_DialogShippingActualData.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Method_OnOk.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Method_OnOk.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_ListInterfaceShippingData.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listContextMenuInterfaceShippingData.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Response_ListInterfaceShippingData_MenuInterfaceShippingData_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_ListSingleShiftConfig.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_PanelSingleShiftConfig.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_PanelSingleShiftConfig497.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_listActionBarPageSingleShiftConfig.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_listContextMenuSingleShiftConfig.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Response_PanelSingleShiftConfig_bExport_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Response_PanelSingleShiftConfig_bImport_OnClick.def 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/_ROOT_Component_FormSingleShiftConfig.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/MaintenanceSingleShiftConfig.vw 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/Data/MP_SingleShiftConfig.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/EDI/Broker_MP_ExportSingleShiftConfigBroker.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
Quintiq file version 2.0
#parent: #root
EDIBroker MP_ExportSingleShiftConfigBroker
{
  MDSDefinition: MacroPlan
  TimeZone: 'ACT'
  UseOSTimeZone: false
  EDIModelLink.Source SingleShiftConfigSource
  {
    EDIMLTable SingleShiftConfig
    {
      TargetType: SingleShiftConfig
      EDIMLColumn ID { Attribute: ID ValueType: String }
      EDIMLColumn ShiftName { Attribute: ShiftName ValueType: String }
      EDIMLColumn SingleShiftName { Attribute: SingleShiftName ValueType: String }
      EDIMLColumn StandardYield { Attribute: StandardYield ValueType: Real }
      EDIMLColumn UnitID { Attribute: UnitID ValueType: String }
    }
  }
  EDITransformation.Transformation SingleShiftConfigTransformation
  {
    EDITableTransformation
    {
      InputTable: SingleShiftConfig
      OutputTable: SingleShiftConfig
      EDIColumnMatch { InputColumn: ID OutputColumn: ID }
      EDIColumnMatch { InputColumn: ShiftName OutputColumn: ShiftName }
      EDIColumnMatch { InputColumn: SingleShiftName OutputColumn: SingleShiftName }
      EDIColumnMatch { InputColumn: StandardYield OutputColumn: StandardYield }
      EDIColumnMatch { InputColumn: UnitID OutputColumn: UnitID }
    }
  }
  EDIXLSLink.Destination SingleShiftConfigDestination
  {
    FileName: 'MP_SingleShiftConfig'
    EDIXLSLinkTable SingleShiftConfig
    {
      Columns:
      [
        EDIXLSLinkColumn ID { ValueType: String }
        EDIXLSLinkColumn ShiftName { ValueType: String }
        EDIXLSLinkColumn SingleShiftName { ValueType: String }
        EDIXLSLinkColumn StandardYield { ValueType: Real }
        EDIXLSLinkColumn UnitID { ValueType: String }
      ]
    }
  }
}
_Main/BL/Relations/Relation_SingleShiftConfig_Unit_Unit_SingleShiftConfig.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation SingleShiftConfig_Unit_Unit_SingleShiftConfig
{
  #keys: '1[414996.1.251280077]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Unit
  {
    #keys: '3[414996.1.251280079][414996.1.251280078][414996.1.251280080]'
    Cardinality: '0to1'
    ObjectDefinition: SingleShiftConfig
    OwningSide: 'Reference'
  }
  RelationSide.RightSide SingleShiftConfig
  {
    #keys: '3[414996.1.251280082][414996.1.251280081][414996.1.251280083]'
    Cardinality: '1toN'
    ObjectDefinition: Unit
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_AOnlineAndMOfflinePlanMS64/StaticMethod_GenerateData.qbl
@@ -10,7 +10,7 @@
  Boolean versionflag,
  const Product_MPs products,
  String executor
)
) as String
{
  TextBody:
  [*
@@ -49,7 +49,7 @@
      
    }
    loginfo.TotalRow( ms64.MS64Data( relsize ) );
    AOnlineAndMOfflinePlanMS64::Publish( owner, loginfo );
    return AOnlineAndMOfflinePlanMS64::Publish( owner, loginfo );
    //InterfaceLoginfo::CallInterfaceForSAPGet( owner, loginfo );
  *]
}
_Main/BL/Type_AOnlineAndMOfflinePlanMS64/StaticMethod_Publish.qbl
@@ -3,7 +3,7 @@
StaticMethod Publish (
  InterfaceDataset owner,
  InterfaceLoginfo loginfo
)
) as String
{
  TextBody:
  [*
@@ -30,6 +30,7 @@
    loginfo.RequestBody( jsondata.Build().AsString() );
    info( loginfo.RequestBody() );
    data              := InterfaceLoginfo::CallInterfaceForSAPGet( owner, loginfo );
    info( '----------------', data.Size() );
    info( '----------------', data );
    return data;
  *]
}
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl
@@ -7,7 +7,7 @@
  Date startdate,
  Date enddate,
  String executor
)
) as String
{
  TextBody:
  [*
@@ -80,6 +80,6 @@
      }
    }
    loginfo.TotalRow( pir.PIRData( relsize ) );
    AOnlineAndMOfflinePlanPIR::Publish( owner, loginfo );
    return AOnlineAndMOfflinePlanPIR::Publish( owner, loginfo );
  *]
}
_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_Publish.qbl
@@ -3,7 +3,7 @@
StaticMethod Publish (
  InterfaceDataset owner,
  InterfaceLoginfo loginfo
)
) as String
{
  TextBody:
  [*
@@ -30,6 +30,7 @@
    loginfo.RequestBody( jsondata.Build().AsString() );
    info( loginfo.RequestBody() );
    data              := InterfaceLoginfo::CallInterfaceForSAPGet( owner, loginfo );
    info( '----------------', data.Size() );
    info( '----------------', data );
    return data;
  *]
}
_Main/BL/Type_Archive/StaticMethod_GenerateForecast.qbl
@@ -36,6 +36,10 @@
    }
    
    traverse ( archiveExecutionStatus, TemporaryDemandData, tdd ,tdd.Origin() = "" or tdd.StartDate() >= macroPlan.StartOfPlanning().Date()) {
      if( tdd.ProductID() = "6914" or tdd.ProductID() = "6916" or tdd.ProductID() = "6917" or tdd.ProductID() = "06S100010R" or tdd.ProductID() = "06S100010M" or tdd.ProductID() = "06S100010N" ){
        tdd.StockingPointID( "大连发动机的长春外租库" );
      }
      targetProduct_MP := null( Product_MP );
      
      productMPHandleNotes := productMPIndexTreeNotes.GetHandle( tdd.ProductID());
_Main/BL/Type_AssemblyOnlinePlanPush/StaticMethod_GenerateData.qbl
@@ -33,7 +33,7 @@
        traverse( column, Cell, cell ){
          row              := cell.Row();
          if( ( iscc and row.Unit() = FinancialProductionReport::GetDefaultCCUnit() ) or ( isdl and row.Unit() = FinancialProductionReport::GetDefaultDLUnit() ) ){
            cd               :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product            := row.ProductID()
            cd               :=interfaceDataset.AssemblyOnlinePlanPPPSPush( relnew, Product            := row.Name()
                                                                             , PlanningDate            := column.StartDate()
                                                                             , PlanningQty             := [Number]cell.Quantity()
                                                                             , Sequence                := cell.Order()
_Main/BL/Type_AssemblyOnlinePlanVersion/Method_GetRow.qbl
@@ -7,7 +7,7 @@
  TextBody:
  [*
    // ç”„兰鸽 Oct-11-2024 (created)
    row       := selectobject( this, Row, row, row.ProductID() = aoprow.ProductID() and row.ProductionLine() = aoprow.ProductionLine() and row.Type() = aoprow.Type() );
    row       := selectobject( this, Row, row, row.Name() = aoprow.ProductID() and row.ProductionLine() = aoprow.ProductionLine() and row.Type() = aoprow.Type() );
    
    if( isnull( row ) ){
      product := selectobject( aoprow.MacroPlan(), Product_MP, product, product.ID() = aoprow.ProductID() );
_Main/BL/Type_DispatchShiftPlan/StaticMethod_Dispatch.qbl
@@ -51,7 +51,7 @@
         dispatchShiftPlan.InterfaceTime( now );
       }else{
         if( archiveShiftPlan.Outcome() <> "" ){
           interfaceLoginfo.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(),
           dispatchShiftPlan := interfaceLoginfo.DispatchShiftPlan( relnew,ID := OS:: GenerateGUIDAsString(),
                                               ProductLine := productLine,
                                               FactoryName := factoryName,
                                               ShiftQty := archiveShiftPlan.Outcome(),
@@ -60,6 +60,7 @@
                                               Tips := archiveShiftPlan.Remark(),
                                               VersionName := archiveShiftPlan.MacroPlanName(),
                                               InterfaceTime := now );
           dispatchShiftPlan.CalcFac();
         }
       }
    }
_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
@@ -145,6 +145,15 @@
    traverse( lines,Elements,line ){
      line.CalcLineQuantity();
      
      unit := constnull( Unit );
      {
        unitHandle := unitIndexTree.GetHandle( line.LineName() );
        unitIndex := guard( unitIndexTree.Root().Child( unitHandle ), null( NamedValue ));
        if( not isnull( unitIndex )){
          unit := units.Element( unitIndex.GetValueAsNumber() );
        }
      }
      // 481
      lineQuantity := line.LineQuantity();
      
_Main/BL/Type_InterfaceLoginfo/StaticMethod_CallInterfaceForSAPGet.qbl
@@ -3,14 +3,14 @@
StaticMethod CallInterfaceForSAPGet (
  InterfaceDataset owner,
  InterfaceLoginfo loginfo
) as owning InterfaceSAPResponseLoginfos
) as String
{
  Description: '调用数据中台接口'
  TextBody:
  [*
    // ç”„兰鸽 Jul-22-2024 (created)
    address           := Translations::InterfaceDataset_SAP_Address(); 
    httpinterface     := HTTPInterface::Create( address,80);
    httpinterface     := HTTPInterface::Create( address,8080);
    httpinterface.PostMethod( true ); ; 
    httpinterface.MediaType( Translations::InterfaceDataset_ContentType() );
    try{
@@ -31,7 +31,8 @@
    //后续公共处理
    loginfo.FinishTime( DateTime::ActualTime() );
    data             := JSON::Null().Build();
    saploginfos      := construct( InterfaceSAPResponseLoginfos );
    sapresponse      := construct( InterfaceSAPResponseLoginfos );
    feedback         := '';
    if( loginfo.Success() ){
      resultJson     := JSON::Parse( loginfo.Response() );
      code           := resultJson.Get( "code" ).GetNumber();
@@ -47,10 +48,22 @@
      }
      for( i := 0; i < data.Size(); i++ ){
        item := data.Get( i );
        saploginfos.Add( InterfaceSAPResponseLoginfo::GenerateData( loginfo, item ) );
        sapresponse.Add( InterfaceSAPResponseLoginfo::GenerateData( loginfo, item ) );
      }
      sucproduct     := selectuniquevalues( sapresponse, Elements, e, e.IsSuccess(), e.Msg_v1() );
      failmssages    := selectuniquevalues( sapresponse, Elements, e, not e.IsSuccess(), ifexpr( e.Msg().FindString( e.Msg_v1(), 0 ) > -1, e.Msg().ReplaceAll( e.Msg_v1(), '*' ), e.Msg() ) );
      feedback.Concat( '产品' ).Concat( sucproduct.Concatenate( "、" ) ).Concat( '推送成功' ).Concat( ';' );
      traverse( failmssages, Elements, failmsg ){
        failproduct  := selectuniquevalues( sapresponse, Elements, e, not e.IsSuccess() and ( failmsg = e.Msg() or failmsg = e.Msg().ReplaceAll( e.Msg_v1(), '*' ) ), e.Msg_v1() );
        if( failmsg.FindString( '*', 0  ) > -1 ){
          feedback.Concat( failmsg.ReplaceAll( '*', failproduct.Concatenate( '、' ) ) ).Concat( ';' );
        }else{
          feedback.Concat( '产品' ).Concat( failproduct.Concatenate( '、' ) ).Concat( '因为' ).Concat( failmsg ).Concat( '推送失败' ).Concat( ';' );
        }
      }
      feedback       := feedback.Replace( feedback.Length() - 1, 1, '。' );
    }
    
    return &saploginfos;
    return feedback;
  *]
}
_Main/BL/Type_InterfaceLoginfo/StaticMethod_SyncMiddle.qbl
@@ -7,15 +7,15 @@
  TextBody:
  [*
    // ç”„兰鸽 Aug-23-2024 (created)
    owner.IL_InterfaceLogInfoMiddlesBroker().Execute();
    // æ¸…空临时数据库
    owner.IL_InterfaceLogInfoMiddlesBroker().Source().FlatQuery( "truncate table A_InterfaceLogInfoMiddle" );
    traverse( owner, InterfaceLoginfoMiddle, middle ){
      loginfo := selectobject( owner, InterfaceLoginfo, loginfo, loginfo.Name() = middle.Name() and loginfo.IsShow() = false and loginfo.Last() = true );
      loginfo.FinishTime( middle.FinishTime() );
      loginfo.Response( middle.Response() );
      loginfo.IsShow( true );
      middle.Delete();
    }
    //owner.IL_InterfaceLogInfoMiddlesBroker().Execute();
    //// æ¸…空临时数据库
    //owner.IL_InterfaceLogInfoMiddlesBroker().Source().FlatQuery( "truncate table A_InterfaceLogInfoMiddle" );
    //traverse( owner, InterfaceLoginfoMiddle, middle ){
    //  loginfo := selectobject( owner, InterfaceLoginfo, loginfo, loginfo.Name() = middle.Name() and loginfo.IsShow() = false and loginfo.Last() = true );
    //  loginfo.FinishTime( middle.FinishTime() );
    //  loginfo.Response( middle.Response() );
    //  loginfo.IsShow( true );
    //  middle.Delete();
    //}
  *]
}
_Main/BL/Type_OfflinePlanArchiveVersion/Method_GetRow.qbl
@@ -7,7 +7,7 @@
  TextBody:
  [*
    // ç”„兰鸽 Oct-11-2024 (created)
    row       := selectobject( this, Row, row, row.ProductID() = noprow.ProductID() and row.ProductionLine() = noprow.ProductionLine() and row.Type() = noprow.Type() and row.StockingPointID() = noprow.StockingPointID() );
    row       := selectobject( this, Row, row, row.Name() = noprow.ProductID() and row.ProductionLine() = noprow.ProductionLine() and row.Type() = noprow.Type() and row.StockingPointID() = noprow.StockingPointID() );
    
    if( isnull( row ) ){
      product := selectobject( noprow.NewOfflinePlanTable().MacroPlan(), Product_MP, product, product.ID() = noprow.ProductID() );
_Main/BL/Type_ShippingActualData/Method_SyncTable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method SyncTable (
  InterfaceDataset owner
)
{
  TextBody:
  [*
    // ç”„兰鸽 Nov-27-2024 (created)
    column                := selectobject( owner, ShippingActualColumn, column, column.StartDate() = this.DDay() );
    cell                  := selectobject( column, ShippingActualCell, cell, cell.ShippingActualRow().Name() = this.FourCode() );
    cell.Quantity( this.Quantity() );
  *]
}
_Main/BL/Type_SingleShiftConfig/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[414996.1.253601321][414996.1.253601320][414996.1.253601322]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_SingleShiftConfig/Attribute_ShiftName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftName
{
  #keys: '3[414996.1.251280091][414996.1.251280090][414996.1.251280092]'
  ValueType: String
}
_Main/BL/Type_SingleShiftConfig/Attribute_SingleShiftName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute SingleShiftName
{
  #keys: '3[414996.1.251280114][414996.1.251280113][414996.1.251280115]'
  ValueType: String
}
_Main/BL/Type_SingleShiftConfig/Attribute_StandardYield.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StandardYield
{
  #keys: '3[414996.1.251280101][414996.1.251280100][414996.1.251280102]'
  ValueType: Real
}
_Main/BL/Type_SingleShiftConfig/Attribute_UnitID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UnitID
{
  #keys: '3[414996.1.253602237][414996.1.253602236][414996.1.253602238]'
  ValueType: String
}
_Main/BL/Type_SingleShiftConfig/Function_CalcUnitID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcUnitID
{
  TextBody:
  [*
    // Akari Nov-27-2024 (created)
    value := this.Unit().ID();
    this.UnitID( value );
  *]
}
_Main/BL/Type_SingleShiftConfig/StaticMethod_Export.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Export (
  MacroPlan macroPlan
) as BinaryValue
{
  TextBody:
  [*
    // Akari Nov-27-2024 (created)
    binaryData := macroPlan.MP_ExportSingleShiftConfigBroker().ExecuteToXLS( true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_SingleShiftConfig/StaticMethod_Import.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Import (
  MacroPlan macroPlan,
  GeneralExcelImportAndExportDataTable table
)
{
  TextBody:
  [*
    // æ¸…空原始数据
    units := selectset( macroPlan,Unit,unit,true );
    unitIndexTree := NamedValueTree::Create();
    for( i := 0; i< units.Size(); i++ ){
      unit := units.Element( i );
      unit.SingleShiftConfig( relflush );
      unitHandle := unitIndexTree.GetHandle( unit.ID() );
      unitIndexTree.Root().AddChild( unitHandle,i );
    }
    // æ ¡éªŒæ–‡ä»¶å
    //if ( table.GeneralExcelImportAndExportDataSource().Name() <> "发动机匹配-六位码.xlsx" ) {
    //  error( Translations::A_VWED_GeneralExcelImportAndExportDataSource_UploadError2() );
    //}
    // ç”Ÿæˆæ•°æ®
    rows := selectsortedset( table,GeneralExcelImportAndExportDataRow,row,row.RowNr());
    traverse( rows,Elements,row ){
      // idCell             := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 0 );
      shiftNameCell            := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 1 );
      singleShiftNameCell     := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 2 );
      standardYieldCell           := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 3 );
      unitIDCell            := select( row, GeneralExcelImportAndExportDataCell, tempGEIAEDC, tempGEIAEDC.GeneralExcelImportAndExportDataColumn().ColumnIndex() = 4 );
      unitID := guard( unitIDCell.Value(), "" );
      if( unitID = "" ){
        error( "Unit ID ä¸ºå¿…填项。" );
      }
      unitHandle := unitIndexTree.GetHandle( unitID );
      unitIndex := guard( unitIndexTree.Root().Child( unitHandle ),null( NamedValue ));
      if( not isnull( unitIndex )){
        unit := units.Element( unitIndex.GetValueAsNumber() );
        unit.SingleShiftConfig( relnew,
                                ID := IDHolder::GetGUID(),
                                ShiftName := guard( shiftNameCell.Value(), "" ),
                                SingleShiftName := guard( singleShiftNameCell.Value(), "" ),
                                StandardYield := [Real]guard( standardYieldCell.Value(), "0" ));
      }else{
        error( "无法在【" + macroPlan.MDSMacroPlan().Description() + "】内找到产线【" + unitID + "】。");
      }
    }
    //// æ ¡éªŒæ•°æ®
    //feedback            := "";
    //sanitycheckfeedback := "";
    //flag                := true;
    //
    //traverse ( macroPlan, SixDigitCode, sdc, flag ) {
    //  SixDigitCode::ValidateInput( feedback, sanitycheckfeedback, macroPlan, sdc.Code(), sdc.Curve(), sdc.VehicleModel(), sdc.ProducingArea(), sdc.Engine(), sdc.Power(), sdc.EnginePartNumber(),
    //                               sdc.EngineFourDigitCode(), sdc.Remarks(), sdc );
    //  flag := feedback = "";
    //}
    //
    //if ( not flag ) {
    //  error( feedback );
    //}
  *]
}
_Main/BL/Type_SingleShiftConfig/TypeIndex_SingleShiftConfigTypeIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
TypeIndex SingleShiftConfigTypeIndex
{
  Attributes:
  [
    TypeIndexAttribute
    {
      ModelElement: ID
    }
  ]
}
_Main/BL/Type_SingleShiftConfig/_ROOT_Type_SingleShiftConfig.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type SingleShiftConfig
{
  #keys: '5[414996.1.251280060][414996.1.251280058][0.0.0][414996.1.251280059][414996.1.251280061]'
  BaseType: Object
  Description: '单班次配置'
  StructuredName: 'SingleShiftConfigs'
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupArchiveReport.def
@@ -56,7 +56,7 @@
      Properties:
      [
        Image: 'PRODUCT'
        Label: 'Archive packaging plan'
        Label: '包装计划存档'
        Taborder: 4
      ]
    }
@@ -67,19 +67,8 @@
      Properties:
      [
        Image: 'TRUCK2_BLUE'
        Label: 'Archive transfer plan'
        Label: '运输计划存档'
        Taborder: 5
      ]
    }
    Component ButtonActualDailyProduction id:ButtonActualDailyProduction_478
    {
      #keys: '[414996.1.241250423]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'RSS'
        Label: '实际每日生产计划'
        Taborder: 7
      ]
    }
    Component ButtonArchiveReport
@@ -89,7 +78,7 @@
      Properties:
      [
        Image: 'KEYBOARD_KEY_SHIFT'
        Label: 'Archive shift plan'
        Label: '班次计划存档'
        Taborder: 6
      ]
    }
@@ -101,7 +90,7 @@
      [
        Image: 'CLOUD'
        Label: 'TRC éœ€æ±‚存档'
        Taborder: 8
        Taborder: 7
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupPublish.def
@@ -16,17 +16,6 @@
        Taborder: 0
      ]
    }
    Component ButtonDispatchShiftSchedulingInformation
    {
      #keys: '[414996.1.173765219]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'SKIN_TIGER'
        Label: '下发班次计划信息'
        Taborder: 2
      ]
    }
    Component ButtonPublishSAP
    {
      #keys: '[415136.0.1332920231]'
@@ -42,6 +31,21 @@
        Taborder: 1
      ]
    }
    Component ButtonPublishPDM
    {
      #keys: '[414996.1.253210336]'
      BaseType: 'WebButton'
      Children:
      [
        #child: ContextMenuPublishPDM
      ]
      Properties:
      [
        Image: 'DATA_OUT'
        Label: 'PDM æŽ¥å£æ•°æ®æŽ¨é€'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuInterface.def
@@ -49,6 +49,17 @@
        Title: 'Shipping data'
      ]
    }
    Component MenuActualDailyProduction
    {
      #keys: '[414996.1.256661804]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'RSS'
        Taborder: 4
        Title: '实际每日生产计划'
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPublishPDM.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component ContextMenuPublishPDM
{
  #keys: '[414996.1.253210337]'
  BaseType: 'WebContextMenu'
  Children:
  [
    Component MenuPublishShiftSchedulingInformation
    {
      #keys: '[414996.1.253210338]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'SKIN_TIGER'
        Taborder: 0
        Title: '下发班次计划信息'
      ]
    }
    Component MenuMaintenanceSingleShiftConfig
    {
      #keys: '[414996.1.253210339]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR'
        Taborder: 1
        Title: '单班次标准产量配置'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupArchiveReport_ButtonActualDailyProdu#791.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupPublish_ButtonDispatchShiftSchedulingInf.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuInterface_MenuActualDailyProduction_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ContextMenuInterface/MenuActualDailyProduction
Response OnClick () id:Response_MacroPlanner_ContextMenuInterface_MenuActualDailyProduction_OnClick
{
  #keys: '[414996.1.256661803]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  QuillAction
  {
    Body:
    [*
      // Open view
      ApplicationMacroPlanner.OpenView( 'ActualDailyProduction' );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuPublishPDM_MenuMaintenanceSingleShiftConfig.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ContextMenuPublishPDM/MenuMaintenanceSingleShiftConfig
Response OnClick () id:Response_MacroPlanner_ContextMenuPublishPDM_MenuMaintenanceSingleShiftConfig_OnClick
{
  #keys: '[414996.1.253400687]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  QuillAction
  {
    Body:
    [*
      // Open view
      ApplicationMacroPlanner.OpenView( 'MaintenanceSingleShiftConfig' );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuPublishPDM_MenuPublishShiftSchedulingInform.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ContextMenuPublishPDM/MenuPublishShiftSchedulingInformation
Response OnClick () id:Response_MacroPlanner_ContextMenuPublishPDM_MenuPublishShiftSchedulingInformation_OnClick
{
  #keys: '[414996.1.253210335]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  QuillAction
  {
    Body:
    [*
      // Open view
      ApplicationMacroPlanner.OpenView( 'DispatchShiftSchedulingInformation' );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditForecast/Component_PanelCurve.def
@@ -11,6 +11,7 @@
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        AllowEmpty: true
        Label: 'Curve'
        Taborder: 0
      ]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditForecast/Component_PanelOrigin.def
@@ -14,7 +14,7 @@
        AllowEmpty: true
        DataBinding: 'DataHolderDialogData.Data.Origin'
        Label: 'Origin'
        Strings: ';CC-TRC;DL-TRC;PPA;IDS'
        Strings: 'CC-TRC;DL-TRC;PPA;IDS'
        Taborder: 0
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditForecast/Response_MacroPlanner_pnlActions_bSplitUsingCurve_OnClick.def
@@ -6,6 +6,10 @@
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    return DropDownStringListCurve.Text() <> "";
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[415136.0.1345221297]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[415136.0.1345221301]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[415136.0.1345221303]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[415136.0.1345221295]'
  BaseType: 'WebPanel'
  Children:
  [
    Component efContent
    {
      #keys: '[415136.0.1345221341]'
      BaseType: 'WebEditField'
      Properties:
      [
        Mask: 'REAL'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  ShippingActualData selection
) id:Method_DialogShippingActualData_Edit
{
  #keys: '[415136.0.1345221575]'
  Body:
  [*
    // Edit Product(s)
    data := shadow( selection );
    dhDialogData.Data( &data );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Method_OnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_DialogShippingActualData_OnOK
{
  #keys: '[415136.0.1345221579]'
  Body:
  [*
    // onOK for ProductDialog
    // When the user clicks ok,
    // we either create or edit the data
    this.ApplyChanges();
    data := dhDialogData.Data();
    //if( isnull( data.WrappedInstance() ) ) // New
    //{
    //  data.Commit();
    //  dhForm.Data().ListChangeLossSetting().SelectByKey( data.WrappedInstance().Key() );
    //}
    //else
    //{
      data.Commit();
    data.WrappedInstance().SyncTable( InterfaceDataset );
    //}
    this.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[415136.0.1345221307]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[415136.0.1345221306]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogShippingActualData/_ROOT_Component_DialogShippingActualData.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogShippingActualData
{
  #keys: '[415136.0.1345221293]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component dhDialogData
    {
      #keys: '[415136.0.1345221434]'
      BaseType: 'WebDataHolder'
      Databinding: 'shadow[ShippingActualData]*'
      Properties:
      [
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Image: 'SHIPS_WHEEL'
    Padding: 'false'
    Title: 'Shipping actual data'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSMS64/Method_OnOk.def
@@ -18,8 +18,8 @@
    if( WebMessageBox::Question( this, '是否确认推送', 'OK|Cancel' ) = 0 ){
      currentuser     := QuintiqUser::CurrentUser().DisplayName();
      
      AOnlineAndMOfflinePlanMS64::GenerateData( InterfaceDataset, ddslFactory.Text(), dsStartDate.Date(), dsEndDate.Date(), efVersionFrom.Text(), efVersionTo.Text(), cbActiveVersion.Checked(), dhProducts.Data(), currentuser );
      WebMessageBox::Success( "推送成功!" );
      msg             := AOnlineAndMOfflinePlanMS64::GenerateData( InterfaceDataset, ddslFactory.Text(), dsStartDate.Date(), dsEndDate.Date(), efVersionFrom.Text(), efVersionTo.Text(), cbActiveVersion.Checked(), dhProducts.Data(), currentuser );
      WebMessageBox::Success( msg );
    }
    Form.Close();
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogZEDPPSPIR/Method_OnOk.def
@@ -7,8 +7,8 @@
  [*
    Form.ApplyChanges();
    if( WebMessageBox::Question( this, '是否确认推送', 'OK|Cancel' ) = 0 ){
      AOnlineAndMOfflinePlanPIR::GenerateData( InterfaceDataset, ddslFactory.Text(), efVersion.Text(), dsStartDate.Date(), dsEndDate.Date(), QuintiqUser::CurrentUser().DisplayName() );
      WebMessageBox::Success( "推送成功!" );
      msg   := AOnlineAndMOfflinePlanPIR::GenerateData( InterfaceDataset, ddslFactory.Text(), efVersion.Text(), dsStartDate.Date(), dsEndDate.Date(), QuintiqUser::CurrentUser().DisplayName() );
      WebMessageBox::Success( msg );
    }
    Form.Close();
  *]
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_ListInterfaceShippingData.def
@@ -39,4 +39,22 @@
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListInterfaceShippingData_WebMenu_OnClick
    {
      #keys: '[415136.0.1345221879]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[2035.0.6361849]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Component_listContextMenuInterfaceShippingData.def
@@ -3,6 +3,20 @@
{
  #keys: '[415136.0.1330021161]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuInterfaceShippingData
    {
      #keys: '[415136.0.1345221911]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PENCIL'
        Taborder: 3
        Title: 'Edit Quantity'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceShippingData/Response_ListInterfaceShippingData_MenuInterfaceShippingData_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: ListInterfaceShippingData
Response OnClick (
  ShippingActualData selection
) id:Response_ListInterfaceShippingData_MenuInterfaceShippingData_OnClick
{
  #keys: '[415136.0.1345221962]'
  CanBindMultiple: false
  DefinitionID => /ListInterfaceShippingData/Responsedef_ListInterfaceShippingData_WebMenu_OnClick
  Initiator: 'MenuInterfaceShippingData'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogShippingActualData );
      dlg.Edit( selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_ListSingleShiftConfig.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListSingleShiftConfig
{
  #keys: '[414996.1.249001923]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorSingleShiftConfig
    {
      #keys: '[414996.1.249001924]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'Unit.SingleShiftConfig'
      ]
    }
    #child: listActionBarPageSingleShiftConfig
    Component DataSetLevelSingleShiftConfig
    {
      #keys: '[414996.1.249001929]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuSingleShiftConfig
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Unit.ID","title":"产线","subtotals":"","tooltip":"","width":-1,"display":"always","attribute":"Unit.ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ShiftName","title":"班次名称","subtotals":"","tooltip":"","width":-1,"display":"always","editable":false,"attribute":"ShiftName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SingleShiftName","title":"单班次名称","subtotals":"","tooltip":"","width":-1,"display":"always","editable":false,"attribute":"SingleShiftName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StandardYield","title":"标准产量","subtotals":"","tooltip":"","width":-1,"display":"always","editable":false,"attribute":"StandardYield"}}]'
        ContextMenu: 'listContextMenuSingleShiftConfig'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_PanelSingleShiftConfig.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component PanelSingleShiftConfig
{
  #keys: '[414996.1.249001892]'
  BaseType: 'WebPanel'
  Children:
  [
    Component bImport
    {
      #keys: '[414996.1.249002496]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'IMPORT1'
        Taborder: 0
      ]
    }
    Component bExport
    {
      #keys: '[414996.1.249002508]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_PanelSingleShiftConfig497.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelSingleShiftConfig497
{
  #keys: '[414996.1.249001910]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListSingleShiftConfig
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_listActionBarPageSingleShiftConfig.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageSingleShiftConfig
{
  #keys: '[414996.1.249001926]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Component_listContextMenuSingleShiftConfig.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuSingleShiftConfig
{
  #keys: '[414996.1.249001931]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Response_PanelSingleShiftConfig_bExport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelSingleShiftConfig/bExport
Response OnClick () id:Response_PanelSingleShiftConfig_bExport_OnClick
{
  #keys: '[414996.1.253440400]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      Application.Download( "MP_SingleShiftConfig.xlsx",SingleShiftConfig::Export( MacroPlan ).AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/Response_PanelSingleShiftConfig_bImport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: PanelSingleShiftConfig/bImport
Response OnClick () id:Response_PanelSingleShiftConfig_bImport_OnClick
{
  #keys: '[414996.1.253361016]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      try {
        uploadJsonString := Application.GetFile();
        if ( uploadJsonString <> "" ) {
          uploadJson := JSON::Parse( uploadJsonString );
          Archive::VerifyTheFileName( uploadJson );
          fileName := uploadJson.Get( "name" ).GetString();
          base64String := uploadJson.Get( "data" ).GetString();
          webFileBinaryData := BinaryData::FromBase64EncodedString( base64String ).AsBinaryValue();
          generalExcelImportAndExportDataSource := GeneralExcelImportAndExportDataSource::Upload( RecycleBin, webFileBinaryData, fileName );
          generalExcelImportAndExportDataSource.ReadStructure();
          selection := select( generalExcelImportAndExportDataSource, GeneralExcelImportAndExportDataTable, tempGEIAEDT, tempGEIAEDT.Name() = "SingleShiftConfig" );
          SingleShiftConfig::Import( MacroPlan, selection );
          // åŽç»­åˆ é™¤
          generalExcelImportAndExportDataSource.Delete();
          WebMessageBox::Success( Translations::A_VWED_Success() );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormSingleShiftConfig/_ROOT_Component_FormSingleShiftConfig.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormSingleShiftConfig
{
  #keys: '[414996.1.249001853]'
  BaseType: 'WebForm'
  Children:
  [
    #child: PanelSingleShiftConfig497
    #child: PanelSingleShiftConfig
  ]
  Properties:
  [
    Title: '单班次配置'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/MaintenanceSingleShiftConfig.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,199 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormSingleShiftConfig
      {
        title: 'QMacroPlanner::FormSingleShiftConfig'
        shown: true
        componentID: 'QMacroPlanner::FormSingleShiftConfig'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 25
          columnPosition: 1
          columnSpan: 9
        }
        components
        {
          FormSingleShiftConfig_PanelSingleShiftConfig
          {
            sizeRatio: 1
          }
          FormSingleShiftConfig_PanelSingleShiftConfig497
          {
            sizeRatio: 1
          }
          FormSingleShiftConfig_ListSingleShiftConfig
          {
          }
          FormSingleShiftConfig_DataSetLevelSingleShiftConfig
          {
            groupDepth: -1
            column_Unit_ID
            {
              columnId: 'Unit.ID'
              dataPath: 'Unit.ID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_ShiftName
            {
              columnId: 'ShiftName'
              dataPath: 'ShiftName'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_SingleShiftName
            {
              columnId: 'SingleShiftName'
              dataPath: 'SingleShiftName'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_StandardYield
            {
              columnId: 'StandardYield'
              dataPath: 'StandardYield'
              dataType: 'real'
              index: 3
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormOptimizerPuzzles
      {
        title: 'Optimizer Puzzles'
        shown: false
        componentID: 'FormOptimizerPuzzles'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormOptimizerPuzzles_ListOptimizerPuzzles
          {
          }
          FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: 'Name'
              index: 1
              subtotals: ''
              width: 109
            }
            column_Description
            {
              columnId: 'Description'
              dataPath: 'Description'
              dataType: 'string'
              title: 'Description'
              index: 2
              subtotals: ''
              width: 207
            }
          }
        }
      }
      form_FormKPI
      {
        title: 'KPI Dashboard'
        shown: true
        componentID: 'FormKPI'
        layout
        {
          mode: 'dockright'
          index: 1
        }
        components
        {
          FormKPI_PanelKPI
          {
            sizeRatio: 1
            activeChild: 'PanelKPISelection'
          }
          FormKPI_PanelKPIDashboard
          {
            sizeRatio: 1
          }
          FormKPI_PanelKPISelection
          {
            sizeRatio: 1
          }
          FormKPI_ListKPISelection
          {
            QuillViewData
            {
              Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume'
            }
          }
          FormKPI_DataSetLevelKPISelection
          {
            groupDepth: -1
            column_All_constraints
            {
              columnId: 'All constraints'
              dataPath: 'All constraints'
              dataType: 'string'
              title: 'All constraints'
              index: 0
              subtotals: ''
              width: 32
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              title: 'Name'
              index: 1
              subtotals: ''
              width: 200
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    image: 'GEAR'
    page: ''
    group: ''
    index: 0
    description: ''
  }
  formatversion: 2
  id: 'MaintenanceSingleShiftConfig'
  name: 'MaintenanceSingleShiftConfig'
  isglobal: false
  isroot: true
}
_var/_Main/Data/MP_SingleShiftConfig.xlsx
Binary files differ