Logistics Process ‐ Sustainment - Sanjel-Energy-Services/eService_WorkItems GitHub Wiki
Sequence Diagram for overall Logistics Process
sequenceDiagram
actor LogisticsDispatch as Logistics Dispatch
participant RigBoard as Rig Board
participant BulkPlant as Bulk Plant
participant CrewMgmt as Crew Management
participant JobBoard as Job Board
LogisticsDispatch->>RigBoard: 1.1. Currently working on Rig board
LogisticsDispatch->>BulkPlant: 1.2. Currently working on Bulk Plant
LogisticsDispatch->>CrewMgmt: 1.3. Currently working on Crew Mgmt
LogisticsDispatch->>JobBoard: 1.4. Currently working on Job Board
LogisticsDispatch->>JobBoard: 2. Want to do more on the Job Board
LogisticsDispatch->>JobBoard: 2.1. Select from left side of bulker job board
LogisticsDispatch->>JobBoard: 2.1.1. Select Product
LogisticsDispatch->>JobBoard: 2.1.2. Select Crew
LogisticsDispatch->>JobBoard: 2.1.3. Select Assign
LogisticsDispatch->>JobBoard: 2.2. Determine Urgency
LogisticsDispatch->>JobBoard: 2.2.1. Job Date/Time
LogisticsDispatch->>JobBoard: 2.2.2. On location data/time
LogisticsDispatch->>JobBoard: 3. Want all jobs to show up on the job board
LogisticsDispatch->>JobBoard: 3.1. Jobs not flagged as need haul, still need to show up
LogisticsDispatch->>JobBoard: 4. Logistics decides go with Bulker Crew
Class Diagram for overall Logistics Process
classDiagram
class LogisticsDispatch {
+ doMoreOnJobBoard()
+ selectProduct()
+ selectCrew()
+ assign()
}
class RigBoard {
+ displayJobs()
+ updateStatus()
}
class BulkPlant {
+ manageInventory()
+ scheduleDelivery()
}
class CrewManagement {
+ assignCrew()
+ trackCrewStatus()
}
class JobBoard {
+ listAvailableJobs()
+ updateJobStatus()
}
LogisticsDispatch --> RigBoard
LogisticsDispatch --> JobBoard
LogisticsDispatch --> BulkPlant
LogisticsDispatch --> CrewManagement
Class Diagram for ViewModels which can reflect the UI structure
classDiagram
class RigBoardViewModel {
}
RigBoardViewModel *--> "*" RigJobViewModel : RigJobViewModels
RigBoardViewModel *--> "1" RetrievalCondition
class RetrievalCondition {
+int BR
+int RD
+int Edm
+int Eds
+int GP
+int FSJ
+int EST
+int SC
+int KD
+int LLD
+int LLB
+int NW
+int DrillingRig
+int ServiceRig
+int IsProjectRig
+int IsPrejobTesting
+int Alerted
+int Pending
+int Confirmed
+int Dispatched
+int Scheduled
+int InProgress
+int Completed
+int IsShowFutureJobs
+bool IsChange
+int PageNumber
}
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class RigJobViewModelBase {
+int RowMergeNumber
+StyledCell SequenceNumber
+StyledCell Rig
+StyledCell Bin
+int Sequence
+bool IsBulkPlant
}
ModelBase~Entity~ <|-- RigJobViewModelBase
RigJobViewModelBase *--> "1" BinSectionModel : BinSectionModel
class BinSectionModel {
}
class RigJobViewModel {
+StyledCell Lsd
+StyledCell Company
+StyledCell Job
+StyledCell Date
+StyledCell Bl1
+StyledCell Bl2
+StyledCell Bl3
+StyledCell Crew
+StyledCell Notes
+StyledCell ConsultantContacts
}
RigJobViewModelBase <|-- RigJobViewModel
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel1
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel2
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel3
RigJobViewModel *--> "1" ConsultantViewModel : ConsultantViewModel
RigJobViewModel *--> "*" RigJobCrewSectionModel : RigJobCrewSectionModels
RigJobViewModel *--> "*" CrewModel : CrewModels
RigJobViewModel *--> "*" ThirdPartyCrewModel : ThirdPartyCrewModels
RigJobViewModel *--> "*" ProductHaulLoad : ProductHaulLoadList
class BlendProductHaulModel {
}
class ConsultantViewModel {
}
class RigJobCrewSectionModel {
}
class CrewModel {
}
class ThirdPartyCrewModel {
}
class ProductHaulLoad {
}
class BulkPlantJobViewModel {
+StyledCell Capacity
+StyledCell BlendInBin
+StyledCell Quantity
+StyledCell TestingStatus
+StyledCell BlendScheduled
+StyledCell ScheduledQuantity
+StyledCell BlendingStatus
+StyledCell RigName
+StyledCell CSNum
+StyledCell ClientName
+StyledCell BinReqNum
+StyledCell BlendReqNum
}
RigJobViewModelBase <|-- BulkPlantJobViewModel
class CrewViewModel {
+StyledCell Units
+StyledCell Workers
+StyledCell JobInformation
+StyledCell Notes
+string CrewType
+int CrewTypeId
+StyledCell Rotation
+string JobInfo
}
ModelBase~Entity~ <|-- CrewViewModel
CrewViewModel *--> "*" TruckUnitModel : UnitModels
CrewViewModel *--> "*" EmployeeModel : EmployeeModels
CrewViewModel *--> "*" ScheduleModel : ScheduleModels
CrewViewModel *--> "*" CrewScheduleViewModel : CrewScheduleViewModels
class TruckUnitModel {
}
class EmployeeModel {
}
class ScheduleModel {
}
class CrewScheduleViewModel{
}
Class Diagram for RigBoard ViewModels
classDiagram
class RigBoardViewModel {
}
RigBoardViewModel *--> "*" RigJobViewModel : RigJobViewModels
RigBoardViewModel *--> "1" RetrievalCondition
class RetrievalCondition {
+int BR
+int RD
+int Edm
+int Eds
+int GP
+int FSJ
+int EST
+int SC
+int KD
+int LLD
+int LLB
+int NW
+int DrillingRig
+int ServiceRig
+int IsProjectRig
+int IsPrejobTesting
+int Alerted
+int Pending
+int Confirmed
+int Dispatched
+int Scheduled
+int InProgress
+int Completed
+int IsShowFutureJobs
+bool IsChange
+int PageNumber
}
class RigJobViewModel {
}
Class Diagram for JobBoard ViewModels
classDiagram
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class RigJobViewModelBase {
+int RowMergeNumber
+StyledCell SequenceNumber
+StyledCell Rig
+StyledCell Bin
+int Sequence
+bool IsBulkPlant
}
ModelBase~Entity~ <|-- RigJobViewModelBase
RigJobViewModelBase *--> "1" BinSectionModel : BinSectionModel
class BinSectionModel {
}
class RigJobViewModel {
+StyledCell Lsd
+StyledCell Company
+StyledCell Job
+StyledCell Date
+StyledCell Bl1
+StyledCell Bl2
+StyledCell Bl3
+StyledCell Crew
+StyledCell Notes
+StyledCell ConsultantContacts
}
RigJobViewModelBase <|-- RigJobViewModel
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel1
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel2
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel3
RigJobViewModel *--> "1" ConsultantViewModel : ConsultantViewModel
RigJobViewModel *--> "*" RigJobCrewSectionModel : RigJobCrewSectionModels
RigJobViewModel *--> "*" CrewModel : CrewModels
RigJobViewModel *--> "*" ThirdPartyCrewModel : ThirdPartyCrewModels
RigJobViewModel *--> "*" ProductHaulLoad : ProductHaulLoadList
class BlendProductHaulModel {
}
class ConsultantViewModel {
}
class RigJobCrewSectionModel {
}
class CrewModel {
}
class ThirdPartyCrewModel {
}
class ProductHaulLoad {
}
Class Diagram for BulkPlant ViewModels
classDiagram
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class RigJobViewModelBase {
+int RowMergeNumber
+StyledCell SequenceNumber
+StyledCell Rig
+StyledCell Bin
+int Sequence
+bool IsBulkPlant
}
ModelBase~Entity~ <|-- RigJobViewModelBase
RigJobViewModelBase *--> "1" BinSectionModel : BinSectionModel
class BinSectionModel {
}
class BulkPlantJobViewModel {
+StyledCell Capacity
+StyledCell BlendInBin
+StyledCell Quantity
+StyledCell TestingStatus
+StyledCell BlendScheduled
+StyledCell ScheduledQuantity
+StyledCell BlendingStatus
+StyledCell RigName
+StyledCell CSNum
+StyledCell ClientName
+StyledCell BinReqNum
+StyledCell BlendReqNum
}
RigJobViewModelBase <|-- BulkPlantJobViewModel
Class Diagram for Crew ViewModels
classDiagram
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class CrewViewModel {
+StyledCell Units
+StyledCell Workers
+StyledCell JobInformation
+StyledCell Notes
+string CrewType
+int CrewTypeId
+StyledCell Rotation
+string JobInfo
}
CrewViewModel *--> "*" TruckUnitModel : UnitModels
CrewViewModel *--> "*" EmployeeModel : EmployeeModels
CrewViewModel *--> "*" ScheduleModel : ScheduleModels
CrewViewModel *--> "*" CrewScheduleViewModel : CrewScheduleViewModels
class TruckUnitModel {
}
class EmployeeModel {
}
class ScheduleModel {
}
class CrewScheduleViewModel{
}
ModelBase~Entity~ <|-- CrewViewModel
Class Diagram for ProductHaulLoadModel
classDiagram
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class ProductHaulLoadModel {
+ int ProductHaulLoadId
+ int ProductHaulId
+ int CallSheetNumber
+ string RigName
+ int RigId
+ string Category
+ string BaseBlend
+ string BaseBlendName
+ double Amount
+ string BulkUnitName
+ string TractorUnitName
+ string Driver
+ string BinNumber
+ int BinId
+ int PodIndex
+ double MixWater
+ double Yield
+ double Density
+ double BulkVolume
+ double SackWeight
+ string ServicePointName
+ string BulkPlantName
+ int BulkPlantId
+ double HaulAmount
+ int BinInformationId
+ string BinInformationName
+ bool IsTotalBlendTonnage
+ double TotalBlendWeight
+ double BaseBlendWeight
+ int BlendSectionId
+ bool IsBlendTest
+ string StatusString
}
ModelBase~Entity~ <|-- ProductHaulLoadModel
中文翻译
整体物流流程的序列图
sequenceDiagram
actor LogisticsDispatch as 后勤调度
participant RigBoard as 钻机看板
participant BulkPlant as 散装工厂
participant CrewMgmt as 作业人员管理
participant JobBoard as 作业看板
LogisticsDispatch->>RigBoard: 1.1. 当前正在处理钻机看板
LogisticsDispatch->>BulkPlant: 1.2. 当前正在处理散装工厂
LogisticsDispatch->>CrewMgmt: 1.3. 当前正在处理作业人员管理
LogisticsDispatch->>JobBoard: 1.4. 当前正在处理作业看板
LogisticsDispatch->>JobBoard: 2. 想要在作业看板上做更多操作
LogisticsDispatch->>JobBoard: 2.1. 从散装作业看板左侧选择
LogisticsDispatch->>JobBoard: 2.1.1. 选择产品
LogisticsDispatch->>JobBoard: 2.1.2. 选择作业人员
LogisticsDispatch->>JobBoard: 2.1.3. 选择分配
LogisticsDispatch->>JobBoard: 2.2. 确定紧急程度
LogisticsDispatch->>JobBoard: 2.2.1. 作业日期/时间
LogisticsDispatch->>JobBoard: 2.2.2. 在现场日期/时间
LogisticsDispatch->>JobBoard: 3. 希望所有作业都能显示在作业看板上
LogisticsDispatch->>JobBoard: 3.1. 即使作业没有标记为需要运输,也需要显示
LogisticsDispatch->>JobBoard: 4. 后勤决定使用散装作业人员
整体物流流程的类图
classDiagram
class LogisticsDispatch {
+ doMoreOnJobBoard()
+ selectProduct()
+ selectCrew()
+ assign()
}
class RigBoard {
+ displayJobs()
+ updateStatus()
}
class BulkPlant {
+ manageInventory()
+ scheduleDelivery()
}
class CrewManagement {
+ assignCrew()
+ trackCrewStatus()
}
class JobBoard {
+ listAvailableJobs()
+ updateJobStatus()
}
LogisticsDispatch --> RigBoard
LogisticsDispatch --> JobBoard
LogisticsDispatch --> BulkPlant
LogisticsDispatch --> CrewManagement
可以反映UI结构的ViewModel类图
classDiagram
class RigBoardViewModel {
}
RigBoardViewModel *--> "*" RigJobViewModel : RigJobViewModels
RigBoardViewModel *--> "1" RetrievalCondition
class RetrievalCondition {
+int BR
+int RD
+int Edm
+int Eds
+int GP
+int FSJ
+int EST
+int SC
+int KD
+int LLD
+int LLB
+int NW
+int DrillingRig
+int ServiceRig
+int IsProjectRig
+int IsPrejobTesting
+int Alerted
+int Pending
+int Confirmed
+int Dispatched
+int Scheduled
+int InProgress
+int Completed
+int IsShowFutureJobs
+bool IsChange
+int PageNumber
}
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class RigJobViewModelBase {
+int RowMergeNumber
+StyledCell SequenceNumber
+StyledCell Rig
+StyledCell Bin
+int Sequence
+bool IsBulkPlant
}
ModelBase~Entity~ <|-- RigJobViewModelBase
RigJobViewModelBase *--> "1" BinSectionModel : BinSectionModel
class BinSectionModel {
}
class RigJobViewModel {
+StyledCell Lsd
+StyledCell Company
+StyledCell Job
+StyledCell Date
+StyledCell Bl1
+StyledCell Bl2
+StyledCell Bl3
+StyledCell Crew
+StyledCell Notes
+StyledCell ConsultantContacts
}
RigJobViewModelBase <|-- RigJobViewModel
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel1
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel2
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel3
RigJobViewModel *--> "1" ConsultantViewModel : ConsultantViewModel
RigJobViewModel *--> "*" RigJobCrewSectionModel : RigJobCrewSectionModels
RigJobViewModel *--> "*" CrewModel : CrewModels
RigJobViewModel *--> "*" ThirdPartyCrewModel : ThirdPartyCrewModels
RigJobViewModel *--> "*" ProductHaulLoad : ProductHaulLoadList
class BlendProductHaulModel {
}
class ConsultantViewModel {
}
class RigJobCrewSectionModel {
}
class CrewModel {
}
class ThirdPartyCrewModel {
}
class ProductHaulLoad {
}
class BulkPlantJobViewModel {
+StyledCell Capacity
+StyledCell BlendInBin
+StyledCell Quantity
+StyledCell TestingStatus
+StyledCell BlendScheduled
+StyledCell ScheduledQuantity
+StyledCell BlendingStatus
+StyledCell RigName
+StyledCell CSNum
+StyledCell ClientName
+StyledCell BinReqNum
+StyledCell BlendReqNum
}
RigJobViewModelBase <|-- BulkPlantJobViewModel
class CrewViewModel {
+StyledCell Units
+StyledCell Workers
+StyledCell JobInformation
+StyledCell Notes
+string CrewType
+int CrewTypeId
+StyledCell Rotation
+string JobInfo
}
ModelBase~Entity~ <|-- CrewViewModel
CrewViewModel *--> "*" TruckUnitModel : UnitModels
CrewViewModel *--> "*" EmployeeModel : EmployeeModels
CrewViewModel *--> "*" ScheduleModel : ScheduleModels
CrewViewModel *--> "*" CrewScheduleViewModel : CrewScheduleViewModels
class TruckUnitModel {
}
class EmployeeModel {
}
class ScheduleModel {
}
class CrewScheduleViewModel{
}
钻机看板ViewModel类图
classDiagram
class RigBoardViewModel {
}
RigBoardViewModel *--> "*" RigJobViewModel : RigJobViewModels
RigBoardViewModel *--> "1" RetrievalCondition
class RetrievalCondition {
+int BR
+int RD
+int Edm
+int Eds
+int GP
+int FSJ
+int EST
+int SC
+int KD
+int LLD
+int LLB
+int NW
+int DrillingRig
+int ServiceRig
+int IsProjectRig
+int IsPrejobTesting
+int Alerted
+int Pending
+int Confirmed
+int Dispatched
+int Scheduled
+int InProgress
+int Completed
+int IsShowFutureJobs
+bool IsChange
+int PageNumber
}
class RigJobViewModel {
}
作业看板ViewModel类图
classDiagram
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class RigJobViewModelBase {
+int RowMergeNumber
+StyledCell SequenceNumber
+StyledCell Rig
+StyledCell Bin
+int Sequence
+bool IsBulkPlant
}
ModelBase~Entity~ <|-- RigJobViewModelBase
RigJobViewModelBase *--> "1" BinSectionModel : BinSectionModel
class BinSectionModel {
}
class RigJobViewModel {
+StyledCell Lsd
+StyledCell Company
+StyledCell Job
+StyledCell Date
+StyledCell Bl1
+StyledCell Bl2
+StyledCell Bl3
+StyledCell Crew
+StyledCell Notes
+StyledCell ConsultantContacts
}
RigJobViewModelBase <|-- RigJobViewModel
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel1
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel2
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel3
RigJobViewModel *--> "1" ConsultantViewModel : ConsultantViewModel
RigJobViewModel *--> "*" RigJobCrewSectionModel : RigJobCrewSectionModels
RigJobViewModel *--> "*" CrewModel : CrewModels
RigJobViewModel *--> "*" ThirdPartyCrewModel : ThirdPartyCrewModels
RigJobViewModel *--> "*" ProductHaulLoad : ProductHaulLoadList
class BlendProductHaulModel {
}
class ConsultantViewModel {
}
class RigJobCrewSectionModel {
}
class CrewModel {
}
class ThirdPartyCrewModel {
}
class ProductHaulLoad {
}
散装工厂ViewModel类图
classDiagram
class ModelBase~Entity~ {
+string LoggedUser
+IMemoryCache _memoryCache
+virtual void PopulateFrom(TEntity entity)
+virtual void PopulateTo(TEntity entity)
}
ModelBase~Entity~ *--> "1" NoteModel : NoteModel
class NoteModel {
}
class RigJobViewModelBase {
+int RowMergeNumber
+StyledCell SequenceNumber
+StyledCell Rig
+StyledCell Bin
+int Sequence
+bool IsBulkPlant
}
ModelBase~Entity~ <|-- RigJobViewModelBase
RigJobViewModelBase *--> "1" BinSectionModel : BinSectionModel
class BinSectionModel {
}
class RigJobViewModel {
+StyledCell Lsd
+StyledCell Company
+StyledCell Job
+StyledCell Date
+StyledCell Bl1
+StyledCell Bl2
+StyledCell Bl3
+StyledCell Crew
+StyledCell Notes
+StyledCell ConsultantContacts
}
RigJobViewModelBase <|-- RigJobViewModel
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel1
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel2
RigJobViewModel *--> "1" BlendProductHaulModel : BlendProductHaulModel3
RigJobViewModel *--> "1" ConsultantViewModel : ConsultantViewModel
RigJobViewModel *--> "*" RigJobCrewSectionModel : RigJobCrewSectionModels
RigJobViewModel *--> "*" CrewModel : CrewModels
RigJobViewModel *--> "*" ThirdPartyCrewModel : ThirdPartyCrewModels
RigJobViewModel *--> "*" ProductHaulLoad : ProductHaulLoadList
class BlendProductHaulModel {
}
class ConsultantViewModel {
}
class RigJobCrewSectionModel {
}
class CrewModel {
}
class ThirdPartyCrewModel {
}
class ProductHaulLoad {
}
mermaid
sequenceDiagram actor LogisticsDispatch as Logistics Dispatch participant RigBoard as Rig Board participant BulkPlant as Bulk Plant participant CrewMgmt as Crew Management participant JobBoard as Job Board
LogisticsDispatch->>RigBoard: 1.1. Currently working on Rig board
LogisticsDispatch->>BulkPlant: 1.2. Currently working on Bulk Plant
LogisticsDispatch->>CrewMgmt: 1.3. Currently working on Crew Mgmt
LogisticsDispatch->>JobBoard: 1.4. Currently working on Job Board
LogisticsDispatch->>JobBoard: 2. Want to do more on the Job Board
LogisticsDispatch->>JobBoard: 2.1. Select from left side of bulker job board
LogisticsDispatch->>JobBoard: 2.1.1. Select Product
LogisticsDispatch->>JobBoard: 2.1.2. Select Crew
LogisticsDispatch->>JobBoard: 2.1.3. Select Assign
LogisticsDispatch->>JobBoard: 2.2. Determine Urgency
LogisticsDispatch->>JobBoard: 2.2.1. Job Date/Time
LogisticsDispatch->>JobBoard: 2.2.2. On location data/time
LogisticsDispatch->>JobBoard: 3. Want all jobs to show up on the job board
LogisticsDispatch->>JobBoard: 3.1. Jobs not flagged as need haul, still need to show up
LogisticsDispatch->>JobBoard: 4. Logistics decides go with Bulker Crew