eServiceCloud 分析模型 - CassiniLaw/KnowledgeBase GitHub Wiki

BulkPlant 页面

需求

Rebuild Bulk Plant Page

View及ViewModel关系

classDiagram
  namespace Pages.Views {
    class DistrictFilters {
        +checkbox[] Area 
        +checkbox[] Districts
        +Click(checkbox)
    }
    class BulkPlantFilters {
        +textbox Status
        +textbox Client
        +textbox Rig
        +textbox BulkPlant
        +TextChanged(textbox)
    }
    class BulkPlantPage {
    }
    class BlendRequestPanel {
    }
    class BlendRequestGrid {
        +column BlendRequestNumber
        +column BlendName
        +column RequestedAmount
        +column ClientName
        +column RigName
        +column BlendStatus
        +column EstimateLoadTime
        +column ExpectedOnLocationTime
        +ColumnHeaderClick(column)
    }
    class BinPanel {
    }
    class BinListView {
        +icon Bin
        +column BinName
        +column BaseBlendName
        +column RemainsAmount
        +column TestingStatus
        +ColumnHeaderClick(column)
        +MouseOver(row)
    }
    class UpcomingJobView {
        +column BlendRequestNumber
        +column BlendDescription
        +column RigName
        +column ClientName
        +column CallSheetNumber
        +Show()
    }
  }

  namespace Pages.ViewModels {
    class BlendRequestPanel.BlendRequestViewModel {
        +string BlendRequestNumber
        +string BlendName
        +string RequestedAmount
        +string ClientName
        +string RigName
        +string BlendStatus
        +string EstimateLoadTime
        +string ExpectedOnLocationTime
    }
    class BinPanel.BinViewModel {
        +string BinName
        +string BaseBlendName
        +string RemainsAmount
        +string TestingStatus
    }
    class BinPanel.UpcomingJobViewModel {
        +string BlendRequestNumber
        +string BlendDescription
        +string RigName
        +string ClientName
        +string CallSheetNumber
    }
}

BulkPlantPage *--> DistrictFilters
BulkPlantPage *--> BulkPlantFilters
BulkPlantPage *--> BlendRequestPanel
BlendRequestPanel *--> BlendRequestGrid
BulkPlantPage *--> BinPanel
BinPanel *--> BinListView
BinPanel *--> UpcomingJobView

BlendRequestPanel o--> "*" BlendRequestPanel.BlendRequestViewModel : list filtered by BulkPlantFilters
BinPanel o--> "*" BinPanel.BinViewModel : list filtered by BulkPlantFilters
BinPanel o--> "*" BinPanel.UpcomingJobViewModel : list filtered by BulkPlantFilters

Actor及View交互


sequenceDiagram
  actor Operator
  box Pages.Views
    participant DistrictFilters
    participant BulkPlantFilters
    participant BulkPlantPage
    participant BlendRequestPanel
    participant BlendRequestGrid
    participant BinPanel
    participant BinListView
    participant UpcomingJobView
  end

  box Pages.ViewModels
    participant BlendRequestPanel.BlendRequestViewModel
    participant BinPanel.BinViewModel
    participant BinPanel.UpcomingJobViewModel
  end

Operator ->> BulkPlantPage : Click Main Menu to Load
BulkPlantPage ->> DistrictFilters :  Initialize Load Area and Districts
BulkPlantPage ->> BulkPlantFilters :  Initialize All TextBox filled with All
BulkPlantPage ->> BlendRequestPanel : Initialize
BlendRequestPanel ->> BlendRequestPanel : LoadBlendRequest(DistrictFilters, BulkPlantFilters)
BlendRequestPanel.BlendRequestViewModel -->> BlendRequestPanel : 
BlendRequestPanel ->> BlendRequestGrid : Fill(BlendRequestPanel.BlendRequestViewModel[])
BulkPlantPage ->> BinPanel : Initialize
BinPanel ->> BinPanel : LoadBin(DistrictFilters, BulkPlantFilters)
BinPanel.BinViewModel -->> BinPanel : 
BinPanel  ->> BinListView : Fill(BinPanel.BinViewModel[])

opt
  Operator ->> BlendRequestGrid : Header sorting function
  BlendRequestGrid ->>  BlendRequestGrid : ColumnHeaderClick(column) 
end

