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