Експорт чек-листів
Експортуйте чек-листи ACC для звітності, відповідності вимогам та інтеграції з іншими системами.
Огляд робочого процесу
Чек-листи ACC
Шаблони чек-листів
Екземпляри чек-листів
Пункти чек-листів
Вкладення
Витягування
Список чек-листів
Отримання пунктів
Отримання відповідей
Експорт
Експорт у JSON
Звіт у CSV
Звіт у PDF
Інтеграція
Система якості
БД відповідності
Дашборд
Чек-листи → Витягування → Експорт → Інтеграція
Підхід через CLI
Перегляд усіх чек-листів
PROJECT_ID="b.project-id"
# List all checklists
raps acc checklist list "$PROJECT_ID"
# Export to JSON
raps acc checklist list "$PROJECT_ID" --output json > checklists.json
# Filter by status
cat checklists.json | jq '[.[] | select(.status == "completed")]' > completed.json
Отримання деталей чек-листа
CHECKLIST_ID="checklist-123"
# Get checklist with items
raps acc checklist get "$PROJECT_ID" "$CHECKLIST_ID" --output json > checklist-detail.json
# View structure
jq '.title, .status, (.items | length)' checklist-detail.json
Експорт пунктів чек-листа
# Get all items with status
raps acc checklist items "$PROJECT_ID" "$CHECKLIST_ID" --output json > items.json
# Export to CSV
cat items.json | jq -r '
["Item", "Status", "Response", "Assignee", "Date"],
(.[] | [
.title,
.status,
.response // "",
.assignee // "",
.completedAt // ""
]) | @csv
' > checklist-report.csv
Пакетний експорт усіх чек-листів
mkdir -p ./checklist-exports
jq -r '.[].id' checklists.json | while read id; do
NAME=$(jq -r ".[] | select(.id == \"$id\") | .title" checklists.json | tr ' ' '_')
raps acc checklist get "$PROJECT_ID" "$id" --output json > "./checklist-exports/${NAME}.json"
# Also create CSV
raps acc checklist items "$PROJECT_ID" "$id" --output json | jq -r '
["Item","Status","Response"],
(.[] | [.title, .status, .response // ""]) | @csv
' > "./checklist-exports/${NAME}.csv"
echo "Exported: $NAME"
done
CI/CD-конвеєр
# .github/workflows/checklist-export.yml
name: Checklist Export Pipeline
on:
schedule:
- cron: '0 6 * * *' # Daily at 6 AM
workflow_dispatch:
inputs:
project_id:
description: 'Project ID'
required: true
jobs:
export-checklists:
runs-on: ubuntu-latest
steps:
- name: Install RAPS
run: cargo install raps
- name: Authenticate
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
APS_ACCESS_TOKEN: ${{ secrets.APS_ACCESS_TOKEN }}
APS_REFRESH_TOKEN: ${{ secrets.APS_REFRESH_TOKEN }}
run: raps auth login --token "$APS_ACCESS_TOKEN" --refresh-token "$APS_REFRESH_TOKEN" --non-interactive
- name: Export all checklists
env:
APS_CLIENT_ID: ${{ secrets.APS_CLIENT_ID }}
APS_CLIENT_SECRET: ${{ secrets.APS_CLIENT_SECRET }}
PROJECT_ID: ${{ inputs.project_id || secrets.ACC_PROJECT_ID }}
run: |
mkdir -p ./exports
# Get all checklists
raps acc checklist list "$PROJECT_ID" --output json > ./exports/checklists.json
# Export each checklist
jq -r '.[].id' ./exports/checklists.json | while read id; do
raps acc checklist get "$PROJECT_ID" "$id" --output json > "./exports/checklist-${id}.json"
raps acc checklist items "$PROJECT_ID" "$id" --output json > "./exports/items-${id}.json"
done
- name: Generate summary report
run: |
echo "# Checklist Export Summary" > ./exports/summary.md
echo "Generated: $(date)" >> ./exports/summary.md
echo "" >> ./exports/summary.md
TOTAL=$(jq 'length' ./exports/checklists.json)
COMPLETED=$(jq '[.[] | select(.status == "completed")] | length' ./exports/checklists.json)
IN_PROGRESS=$(jq '[.[] | select(.status == "in_progress")] | length' ./exports/checklists.json)
echo "## Summary" >> ./exports/summary.md
echo "- Total Checklists: $TOTAL" >> ./exports/summary.md
echo "- Completed: $COMPLETED" >> ./exports/summary.md
echo "- In Progress: $IN_PROGRESS" >> ./exports/summary.md
echo "" >> ./exports/summary.md
echo "## Checklists" >> ./exports/summary.md
jq -r '.[] | "- \(.title): \(.status)"' ./exports/checklists.json >> ./exports/summary.md
- name: Create combined CSV
run: |
echo "Checklist,Item,Status,Response,Assignee" > ./exports/all-items.csv
for items_file in ./exports/items-*.json; do
CHECKLIST_ID=$(basename "$items_file" | sed 's/items-\(.*\)\.json/\1/')
CHECKLIST_NAME=$(jq -r ".[] | select(.id == \"$CHECKLIST_ID\") | .title" ./exports/checklists.json)
jq -r --arg name "$CHECKLIST_NAME" '.[] | [$name, .title, .status, (.response // ""), (.assignee // "")] | @csv' "$items_file" >> ./exports/all-items.csv
done
- name: Upload exports
uses: actions/upload-artifact@v4
with:
name: checklist-exports
path: ./exports/
Потік конвеєра
Тригер
Щоденно/Вручну
→
Експорт
Список чек-листів
Експорт кожного
Отримання пунктів
→
Звіти
summary.md
all-items.csv
Індивідуальні JSON
Інтеграція з MCP
Отримання статусу чек-листів
User: "What's the status of our quality checklists?"
КористувачAI-асистентRAPS MCPACC Cloud
Корист.Статус чек-листів якостіAI
AIaps_acc_checklist_list(project_id)MCP
MCPОтримання чек-листівACC
ACCСписок чек-листівMCP
AI: Групування за статусом + Розрахунок відсотків завершення
AIЗведення статусуКорист.
Відповідь AI:
Статус чек-листів якості:
Статус Кількість % Завершено 45 75% В процесі 12 20% Не розпочато 3 5% Нещодавня активність:
- “Інспекція MEP рівня 3” завершена сьогодні
- “Перевірка каркасу” на 80%
- “Зовнішня гідроізоляція” починається завтра
Експорт конкретного чек-листа
User: "Export the fire safety inspection checklist to CSV"
Відповідь AI:
Експортовано чек-лист “Інспекція пожежної безпеки”:
Зведення:
- Всього пунктів: 42
- Пройдено: 38
- Не пройдено: 2
- Очікує: 2
Непройдені пункти:
- Знаки аварійних виходів (Будівля A, Рівень 2)
- Бирка огляду вогнегасника (Будівля B, Рівень 1)
CSV-файл: fire-safety-inspection.csv
Звітність щодо відповідності
Зведення пройдених/непройдених пунктів
cat items.json | jq '
{
total: length,
passed: [.[] | select(.status == "passed")] | length,
failed: [.[] | select(.status == "failed")] | length,
pending: [.[] | select(.status == "pending")] | length,
na: [.[] | select(.status == "na")] | length
} |
. + {passRate: ((.passed / .total) * 100 | floor)}
'
Звіт по непройдених пунктах
cat items.json | jq '[.[] | select(.status == "failed") | {
item: .title,
reason: .response,
assignee: .assignee,
date: .updatedAt
}]'
Хронологія завершення
cat items.json | jq '
[.[] | select(.completedAt != null)] |
group_by(.completedAt[:10]) |
map({date: .[0].completedAt[:10], completed: length}) |
sort_by(.date)'