opt
  alt
    Operator ->> DistrictFilters : Click(checkbox)
  else
    Operator ->> BulkPlantFilters : TextChanged(textbox)
  end
  BlendRequestPanel ->> BlendRequestPanel : LoadBlendRequest(DistrictFilters, BulkPlantFilters)
  BlendRequestPanel.BlendRequestViewModel -->> BlendRequestPanel : 
  BlendRequestPanel ->> BlendRequestGrid : Fill(BlendRequestPanel.BlendRequestViewModel[])
  BinPanel ->> BinPanel : LoadBin(DistrictFilters, BulkPlantFilters)
  BinPanel.BinViewModel -->> BinPanel : 
  BinPanel  ->> BinListView : Fill(BinPanel.BinViewModel[])
end

opt
  Operator ->> BinListView : MouseOver(cell)
  BulkPlantPage ->> UpcomingJobView : Show()
end

ProductHualPage页面

需求

Rebuild Product Haul Page

View及ViewModel关系

classDiagram
  namespace Pages.Views {
    class DistrictFilters {
        +checkbox[] Area 
        +checkbox[] Districts
        +Click(checkbox)
    }
    class ProductHaulFilters {
        +textbox CallSheet
        +textbox Rig
        +textbox Crew
        +textbox Client
        +textbox Blend
        +textbox Status
        +TextChanged(textbox)
    }
    class ProductHaulPage {
    }
    class ProductHaulPanel {
        +LoadProductHual(DistrictFilters, ProductHaulFilters)
    }
    class ProductHaulGrid {
        +column BlendRequestNumber
        +column BlendName
        +column RigName
        +column FromLocationName
        +column ToLocationName
        +column FromBinNumber
        +column ToBinNumber
        +column CallSheetNumber
        +column Crew
        +column ClientName
        +column BlendStatus
        +column HualType
        +ColumnHeaderClick(column)
        +CellClick(cell)
    }
    class ShipLoadSheetView {
        +button Print
        +Show()
        +ButtonClick(button)
    }
    class PrintShipLoadSheetView {
    }
  }

  namespace Pages.ViewModels {
    class ProductHaulPanel.ProductHaulViewModel {
        +string BlendRequestNumber
        +string BlendName
        +string RigName
        +string FromLocationName
        +string ToLocationName
        +string FromBinNumber
        +string ToBinNumber
        +string CallSheetNumber
        +string Crew
        +string ClientName
        +string BlendStatus
        +string HualType
    }
  }

ProductHaulPage *--> DistrictFilters
ProductHaulPage *--> ProductHaulFilters
ProductHaulPage *--> ProductHaulPanel
ProductHaulPanel *--> ProductHaulGrid
ProductHaulPage *-->  ShipLoadSheetView
ProductHaulPage ..> PrintShipLoadSheetView

ProductHaulPanel o--> "*" ProductHaulPanel.ProductHaulViewModel

Actor及View交互

