Logistics Process ‐ Sustainment - CassiniLaw/KnowledgeBase 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