xiaoding721
2023-11-10 705a6b5b359bb5b5fec977f85fb00bf135dd29cb
新增操作日志记录IP地址功能
已添加16个文件
已修改1个文件
已删除4个文件
279 ■■■■ 文件已修改
_Main/BL/Relations/Relation_Flag_MacroPlan_MacroPlan_Flag.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_IPAddressCache_GlobalOTDLog_GlobalOTDLog_IPAddressCache.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DecisionLog/Attribute_IPAddress.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DecisionLog/Method_SetIPAddress.qbl 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DecisionLog/StaticMethod_Create.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DecisionLog/StaticMethod_SetIPAddress.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DecisionLog/_ROOT_Type_DecisionLog.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Flag/Attribute_flag.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Flag/DefaultValue_flag.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Flag/_ROOT_Type_Flag.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_IPAddressCache/Attribute_IPAddress.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_IPAddressCache/Attribute_LoginTime.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_IPAddressCache/Attribute_UserName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_IPAddressCache/StaticMethod_SaveAddress.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_IPAddressCache/_ROOT_Type_IPAddressCache.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_OnCreated.def 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormDecisionLog/Component_ListDecisionLog.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormDecisionLog/Response_TIANMA_JITUAN_ListDecisionLog_OnClickElement.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormDecisionLog/Response_TIANMA_JITUAN_ListDecisionLog_OnCreated.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlanner/Component_FormDecisionLog/_ROOT_Component_FormDecisionLog.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_Flag_MacroPlan_MacroPlan_Flag.qbl
文件已删除
_Main/BL/Relations/Relation_IPAddressCache_GlobalOTDLog_GlobalOTDLog_IPAddressCache.qbl
对比新文件
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation IPAddressCache_GlobalOTDLog_GlobalOTDLog_IPAddressCache
{
  #keys: '1[414996.0.81754754]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide GlobalOTDLog
  {
    #keys: '3[414996.0.81754756][414996.0.81754755][414996.0.81754757]'
    Cardinality: '0to1'
    ObjectDefinition: IPAddressCache
    OwningSide: 'Reference'
  }
  RelationSide.RightSide IPAddressCache
  {
    #keys: '3[414996.0.81754759][414996.0.81754758][414996.0.81754760]'
    Cardinality: '1toN'
    ObjectDefinition: GlobalOTDLog
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_DecisionLog/Attribute_IPAddress.qbl
对比新文件
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IPAddress
{
  #keys: '3[414996.0.89381188][414996.0.89381187][414996.0.89381189]'
  ValueType: String
}
_Main/BL/Type_DecisionLog/Method_SetIPAddress.qbl
对比新文件
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method SetIPAddress (
  GlobalOTDLog IPAddressCache
)
{
  TextBody:
  [*
    // Akari Nov-10-2023 (created)
    ipAddresses := selectsortedset( IPAddressCache,IPAddressCache,iac,iac.UserName() = this.User() and iac.LoginTime() <= this.Timestamp(),iac.LoginTime());
    if( not isnull( ipAddresses) and ipAddresses.Size() <> 0 ){
       this.IPAddress( ipAddresses.Element( ipAddresses.Size() - 1 ).IPAddress() );
    //   for( i := 0 ; i< ipAddresses.Size() - 1 ; i++){
    //      ipAddresses.Element( i ).Delete();
    //   }
    }
  *]
}
_Main/BL/Type_DecisionLog/StaticMethod_Create.qbl
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  MacroPlan owner,
  String description
) #extension
{
  TextBody:
  [*
    // yosia Jun-14-2012 (created)
    dl := owner.DecisionLog( relnew, Description := description );
    dl.Timestamp( DateTime::Now() );
    dl.User( GlobalParameters_MP::GetUserName() );
  *]
}
_Main/BL/Type_DecisionLog/StaticMethod_SetIPAddress.qbl
对比新文件
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SetIPAddress (
  MacroPlan owner,
  GlobalOTDLog IPAddressCache
)
{
  TextBody:
  [*
    // Akari Nov-10-2023 (created)
    traverse( owner,DecisionLog,decisionLog,decisionLog.IPAddress() = ''){
      decisionLog.SetIPAddress( IPAddressCache );
    }
  *]
}
_Main/BL/Type_DecisionLog/_ROOT_Type_DecisionLog.qbl
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DecisionLog #extension
{
}
_Main/BL/Type_Flag/Attribute_flag.qbl
文件已删除
_Main/BL/Type_Flag/DefaultValue_flag.qbl
文件已删除
_Main/BL/Type_Flag/_ROOT_Type_Flag.qbl
文件已删除
_Main/BL/Type_IPAddressCache/Attribute_IPAddress.qbl
对比新文件
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IPAddress
{
  #keys: '3[414996.0.81754661][414996.0.81754660][414996.0.81754662]'
  ValueType: String
}
_Main/BL/Type_IPAddressCache/Attribute_LoginTime.qbl
对比新文件
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute LoginTime
{
  #keys: '3[414996.0.81754772][414996.0.81754771][414996.0.81754773]'
  ValueType: DateTime
}
_Main/BL/Type_IPAddressCache/Attribute_UserName.qbl
对比新文件
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UserName
{
  #keys: '3[414996.0.81754651][414996.0.81754650][414996.0.81754652]'
  ValueType: String
}
_Main/BL/Type_IPAddressCache/StaticMethod_SaveAddress.qbl
对比新文件
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SaveAddress (
  GlobalOTDLog owner,
  String IPAddress
)
{
  TextBody:
  [*
    // Akari Nov-10-2023 (created)
    owner.IPAddressCache(relnew,IPAddress := IPAddress,UserName := GlobalParameters_MP::GetUserName(),LoginTime := DateTime::Now());
  *]
}
_Main/BL/Type_IPAddressCache/_ROOT_Type_IPAddressCache.qbl
对比新文件
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type IPAddressCache
{
  #keys: '5[414996.0.81754647][414996.0.81754645][0.0.0][414996.0.81754646][414996.0.81754648]'
  BaseType: Object
  StructuredName: 'IPAddressCaches'
}
_Main/UI/MacroPlanner/Component_ApplicationLibMacroPlanner/Response_OnCreated.def
对比新文件
@@ -0,0 +1,58 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_ApplicationLibMacroPlanner_OnCreated #extension
{
  Body:
  [*
    // Update application title.
    this.SelectScenarioManager();
    LabelPeriodRollStatus.Visible( [Boolean] ValueHolderPeriodRollStatus.Value() );
    if( not isnull( ScenarioManager ) )
    {
      if( not isnull( MacroPlan ) )
      {
        // Check that current scenario is created by current user
        // or is authorized for the current user
        scenario := select( ScenarioManager,
                            ScenarioNode.astype( Scenario ),
                            node,
                            node.DatasetMDSID() = MacroPlan.MDSID()
                            and this.IsAuthorizedScenario( node ) )
        if ( isnull( scenario ) )
        {
          // false, deselect current scenario and select something else
          this.DeselectScenario( null( internal[GUIComponent] ), MacroPlan );
          scenario := select( ScenarioManager,
                              ScenarioNode.astype( Scenario ),
                              node,
                              this.IsAuthorizedScenario( node ) )
        }
        ApplicationLibMacroPlanner.SelectScenario( scenario );
      }
      if( ScenarioManager.ScenarioMP( relsize ) = 0 )
      {
        // Create and launch start-up wizard
        ApplicationLibMacroPlanner.LaunchStartUpWizard();
      }
    }
    ApplicationLibMacroPlanner.EnableWorkflow( guard( SWF_WorkflowDataset.IsWorkflowEnabled(), false ) );
    // Configure menus, hide menus with all of their submenus hidden due to functionalities
    if( not isnull( MPDomainHandler ) )
    {
      this.ConfigureMenus();
    }
    // Select default representation MacroPlanner instead of Global
    Application.RepresentationManager().SelectRepresentation( "MacroPlanner" );
    if ( not isnull( GlobalOTDLog )){
      IPAddressCache::SaveAddress( GlobalOTDLog,Application.ClientIPAddress());
    }
  *]
}
_Main/UI/MacroPlanner/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -39,8 +39,8 @@
      ]
      Properties:
      [
        Height: 482
        Width: 533
        Height: 39
        Width: 237
        ModeledStringList ChildOrdering
        {
          c: mbMainMenu
_Main/UI/MacroPlanner/Component_FormDecisionLog/Component_ListDecisionLog.def
对比新文件
@@ -0,0 +1,4 @@
Quintiq file version 2.0
Component ListDecisionLog #extension
{
}
_Main/UI/MacroPlanner/Component_FormDecisionLog/Response_TIANMA_JITUAN_ListDecisionLog_OnClickElement.def
对比新文件
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ListDecisionLog
Response OnClickElement (
  DecisionLog element
) id:Response_TIANMA_JITUAN_ListDecisionLog_OnClickElement
{
  #keys: '[414996.0.84396833]'
  Body:
  [*
    if ( element.IPAddress() = '' ){
      element.SetIPAddress( GlobalOTDLog  );
    }
  *]
  CanBindMultiple: false
  DefinitionID: 'Responsedef_List_OnClickElement'
}
_Main/UI/MacroPlanner/Component_FormDecisionLog/Response_TIANMA_JITUAN_ListDecisionLog_OnCreated.def
对比新文件
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: ListDecisionLog
Response OnCreated () id:Response_TIANMA_JITUAN_ListDecisionLog_OnCreated
{
  #keys: '[414996.0.84396556]'
  Body:
  [*
    DecisionLog::SetIPAddress( MacroPlan,GlobalOTDLog );
  *]
  CanBindMultiple: false
  DefinitionID: 'Responsedef_GUIComponent_OnCreated'
}
_Main/UI/MacroPlanner/Component_FormDecisionLog/_ROOT_Component_FormDecisionLog.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: LibMacroPlannerTCUI
OrphanComponent FormDecisionLog #extension
{
  Children:
  [
    #child: ListDecisionLog
  ]
}