### 详细入库全流程解析

#### 单据创建阶段 (Creation)

   * 动作: 用户通过 add 接口新增，或 importData 导入 Excel。
   * 数据变更:
     * 插入 TRkWareNotice，状态 ReceivingStatus = "0"。
     * 插入 TRkWareNoticeTab，状态 ReceivingStatus = "0", InStatus = "0"。

#### 收货确认阶段 (Receiving / Task Generation)

    此阶段是“实物清点与任务生成”，并非流程的终点。

   * 接口: confirmNoticeTab
   * 业务逻辑:
     1. 校验: 检查托盘状态、是否冻结（InStatus=="1"）。
     2. 更新收货量: 累加 RecNum (累计收货数量)。
     3. 判定冻结: 如果 RecNum (累计收货) == ReceivingNum (应收总数)，将明细 InStatus 更新为 "1"。这标志着该物料收货动作结束，不能再收了。
     4. 生成任务: 创建 TOngoodsshelf (入库任务)，状态 InStatus = "0"。
     5. 发送通知: 生成 TCallNotice，通知下游（如AGV或搬运工）执行上架任务。
   * 关键点: 此时单据状态 `ReceivingStatus` 依然是 `"0"`，库存表尚未增加库存。

#### 上架确认阶段 (Putaway / Completion)

    此阶段是“任务执行与库存生成”，驱动状态流转。

   * 接口: shelvesConfirm
   * 业务逻辑:
     1. 校验: 检查库位 (LocationId) 有效性。
     2. 更新上架量: 累加 AcceNum (累计上架数量)。
     3. 更新明细状态:
        * 若 AcceNum < RecNum: 设置 ReceivingStatus = "1" (部分上架)。
        * 若 AcceNum >= RecNum: 设置 ReceivingStatus = "2" (全部上架)。
     4. 完成任务: 将 TOngoodsshelf 移入历史表 TOngoodsshelfBak，并从原表删除。
     5. 生成库存:
        * 普通模式: 插入 TMiStock (真实库存)。
        * 虚拟模式 (Fictitious="1"): 插入 TMiStockF (虚拟库存)。
     6. 判断主单完结:
        * 遍历该单据下所有明细。
        * 如果所有明细的状态都为 `"2"` (已上架)，则触发归档流程。

#### 归档流程 (Archiving)

    当上架确认检测到主单完结时自动触发。

   * 更新主单: 将 TRkWareNotice 的 ReceivingStatus 设为 "2"。
   * 同步收货表: 更新或插入 TRkReceivingGoods (收货记录表)。
   * 历史迁移:
     * 将主单数据移入 TRkWareNoticeBak。
     * 将明细数据移入 TRkWareNoticeTabBak。
   * 数据清理: 物理删除 TRkWareNotice 和 TRkWareNoticeTab 中的原数据。
   * 关闭通知: 关闭关联的 TCallNoticeOrder 任务。