sequenceDiagram
  actor Operator
  box Pages.Views
    participant ProductHaulPage
    participant DistrictFilters
    participant ProductHaulFilters
    participant ProductHaulPanel
    participant ProductHaulGrid
    participant ShipLoadSheetView
    participant PrintShipLoadSheetView
  end

  box Pages.ViewModels {
    participant ProductHaulPanel.ProductHaulViewModel
  end

Operator ->> ProductHaulPage : Click Main Menu to Load
ProductHaulPage ->> DistrictFilters :  Initialize Load Area and Districts
ProductHaulPage ->> ProductHaulFilters :  Initialize All TextBox filled with All
ProductHaulPage ->> ProductHaulPanel : Initialize
ProductHaulPanel ->> ProductHaulPanel : LoadProductHual(DistrictFilters, ProductHaulFilters)
ProductHaulPanel.ProductHaulViewModel -->> ProductHaulPanel : 
ProductHaulPanel ->> ProductHaulGrid : Fill(ProductHaulPanel.ProductHaulViewModel[])

opt
	Operator ->> ProductHaulGrid : Header sorting function
	ProductHaulGrid ->>  ProductHaulGrid : ColumnHeaderClick(column) 
end

opt
	Operator ->> DistrictFilters : Click(checkbox)
    ProductHaulPanel ->> ProductHaulPanel : LoadProductHual(DistrictFilters, ProductHaulFilters)
    ProductHaulPanel.ProductHaulViewModel -->> ProductHaulPanel : 
    ProductHaulPanel ->> ProductHaulGrid : Fill(ProductHaulPanel.ProductHaulViewModel[])
end

opt
	Operator ->> ProductHaulFilters : TextChanged(textbox)
    ProductHaulPanel ->> ProductHaulPanel : LoadProductHual(DistrictFilters, ProductHaulFilters)
    ProductHaulPanel.ProductHaulViewModel -->> ProductHaulPanel : 
    ProductHaulPanel ->> ProductHaulGrid : Fill(ProductHaulPanel.ProductHaulViewModel[])
end

opt
	Operator ->> ProductHaulGrid : CellClick(cell)
	ProductHaulPage ->>  ShipLoadSheetView : Show()
	opt
		Operator ->> ShipLoadSheetView : ButtonClick(button)
		ProductHaulPage ->> PrintShipLoadSheetView : Show()
	end
end


ViewModel及Model关系

classDiagram
  namespace Pages.ViewModels {
    class ProductHaulLoadPanel.ProductHaulLoadViewModel {
        +string ProductHaulLoadNumber
        +string BlendName
        +string RequestedAmount
        +string ClientCompanyName
        +string RigName
        +string BlendStatus
        +string EstimateLoadTime
        +string ExpectedOnLocationTTime
    }
    class BinPanel.BinViewModel {
        +string BinName
        +string BaseBlendName
        +string RemainsAmount
        +string TestingStatus
    }
    class BinPanel.UpcomingJobViewModel {
        +string ProductHaulLoadNumber
        +string BlendDescription
        +string RigName
        +string ClientCompanyName
        +string CallSheetNumber
    }
    class ProductHaulListView.ProductHaulViewModel {
        +string ProductHaulLoadNumber
        +string BlendName
        +string RigName
        +string FromLocationName
        +string ToLocationName
        +string FromBinNumber
        +string ToBinNumber
        +string CallSheetNumber
        +string Crew
        +string ClientCompanyName
        +string BlendStatus
        +string HualType
    }
  }

  namespace Models {
    class Area {
        +string Name
    }
    class District {
        +string Name
    }
    class ClientCompany {
        +string Name
    }
    class Employee {
        +string FirstName
        +string LastName
    }
    
    class CallSheet {
        +int Number
    }
    
    class Rig {
        +string Name
    }
    class Blend {
        +string Name
    }
    class BulkPlantStatus {
        +string Name
    }
    class ProductHaulLoad {
        +int Number
        +decimal Amount
    }
    class ProductHaulLoadStatus {
        +string Name
    }
    class ProductHaulType {
        +string Name
    }
    class ProductHaul {
        +int Id
    }
    
    class BinInformation {

    }
    class ShippingLoadSheet {
        +int Id
    }
  }


 Area "1" -- "*" District

Rig o--> Blend 
 
ProductHaulLoadPanel.ProductHaulLoadViewModel ..> ProductHaulLoad
BinPanel.BinViewModel ..> ProductHaulLoad
BinPanel.UpcomingJobViewModel ..> ProductHaulLoad

ProductHaulListView.ProductHaulViewModel --> ProductHaul
ProductHaulListView.ProductHaulViewModel --> ProductHaulLoad

ProductHaul "*" --  "*" ProductHaulLoad 
ProductHaul -->  "1" ProductHaulType : type.Name

ProductHaulLoad -->  "1" Blend : blend.Name
ProductHaulLoad -->  "1" Rig : rig.Name
ProductHaulLoad -->  "*" Employee : crew Employee.FirstName
ProductHaulLoad -->  "1" BinInformation : from.Number
ProductHaulLoad -->  "1" BinInformation : to.Number
ProductHaulLoad -->  "1" ShippingLoadSheet : shippingLoadSheet
ProductHaulLoad -->  "1" CallSheet : callSheetNumber
ProductHaulLoad -->  "1" ClientCompany : ClientCompany.Name
ProductHaulLoad -->  "1" ProductHaulLoadStatus : status.Name

BinInformation -->  Bin
ShippingLoadSheet -->  BinInformation
Rig -->  BinInformation

DistrictFilters --> "*" Area : area.Name

BulkPlantFilters ..> "*" BulkPlantStatus : all Status 
BulkPlantFilters ..> "*" Rig : all Rigs 
BulkPlantFilters ..> "*" Employee : all Crews 
BulkPlantFilters ..> "*" ClientCompany : all ClientCompanys 

ProductHaulFilters ..> "*" CallSheet : all CallSheets 
ProductHaulFilters ..> "*" Rig : all Rigs 
ProductHaulFilters ..> "*" Employee : all Crews 
ProductHaulFilters ..> "*" ClientCompany : all ClientCompanys 
ProductHaulFilters ..> "*" Blend : all Blends 
ProductHaulFilters ..> "*" ProductHaulLoadStatus : all Status