标注覆盖率：Class(73/54.8%) Method(128/53.9%) Property(276/21.0%) Statement(237)
大方法Top10
   ddd.plus.showcase.wms.application.service.ShippingAppService#shipOrder 31
   ddd.plus.showcase.wms.application.service.CheckingAppService#checkByOrder 30
   ddd.plus.showcase.wms.application.service.CheckingAppService#submitTask 28
   ddd.plus.showcase.wms.application.service.CheckingAppService#claimTask 24
   ddd.plus.showcase.wms.application.service.CheckingAppService#recommendPlatformByTaskBacklog 22
   ddd.plus.showcase.wms.application.service.CheckingAppService#recommendPlatformByOrder 21
   ddd.plus.showcase.wms.application.service.CheckingAppService#fulfillCarton 18
   ddd.plus.showcase.wms.domain.common.flow.handler.CartonFulfilledEventHandler#processMyEvent 14
   ddd.plus.showcase.wms.domain.carton.Carton#fulfill 13
模型债：孤儿流程:3 相似类:7 聚合分布[问题聚合:0 类:(Mean:5.14 SD:4.22) 方法:(Mean:7.71 SD:9.38)]
<<Aggregate: 出库复核任务>>
Container 拣货容器.
   [属性]
   Operational   ContainerType
   DCU           containerNo/扫描枪可扫
ContainerBag
   [行为]
      confirmQty() 
   [规则]
      totalSku() 该容器的总商品种类(品数).
      totalQty() 该容器的总要货量.
      totalPendingQty() 
      orderNoSet() 所有的出库单号.
ContainerItem 拣货容器里的商品和数量.
   [属性]
   Structural    OrderLineNo Sku
   Quantity      expectedQty givenQty pendingQty
ContainerItemBag
Task 复核任务.
   [属性]
   Location      Platform
   [行为]
      claimedWith() 
      plan() 初始化时指定复核生产计划
      removeOrderLines() 
   [规则]
      isEmpty() 
      totalSku() 
      totalQty() 
      totalPendingQty() 
      orderNoSet() 
TaskBag
TaskCartons
   [行为]
      contains(UniqueCode) 该任务下所有纸箱里是否已经有该唯一码
TaskOfContainerPending
   [行为]
      confirmQty() 
TaskOfOrderPending
   [行为]
      confirmQty() 
TaskOfSkuPending The hidden class
   [行为]
      confirmQty() 
TaskOrders
TaskStatus 任务的生命周期.
   [属性]
   Structural    Accepted/已接收 Appending Claimed Finished
<<Aggregate: 包裹>>
Pack 包裹.
   [属性]
   Structural    OrderNo WaybillNo
   Lifecycle     PackStatus
   Contextual    cartonNo/包裹明细采集场景
   Billing       totalVolume totalWeight
   [行为]
      fromCarton() 
<<Aggregate: 发货>>
OrderCarton 一个订单的装车清单：纸箱维度.
   [属性]
   Structural    OrderNo
OrderLineManifest 发货的订单行，货品维度.
   [属性]
   Structural    OrderLineNo Sku
ShipManifest 一辆货车的装车清单.
   [属性]
   Structural    Carrier
   Lifecycle     shipStatus
   Reserved      extInfo
   [行为]
      loadForOrder(CartonBag,Order) 为订单装车
      ship() 发货
<<Aggregate: 复核报差异>>
ContainerDiff 复核过程中发现的容器差异.
   [属性]
   Structural    containerNo
   Operational   reason
   Location      platform
   [行为]
      register(DiffReason) 登记差异.
ContainerDiffItem
   [属性]
   Structural    Sku
ContainerDiffItemBag
<<Aggregate: 客户出库单>>
Order 客户的出库单.
   [属性]
   Referential   <color:Red>Carrier</color> <color:Red>Consignee</color> <color:Red>Supplier</color>
   Lifecycle     ProductionStatus 订单状态
   Operational   OrderConstraint
   Contextual    WaybillNo/OFC随单下发
   [行为]
      checkedBy(Operator) 
      recommendPackQty() 推荐该订单使用几个包裹：Pack.
      ship() 
   [规则]
      recommendPackQty() 推荐该订单使用几个包裹：Pack.
      totalExpectedQty() 
      recommendedPlatform() 该订单已经被推荐到哪一个复核台.
   [流程]
      processMyEvent(OrderCheckedEvent)  OrderCheckedEventHandler
