---
name: store-staff
description: 员工档案、排班、提成规则、绩效与薪资核算。触发：加员工/查员工/排班/设提成/算工资/薪资排名/内部绩效排名/登记员工扩展字段。
---

# 门店员工

## 用法

```bash
uv run {baseDir}/scripts/cli.py <子命令> ...
```

## 输出格式

stdout 单行 JSON：成功 `"ok": true`；需确认 `"error": "need_confirm"`；失败含 `"error"` 码。详见 [references/errors.md](references/errors.md)。

## 主要子命令

| 子命令 | 用途 |
|--------|------|
| staff-add | 新增员工 |
| staff-query | 查询员工（默认 active） |
| staff-update | 更新档案/底薪/自定义字段 |
| staff-delete --yes | 停用员工 |
| staff-schedule set | 设置排班 |
| staff-schedule query | 查询排班 |
| commission-rule set --yes | 设置提成规则 |
| staff-salary-calc | 月度薪资核算 |
| staff-ranking | 月度业绩排名（**内部/薪资核算**） |
| staff-field-def-add / list / update / delete | 员工扩展字段登记 |

## 自然语言 → 命令

| 用户说 | 命令 |
|--------|------|
| 加员工张师傅 | `uv run {baseDir}/scripts/cli.py staff-add --name "张师傅" --phone "13800138001"` |
| 查张师傅排班 | `uv run {baseDir}/scripts/cli.py staff-schedule query --staff-id S001 --date 2026-05-29` |
| 算张师傅本月工资 | `uv run {baseDir}/scripts/cli.py staff-salary-calc --staff-id S001 --month 2026-05` |
| 本月业绩排名 | `uv run {baseDir}/scripts/cli.py staff-ranking --month 2026-05` |

## 需要先确认的操作

- 删除员工、设置提成规则须先展示确认卡片，用户确认后加 `--yes`。
- 默认查询仅 `status=active`；查已停用加 `--include-deleted`。
- 删除前若存在 `scheduled` 预约则拒绝删除。

## 自定义字段（staff-field-def）

员工扩展属性须先登记字段定义，再写入 `fields_json`。完整示例见 [references/staff-field-def.md](references/staff-field-def.md)。

## 注意事项

- 数据库：`STORE_DB_PATH`（默认 `%USERPROFILE%\.config\store-suite\store.sqlite3`）。
- 员工扩展字段须先用 `staff-field-def-*` 登记，再写入 `fields_json`。
- 错误码见 [references/errors.md](references/errors.md)。

## 示例

```bash
uv run {baseDir}/scripts/cli.py staff-add --name "新员工" --phone "13800138000" --base-salary 5000
uv run {baseDir}/scripts/cli.py staff-schedule set --staff-id S001 --date 2026-05-29 --status work --slots-json '["09:00-12:00","14:00-18:00"]'
uv run {baseDir}/scripts/cli.py commission-rule set --staff-id S001 --product-commission 0.05 --service-commission '{"基础服务":0.15}' --yes
uv run {baseDir}/scripts/cli.py staff-salary-calc --staff-id S001 --month 2026-05
uv run {baseDir}/scripts/cli.py staff-delete --staff-id S001 --yes
```
