```mermaid
---
title: 4.资产分配流程
---
flowchart TD
    开始((开始))
    --> 登录系统[使用超级管理员或有权限账号登录]

    登录系统 --> 权限判断{是否具备资产分配权限?}
    权限判断 -->|否| 无权限结束[无权限，流程终止]
    权限判断 -->|是| 进入资产管理[进入资产管理]

    进入资产管理 --> 选择资产类型{选择分配资产类型}
    选择资产类型 -->|单卡分配| 进入单卡分配[进入单卡分配]
    选择资产类型 -->|设备分配| 进入设备分配[进入设备分配]

    subgraph 分配准备
        进入单卡分配 --> 选择目标店铺[选择目标店铺]
        进入设备分配 --> 选择目标店铺

        选择目标店铺 --> 操作者判断{是否为超管或平台账号?}
        操作者判断 -->|是| 跨级允许[可跨级分配目标店铺]
        跨级允许 --> 选择资产范围[选择待分配资产]
        操作者判断 -->|否| 下级关系校验{目标店铺是否为直属下级?}
        下级关系校验 -->|否| 关系不符[代理仅可分配直属下级，返回重选]
        关系不符 --> 选择目标店铺
        下级关系校验 -->|是| 选择资产范围

        选择资产范围 --> 资产归属校验{资产是否属于当前可分配范围?}
        资产归属校验 -->|否| 调整资产范围[剔除不符合资产后重新选择]
        调整资产范围 --> 选择资产范围
        资产归属校验 -->|是| 分配条件说明[分配条件说明<br/>1. 单卡必须未绑定设备<br/>2. 平台分配单卡时仅可分配在库资产<br/>3. 代理分配单卡时可继续下发已分销资产<br/>4. 设备分配时设备与绑定卡归属会同步下发]
        分配条件说明 --> 业务规则校验{是否满足以上分配条件?}

        业务规则校验 -->|否| 规则不通过[不满足分配条件，返回修正]
        规则不通过 --> 选择资产范围
        业务规则校验 -->|是| 提交分配[提交资产分配]
    end

    subgraph 分配执行
        提交分配 --> 分配执行结果{分配是否成功?}
        分配执行结果 -->|否| 查看失败明细[查看失败原因并修正]
        查看失败明细 --> 选择资产范围
        分配执行结果 -->|是| 分配完成[资产分配完成]
    end

    subgraph 结果验收
        分配完成 --> 核对资产归属[在资产列表核对资产归属店铺]
        核对资产归属 --> 设备同步校验{本次是否包含设备分配?}
        设备同步校验 -->|是| 核对绑定卡归属[核对设备下绑定卡归属是否同步]
        设备同步校验 -->|否| 核对分配记录[进入分配记录核对]
        核对绑定卡归属 --> 核对分配记录

        核对分配记录 --> 核对单号与数量[核对分配单号与成功失败数量]
        核对单号与数量 --> 验收结果{验收是否通过?}

        验收结果 -->|否| 异常处理[记录异常并返回分配环节处理]
        异常处理 --> 进入资产管理
        验收结果 -->|是| 结束([流程结束])
    end

    %% ==================== 样式美化 ====================
    style 开始 fill:#90EE90,stroke:#2E7D32,stroke-width:2px
    style 结束 fill:#FF9999,stroke:#C62828,stroke-width:2px
    style 无权限结束 fill:#FFCDD2,stroke:#D32F2F
    style 调整资产范围 fill:#FFCCBC,stroke:#E64A19
    style 规则不通过 fill:#FFCCBC,stroke:#E64A19
    style 查看失败明细 fill:#FFCCBC,stroke:#E64A19
    style 异常处理 fill:#FFCCBC,stroke:#E64A19
    style 关系不符 fill:#FFCCBC,stroke:#E64A19

    classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px
    class 权限判断,选择资产类型,操作者判断,下级关系校验,资产归属校验,业务规则校验,分配执行结果,设备同步校验,验收结果 decision
```