OrderCartons
   [行为]
      totalCartonizedQty() 该订单已经装箱的货品件数总和.
OrderLine 订单行.
   [属性]
   Structural    OrderLineNo Sku
   Quantity      qty/要货量 shortageQty/缺货量
OrderLineBag
OrderOfPresale 出库单的预售场景.
OrderPacks
OrderTasks
OrderBag
   [行为]
      canceledBag() 当前出库单集合里哪些已经在单据中心里被客户取消了.
   [规则]
      consumableCostFirst() 
<<Aggregate: 装箱>>
Carton 纸箱，它会成为包裹.
   [属性]
   Lifecycle     status
   Operational   cartonizationRule
   KPI           fulfillTime
   Location      Platform
   [行为]
      bindOrder() 
      deductConsumableInventory() 
      fulfill() 箱满了
      installConsumables() 向纸箱添加耗材.
      transferFrom(CheckResult) 
   [规则]
      cartonizationRule() 装箱规则，利用gateway延迟加载，规则也是规约.
   [流程]
      recommendFor(ICarton,ITask) 为纸箱推荐耗材 IConsumableExt
      processMyEvent(CartonFulfilledEvent)  CartonFulfilledEventHandler
CartonItem 纸箱里个某一种sku.
   [属性]
   Structural    sku
   Referential   <color:Red>orderLineNo</color>
   Quantity      checkedQty
CartonItemBag
CartonOrder
Consumable 耗材，被放入纸箱，以便运输安全.
   [属性]
   Structural    CartonNo OrderNo TaskNo/任务号
   Quantity      qty
   Location      Platform
ConsumableBag
Pallet 栈板，物流领域也称为托盘.
   [属性]
   Structural    PalletNo TaskNo
   [行为]
      fulfill() 
CartonBag
   [行为]
      deductConsumableInventory() 
      fulfill() 
      putOnPallet() 
<<Aggregate: 通用子域>>
Sku 货品.
   [属性]
   Structural    Owner PackCode
   Contextual    LotNo snList uniqueCode
<<用户交互>>
CheckingAppService
   checkByOrder(orderNo) 把一个出库单的所有货品一次性放到入参指定的纸箱：爆品订单复核
   checkBySku(qty,skuNo) 复核装箱一体化：按货品维度.
   claimTask(containerNo) 复核员扫描容器领取复核任务.
   fulfillCarton(cartonNo,consumables,orderNo) 复核员把拣货容器的货品放入箱，并使用耗材以便运输安全，该过程发现箱已满.
   recommendConsumable(cartonNo) 为任务的某个纸箱推荐耗材种类和数量
   recommendPlatformByOrder(orderNo) 提升拣货员去哪个复核台：按订单
   recommendPlatformByTaskBacklog(taskNo) 提升拣货员去哪个复核台：按任务积压情况
   submitTask() 提交复核任务
FlowAutoExecutionConsumer
   on CartonFulfilledEvent 根据不同消息自动链式触发流程自动化执行
ShippingAppService
   shipOrder() 整单发货.
TaskSubmittedConsumer
   消费接收复核任务(json)
<<跨聚合复杂流程>>
ObFlowAutomator
   orchestrate(IFlowAutomationEvent) 
<<领域事件>>
   CartonFulfilledEvent 
   OrderCheckedEvent 
   OrderShippedEvent 
   TaskAcceptedEvent 
<<相似类>>
CartonItem OrderLineManifest 60
ObFlowAutomator UnitOfWork 60
OrderLine OrderLineManifest 60
ContainerDiffItem OrderLineManifest 67
OrderCheckedEvent OrderShippedEvent 100
OrderCheckedHint OrderShippedHint 100
OrderLineNo TaskOfOrderPending 100
